All Core Devs - Execution #64

All Core Devs - Execution · 5 Jul 2019 · 1:50:12

Ethereum core developers drop EIP-1959, discuss EIP-2028 on reducing transaction data gas costs and its test plan with Whiteblock, and cover retestETH options for Parity and a compliance fix for Ganache.

Speakers

Topics

From All Core Devs - Execution, hosted by Ethereum Foundation.

Transcript

[Music] [Music] [Music]

[Music] [Music] [Music] [Applause]

[Music] [Music]

alright hello everyone and welcome to today's core developer meeting number 64 if you're in the u.s. its fourth of July edition so there should be some firework noses in the background if you're not in America I don't know what else major is going on so sorry for my ignorance ah okay this Friday even he it's yeah middle of the night Friday here so I guess I didn't register it but yeah it is the end of the week let's go ahead and review the previous decisions made in action items alright so we've accepted AIP 2024 and AIP 1702 into Istanbul and we're shifting the time of

the court have meetings by eight hours every meeting to better accommodate time zones as far as the actions required we need one of the items was sixty two point two to have an in-depth discussion on how AIP 663 can be improved did that which a IP was that again let me let me look that up I think that's the swap and doop instructions right okay I think we should try to whether we say like Eid 1884 we tried to say what what they compton what the title is it's possible people are following along unfold it's

very difficult otherwise got it I'll make sure to do that so for EEP 663 unlimited swap and doop instructions I know last call we had a lot of a lot of discussion about that it was there any further discussion after the meeting hmm okay we'll just skip that one then sorry if I delayed for a while I was also looking to see someone saying that a live stream isn't working or it's only showing music it looks fine to me

next perform a full benchmark of AIP 1108 that's reduce alt being 128 precompiled gas cost I think we have some people in here who can speak on that right that one's the elliptic curve arithmetic pre-compile that's currently overpriced we wanted to get some benchmarking done on that I'm not sure it was a couple of calls to go I asked if because they only they only displayed the results for you know the exact same test vectors as another complete death victors but only the exact same ones as

I had found were the worst case like half years ago so I asked them if they had to post that somewhere in they said yeah we'll run it yeah that was not on the last course I don't know am I on the wrong summary no I'm on the right summary I think it what might the minutes just might be a little bit wrong okay the next is the discussion required between Jordi and oxic for AIP 1109 and VIP 2046 that's about reducing the gas costs for static calls made to pre compiles versus having a removing the call wait a second yeah tongue-tied me

accidie know what I'm talking about there yeah and there was some discussion on the magician's for him explaining both sides but yeah I don't think there was any agreement it would be also nice for others to to chime in okay can you post the link to the eighth magicians form and the in the chatbox and zoom no I cannot I'm on the phone but it's the discussion URL or okay I think it's a discussion URL for Jordi's that's where the discussion was

you got it I have that right here actually I can paste it in yep cool we both got to it thanks so much Brett okay so we'll just continue to discuss in that thread so and the reason that some of these action items might seem older or because they're from two calls ago not one call ago including that one because that was discussed two calls ago between Jordi and AXA cand there's been ongoing discussions since then on which one to do so the next action item is 62.5 James Hancock to update the wiki and meta EIP 1962 with decisions around the e IPS so James what's the update on

that pretty up-to-date the IP still needs to be updated okay but so there's the wiki the most up-to-date source then yes okay the IP 1283 this is action item 62 point 6 C I P 1283 requires a new IP number and section discussing the difference between the original 1283 standard which was removed for Constantinople and this new VIP dreams will reach out to the testing teams to understand the implementation difficulties so 1283 is the one for net gas metering by way and I think we'd talked last meeting about making a whole

new a IP for that am I wrong there that was talked about in the meeting there was a long discussion on get her or last weekend what's different with 1283 is is the only IP to be disabled ever all we've ever done is we add a VIPs to hard court and and Petersburg we disabled it so one thing that would satisfy me is if we extra section and the Istanbul which rather than saying add this VIP it's a different section that says reenable Yankees to make sure that has to know this is this is the first time we've done this so I think it deserves a special call-out so if we did that we wouldn't need an entirely new VIP member does I recommend also what to disable it we should have

made a new VIP it says undo that change so if we'd updated the many happy to say reintroduce this VIP I think that was satisfied all parties I wouldn't necessarily agree the problem is that you have pest networks that's already applied that EIP so essentially you can actually change the VIP content because it's already applied all already running on the test and yes it was reverted but you still have five months worth of blocks which run at the IP correct and this year key would be reenable with the other AIP that goes with it to provide one of the mitigations for what the problem was so it would be relabeled as written and would need to come with this every IP

however if we want to rewrite it with the IP and graded as one I too would support anyway I keep other solution is fine by me yeah I guess one one point that you you do have a really good point is that probably it's easier to understand that the IP if you just say that okay this is the previously IP plus these five lights of this sort of a huge Eid that everyone has and I expect to find the differences yeah that's a good point I I think like I'm still I'm I still don't think like we should create a new IP IP like like the reason the reason I discussed on keator is that

because we actually didn't change anything in 1283 and 7006 is entirely new yetee that we can apply on top of 1283 so like this is just documentation process but we do new yeah ideas for me it just feels like a lot of confusions rather than clearing things up and second I think is quite important that we have specification in GIPS which defines how a change actually is and

also hard work matter yet is which defines what goes in an artwork and so we should make sure that we use we should use a heartful planner yet he to like have his functionality to actually define what goes into the heart for but now it's in the specification yeah keys yes so so I still don't think like recruits great a new year he number for this I think when we we said to create a new IP that also included the there was

just a tree I P which changes changes a store that if less than this type at amount is left the nester wouldn't work I don't remember what's the number of that but there was proposed as one of the solutions for the problems with with the net gas metering VIP again and when when sorry go ahead sorry so so currently we have 1283 like arena one and we also have 7006 was 7006 does is it's really doesn't change any

house in 1283 for implementations that is also the case you don't change anything in 1283 but you just add a new like entirely different cause in the in the in the in the top level of cash metering saying is guises low these numbers and we if we just fill the ice has store I'll call from that point so it's like so so the thing is I think 7006 is like an entirely like it can't like from technical side it can be

