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

Loading player…

EthCC 2: Rob Dawson

Ethereum ParisWed, Oct 9, 2019, 12:00 AM

EthCC 2 The Ethereum Community Conference is created by the community, for the community. It brings together great minds and forethinkers, and allows the community to grow. follow us : @AssethFR https://ethcc.io

Transcript

B Rob J FR I don't I don't speak French so the rest is going to have to be in English I'm sorry he I'm sorry um I'm I'm going to talk to you today about uh the pantheon product uh produced by Pegasus uh we've just announced our 1.0 uh version of it uh last week and so I'm going to share with you a bit about uh a little bit about Pegasus uh about Pantheon and what it how it works now and some of our some of our road map and the things that are coming forward with it so for for those of you that don't know uh Pantheon is new Enterprise client written in Java targeted to be I guess really friendly for Enterprises to be able to use so Pegasus uh put up your hand if you've never heard of Pegasus okay there's at least two people so uh where our our goal with Pegasus is to uh make it so that ethereum works uh in the real world for for Enterprise I'm sorry um but I guess really just wanting to make sure sure that that ethereum is a technology that's going to work today and in the future that the uh distributed future that I think everyone here probably believes in uh can be reached and a part of that is going to be making it so that people feel comfortable with it as a technology we've got a really good team of people in in Pegasus a bunch of them are here A bunch of them aren't probably more aren't than are um and we've got a really great team of people doing a mix of uh research development and actual product development as well so bringing that a really great research experience and uh some of us are like old guys like me that have been building software since last Millennium and sort of bringing that into the team as well so we've got our our product team and so I'll be talking about the the pantheon product that we just released uh the R&D team doing excellent work in some of the Enterprise eace but also in the ethereum 2.0 and so people are there I won't do them in but some of our great researchers are here um and then we've got uh people working on standards so making sure that the Enterprise standards make sense they're also getting involved a little bit in some of the ethereum and how how the the core ethereum standards can be written up and what the protocol looks like also getting wider involved in some of the uh more traditional kind of Standards organizations like the i e and w3c for trying to make sure that uh I think I I think the future is ethereum but the future also involves trying to have other chains talk to each other and so uh a part of that is working out some standards to to help facilitate some of that interrupt and that's where our standards guys get involved so Pantheon 1.0 uh three sort of big things uh it's more I guess our our 0.8 release that we had at Devcon was our very much our main net Focus released and uh is working on Main net we're really excited about that our release that we did just last week was our first kind of more Enterprise uh release and so the the features that we talk about at the moment two of those three are very much around the Enterprise so ibf2 uh it's a custom consensus mechanism a pbft sort of based consens consensus mechanism that's great for sort of your Consortium type Networks uh we've got some permissioning features so being able to control who can uh send transactions in permission networks control which nodes can connect in and then uh we've got a bunch of performance improvements as well so that performance side is our main sort of place where we're working and continuing to iterate in terms of mainnet I guess the other thing that we had in our uh our release that we just had we did uh Constantinople and Constantinople as well and so the the additional sort of operations and things that needed to be there to support that so does anyone care about ibft [Music] to yeah some people do okay so uh it's it's a protocol that uh gives uh fast transaction finality uh works well for a Consortium network uh you want to have maybe I guess the hundreds to thousands of nodes on the network with the ability to have maybe in the the 10 to 20 uh sort of valid data nodes um it's an improvement on top of there's an ibft uh protocol that's been produced as a part of the the Corum project um and so we've taken the excellent work that was there looked at it with our research team found a few sort of safety and liveness issues and so have come up with a an iteration on top of that work and so there an updated State machine and it has similar performance characteristics to the original ibft mechanism which in itself was an iteration and an improvement that was sort of based off the the cleck POA uh mechanism so it's pbft based it's in the the cleek uh ibft family very much uh kudos to the Corum team and to the the Amis team who produced the the ibft protocol it's definitely a case of where we're building on the the the shoulders of the Giants that were there before us uh there's sort of three messages that happen in a an healthy ibft Network and then a sort of recovery mechanism to make sure that it keeps working which is the round change so uh it's a a protocol that supports up to of the the validator network uh a third of the validators being bantine and so sort of the coraly of that is that uh when you're coming to Quorum on agreement on a block being a valid block it requires 2third of the validators to agree on that on that state so looking at the life cycle that's a terrible picture um the idea at a high level if you see the sort of nice sort of diamond at at the top making that decision is saying are you as a validator the current proposer um if you are then your job is to uh propose a block uh then the other uh validators in the network will need to resp respond with a prepair message to say that they've prepared that block then at the end there will be a commit process where if 2/3 of the the validators all commit that block it gets uh committed and pushed out to the chain as the next sort of valid block that's kind of it the other thing that's sort of happening behind the scenes is if you for some reason are not getting a valid block there'll be a timeout that that kicks in that uh leads to a round change and sort of resetting that that process choosing a new proposal and keeping the the protocol moving along uh there's if if you want more details about ibft um I'd suggest if you Google the ibft or Pegasus ibft 2 you'll end up with a blog post that talks about it there's a more uh technical sort of lowlevel uh gray paper that that's coming out sort of figured that yellow it's not really a white paper it's not really a yellow paper so uh our researchers called it a gray paper um so I don't know maybe that'll be the next big thing um and so I guess there's a bunch of information at a varying levels of of technical information about the ibft protoc ibft 2 protocol the next area that we've done a bunch of work on is around permissioning so within a Consortium network uh the partners and participants in a Consortium often care about making sure that uh they control who uh submits transactions to that Network Network and also control which parties can join that Network and so we have both the I guess the parties to participate in the network is the nodes on the network so we have node permissioning and then the submitting transactions is accounts and so we have account level permissioning and then given that we've added in these two things and some apis around them we've also then added in um authentication to our client and authorization around which apis people are able to to to access so that that simple list of apis that that a user can can interact with that's our permissioning the next sort of big thing that we've uh really been working hard on is the performance of the network um and so there's a huge number of ways that you can measure performance in an ethereum sort of world uh so block processing would be one you can measure the the how quickly do you sync up with the network um is is another way maybe some of the how how many uh queries per second you can have against the the client so being able to do like an eth call or a check balance type call against the the client and then also how quickly uh you can do the I guess the transactions per second coming into the network so at the moment we've um started doing some of that work of measuring aspects of that and it's going to be an ongoing thing that we have of both measuring and improving the performance of of the pantheon client and we've seen initially a a real um Improvement in syncing and so one of the things that's sort of helping feed some of our performance work at the moment is uh looking at the looking at fast sync and so uh there's a new I think there will be a new Fast sync proposal kind of coming out in the shortly from from the teams at uh parody and and gu and so we'll be working to be a part of that that work as well as we do our core fast sync it's been really good for flushing out a bunch of uh threading and and related type bugs in the client and getting us to a spot where we've got the overall performance happening better we expect in our our 1.

