Links
Youtube link: https://www.youtube.com/watch?v=GOSvpwDidnk
Official links: https://linktr.ee/Tellor
Summary
Team status was discussed, and then Tim held a short presentation on FileCoin, the storage provider protocol.
Whole call
Nick: All right, hey everyone, welcome to Tellor dev call. Special Tuesday edition so today, what's the big news of the week... lots of hacks, big Ethereum stuff happening this weekend, super fun in Tellorland, we kicked off the new vote, id6, just about there. We need like a handful of wallets to go vote so we are just going to go kick people and make them do that and then the new treasury will be passed. So, that's on the forefront of what we're looking at doing on the dev side, big things. Hopefully probably later this week going to make a repo, start Tellor360. We'll probably just fork the other Tellor. I don't know, maybe we'll fork it or just start a new repo, we'll see. Because it'll be it'll be similar, so because I think well we'll probably want to just use the TellorFlex repo and then basically the only thing the Tellor360 repo should have, is going to be what we upgrade that main contract address to. So, it should be good. Exactly, so it should be like the whole teller 360 repo should be a whole lot smaller. It should just be like two contracts. It'll be like master and then what we're upgrading master to but there's, like auto pay will live in its own repo, flex will live in its own repo, and I mean I think we'll make changes obviously on those but those can be separate. We'll document a good plan and that'll be nice. We can split out the work across repo so we won't be stepping on each other's toes. That's on my list of things to do today so. Owen back in California I'm assuming?
Owen: Yeah, back here good to be back. What's not good is the change in dev call time but that's fine. Three hours earlier, but yeah that's good. Yesterday I was working on Divas stuff like their updated thing, just getting the tests passing and whatnot for like the encoding. It's interesting, the encoding at least in python, it's the same for you know how in solidity you do ABI done code, like un 256 and you can do uintd six times 18, but then you can also do like, doing so since it's like two of those and normally you just do like uint 256 times 18 like as a string and then comma another one of those. That's what it would be but then you can also write it as a tuple like you can do like parentheses uint and then like comma that's like an entire sheet it's the same in coding anyway. So, that's good. Get that push and like merge today. Also review Lauren’s, but the thing that's still like sticking which I haven't been able to figure out is the Akrem's tip listener. I don't get why the tests are failing so I think I'm just going to like rewrite the contracts as mocks, because he's deploying the entire contracts and maybe if I just use the functions that it needs, we'll be able to isolate the problem but..
Nick: Are you using the playground?
Owen: I don't know. No I believe.
Akrem: Autopay and yeah I'm using auto payments I'm trying to run through it like as in a for real scenarios too many functions I thought to make it into a mock that's why I just used the whole contract.
Nick: I wonder where it's failing.
Akrem: That it's a GitHub actions thing, right? Oh no, for you actually on the command on GitHub it's the reason it's failing is because it's not pointing to the it's not getting it's a modular error where you can't find the autopay files on the Telliot core site. Because it's i guess let's look into an older version where they don't exist there yet so I'm not sure how to make it point that's one thing another thing for I think Owen it's failing because it's uh it's telling them there's a signature error but I'm not sure what that is.
Owen: Yeah, it's very bizarre like the tests are failing like uh locally for me but not for Akrem so Tally or Tim if you guys could pull down the latest from one time tip branch and run the test and see if they pass that would be very helpful. But yeah so, we're going to get that figured out either today or tomorrow. And then review Lauren’s PR as well for the API crew.
Nick: Cool. No that'll be good once we get this tip listener up then it's like...
Owen: I mean we'll get it, give it feedback on it get it merged and tweak it and then we need you know it to run and test it for a bit.
Nick: I'm sure somebody will break it. Yeah, and I mean same with we have to revisit the disputer again it seems like that's given us some issues too. Making sure that that thing can stay stable which would be key. So, awesome Quentin?
Quentin: Yeah, so I'm working on the zodiac module. I actually deployed it today and I'm testing it on Rinkeby. I was able to you know make some functions work but I'm getting error on executing proposals but it could be that I'm using wrong function hashes. So, I'm going to give that a try next time.
Nick: Yeah I mean I'm hoping what probably in the next few days we'll be done with it.
Quentin: Yeah all tests are passing so should be a minor issue yeah.
Nick: And then yeah once we get that we'll present it to them, that'll be nice for going into Gnosis we'll basically be integrated with snapshot and then the notes was wallet for you directly which would be cool. And then we can reach out to Gnosis and they have a nice little arm which is we have some connections at over at Gnosis so we're going to reach out to them and then maybe even go over to xDAI chain, so somebody might or Gnosis chain is what it now is, but we may have some question over there. Yeah so it'll be fun. Tally?
Tally: Hey guys, the gas price oracle with the exception of testing on Rinkeby, the code is done. Algorand we're working, Akrem and I are working on, well I just deployed the test net the BTC-USD like system there and we're going to do some manual checks and also, we wrote some like CLI tools for the hackathon so we're going to update those for the v2 so that people can use them and that will make sense for this version relative to the last version. And then I picked up, got my eyes on the Telliot bug where request to Gemini failed. I think that's my eyeball impression but soon to take a closer look at it.
Spuddy: I agree.
Nick: All right might be as simple as changing an API.
Spuddy: That's interesting because before Gemini it was trying Coingekko, failed it would crash it now when Gemini fails it crashes so.
Nick: Nice by the way who's signed up for hackmoney? That starts at the end of this week so Tally, Lauren go sign up. I mean if you guys need a project I have plenty of ideas but you know I would love, hopefully we can get Tally at stable and there's nothing like super pressing so you guys can take you know you know just take a few hours a week just throw something together to submit. It's a month I think, it's like a month-long hackathon online so you know a few hours a week over three or four weeks you can spin up an mvp on a solidity project.
Tally: I'll do it.
Nick: It'll be fun and if you win a prize you get to keep said prize so go try and win some prizes which is good, I mean and if you want like yeah, we can have we can have hackathon. If you really want a prize, reach out, we can teach you guys how to go get them, it's all going about you got to go look at who's the sponsors are because you remember there's been a few times we've sponsored hackathons and like nobody builds on us so like literally if you submitted anything you would have gotten a thousand dollars and if you find like those unpopular sponsors sometimes it's literally just free money. Yeah, so you can 1000 bucks is always nice so.
Mike: And by the way I sent a link to Tim and Owen which allows you to register your discord name as a sponsor member, a member of a sponsored company which then gives you some privileges in the hacker discord. Oh, here I am you can be in the Tellor internal. So, let me know if you got that if anybody's interested in having and being more active in the discord, during the hackathon that means you know I was going to pick it up, answering questions and things like that if people have them let me know and I'll send you that link, but I thought Tim and Owen would be good enough.
Nick: Lauren.
Lauren: I sent in the pr for the query type thing so Owen's going to look at it I'm having a lot of issues with the testing and I suspect it's something wrong with my computer so and if you try even just running any of the tests, I guess we can see if that's true or not and then I can tackle it from there and then if you want I can start looking at the switching over to local tests on the tele-feed example side I'm just kind of copying the same thing that we did on the Telliot core stuff and then I'll sign up for the hackathon too.
Nick: All right, yeah knock that stuff out and then once you get some free time maybe if you want to look at the dispute too all right try and make it stable or do you have one up and running, I think you spun one up right no. Lauren did you have one?
Lauren: Yeah, I did okay.
Nick: Yeah, spin it up and see how long it lasts for you and when it breaks so much there's two different votes. Spuddy says he has two different books you posted them I'm guessing. Okay I'll look at them. All right, Akrem?
Akrem: I don't have much on my side except the what Tally talked about the algorithm command line scripting, the functions make it easier to run there that's it. I was looking at the GitHub action see if I can manipulate it to look at the right but it seems like it's too much of a change so I don't want to break it that's it.
Nick: Cool and then getting the tip listener working it's kind of on holiday.
Akrem: Yeah, that's what I meant about the GitHub actions for the listener.
Nick: Yeah, pass on GitHub okay cool and then I mean we always on the back burner too if you're looking for things, we always got those Telliot tests just to wrap up, so keep that in mind. Yeah, fun stuff so but all right Tim?
Tim: Yeah, so let's see. Yesterday I had to put Ricochet on the back burner as I was doing a lot of troubleshooting for Diva, helping them get their tests running we just had some weird errors and stuff but it looks like those are back on.
Nick: Anything that had to do with our stuff?
Tim: There is still one weird thing that, I don't know if it's us it seems like I don't know. So, we were having trouble calling submit value on the playground but once I had called the faucet function right before calling submit value for some reason then everything started working which doesn't really make any sense.
Nick: Did you need like a weight there and the faucets acting as it?
Tim: Yeah, it could be something like that it's unexpected behavior but it looks like Vlad over at Diva he said he like reinstalled all of his yarn packages and got and then every everything started working again so who knows if it's just some weird error in a dependency it was definitely strange behavior cool and you know I don't see anything clearly in the submit value function in the playground that would explain why the faucet would make that work no. There's no need for the person calling that function to have tokens so I don't know. But it looks like yeah the tests are running now so anyways so I'm picking back up on ricochet today and also a big thing on my plate is I've got a workshop for hack money tomorrow.
Nick: Which time is that up?
Tim: It is at three. And they kind of just gave us they kind of just told us about it tomorrow or yesterday or at least yeah told us about the slot and what's actually expected.
Nick: How long do you got?
Tim: Looks like it says 30 minutes.
Mike: If for some reason you need an extra time, they got back to me and said that there is another slot on Tuesday next week but I think doing it this week would be best anyway if we can but yeah like really last night.
Tim: I agree um and yeah, I think like talking about Tellor and going through an easy example would be no problem I think I can easily do that tomorrow I guess the tricky thing is you know putting together slides in time well.
Nick: I got you'd look at mine so uh in the presentation folder I'll just send it in the chat we got one from intro to implementation it talks about what are oracles and then at the end there's like a slide that's just blank that says walk through so okay you can throw it in the chat here. But yeah you can you can just like chop them up as much as you want it was for an hour-long talk I gave but it was you can explain. I think there's like 20 slides so.
Tim: Nice okay that should be helpful and yeah, I think it'll be no problem doing it tomorrow and I agree that would be better doing it at the beginning. Yeah, so that's what I'm working on.
Nick: By the way does anybody know how to do hard hat tests with two different networks? So, if I wanted to test like a bridge you know like when we were looking at like if we wanted to test like actually bridging could you deploy like in the test deploy a token to this chain and then to this chain in a single test?
Owen: You could spin up two different ganache instances on different ports.
Nick: And then can you refer to it in line which chain you're going to talk to in a hard hat test because like I know you can run the hard hat test on this network but can you like switch with the one, you're interacting with kind of in the same test file
Owen: I don't know about that.
Nick: I don't think so but anyway.
Owen: It would be cool if you wrote a tool for that about people.
Nick: That's like the state of the space always that would be really helpful you should read. I mean I'm sure there's like some janky way I can do it that we used to do it you know with old Tellor stuff. You would spin up your hard hats and it would just tell you like make sure you're running it on these, no these ports and then the tests would work but.
Tim: I think you can reset your provider in the test file.
Nick: Just change provider midway and then you could yeah that might work.
Tim: That might be a way.
Nick: To go so if you like just spun two Ganaches up on the side and then reset it to those local instances, that's a good idea okay
Tim: It's an interesting problem
Nick: For sure and the other thing if you guys saw I posted in one of the chats but comedo or beanstalk reached out to us about potentially integrating with them we have a call later in the week but it was because they saw us in their community call, they just saw the name Tellor there and where Ryan was hanging out, I think so if you guys have any free time where like you're just bored and want to listen to other projects like we very much encourage that showing support for these other projects is I mean it's the best thing you can do. You know these guys if you just actually become friends with them then they're going to use us.
Spuddy: If anybody wants to be included, I'm going to start making calendar events. Good idea so if anybody wants to be included let me know.
Nick: If you're interested and it's cool, you're going to learn more about these other projects anyway. All right add me on here real quick like.
Owen: What's the should we what was the uh um verdict on like signing up as a sponsor versus like not for HackMoney.
Nick: We're sponsors.
Owen: Yeah, but like Mike sent something to me and Tim about like this is he right there yeah.
Mike: I'm right here.
Owen: Like is it better that we sign up like us not sponsors or like should we sign up for the sponsors all the.
Nick: All that this we're talking about is like they'll include you like there's like a Tellor internal channel and if people have questions on integrating Tellor they know who to reach out to.
Owen: Got it so Tim you got that?
Nick: So, that's, it has nothing to do with like your submissions for your own project or anything like that don't worry about those. All right now for the man of the hour Tim onto you. By the way for a background, we asked him to give a little presentation on FileCoin, just so we could all learn a little bit as a group so any other background?
Tim: No yeah this will just be FileCoin 101. Sharing my screen where's the one all right so yeah, this is just going to be a simple introduction to FileCoin I'm going to go over what it is why it exists and then some of the mechanics of how it works and then I'll show a quick demo of actually using it and uploading a file. So, what is FileCoin? It is a distributed data storage protocol made by protocol labs and it incentivizes people to store data using the IPFS protocol so then we need to back up a little bit what is IPFS? IPFS is a data storage protocol and it's a distributed data storage protocol so you can have one file that you upload to your ipfs node and you can have your friends also back up that file and as long as someone on the network is storing this file you can in theory retrieve it. So, ipfs uses something known as content addressing which is distinct from the classic way of retrieving data on the internet location addressing so with location addressing if you want a particular file, you can see that that example.com file.txt that actually points to a file in a particular location so example.com maps to a certain ip address so that file.txt exists at the ip address in a certain location which then depends on that one ip address existing or that one server continuing to exist and if the server goes down then the file is lost. That's the old school way of storing and retrieving files but with ipfs you use content addressing so when you upload a file to ipfs you get a unique identifier it might look like this at first line under content addressed it it's an it's a cryptographic hash of the file so that means it's a unique identifier for that particular file if the file changes then the hash changes. So, when you look up some data on ipfs you're looking for that particular identifier that hash and it doesn't matter where that file exists on the network as long as someone is storing it then you can retrieve it which I think you can see is much more resilient so it doesn't depend on any one particular computer or server to keep storing your file and also the fact that files are represented or addressed by their hash their as a unique identifier that adds some security so that i know i want this one particular file with this hash so then when I retrieve it I can see that it hasn't been changed because if it changes it will have a completely different hash so ipfs because it can you're using content addressing and because you don't care where the data is stored you get some more resilience by you can you can pin the file store it on your own node you can use some free services pinning services like pinata and you can also ask a friend to store your file and now you have a pretty resilient file backup system but that still is depending on altruism so you still don't really have very good guarantees that your file will continue to exist so how could you actually have some better guarantees that is where FileCoin comes in. So, FileCoin adds an incentive later layer on top of ipfs ipf or using FileCoin you make a deal with data storage providers and they agree to store your data for a certain amount of time in exchange for a payment and as we'll see in a little bit, they have to keep proving that they're storing your data or else they um are penalized and something. I should note is that the FileCoin network itself does not actually store your data FileCoin is storing the deals that you make it's basically creating contracts saying that this person will store this particular data for x amount of time and FileCoin keeps verifying with the data storage providers that they're actually storing this this data and honoring their deal so making a deal a deal is just the word that FileCoin uses for an agreement between someone who requests data storage and a data storage provider so to store some data on FileCoin you make a deal with a data provider offline they agree to store this particular file for this amount of time in exchange for a certain payment you do all that offline and then finally the storage provider commits the deal on chain to file point and that's how at that point in time the deal is secured and then probably for best practices you should make multiple deals with multiple providers um just so you're not putting all your eggs in one basket, just in case it fails.
Nick: It seems like kind of centralized right or you know like what's or I guess like how do you find a FileCoin provider are they is there like a list somewhere or is it you just like ping the network and somebody picks it up.
Tim: Yeah, this that is a little theory centralized yeah there are different websites online you can go see different providers yeah, I guess there is no way to just look on the FileCoin chain and communicate with providers that way but I mean you're not depending on just one particular you know website to host all that it could protect it could potentially exist on in multiple places.
Owen: Are the storage providers supposed to run like the client software so like there's some sort of like pure discovery so like if you run it as well then you would discover those storage providers?
Nick: Then the question would be how do you contact them?
Tim: Right yeah well actually there is you can actually communicate with storage providers through the to the client software. Yeah so actually yeah that's one way to do it and they actually set some settings like they'll put their prices and all that stuff and then there's a way to automatically negotiate the deal you know with the with computers with software and put in your parameters what you're willing to spend you have these two main roles in the FileCoin network you have provers which would be the data storage providers and they stake FileCoin tokens and then they make their deals offline and then they commit those deals on chain and then they have to continuously keep proving that they're storing the data they said they would store and by doing that they can earn block rewards and by doing that they can prevent themselves from getting slashed from losing uh the stake that they provided.
Nick: Is FileCoin any, I'm guessing it's not an EVM, do they have smart contracts on their network?
Tim: They have limited smart contracts yeah, I don't think they have just any arbitrary you know turn complete contract that you can make but they have these specific file coin deals you can make you can also there's also payment channels so yeah there's limited smart contracts in a sense and then you also have verifiers the full nodes and they are continuously proving or verifying the proofs from the data storage providers or the provers and those are the ones who have to maintain consensus um so you all you you're always having this back and forth between verifiers and provers um where provers keep receiving these challenges they have to keep proving that they're storing certain data and then verifiers are always verifying that those proofs so then you have these two types of proofs proof of replication and proof of space time proof of replication occurs once as a deal is being secured so this just ensures that when someone makes a deal to store some data this is verifying that the storage provider actually has that data in the first place so it uses fancy cryptography zk snarks which is which allows the network to verify that certain data exists but you could have giant data sets lots of data being stored but you don't have to actually pass around all that data so you can you can prove properties about a giant data set without actually passing that data all around the network um so lots of nodes can verify the integrity of the network without store without having to download 10 terabytes of data or whatever and then you also have proof of space time so that is the continuous always ongoing proof so that is where the interaction between provers and verifiers happens so verifiers keep requesting that provers are holding some little chunk of data and they just are randomly proving that they have one little chunk over here and over there and so you can it is providing probabilistic proof because of that randomness so anyways the yeah the odds of actually being able to uh game the network by only storing part of the data you agree to is pretty low and again we're using zk snarks to make that process efficient and how's it randomly selecting those like little chunks of data to verify there that's happening with like the client software yeah there is some source of pseudo-randomness in the in the FileCoin chain I think it has to do with some kind of block hash but that I'm not 100 sure on and yeah I think I mentioned if the provers fail to provide the proof that they need to prove that they need to provide then they they lose some or all of their stake so then also so we for this data storage to be useful we actually have to make sure that that data can be retrieved as well. That's another type of deal that goes on anyone that needs to retrieve certain data they also make a deal with data providers um and so there's a process of discovery of different data providers those data providers have parameters for how much they charge for uh relaying some data and after a deal is made then a payment channel is created on the FileCoin network and then and then the data provider starts sending the data over and it's metered and once you reach a certain threshold then the person has to pay some money to get some more data and so there's a back and forth of exchanging data and payment so that seems to that seems to be another argument for making sure that there are multiple data providers um so that is one of them doesn't just have a monopoly on the data and they can't just charge a super high price so yeah in summary uh how ipfs works I mean file point ipfs is a distributed storage protocol and then FileCoin adds I well Tim I mean what would be like the reason that we were sort of looking to do some stuff cool stuff with teller do you want to like explain like what could tell her possibly do with this yeah teller could I you could you could I could see a place where teller could provide similar uh functionality to what FileCoin is providing where Tellor reporters could check that a certain piece of data continues to exist or that someone is actually storing some data yeah I mean to me you could build FileCoin on Ethereum right like you know might be even better put it all there yeah because I mean like.
Nick: I think there's some pieces too that like you just you know you could hand wave over and create some reputation based systems like you know the sent sending little pieces of data for money like that that goes that's like the classic problem of like one person has the data the other person has the money if I send the money first you won't send the data if you send the data first I'm not going to send the money and so they like have to stream it at the same time to make sure that nobody's cheating each other and like in my mind like you could just be like now like you're going to screw your reputation over um if you do this like send the data and or you just have like an escrow account you know and it sort of works that way lots of different ways yeah.
Tim: Yeah, and it seems like it would be better to put your own Ethereum where you can have full contracts and well you could just make it to a lot of people yeah.
Nick: I mean that's what I would do the other thing we can also use we would love to use ipfs to store so like right now we have you know the query type stored on GitHub move that to ipfs it makes it super simple um adding you know just basically anything you could want like if you if somebody posted something in ipfs Tellor could return the data could return you know you could theoretically store long functions on ipfs so like and then teller could act as like uh you put the input in on Ethereum Tellor goes and run the function that's on ipfs and then you pull it back so now we're like an off-chain computation engine lots of super fun things you can do with it.
Tim: Yeah, exactly and the cool a big cool thing about that is that you can just reference that content identifier on chain and you know that and that that content identifier can just represent a giant chunk of data yep yeah so yeah there's I think there is a lot of potential to mess around with the stuff and try different cool things.
Owen: Are there places where you can go and see kind of like the state of FileCoin like with Ethereum you can like go and see a dashboard of like all the current nodes and whatnot?
Tim: Yeah, we were going to the cost of it I was going to do a quick demo we can see that like there gas tracker yeah or like a block explorer is that.
Owen: Yeah, they have that so okay yeah, I just like seeing how many of you are using it and like how much of the data is like protocol labs is you know running through versus like how many yeah just how many of you are actually using it, how many storage providers there are that kind of thing.
Tim: Yeah, there is there's a there's a block explorer it does as far as who's actually using it and everything that's a good question um it looks like protocol labs is subsidizing this a lot like so you have all these a couple different ways of using accessing ipfs and FileCoin uh lotus is the FileCoin the main cli client and then you have some simpler like website front ends web3.storage is the one that we're going to look at and it looks like that's provided by protocol labs and they provide one terabyte for free and they even say if you need more that's also free yeah that's what that means well, they what did they raise i think they raised like hundreds of millions of dollars right it was its obscene amounts of money so they got to do something with that cash yeah you can store a terabyte for free for people yeah exactly uh yeah i think they're trying to bootstrap things because it sounds like they have plans to add payment plans but and then there's also another similar service based on storage with a lot less storage five gigabytes but that one is also pretty user friendly and then also note that if anyone wants to just play around with ipfs you can easily run an ipfs node from brave browser if you go into your settings it's built in you just have to enable it and that's probably the simplest way to get an ipfs node up and running so yeah let's look at this web3.storage so this is easy to login to you I just logged into my GitHub account and so the other day I uploaded this one file just this solidity image so what happened was I uploaded the file and then it immediately said it was it was pinned on ipfs so that just means a couple of ipfs nodes were storing it for free now that didn't have anything to do with FileCoin yet it's it took two days for some reason but eventually then the data was actually it was secured by a deal on FileCoin by three storage providers and you can see each of those deals here but before we look into that let's I'm just going to upload a file real quick we'll add another one let's go with the tower swoosh.
Brenda: So, you said you logged in with GitHub how did you pay again you also have to connect it's free this is free this one's free okay.
Tim: I didn't reach the gig yet so okay I mean the terabyte yeah, they are trying to bootstrap things for now so now the Tellor swoosh is being uploaded to ipfs and then in about two days it should also be secured by FileCoin and uh and Owen here we can see a block explorer cool.
Owen: Where do you see like how long they're going to store it?
Tim: Yeah, let's see I think as okay I think it said somewhere in here how long they were going to do it apparently the max amount of time on file coin is two years that's the max deal length you can make right now.
Owen: So, like if you make a two-year deal with a storage provider, they have like that amount of fill or file coin or whatever staked for two years?
Tim: Yeah, so that means that they can't there's a certain amount of file coin that they can't unstake for that amount of time yeah and so the more data that they're storing the more they have to have state nice yeah so they seem to make it pretty easy to get up and running on file coin with these front ends I also did download the lotus client which took about 70 gigabytes to get up and running with the light client the light node um and the hardware requirements are pretty hefty on that um so I think I would recommend for most people to try to use it through this web 3d storage or through fleeq.
Nick: All right well I got a call come up in five minutes how much more you got Tim?
Tim: That should cover it.
Nick: All right well guys any questions any last questions but more so you guys can always reach out to Tim anytime.
Brenda: Save the presentation though on the shared drive either under trainings or presentations okay.
Nick: Yeah and for those watching if you want to build one of those teller file point integrations reach out yeah well FileCoin has some big hackathons themselves I think so cool well thanks so much Tim this was awesome. We'll schedule somebody else here soon. So, we'll see I think Quentin might be next again he does some fun ones so all right. Well thanks everyone, talk to you guys later, thanks for listening.