Build and Deliver: New Community Tools from ETC Labs

EDCON 2019 · 11 Apr 2019 · 14:20

Terry Culver reviews ETC Labs’ accelerator and the case for cooperation across Ethereum communities. Shane Jonas then introduces OpenRPC, a machine-readable description format for JSON-RPC APIs, demonstrating documentation, an interactive playground, mock servers and client-generation tooling intended to reduce repetitive integration work.

Speakers

Topics

From EDCON 2019, hosted by EDCON.

Transcript

the last one very exciting okay so for our last talk of the day we actually have a a two-parter we're gonna have two speakers up on stage which is pretty awesome they are Terry Culver and Shane Jonas they are CEO and core developers at etc' labs they're here today to talk about some new community tooling that they've built free TC so let's give them a round of applause and welcome them up hi there and thank you for the warm welcome Shane will join us in just a minute as

you can tell I'm Terry Culver and we are based in San Francisco California we operate an accelerator where we support invest in blockchain startups those focused on e TC and the e TC related block chains such as etherium and we also host a team of 14 core developers working on strengthening the blockchain itself I'm gonna talk a little bit about our approach and the accelerator and then Shane will come up and talk about an exciting new release that we'd like to share with you okay we believe in the future of etc' it has

enormous potential but we don't think that this potential comes at the expense of other blockchains our approach is to focus on first interoperability and on tools that benefit not just DTC but ETH and other blockchains as well we all know that etc' was established around the principle of immutability but this principle is not a constraint instead we think of it as a foundation upon which to build we also think that this principle is not an excuse to be isolated we really think that the future of EDC depends upon its ability to collaborate with other chains on our

ability to innovate and collaborate with other chains and to contribute not just to the e.t.c community but to the eth and other ones as well we think that you know there tends to be a little bit too much isolationism in the different block chains and this is something that we're committed to overcoming we do this first through the incubator we are just about to finish the first cohort in in the accelerator where we have 12 startups working on a range of different d apps and protocol level solutions and I'd like to highlight two for you today that I think are really interesting one is called

cries in' and they offer a algorithmic trading solution for anybody you can go on to their website you can become a member oh and by the way it's not etc' specific so you know this isn't simply about a theorem classic you can go onto their website become a member you can design and backtest your own trading algorithms for crypto and then apply those onto different exchanges in a sense everybody can become an algorithmic trader they constantly are updating the different features and and trading strategies that you can develop and implement and they're growing they're already linked with

oneexchange and there are others on the horizon if you're interested in in the trading side of things I encourage you to check this out it's it's got a great interface simple to use and the underlying algorithms are actually fairly sophisticated the second is called ether node and basically what they've done is built a device that enables you to create your own node at home for etherion based box chains and it also allows you to build your own home network and yes from the cooperative is here he speaks tomorrow he's got one of these with him if you see him around ask

him to show it to you it's lightweight portable durable very cool it this device in a sense democratizes the you know the networking process that's so essential in the blockchain ecosystem and you know we have we have many other startups in the lab and if you'd like to check them out please go to the website you know I think this is like I mentioned just our first cohort our second cohort will start in September and we're already seeing a significant increase in the number of applications for the first cohort we saw about a hundred and fifty applications this time around we'll probably see north of 250

300 so what that means to us is that there there's an enormous amount of interest in experimenting in the space and there's a lack of places where people can go in order to get the support the investment and the technical expertise to conduct that kind of experimentation on to the second part we do host a team of core developers working on a range of projects I'm not going to go into too much detail and instead let my colleague Shane who is much more of an expert on this side of things come up and tell you about that Shane right yeah so we do have a range of

projects you can see here a lot of them are focused on interoperability we have an LLVM project as well to have Sputnik VM as the backend for LLVM we also work on classic at multi GAF it also adapts and we have another project which is open our pc and well worked ok so yeah I'll maybe dive pretty deep into open RPC so let's see let me talk a bit about the problem first so the problem is is that well first of all JSON RPC isn't going away and we currently have some things like we have very repetitive and