1 release that we'll be able to say yep we've got an initial fastin sort of implementation that's there and sort of following on from that being able to say yes we run well now as a full node not just an archive node so that's kind of where we are we had those sort of big things that happen in our our 1.0 release got a bunch of stuff that I think kind of gets me a bit more excited like we we've kind of now entered the game and are at that basic level of of working as an ethereum client the the more exciting stuff is is what we're doing next and and what our our improvements are going to be so I want to share a little bit about our road map before I do just want to highlight that we really see being uh product driven as a really important part of our of our product so making sure that uh we are meeting the needs of I guess our customers and the the people that want to be using us and that's I think within the Enterprise ethereum space can be actually a little bit of a differentiator where a number of the other clients that are out there targeting the the Enterprise needs end up being meeting their own needs first and then maybe kind of listening to customers a little bit but their their use cases are really coming from their own needs first and so we're very much we're just a protocol team and so very much about uh talking to customers and working out what their problems are and then coming up with the best solutions for their problems so what's happening so we've done our 1.0 and we can look forward to our 1.1 and I'll talk some more about some of the things in between 1.1 and 2.

0 So within our 1.01 the uh key things that we'll be announcing is a new uh privacy solution and so uh we've been working in in partnership with the the team at web3 labs to to help make that happen and uh yeah it's it's coming out really well and so that's a a solution that again is is learning from the the way that quorum's privacy solution has been done and providing some uh incremental improvements on it initially but also giving us a great foundation for a really great I think path between our privacy solution and uh like a side chain world so there's a a clear path between our what we're going to be initially releasing in 1.1 and where we end up in the future with with the pulling in the research work that our our researchers are doing on side chains within our 1.1 the other thing that we'll be uh that we're sort of excited about is talking about moving our permissioning solution to storing its state um on chain with smart contracts and that gives the ability to keep the whole network in in sync with its permissions and it's you know that that's actually I think a pretty foundational thing and as I've been talking to to people that's like the thing that they sort of say yeah you got permissioning but you got to manage on each node that's a bit that's a bit rubbish um moving it on on chain actually puts us in a spot where we're giving the permissioning solution that actually we we wanted to get to um as quickly as we could and the the vision that we released in 1.0 was kind of a stepping stone on the way and adds value and is a useful thing but the uh smart contract based approach I think is is definitely the way forward as we look between that 1.

