All Core Devs - Execution #65

All Core Devs - Execution · 18 Jul 2019 · 1:40:18

Ethereum core developers review the Istanbul EIPs on a chopping block, with every EIP lacking a reference implementation dropped apart from a few exceptions, and discuss EIP-615, EIP-1344 and EIP-1965, EIP-1283 and EIP-1706 and EIP-1962.

Speakers

Topics

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

Transcript

[Music] [Music] [Music] I haven't started the recording just so you guys know so go ahead and give me a heads up when you're ready at all

[Music] I mean that's sorry I'm good to go the stream is up I just haven't flipped over yet [Music] Thanks [Music] all right so Tim because I've made you

the host you need to hit the record button down there and record to the cloud you're on that okay and then okay and I'm switching switching on the live stream now okay great good morning / evening everybody for cortes 65 pretty packed agenda today so like we talked about last time this is the chopping block call for Istanbul so hopefully we can get through all the apes have been proposed and get to agreement various on whether or not we want to include them in the assemble upgrade James you want to go ahead and

kick off the conversation on this you you James I don't think your mic is working you are correct the the gate restarting the as just as we talked last week we're gonna use our last I'll Cortez call we're going to use this Court has called to go through the e IPS and look at which ones have reference clients and which ones don't and in the case that they don't if there is someone here on the call to defend why they should not need one or why they should be exempt from this cut then this

is the time to make that defense and I'd like to keep this conversation pretty focused because we have a lot a lot to get to a lot to get through so the format is gonna be I say the status and I read through all of the e IPS and looked at their reprimand their implementation inside the EFD IP so if I'm out of date on any information that is why then I'll say that if it has a reference or not and then I'll ask if anyone and if it doesn't I'll ask if anyone here will fight to keep that e IP and if there isn't anyone that steps up then I'll move on to the next C IP something's good yep so I'll start from

the top and then after that we'll go through the list you have ones to go in deeper conversation but I want to keep this really moving along so we'll do it quickly so this 1665 has a reference client these seven routines and Static jumps 663 unlimited swap and doop doesn't have a reference client okay you do all right so I'll add that one to having a reference a recommendation in Prague pal 10:57 has a reference client a reference implementation one 1:08 replacing alt Ben 128 has a reference client and I'm

just going down the list sequentially 11:09 does not have a reference client that is precompiled opcode 1109 so if no one has a defense for that then I will leave that one as not having one 1283 s store NetJets metering it does have a reference client 13:44 the chain idea opcode has a reference client 13:52 restricted precompiled range does not have a reference client

Paweł Bylica: I think the last one doesn't require any implementation

changes at this stage

okay so then I can also mark that one as not needing that the 1380 self get called gas costs does not have a reference client does anyone have a defense for that any repeats thirteen if they're thirteen eighty self called gas costs okay thanks Louise 15:59 the fee market change

Louis Guthmann: that one doesn't have a reference client and it's not close to enough I

can give an update on that later but I won't do that part of as part of this discussion 17:17 Oh to account versioning has a reference client 1706 s store disabled below gas left does have a reference client 1707 use version byte prefix for contract account versioning does not have a reference implementation

sorry what lists are you reading up now I can post it in I'm not I have two computers open so I can read and talk at the same time yeah it's the Google sheet if

someone could link to Google Shi in there I'm just going down I'm on row 17 right now for anyone following along at home so use version by prefix for contract account versioning okay 1712 disallowed

Wei Tang: deployment of unused opcodes does not have a reference implementation does anyone have a

reference for that one is I mean the issue I think right now that my is not in the seventy the six sixty seventy

nine least umber metal part four so I was just not sure whether we can get it but I do have an intuition that if we define a new version that made me if we define a new a conversion in the maybes it's a good idea to apply that but anyways it's not I I think it's going to matter hard work so it should but there's a discard in this stage it's not yours way yeah so if the disallow but II follow I use of coal I same gesture we

really useful when we define a new version just cut away with those type work of grading issues but like the only issue right now is I I think I forgot or something at that is currently now in the metal yah-tchi least oh there it is okay well it wasn't in the list because it hasn't been merged yet but it was submitted in time so that's why and if it has a reference and let's just say it has a reference and then we can come back to that as another discussion or it doesn't have one okay it doesn't have one right now but if we like like it really depends on whether

we want but like lesser we can be found new version for example and it's a relatively simple like really simple change and I think well it would screw with all the metadata so that it puts in at the end of the byte code right yeah it was true all the metadata but it would be a really like like really good thing to have like to like make sure new versions don't have backward have any issues finally so I think I would drop this because okay yeah through our usual all right well thank you a um 1803 opcode rename that has a reference

client 1845 the fork name standards that doesn't have a reference client so the four names down isn't the case I mean don't we only have to modify the test harnesses it's not it's actually a hard for working change wrong okay so then I'll list that as not needing one 1884 the tree independent repricing has a reference client 1891 contract based account versioning does not have a reference client that's 1889 1891 contract based account versioning I think that was seventeen in some ways

yeah 17:02 is the preferred solution over that fair call yeah like all that our conversion should be called okay then I will I'll also note that one then on 1930 call with strict gas that does not have a reference client moving on to 1959 method to check if chain ID is part of the history of then it cuts off the text because it's too long of a title the 1959 that does does not have a reference client does anyone

have a defense for that so then it doesn't need one okay so then it does not have one 1962 generic ECC pre-compile that has one 1965 historic chain ID it had yeah it was posted this week for like preliminary pull request and test parity for the brass implementation and were finished C++ implementation today which most likely will be integrated and go with cerium I mean it's up to preference

of ghostery developers whether we will either integrate integrate rust into the compiler pipeline to assemble or just use a native goal and compilation of C++ but in principle will also integrate it into the guess early next week okay yeah let's have this discussion later it has one at least in the yeah yeah um James just coming back to 1959 before on the last call Ronin advised that we could drop it so that's part of the decisions made okay then I will put that I'll also note that to 1965 historic chain ID did we just say that one know that historic