applied separately from self industry just we don't do that so I think there's just no need to do like get a new yeah fee so 1706 is the medication that is the medication wires 1283 right now yeah it's a mitigation so what I wanted to say is back when it was suggested to write up a new LP I think it was also suggested to to consolidate the two into one what I want to ask is is is that EIP still needed or are you proposing to enable the net gas metering tree version

like right now I would propose to the Ambu the neck guys continuous version like enable both 1283 and 7006 because this is indeed like we avoid those back workability issues like at our best and also it also satisfies developers thing is it's to a frequently asked feature and if those contracts are deployed with ability in Mandan they can take around

existing contract can use epoxy or something to take advantage of that gas metering or through a new contract oh yeah I would propose to apply night guys meter new way stock conversion right so you would not retroactively apply it yeah no no boom is still an appoint to having sorry

17:06 it's like a small addition I don't think it is it would hurt who include include in clue that it just avoids some potential issues of course if we apply applying that guys metering based account versioning we don't necessarily need 7006 but is it is just it it doesn't hurt and it avoided avoid potential issues and I think there's a real risk that some DAP developers will use old libraries and expose themselves to this accidentally

even with the account versioning so 1706 of you could add in my opinion but not required I agree here as well 1706 sounds like a way of documenting it on keeping it configured into clients ok so I'm hearing that set we want 1706 in there if we're going to be including the CIP which we're also leaning toward am I getting that those vibes right oh yeah we're just reviewing the previous

decisions and we I mean they can turn into conversation to make decisions if since some of those action items wants a result the decision being made so yeah discussion as far I don't care particularly either way I see 12 8 to 3 years away that I mean get calls are gonna get cheaper which means there gonna be more of them in the block and more state law basically even though they're not superior they're not really related but there seems to be a lot of people who wants this and I'm I'm a bit afraid that all these people who wants it because they're deaf developers and

abusers they wanted but they wanted on their existing contracts and their existing kind of infrastructure and if we implement it but don't actually make it retroactive then they all just yeah then we miss the target we still get the heat of not having implemented it but - all the work and having demanded it so that's I'm a bit torn over that so I have comment I actually have two comments one is is the right place to comment on eyepiece or 1706 so it looks

video but it's not if you have optimized gas counting so the gas counter it's not yeah it's not actually available all the time in the AVM so it's much more complicated that it looks so that's I'm not really fond of it because it requires some additional complexity in the implementation of it and and about using account versioning I mean in general a conversion is also not my favorite thing to apply because that actually requires you to keep two different kind of EVM specs around all

the time because you can have two different well two two two versions of accounts in the same hard work so so far we had this progression of hard folks when you when you think - that the recent one you not actually need the previous revisions of EVM anymore and you can even implement the client in a way that you fast sink to the top block and don't even implement the the previous revision of IBM at all and with account versioning we starting to to added this this needs to keep different EVMS revisions around all the time because in any point in the future you

can expect like at least two different account versions to be executed so I understand it's it's useful for for Sammy IPS where which introduced really backward in comfortable changes but I would like to not still use it for free for free a piece that can be applied in a different way without actually bumping the account version does even have a counter to that well first I have a question first of all Pavel so if if we

want to go in the direction where we have where it's possible to have more just-in-time compilation of contracts and some ahead of time look ahead where you go a couple of instructions that does the disable 1706 disable Esther we guess that lower the cost item cause problem in those kinds of scenarios is that what you're saying well it's it's not like it cannot be implemented it's it's a bit it requires the story additional data and when yeah it's it's similar to the gasps instruction when

you any need exactly there the gas counter at given execution point you need to actually so I need to apply the same trickery to actually have this value at at I would need to apply this think for a store it's not like very complicated but it's it's a bit more complex that it looks on the paper when when you have only like additional check to do and in general like well it's I think it would be maybe more visible if actually the two of these were combined

in the new one because then we can see how actually complex the whole thing is I mean it's like I think in in the end internet gas drink wasn't so so trivial to do there was some like a lot of different cases to to check and and this adds another one that country makes I feel that they could make reasoning about about how the storage will cost we work might make it even harder but it's that's that's common is only by

intuition for at this point I I'm not prepared to go deeper into that okay do we have anyone to counter that or to do a strong I guess opposition to those statements at all I mean I mean it's not like like if you have a implementation is not really like you are like starting a fresh new alia implementation for each heart for you

just change a few feature flags so I actually don't think that like apply the IPS for backward reason even it is not an entirely new um would be a issue because it doesn't really like it doesn't really add much like complexity in the EVM because we need those feature flags for most of the

time anyway so that's my counter well the counter become turned out over so I do agree that extending the current idioms is relatively cheap so I mean we need to implement any new feature and just don't delete the old one and that thing is done but I guess the point I was trying to make rather is that if you want to create a completely new area for example completely new team wants to write an ATM client then if we keep just always piling stuff on but we need to support all the old stuff too that we will end up in the situation where after a while the barrier of entry to writing

a medium is so large that only the established players you'll be able to keep on hacking on their own stuff and I think that's potentially maybe currently the idiom is not that complicated but it is getting comfortable and more complicated so it might be a legitimate thing to think over if I can app to that so yeah outside the EVM is already pretty damn complicated and there are lot of corner cases and the more we add the more things that we deprecated in all versions but don't actually deprecated but instead keep around means that there will be more edge cases we

will more people will sorry less people will remember all these old way that things work and we're late tricking us that's not really counter to versioning per se it's more that to what I heard from what I heard from pebble was that we should use even if we have worsening which to use it as little as possible only only when we really really think it's required yeah and like I would also argue that because you're running a serum like securities is is term to actual manual so so I would put backward capability to have higher

priority compared with new teams implementing a complete completely new EVM for simplicity so well let me try to like clarify two things about that so I'm yeah what Martin said is correct so if there is a way to apply it without account versioning I would prefer this way and also if there is another way to mitigate the security issue that was preventing it from being deployed on Constantinople I would also prefer the other way so if there is any other option 17:06 I would like to know and

read about that mostly comes from the way I implemented I mean in a bit different way and like some of this this this decision are made up front before the execution and it just I want to go to the detour now what it it actually goes a bit against what what I'm doing and if there is a way to if there is a way to find a path forward that is more aligned with optimization time applying TV mi I would prefer to just different

different possible different options but I think it should be enough for the discussion at this point so judges to clarify so 7006 is fixed for applying net gas metering without a conversion you watch as we propose that we apply 7006 anyway even what is the conversion to avoid any issues okay so so on on this yeah I get it but I haven't answered to that so if that's two options are available I would prefer