1 and the 2.0 uh there's a a sort of few main areas that we'll be looking at so on the main net side uh looking at the I guess the continuing work on our fast sync uh sort of protocols pulling in the hybrid fast sync work that uh that's being worked on by by the teams at gu and parody be also I guess getting involved with some of those conversations as well we also be looking at on the on the main net sort of side looking at the Istanbul uh Fork which is coming out sort of scheduled for October I can't I can't say it's coming out I need to say it's scheduled because that's you know the way these things work and and I guess continuing to make sure that uh we're we're looking at our performance characteristics of our client so one of our big things now is looking at the uh transactions per second and the queries sort of coming in we've got a couple of benchmarks that we're looking at at at to to work with there looking to probably get involved with some of the work that the white blocks team are doing in terms of uh measuring clients and and use that as a way of helping to make sure that our quality and performance of our client is of the the right standard as we look forward we can see that uh continuing to to look at different uh consensus mechanisms with different properties for different sizes of networks is going to be a really important thing uh looking at at side chains is another area that uh in the the Enterprise space makes a lot of sense and then also looking at pulling in the the great work that's been done with our ethereum 2 2.0 kind of research and seeing how that pulls across to I guess the core kind of Pantheon client making it so that you could probably run like a command you know my my dream is to have a a Pantheon minus minus Beacon chain kind of command and we'll have a beacon chain that's running as a part of Pantheon uh the other the other parts of that that work that are that are exciting in a maybe in an Enterprise context are thinking like the LI peterp work that that is important for the the beacon chain to support that starts to then be something that you could probably surface in an Enterprise context earlier than maybe it might make it out onto the main net um ewom is another example that uh maybe it makes sense to be on an Enterprise side first diving deeper then into a couple of these things and and our road maps so the the Json RPC based permissioning that we've already mentioned moving to Smart contract based moving to more of a fine grain uh permissioning sort of mechanism in in the 1.2 uh probably looking at a um arbac sort of uh permissioning model so role based access control um and then looking at the the Enterprise Integration so once you start thinking about identity and and and those kind of Concepts you start to think okay yep I'm in an Enterprise I've got active directory I've got ldap I need to hook those hook into those our privacy work it's not impossible to read um so our approach is to use a private transaction Handler uh private transaction manager to help with the Privacy so a party will submit a private transaction into the application from that private transaction we will then pass it off to a a private transaction manager in our case Orion the Orion instance will then uh derive a privacy group from the list of participants that are involved so the private from and the private to so the public keys that are used for that transaction from that privacy group then we'll use that internally within the system in our initial instance but probably start to expose that out through a bunch of apis in in the future the Privacy group will be used to keep the private state that we're managing separate for each of those privacy groups so that's I guess I I I sort of flagged that because I think that's a a really useful thing to have is this idea of a private state for that privacy group and the ability to in the future perform a consensus across that privacy group in the future being able to maybe be able to mutate the membership of that privacy group and add and add and remove members the other thing that I want to flag with this is that uh we use a pre-compiled Smart contract so when we do this private transaction the thing that gets written to the kind of shared more public state is a hash of the transaction we do that by uh sending that hash as a transaction to a pre-compiled Smart contract so by doing that it's en ing this system and making it so that it'll work in a main net world so as long as both of the parties to the private transaction are running uh nodes that have the pre-compiled smart contract they will both be able to well when I say both it's the list of parties that are involved as long as they're all running that that pre-compiled smart contract it'll sort of work in the in the main net uh it'll be for parties that aren't involved or don't have uh the precompiled or just to send a transaction to that account account and it'll know up so it's a I think it's a pretty exciting sort of spot so just diving a little bit into that and where we go in the future with that so in our 1.1 in April uh we'll be releasing the initial version of that restricted privacy we'll have those privacy groups kind of sitting behind the scenes as a as a sort of hidden thing but a enabling technology for us then as we look forward to kind of the one 02 1.

