Chain Reaction #2 — Getting IBC Hackathon Ready

Sahith Reddy Narahari
Vitwit
Published in
16 min readOct 28, 2019

This article is a transcript for the IBC chain reaction #2. It was a live video session to give updates on the development process of IBC and Cosmos Hub. You can find the video link here: https://www.youtube.com/watch?v=ZChn6E8Nz_s

If you miss the previous session, you can find the transcript for Chain Reaction #1 here

P.S: This is the literal transcription of the conversation, we are looking forward to making it more sensible and summarized for coming videos.

Attendees:

Zaki Manian (Head of Research at Tendermint), Jack Zampolin (Dir. Product at Tendermint), Michelle Leech (PR and developer marketing at Cosmos)

Michelle: So we are back for the second chain reaction. This time we have Zaki and Jack. Basically this time I think we are gonna give updates on the development process of IBC and cosmos hub but maybe we get started since next week in San Francisco blockchain week and the DeFi hackathon. What are you anticipating that we will have ready, what are you anticipating seeing in the DeFi hackathon, what are your thoughts?

Jack: Yeah i think DeFi hackathon is really an exciting place for cosmos to showcase a bunch of the stuff we are working on, over the last six months since the hub launch. We really had quite a bit going on and you know, especially with devcon and all of these other conferences, it’s easy for a lot of that stuff to get lost. So this gonna be a showcase for a lot of big projects we’re gonna be working on for a while. You know for me personally IBC, and I know that’s kinda the top of Zaki’s list, that’s what we’re most excited about.

Zaki: So specifically like, what we’re gonna be having for IBC is, what we’re aiming for is two things. One is the IBC protocol implementation that the team at tendermint has been working on integrating with the cosmos-SDK. We’re gonna be able to demo that, we’re gonna have people to show, people participating in the hackathon, how to use the software. We are also expecting to have contributed to by the iris team on implementation of ics20, which is token transfers, working and live.

Jack: I was actually just checking on it this morning and it looks like we should have that available in the demo. I was hoping to run through today but we did not quite, I think we’ll be a day late on the updated demo so look for that next week in what we’ll be incorporating the iris token transfer to work. Other big projects that are kinda announcing things at the DeFi hackathon, the Agoric folks as well, another huge one. You know I think a lot of folks in our community have seen our collaboration with Agoric on the IBC over the last few months. But Agoric is also working on a bunch of really exciting things around safe smart contracts in javascript on top of the cosmos-sdk and for me you know to see additional VMs in programmability come to cosmos based chains is a great feature. I’m really looking forward to what Agoric will be demoing. I do know that they are also working on an IBC implementation but I don't know if that will be compatible with ours by the time the hackathon happens. So you know, Zaki you’ve seen them recently too right?

Zaki: Yeah, I haven’t done an update yet on wheter or not Agoric’s implementation will be ready but that certainly is a target. We have literally 4 different virtual machines integrated into cosmos in time for the DeFi hackathon. We have Kadena’s kadenamint. Kadena running on top of tendermint which we’ll be able to demo at the hackathon. We have chainsafe’s evm on top of the cosmos-sdk. We have Agoric’s swing set implemetaion and we have wasm on top of the cosmos-sdk also available. I think one of the biggest challenges is gonna be the DeFi hackathon in general, too many things. In general, we’ve really put out a lot of infrastructure in terms of cosmos. We haven’t really had too much of an oppurtunity to share with the community and our developer community to start picking up and playing with and to figure out new applications and use cases for, but all of this stuff is coming together right now with IBC. And IBC is the mechanism with which we are going to bring it to the public network.

Jack: Yeah, I was just at Blockstack Conference yesterday and this is exactly what Andreas Antonopoulos, what talking about like how IBC is gonna connect or interoperability, in general, is gonna connect these disparate chain community and help bring into like one global crypto community. So if we are thinking about each of those four VMs, all very exciting and Zaki one thing I don't know about is Kadena. We do know that they have their own domain-specific language, can you talk a little bit about applications on Kadena and what folks are excited about there?

Zaki: Yeah, So I would say that, like each of our VMs has a kind of unique selling point which is kinda like why its sort of interesting to have all these in cosmos ecosystem, all of the VMs that have been integrated into cosmos and tendermint. What is unique about pact is that it is a language that is focussed on formal verification and security and making that really accessible to developers. It’s probably the first smart contract language that is really kind of, has this goal of making the whole formal verification not just like a specialist activity but something that the developer can just add to their smart contract as they’re building and that seems to be a really exciting and unique capability and it’ll be available in both cosmos through kadenamint and on the kadena mainnet that will be launching soon.