1706 Dan account versioning use for med store so would I yeah people's I mean DEP developers seem positive about 1283 and we already decided once to to implement it for everything and only stopped it because of this free entrance a possibility so I don't really see what changed I would prefer not not to version to protect his mother way I believe this is one of the few ones on

the hitter that people from outside of normally talking came into voice support that specifically for depth about adapted oliver's she just said oh no interesting so it sounds like are we leaning towards 1706 yeah Nick's coming in late we can bench this until nick gets on the call let's do that yeah and we should probably move on to a few other things in the agenda too so we'll put well bench this one till Nick gets on the call and regards to 1706 so the next one is let's see engage with Ronan

Sanford and Brian Eisenbach to discuss which EIP 1344 19 nine or 1965 should be implemented they all have to do with chain code IDs I think Ronan's here are you here Ronan yeah I'm you know yeah awesome I had did you talk to Brian and others on the magician's forum about this and is there any news I was thinking Brian why not for I know basically 1955 is one where

you compile and we we we ask it to check hey can you please check if this point in time is not work i DX yeah you basically by both the chain andyandem and what particular use cases does that enable that you otherwise do it's basically it's basically to bring fairness to every for so let's say I'm a minority and and then but I don't have to be following some reason but the idea is not that it will happen or not is the

ability to this kind of community to form without a being a deterrent and with which is basically the idea that if you use one three four four you can't have exact switch at which something is valid you will have a gap of block number I mean I guess it's let's say you you create a message and you specify you specify the block number at which it was signed and the chain ID which you which you want to use it so if we don't number

then you will accept you will have replayability problem yeah yeah so I'll just may see if I've got this right and see what you think about it in my opinion 13:44 solves problem of if I want to sign a piece of data then the contract III check is this actually sign for me is this sign for this chain ID is assigned per minute or societal Rob's them I mean we already solved transactions what you're trying to do is also solve the problem that if we in the future

wants to change the chain ID which has I mean it that has never previously happen form a network scientists nuts that's the kind of problem the extended problem which your EOBs tries to solve am I right about that yes exactly I mean one fo for have a wait don't eat as well but he is not complete my opinion but if we fail to yeah so so my five cents about that is that 1344 it's it's a very trivial solution to predict it generic problem whereas the other ones

are a bit more complicated solutions to a lot more niche problem and I would definitely prefer 30 for the port yeah okay make sense I mean I guess the way I was coming from was this idea of minority for because even though they have no meat it's a luminescent realization of that keeping the freedom without having a disadvantage because you just add the dough so currently if a minority fork so for example let's say somebody wants to for coffee theorem and create a chain idea on 5.15 then you still have the so the problem is that

even if we implement the fancier a fancier solution on chain the transactions won't have this capability so I think it's from practical perspective it's cleaner to say that while transaction signing and data signing have the same capabilities versus saying that yeah data signing can do a tiny bit more but exactly so yeah make sure actually I have an IP in progress they didn't put that will also solve it connection and isn't it also the case that in order to cater for this scenario or menorah to change the actual contracts need to take that into account

that hey maybe sometime in the future we wind up in a minority fork and then we need to use this particular check out the history kind of thing no B that's the idea if you use the IP then you don't need to work that's the whole point of this yet well with one three four for you most most contract will might actually use it as a value or they might use a caching mechanism which doesn't properly suppose that's why is this a IP is very specific function to allow contract rate or to not there we basically support them or the way to encode but functionalities and if you

just had contract creation you can say store whatever you get from 30 to 44 and then later compare it yeah but then you have a gap basically that you have a gap when you fall because you you will have to tell a which block number exactly Chopin let's go ahead and table this tool when Ronin can air when Brian can get here since we've kind of had a taste of some of the arguments already and we can continue this on earth magicians so we can get on to other topics yeah Peter I just wanted to be bring up some a

political argument against more complex form is that as basically from my understanding the goal is to allow key theorem chain to be split I mean to minority Forks to split up they split up easily and in all honesty I'm not sure that that is something that we should promote I mean if somebody wishes to for coffee theorem yes everything is open and they can do but I don't see the reason why we should put the developer effort and pay the price for somebody else to for cause that's my political opinion okay thanks for that spicy political

opinion Peter and next we have action items 62.8 VIP 1352 needs more work done to answer the question posed in the core dev meetings and that one is called sorry martin i forgot to say the name of it restricted address range for pre compiles and system contracts the seemed easy at first and then I think we needed to have more discussion and ethnic issues because it had some weird edge cases is that right yes you know max right yeah do you have a status update axe ik this is the restricted

address range for pre-compile systems contracts yeah I don't think we did any more than the the edge cases raced on on the forum I think it would be nice for other stakeholders to also take a look because it has a detailed discussion there so it would be the right time to just read it and give an open-ended so there is a summary of what the edge cases were or are we expected to read the forum and distill it ourselves well this has been discussed and okay Martin go ahead you may be able to surmise it

yeah so I raised some points that for example you could place a faucet in your in your Genesis such a test and you can place a faucet at a certain address which is pure solidity code and if we implement this and all of a sudden that will be considered a pre compile and how should it be treated for example by Xcode hash and Xcode sighs which normally return all zeros for pre compiles it's the most bit quirky if we I mean all all clients have some kind of notion of pre compiles where they are

linking to actual methods in the code and not actually not not actually execute solidity code and if these kinds of contracts are considered pre compiles it messes a bit with that at least in guests pretty clear distinction between what is a pre compile and what is not precompiled I don't know if there was anything else raised so because people have put lower number contracts in their Genesis files that should be a blog to a future reservation of a precompile is that the basis of the argument well but yeah it's

not an argument per se it's more like hey this is kind of worms we need clarity on how this out how this should be have older well there is relation it's not in the future it applies the previous like it's it's not applied from a hard fork number so I just to give a concrete example for example if puppet grades it does not work notably rinkeby and I think maybe even Gurley was created in such a way then it initializes the first 256 account with one way the reason was that if we ever start putting the pre