outdated JSON RPC clients as well as documentation and it's very unclear like what JSON RPC methods and API has like between Jeff and parody like it's it's very unclear what methods it has versus the other and there's also with that because you just get a lot of API and compatibilities but it's not all bad news JSON RPC is pretty simple it's transport agnostic and it's actually really widely used in the blockchain space bitcoins built on it the areum's built on it there's a lot of other ones I won't get into but yeah so the big thing

that we saw is that there's like a big gap in tooling around JSON RPC and there's lots of stuff out there that we can look up to for dealing with like automation and tooling and some of those are G RPC and swagger but JSON RPC lags behind a lot so what what would we need to get to the level of likes a swagger tooling or gr PC tooling what we need is like an interface description for json-rpc api's and ideally that's human and machine readable which would get us like service discovery we also need like clients for

many languages not just JavaScript not just Python right should be able to do it for many languages and ideally documentation for those individual languages as well as like just general API documentation so that brings me into talking about open RPC and what is it it is a simple JSON interface description for JSON RPC api's when properly defined it can a consumer can easily understand and just interact with the remote suit with one of these remote services the big vision here is to raise the bar for a JSON RPC tooling just across the

entire block chain space to cut down on developer work and bugs and compatibility issues so what does this thing look like it's here's like a 10,000 foot view just has like some metadata info servers like the the big crux of it here is like the method definitions you can also define tags external docs extensions and you can compose those all together with components so that's the 10,000 foot view we've released the 1.0 of the spec so far you can check it out here at open

github calm open RPC spec but this is like this is pretty meta so let me dive into like an example of let's say eath block number so eath block number it takes no parameters the current block number so what would a document look like for that it looks like this so here's the info metadata where you can put title description and the version of your API and here's the methods right so here's eath block number and it takes no parameters is a schema which is type string and just for a description here it's a hex representation of the most

recent block so this this lets us do like some pretty amazing stuff like this is already helpful like if I just had this I'd be able to do a lot but we've also built a lot of tooling around this already one of those is the playground so what this does is you have like editor on the left which lets you autocomplete everything from the spec and you have documentation on the right-hand side and this lets you basically interactively build your open RPC document so one of the other tools is obviously documentation which is like

say the right-hand side of the playground I was talking about but you can obviously use it on its own and one of the next tool would be like the mock server which lets you mock out an entire JSON RPC API and in this case I have an example pairing where I'm just returning like the Genesis block here 0 X 0 and the mock server is also great because it implements service discovery so you can see here like if I call the JSON RPC method for RPC discover then I get actually my open RPC document back and then you can use those to feed into the

rest of the tools so another great tool that we have is generating clients so in in this case I have a multi GAF RPC client and it can see I just like auto-completed eath block number and you can see like it's giving me like inline documentation in my editor for up for all of this stuff okay so what's what's next for us what's next for all this tooling so one of it is multi guest support we have a branch up here now it should be in in the next couple weeks and right now the client

generators support typescript JavaScript and rest but we want to have many more let's say like going skala a bunch of other ones would be great a bunch of other incremental tooling improvements and we also have improvement proposals up for for a themed classic for aetherium and we also have one for Bitcoin so if you want to check those out and get some conversation going and maybe I'll maybe I'll touch a bit more on the multi get support here and what are like big giant vision is for the use case for multi get so multi gothis here on the right hand

side exposes a JSON RPC API but it also exposes like JSON RPC open RPC document which lets you use the client generator to generate all these clients and also you can have like I showed the playground which gives you kind of like interactive documentation for the JSON RPC API okay so hopefully that showed you guys what our vision is for a lot of our tooling which is like leveling up the entire blockchains tooling and it doesn't have to be for a specific chain and I would hope everyone would check

out github.com slash open RPC and maybe contribute thanks [Applause]