Jack: Is that kinda similar to what facebook’s been trying to do with move and like guaranteed developer safety at the language level?

Zaki: Yeah, I would say there is you know, there is to a certain extent a certain amount of overlap between both the efforts of facebook on move and pact, with what they’re allowed and you know what they’re trying to do at the language level what they’re trying to do at the smart contract level. Pact’s solutions in terms of being able to, for instance, provide guarantees in the smart contract, like formally verifying that you know, the interaction between two contracts will always be correct. So between something uniswap contract and let's say a token contract, being able to guarantee that those interactions will always be correct. This is something like, the move is aspiring towards but pact has it in some developed form. So it's gonna be really interesting to see how all these pieces start fusing together with IBC in this ecosystem.

Jack: I think one of the most interesting articles I’ve ever seen on benefits of formal verification; Boeing did a couple of different tests on different helicopters. One version where the software was formally verified and the other one it wasn’t and they let, I think they had like 10 or 15 different people trying to like, actively defeat the systems in the drone helicopter. In the one without verification, they were able to bring the helicopter down fairly quickly. However, the formally verified helicopter was able to keep flying. There is a lot more detail about that if you go check it out online. For me, that kinda really solidified thinking about formal verification, as you’re building these extremely complex systems. The peices at the bottom especially really need to be extremely solid and proof against attack and when building complex work to contracting applications with something like kadena, an issue like the dao becomes much harder. So I think thats a nice time to transition into…

Zaki: I do want to just like make one point relative to like, to DeFi and all of this investment we have made you know. So far the DeFi ecosystem has been very much focussed on like the ethereum ecosystem, which we are supporting in cosmsos through ethermint but like on the real, I would say limitiations on the potential on DeFi right now is that like, we don’t really know that the contracts that are managing hundreds and millions of dollars are correct. The EVM was not designed with any sort of formal verification in mind. There’s been great work done by the runtime verification people, sort of bolting on formal verification. The things that we’re trying to do with you know both the work with agoric swingset and the work with kadena and pact is actually provide options to building DeFi tooling in the cosmos ecosystem that has like sort of, much stronger safety guarantees and hopefully that will make the investors, the wider public feel much more comfortable with potentially having large amounts of money in it. You know all this work that we’ve done in terms of formal verification of tendermint, all the work that we’ve done in terms of the testing and correctness of the cosmos-sdk stack adding on top of that. You know all of this work that we’ve been able to bring on from the community, from like the wider blockchain ecosystem in terms of smart contract correctness, it really should provide an entirely new compelling playground for DeFi applications. And that’s kinda like what we’re trying to show off with this sort of like, having all these VMs, having IBC, having all of these peices start to come together during SF blockchain week.

Jack: Speaking of pieces coming together, I think we could keep talking about VMs for a while but moving on to an another major project that’s looking to launch during SF blockcain week is something called microtek, which is a price oracle based on options pricing model that is aiming to provide real time price data in a decentralized way over IBC. Another application I think is very intereseting, Billy Rennekamp whose one of our developer evangelists, have been working closely with them to help build demos and we’ve been working with that project. Zaki and I have been working with them for over a year at this point. Excited to see, well I’ve seen the project quite a bit, excited to see people start playing with it.

Michelle: Also exciting is the competition that they’re going to run that should be interesting.

Jack: Yeah, it should be cool. So what else is at SF blockchain week, what have we not covered yet?

Michelle: I did want to ask you guys quickly, back to if we’re just thinking about hackers coming to DeFi hackathon. I'm just wondering like, first of all if it’s all connected. So i get to play the layman here with the questions or will they have to kind of pick and choose what they want to do?

Zaki: At this point the ecosystem is not fully connected so like this is the opportunity, you have atomic pieces, you have swingset which may or may not have IBC integration we’re not sure. We have IBC in the cosmos-sdk, we have the smart contract platforms. It’s something that for some of them, ethermint it would be possible potentially, in the course of the hackathon to like connect ethermint to IBC because they’re both based on cosmos-sdk. That seems like a thing that might be within the realm of what you could accomplish in the hackathon. Some of these other tools you can sort of build the isolated pieces but not fully put it all together yet.