compiles there then we then we sort of essentially we had that issue between parity and gas with one of the pre campus getting deleted intact the whole network acting up and then we had this little tiny hack where we could just pre created 256 account so that forever into the future we will have we will have those accounts as existing and if they will ever say that they don't exist and the problem is that the DC IP all of a sudden oh those one 256 accounts get a bit more special meaning and depending on implantation for example when we will retrieve the code hash previously they returned the code hash of the empty

account because the account existed but they were empty but as far as I know retrieving the code hash for precompile doesn't return empty rather it returns all zeros or something like that so there's something working in there and I guess what Martin wanted to point out that this should be explored because it it might actually hide some subtleties that that depend on kinda plantations to get right okay so there's some clarity if it's a reserved doesn't mean we necessarily treated as a pre-compile even if it's not assigned yeah okay I guess we could move this on back on the magician's we're not gonna solve this on at all yeah I agree Peter could you write down what you you

said I think it was a really it would be really useful to have it written down it might be it's a long thread yeah I don't think this particular example is sinking it there okay so the next one is let's see we just talked about 1352 right yeah so we are going to 62 point nine action item which is e IP 2045 needs further discussion that's on particle gas cost

and that's had a really good conversation recently between Dan oh and Paolo and Martin and others and Casey so is there an update on that at all that anyone can kind of say based on the form I haven't been able to read it thoroughly yeah and if not we can wait till Casey's on oh go ahead Martin no I was gonna yeah we'll wait for Casey there's enough going on for this call that we can skip it the next action item is 62 point 11 discussion and inclusion

of a IP 1962 and I thought we already talked about 1962 a little bit oh no that's that's the ec arithmetic and pairings and runtime definitions by Alex blasts off who I think is on this call Alex is there an update for that or was that the one that the bigger a IP I think goes 2028 takes over all of that well as far as I know it's maybe I'm not just following it completely there is no larger yeah key which should overcome this but this one already takes over the 18:29 which was that's right I gotta

confused so the update is a polling principle it's ready and the results it kind of this fact which is being written much more formal than before including the binary interface and the movement and quite a lot of edge cases the results a separate telegram channel was which has much I think most part of the discussion of the is material forum but actually a telegram channel on top of this ever mainly one major decision is whether it's necessary to make a separate implementation for a kind of

alternative implementation and this alternative implementation should be actually as performant as a one which is already available and kind of well relative to it as a question whether you actually in the next work to give access to any arbitrary curve or for an export which says it let's say let's give eight this curves which almost like is almost needed for developers and we kind of eliminate them and say you can call any of them even while it will be the same code underneath and then kind of either extended to the largest set of curves eventually in the next work or even

between some works or just allow people to use anything on their own right from the next one so those have mainly two points for discussion yeah to give some context and also some questions so I saw in C there are two channels sodium channels and one of them it was mentioned that the implementation is seven thousand lines of code from what I believe is so that's one question if that's correct and and my because my response to that is basically if we have a behemoth of 7,000 lines of codes of C then I think we should have a second or even a third

implementation and have them run fussing both to implementations for like a month or two to weed out both crashes and differences because there's a really tricky trigger things to get right regarding the size of the code I'm sorry it really also depends how I kind of style its but in principle it's maxims weeds house and lines everything else which is a repository is a huge amount of tests and for every test which you

have to assemble it just have quite a lot of lines of code just to actually run it so it's not that insane number beginnings of fuzzing I myself will eventually get to it but for now my target is to is to run the gas between procedure first and then actually start making say a fuzzy tester which has not just taken some taking some input data and making it into some form of garbage but actually trying to poke some specific parameters into the invalid alleys oh but we need to add one very important point to the discussion here it's not C code it's all written in say

frost code so we don't have even even any non c'è frost locations except for the C expert interface where we receive the string of input data from from the color which we have to check for length and then we convert it into safe code and we only execute your say for us code so we can guarantee that there's gonna be no corruption of memory no memory outside of stack is used lately stateless and it cannot panic like only a few lines of code use constructions with good theoretical

banging like accessing some optional value but we will replace most of them with just returning error and a top-level there's gonna be catered for for anything so if you can't counter up memory it carrots and blow our memory in with memory leaks yeah I would still say I mean that's good it removes one class the vulnerabilities but I still think it sounds optimistic if you have something which is today only implemented in rust to think that we're gonna roll about on all the time the next hard work without having a parallel implementation and

having done differential passing this gives this the result this is kind of the question to developers directly I mean for now no one has volunteered to try to make the full replica in other programming language such as go or C++ for example super fast would be much easier in this case and go just from the language perspective there are some efforts to make kind of Python or sage implementations which are course not for production but mainly for cross-checking between implementation especially for

kind of at least for consistency I mean you just add the same test factor you should get the same answers basically even while your implementations are distant and not replicas of one another but it's more a question to developers whether it's enough to have kind of one main reference implementation which will provide actually the performance benefits or it's kind of really really necessary to try to make an alternative one in some other language which Elsa should give the same performance at least which would be non-trivial if you didn't go for example

I've always thought that one of the core values that aetherium had over most other block changes that we celebrate having multiple implementations and having multiple clients so to encourage people to use just one library starts to chip away at that so I'm a little hesitant to recommend that to developers because that's that's one of the things that you know we're sure of our consensus because we do it multiple different times I think that's one of the things that makes it very valuable oh yeah I mean it's more about it for now kind of come up I would say to people who work on this and I can't guarantee that I will be able to provide go implementation support of same

reasoning why maybe it's not actually a good idea to have many multiple implementations for this particular case is it there was an error in priority implementation of or p.m. or at least how the original code by zakat was called there was an error in gas code in gas for the same freaking vial and there is still unfixed error in Pantone for the same precompile next we shipped it two days ago okay then sorry I'm I'm I'm not following this too much but yeah sure it's just that in this for this particular case it may be it may worse

to push as much effort and one implementation a reference implementation which will be kind of supported and review it then trying to make two or three of those - just to stress it there there will be a separate implementation in any case in Python or in sage which will be intensively used for cross checks so that there's gonna be a very intense fuzzy testing with lots of different inputs for both implementations will be compared but it just won't be a implementation which can be included in and because it's not gonna be as performant it's where we're talking about really hardcore atomization for all this heavy arithmetic operations

which crust is really hard to beat and like compared to Python its orders of magnitude different so we're we're on it like the question is about an implementation which is production already not that there will be a separate implementation with with hundred percent compatibility requirement so I would I don't think that the argument holds that is a good thing that there's only one implementation because it means we'll have consensus because that means we might have a an incorrect implementation as our reference implementation and I

