New Ethereum talks, every Monday. The week's conference uploads by event, in your inbox.

Loading player…

📣 FEVM Summit — Unlocking DataDAOs with FEVM GlacierDAO

ETHGlobalMon, Oct 9, 2023, 12:00 AM

Join Ines Pereira, João Santos of GlacierDAO for a talk titled "Unlocking DataDAOs with FEVM GlacierDAO". What use is computing without storage? For too long, blockchains have been defined by a frustrating tradeoff—should my decentralized network focus on compute, or on storage? We've seen incredible innovation on both sides—Ethereum the world's largest computer—and IPFS & Filecoin, the world's largest decentralized storage networks. While we've seen thousands of groundbreaking DApps developed harnessing the power of these technologies, under the hood, they require complex scaffolding, disjointed layers, or complicated developer patterns. Sometimes even, decentralized storage is disregarded, opting instead to return to the "easier" centralized methods. A small team of builders at Protocol Labs set out to change that, and with the Filecoin Virtual Machine (FVM), have turned the Filecoin blockchain into a programmable platform that developers can deploy programs to, finally uniting compute and data on a single network. But they did not stop there... The FEVM creates a runtime within the FVM which simulates the Ethereum Virtual Machine, making all smart contracts which compile to EVM bytecode, such as Solidity contracts, executable on the Filecoin blockchain. With completely decentralized compute and storage united once more—we're more excited than ever for this new frontier—and for what you'll build. ----------------- Follow us: https://twitter.com/ETHGlobal​ Check us out: https://ethglobal.co​m Email us at: hello@ethglobal.com

Transcript