Jack: Also speaking of ethermint, Jay or Christine or Chjango and I, Billy actually jumped on the call with chainsafe team at Aragon earlier today and did an AMA today on ethermint’s as well as Aragon’s move over there, so if anyone’s interested in a bit more detail on ethermint, that’s a great place to go. Also the chainsafe team will be with us during the hackathon to help folks out to build on top of ethermint.

Zaki: Yeah I’m like overwhelmed by the number of things.

Michelle: Yeah I’m a little overwhelmed. I was actually gonna ask, when you mean a demo that’ll be ready for the SF blockchain week, DeFi hackathon, what does it mean exactly, will be able to showcase it and walk through it?

Jack: Well in case of IBC demo, you know I think, Zaki and I have been talking about it for a while. Like what are we most excited about at this time is about folks hacking on with IBC and its building these application level protocols. So talking a bit about IBC at this point, IBC a lot like tcp/ip if you’re a developer is a layered connection protocol. At the base layer in tcp/ip are machines and there is handshakes, channels are created and data is sent on that. That data is just essentially arbitrary bytes and the only thing that gives it meaning are these protocols like HTTP which is the one that all our computers speak, that helps end users interpret that data accurately. So right the protocols that we’re planning on shipping IBC with, are token transfers. So one thing that you could do with those bits over those channels is, send value across in the form of tokens. NFTs would be another one. I do know that there is a team planning to hack on an NFT protocol. But much more advanced things like cross chain accounts, the ability of a validator set on one chain to control an account on another chain and actually make payments over there. That was recently submitted by a community member. Id love to see some work on that during the hackathon and then the other things like the validator cross chain validation, where the validator set of one chain provides a good portion of the voting power for another chain or the voting power in the entirety. So this is similar to the polkadot shared security feature that a lot of people talk about but there’s because IBC allows sending of arbitrary data between chains, there’s a multitude of potential applications for it and I think because this is a new paradigm, maybe this idea of point to point data transfer in the terms of value is not gonna be what’s going to end up being the most valuable application of IBC. Maybe it is something like this, cross chain validation or some yet to be dreamed up protocol. So excited to see developers hack on that and for me obviously being most involved with the IBC project, I’m more excited to see devs hack on that.

Zaki: Yeah, I would just say that one: the big things we’re, we’ll be ready for at the hackathon is, it will be very doable within the cosmos sdk for a developer to, for a team to come in, take the IBC demo code that we have, the work in progress, that end to end works, take the iris token transfer demo and use that as an example and develop sort of any new arbitrary application layer protocol.

Michelle: So if people are familiar with the cosmos sdk at the DeFi hackathon, then they will easily be able to play around with IBC.

Jack: Yeah, I mean we have a tutorial up right now or that’s not really a tutorial more like a demo that you can run, that shows the interaction between two chains. And this sort of nice transitions into the IBC current progress discussion. I set that demo up about two weeks ago and we’ve done a fairly significant amount of work to bring the IBC code that the research team delivered, up to the coding standards of the sdk as well as add some additional features around like light verifications and etc. We’ve started merging that work and Fredrico whose been the lead sdk developer, doing a lot of that on IBC is delivering a branch to me on gaia that I will be able to like rebuld this demo on. So I’m anticipating having that ready early next week and ideally, we can add the token transfer protocol to that as well so that’s kinda the current plan for IBC and we seem to be very much on track for that DeFi hackathon. So the bits you’ll be able to play with will be fully implemented. ICS2 which is the client protocol, ICS3 which is connections, ICS4 which is channels, ICS5 which is ports and the light clients been integrated already and ICS23 which is sort of that Merkel proof format. And then on top of all those sorts of individual pieces, that’s kinda where you have IBC and then that allows you to build application-level protocols and we will have an example of those application protocols ready for developers to hack on. The really nice thing about IBC is that a lot of the infrastructure that we’ve been building that I just mentioned, all that works, most people don’t have to ever worry about that. What you have to worry about is, the format of the packets that are coming across the IBC connection and that’s I think developers will have a much better understanding of that piece of the protocol, after playing with it. Also understanding how the connection between two chains work, how persistent those connections are and how easy it is to send data down the channels will become much more apparent once folks get their hands on the bits and start connecting chains.