don't think that I think it's better to take it one step at a time I first produce a couple of implementations then make sure that they are consensus compliant through extensive fuzzing and then talk about including them in clients so I think it's too optimistic to try to get this into the next heart for because it's a very complex and one of the reasons that I think you haven't gotten a go developers I mean existing ethereum go developers to implement this is because this is advanced cryptography and most of us are not cryptographers so it's it's pretty hard to implement this stuff correctly

just a separate question about separate implementation I mean after in different conditions is there a kind of current requirement to have alternative implementation in go or just for example C is as good for this purpose or do sir Peter have it'll say anything about the question if is the heart requirement to have a an implementation ago it wasn't me osa it wasn't me who asked no yeah I'm wondering about your answer to that question Wow

so generally cooling for example to see method from go is about twenty times more expensive and calling a go method from go so is there is definitely an overhead now if if that method is basically just calling a pre compile and which executes some number crunching and returns that probably number crunching outweighs the function call so from that point from that perspective is not that relevant so including C code in bingo is fairly doable so we had previously probably the not exactly curve is to say found a seat so that's that's fine however including

for example Roscoe going to go that's a problem because though does not support I mean by default building runs to the only way for example to include rusting and gas would be to create a whole new build pipeline which first builds the rest library into shared thingy and then that imports that shared library into in to go as a kind of like I went as a static library and that one also drinks it's good it's a few other potential problems were protecting with go we can cross compact a whole lot of platforms and go takes care of all the figuring out which the compiler which flags

etcetera to use now if we start adding rust since go is unaware of rust it means that all of a sudden we have to maintain the cross compilation for every single platform that the standard library up until now supported out of the box so it's a it is probably doable but it's probably painful to do I mean it sells kind of related to the case for me I mean most likely what else about expensive performance to be quite different between platforms in this case while usually all the gas between happens and on one reference kind of

reference platform I don't know if it's also related and kind of this is a great feature which is available for a stream in principle but this one was also kind of troubles B was a gas between sheep also for example happen at some alternative platforms or not I'm gonna need to table this for the moment since we're kind of in a deeper discussion here and we have a lot of other stuff to get to if we could take this to the ethereal magicians forms and comment completeness sure so I like Alex created

DMC kind of bindings to this VIP so we can load it as a other kind of evm that supports only it is the single address yeah I just wanted to mention that I think that might be considered I'm not show itself any of the problems but this work has been finished so it's also something you can take a look fun did you say that Alex or Alexi did that and if you said Alex would ya okay got it thank you and thanks to Alex and I thanks both Alex's for coming on and talking about this and yeah we'll

continue this conversation on getter and the etherium magicians to see what we can do about the CIP just to add the last part the full spec is not yet available but it will include kind of almost step-by-step arithmetic implementation guidance for the same purposes or kind of people who are not deep into cryptography are never implemented it is not I mean not not kind of not never implemented it before which are not that familiar with the subject so if it helps for Google developers to actually try to make

another complication just tell me okay thank you so much the next action item is of the ganache that compliance is she with go etherium hope it looks like I'm getting an echo problem I'll fix that while I'm talking so has a team thing been done about that that's from like four meetings ago so we might just take that off to go from that the last comment is from Felix three weeks ago I tried this against a couple of clients and they all returned quantity encoding I'll bring up respect and the next four

quartiles call to make sure we're not shaping up anyone else but it should be really really be fixed in the spec instead Felix hasn't been present but yes can we change this quantity so just to expand a bit so the issue is that when for example the transaction signature is returned from the RPC the RSV values are returned separately and the spec the J suspect states that aren't as far binary blobs 32 byte

blocks and V is a value and cryptography autograph eclis actually all three of them are values so it's the spectrum is a bit weird probably somebody saw that hey these look like 32 bytes so let's just make them binary anyway the problem is that if you interpret them as numbers as a quantity then you're not you have a zero prefix whereas if you interpret them as as a binary block and you have to pad it to an even number of hex characters and that this is where gas and ganache tripped up on each other because ganache assumes it's essentially ganache follows the spec and get follows

the theory that these are numbers cryptographically and the question was who is at fault and fixing either of them is trivial we just need to decide which one to fix thanks for the update Peter so next up let's take off action item 58 point 1 because that's going to be in the cat herders domain now oh sorry I didn't know that was up for a question yeah I thought you said that you were figuring out a couple of points I assume that means something else and the question is

can we change the spec oh okay let's see and so that's a ganache question right there's no developers on the call for me what was that Tomas yeah I say any changes here it'll be fine for my first week sounds like since a lot of people use

ganache you go ahead and change it cuz that's gonna be a bigger user than other people who might be using it as long as they get warning yeah that's that's be bold here and take a position I vote we can change the spec I don't hear in a disagreement just a shout out to people watching if anyone any client is using it differently as a binary blob please shout out on the issue or wherever so that we can see you okay we're gonna change aspect to who has the action item

to do that json-rpc okay yeah anyone want to go in and I guess when when go changes it can y'all just go into the wiki and change it and there okay sounds good okay well we're almost done with the meeting and almost done with last week's action we just finished up well last week's action items so we'll run through these next ones we did get some good discussion down for the next for the next hard for key IPS some of them so let's go ahead I know that there's some people today who are tuning in for or who have joined the call I should say

for a IP 2028 and i think thats related to 1962 the one about the stark where rust library for ec precompile or ec arithmetic and pairing calculations that Alexie's involved in and i'm a my conflating two things together or is that right no you think you are yes so basically someone was talking about EIP 2028 that there were some people on the call today for that one is me and Oh wonderful Ellie should events a son should join too I asked him to join yes I'm here hi guys hey so yeah go ahead and talk about what

you need to talk about there since I know you're not on every call and then we'll have a little discussion on that and then we'll run to the next item I might have to time box you on there so just high-level thank you so roughly speaking so ap 22-8 is about the reduction of cool data gasps ghost which we worked on and released yesterday a test plan we've white block for to gather more simulation data because measuring it is a effectively his own network about the increase of block size would is is limited on the actual network and we want to hear but

people opinion on the test test simulation and on the Sioux Nation plan and also your concern he's on CCAP so the number was 2028 right yes okay let me pull that one up I'm gonna push this and chat I think uh yeah this was Alexi Ellie Tom and Louie that's right yeah so if any in terms of code update it's going to be relatively simple change by reducing the parameter