foreign [Applause] [Music] Summits we're excited to have everybody here um and excited for this next set of talks so we're going to be learning about um basically unlocking data dials uh with the webm and being able to hear a little bit more from the teams behind Glacier dial and LaGrange style um and yeah we're really excited to uh yeah obviously hear a little bit more about this use case you know um we just had Zach point two this is being a pretty interesting base layer uh situation that can be improved by uh by the fdm and and again that would kind of great to hear firsthand um from and yes and from Joel about uh first of all I think for Glacier Dow and then we'll also hear a little bit later from from Charles from uh the LaGrange style so um yeah when you're ready feel free to turn on your cameras and unmute um and I will stop sharing screen I'll turn it over to you both hey welcome to the stage hello everyone my name is inish and uh together with Joan we are here to tell you a little bit about Glacier Dow do you remember this when GitHub created Cold Storage repository using an archival facility that was placed 250 meters deep in the permafrost of an Arctic Mountain what about this when the same entity GitHub decided to ban tornado tornado cash code and suspend its developers from their platform we believe that code like data should be preserved in a censorship resistant way and this is where Glacier dial comes in so Glacier Dow is a decentralized autonomous organization that preserves code as a public good and Glacier dials life cycle evolves into a series of stages each epoch starts with a call for funds at stage zero followed by a call for votes afterwards storage providers are allowed to make submissions which are then validated by dial members stage four is considered to be more of a buffer in the epoch so it's essentially a time where users and storage providers can chill and at the end of the epoch at stage five is when storage providers can correct can collect their rewards but let's go through each stage in more detail at stage zero users are invited to commit funds to the current epoch currently this is done by committing fall point but it will be possible to commit funds using any erc20 token in the future in stage one users who have committed funds are also attributed than voting power um and this is done in the form of one vote per fell they can either vote for a submitted repository or they can submit their own repository for its code to be preserved so right now users are only able to vote for one single repo but in the future we want to allow people to vote for multiple repositories and we also want to um evolve into other forms of voting uh potentially quadratic voting all right enter stage two and enter storage providers and these make file coin storage deals free Falcon storage deals with themselves and what they do is that they then submit the deal IDs and the pcids to the Dow smart contract these are then validated that is Dell members verify that the deal is legitimate and that the stored data corresponds to the submitted Repository since the epochs have a fixed duration if everything from the previous stages is done then the epoch will just continue to run and it's time like I said before for everyone to just chill both users and storage providers finally at stage five so at the end of the epoch storage providers can claim their rewards and what happens is that the smart contract then verifies that the storage deal is healthy um and that there was no breach of the deal so that there was no if there was no breach of the deal then the storage providers are able to collect their Rewards all right um let's go for a demo now I'll pass on to Juan for this thank you so let me just share my screen uh everything good can can you see my screen the website yep okay so nice so now this is uh we're now in the questionna website uh I encourage you to view it we have a video that really shows our smart contract interaction uh in more depth uh there's also some other information and we've set up like a little demo here um so essentially our application is not live yet because as we're going to discuss later there are still some technical limitations as to what we can do with solidity and fevm uh but we were like for we've been working on this for less less than a month so things are still uh like fresh uh so I thought that for for this presentation to be nice to show you what the app will look like when everything is connected um and then uh we are also going to show you our roadmap to how we're going to replace the pieces to make it more and more decentralized over time so let's assume uh we are now here on our app we created a we created two users so we can switch between user one user two assert our storage provider um so let's assume that's user one wants to join the Dao and it's going to commit like 250 fill um for this this uh this ebook of storage so it commits range 50 fill then we have user number two and maybe just commits 100 because he has a little less uh so so far like this Epoch on the OS 350 feel committed so if you're a storage provider you know that okay uh the the cake is 350 feel big for this Epoch which will help you make a decision of do I want to participate in this is there enough incentive for me uh or not then as you go into the next stage uh users can vote on which reports they want to keep preserved so you can either submit to repo or you can just vote for one that exists so let's say for instance that user one wants to vote for the ipfs repo he comes here and he clicks votes um now all of these votes were cast for this repo right now we are only allowing uh you to vote once and all your votes are cast just for Simplicity in creating the contracts um later we definitely want to evolve in the direction of for sure being able to vote for multiple by splitting your votes uh possibly even using quadratic voting uh it might make sense in this case it's really cool we just didn't do it for simplicity's sake um so now let's say user number two uh instead of voting for an existing repo they prefer to vote for the JS apfs repo so you can now come and cast is 100 votes um the search provider can only see that these are the proposals that are ongoing uh the vote button is just a bug here and to remove it because the storage provider is obviously not able to vote um but they can say they can see like okay there are 250 uh fill in price for ibfs and there's 100 in price for jsip for jsipfs um so now on the next stage the the storage provider is probably going to be like okay this one has a bigger price so I'm going to go for this deal uh so they go on Falcon off band they create to deal with themselves for zero the reason why they create the deal for zero is because the rewards for storing this data are expected to come from the Dow right not from filecoins uh Native rewards mechanism so in this case what you're doing is like um thinking well it's okay for me to do a deal uh for xero uh through falcoin because I'm going to get more rewards from the Dow on some native token from the Dow or even from field directly from the top so they can for instance come here and apply for the ibfs one and then they put the deal ID and the PC ID so these are two identifiers that you get from Falcon deals if you go to fieldfox which is like the blockchain Explorer for Falcon uh you can see this data there but for now you can just put some some gibberish just to make sure that it stays here so the submitter application and at this point um users don't do anything it's just a source providers once they have done their applications uh time goes on we move to the next stage and what they see here is that their application is now waiting approval uh this is because this is the time where the Dow members get to vote and why are they voting um so one of the limitations that we currently have um is that it's very hard um I'm not going to say impossible because I'm sure someone might be able to do it it'll actually be a pretty cool hackathon project if you could but it's really hard uh to verify that a filecoin deal contains uh like exactly the file like the zip file from the GitHub repo uh like to start with you would need an article to know what the like uwrl actually means but I guess eventually the submissions for repost could includes the repo hash as well uh but still on chain you would need to Hash the entire repo which is an insane memory requirement obviously uh uh and you would need to Hash essentially the data available ipfs and then compare it to the hash of the GitHub repo um that's tricky so what we are doing is we are calling on the Dow members to go and file coin uh verify if I go on filecoin get the data uh from Falcon so from the deal ID and the pcid get it from Falcon hashtag data compare that against the hash of the GitHub repo and if they are satisfied that the storage provider is indeed maintaining the data that they say they are than the votes meaning yeah I checked it looks legit um once the vote reaches 50 like if 50 of the dial members vote that the deal is legitimate uh it's considered to be approved um meaning that the dollar is voted and they have approved this so in this case user one has more than 50 of the votes uh so it becomes automatically approved to steal so when we go to the next stage uh the search providers can see uh that their deal was approved so um the Dow is voted it has approved this deal the potential reward here is 250 field for this deal this value is incorrect here we have to fix it you can see that the potential award is 2050 fuel so uh at the last stage they can click they can collect their rewards uh the way the reward collection works is the there is a method on an actor on Falcon uh actors on Falcon are like smart contracts we're going to go over this after on the architecture but essentially the smart contract can verify that a falcon deal is healthy what this means is that for the whole period of the deal duration the storage provider was able to provide the necessary groups of space-time um however if they have not done that the deal is not healthy then they are not able to collect the rewards because obviously they did not keep the promise to the doubt uh so they were not able to collect anything but in this case assuming that they did they'd be able to collect here 99 um second the wrong number they'd be able to collect 250 fill uh and get that money sent to their wallets so now um let's look at the architecture of this and where we are going from here so the way we want this to work is we have our little front end which is what we just saw in this demo um this front end is connected to a Smart contract which is written in solidity uh the data maybe like it gets data through some indexing server or like maybe we Implement uh we deploy a graph on the Falcon Network to get this data from a recipe from a graphql API instead of going directly to RPC calls but doesn't matter so there's a solidity smart contract that handles the voting the Dow funding the storage provider rewards the deal making and the deal verification uh the key pieces here is that the deal making and the deal verification need to talk with fvm actors which like I said are like smart contracts on Falcon but unfortunately this part is still under construction so it's not ready yet there is no solidity library for um so whether it is smart contracts to interact with falcoin Primitives there is a mock Library available uh you should search the docs or search uh discourse for that or maybe I can send you the link later so you can see what the interfaces will look like but it's not actually working yet so there is that limitation there so we are Keen to get this off the ground and get it working soon so what we were thinking of doing right now oh sorry uh so just to summarize the current roadblocks that we have is that there are no solidity libraries and also uh if you want to call uh actors on the fvm from solidity you have to encode the parameters in seabor and that is a tricky encoding to do in solidity I heard that there's already a library for that but I couldn't I couldn't find it yet but that's also a tricky part um so right now it's just hard to make those calls so what we thought we would do is um to make the deal making and deal verification work for now is we would use web3. storage uh which is also a product of protocol labs and essentially it is um an abstraction on top of Falcon and ipfs where you can go uh you can store files very easily I think they have a rest API as well so you can do it programmatically from some server so our goal is to have the Dao uh like some Dow members the administrators something like that replace the storage providers for this intermediate period before the solidity libraries are ready and what would happen is uh the dial goes on is normal but the proofs are submitted by down members who have stored this deal on web3 storage so they would say they would just um put some pointer to that data on the verification stage and the dial would still vote if the deal is valid or not uh and that's very easy to do because on web3 storage you get not only the pcid and the storage ID but also a an ipf scid which makes it much easier to retrieve the file because it's pinned by their servers um so that's what we're thinking of doing right now so right now we have our demo app we also have some smart contracts which work except for the part of talking to the fvm so even though they work they're not very useful at the moment so what we're going to do is replace some of those components with web free dot storage and then once the solidity libraries are available we are going to swap where three dot storage for uh Native Falcon Primitives in solidity so yeah uh this is extremely exciting though I'm not sure if anyone here has experienced developing um solidity but it's really cool that you can just take all of your solidity knowledge and write a smart contract and deploy it on Falcon uh and even though the storage Primitives are not there yet you can still start playing around with it you can go on the wallaby Network get some test net falcoin uh and just deploy it and see things running on Falcon I was born away when I tried it because it was super easy um I I wrote a little uh blog post on how to do like a hello world on Falcon so like if you want a link for that you can just send me a message on Discord um but yeah there's a lot of cool stuff to do um so yeah thank you for your time uh you can see my name is Twitter handlers uh here at the bottom uh maybe hurry up we don't know for how long Twitter will be running I'm just kidding uh um there's also a link to the website uh and yeah let us know if you have any questions I think we have some time for each minute so that's it awesome thank you so much for that and yeah if anybody has any questions feel free to drop them in the the equivalent TV chat um in the meantime I had a couple that kind of came to mind as you were going through this um one is you know you mentioned that uh the storage provider at one point would have to sort of open a a uh like a storage contract for like zero fill and then sort of count on the Dow to pay them out that that stream down the road um I think it makes sense to some degree like why that's the case like is the reason why we can't do that under the the file coin like default kind of reward thing just because that missing library or is there kind of something else to it that uh that the data dial kind of enables that is more interesting than doing it just with the the base layer reward scheme so it's about I mean there are probably more reasons to it a reason that I think is compelling is that it makes it very easy for a group of people to come together and fund one specific thing while I'm sure you can somehow do it on Falcon now but it should be harder you know as in like some does exist and they solve problems that could be solved before but they make the cost of um what's the words um cooperation much lower uh so that's kind of the idea here uh you can come together with a bunch of friends if you feel very strongly about a certain piece of Open Source software we like everyone chip in five bucks uh and maybe we can start this for a long time and I think that's pretty cool gotcha yeah I do too um I was thinking about even extending that like I wonder if you've thought of like ways where like you could actually do sort of like what GitHub that done and sort of like actually incentivize like storage of like large amounts of like different repositories even if they don't have like backers specifically um like you know the ipfs one for instance feels like a really natural one to like want to back up especially using Cloud coin um but like you know my like random repo that I care about but maybe I don't have the funding to back up like it would be cool to see if there was a way where we could kind of have a kind of community pool that could go out and like identify other repos that uh that maybe don't have direct funding but I could use a pool of funding to do so I don't know if you've got any thoughts into that area as well um we've with in this and I were discussing a few days ago uh so if you participate in ital often uh you could maybe get like some loyalty points for being an active member of the community uh so maybe let's say if you have participated for a 5V box which might be I don't know three months six months whatever maybe you get some tokens uh which for the next Epoch gives you like um a vote with a higher weight right so even though you're not committing funds on that one you're like you're a value member of our community so you can like signal that this one really should be stored guys I mean I'm seeing the issue here um so maybe that should be a way to do that but I mean like there are so many there's so many amazing mechanisms nowadays I don't know most of them obviously um but I'm sure there are some very bright people that thought about like really cool ways to coordinate and do those things cool yeah awesome yeah I mean that feels like almost like building in like more of like a yeah in that case kind of feels a little bit more quadratic funding you where it's like one vote means a little bit more because of the the actions that person had taken or like a civil resistant thing yeah very cool um yeah just type of thoughts is really um is really important for us as well so maybe just a shout out to the people who are also listening if you have any ideas uh things that you would like to discuss I mean we're on Discord so feel free to reach out we're more than happy to talk more about Glacier now amazing and then I think I saw right at the beginning of the presentation uh you mentioned this you've been working on this for a couple weeks but I think I also saw that this might have been a hackathon project at some point um yeah so two weeks ago amazing so there you go so for everybody watching uh here's where you could be in two weeks uh which is on the youth Global stage there you go yeah uh I I think I would like to incentivize so there's this open problem right now I see that rule is in the chats he can he can also attest to this there's this like before the selected celebrities already uh you can do this thing in um you can write assembly code uh in a your file not inline assembly it said to be your file uh and call the verbatim which means you can just run arbitrary like uh bytecodes that you write by hand like a maniac uh sounds safe and yeah uh but what I'm saying is like there is currently an actor said there is an an actor on Falcon on some test net uh that allows you to interact with the storage layer but it's super hard to access it because you have to build like the bicycle by hand so you have to push all the arguments to the stack then you have to manually encode the the data in cboard from rust if you can make that work that should be amazing uh we haven't been able to make it work yet but if you go to our GitHub repo you can see all my failed attempts with commented codes of like manual byte code but if someone wants to pick that up uh that would be amazing geez well it's I mean it's possible at the end of the day somebody did make Roller Coaster Tycoon and assembly so I'm sure we can do storage deals and assembly too but uh yeah I think you need to be a special kind of developer to to really want to put yourself through that so if there's any of you out there feel free to give these guys out a hand all right well thank you very much I think we're gonna just move on to um Charles's truck next

Automatic transcript — names and jargon may be misspelled.