chain ID 1965 doesn't have one it has been reviewed on the whole quartets call it doesn't have a reference client is this one that doesn't need it it needs a reference quite my opinion is anyone willing to fight for it okay moving on to 1985 list of EVM parameters that one does not have a reference client

Paweł Bylica: I don't believe it requires one because it's it's like 99% of that is just on paper specification which is being discussed but also EVM C

implements most of this parameter

there's one complex about that for if you do it only in the idiom and it's fine we don't even need too hard for it if we want to apply it to the block validation and apply the same levels for the unquote time stamp then we guess we do NATO more hard work at least certain block and thus yeah foundation but it's fairly trivial so then we didn't need one today yeah can you say that last party in or it should it or it shouldn't for today

yeah sorry yeah I don't know where that leaves us if it needs a reference implementation or not if you want to go the full limited only within the EVM or within the full block outlook ok well I'll leave that one is TVD depending on that those kind of things and then obviously the more likely that it is the not fork version the likely it'll happen to 2014 2014 extended state Oracle Alex I believe that's yours I do not see a reference implementation on that so I was looking for that yeah yeah I

was gonna say if you're talking you're muted yeah well nothing happened on that front but it would be I guess on one part it would be a recommendation had to extend the the state with data and the first example for that was the chain ID but since it really seems that a different alternative implementation for the chain ID selected then I guess this this won't be needed right now okay all right well thank you Blake to be 2024 has a reference implementation 2025 the developer block reward has a reference implementation

for the one that it depends on then this is mine so I would need someone else to make this call not me I think that it is simple enough that it's okay to not need one and maybe we can come back to that one at the end to him when you're when you when I hand it back off to you 20:26 is the fixed prepayment that does not have a reference client that is Alexie's yeah it does not have that's okay and I don't think the I didn't see reference clients for the either twenty twenty seven or twenty twenty-nine well there

was an implementation for twenty twenty seven but I wouldn't consider your reference client because I said there are complexities there and so I would not yet then I don't I don't think the you have something that that is has been enough for the other AI piece and I think it would be it wouldn't be fair to say that all of them need to be up to perfection or up to a a complete status just a implementation so I would actually say that that should still case be the case for 2027 at least if you say that's fair

okay yes we've implemented but it's

Alexey Akhunov: not in the client which get produced the over the conformance test which is my definition of reference implementation we could see you know how it goes but it's it might be

that it would be okay well I'll leave it leave it in for now and twenty twenty twenty eight get called data gas for stock reduction it does have a reference implementation oh yes it does I know I've seen that one so I don't I don't know I I must've missed working that one twenty twenty nine state counters and we're almost done guys no no reference documentation for twenty twenty-nine

okay twenty thirty one that transaction counter no no not for that one either 20:35 stateless contract storage what was it is it also mine very fine it sounds like it's yours what I may not oh yeah so we know no there's no reference implementation ok 2045 fractional gas cost that does not have a reference implementation we have one but I'm not sure if we've pushed it yet okay well that's good enough for me

20:46 reduced gas cost for pre-compile I would I would defend that

Alex Beregszaszi: it doesn't need a reference implementation because it's a one-line change but there must be an agreement

between this and the data version from geordie okay doesn't it also need to be an agreement what is considered pre-compiled yes that's correct then ended and that is all of them

Tim Beiko: thanks a lot James Reyes thorough review

I guess in terms of next steps does it make sense to say that the ones that do not have a reference implementations and that didn't have a justification for that should be dropped for Istanbul

and it's not a question to use a question to everyone frequent updates I think it's fine because they can just hop on the next train yeah I think it's fine yeah that was the intent yes okay does anyone

disagree with this okay if not so

Tim Beiko: it seems like we have rough consensus that everything without a reference implementation except the few exceptions we mentioned which were 1350 to 1845 1985 2027 and 2046 will be dropped for this

this upgrade anyone else have any comments on this okay so moving on so

Tim Beiko: to the next section this is a bit the opposite so these are eats that have

been discussed for considerations and that may or may not be ready to make it over the finish line and to the to be accepted for the upgrade so now I'm back to the list on the agenda for the call I'm gonna go through them sequentially if anyone has thoughts about them's comments please speak up I gathered this list by asking everyone who was on a previous call which eaves they thought were most important to discuss so there's no specific speaker assigned there there any of them

so

Tim Beiko: the first one on here is 615 which is in last call right now

Danno Ferrin: that's the one to add a lot of about 10

different opcodes on about three different themes which is jump subroutines and code data there are no tests in this and there's a little bit of pushback from the IP author when asked to add tests he wants to be grandfathered in under the old rules I don't think it is prepared enough to go into a hard fork in about a month or a month and a half I think there's good ideas in there but I think it would be better served on a future

hard work I totally agree with us yeah a couple of days ago Kristen right bestir I posted on a 6:15 fellowship threads summarizing basically a lot of the things that I

have voiced earlier as well and so I

Martin Holst Swende: I would be in favor of dropping it

as I said before

Tim Beiko: does anyone disagree strongly with this and wants to fight for keeping it in the

heart fort this is final rejection this is just a nod Istanbul rejection so yeah

Tim Beiko: okay so I think we have consensus on not having 6:15 as part of Istanbul but not fully dropping the EEP if in the future it has more

tests like like what's mentioned

next one on the list is 1344 which is a chain ID up code and 1965 there was a lot of discussion about this on the dealer in the past week and namely can we make a decision on 1344 independently of 1965 and the author for 1344 unfortunately cannot be on this call so does anyone have opinions there can somebody explain why why we need a turn idea of code rather than just using like a fixed advice for returning the charity of the current Beauchamp because it can be

redeployed deterministic how do you mean way like we can like we can either use qui to or create base fix known or dries with Sundance or Twitter which is more deterministic to just deploy a contract in like in like different blog channels which just return the current charity of this blockchain why doesn't that work