forecast cost of six day to something smaller roughly four X or something like that and time to reduce or - well we don't you know the simulations are gonna give numbers but it will be a significant reduction that's what yeah does anyone have any comments or concerns about some of the or want to get involved in some of the things they're working with with the test simulations to come up with the exact numbers for that yeah sorry governor I I just want to

comment like because 2028 is gas reduction so we I don't want to be more careful or applied with account versioning just to avoid potential backward capability issues you're saying it should be paired with account versioning or it shouldn't I need a conversion or we need to be like some extra assessment to just make sure there is no backward ability issues not on the contract level so it will not touch account really yeah it doesn't affect

EVM and also it's it's it's a bit incorrect to call it code data reduction because it only affects the the gas cost of the transactions which originate from the from not with it from the contract but from the external account because within the contract cause this there's no charge as far as far as I understand only the data that are basically included into the blocks and made their way to the to to kind of de to the frontier of the EVM this is what changes so I would say it's a reduction of the call of transaction data not to call

data yeah so it's a bit confusing but yeah we have great it's only basically the impact easy increase of block size muslim so just running them numbers so currently if we were to allow this i mean if there was a somebody said that we could reduce it by as much as 4x so that in theory if we stick to the 8 million guesstimate that would allow more transaction to be to a half a megabyte at max yes or a block I mean a block would be half a megabyte yes yes that probably we want

to I mean I so I have two issues one of them is the state growth so or the chain growth so it would be nice to perhaps the see how fast the change going help how large blocks I'm out our current leader and maybe I can comment on this so the average so okay so its first of all the average size the block is around twenty five kilobytes and it depends on what we are looking for do we are talking would we want to do chain growth as you know there is an archive node and also as a part of the

state's growth in our case we claim that the increase of the increasing capability of like sending merchant transmission we actually reduce the just a growth so this one affects both our titles our soul knows because all of them have to have to store the chain see that that's know that archive node will grow fast will grow faster but soon but will not share like necessarily store more information much more well but it's same since you make it four times

cheaper to push transaction data into full node you but actually grow it four times faster no no first of all the group is not like the block size ISM is only of the group and it's not it's more like but weekly roughly by it's more like the block size impact for today for 30 percent or 40 percent like during break dock numbers but of the actual size of a block or the like the data itself roughly represents three percent and so increasing by four we only roughly grow by by half the torch hmm okay that's right so I just wanted

to bring it on that it's it's an interesting thing to explore and the other other interesting thing which is maybe a bit more sensitive is transaction propagation because so currently I know that gap has a limit on the transactions and they can only be 24 kilobytes in size to be propagate or 35 we pushed a patch on it because 30 you know it so happens it's not the consensus rule I know it's not a concern is true but the point is that if unless all major clients kind of support the same limits one of them will filter out the transaction so it's correct if they propagate much less but it's my point

but that I wanted to raise is that yes it is of course doable to raise the limits but it does have two caches one of them is it's a always a denial service possibility so we need to be careful and the other is that the network from a network bandwidth perspective transaction propagation cannot a certain take a lot more take-up local band so for example if we allow a single transaction to a half a megabyte that I mean that's not a that's a non-trivial amount of data to shuffle through the network especially since notes kind of propagate this in logarithmically so essentially if you

had a 25 years then I don't know you will actually propagate the same transaction across your internet connection kind of five times four or five times so that's already two to two-and-a-half megabyte of data just for single transaction so what I'm actually saying is that we do need to be careful about the network traffic because you might end up creating transactions that just clog the whole network we we agree on that and it's exactly the reason why we we are making simulation with wide block it's you're either test we're gonna run this week started to be started this week and continue next week and to also to actually point an element

on that part is we looked also at the block the historical uncrate versus block size on ani theorem and since the update of parity there is a very very weak correlation between block size aunt and uncle rate and an existing blocks on existing blocks so the so the range of existing blocks range between 15k kilobytes 235 and there is a very weak relation on them correct I can share the the graph issue oh yeah but so honestly 25 or 35 kilobytes is the same thing but one order of magnitude increase here but

we will even increasing the block size we will not increase people will not send blocks of the size of the entire of the entire block like it won't happen today no one is sending blocks over 33 or 40 kilobytes what my my point is not generally use case of course people won't send a transaction with half a megabyte worth of data but if the protocol allows it it means that somebody could so if I send three of those transactions and the entire network dies then it's pretty much a diviner cell receptor so this is my main concern here it is also a main concern I would just argue over it by knowing and

by pointing the fact that zero byte or price at four bytes and you could you could make 0 the network traffic is compressed so 0 bytes actually come on snappy doesn't care but what kind of budgets button button matching it's only I can create a half megabyte block which doesn't compress at all with that but this is made to to to to go to the worst case scenario and snappy and and makes blogs that are actually bigger than 120 today using that the the zero bytes require bytes elements but the point is here the first first of all

that we have today to pricing their different 17-time different from zero bike and non zero bike and to be to be honest we I worked on it and I'd understand why and the second part is we could to the create custom rocks and custom transaction that will go over the Wonder and 20 and would still be a potentially a problem but we are not there and I think that grazing the blog site should be there made in a very controlled manner but shouldn't be too much of an issue as regards to whether the network is already doing today I just want to say that Peter your

requirements are well received that's exactly why we want to do the simulations and see what if the data points to and you know we'll be more informed we'll be sharing the data hopefully early next week once we see it and we hope we we all want to take a conservative view but I think there's a wide consensus very very long time among developers that call data and gas cost is way too high and this has a lot of you know other that effects that we already notice today that are causing serious problems and then that most notably you know that everything goes to storage their problems so well by actually doing this you might actually

making the system more secure but of course we need to address this point as Louis said we already pushed patch to remove this sort of artificial limit on gif and you know make sure that this happens so that there's no disparity between parity if the other implementations and then everyone has a larger transactions and will simulate and measure and we'll be working very cautiously he don't want to we only want to improve stuff okay thank you all so much for giving updates on that and I'm posting a link to the magicians forum where people can probably I'm guessing

