All Core Devs - Execution #55
All Core Devs - Execution · 15 Feb 2019 · 56:02
Ethereum core developers cover how the Constantinople fork went on Ropsten ahead of mainnet, CREATE2 side effects and misinformation in the community, the ProgPoW audit, a proposal to reject EIP-1355 on Ethash 1a and the Istanbul roadmap.
Speakers
Topics
From All Core Devs - Execution, hosted by Ethereum Foundation.
Transcript
[Music] [Music]
you [Music] you all right I just got changed this setting sorry okay oh yeah no y'all could hear me but there was this setting on the streaming software and the internet can't hear me but now they can hear me so yeah thanks everybody for joining and we'll get started on the agenda there's kind of a mishmash of stuff today the first one was the Constantinople Rob stone for and how
that went and then the status of the Constantinople heart fourth that's happening in less than two weeks roughly yeah roughly two weeks or thirteen days from now so anyone want to go over the particulars of that did anyone follow the Rob stone fork because I wasn't online much that day well I can't say I followed it but from what I heard it went over well the only thing that would concern me if there was consensus issues if there are only issues with like small amounts of minors and stuff like that and that's
just adds spice and it's a bit interesting but far as I know great any other comments on the robson part of the fork and I talked to Igor from poa network last night and he said that the POA network has done their petersburg fork or whatever to revert the Constantinople effects so that's one test net that's gone through that and then I don't know about any of the other to speak up on this problem okay sounds good
and then the Constantinople for coming up in two weeks I know that the plan is for the cat herders to start reaching out to miners probably a week out we're also gonna be posting a reddit and sticking a reddit thread doing some Twitter reach out to people to let them know what's going on and I'll do a blog post for the etherium gorg blog and so that's that's what I plan on doing does anyone else think there's more that we need to do other than just trying to let people know to update is there any other like client-side stuff we need to work on with some better information okay great anybody else they're still running
from Mike currently is it running well yeah they're running or will be running somebody to get that started in that's what the question was the fork monitor website is still up and running and yeah I just talked about so it but it does tell information and I need to update a couple of the clients okay sounds good but I think we're all good on Constantinople so today Jason and
Carver and Jeff Coleman wanted to talk about the side effects of create - there was recently a and some articles put out and some other misinformation in the community that there was a bug found in Constantinople and then it would be delayed that was because there was an auger I guess what is what do they call those prediction market to say that there's going to be a Constantinople delay and that that delay would be that delay would be like after the 28th or like after the 27th or something like that and the cool thing about that is because the block time is gonna be variable between now and then there's not really a good way to know until it gets closer
and it gets more accurate as it's closer so that's kind of the reason for the it's kind of a tricky prediction market but it's not to say that there's a delay because of a bug so people got like nervous because of that so but there are some I guess things that people didn't realize we're gonna happen because of create - so we'll start with Jason and then have Jeff come in to kind of give both of their perspectives and then we'll have other people respond so Jason you can start sure so you know I don't think I need to kind of go over the issue itself just this this idea that you know create - allows contracts to be
redeployed after self-destruct and with a little bit of trickiness redeploy different by code I think this was you know basically known by the epass but some of the things that makes tricky about auditability were fully fleshed out to the point of like writing up articles and making it the communities you know most of the people that I talk to a person quite a lot of people online I just didn't know this was coming and you know frankly their first reaction is like surprise and the idea that it's gonna be sort of more difficult to think
about how contracts it's it's definitely something that you you can learn your way around but it's it's not so you know I think there's really only two options that make sense and the one that makes the most sense is we just have people a lot and quickly my instinct would be to remove it but I also know that ok Jeff did you have comments yeah I think like
Jason has a really good point that I think there's some education and awareness that we need to build around this I think a lot of people are not familiar with with kind of the whole thing like why do you even need big crates you have some comments like oh you can't do anything with great see that you can't that you can do with create whatever and I think like we definitely needs to do a better job of communicating that I've been trying to like I've gets more information out on Twitter and reddit and things like that and made I might do a longer write up as well um I think especially like Jason's done a good job of emphasizing some of the more counterintuitive things around
self destructs and I think like having a really clear messaging to people of both the the the simple the simple way from a source code review perspective that you make sure there aren't any weird gotchas in this and I think I can basically be broken down to two components one when we look forward to how we're gonna be handling state and storage and all that I think there's a very case be made to say that nobody should be using self destructs right now I know there's like a couple of edge cases where like to use them but when we look forward to like most of the strategies that broken yet
for how we're going to be handling storage Reds and like the later proposals for like stashing and retrieval of storage I think those are much stronger in more general way to handle storage storage cost and and so for a long time I know a lot of people have already been recommending not to use self destructs and this is a much stronger reason and then the second part is emphasizing that in it codes are really important so I guess one of the things that that is counter intuitive about creates you is that theoretically redeployments can change the contract byte code because the address has only a
commitment to the inmate code and a nonce and I think definitely people need to be aware that in it coats are part of auditing and you need to be paying attention through net codes and that non-deterministic init codes are a problem and any vectors in your init codes are just much an issue for understanding any by contract as you know any kind of thing that you might have where there's like some some delegate call or something inside of a contract where that's that's a property that someone could cheat can use to change things and so like that that's already extremely important with looking at Factory paradigms and and figuring
out what something is so I think like those two messages are something we worked really hard to get out there and I think they're on the question of whether whether there could be something pulled back about this like not only this pretty late in the game I think there is a really big question here for me as to given the sort of niche impact this and given that I don't think people who are writing contracts and looking to make them like auditable are really impacted by this like just don't you
self destruct it's pretty simple way to never never run afoul of this but if you are looking at someone else's code and trying to understand like there are these weird phenomena that Jason is noted especially when you combine creates you in great one because everyone has this really weak assumption around address identity that it's just whatever the nan says and you do wipe out the nonce when you self destruct the contract which means that we're losing that data and so the only solutions that I can see to stop that from happening are did to keep this extra data around in the state tree and going forward I think that's a really bad idea there are a lot of ways to continue to break down when we look at both looking the storage rent proposals of how we might be
stashing and retrieving storage and looking into things like yanking up contracts looking into things like the generalization of accounts traction all these sorts of things are gonna be changing one of these assumptions and so when we look forward to where we want to end up I think the end place that it would be amazing to get to on this would be to have all addresses be commitments to the contracted and Eve idea net code basically we need content-based addressing of of contracts and not just order based everything which is what create one is so if we enter the place where critic to the standard everyone
sees and creates you get rid of stuff strikes like stop using them entirely and then have had that beat the new para and everyone's working inside it I think that's that's a fantastic place for us all to get to and then basically we can throughout this idea of a contract not so obviously looking for that sort of a thing as a place that we can get you I think that having creates you in its correct form is the best we can do I haven't had any really great proposals I think the only the only sort of passion can even be considered for this is keeping a whole bunch of extra information around the state tree every time we do meet a contract and that really doesn't make a lot of sense going for it I don't cool do other
people have comments on that I think of the one thing that we need to were keep in mind is more for the future which is when we start thinking about rent and start thinking about deletion then that's a way that contracts can go from being in the state to being not in the state without a self-destruct operation and so we would need to be careful to either just disallow but basically require creating a con a contract at that point to have merkel proofs or a beast proving that it didn't exist before or some some other scheme
that that prevents contracts from like basically just being popped into existence most new code if that's not if that's not the way that they were intended to be set up but that's not something that we need to figure out the next couple of weeks or anything like that but it's still useful to keep in mind especially since we're trying to get the two point DM eath to of charting its fee face to a vm spec and yet started very soon yeah the comment as well so this whole discussion basically started two years ago when we talked
about these side effects on day on the first eve for creative and what we really should do in my opinion is to take when these discussion happens wherever they happen we put them in a condensed form unlike security considerations what are the possible side effects and consequences of it Albany and we try to update that even if it has been finalized we could still update that particular section with the newly found discussion information because if the information is spread out over discussions and fellowship discussions it might be hard to find enough I guess that's the reason why this has been kind of refound again and
again by different people so that's yeah it'll be great if we can start doing that it's a great idea anybody else okay thanks Jason and Jeff for that we'll move on to the Prague pal audit so the cat herders and related parties have been looking at doing the Prague pal audit we are here's the latest on that just been a couple of minutes we have found a company who has sent us a proposal to do a bench series of benchmark testing I know some of the sticking point for for some people in
the space was that it was not clear if AMD or Nvidia cards would be getting a performance boost unfairly based on Prague how being implemented and so this benchmarking would basically have some unbiased scientific benchmarking across different video cards to make sure that Prague pal works the same or similarly across all of them and so we found that that's an easier thing to do the problem that we're having is that we're having trouble finding an auditor or a company or group to look at Prague pal and say
things like this is how long it would take a Prague how ASIC to be created here's the things that people would have to do here's the budget they would have to have some you know some other stuff that we're interested in in order to for you know the community to try to make this decision on whether or not to go forward with it so we're having trouble finding those auditors if you know of people companies stuff like that who'd be interested in this in the my way and we are talking to a few people so it's not completely a lost cause but it's not looking very great and finding those people primarily because the people who are the most
expert at the stuff have conflicts of interest because they're looking into Prague how mining themself whether that be GPU or ASIC so yeah it's it's kind of complicated but my hope is that we will find someone in the next few weeks to then get started on an audit to be completed as soon as possible any comments okay great so the next item Pavel commented that he wants to reject eip
135 the et hash won a VIP that does just a slight tweak to make et hash break the current Asics I think he's the author of that and I think he just wants to reject it because he's the author of it and it's not going to be useful anymore now that we're looking into other things like prog pal so he's not here to really talk about it so we can skip that item and I don't think there needs to be permission for someone to reject their own EIP and someone else can resurrect it as a different IP if that's the case to me yeah the Istanbul hard fork roadmap offeree do you want to take that
one yeah not much changed since we discussed last month the only things what we have to discuss briefly shall we all subsequent our folks delayed by one month now that we moved to Constantinople or shall we just proceed to say initial timeline what makes sense here I said think we should just proceed with it yeah I'm tend to suggest also I also saw him there there was the hard fork naming
challenge was that the thing on reddit that people were like putting a bunch of names and to see which ones might be good for a hard fork name thanks for brings up I almost forgot about it unfortunately we didn't reach the necessary the chrome of 10 million donor so this point okay sounds good and then you also have on here AI P 14 18 state rent is that Alexis thing sure that is William I don't know if he's
around Oh William and try Caen or different yes looks like he's online you want to join the call to talk about that or is that something he's he's involved in I haven't read that EIP let me check it real quick he put it on again oh saying oh oh sorry I didn't see his comments at all requesting to add the agenda and the scope I believe the main speaker is
Alexei okay yeah Alexei is not here and so because of that we'll skip this item for now until Alexei can come on I know he came out the other day with version 3 of the state state fees proposal which I haven't had a chance to look over but he's iterating on that so just a second I'm just telling William because unless William wants to speak on it here so we will skip the item today okay yeah well yeah we'll just skip the item because Alexei is not here to speak on it and he's the authority on it I think that's it for the hard fork roadmap for
Istanbul and then the next item is Outlook proof of stake finality gadget on the proof-of-work chain for serenity that's been on here for a few weeks and I forgot who put it on here and why does anyone remember I don't remember who put it on but it's something that the community definitely is interested in and again I'm interpreting this as utilizing that we can change which is say zero vco2 finalized to be clear the main technical challenge in doing that is creating a viable light
client for the beacon chain which is something that we are actively pursuing with a couple of the clients so this is very technically feasible and seems very much like it's something that the community wants so our intention is to continue putting the pieces in place that would allow us to do that that's the main update right now though cool anybody else have comments on that yeah you know I would say not just generally
not much to kind of worry about for me a developer development standpoint at this point the one thing that we are like there's two in terms of implementation eventually there's two possibilities which is that could be conceivably used for this sort of thing where one of them is that which we make Asia if to light clients inside of each one and the other is that we basically require each one clients to all be also ezy clients so basically kind of mandates some form of
large mining so that's and I'm definitely I think it would definitely be nice if we can just make a any thoughts you like going to put it inside of East one but if not than the other then the other kind of option could be a possibility not even about actually embedding in a contract so basically I'm selling like one approach is the approach that doesn't really change that even one consensus rules and the other approach is the approach that does right so like I'm not sure if I'd hundred percent following the one
that doesn't intend change the consensus rules oh this is this is the one that basically just sticks and East to white coins inside of a contract and eath one if that ends up somebody impossible right would require some succinct form of verification right you this would require snarks likely yeah yeah I'm in the process of writing up this like clients synching talk it'll probably take a couple of days but then the one good thing is that the interface is
fairly clean which is a 32 byte state which is just like the latest known hash and a pure function verifies a certificate for updating it so theoretically once that function and then once that cure function is done then you can shove it into one of these leaves mark tools and see how long how feasible mm-hmm right and but then I guess it becomes anytime you update the transition function on to oh you'd have to update this contract no well it depends what kind of update because this isn't gonna be verifying the entire
transition function it's just verifying a bunch of merkel proofs right I sure am one actually thing that's kind of relevance to this is that these white wine certificates are could potentially be kind of fairly big in size so I think up to something like 500 kilobytes every nine days so in an absolute sense pretty small very very small in terms of load but in a canoe in a burst sense that's still about ten times bigger than the
curtains and the current block size limit so this is one of the reasons to maybe potentially thing think about some of the stuff we thought a bit uh thought about in terms of called data gas costs in these 1x discussions given that if you if you want to contract out you you are still changing the consensus rules and that you now have this privilege contract that people are watching and so in that you could have an exception for the state transition that involves this
payload the contract well actually I'm not sure requires that much privilege like the only privilege that this contract would require is basically the rights to withdraw from the deposit contract if we want to do it it ends up wanting to make each to way and if we don't ends I mean isn't that the consensus rules would look at it and defer the fourth choice route hmm well technically we don't even need we don't even need that so like if we're willing to take the the risk of assuming that neither system will get 51% of 2x I
think ok right so I think we're talking about two different things one is the finality gadget and one is bringing the state route in and they're very similar but they have two different goals to finalize and yeah the fidelity gadget definitely yeah so now the purpose of the finality gadget is to make the eighth one chain be and independence on the east you fork choice which you know require privilege and like realistically the yeah yeah because that's the whole the whole point of what it does and if we're gonna use that as an excuse an excuse to cut block rewards by another factor of three then like we are
assuming a higher risk of failure on the proof-of-work side which were like basically saying doesn't matter as much because he can't revert finalized blocks anymore mm-hmm and I think in a stepwise way like that that's the most achievable early and then adding the state route stuff is like the next step in my opinion but both names three technical excusable and we have a couple different rounds were pursuing okay any questions regarding that for everyone okay cool the next topic is the working group
updates so Alexie's not here so we were not gonna do the state fees we already talked about the stay in for meetings overview I don't know I think we left that on for some reason unless anyone else had anything to say about that do we have anybody else from a working group that has any relevant updates since the last time I don't I wouldn't expect there to be any I do know that the simulation team has been working on stuff but they are flying into Denver this morning so they're not on the call and then I know Boris asked at a comment down here should there be a cadence for
in-person meetings and what would what would that look like and do we want to meet up in person regularly or things like that what are people's thoughts on meeting up in person will probably Rio approach this later after we get through some of the working group stuff in future meetings but does anyone have an appetite for meeting in person is this going a eath 1x theme thing is it a core themed thing is that a 1 everything themed thing 1x themed or core depth theme either one that was not a Boris's question at least I'd like that most of
you are obscure avatars and tags may or may not have anything to do with your name yep that is true okay anybody else that's fine if there's no like heavy opinions today since this was just brought up but maybe someone will try to organize one in the future and that'll be cool ok now we're on testing updates if we could have Dmitriy and then Martin go over that Dimitri go right ahead martin has no major issues his client
passing the test I think it's ok because all the tests updated for a couple of weeks now and I was updated and it's everything being run on different clients or the tree in decline has raised an issue of creating this mineral and another scheme for us to initialize the Genesis and there is a function on RPC protocol and a test RPC protocol itself is about to be discussed for implementation my primary role in this added to go that direction implementing the tester
pasinetta's and detach the testing logic from cpp client as well so I guess in that direction has been like a year already and retested retested development continued and after that work I think we will move and detach this logic from cpp client lets was a desktop day yeah and for fussing parity recent fixed ticket which has been kind of blocking and now the Fosters are running again great now
we'll go to client updates will start with guess I think I'm gonna hit back with Martin again oh yeah we don't have much to update we just had a big team meeting and we will be launching a new 1.8 a backward with some fixes in the next few days okay parity aetherium yeah we just have two subsequent security releases so I would advise everyone running parity clients to upgrade we noticed today that the
civility of the latest security issues higher than we initially expect it to be so yeah it's quite bad so yeah that's a comparative zone okay LS does anyone from a left here that can talk okay Trinity I that'd be Jason yeah sure no major updates just continuing to pull working on sink and hole pieces out into
their own processes Theory MJS okay harmony there are no major updates from us mostly worked on it's great pantheon yeah we're working towards our 1.0 release implementing fast think right now we should have a release candidate next week if anyone wants to play with it and an official release about two weeks from now which fast sync protocol
are you using um I think we're doing the same thing as get similar but Danno might be able to provide more color there yeah we're using the one get this because not enough informations come out about the new hybrid sync we would love to do it but a lot of the stuff that we would need for a future hybrid sync is also needed at this fast Inc so it gets us closer to where we need to be to get a better fascinate going on we you know we want on something faster than a full sync and a full archive which is why we went ahead with it yeah so the future hybrid sync at least one what Peter has been proposing it's basically first a leaf sync and then to fill the blanks
she needs to a fasting kind of way and because the first think is kind of self-healing this day try and so that's a good start even even for them for the next type of sync cool thanks for the update pantheon turbo death isn't here anyone from Nimbus here okay what about mana okay and mantis I still haven't been able to reach out to mantis but they might eventually show up
Oh David he just posted something in chat about a sync up on AIP nine one one nine three yeah so we're planning a call that happens cuz with anything yet or even have an agenda for it but loosely we just want to talk about the implementation and rollout of VIP 1193 which is only related to javascript providers okay thanks for that that sounds important alright that's all the client updates research updates that be Dani and metallic sure so I think since the last call one major piece of news is
that this phase the fee the first release of the phase zero spec home was made and since then which basically includes all of the kind of proof of stake parts of the sir serenity a really release so it does not include the charting specific bits which are in phases one and two and when we made that initial release I think we mentioned that there's a couple of new feature is that without that we're still missing where one of them was mandatory deposit ordering and the other was a more efficient shuffling algorithm and I
think since the net since the rule the release that's that you know it's either right after that it was just about to go that's also going to be included so fee basically phase zero is definitely well into refinement mode at this point and challenges are starting to move move into things like finalizing the wire protocol and testing and other things that are probably more even a client implements or updates more than research updates at this point I've been starting starting work on phase one and which is basically a short the charting of data
and not charting of computation and this one from a specification points is actually very simple or at least very simple given all of the end of work that's already been done on the phase zero side the one hard thing is that it basically involves specifying the the full proof of Custody game which I'm still in the process of doing phase two which is basically state and execution is something that I think we can and should be trying to do in parallel will fit with phase one so I think we should definitely not I know we should not fall into the mindset of
thinking that you know if is your first phase rule gets done then phase one gets done then feast then faced you it gets done without and of doing a lot of work in parallel but between them because if we don't paralyze them things will really take until 2020 whenever the trolls the trolls are saying but I think the nice thing is that phase one is a primarily as I mentioned in one of the previous calls phase one is prime is primarily a p2p or network implementation challenge and phase two as largely a or is a very significantly a specification challenge so there's a huge amount of opportunity for doing them in parallel and I would argue this
the time to start having a real and of discussions on concrete a fiying the what go is say what phase two is going to look like in kind of even the fine details is basically now so I mean I've been starting to reach out to one point next people more on some things and it's also been put up in ether research post that's like talking about cross your transactions one interesting thing that's brought that's worth getting a lot of people as input is basically what would a kind of dream replacement for a our seats why do you
look like that would be done on top of Phase two both because it's just something that a lot of people obviously wants but it's also a kind of just quick test of whether how kind of easy it is to build things that are actually interesting and useful on top of the EFI whatever the phase two is that we end up building so I'm and if in parallel to doing the phase one stuff I'm probably going to have continued pushing hard on all of those things but I do hope to get feedback from a lot of people and it's and especially people here because this
is a VA area where we do need a lot of experience from people who have experience with like actually trying to build and deploy things on top on top of the current platform so we know we can kind of figure out figure out what the wishlist is and figure out what the best way is to address as much of a of it as we can while still being kind of reasonably minimal and not know if kitchen-sink you may have misheard why would it be trolling to expect Phase two to be down about twenty twenty-one it's
only about two nights I said I said 2/3 2020 whatever and there's definitely troll saying when he passed twenty twenty-one but I think in 2021 is honestly not the date we should be shooting for at all because basically because like the thing was face to be in terms of specification right that specification of phase 2 basically needs to start today as what I'm trying to put what I'm trying to say here I guess not something that because we know that phase 2 has a large
specification challenges to it that and phase 1 is I never relatively heavy on implementation versus s of peer-to-peer network stuff versus specification whereas phase 2 is relatively light on that and it's heavier on these other complexities so it's essentially you know our hands touch rides you and have worked together and make face - mm-hm make face - things and not have any toys that are unnecessary cool any questions or comments on that anybody else okay
and I think Danny posted a link to the phase 2 prospectus arting mechanism document in etham additions and the zoom chat if you all want to go look at that um I think that's the last thing awesome Wow we're really today yay do we have a critical path analysis to say whether these tasks can be done in parallel which tasks are we talking about here you're running you're wanting to run some phases of development in parallel and it takes a critical analysis to know whether that's actually possible
this is all ahead Danny I what sort of formal analysis that you want to see I don't think that we have that but the state execution on top of having consensus on data is independent of having distance from data the way that accounts exist and are deployed and execution and the laws and the sub set of laws and that is used is independent of how you come to consensus on the data underneath it and so the specification and the design space for to her phase
two is pretty wide and we should certainly be specifying and narrowing down that design phase whether you can build phase two without having the phase one bones underneath I think is not quite the question right now it's really whether you can begin to specify and narrow down and come to decision so there's a lot of decisions to make the phase - okay thanks and I had no idea what a critical path analysis was so I posted it in the zoom chat it's actually pretty interesting and there's a cool graph on there so check it out it's like a 50 year old engineering technique I
don't think it's ever been superseded because it's almost physics cool all right anybody else have comments or any other items that were off the agenda yeah just one more plea for everyone listening to take personal action about the read employability of contracts in post continental post Constantinople help educate your networks about the replayability and you know specifically this idea that someone can carefully craft the contract that looks reasonable to people who are in a pre constant
Constantinople mindset but definitely malicious after I'd also add that in the at least the current kind of vague and nebulous set of proposals pays to create to is the only kind of creation opcode so the that makes this kind of issue of basically helping helping people and navigate and navigate their way around how creates you based contract systems that work even more important cool anything else anybody
all right we're half an hour early yay everybody have a great day or night and we will talk to you in two weeks bye [Music] [Music]
[Music] [Music]