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

Loading player…

Ethermint & NFTs – Billy Rennekamp

Ethereum DenverFri, Oct 9, 2020, 12:00 AM

Speaker

Billy Rennekamp

This talk is from ETHDenver, the world’s largest Web3 BUIDLathon and Community Gathering. ETHDenver’s content is crypto and blockchain focused. Subscribe to our channel to learn more + connect on Twitter: https://twitter.com/EthereumDenver. Speaker: Billy Rennekamp of Tendermint Abstract: An instructional course that uses Cosmos SDK to build an NFT blockchain. We will also go over the process of deploying your own EVM Blockchain that you can interact with via Metamask and utilizing all your favorite Ethereum developer tools. This talk was recorded Friday, February 14, 2020 . ETHDenver 2020’s content themes included DeFi; DAOs and Token Engineering (TE); Gaming and Usability; Protocols and Interoperability; and Public Good and Social Impact. Industry experts also weighed in on topics like decentralization, privacy, identity, non-fungible tokens, scaling, governance, diversity, and arts and culture in blockchain technology. The 2020 event was February 14-16 in Denver, Colorado and hosted 2000+ blockchain enthusiasts, developers and community members from 50 countries and 50 U.S. states. 🔴 SUBSCRIBE ETHDenver’s YouTube https://www.youtube.com/channel/UCgz9NU06t_FkT0Py1Vadczw 💡 LEARN ETHDenver’s Official Website https://www.ethdenver.com/ 👋 CONNECT ETHDenver Twitter https://twitter.com/EthereumDenver 📖 READ ETHDenver News on Medium https://medium.com/ethdenver 🛍️ SHOP ETHDenver Official Merchandise bufficorn.com 💬 CHAT Telegram https://t.me/Ethdenver Discord https://discord.gg/jteMn5c 📱 FOLLOW LinkedIn https://www.linkedin.com/company/ethdenver Instagram https://www.instagram.com/ethdenver/ Facebook https://www.facebook.com/ETHDenver/

Transcript