follow updates on this for the Nets while you posting some of them medicine just for lat so last alcorta was Rick and I were talking about 1559 the EFI market change and and that we were in talks with a group that was also looking to do tests for e IP s and perhaps that part of the the DevOps that aetherium has could be extended to some of these groups and this this is the group so oh great cool and from the conversation last time I did talk to the dev ops team a little bit just like introductory about maybe having foundation resources deployed to

help test for e IPS whether that be server time or different like nodes getting spun up or things like that probably things that are much beyond that and beyond what I even understand how testing would work getting that under the foundation's umbrella and the initial conversations were good we basically said let's look into this more over time and see what the requirements are and see how we can help so nothing concrete there yet but that's just an update to our conversations from last time so thanks so much for coming on and talking about that y'all and let's move on to the next thing we have a few minutes left Hudson if you mentioned testing I could to make my

update right now sure a quick test update what is it yeah the main update I think is that get is now support retested and it is possible to generate tests for EA P implementation with a get client get now could generate state test and block chain test and we are planning to make workshop in Berlin this August was a test teams and people who might work want a test implementation for EAP that you mentioned oh that's great it'll help people be able to make tests more

more easily thank ya sure Martin butts out of their Channel and it exists now in the form of a PR in gas but it's not merged the ability to run status where the fork identifier is for example Constantinople plus 1884 so we can have status which says the based fork and a particular e or a couple of Eve's and that means people could start producing status right now and not good Istanbul in because we don't know how is the bow eventually will be defined thickness that put Constantinople plus each number and that could make it easier first of

all to get tests ready early on if the other notes also implement these kinds of test harnesses that's it great thank you for the next item I actually had a question that I'm gonna bring up from the comments to Alexei Alexei as far as all the state rent stuff goes is there any realistically the question is in the comments realistically do you think it is worth pursuing any of the state rent proposals for Istanbul if we stick to the October release deadline okay so the there's there's about five of the ApS that I've written and then I

didn't hope that they all going to go we will have the time to prepare them more so at the moment we have done the implementation of one of them which is the 2027 which is basically introducing a storage size accounting but what I've noticed is that it's actually kind of conflicting with the with the current implementation of account versioning which is basically adding another field into the account so unless we basically generalize it somehow it will be basically because the the account version is the fifth field and the storage as the fifth field as well so they have to be reworked it or we have

to find some sort of general way of doing it but I for for the others I mean we could do the implementation but I with the current state of the ýstanbul reparation I don't think that it will be because basically became it became a focal point for basically anything that so the focal point for anything that people want to change in aetherium and I think somebody pointed out that initial plan for like in when we were doing it from DEFCON four and in in back and Stanford is actually the the initial plan was to basically treat it as an emergency measures to basically stop the chain

from from dying but now I can see that it became more as a focal point for anything that people would like to change and in this situation I would say that it's probably unrealistic that the a lot of progress in the statement will be done because of the kind of a lot of conflicting issues and a lot of so basically what I'm saying is that I am I don't think we will be able to push a lot of the things in Istanbul simply because it requires more a bit more work and also because there's a lot lots of other things on the way so yeah so I would say I just want to - yet last week and right now if you be compatible with

with any additional account for you so this is pretty simple way just first parse the face field to travel exists it exists we parse a dice version and then they interpreted any additional account fuse as defined by that version so in that case it can be compatible with the state runs that accounts field yah-tchi okay sounds good I was at it Alexian way yes oh and the other still major part of

the work is to come up with a specification and some more data about the status client and say my state of mind which is still my focus but unfortunately there was a lot of stuff in between but I'm still looking to do that so you have a specification so that if people want they can implement in a compatible way in other you know in in any kind of client I'm trying to avoid the word the word find yeah anyway so that's basically it so we still the work is still going but it's I'm not very worried about not some of the stuff not getting in Istanbul because essentially

but you know if I get you if I start getting worried then there's not there's no good gonna come out of it so I I'm just going to be continuing what I'm doing and I understand the realities of our situation so is the one that conflicted with 1884 with the increase of s store oh I think it was a different one so the the the thing about what you wanted to discuss today I think Martin is the your proposal or FRA raising the cost of s load and an imbalance which was conflicting with my other IP which I

don't think it will be ready for Istanbul so I would basically say you know just ignore it for now so the other I don't remember the number now I think it was like 28 35 or 30 for whatever so I think if if you want to propose I think you already did the equation of a store and balance you know just go for it it's load yes and then just go for it because I don't think I will be in a position to basically to offer the alternatives for the next update for the next work I see question here does it does it mean that there will be no chance of getting

interim wine point X within 18 months or is it just that it will be 18 months but slightly slower than you expected before it's basically it depends on how the whole a theorem Onix kind of unfolds because as I mentioned that it's sort of the meaning of this it's been changing over the year over over the course of the year as I said that in the beginning it was conceived as the basically like a sort of set of emergency measures and this is where we created the initial groups but in over they like up to basically in April it's sort of it became clear that it became an epochal point for for basically anything that goes and I don't know if we if we want to rethink it and then bring it back to

the to the minimalistic set then we should be able to do something like within within 18 months but and also it depends on how we well we're doing with the testing and we were ability to deliver multiple of the changes at once and I also as Mitra mentioned we did some work on that with it with a theorem but there's lots of more more work required and I myself you know we even with with the people who helped me I don't know how long it's gonna take to prepare both stay trend and trying to change the process to to accommodate older all the things that people want to put in because I said it's becoming what it became quite a large thing so that's I don't know basically the answers I

don't know I have to see what happens when I stumble first yeah s tibial is gonna be a big deciding factor and what 1x turns out to be but it's kind of like an an all-encompassing thing now that includes process changes with how decisions are made what AI peas are going in you know between now and what is quote F 2.0 and and also the mitigation efforts Alexei mentioned towards stuff like state bloat and things like that yeah we need to reject more suggested Eve's and not just table discussions for later that's a good idea yeah so we should start doing proposals to reject eeap's outright especially if

they're slower on the uptake as far as getting them ready by the time they need to be ready and that there's only ten VIPs that have reference implementations out of the 34 we should have like a chopping block session next time where we like really get rid of some well the soft deadlines according to a freeze original schedule for client implementations was next weeks which is why I propose that we can accept them today should probably just be chopped and pushed off so there was a little bit of quiz back there but I think we should definitely do it in the next meeting if it's not in the next meeting it's not in and I think that's that allows you to do if we can be confident that the next pod