yes like why would might we need a new trial call if there's a for copy deployed contract then the chain ID might change from the deployed values this is a port protection yeah another one so and to go out there and we ways that'd canonical hash table Oracle's so there's contract which can tell you what's the canonical hash of a block had a certain height and we deployed that contract on the obstinate rinkeby and Maynard and the thing is pretty nice to have the same set of a signer keys for the Testaments so we submit signatures I

sign it Peter and Felix and whoever signatures saying they are this is the canonical ash for block X and when that is validated on Jane it's nice if that signature also paints the chain ID so that no no I can just take the signature and submit it and that someone who validates it the signature can see that yes this sign be the data was intended for wrinkly erupts them without actually knowing the address with that contract is located but you seeing that yes I have three signatures and that's all I

need okay so I like a Glock rivet and it has usage but right now the only useful for me or 3044 is that is superb stuffication is not really clear at this moment I think we if we just I don't think is possible to define China of a block but it's possible to define the charity of a transaction so if we change 34 the first destination to make this child go to return the child of the transaction

yes more okay with me how did you chain I D within a block so a block yeah so it's about it I mean in practice it's

Martin Holst Swende: exactly the same thing but yeah I agree with what you're saying any code that is executed as always in the context of a transaction

it is it is not always the same because right now we can still send collections with no child that is now replayed for that kid so in that case there will be practical difference for produce two definitions why do you

prefer your your very own term could explain that I mean the the usual is like is there's not really clear way to define what is plug chance tidy and also the issue is that it might change so so I do say that like jessa pretend to hazard for field future like forward capability issues when we might have so if someone so one possible drawback is that it's someone Forks of

ethereum having this chain of the opcode will discourage them from actually changing the chain ID because they might break things yeah but I mean it all depends on how how this channel code is used we we do have a lot other up codes that is dependent on the transaction like we can gather transactions gas phase or some other properties of the transaction but like currently like I think if we define chai tea also in that category in here a

lot like to you rather than defining guys are probably on the vlog Channel because the Chinese highly change in the future but I think it would be the property of the current block so it would just be which train ID so if transactions specify a train ID which is the train ID at that block that's accepted so if it's been a hard fork later you'd see that change now the only difference in practice becomes whether or not chain ID returns zero now some kind of sentinel value to say this transaction did not have a train ID at all because they are still accepted I mean if we if we talk about like also change of charity then the issue is it's

may nodes like like this certain block may have multiple Chinese 4x4 capital issues like for future Hartford maybe there's a chance plea and we want to apply new like additional replay protection that we need to give our new charity but in that case we might still well the old charity to continue to work because some contracts may depend on that already so so so just mark Romans there may be Munich for charity within a block I need I don't think he saw her in poverty of the block rather is a poverty

of a transaction yeah

Martin Holst Swende: I would kind of agree

it would be good yeah at this point if Bryant abs and its thoughts about this I can't believe what you're saying with so given that they're still like this uncertain

Tim Beiko: uncertainty is this something we think we can be resolved for assemble or would this have to go to the next upgrade

so regardless this is a trivial one to implement you regardless if it's on the block or I mean on Genesis and or if

it's on the transaction but it might they might

Martin Holst Swende: may be security implications aside from the actual implementation

of the program which is none okay to ask oh go ahead please I was wondering if we could post his concerns into the Ethan's thread on 1344 this repose solutions for that so we could keep the conversation rolling there I mean right now if we agree that for none for for a transaction that is not signed with which we pre-production it it has a give if it's in that transaction if your couch ID return

zeros and those two every quiver equivalent but if if in fact if we're done we play protected transaction for the child Yokoi still return were really different than zero than those who will be different yeah so

Alexey Akhunov: I just reread the initial proposition for this for this change and essentially the the reason why it was proposed was that smart contract wanted to ensure that a transaction which was given to it like a roar or or signed transaction was actually was actually replay protected

for the current blockchain so in this case it does make sense the chain ID returns the the ID of the current change rather than the idea of the current transaction because otherwise you can trick the smart contract into accepting something that it isn't didn't really want to accept because they at the moment the chain ID had to be a hard-coded in the smart contract we equals to 1.so but the idea was that it would be more generic

you can just check whether like you know smart contract you can check whether the Chinese return zero right

Alexey Akhunov: you could but it's basically that what you suggest is

define the original purpose of this change

I don't really

Wei Tang: maybe we can discuss this later

I do yeah just

Tim Beiko: to be mindful of time given how small of a change this is do we want to put it on hold for the next call resolve those issues and then potentially still included or do we want to push it to the next upgrade

I mean I mean I would say that you know we there was a quite quite a lot of discussion about it already in the in the what is it in a gator and in the magician's and nothing kind of people

but what I what I could gather it was basically you know now we starting to go around in circles and trying to so I would just basically implement it as we agreed in the chat what is the gray version like the good version is basically just for the dope code

Alexey Akhunov: to return the the currency an idea of the blockchain because I understand that you you might have some kind of sort of like aesthetical issues with it but I think they just purely static Oh from my point of view

like I still don't I don't I concur quite agree with that

because like like in the in the last Peter discussion on the Chinese issue I think the outer kind of stated that intention was to use the definition of China of the transaction so yes and I still think that using the China of the block you have a lot of potential back workability issues in the future so it's no filter compatible which I think it's

probably not a good idea but are those futures gonna happen are we gonna add block chains you're gonna have multiple gene IDs in the same block that's not what I'm like it seems like a new concern that no no yeah

Tim Beiko: and just to be full of time we're almost halfway through the call and we have a lot of each to get through so is it worth pushing back this discussion to eat magicians and yeah and follow following you up on the next call unless we can get like a resolution in the next minute or so I think it's probably more productive to go through all the other VIPs no one seems to disagree vocally so

