Road to a Polyglot Ecosystem for Cardano
Full Transcript
hi everybody this is Charles hoskinson broadcasting live from warm sunny Colorado always warm Always Sunny sometimes Colorado today is September 26 2022 and I wanted to make a video to discuss a very important topic it's something actually we spent most of last week in some way discussing or connected to so as many of there's a huge amount of work right now going on behind the scenes about building the scaffolding for a members-based organization that basically serves as kind of the Hub and spoke that Aggregates the community it kind of determines the will of the community it comes up with strategies to help them get there and then it encourages people to execute them so the cool part about that is it's a way for everybody to share their voice now voice works in many different ways there's Twitter and there's Reddit and there's telegram there's also software and if we're gonna get to a healthy ecosystem we need to get to a point where we have a polyglut ecosystem which effectively means that there are multiple clients running concurrently with completely different Dev teams different philosophies different languages and frankly different USPS so there's this issue of well what is the canonical client of cardano and it's a very similar question to what is the canonical client of wallet of cardano and the answer should be none instead what the answer should be that we agree on standards and those standards have a robust testing framework and then we have two types of clients in wallets certified and uncertified so what I decided to do is make a video it's actually on the back of a poll that Rick McCracken good old Rick created for us and he has a hypothetical poll he said if DC spark put out a project Catalyst proposal for 8 million USD to build another Cardinal node implementation of rust and open source how would you vote and a lot of people said yeah that's interesting yeah I'll upvote it it's a fair question and so this is something actually we've been thinking about for a long time and we started here so this is a legacy project from the European Union it's called privilege and we actually received money to work alongside guard time IBM research University of tartu TV University of Solano University of Edinburgh and here's us input output and our contribution to that was this idea right here updatable blockchains from Nicos and Michaela aguilos and Dionysus and we had a long conversation basically about how does one create an ecosystem where you get security and good specification and great testing but at the same time you have multiple clock science so behind the scenes we've been working with a language called agda basically it's super Haskell and we've created a lot of infrastructure and we're starting to move in the direction where we're going to go from hypothetical infrastructure to applied infrastructure so here's kind of a whiteboard video hold on to your butts we're going to talk about a lot of stuff okay so basically what we want to do is with the MBO the members based organization it'll have this idea of sorry my pad is acting a little weird it'll have this idea of ctfs or cardano technical fellows something like that and basically these are people that kind of work on the core and they come from the community so they're members of community plus staff so they're not beholden to a particular company but rather they're either on loan to the members-based organization or they actually work for it but in any event basically what we can do is we can have this ACTA core and that would be a reference now it's not production okay so that's not its Point does not equal production so production is what you guys have right now with Daedalus and it has all kinds of extra code and all kinds of extra stuff and basically the point of that production is to ensure that your client is very fast so things like Fast secure some compatibility stuff there's going to be stuff off spec so proprietary things that are built into for that particular ecosystem and so forth like for example if DC spark did their own client I'd imagine they would probably build some special infrastructure to connect it to Flint wallet and make that an easy process whereas a reference wouldn't do that and it'd be the same for us for a node if we commercialized it we'd probably connect it to lace because you want a good user experience it's not really what a specification is about so the idea is that your CTs would maintain a core and they'd be able to very quickly link the Sip process all right to a formal core and then what happens is as the end of the Sip funnel as you go through all the stages of the Sip so sips are again cardano Improvement proposals okay so at the end of the funnel you get to a point where you say hey let's spec it and because this would be a formal spec with an active core what you can actually do is something called code extraction so what it does is that the specification gives you code that can serve as a reference for testing so we're still kind of putting these pieces together and then we'll do a big formal presentation but the basic idea is that you have your AG decor then you have your reference extracted code and then you'll have a little bit of other stuff so you'll have your reference update system okay and then you'll have your wallet certs and then you'll finally have your core cryptography because people probably shouldn't be rolling their own crypto we should consolidate on that and get those things done and this right here would serve as the reference framework for core cardano now you'd need in parallel something for utilities infrastructure and Integrations that's a different topic that's stuff like Rosetta and dbsync and so forth but for now when we talk about competing clients this is the way to go then you could take the Haskell client and start and say hey it's no longer canonical Haskell client is just the Haskell client then you could have a rust client you could have a typescript client etc etc and then there's just this question of are they certified or not so you could have some be certified and then you can have others not be so the basic idea is that the active core would have a small team maybe five to ten and as I said a combination of ctfs who are basically working straight for the MBO and then contributed developers like people from i o people from DC spark and they basically maintain a reference update system they maintain a reference set of extracted code they would prove properties about it and they'd also maintain a wallet certification plus the core cryptography of the system and then if anybody wants to build a client you the community you have to have that question of well how do I know my client is safe how do I know my client is compliant with the protocol I.E it's interoperable how do I know that the hard Fork combinator is going to work for that client so that when an update is triggered that all the clients update and so forth there's a lot of questions that a Community member would have and effectively what a certification process does is it gives you the agility of competition but then it gives you the safety of standards and what's really nice is that this Act of core because it's not production this is where all the dev time really is you can do stuff weeks here maybe months and over here you do stuff years because at the end of the rainbow we have to test it on many different platforms you have to ensure compatibility here this is all about saying that we have a ubiquitous standard we want to make sure that everybody is following that so this is where I'd like to move and and then I owe we'd be happy to continue if we get the economics right the Haskell client then we can add a lot more to it make it less canonical and more of a commercial client and then I'd like to see tough competition I'd love to see DC spark actually be the custodian of a full node rust client and I'd actually like to see at least one imperative client a typescript client or a dart client or something like that to bring web Technologies alternatively it'd be really cool to do python because I think that has a lot of pedagogical value having a python client our ecosystem you see and then we just basically all contribute a few ctfs to the Core and then this gives some teeth to the SIP process because the last step of the Sip process would be to specify things inside the core we already have extremely efficient code extraction in fact James Chapman and others in our ecosystem are extremely good at this and they've written many papers about it and act has grown up a lot as as kind of a a good framework for this type of stuff and then we can talk a lot about what safety standards should exist then if you're a wallet developer so they say well what is an official wallet what should be listed on cardano dot org as a recommended wallet or any of the other media channels which were quite large basically you can just create a self-serve test that says anyone who is certified gets to be listed on cardano.
Found an error in the transcript?
Help improve this transcript by reporting an error.