pool comes soon so it's really buying into that schedule yeah are we buying into that schedule what does everyone think or is there anyone who wants to say I do not buy into the schedule or I want an alternative I mean I said before that I don't buy in the schedule but you know it's just my personal thing and this is the way for me to stop worrying about stuff it's just that I'm still hoping that we could we could we could increase

the cadence and then we can do just yet we can do four more more changes but the smaller ones that's but I don't know how it's gonna play so I think we could accommodate we makeout space and say this work is just for these issues but that's you know we're six minutes over so we're not gonna solve this today but I would support that um we can make a whole goal for the next meeting to be you know cut out a cut out or basically make sure that anything that's gonna accept is accepted by next meeting let's do it anyone else have comments on that no I have more like a formal question for the

person who actually does intimidation what in polls are a kind of reference implementation in the sense of completeness that's a good question who has an answer so what do you call yes so I mean you like a reference implementation can be called few different points on this kind of the first reference implementation plus some gaps between initial tests like what's in the spec in principle also it can be also you can call the reference implementation that kind of full set of separate implementations in all different clients and this is actually

implementation in a client which show two other node implementers ok so how do we integrate this and what parts need to be touched is it I mean for what for some of them is just changed a constant in a gas table or the pre compiled some test cases and you're done and for other ones it's a lot more complex you have to change the something something in a in the block below or whatever so I would say full pull them in full embedding of the eep inside a node that we might take I when I was writing so to answer this question my way sorry for the interruption so the when I was writing this blog post about the the process of each one X so my definition of reference

implementation was that the implementation which is able to generate the conformance test is the reference implementation and so far we only had Alice as the reference implementation because all the tests would rated off that but as the Mitra mentioned now guess is also could be used to produce a reference implementation because you can generate conformance test from it hey way if you can if you're able to speak for the parity team on this is there a way that we can get the I think it's called the changes in so that we can do the same thing with them is that what it is Dmitry yes also we did this

implementation this going on as research project and might be air PC is not the best solution Alexi I mentioned that he has idea how to improve the protocol using some as a communication channel deaf p2p only p2p I think yeah if way I'm going to if you want we can we can talk about it offline I can explain you what what we didn't go is here and you can probably we can probably transplant it to a parity so yeah I think we need more discussion like right now right now for Part II we are still like we have some issues implementing like implement

you know test for decor using our PC masters because that would require like a really large among refactoring from our kernel analysis but we can talk about this if there's other ways okay so there was initially would go cheering was also saying but we just did it next time we'll be let's decide obviously on the decision a hybrid suggestion if we automatic if we say we we cut all of the VIPs that don't have reference implementations by default and

other ones need to be apply it's like apply for specifically that would cut two-thirds of them so then I would say a good kind of in between the ones without reference implementations are automatically on the on the chopping block and if they don't come to the courthouse with something that time and that's already two thirds of them cut um a quick question on the implementations it was brought up that there many a IPS which proposed a gas cause change or like a simple change and many of those didn't receive any attention from from a

lot of clients yet does it make sense to make the change in one of the clients and will that get a review faster in that case I felt like for that category of EIP benchmarking was more important than a reference implementation am I wrong so this one example is the the repricing from martin i think i've been a problem here actually there is no problem here just we assume that they are so simple that I need a discussion or maybe we'll be good to formally confer me that we all think like that because some some of the a piece on the lease they seem very

very simple and everyone assumes they're true though and so on yeah changing a constant probably doesn't need a reference implementation those mainly benchmarks and justification so 1884 does have a reference implementation in a pure thing just recent development is that oxic pointed out that xcode hash should get the same increase from four hundred seven hundred as balance it was priced in it was reduced in Constantinople Xcode hash at 400 with the reasoning that it should be the same

as balance so I plan to update if it's possible to update the finalized date the repricing to also increase xqo - from 400 to 700 just like balance it's a bit more than trivial though because it also introduced self balance and very cheap so yeah so it's not as trivial as only repricing but it's still pretty damn trivial and that's 1884 right that's adding it for okay so James you're an idea of basically cutting out all the ones that don't have reference implementations now that's kind of being challenged to say some of these are so trivial they don't really need one is

that is that where we're at it's the case and they bring that up and then it's resolved okay yeah that's good so let's just say nothing's officially cut tonight but it's on everything's on the chopping block if it doesn't have a reference implementation and if you don't attend the meeting to defend yourself and say this is why it doesn't need one let's do that and then for the ten that have reference implementations will try to discuss that as much as possible offline and then during the meeting try to have you know more focused conversation on it sound good everybody yeah do we need to carve out time and discuss

what the nice force would look like afterwards we'll see how the meeting goes I guess if we have time I'd love to discuss it but if we don't we'll have to switch it to a magician's thread sounds yeah okay and we had to skip some items today sorry everybody but if you could go to the agenda and click on them and like comment on them especially the EIP 21:24 since that's not a that's not a Istanbul EW but a networking EIP that Felix and Peter from the go team want to bring up I'll go

ahead and take a look at that and we can kind of give it up or down next time so just about that yeah it doesn't touch consensus it doesn't even enable anything yet on the network because it just defies the data structure and I guess most people don't really care but the question is if anyone sees anything obviously wrong with it or on and has some obvious if you wouldn't then just please write it down I honestly I don't think it's worth too much time to think about it because it's just a no-brainer definition of something that might be useful yep lastly is there anyone that I just like skipped out on there AIP this time I

think I'm I skipped 1962 which was the matter Labs thing or did we talk about that we talked about so many we talked about that's right it was Alex's thing sorry yeah we talked about so much EC or athletics stuff or whatever today pre-compiled stuff that I was like head was spinning and then the EIP 2025 that one is block rewards proposal for eighth funding for one X I think other than that we got everything done if you want to talk about that real quick I think James right you have that on the table if you want to just talk about that while everyone's still on and then we'll sign off or you can wait till next time

it's up to you hello James can you hear me you're on mute a few our top course I was muted yeah we can talk about next time all right sounds great all right well thanks for staying over everyone and we will talk to you all in two weeks minus eight hours from this time and then we'll need to be careful keeping up with when we subtract eight hours not to go back in time like a day and to actually keep it between Thursday and Friday all right all right thanks everybody have a great weekend Cheers [Music]

[Music] [Music] [Music] [Music] [Music]

[Applause] [Music] [Music]

[Music]