they given how small of a change it is let's just go back and figure this issue out and then potentially accept it in the next call if if we have consensus um another one that's related to this is 1965 so this was the pre-compile approach does anyone have thoughts on that one

Danno Ferrin: I don't think we should facilitate minority works but yeah but we put in main that they want to do that they can put in the work and propose changes but I'm not I think it's more work than needed and I think they both can go in

it's not an either-or

yeah I agree that's

Tim Beiko: does anyone disagree with dropping this okay so agree it's dropped from Istanbul at the very least

next one is 1283 / 1706 so

Tim Beiko: for some context there we wanted to move the conversation on this and try to organize an AMA on each magicians no one seemed to have concerns that they brought up there and Hayden helped it's

I pronounce their name from uni swap came in just to say they supported this so I don't know if anyone has opinions about that 1283

I think I think the only issue is to just say yeah key number but that shouldn't really affect our discussion right now we can it's just a documentation issue and we accept or reject is this VIP without considering that is it this one we just had the El Cortez Gator discussion about merging in context of another VIP yeah so is the

yaki to 200 so that is like just to facilitate in the case if we have 80 84 included and we also need to change spag off 1283 a little bit so in that case it may be easier to just create a new IP so this 12 83 years it's currently proposed but this also come automatically with that other LP which prevents this mechanism from happening if you have less than or equal to 2003

and yes that is terrible III and 7006 combined 20 the to 200 tasks combine 23 and 7006 so

Tim Beiko: does anyone disagree with accepting 2,200 as a replacement for 1283 and 1706

you're talking about this methanol just where are you talking about accepting or

rejecting theyíve accepting 2,200 into Istanbul as a replacement for 1283 in 1706

Alex Beregszaszi: I want to make a note it was discussed a few times that there should be in Yui IP for 1283 and the reasoning against that I think on the last call was there a lot of the clients have 1283 implemented as is which was enabled for constantinople and then disabled for petersburg and these clients would want to keep this behavior and have this switch toggle again to enable it and there was the reason for not renaming

anything or having a new

e IP but isn't my 200

Danno Ferrin: resolving some conflicts between another proposed e IP it's not a direct implementation

it does have a apparently does have the full spec

Wei Tang: what was the question again is it about reference implementation

no what precipitated the need for 2200 was it because it conflicted with another AIP that needed to have some clarity or it is actually so the usually there's 80 84 which changed the gas price of a slot

and in that case to attract the 28 he know the 1283 has a hard dependency on the old I still out gas cost so it is hard-coded there and we can change that so so if we accept 80 84 then we need to change this bag of 1283 a little bit so in that case we need a new jockey for that and that will be to two hundred and regarding the

issue of reference implementation at least partly we'll need that because our definition of 1283 is actually the same i 200 so so we just need to change our config from it and leave that that's okay it's for parity

Alex Beregszaszi: can we clarify 20200 is and to to my understand this was discussed like five minutes before the call and to my understanding is that 1884 changes the cost of s load and 1283 isn't changing that

or yeah I'm not sure

but then okay I can explain so 200 that's not change anything regarding ice load it's only change so I store guys Coast it changes so it changes to part first it just went to gas core values of 1283 first when already no value when the current value equals Q value basically means I said story said no all the in that case we always charge to stay as ice load which previously was 200 and

because we have a ready for a it becomes 800 I remember and another is bigger related to the final one which is when you set up value using an ice I store and when you we share that value the refund also contents a little bits of the guest host of ice vart so that one that gas cost is also change from my visa is a volume minus the ice to outcast host which which we need to just

take take account into the newest or Gaskell's so there's no logic change like no like nothing nothing I was gently just the part which it was related to I saw guys cause change so it's basically still the same is traveling so

Adrian Sutton: it sounds like we're in agreement that we want the functionality of 1283 and 1706 and it's just a question of how we're documenting at this point

is that fair to say you know but so 2,200 seems to me like the best is the best summary

of the entire thing

Adrian Sutton: yeah I like the clarity since it seems to be interacting with other things other IPS that were likely to accept

the clarity of having the right natural right gas costs so you don't have to order a IPS within my part book would be nice

Casey Detrio: so I don't think 1706 should be bundled with with 2200 / 1283 just because I mean versioning is a huge change that would apply to many you know potentially apply to mini VIP is going forward

Danno Ferrin: 17:02 or 1706

Casey Detrio: 1706

and KC

Tim Beiko: just said be clear are you objecting just

unlike the documentation / bundling

or yeah just the one woman so just again

Tim Beiko: to be mindful of time does it make sense to say we go forward with all the functionality described in 2200 for Istanbul and we sort out the documentation

/ formatting outside of this call does anyone disagree with this and this also means we apply net guys metering without a conversion name you yeah 1706 used to be bundled

Danno Ferrin: with 1283

1706 is the s door so that doesn't need to be bundled anymore 17:02 I think we also last call decided not to bundle it ply 1283 in 1706 across all versions

so

Casey Detrio: just to be clear a few if you do not s store metering whether 2200 or 1283 without versioning then aren't we in the same situation before Constantinople

No so the 7000 sixties of things yeah it would require some t6 okay so 1706 is basically the sentence if gas

that is less than or equal to 2,300 failed the current cold frame without the gas exception I say okay

Tim Beiko: so does it make sense to move forward with 2200 and functionality and then sort out the name engine whatnot I think does anyone disagree with this

so

Alex Beregszaszi: can be clarified that we want to bundle with 1706 the fix for a store or we don't

we we bundle a 2006 and to 200 contains it contains the cost in 1706

yeah so that's what simple functionality 200 yeah

Tim Beiko: we do everything in 2200 and we determine whether we call it 1283 plus 1706 or 2200 a cinch does that make sense

so I don't object but I'm not a fan either this one set up to the functionality or the documentation oh no

Martin Holst Swende: the whole thing

I mean really in theory right I proposed like different approach to 1706 and now it's bundled with