Michelle: So if we look at it after DeFi hackathon, what's next then for you all?

Zaki: So we have a bunch of things, first is basically finishing the implementation, getting it into security audits, which is a big piece of you know delivering the final IBC version 1 to the community. DeFi hackathon is kind of like our first foray into familiarising our developer ecosystem with all of the pieces of cosmos and IBC and what you as a developer can actually do with this protocol. What we’re kinda gonna be doing after DeFi hackathon is really taking that online and bringing it to our whole community of developers, users and validators and show them what they can do with IBC and that will lead into game of zones, which more details of which should be available at worst case, the week after hackathon. Then we’ll have game of zones and we’ll release a version of gaia that has IBC built into it, then the cosmos hub will decide how they want to adopt it.

Jack: That version of gaia will also likely have another bunch of non-IBC related upgrades and a ton of other stuff and very excited to sort of get out in the world what we’ve been working on for a while, especially because the last upgrade has gotten held up. I think a lot of users are getting used to an older version of the software at this point so they’re gonna notice significant upgrades.

Zaki: So hopefully fewer breaking changes.

Jack: There are fewer breaking changes its just additional functionality, smoother functioning of existing pieces, and stuff like that. one quick note on game of zones, we do have a lot of folks asking us about game of zones and that’s great, I love the questions, enthusiasm. Really can’t wait to get this out and share with you all but we’ve been hesistant to publish a lot details because we were unsure whether or not the research team was going to deliver a secure or insecure version of IBC or what the level of feature completeness would be at the time we were planning on doing game of zones. So planning those different stages, what the victory conditions are, that kind of stuff has not really been posible for our state and we’ve have to kind of wait for this implementation to come in, start getting a look in everybody’s hands before we can really give a good judgment on what we need to test. So thank you everyone for hanging on with us and please if you have any questions drop them in the channels. I’m happy to tell you what my current feelings are on IBC.

Michelle: I think mainly then if we’ve kind of updated and if you guys wanna update on a few more things, I think we should probably open this up and collect questions the next time.

Jack: Yeah we are live on youtube, I would imagine that someone’s asking questions over there.

Michelle: It's not very user-friendly yet to hear yourselves delayed on youtube in order to find the questions but anyway, so maybe when we have the demo ready we jump on a call and we open it up and collect questions so we can hopefully help people get on-boarded as quickly as possible for the hackathon.

Jack: Michelle, if you actually open up the link and mute the video you should be able to see the questions. Is someone requesting a quick presentation of IBC at the DeFi hackathon? I think Chris will be doing one of those.

Michelle: I think its Gregory from regen whose asking about the presentation but I'm not sure. So we don't have so many questions but maybe next time we try and collect them and we get them answered when we have the demo.

Jack: Yep absolutely. Gregory, I did reference an IBC demo that’s in the gaia repo, pull request 130 and there’s instruction on the PR on where to find the instruction there.

Michelle: On another note, if you aren’t familiar and you watch this video later we do have a bi-weekly IBC working group and so if you want to start getting involved and familiarize yourself with kinda like the template and the process that’s being worked on, it’s a good place to listen in and you can engage with the team.

Zaki: If you’re planning on coming to hackathon and you’re interested in building something on IBC, the pull request 103 is the place for understanding how all that code works and is the place to run through the demo. We’re trying to get the iris token transfer protocol integrated on this repo as well.

Jack: Its actually open in a PR on the cosmos-sdk but actual implementation exists in their repo and you can see the def there.

Michelle: So I think thats a wrap then and maybe we do another one of these when we collect questions from the community and we have the demo next week leading up to the hackathon does that sound good? Actually I was hoping that we could get some of the judges and people to join cosmos youtube live and like give some random thoughts about what they’re seeing and how it’s going.

Zaki: yeah were really looking forward to the hackathon, there's a lot of ibc content that exists in the repos. Really looking forward to having the developer community start playing with it and now is a great time.

Jack: also you know if IBC is maybe not your boat and you want it to be a more fully baked before you play with it there is an avalanche of other content out there for folks to get involved in and very excited to see what comes out of this hackathon. The last one we did in berlin was incredibly productive and just one of the coolest hackathons, if not the coolest I’ve ever been to so excited about this one in SF.

Zaki: Great. Thanks.

Michelle: Thanks, guys.

--

--