howdy my name is Billy Rooney camp I'm gonna be talking today about the cosmos SDK module called Ethernet which is an IBM module and Peggy which is a trustless implementation of a peg between probabilistic chains like aetherium and cosmesis TK chains little background about myself I'm from Louisville Kentucky the home of Bourbon racehorses and bluegrass music I'm a developer relations engineer with tender man I joined building the loonie wallet which is a front-end I built the NFT module I helped with ether mint and new vertical is Berner trains and I may be talking about in a minute previously I've worked with group of friends with a studio doing Devon design I've launched clovers Network last summer and I've also worked with gnosis Aragon and art blocks and I'm an avid hackathon ER so look out for me this weekend quickly I'm gonna go over the evolution of blockchain development to sort of see what got us here if anybody had the displeasure of trying to do something different around 2012 or so you know that the only real option out there was just a fork they get coin the Bitcoin codebase all you could really do is kind of tweak the parameters change a couple things very very small you couldn't really make an application that was very different from Bitcoin itself this did birth the first great wave of coins that we all have come to love but of course later on we had aetherium which birthed this brilliant virtual machine that you could not have to worry about building a blockchain yourself but actually just deploy adapt to it this way you could focus on app development instead of trying to secure a blockchain this birth the second great wave of coins because it was so easy to deploy your own but actually it's been a Cambrian explosion of different protocols products ideas devices and and it's been a real sort of hotbed for these ideas to be compounded the problem is that with so many people in the same kitchen sometimes they can't agree on what they want to do together sometimes the features don't match exactly there's all sorts of growing pains that have taken place across the theorem you can think of Bitcoin as being something like a calculator application-specific blockchain that does one thing very well and that's all it does with that in mind a theorem is kind of like a compatible time sharing system so back in ye olden days you would only have one computer in the university and you'd have to kind of get in line to have your turn running applications on it you were a bunch of people all sharing the same virtual machine or the same actual machine and theorem is a little bit like that today which is why we have you know sometimes long waits for getting a transaction through because we're all literally standing in line trying to run processes on the same machine another way to think about aetherium is a bit like a local area network so inside of this secured Enclave we have the ability to communicate with each other with a lot of really amazing trust assumptions you can do these sort of money as Legos compounding interest building blocks stuff which we all have come to love but you are very much restricted to that local area network and there's a concept that I'd like to get across today which is the Internet of blockchains because if the areum has its own feature set and its own sort of ability to do things it does it is also restricted in those things where there's another idea that maybe application-specific blockchain similar to Bitcoin being a calculator could exist but not be siphoned off and that scenario you would have an Internet of blockchains where you could route traffic similar to the real internet following the tcp/ip protocol you could use something called IBC to route traffic between block chains and each one could kind of do things very specific because at the end the day the Internet is not a single computer it's a bunch of different computers doing different things at different times with different features different security assumptions different purposes all connected through a protocol that they all agreed to use called tcp/ip the Internet's also not a single stack every single one is different for its own reason doing its different things has different reasons to exist in different ways so why should the interchain be a single chain with one single homogeneous set of features to enable this sort of vision of application specific block chains people at Endermen we've been trying to put out the tools that are necessary to kind of build an ecosystem of trustless application-specific block chains the glue behind all of those is something called IBC but in order to sort of speed the process up we wanted to put other tools out there one of them is a cosmos SDK this is a bit like Ruby on Rails for block chains so while the Internet consists of a lot of applications and a lot of frameworks one of the popular ones being Ruby on Rails is by no means the only one we hope that it can be a great choice especially if it has features that are needed for whatever network it's being built whatever application is being built but by no means is it the only one one of the features of the Kosmos SDK is ten Durman tenorman is actually a product outside of the sdk as well it's been integrated at the SDK so you don't need to really think about it but it's essentially an extension of years of research on Byzantine fault tolerance it's been extended with the idea of blockchain networks in mind so that much larger validator sets could be used than traditional pbft implementations it also allows for interesting configurations with vertical scaling so instead of trying to figure out a bunch of bells and whistles to shove a lot more people onto the same blockchain why not just have a bunch of different block chains for each application and connect them or if you have one application and you run into limits duplicate it the same way you would have traditional web development have multiple stacks that communicate between each other each one having its own sort of ability to have throughput one of the nice things about tenorman is that it has instant confirmation so you never have to do this weird UX dance of saying thank you for your transaction please wait you know 10 to 15 confirmations I'm sorry there was a chain reorg we have an uncle now I don't know what's happening just give me a minute I'll figure it out with the confirmation you know exactly there's not going to be chain reorganization one of the other modules that comes out of the core sdk development kit is governance so you have kind of voting out of the box three kind of things that can go through that our text updates just sort of getting to agreement about some topic you can put through parameter changes which is essentially chain upgrades live chain upgrades also known as software upgrades this uses liquid democracy for bonded stakeholders so if you own tokens and you put them into a validator you delegate them you allow that delegate that validator to vote on your behalf unless you decide to vote differently that's the beauty of liquid democracy so I mentioned a couple times now the thing that really brings all this together is IBC this is the protocol that allows you to trust Lissy send information between block chains and the way it works is you kind of take header information from each of those block chains you do a little handshake sort of the same way TCP works hey I want to talk to you hey I acknowledge you want to talk to me I heard that you wanted to talk to me hey I heard you wanted to talk to me that I wanted to talk to you now that we know each other exists and we both established that we exist and we both have some record of our state our headers then we can start sending packets back and forth those packets come with evidence that proves they really came from where they came from so they can be interpreted and used however those receiving ends decide too similar to tcp/ip you know you can you can send packets to a computer that's not prepared to receive them or as ignoring 90% of them and it's not going to break the system it doesn't break tcp/ip so you have two levels this standard protocol just sending serialized bytes and then the application level where you actually receive them decide to do something with them interpret them process them this opens up this kind of configuration of a hub-and-spoke model here you can see the cosmos hub which is a blockchain that is launched last year it's meant to be basically the plumbing of this Internet of blockchains but like any robust system it should never be a single point of failure there's another hub being built out of China called the iris hub and it can similarly function like this diagram because it makes a lot more sense to use hubs when routing these traffic instead of every single block Jane talking to every single blockchain at the same time so what's really exciting that the SDK is that it becomes the sort of modular library system so if you've ever used open Zeppelin you know that there's all these sort of well tested libraries out there that you can just import use the SDK works like that you have core modules that you see on the screen but there's also modules being built in the ecosystem a little bit like a node package manager one of them is Peggy it's been built by Swiss labs commissioned by the interchange foundation and this is a module that you can import and enable inside of your app file and it allows you to transfer messages between probabilistic chains like aetherium and your cosmesis DK up with IBC one of the requirements is that you have to have fast finality so it doesn't have to be a tender mint chain it can be any sort of fast finality chain something like Pio a network would be able to use it polka dot will be able to use at East 2.0 will be able to use it but these 1.0 cannot use it because it's probabilistic you never know if there's gonna be a longer chain and it's gonna disrupt this whole series of events so what you do instead is you have a middle man which is Peggy Peggy has real Ayers that watch both sides of this chain one on the etherium side and one on the sdk side whenever they see a packet coming from the etherium side they wait some number of confirmations before they think it's okay and then they manually transfer it over different Peggy implementations can have different security thresholds so maybe there's a Peggy who has a one confirmation security threshold a piece of ether which has been transferred through that might have a lower value because the security guarantee is much lower whereas a peg implementation that weights a hundred blocks would have a much higher security guarantee and a higher fidelity of value doesn't really matter exactly what your implementation is the bottom line is that it lets you move things back and forth you should know that the last week I have had many sleepless nights getting Peggy up and running because I wanted to use it for the Denver cosmos burner Shane this is a new vertical that I'm excited about I mention the beginning called burner chains name taken obviously from the burner wallet which was started here in Denver the idea is that it's a low-security temporary blockchain used for events or just to demonstrate new capabilities it has a life cycle built into it from the beginning it's meant to come down it can serve a purpose and then disappear just like a burner chain so for this one it uses Peggy and it's connected to the X Die network where the buff of the doubt process is running so there's this game going on where people can learn these XP points every sponsor was given some number of XP all of our XP are locked up on our burner chain so if you sign if you go through our survey you are given some XP on this burner chain and then you can move it back to X diet via our peg implementation but that's not all on this side chain there's actually a game running it's a scavenger hunt game and a riddle game there's different questions that you would query the blockchain for that leads you to find different answers if you find them you submit them with a commit reveal scheme and you get rewarded with more XP or the new token called brain token you can transfer these back to X die and you can use them to redeem the NFC badges which are also part of this buff a tile game if you're interested in that you should take a look at tutorials cosmos Network slash eath Denver another module were really excited about is ether Minh it's been shepherded by chain safe and gonna be in use we're really excited about by Eragon coming up in the Aragon chain ether mint is an IBM module for the SDK so say you have built this massive product on aetherium but you're running into scaling issues you're running into sovereignty issues and you want to redeploy your own independent chain but you don't want to spend hundreds of thousands of dollars rebuilding all your utility inside of golang which is what cosmos DK uses you can sort of jump start that process of moving into a sovereign chain by using an EVM module you can deploy your blockchain have the EVM and then redeploy your contracts there it works the exact same as the normal EVM module it has all the same RPC ports you can talk to it with meta masks it's a seamless experience it's just a different network and you also benefit from all the things that come with the SDK you can still have governance still use the staking IBC all of these features of the sdk part of it while having basically a sub blockchain running through the EBM I mentioned that this is a great sort of stepping stone for projects like Eragon to quickly move their entire stack over to an independent blockchain but there's also really interesting things that become possible when you have an interaction between like a super blockchain and a sub blockchain inside of it you can do things like hooks so you don't do cron jobs and subscription projects that you aren't able to do in aetherium have there's there's two hooks the begin blocker and end blocker inside the SDK so this is a function that will execute arbitrary code at the beginning of every blocker at the end of every block so if there was some subscriptions inside of us contract it could go through and make sure that all the subscriptions are paid out at the beginning of every block at the end of every block this is a design pattern that's driven me crazy many times while writing solidity I'm very very excited about also if you had some sort of a protected EVM you could have a governance module on the Kosmos SDK be used to arbitrate which contract code could actually be deployed to the EVM so you would make a text proposal or a proposal parameter change with the actual byte code with a description of what it does and the code so that all the people where stakeholders in the system could evaluate it make sure the code is sound is valid and then only after voting approval with that approval go and actually deploy that code to the EVM otherwise maybe you don't want anybody to be able to deploy it's all sorts of like features you can use to upgrade and trick out basically what the EVM does that way so the thing that's really exciting now is that the SDK is finally at a point of maturity where we get to sort of run back through the amazing Cambrian explosion of concepts which have come up over the last couple years especially in the East space and start doing implementations of them and going not restricted by the crazy EVM restrictions that come when you all have a really aggressive you know what is the word adversarial environment like the EVM you know because the etherium network is such a large and shared system the EBM is built sort of battle ready and expecting the worst possible behavior because anybody can deploy code to the entire network at all times whereas if you're able to just design an application from the ground up yourself it can be doing exactly what you want it to do with all of the features of amateur programming language like golang so I'm really excited to see more of these modules built out I mentioned the NFT module is also available there's a repo called cosmos slash modules where you can look for some of these that are already there and as a potential project for the hackathon we would love to see anybody who wanted to try their hand building a custom module a lot of tutorials at tutorials cosmos Network saying how to do that and we have $5,000 for hackathon projects quick ideas of things that I would love to see complete PEGI with NFT transfers I mentioned the peggy's doing token transfers right now there's a half done NFT transfer implementation that if you just push over the fender I think would be a great project connecting Peggy to e Thurman so say you wanted to do arbitrary messages between two EDM chains in order to put a destination and the call data it's just different fields than token name and amount so it's not such a big change from what's currently happening conversion between Ethernet ERC 20s and cosmesis DK coin type so on the SDK you have a data type called coin which is essentially a RC 20 and inside of the EVM you know you've got contracts where you can deploy any RC 20 but say you want somebody inside of your ether mint implementation to be able to transfer their ERC 20s into like the wider cosmos ecosystem through IBC you would need to have some programmatic exchange between that EBM module and the coin module so we'd be able to say here's like a designated burn address whenever somebody sends it to that burn address it'll mint a coin inside of this other module inside the stack that coin becomes a full-fledged member of the SDK sort of programming environment but it could also go back so that's something that I would love to see and I think actually that chain safe is working on it because Aragon will be using something similar front-end interface for the Peggy burner chain so if you go back to those instructions that I mentioned it'll tell you how to access it and how to query it how to submit answers but all that is done through the command line if you're interested in building an interface for that project I think that would be also a really good one and a high scores rest endpoint so high scores are essentially just token balances and currently it's a little tedious to try to get all of the token balances of every user on a cosmos chain all of the pieces are there they're just not built into a rest endpoint so modifying the rest client to query all addresses and then getting them by balance maybe with pagination by clipping it at numbers at a time or even sorting it those would be all really really cool projects that I would love to see also to mention upcoming is game of zones last year we ran an adversarial testing it called game of Chains my brain is is melting right now it's an adversarial assessment so before we launch we want to make sure that nothing terrible would happen so we decided to pay people to make something terrible happen before the network went live we're essentially doing something similar now with IBC IBC expect them pleat and the implementation is almost finished once it's done we'll begin game as owns you'll be able to spin up your own chain and start talking to other chains if you can do anything nefarious in that system if you uncover bugs if you can attack somebody any of that kind of activity is rewarded well up to 100,000 atoms we can learn more cosmos that network / coz and last but not least we are always hiring take a look at our site cosmos network learn more about us see what is going to be the Internet of blockchains do I have any questions I did that good I just filled y'all's head with knowledge to the point yes any plans for a public chain so cosmos is a public chain the cosmos hub excuse me these are all other public chains some of them are just concepts of them are actual chains there are I think five billion dollars worth of assets currently secured by SDK chains right now although without ibc none of them are talking to each other so this is the last kind of final hurdle to connect this concept with the Internet of blockchains but most of them at this point are public the beauty of this is that you actually could have private networks communicating with public networks in a trustless way anybody else my name is Billy Rinna camp let me get the back up if you'd like to follow me i'm on twitter with the same name github but ok with me you can check that out tutorials thanks for coming [Music] you

Automatic transcript — names and jargon may be misspelled.