something else and that's not going to be review tools yeah it's

Paweł Bylica: it was to just disallow any any state modification when you enter a call with low

grass upfront without include log operations

Paweł Bylica: no logs will be allowed

because that was I think the original idea of stupid anyway so

it's it's described yeah

Martin Holst Swende: I think that's an elegant approach

it described at this sling that actually the way this car was supposed to be so I think it's not

Paweł Bylica: time to go into detail there what I would like to get feedback on it

this is the static I I just think that may be equivalent because the only state modification so you mean including access store and also Co and create way to etc is that okay or do I wanted to

like enter static static mode but then realized actually the logs must be loud so it's kind of like semi static mode so for simplicity out I would suggest to disallow anything except for logs so static mode with locks allowed but it was mostly for simple simplicity maybe there are some some cases where that would be useful you still can do a call provided you don't send any ether remove it so no it's not specified in the discussion with discussion about the AP

is going on I

Wei Tang: I just think it might might actually be more complicated

just because we're introducing like we can lose the static both of of the current UVM or anything we need to define a new mode of the e VI it's arguably a little bit more complicated than this simply these are long ice ice storm when you have no gas closed but I mean I'm not really strong on that so I put some

Paweł Bylica: some reasons why I think it's

better for my from my perspective what I think let's read it first and maybe you can discuss offline

yeah okay so

Wei Tang: are we not making a decision on 1283 1706 and by extension 2200

when we agree that it's tentatively agreed and this proposal by pebble will be reviewed okay by the next called I said sound by good good okay so this oh yeah

Tim Beiko: this

overall functionality will be part of Istanbul will review a Laos proposal and also at the same time how we bundled it all but there's general agreement on the on the functionality

does that make sense you

Tim Beiko: okay um next one on the list is 1962 does anyone

have opinions on that one so it's for easy pre-compile which we kind of started the discussion which was not a time so since the last developers call so there was a kind of requirement it's

much easier to integrate SC implementation into the existing gasps client at least so right now service SC implementation which will be integrated and or as well as an alternative option we can now suggest integrate buildings a Rast implementation along with buildings going cerium itself so it's actually up to developers or what which option is better for example but right now there are two implementations which are quite independent and what we do now is we'll basically facet test some one versus

another so if either one of those crashes for example or just if they give different results so this is what I'm going to do for next two weeks at least with just more computing power and simultaneously finished gas meter my opinion says it's very complex I would like seeing both of these finished publicly if you know out there for a couple of months and people oh yeah yeah I mean from the perspective of heavens I'm available those are

available and largely finished so if I find something by fuzzing I will just get much faster for discrepancy of the results especially but those are public anyway already

Danno Ferrin: I think what Martin's trying to say is you'd feel better if this wasn't in the stand bull that was in the next hired markets it's a big change and it needs more

more of you time so the kind of the partisan strategy which was also discussed for this forces precompile as its well basically is the universality the global universality is the only

different difficult happening it's implemented every sin elseis is three well and you can just take a lot of existence existing implementations and just tests and modes and most likely it's also already tested so also a separate strategy we'll discuss it for and

Alex Vlasov: if we use the same code base in principle and continue to review it and improve the quality but for next have for card work we just give a set of I think was six to eight curves which are most likely will be the most interesting for developers for next year or half a year and in the next hard fork after it

it will be allowed to use generic

functionality

Danno Ferrin: but this is already the most complex precompile I've seen specified and it's very there's four direct branches based off the first parameter with different gas metering rules it's it's not a it's deceptive to call it one pre-compiled it's at least four different things and then you're adding on more possible curves in the future I I'm not comfortable getting it in this this one right now

yeah and I like that I mean we've had the previous times we had advanced or at least to the layman advanced crypto to ask recompiles there have been headaches and a lot of difficulties and near I mean we have consensus issues on pre

compiles which was not trivial to fix and not trivial to find and trying to exit is very devious because when you submit a patch to a library in crypto it's pretty obvious that you're touching a little bit that which can be exploited in a second so I'm very wary of this and I'd like to have the two or three implementations differential across I mean I assume they won't crash but differentially fast for a long time

that's fine that's my take it's too soon focus on mobile it's my opinion you know yeah well the

Alex Vlasov: differential testing is actually what is we are doing right now and just well just from the implementation perspective it's actually one pre-compile because as soon as you implement one care if you get all other for free it's it's not that difficult

preparing

Danno Ferrin: check is a completely different syntax on all the parameters that come after that parameter

well i means a binary interface

Alex Vlasov: well it just depends how what you define as a totally

different the binary interface is different but those are for developers and most likely those will be just hard coded the first part will be hard-coded by developers well in a smart contract just from in terms of arithmetic it's actually not that different altogether but this is a not part of the main discussion that's why what I think is kind of optimal s to even while we still will test for kind of complete any disk any any discrepancy in completely kind of Universal and generate mode of using the existing code base as it just we

don't need to allow users to kind of poke the contract with all the available parameters which it in principle would give the universality but we can just limit those parameters to use a list which will correspond you instantiation of this well six to eight curves and the least of those is public well known and like for people who would want to use it as also the most interesting ones and it will kind of exponentially reduce the scope of the precompile for an X for ik and then if we refer a satisfied with equality of the testing and maybe we will get me at

some day at some point one more alternative from the mutation in Thomas language maybe then it can be kind of this in this case this restriction can be lifted and then users will cap in principle the same code base with the same rules for gas metering which is still quite universal but not too complex but then there will be kind of much smaller chance that there is some financial problem which what wasn't seen to implement something just for a set of specific errs especially if they're already implementation for in two separate languages which are not kind of direct

relatives from one another it's actually not this difficult

Alexey Akhunov: I wanted to suggest something that you know I want to suggest the kind of them for now the optimistic approach because the so to me it looks like this is the this is really a very attractive change and also I can see that the the the the guys are working on it are really seems to be really productive and actually doing lots of stuff in a very short time so I think we should just wait and see what happens and what they can show us instead of being a super defensive