3 kind of versions in sort of July August and and sort of following the next big thing that we see there is exposing that privacy group back out to the API more deliberately making it so there'll probably be a create privacy group with list of participants and maybe a find or create uh privacy Group which will give you back the idea of an existing uh privacy group and then the ability to add and remove membership from those privacy groups so that that starts to be a pretty exciting place I think particularly for the Enterprises and something that I don't think there's an existing sort of Enterprise solution which offers that as well the other things that sort of are there sort of sitting behind the scenes with that then is is moving some of the key management external to the um to the nodes for the Orion for those private transactions then as we start to look I guess further forward um at the moment the communication between those Orion instances is https direct communication between those nodes moving that connection out of that sort of direct https between orions probably across back to Dev PTP or Li P2P as a subprotocol and using maybe the cademia routing to to help make it so that those nodes don't need to be talking directly to each other is is one thing that's there um another another thing that's there is being able to have some sort of consensus mechanism around the private States and and being able to cryptographically verify that uh the the states are the same uh the other thing that's there is our side chains group uh researching uh cross side chains kind of communication uh so adding in that that sort of function to a to a privacy group as well so our our longterm sort of road map and vision is really to move from uh right now you kind of have these consensus Consortium networks that are that are sort of actually really in the early days of pilots and proof of Concepts to uh moving forward to they actually are running proper consortiums that are that are working there to a world where your your sort of private and Consortium things are actually more in the background and Main net is where where all the action is and and that's where that's where everything's at maybe people will have something that they're doing privately and keeping to themselves in some sort of Consortium but that's more to support the the open sort of distributed World pulling in so the way we get there is we need to make sure that that uh those Consortium networks R really well and so working on the with the Enterprise ethereum Alliance the EA to help make sure that there's a great sort of system in place there the three PS of uh privacy permissioning and performance or custom consensus mechanisms is is working really well getting side chains working well is is sort of in that path there's the ethereum 1.x sort of world where there's the things like the uh state state sort of fees and state pruning as well as the um ewm sort of pre-compile sitting in there as some of the the areas that are probably happening in the ethereum 1.x world and then looking forward to uh Serenity and the the amazing work of the ethereum 2.0 uh people so getting that that phase zero phase one phase two hey we've got a a great scalable amazing blockchain so I think pulling those into the sort of the the pantheon client and I think that's where where Pantheon ends up with is a great client for both the ethereum 2.0 sort of scaled uh a thousand times system and uh making it work really well for the the Enterprise world as well hopefully I've hit the right time but does anyone have questions hello hey Rob uh great presentation uh you mentioned a bit about benchmarking uh Pantheon I was wondering could you disclose like how much faster it is than uh ge so so right now uh we yep so the question was uh benchmarking of Pantheon and how it performs against the other clients is that yeah so at the moment we're probably in the same the same kind of league as the other clients they have that Advantage I guess parody and gu have been around for long enough that they've had you know a few goes at at making them faster we're kind of new and and getting some of that happening now so we're in the same kind of same kind of area the formal benchmarking we haven't got yet and that formal kind of comparison but what our benchmarking has been great for so far is uh making sure that we actually are tuning the right things and so you know there's that uh pre premature optimization is the root of all evil is uh kth said um and we've actually by having our benchmarks in place we we found actually a number of times where oh let's just try this thing surely if we optimize The Rock DB database things will go so much better and it didn't so it's been really great for for having those experiments to show here's how we actually do impact performance and here's where the real wins are hi thanks for the presentation very cool thing that you're building um question about performance again but uh going forward so if you're planning all the performance Improvement how do you think the technology choice of java versus Ras choices from uh from parity will uh keep you back yep so the the question of uh what does does running on the jvm hurt our performance I guess is probably what it what it Narrows down to and maybe one day we'll start to hit the limitations of the jvm but I think it's a fair way out and I think the the majority of the places where we're seeing the performance uh hits at the moment are are very much network based and so we're seeing the the actually getting data from the network is is where the the performance is more so than the actual block processing sort of work and so given that it's it's not going to be too much of a spot the the jvm actually is you know not as slow as as it kind of can be can be thought about I think the spot where you probably feel the jvm the most is maybe some of the the overhead of running a virtual machine the actual jit precompilers and and things around Java actually make it you know pretty close to to comparable to C uh the thing with like a rust and a and a go they they still aren't as quick as C and so there there's like if you if you are squeezing your rust and your go down to the the the lowest level and making it work really well then yeah they they're probably easier to to get going at that last kind of little bits of of raw compute power but I think at the moment the difference is it's not hurting us you [Applause]

Automatic transcript — names and jargon may be misspelled.