Alex Vlasov: I would also second that in context of

looking at all the IPS there's a handful that are the farthest along as far as testing and clients and being reviewed and this is one of those

so Oh that'll you have your hand up so please go ahead one of the questions I asked on eighth magicians wasn't answered was why you know the the parameterizing the curves I get as fine as parametrized parametrizing the four distinct separate operations those should really be forward distinct but interrelated pre-compile contracts and as a developer I would have a nightmare trying to have to cram all of my parameters into this binary string and I would like to hear what what the solidity and Viper team thinks about the usability of this

interface so beyond the cryptography I think there's issues you know the choreography sounds great and everything but as usability I have concerns as developing the API just sorry to jump in here

Tim Beiko: just to be mindful of time again and based on what Alexa and James have previously said does it make sense to deal with those questions offline and come back to this if on the next call similarly the 1344

yes I asked my question 11 days ago and we can actually keep the discussion on each magicians and Abbie - okay well I just wanted penny is there

Alex Vlasov: too much time when there is sorry was the only question I would like to clarify from the core developers

it's like what is the kind of suggested time for a fuzzy testing in terms of like CPU days in a multi-core core system or like what was their previous experience for this purpose

that's hard to say I don't I don't fortunately have a good answer to give but generally weeks and months I can't really specify it sorry the question is from the perspective that if we increase the parallelism of the fast testing we can run it on multiple very

powerful machines then we can just have but years in in very short time so you would the question is like if we can define some criteria by them like in the next call or in during if magicians then we will just know what that seconds criteria are and I mean if we don't have them then we sort of will never be able to look enough but if we have them and we'll have some clear indicator so okay we passed a some mark now it could be safe called results of yeah I'm sorry I can't give in a such figure but if you

put some code is published on the steps for doing the testing and how to set up your I mean the type of fussing you're doing and how the integration is done so that anyone else can take it for a spin and see I mean do you actually hit the right things or could we modify the passing settings to make sure that they get good coverage are great but stuff like that I think it would help yeah I can't give it a hard metrics um yeah okay well

Alex Vlasov: I will write a manual about this

how would you spin your own instance great sorry the key oh go ahead yeah I think Tim had a it's their connecting

the salinity verb or the Viper team to have feedback on the UI as a good action item for the cat hers cool so yeah look into that and follow up on that online offline

Alex Beregszaszi: um just a quick question why why is there an opinion needed from the wiper or solidity team is it expected to him like language they will support for this

because of the way that's specified with the parameters for your first code is a direct switch I mean would they just require the end users to create their own binary blob and cram it in as a developer I feel that two bad experiences should be improved I mean I'm sorry good probably a library for

this this this is fairly straightforward so we can we can make a very convenient library we just could con best as parameters in the right form yeah

Alex Beregszaszi: I would believe it has to be some kind of a library and it doesn't need language support if the question is about the the overhead of crafting the message then it doesn't really matter if that single first byte is there because the rest of the encoding my tape might have an overhead anyway in EVM

concern is reading it you have to have a library through the precompiled call that makes me think that the pre-compiled is too complex at the interface level there should be 40

different calls one for each principle operation and we can parametrize and it's easier to read when we see we're doing an ad multiply exponentiation it's something I would expect in the name of the function not in the value of the first parameter of the function well it was kind of the design decision were to make while six new opcodes not well sorry note up codes but different addresses for which in principle under the hood would use the same code base we've already done that for the ECMO Albion 128 I think we should move this discussion to eat magicians because it's not going to get solved on its call yeah I would agree with that and and yeah let's have it let's let's have this be part of the discussion on

the next call based on the everything we just discussed moving on if 2028 was also mentioned so this is transaction data gas cost reduction yeah just here to present so about eight twenty twenty eight we released two reference implementations that are available on the on github and I think are already pushed on like available somewhere it's very late where I am so I'm sorry

please apologize for the beautiful confusion and today we release also the analysis justifying the new price so we found a price where for which we're comfortable with which is sixteen gas per byte and we want to come into the core dev to react on it and have if they are in the opinion and so we can make into a Istanbul when I say per bite I mean pronounce survive right we're known 0 by 0 by won't be changed for a simple reason

that there would be implication for other existing spy contract that we would we don't want change yeah so I think that you released it's very good and well-founded I have no real objections

Tim Beiko: you have no objections to include this in Istanbul is that what you're saying

yeah we'd love to hear a little planners

Tim Beiko: does anyone object with included 2028 okay do we have consensus

for 2028 that's part of Istanbul

Danno Ferrin: let's do it

there were some comments to decrease it decrease the cost even further is there any chance that the numbers could direct into that direction so we so the

Louis Guthmann: the reason why we came with 16 is 4 because we wanted to since there was a short time before he stumble we came up with very conservative numbers and there was discussion about the IP 150th 1559 benign which would you what we want to

use further reduction for identity for the new IP we don't have any objection we just want to be sure that what our take on the matter would be go is this reduction for this art work and maybe push it further on the next one

so I would from conservative perspective a I think what's better - it would be better to just lower it by 2x instead of 4x but now that I've seen the data that you made I can think I can read that yeah maybe 4x is reasonable I would not go lower than that completely

Louis Guthmann: agreed for the same reason that's exactly the same

reason we came up to

to that number and sorry I haven't looked at the data for X is are the numbers that are currently and so 28 correct yeah for exist country the numbers the reason is we managed to make so the technique we used was so we secure it so the main impact of 2028 would be security if we dismiss history which we explain why security would be a measure by uncorrect as everyone agrees and on the call and what we did this 20x is about network to network its propagation and what we did was creating spec and that were at the exact same

ratio than then secure and snapped like current packin on ethereum current block in the film but feeling with it as many zero bytes as we could and we came up with blogs that were 20 times bigger than the average block size in the film which would not even create in the uncles so of course there is variance because it's network things but for the data release can very I mean being pretty conservative show that the for X is 4 X is very reasonable basing today I would probably provided actually on may not yes this is magnets you can actually look we there is all the link there is the address we used there is a day we

used and we as we for the fact we made the biggest day in the history of the film but they did say that he used 0 bytes vs. gati no no so no so what we did I'm gonna explain like the process is to create a packet so what we did is generate so for a

Louis Guthmann: compression algorithm the worst case scenario is random bytes everyone agrees on this right random no matter and no one can can compress so what we did was creating a random string of bytes replace all the zeros in the random streak with other random bytes from from 0 to 255 and then what we did

is randomly look choose an index add a 0 and add 16 zeros at the up and 16 0 at the end of the string and show for the whole thing

so by doing so we have data that are compressed by snappy by this 50 only by 50% roughly which is more or less a ratio that some blocks on unmended are currently facing um clarifying question here the EIP so it does not specify and explicit maximum

block cyrus it does no so since blocks are blocking blocks are defined by block limit there is what we say that we should reduce the size of the code the cost of coordinator and and although and that we just reduce that we try once again we are being concerned for a very simple reason that DC's ipcc IP is very easy need by every layer to and we are looking for the most conservative numbers we we could find and from our deal as minus 4 like the deviation by 4 is pre conservative based on our experiment right

Casey Detrio: but reducing the cost

of a call data by 4x the thing is when on the main net experiment using a lot of 0 bytes it because it keeps referring in this you know this post on 8th Magicians to the uncompressed size yeah but if it goes 5 and people are using non 0 bytes and you get compressed sizes which are much larger than

we're sealing Pearman that our compression algorithm works compression algorithm look for patterns they don't really care about the exact bytes so I could share my I could actually show you I mean the snappy compression for our for our strings and they are exactly the same ratio you can

actually take them with the blocks that the data is happenin in so there is an address in the post you can look at any transaction there is the extra data film is filled with our blocks we can try to students to compress it and put it other like blocks and you see would be the same ratio okay so so once again the pricing of 0 doesn't seems to make a lot of sense and it was already discussed last will last week last time on on the on the court on the court they've call the we don't want to change it for it for exit for compatibility and for existing contract we actually use that fact to to do no analysis so this is

completely just like yeah this is completely like independence and and if you look at the data itself we managed to make like windows are which are 7.5 times bigger than the average size on in theorem so that's why we choose before because it's basically half of it and it is pretty conservative sure yeah I guess just to explain you know doing an even more aggressive cost reduction there's it's only been proposed you know in the context of also having an explicit

maximum block size which yep which would be conservative but yeah I mean obviously I mean you know strongly support the course but as Martin suggested before thing the data was for a 2 - 2 D munition data proven - for being conservative I think we should all go for it and and go further if they if if needed in the next hour for

Tim Beiko: great does anyone disagree with that okay so 2028 accepted for Istanbul

I don't want

Tim Beiko: on the list was 2024 this is

Oh Blake to be so I think this was an issue around the gas cost

so the gas cost isn't specified right now and there's also discussions on Ethan Egyptians about the ND and ordering of the bytes in it and I haven't seen much resolution on there I don't know if there's anyone on the call that's championing that particular one okay so that's that's how that conversation async that case and oh go ahead please sir was that about the gas goes to the beg to be

there is no specification on what the gas car should be in the EIP so yeah it landed on one around is that in the discussion forum or did it finally make it to eat I don't know if it's fine admitted into the heap I thought it had I'm not I'm not the author but I've been taking part for the discussions and there's the various benchmarks by them and by me and you know one around some seemed reasonable and

Danno Ferrin: did we get a resolution on the

Indian Asst not that I'm aware that's a bigger

consensus concern actually than gas there was part of a discussion on it but I don't think it's it's worth trying to make a decision on it without them being here well I think I mean I think we can make it this week and finally per se the Angelus is just yeah we know the authors are noted that yes they need to be test cases for both kinds of and earnest so that will be resolved with implementation ok um so other eeap's

Tim Beiko: that people brought up were just state rent in general so to get a feel

for are there any specific ones that will potentially be included in Istanbul

so

Alexey Akhunov: there was only one which basically was kind of implement auto-fire that I've written and my only one has been implemented so I as I said there are last time I'm not really kind of pushing very hard for them to be included given the amount of things that are already in so but we'll see how you know basically at the moment that I don't have a lot of a lot to show to

just from one implementation do we need a carve out

space for you in the next hard work explicitly reserved for state rent stuff well

Alexey Akhunov: not sure I think I want to first finish the the fourth version of the say drain proposal which is basically depend on how the data from the stateless client is going to go because this is what what drives more changes in it yes I don't think we need to just to reserve something yet but we yes so potentially it will go to the next one and we don't know when the next one is going to be

Adam

Tim Beiko: yeah that sounds like a good topic for the next call okay and so aside from state

trends

Tim Beiko: the next big one was Prague

pal Hudson being away I pinged him and Charles who's also been working on the audit and they wanted to discuss the idea of including Prague Valley in Istanbul with the condition that if somebody something negative comes out of the audit we would pull it out so they were both curious about people's thoughts on that yeah it seems like this has like this conversations has seems to be rehashed over and over so to make a final call on this

Danno Ferrin: so a few all cortez calls ago i expressed concern about a

chain halting attack that could be declared a tower I posted something on earth magicians on the discussion thread now I haven't heard back from anyone on that that's one of the things that I put into how the auditors look at and that's something I'm actually concerned about if we implement it as is without changes there's some mitigations we can do but that's why I was hopefully we get the audit back before we fully commit to it to see if we need to do any his mitigations and i'm very skeptical that's going to come back in the audit with zero mitigations

either way don't we wait till the auditor

Tim Beiko: so if we wait till the audit to implement this very likely means that it won't be ready for

Istanbul

sorry Martin I was talking on you go ahead I was asking to link to to your column okay so does anyone feel like we should go ahead and implement Prague Pal tentatively and then pull it out to the last minute if there's an issue that's revealed in the audits otherwise we can have Prague pal for the next hard Forge

obviously so assuming the audit comes back positive here's

Danno Ferrin: the last moment before we do a test at work or before we do a

main Network yeah I think it would be I mean if we go out with Papa which I do think we should I do think all so it would be prudent to have ability to disable it barely and for the context oh sorry just

Tim Beiko: quickly for context the dates that was set for the test network upgrades is August 14 so this is a bit less than a month from now

Danno Ferrin: so I do think

it Prague how should go in I am skeptical that it would be responsible to do it in Istanbul without the audit findings and if we let it work into the test net we permanently got it coded in so if we were going to put up last-minute emini test net and then I'm concerned I'm gonna put flags to fork or not fork I think we're adding unnecessary complexity plus I still would like to get feedback on my concern about the mitigation for the channel teen attack I would even support an out of cycle fork for Prague now for the record

Tim Beiko: so just because we're coming up on an hour and a half

do we have a consensus on what to do we talked now it seems that Martin you're thinking we should go ahead and implement it

axel actually I do agree I have been trying to push that earlier that we doing out of out of cycle released report ow so if other people on board with that

Tim Beiko: so meaning we wait for the audit based on that assuming is positive we then scheduled a hard fork for part front panel correct

Danno Ferrin: basically that yes and I think would make a lot of

other people happy to have a single purpose hard work as well on prong powers it so contentious

yeah

Tim Beiko: I guess that's the other question about this does it risk splitting the network is it contentious enough and is that something we have time to discuss right now

Alexey Akhunov: and also I would say that this problem of the pre committing to the test net is also very troublesome as Donna mentioned we got into this trap with santanico where once something is done in in in obstinate cannot it has to be included in

my main net basically yeah

I mean that pain will go away at some point but Bob Stern right yet to apply to obstinate let's be really confident it's certainly good on my net not a conditional country so reading reading the chat here Trent is saying

Tim Beiko: it makes sense to leave Prague pal out for this Fork based on potentially having a future for specifically for Prague pal is this something we have consensus on does anyone feel strongly we should push for Prague file for Istanbul

Danno Ferrin: I feel strongly we push it out of Istanbul but

not over you know I'm not over my dead body of other people want to push for it but my preference is out of

this sambal

Tim Beiko: does anyone disagree with that

out of Istanbul and at a hard pork just as soon as the audits ready okay so I love Istanbul and on a hard for

Tim Beiko: as soon as yeah that's ready I think we'll probably need a further discussion about whether or not this is a special single II a hard fork or not so we're at an hour and a half we've made it basically three

point one on the agenda to be mindful of people's time is there anything else especially related to Istanbul that someone wants to discuss that they feel is very important we talked about now otherwise I don't think we have time to address any of the other items on the agenda in any in in any reasonable way unless people want to stay

on longer emotion we do some out of cycle all core desk calls as well leading up to the test network

Tim Beiko: would anyone oppose having the next

chord F skal next week rather than two weeks from now if that's the case

Danno Ferrin: we would need to haggle over time we keep the same schedule so whatever the next rotation should be we do that

you just good just a question what is a the Kohl Center around like so right now it's two it's two three where I am where it's going to be next week it would be

Danno Ferrin: the original time which would be 4:00 in

the afternoon Berlin time

I think okay cool well

Alexey Akhunov: it's gonna be 2 p.m. UTC I think yeah that's it 2 p.m.

Tim Beiko: UTC so this okay so do we have consensus to have a next call next week instead of like not instead probably as long with two weeks from now and we can we can review the agenda but probably mostly pick up where we left off this one

a great read the discussion topics next week so so what

Tim Beiko: we had on the agenda today is concerns around

eeep refactorings so given that there's some dependencies between some of the Istanbul trying to sort that out conformance testing so I assume this is around retest tests and and stuff like that and then next week we would also have follow-ups on on 1344 which we we talked about at 2200 and then potentially 1962 as well as well as any other heaps that that needs to be discussed for Istanbul and then potentially we still have time talking about what something like a special fork for Prague pal would look like

Bryant Eisenbach: for one three four four I came on this on the

call to talk about it it seems like we're closing up the meeting here I don't know what was discussed today

Tim Beiko: so there was some concern about whether the chain ID should be in the transaction or in the block I think that was the biggest contention point and we agreed to take that conversation on offline to still keep this as a consideration for Istanbul given how simple of a change it is yeah but it just sort this issue out

async okay and if that issue is sorted an acceptance I

Tim Beiko: I guess yeah let's have

that conversation on the next call but it seemed to be the big issue

yeah okay thanks just a quick one the security considerations appear thing would be just like a very short one but we can also do this on the next one if you want a very short do you mean one minute there fifty minutes I would say like two minutes it's just about adding a mandatory security considerations section to the ERP requiring this to be filled out it is intentionally being very leg relaxed so that we can slow start bringing more security into the process and that's what it is meant to be and it will at some point before that by a guideline and we're currently

gathering some information about that so there will also be some one of us at an ITF meet up in Montreal I think in a few days we also get some info from the ITF people there on maybe how to get more security in such a similar process just something to mention PP and RFC or I have this section and it's we are following the same thing that they are doing yeah I think I read through this

Tim Beiko: my only comment would be we probably don't want this to be a consideration for any of their current eeap's for assemble right we don't want to sort of add this extra step and stuff that's

already moved along

but yeah that's the idea great

Tim Beiko: anyone else have comments on this okay great so we'll see you all next Friday at 14 UTC thanks everybody

[Music] [Music]

[Music] [Music] [Applause]

[Music] [Music]

[Music] [Music]

Speaker names adapted from ethereum/pm, CC BY-SA 3.0.