All Core Devs - Execution #87

All Core Devs - Execution · 15 May 2020 · 1:27:39

Ethereum core developers formally accept EIP-2315 on simple subroutines and EIP-2537 on BLS12-381 curve operations for Berlin, with EIP-2046 and EIP-2565 proposed for Berlin.

Speakers

Topics

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

Transcript

here I know what I did I'll restart

Hudson Jameson: hi everyone I didn't start the stream correctly this is aetherium core developer meeting 87

and we are going to agenda item number 1 which is the Berlin EEPs that is going to be a clickable link in the agenda that opens up a spreadsheet that pooja from the etherium cat herders created and is working with the etherium cat herders and james hancock to continue to be updated I'm gonna have James take over and he's looking to share a screen in a second or I'll share my screen if he can't figure it out to go through the different clients and the status of each EIP James you want me

to share my screen

James Hancock: yes it's giving me something I have to do permissions for something now

Jain expect in that case let me find the share screen there we go right thank you all right where

Hudson Jameson: we are here and yeah you can everyone can see everything it looks like

can we go back to the thing Oh yep the agenda the the spreadsheet Oh was it not showing up no creating for Berlin the

James Hancock: I decided to withdraw the the difficulty bomb because

I I'd rather focus on making sure that Berlin gets out in in time for the eath to stuff so that can just go into the next one and I don't know the status exactly of 2046 but I'm assuming that that will get not be ready in time and that's fine because we can do one in a few months after ruling for the IPS that are ready for it doesn't make sense to wait for to wait for anything on at least waiting for the IPS that are almost ready so the IP two three one five similar subroutines if I could get just status updates from each client and we'll just go through the ones for Berlin which is it's two three one five

and the two 5:37 and starting with

Jeff so the way I do that

Péter Szilágyi: as far as I know it's the spec isn't even completely final yet

so

Martin Holst Swende: yeah I would like to add to that that this spec is currently well up until today before I think Greg many changed today but the the spec up until today is implemented in a pure it passes the test that many says in the comments there and it is more or less done having said that

we do anticipate that respect might change

okay open etherium

Artem Vorotnikov: so basically we have merged two three one five into master branch today as it was one month ago so if the spec was changed today then the current code in open ether master does not reflect it so I guess we're going to have some investigation here

yeah

Martin Holst Swende: question did you guys check out the tests that were made as a PR to the test repo from the BC team

I'm

Artem Vorotnikov: not

sure we'll take a look

yeah please do it just give a thumb up if you okay base you erase you

Tim Beiko: were in the same boat we've merged or I think our how the P are ready to merge suspect as it is but we're kind of blocked on basically the spec getting finalized like martin said we wrote some acceptance tests I believe like that reflects this spec as it was when when we wrote the test but it would be really I guess the biggest blocker for us is just getting like a final agreement on on the

eeep yeah

Greg Colvin: yeah the intent is to settle that Monday and so I should be able to get a final spec Monday Tuesday

Martin Holst Swende: right so what if you wasn't gonna have a call but naturally if anyone was who has a particular opinion about this way or that way or whatever and yeah you're all welcome to join just ping ping us

yeah where can

James Hancock: where can people do that

Martin Holst Swende: well I don't know I guess the old quarter quarter Channel

okay

Greg Colvin: Hudson or somebody

could to sort of get it organized as random things may not converge on a consensus

James Hancock: I can do that if anybody I can work with I can talk with you Martin later about times that if anyone wants to join just have them ping me

yeah good

Greg Colvin: okay we're spread across a lot of time zones

yep it's pretty normal never mind someone here from another mind today and I understand we will

probably talk more about the state of 231 five later but at the time I just wanted to kind of get this go through initially so as a to get everybody on the same page where things are VIP to 537 the BLS curve operations starting with get finally from the on yes today in sixteen thousand lines of

code so I think that kind of sums it up dispatcher

James Hancock: yeah I talked about earlier about getting more testing and things ready but he wanted so open PR I would there's it's just a giant block of code that we still need to make sure works

you know open aetherium

Artem Vorotnikov: so there was big update on this front from us so we actually have to be honest open for this now using different implementations one

from Alex blasts off from metal apps and the other one by way which uses the Milagro library which is which other bindings developed by the by lighthouse basically so you know we have to open PRS and we would like to test both of them and but we will have them ready in any case

James Hancock: cool so I'll put that as PR here

Basu

Tim Beiko: so same thing we have a PR I think the only blocker is having the final addresses for the pre compiles and

then it'll be ready to

March

James Hancock: okay and never mind is in here the I already went through not withdrawing the two five one five for Berlin and then if someone here has an update on 2046 we could go to it but otherwise I'd like to move on

Artem Vorotnikov: actually it has been implemented in open aetherium approximately a month ago I think

James Hancock: all right so as a PR

are merged merged investor

James Hancock: and that's all that I think I will turn it back well then do you want

to talk about two three one five first grit Greg or do we want to talk about timing for things

Tim Beiko: so wait just for 2046 did we decide we're not doing that in Berlin should try and start implementing it it's been kind of unclear these past couple calls what this is what it is yeah I'm just curious to see what everyone else is thinking about this

Alex Beregszaszi: I have a comment on that I think three or four calls ago when we last discussed it in depth and Alex also explained his benchmarks and findings we left these

final comments on the the PM issue and the suggestion was that the repricing of the TBN pre-comp eyes should be part of 2046 and because those are necessary because they were under priced and the repricing for the other pre-compile should be separate the IPS because those are those are not necessary for security those are just the benefit to the users and but none of these changes were applied to any of the IPS and I remember also alex proposed that he maybe were said that he may be proposing a lower number potentially zero as a cost for

static call so I don't think any anything has changed or moved on this direction

Alex Vlasov: yeah just because it wasn't final whether it goes into Berlin or is delayed and most like it should be split into I think it should be easy to adjust price of one of BNP compiles which is the only one affected by reducing of a static call to pre-compile price unfortunately I didn't do any heed for this so maybe I don't know who is the author of 2046 maybe can just be

extended it also requires to increase the price of one of the existing free compiles to cover this cost but yeah it from technical perspective it only requires to increase the price of one be an Edition precompile with the cost of static calls without any additional security issues

James Hancock: have we done the test what my understanding was we like comprehensive benchmarks for something that was needed before all of this

is accepted is that Martin go ahead

was it you Martin you wanted to also replicate

the results on

quite eerie exactly

Martin Holst Swende: yeah and I kind of told all the client implementers that you guys may want to test your notes your clients but in particular I care about areum and

as

James Hancock: anyone particularly motivated to do all the works we need to get it in before Berlin someone want or I don't want to say it can't make it or it won't make it without someone driving it really hard I don't see that exactly happening

Alex Vlasov: well it's a moment I can only tell that

eventually I will also try to get on guess but go is not a language we can know well in particular my charge Association will be with other clients but eventually it should be a larger work which includes with pricing of other breaking files which are currently huge ever overpriced

and we want to keep in mind the EIP centric where we're not trying to you know work around we're trying to work around witchy ip's are done

James Hancock: that is a good call so thoughts on Martin go ahead I feel like you have thoughts so

for you know

Martin Holst Swende: so my gut reaction is that there is no chance yes we'll be ready with Venus curve operations for men upon state in July like in July

any part of July

Martin Holst Swende: yes

James Hancock: okay

Martin Holst Swende: I don't know Peter what do you think

Péter Szilágyi: I can't really say so the thing is we have this gigantic PR we can definitely read you the good parts I

mean those probably are ok-ish and we can fix anything that's not okay so that should be trivial enough alert as for the crypto part I personally cannot redo that convenient I cannot meaningfully either the the crypto itself the math itself or assembly itself so for my perspective the only thing we can do is cause it to death but that I don't know what timeline is realistic for something like that

Martin Holst Swende: yeah so where we are trying to pursue that angle there is a bill s12

381 crossing infrastructure by greater drankin that we hope and we can use to frost it against some of the libraries and also against this third two implementations in go so we can fast those two against each other but it's really hard to yeah I can't really say we're gonna be done by that in time for a Maynard launch in July so I'm not saying it's impossible but my gut feeling is that you shouldn't talk too much for that

Hudson Jameson: if we would if we could get the type of

cryptographic experts you would need who are also familiar with go would that be something where they could come in and do the type of reviews necessary to make us feel a little more secure about the implementation would that be something that would be acceptable

I guess

Péter Szilágyi: at the end of the day the thing is that we ourselves cannot meaningfully vouch for the code so I mean we can ask other people to help out but at the end of the

day we're still trusting somebody that the code is valid

Hudson Jameson: yeah

and also what I could

Péter Szilágyi: what I personally could do is try to check the math if there is some hard reference stuff to compare it with but that's most of it so I mean I can check that the code kind of executes some formulas but while it has formulas are correct is correct or not that's completely beyond me and I cannot do anything meaningful with them

Hudson Jameson: because my thought was as this is an EIP that is wanted by a few different teams across

the ecosystem namely the etherium 2.0 team if they were to bring in someone who's can get familiar with the implementation code base for the CIP and you know just double-check that it's integrated and to get properly that could be something that I would help arrange and find the right people for so you all wouldn't have to wait Stein slice that out

so integrating properly that's using context we can defer to do that the problem is with the crypto and the assembly

Hudson Jameson: okay well if you're open to it we can talk about it

afterwards and the in a gas channel and just see make sure that I understand all the requirements of what the person would need and then I can see who would be able to help with anyone it's worth a try I'm thinking

Alex Vlasov: I think it should also comment on assembly part even well it exists there for kind of to the limit optimizations on modern 64-bit CPUs it's not strictly requirement and you should talk to you own or what will be is a penalty and it seems the penalty will not be set large you can just and there is anyway alternative code which is in pure go and which just implements also

him stop first systems which are not 64-bit x86 so maybe you will be able to just not kind of turn on the feature to use assembly or at least allow end users to turn it on if they really really want it but I think owner should be able to help on it was a person who

eats appear

James Hancock: is it something we could move forward with making a test net date and then just say they're like things with testing and fuzz testing need to be really really ironed out before we're comfortable with the

main that date

Martin Holst Swende: yeah

I mean we could naturally I mean we could just merge the thing and have it so you can enable it in where some configuration and we could spin up a test net but I noticed historically that people cannot get upset when customers break I don't know why

but

James Hancock: so do we make do we just spin up or what it - maybe the shadow forking Robson kind of thing that you talked about previously Peters it's something we can do

Péter Szilágyi: yeah I mean the problem is that if that kind of works if you are screwing around with existing articles but but in

this case we are deploying a new freaking pals or other money with pre-compose so I mean we can four-cross them but as long as nobody is using them it doesn't matter much so you kind of have to current people using

an enemy

Martin Holst Swende: in this case it will really be the case where you want to pour crops then is where you change some of coats that is commonly used if you just want to change that's the bit of stuff there's no point of working up some can just spin up a brand new custom just want to see us and that's easier so

I'm okay breaking Robson that's breaking rope oh because

you can spin up a new one

Martin Holst Swende: and I'm sure they're all so we could get the two teams to help with some of the I guess manual testing but just setting up you know deposit contracts and the proxy for it and and having that on the new test net it seems like you you don't need to have like that high of a volume of transaction we just need to make sure this application for which this eep is built works right I don't think this would really give it I mean yet from it is the amount of effort that people on

the internet or research are willing to spend on playing with it which probably is not that much actually but a good thing that it would bring is that it would force all the clients to put out to put out versions where this features activatable which means that can also be tossed through the bouncing through state test so I guess that that's a primer up site as I see it

is it something we do something researcher actually

James Hancock: so if we did a New Testament and had BLS on it and then maybe didn't like a bug bounty for breaking it would that perhaps

though yeah that might be fun idea

Hudson Jameson: yeah I think

we should go ahead with a test net that just does the BLS curve can we is that something the gift team wants to take on coordinating or is that something that you'd like I don't know who's like the most expert

it's running like setting up test that's etc for everything supposed to be in Berlin I mean just picking out this single VIP it would make things a lot more horrible because then clients all of a sudden need to support a weird test not to talk big VIPs

Tim Beiko: oh I agree I think we should have 23:15 as well

Alex Beregszaszi: so

who will try to break the BLS code

if two team and Alex well I'm positive link with kind of

Alex Vlasov: small repo which anyone can clone I just start passing with two comments and what I need to do there is actually I was basing the codes here I mean I use a father which can run raft simultaneously so I made findings to go code and I based on findings on the old repo which is not the one which is integrated into the guess right now so I need to make this adjustment somehow and then you can literally test current PR into gas against code which is used by

Basu and we and from the PR which I sent to open serial and it's most likely much more efficient and trying to sponsor network where it will be limited to how many maybe well equal seven or how many million gasps per 15 seconds and each cultures between well which cost at least half a meter for interesting birds so I don't think it it is like it is a proper way to try to break the BLS pretty well on a test map it's much easier to break it just by writing a fuzzy tester it would be good if there would be some external machine available so you just start it there and leave it

running but we well I will just spin up a server it's on the laptop I found one problem which is actually already fixed and only happens because my bindings are on our dated version so so far I haven't find any other problem

Alex Beregszaszi: someone also mentioned that the 82.0 team will try to break it i referring to the deposit proxy

Hudson Jameson: deposit proxy and I feel like they had one other piece but I could be wrong I'm not as in tune with it

so

Alex Beregszaszi: I think the the deposit proxy hasn't been

touched for a while and I mean there's only an experiment by annex tokes I believe but nobody is actually allocated to you to make this piece of code

Hudson Jameson: the last time I heard about it I thought Alex was in the process of writing it like a month ago but I that could be completely wrong

well I say no it is in the form which is kind of usable and only miss it mrs. Constance to kind of what addresses are available for soup recompiles otherwise it's kind of final truck I think

Hudson Jameson: yeah so what the decisions I think we're starting to come to here

are if we do a test net it should be a test that that covers all EIP s going into Berlin and if we were to do a test net we would need to pull in resources beyond fuzz it would be ideal to pull in resources beyond fuzz testing so that they can play so that people can play around with it either from a let's break it perspective or from a usability perspective I suppose is that is that it all and accurate anybody so I think the good next step would be to set a date for a new test net that would have all the VIPs for Berlin and them and then

between now and then me and James and others can get together the right people to help on the cryptograph like the verification of the cryptographic aspects of the implementation and also talk to the two team and maybe other teams about what they would use this for I know that there's more than just the eighth to team that needs this curve

in the CIP so

Alex Beregszaszi: so the I guess just a bit of feedback on the e two side the deposit contract which doesn't do any BLS verification has been audited and that is what's using all the test nets and that is I believe what they plan to

launch with and the debt auditing process took quite a time and now if you introduce this proxy which does the verification on top I mean you would want to verify this well audited as well otherwise I mean why should anybody trust it more than the audited underlying contract

from well

Alex Vlasov: the part of the proxy contract is it actually prevents user from making a mistake we say yes of you should never made it the first place but so it's additional protection it cannot make things worse

Alex Beregszaszi: well if there's a bug in the proxy then you can do this order all the money you're sending to it well if you would lose it anyway you if it wasn't there I

mean if there is a bug can be in a proxy contract which allows you to pass invalid public well no one can neglect but if if it's a pure function which is not payable maybe you cannot but I mean it cannot make things worse because there was a mistake and it wasn't caught well it's a it's not good outcome but if you can just refine you can just verify that your public key is well formed

Alex Vlasov: so it's not a proxy

yeah they call it well yeah not

proxy how you write it okay yeah the

Alex Beregszaszi: proxy is written as a proxy it's not a pure function it's a payable function

okay

Hudson Jameson: I was under the impression it was just a verification function but yeah if it's called okay yeah

which

James Hancock: I think they did that because so as far as errors so on the on slice yeah I don't know how to say the test name but the if to test net their proto Lamba found something like 150 or more keys that were submitted that were malformed which shouldn't be possible but happened

Hudson Jameson: yeah and then on topaz it was like over 400 or something and or no I forgot the number but topaz

had a lot of them too so they have incentive to get this quickly audited and quickly well not that audits should be quick but you all know what I mean basically give us an order

I mean

Alex Beregszaszi: I've been submitting patches to the proxy and I'm not sure if it's I don't think it has been touched for at least a month I I mean I do like the idea quite a bit and I'm definitely interested in personally and participating in them but I just don't really see that there's any priority for writing and auditing this contract and launching it and we are trying to push there to be a less frequent parts

because the e2 team depends on it I think it would be really good to see the priorities right because I don't think there's any chance that they had to launch would go over the proxy

when like

Tim Beiko: how long would the timeline be together not on the proxy because it seems like it to the deposit like the beacon chain probably won't be launching this summer anyways so is like a couple months sufficient because I guess if we deploy this BLS curve to main that say I don't know it's called in August or whatever then if they write a if they write a

proxy contract over the next month or two get it audited is it realistic that by the end of the summer early September you would have that that contract audited and if that's a realistic timeline I think it's probably still aligned with the e to launch

yeah

Alex Beregszaszi: I think it's obviously a chicken and an egg problem I mean why would anybody audio deposit proxy if it depends on an unfixed underlying we compile so maybe maybe this idea of like a test net for BLS might be a good idea for for that reason but yeah I mean I don't forget

the answer and I don't think I mean nobody on this calls has any idea of te2 timelines so I'm not sure we can answer this question

James Hancock: my previous talks with its two teams was that the if the pieces that changed from the audit would be pretty easy to go back over if necessary so that like there wouldn't be a lot of necessary effort to go back in I was talking with Alex Stokes and some others and if it's a chicken and egg problem then let's just make the chicken or the egg I'd say and do the test net and then have them react accordingly instead of this like a stalemate of who's going to do what first that'd be my

recommendation

so

Alex Beregszaszi: I also wanted to like before we got into this rabbit hole of the proxy I wanted to ask maybe I missed it previously if there's any other use case I mean it's definitely a lot of risk it is for the new curve but are there any other imminent projects trying to utilize the curve

Alex Vlasov: well eventually I would really really want to emigrate to it from beyond survival jus I for as soon as it's available well not as soon as is available as soon as we kind of conduct it has to set up for it but otherwise it's it's a really

good upgrade which allows you to do get much more stuff with the snarks in a sense that you can meet my allergy circuit especially with new probe systems which give you a slashing overhead factor for so kind of every snark eventually should be migrated about there

Hudson Jameson: oh so every snark that's currently deployed would be upgradeable and therefore benefit

well most

Alex Vlasov: like it's not the right way how to say it I mean well it obviously depends on the snarky security Braham desert but if you're if the purpose of snark itself is some form of a deviation and compression

in principle pls twelves 381 allows you to fit more into a single snack versus probes so effectively you pay a constant price for a verification but you pay this constant price for much larger amount of items of been compressed

I think that yeah ok

Hudson Jameson: I think I get that so Alex I don't know if we have an exact like the team names who would use it beside what Alex mentioned other Alex blast-off mentioned but the way I see this whole thing is I think if we produce the test net we can take the gamble on the eath 2 team utilizing it

just because it's it's becoming more apparent that it's very valuable for them because of people messing up this I forgot how to say it but basically mess messing up the signing was that the signing key or what's the thing that's generated that gets messed up

Alex Vlasov: well it's kind of you have to deposit too public-key witches in another form on East 2.0 and right now you just declare it and you don't perform any explicit verification on chain if this form is correct

Hudson Jameson: got it okay

so kind of

Alex Vlasov: if you declare it as point not on the curve or

something else you will just deposit but to the something which looks like a public key bush done have a private key

Hudson Jameson: okay I think this is a good opportunity to one build a test that number to get more cooperation between the eath to and ethan teams to use whatever experts they have in cryptography to validate some of the stuff that we have on our end what can we go forward deciding on making a test net that involves all of the berlin e IP s and then from there using that to or having the eath to team use that as well as other people just trying out the test net i guess i don't

see a downside but i was wanting to know if I'm if I'm missing anything

Martin Holst Swende: so for most this one kind of downsides I see I'm okay with that side cuz the downside is if people think Oh the test has been up now for a month so and there's been no problem so let's just do main it and I don't want to give that impression I mean we can spin up an already test at any time no problem but it's not the signal about meyneth readiness I just want to

that's a narrative problem so all we need to do is not quite as a test small as alpha test now Oh Peter you cut out

hello Oh Peter dropped will get his common when he comes back Oh Pierre you back so I wanted to say that get all the times too much and just mushy knowledgeable you know that and I guess the first just ask Els hit it as hard as they can and then if if nothing made me really excited it just would be

nice to whole family some pre-testing done and something people don't depend on otherwise I can use partners to create Genesis thing to deploy to meet stats as some faucets and stuff like that so we can use Papa to deploy so infrastructure fairly quickly and that's a starting point where people can just screw with it

Hudson Jameson: okay I think that'd be great if you could I get that together and I can work with James on communicating with the eath to team and even maybe getting a bounty out I'd have to work on that from a different angle but I can I can take

that on

so yeah go ahead Tim I was gonna say I

Tim Beiko: I think this all makes sense it still doesn't solve that like both these peeps have things that are missing I think for clients to merge them so Greg you mentioned I guess early next week we should expect some resolution on 2315 and then for 25:37 there was still the question of like just figuring out when addresses the pre-compiled czar at and i know that or i don't know actually there's a lot of people on the call but like if a champion for 2537 is on the call it would be great to just get that

finalized so we can actually merge this and you clients and and then deploy it on a

test net I'm sorry to you I may have missed I was waiting for an opportunity did you move on from there to BLSA it's just one last comment on it to a question rather

Hudson Jameson: we're still talking about that pretty much we just asked if the if the champion could work on getting the precompile addresses together but if you had another comment that's fine

Alex Beregszaszi: it's just the at one of the Dupree compiles relies on the idea draft and and and I think there came a new version of the draft came out last week or so or this week and I don't know if it changes anything for the EIP but this was an outstanding question that one of

the pecan pies depends on an interest I 80 F specification

Alex Vlasov: well I cannot say this one immediately is the latest version is version number seven and it was merged I think a little more than a week ago but it was already based on version seven at some point it just simplified the part which actually wasn't even in pre-compile so okay we didn't affect us it was a kind of draft itself specifies well it kind of affected the precompile but anyway is in in a very small manner

we just depends how we define and sign of the field element and it actually simplifies the code so it was already implemented on top of the trust which was known to come up more than a month ago so it doesn't affect any current code it was already modified to support the latest draft and Easter point also was intending to move to this one

so in this end so second version

Alex Beregszaszi: that is the other question it's unclear when this I ETA F specification is going to be specified finalized and it is also unclear if it too is going to lock in in a version

Hudson Jameson: they said the other week

they're locking in seven I think seven or eight I forgot which one

certain hour

Alex Beregszaszi: is the pre-compile going to be locked to version 7 just to support e 2.0 or you know it's like an open question

Alex Vlasov: well so far I don't know on any plan to make a new draft which would affect the part which it which is implemented in the pre-compile actually only to pre-compile else out of set of 9 which are part of this e will only be affected by any changes in the future and everything else that is not affected by changes in draft I cannot guarantee that there will be no changes but if

right now we accept that since version 7 those to bring compile state version 7 and if maybe in the future later on it will require an extension or change the answer should be two hours upper compiles or maybe at this point I will already move past it

yeah I really hope we can avoid another like a check two five six versus chattery situation yeah

Alex Vlasov: was more about the change in the standard was in kind of as a way which felt like their own great insecurity so this is why it wasn't widely accepted by kind of community I would say

Hudson Jameson: so file coin aetherium Foundation and I believe Stark we're are all coordinating on

which I ETF draft of the curve that they're going to be implementing I again I think that's seven I'll check on that but if your concern is everyone being on the same page exit then I think that we will get information from the eath two team once we start talking to them about if this is messed up or not because they'll be looking at it

Alex Vlasov: at least so far I don't know if any draft of the next round so far we cannot progress any

person

Hudson Jameson: yeah they have to take a pick one at some point

Alex Vlasov: yeah and regarding the pre-compile addresses I don't know who should assign

them I mean I can raise the numbers which is just next nine pre-compile starting from say like the largest available right now but I don't know whose responsibility is to actually make some solid I can put them in the drop it's not a problem

Péter Szilágyi: I mean I don't think it matters so whatever makes sense

and from there okay yep okay so we're gonna start the

Hudson Jameson: so decisions being made I'm talking to the eath to team with James and a few other people we're coordinating them looking over the different code bases particularly the guest code base for

cryptographic for the cryptography behind it we are starting the Alpha the first aetherium alpha tests net that will not necessarily be a predecessor to a main net but rather be its own independent test net and that's gonna be called alpha test net Yolo and according to the comments and chat at least if anyone has any disagreement

then we call it an ephemeral testament ah okay yeah without

Hudson Jameson: that's just gonna make people think it's an a theory of test it yeah because that just sounds so similar

I

like that Berlin Yolo

Hudson Jameson: ephemeral Testament Berlin Yolo okay so we're doing that let's move on unless anyone had any final final things

on what are those clients are is every client supporting the click thing or should I make it a proof-of-work

Hudson Jameson: so if you don't support click speak up

or if you want proof work

Hudson Jameson: we don't know about another mine that's the only thing

SOCAN I didn't know Oh Doorly

Hudson Jameson: is click isn't it everyone supports click then yes except I mean aetherium j/s may not but I don't think they've had a representative on the call for a while okay sounds good alright let's move on

[Music] that's that's a good idea okay we're

skipping EFI so we can go to some of the VIPs that people want to bring up for the first time I think

Hudson Jameson: that's a good idea

at least what do you think James we've kind of gone over some of these before

James Hancock: yep perfect okay

Oberlin timing so we're almost off of Berlin but now we've crossed out the main that date the proposed tests that date I think we could have our alpha test net Yola or the alpha test at yellow sooner right oh yeah we don't really need to schedule that cuz it's it's not out a block number and it's just gonna happen when it happens yeah that sounds fine well yeah so so I

guess the BLS we need to pick up our numbers but that should be done and the only thing we need to figure out is what happens with multiple subroutine jumping so that everybody can

Martin Holst Swende: let's assume that we'll figure something out early next week and yeah have it implemented in the end of next week something like that

yes

Hudson Jameson: so it'd be 2315 simple subroutines and 2537 BLS 12:30 eighty one curve those would be the two additionally IPS that would be involved in this ephemeral

tests net yeah and if we make any changes we just restart the

testament okay and then

Hudson Jameson: so timing then James do I go over that or is that's something we shouldn't even bring up today now that we've had a lot of this new information

oh and James room unit if you're talking I am I just said I think I muted

Hudson Jameson: I don't think we need to go more into the testing it would be nice to get it get to get up the test net by the first week of June so then people can that the social coordination can start happening around that time it would be nice

great ok next up I just put this agenda item number four back in from the last

meeting I don't know if anyone's here to speak on it it's 2565 repricing of the EIP and 198 modoch the XP pre-compile great so hopefully everyone can can see my screen this should be a fairly quick update just looking for some directional guidance here on on which direction to take what the CIP so just as a quick refresher IP 2565 is to reprice the mod x pre-compile I came in about a month ago you know after doing quite a bit of benchmarking on go aetherium we found out that go aetherium was about 10x overpriced and so we recommended changing a simple parameter from 20 to

200 to more accurately price that precompile at that time Martin had asked I believe you know he had recalled that during the original pricing that that parody was quite a bit slower so we went off and in benchmarked parody and sure enough it was about two to five times slower therefore making the sort of 10x gas reduction not not able to be done with parody because it make the the gas price too slow or too low so what we went off and did last week was go and look at alternative libraries for parody or open aetherium to use we found some rust bindings to

in you know first we looked at just simple version bumps of the parody pre-compile because it was you know quite a bit out of date at the at the suggestion of alex wyse off unfortunately these didn't get us you know near the performance of death we are still seeing about you know two to four x slower than jeff so we went and looked at russ GMP we were able to benchmark this and if parody or open a theorem use is this they'll actually be faster than death so this was some feedback based off I think from Peter two weeks ago he said hey it seemed kind of weird that that rest is slower then go and sure enough if they use this pre-compile or this library there will actually be faster so there are two paths forward

with the CIP the the first option is to continue with the simple parameter change for both you know guest as well as open etherium where we change this parameter from 20 to 200 and open aetherium goes in and implements this GMP library instead of what they have today and that will keep everything you know above 20 or 25 million gasps per second which is sort of a standard that we're seeing for pre compiles so this is option one i did i did send some information into the open aetherium discord their only reservation that they said that they had was that Russ GMP may not compile on Windows on Visual Studio

this was some feedback from Artem you know I went to look at ether nodes right now there are twenty parity nodes running on Windows that are synced to the main map so I'm not sure how big of a concern this is so you know our recommendation would be that that open aetherium you know adopts this library and we go with the simple parameter change if that's not possible we can go with a more complicated pricing formula change for both guess and open aetherium and then just make a minor version bump to the open assyrian library we won't get quite as much savings and it is maybe a little bit more complicated of a pricing change that makes the pricing

formula more to the complexity but this is another option to move forward and so I really just wanted to have a have a discussion you know I'd like to move this VIP towards in well you know eligible for inclusion and you know we just need some direction on which of these two options to to go with here

Artem Vorotnikov: so I'm just going to spin up the Windows machine windows VPS next week and have get some testing for the gene you to chain in case the visual studio to changes know if GMP it does not compile under the visual studio tool chain so see how it works so potentially

we are open to using the gene you tool chain but we need to do some testing

a fantastic that's that's great feedback so you know should that be successful it sounds like the path for and with this is to swap out that library and then make the simple parameter change in the pricing formula in both guess and open etherium where we change this g quad parameter from 20 to 200

Artem Vorotnikov: i suggest that we make a final decision during the next call because i cannot commit to us to anything without testing first

okay so just to be clear you know is the case that if we are able to compile this Russ

GMP library with the new tool chain on Windows that that this is the appropriate path forward for open

if your iam

Artem Vorotnikov: well if it works well then why not

do ease

Péter Szilágyi: might be a bit late so perhaps we could try to investigate it next week and just decide on awkward' of course that if if the library works out then that's heavy thing to do as to the number of up to 200 and run with it

Martin Holst Swende: I mean alternatively we could lower the number on the test net and then a theorem says now it's through the work for us then we just good

but we're not going to deploy it on

my nut

Péter Szilágyi: yeah but that kind of also means that so if we create a configuration where some a IP is enabled so essentially in that when you say that okay next hard for this Berlin then the hard you just specify one block number and it implicitly collects the IPS that you enable so if we want to throw out one e IP from Berlin that means we need to modify the code to the previous hole guess we'll not from under test not anymore because the Berlin heart for mission and I don't want to add

ready inversions in yes for me these

are from Old Testaments yeah I'm sorry

James Hancock: are you suggesting adding this to the list of the Berlin ones

yeah

Martin Holst Swende: well I don't really care about that you know how we do it but whatever I felt was a good idea was maybe two actually if we're gonna spin up a testament in the next whatever week we could just lower this threshold because that means we like we can do it it's more easy to do actual benchmark for external people

like me if if I know that the open ethereum client is configured with the lower gas price and only in the end if we decide that they don't yeah it doesn't work done we just drop it from burning and we're and don't have it on maintenance and what I meant is that if we keep redefining Berlin then it's going to be messy but that's only problem if the custards going to be persistent that's

the ramen yeah I mean it's it seems reasonable to me if we can change this from 20 to 200 for these alpha test

net you know then then we'll have change that and then it's forget there are no changes at that point and then for open aetherium I would be looking at if they can switch the library out before

me that

Péter Szilágyi: can we make this decision on Monday or on Tuesday I expect that we will have some results by then

sure

Hudson Jameson: that sounds reasonable

okay fantastic we can edit oh we guess right well

James Hancock: we can add that to the things

so getting the addresses Greg finishing on Monday maybe by if by Tuesday we could have all of these pieces wrapped up we can set that as a goal

Hudson Jameson: I think that's good everyone kind of knows what they're supposed to do for the most part and there's kind of a for lack of a better word champion for each thing because Greg's figuring out his thing Kelly we'll check back in Monday or Tuesday on the results of Artem's benchmarks and what was the last thing the the address for the BLS oh yeah

and then that one is Alex

class off yep cool

James Hancock: so I'll reach out to you guys and by Tuesday next week let's write that up

ok great thanks James yeah so it sounds like the plan is we'll we'll make this change from 20 to 200 on the CIP and I'll work directly with Artem on the tool change stuff in and we'll get an answer to you on Monday James thanks for the feedback

Hudson Jameson: all right thanks Kelly

alright the next item on the agenda is EAP 24 81

Christoph Burgdorf: adding request IDs to the eath protocol request and response objects I believe that is awesome hey cristoph go ahead yeah

EEP 24 81 is about change and the if networking moving it from 65 to 66 and yeah it's about these through all the request response paths that we have we've we've talked about that outside of this meeting at last Def Con with client team and it's basically what the Elias protocol also already has so the the objective is that we can save some we can make the networking slightly more

efficient if we don't have to loop through all the incoming responses and try to match them to the requests based on their contents which sometimes means for things like get note data that you have to catch a Kover the body content to match it to the requested ashes and instead with the request IDs you can early on you can just say oh ok this is this is not the response that I'm looking for us so I don't look into this so yeah that's that's basically what it is about and the the EEP keeps keeps it quite

simple um so for instance it doesn't it doesn't dictate that response IDs need to be sequential so client teams free to implement this like you can say across different require request types I might share the same request IDs because the request responses are already separated by the type anyway or we we also don't believe doesn't define alright it keeps it flexible that responsibilities can also include I can also be duplicates so these can be duplicates which means you

can't totally ignore other thing and put a constant like put it to see a zero which basically means okay I just do what we do right now like we treat it as if there are no ladies so this is just to basically keep it simple from the implementation side but for the clients that care about yeah making making this a little bit more efficient they can implement it properly and yeah we talked about this at last I've corn was some of the gap team and I think Peter also signaled

that they support us with GAF and yeah that's that's basically it from

for my sense of form if

Artem Vorotnikov: I've taken a look at the the proposal seems quite easy to implement in open aetherium the only thing is that we haven't merged 65 yet but after we do it 65 which should be I think in May or June this one should be fairly quick to implement

Murch

Hudson Jameson: do we have other opinions or comments

Péter Szilágyi: yeah I just wanted to say that

the day the proposal would make quite a few things a lot simpler because so for example get when I heard there's a - Pierce connect on the East portico gas does a few challenges just to make sure that the other side's on the correct chain to make sure that the other side is synchronized if we are not yet synchronize in these kinds of challenges and and apart from that we also retrieve some data concurrently and generally it's it's a bit ugly to do match up because essentially there are times when we just shoot off three requests to do a node and then the three requests

eventually the replies can't come in and it's platform for once it's really annoying to mix and match to replace the requests the other one is that often the replies are empty in which case you really just have to guess what what the reply might be for so all of these scenarios would would be relatively solved by the request by IDs the only only problem that may I'm not sure it may be that one mostly effects us and open aetherium is that we cannot really drop support for the old protocols so for a certain protocol is just additional complexity because as long as somebody's running the old well we

cannot just Duke it but still it's I think the protocol that proposal itself is a step in a very good direction

so that's troubling

Artem Vorotnikov: but we will be able to drop 63 64 and 65 eventually so which will be simpler in the end

why do

Péter Szilágyi: eventually but for now there are still

years running 63 well actually the very weak end of life 63 and just set a date for it something

Péter Szilágyi: well I guess the next hard Fork is implicitly the end of life or it

because you need to update your client to be on the next hard fork so whatever is the lowest common denominator will be the last supported version and we can drop everything below it

if

Piper Merriam: we can look at eating that just to be nice and clear and give everybody lots of leeway to know that we're going to stop sporting in not to sidetrack things back to the discussion

Péter Szilágyi: I don't think we need that flesh bureaucracy round it

Hudson Jameson: okay if anyone wants to make an EP out of that feel free but yeah I don't have an opinion on the matter

anybody else have comments on 24 81 in real quick Piper and Trinity team I apologize I don't always bring up Trinity what I'm talking about main that clients what's the status of syncing to eath one name that and do you all want me to have you all be more included and some of the stuff when I bring another mind Basu open aetherium and

guess

Christoph Burgdorf: so the status that we have so we have dropped fasting a while ago because it was just not but so since we since we

started implementing Dean Singh this is actually looking quite good for us so we've been able to follow the Maynard chain and we are we are still in the process of implementing the parts of beams think that deal with like egg filling back filling the state back filling lots and so to sum it up we we plan to go in indeed are within I would say let's say maybe two three month I don't want to make a commitment here but it's just like my general feeling um so yeah we certainly also yeah I'd like to be included I

actually noticed that we were missing on spreadsheet earlier so yeah we haven't started to implement any problem oops but we we definitely will agree we try hard to soon be a client that we will actually promote as for people to try out as a maintenance client

Hudson Jameson: okay great that absolutely answers my question and we will definitely include you on the sheet and if I just forget and future meetings just point it out like hey we're over here and I'll bring it up thanks so much

they're already noted Oh perfect okay thanks

next up we have EVM 384 an alternative route to pre-compile for supporting BLS 12 381 on the EVM that's axe ik yeah

Alex Beregszaszi: yeah I will try to be quick so you know despite I mean I may may have come off that I don't really want BLS Rob support earlier on the call but I just really want BLS to have support to be done well and I felt like that maybe some questions that still really really outstanding leprechaun pies so regarding BLS 12 in the USM team we also have been working on benchmarking BLS 12 in in wasum itself because obviously the

reason of it to using it as well as recursive snarks is I mean at least some projects want to use it for it cause it's nice and today and we have so first of all I shared a document on the Gator channel which has some of these these details at the very end of it there's a chart with some numbers and these are numbers on benchmarking have a list of implementation appearing on wazzle and the so the same code well actually so we have a native implementation in

rust and we are using awesome Starks pls twelve implementation for the wasn't part and the native code is running around like five milliseconds the wasn't stark implementation in wasn't on a was an interpreter is running around five hundred milliseconds and this wasn't code doesn't use any house functions or anything it is just purely wasn't and then we started to use big number or big integer host functions for the wasn't code which would be similar how a VM has 256 bit operations but in this case in was in we added 384-bit in integer operations as host functions which means those are not implemented

inside was and rather the engine provides it and it's it's implemented natively and with those optimizations we were able to get down to close to fifteen milliseconds and we think there is still more opportunity to optimize that code and make it faster so that means we're like roughly three times slower than native in wuzzle and and then we also we were thinking where we can replicate these findings on the EVM and that's what EVM create for is so the we had a couple of different options to do this and basically we are introducing three new op codes I mean none of this

is final or ready for any IP or anything like that these are still just experimentations we have implemented what I have listed here is option one which means that we have three op codes and modular edition and modular subtraction on 24-bit numbers and Montgomery multiplication on creative 4 bit numbers and these three of codes in EVM operate on memory only and we have implemented a synthetic benchmark written in you so it complies to you to EVM the reason for the synthetic benchmark is that obviously so we have spent probably two weeks on this project so far and we cannot really implement a

completely list valve pairing on idiom in two weeks so we decided to only take a small building block used by the parent operation and the synthetic benchmark tries to approximate the complexity of the pairing operation using this small building block and we have built this synthetic benchmark and using was of snark and we have implemented the the counterpart in EVM so in EVM the actual implementation is in EVM one and the bytecode is is written using you and what we have found so our approximation isn't like fully closely approximating the parent

operation yet but is it is written like twenty percent to the parent operation and what we have found is that we get pretty good results on the EVM I don't have the final numbers yet and we need to optimize quite a bit on the EVM part but the initial results show that it seems to be possible to you to get somewhat closer there wasn't performance with the house functions so what this would mean in the end is it may be potentially possible to support biast well fit more primitive additions to the EVM and not true recompile this may have

been quite a bit of information and the document is more comprehensive but if anybody has any questions now

Alex Vlasov: well what would be the final number compared to not not even compared to boss maybe in abstract milliseconds preparing begins where difficult to compile multipliers and vaasam snark is not the fastest one and definitely not as fast as one which goes each of recompile it was already quite expensive

used

Alex Beregszaszi: so which number are you looking for

Alex Vlasov: I mean you said that a guava mark or something which is actually not

the fastest library in the West it's five millisecond per parade in this case you should also specify what is the number of pairs actually so it's a challenge I think well I think the fastest library is to two point pairings enzymes like two milliseconds but still and you get the performance which is three times slower since this with IBM or the same performance like expected performance not the full period but expected performance

Alex Beregszaszi: are you asking whether we expect performance too much to native

Alex Vlasov: no no I mean well let's say that Fossum snark made it does a pairing

of two point three years with five milliseconds of writing time what would be like expected performance was if we if you would add this if um functions this part that didn't get in clear would it be like the same one as wasn't snark or would it be like factor three or five higher

this part that just didn't get from the last parts of the explanation yeah because

Alex Beregszaszi: I don't have the final numbers to share on that because we run a benchmarking on a different machine so it's not comparable but we definitely aim to get very close to it wasn't and I expect that we can yeah I hope we can get to

you know maybe fifty percent

slower if the end of it wasn't version well this is kind of already

Alex Vlasov: if you say 50 percent slower it would be already five times slower than 290 code and it's already gets quite expensive it it would be ten millisecond roughly of execution time on EVM which is I think 300 I think three million or something like this if I do the math correctly

I know in terms of

Alex Beregszaszi: yeah so in terms of gas we don't have I mean the D current

bill SP compiled if you don't have any any gas proposed gas values well at least last I checked which was a month ago maybe it does now what but we hope to not exceed maybe twice the cost of what's there in terms of gas but yeah obviously we don't have the final numbers on on any of these things

yeah I mean I was gonna time boxes real quick if you have final thoughts which you compare against

Alex Vlasov: is already not the fastest one and there's already much slower than the one which was proposed which is a native code which is integrated right now and for which there are numbers

for

Alex Beregszaszi: the native code we are

using your code and are you saying that wasn't stark isn't the fastest I believe it is the fastest on most of the was an interpreter cases we have ever used it with

Alex Vlasov: oh yeah yeah I mean so just even the native code itself it's already quite expensive or kind of not like everyday use but it's already quite expensive taking into account modern snarks which are much trickier to check and making its factor of five at the end of the day is kind of prohibitively expensive

Martin Holst Swende: so I have a question for x''k it's a quick one

I'm wondering about the complexity so to recap is like you have three up codes and to replace number of pre compiles and I'm wondering these three Oh codes how how difficult are those of course on how large how many lines of code is it to implement those small leg of its journey rough numbers on

them

Alex Beregszaszi: yeah we have a bunch of different implementations of those up codes in terms of C and I believe it's like roughly a hundred hundred fifty lines of code for the

tree of codes

Hudson Jameson: okay we're out of time here so I did want to

go real quick and before we go quickly say what decisions have been made today and any action items so that the note taker can note that on the meeting notes and we can reference that in the video at the end if people look back on this so first of all we are making what we're calling an ephemeral test net named yellow ephemeral Berlin test net named yellow which is going to include the following e ip's e IP 2315 an EIP 2537 for sure we are potentially going to include a IP was it 2046 pending results from an open a Syrian benchmarking that

will finish by Tuesday most likely the simple subroutines for the EVM has some outstanding specification issues that will be solved also by Tuesday as the expected date Greg and Martin are getting involved on that and you can contact James Hancock if you want to get involved in that discussion and the BLS 12 381 yeah curve with e IP 2537 is going to have the pre compiles listed by Alex Vlasov who's the champion of that e IP by early next week in order to make that specification also final what am I missing

so

Tim Beiko: the other AIP for the test net the one I think Martin said we should just do is not 2046 but it's 2565 right it's the mod X pre-compile ah thank you so it's not 2046 it's 20 was a 25 to 565 yep yep yep okay thank you so yeah no taker please take note on that the decisions made last time is that Berlin will be dependent on the BLS CIP subroutines may or may not make it we now know that subroutines will be making it and then actions needed decision required on looking at the contract code for simple subroutines that's eighty six

point one if you're looking at the notes from meeting eighty six eighty six point two is James to reach out to Alexey for Merkel ization and simple subroutines that happened that happened okay eighty six point three pal compromise proposal to be decided on and then in parentheses it says tests net than pocket that was Greg's request to have about a month of discussion within the community about Prague pal going into a hard fork and or and or it being put on a test net and then pocketed wouldn't we need it as a compromise so that discussion is ongoing that's nothing's been decided today on that that's just me going over the action item that was decided on last time update a IP bought

with withdrawn and movie IP 2583 to withdraw nor the other two action items is there any disagreement on the decisions made or action items I've listed two five one five the difficulty BOM was withdrawn from Berlin yes two five one five has been withdrawn from Berlin that is a current decision made that should be noted the EIP statuses on last week's notes are now in the repository everyone can check those out if you want I didn't want to go through all of them but some of them are efi some of them are accepted etc that's just yeah one quick note about that I know James I think you're the author for

the you know ginger the author for the EIP efi list and Alex you're the author for the meta AIP and I think there's a bunch of pending PRS against both like from Kuja I know I have either a PR modification on poojas PR but it would be good if we could merge both the EFI and the Berlin meta a IPs so that they're up to date because that's kind of where the community goes to look at this stuff okay who was needing to look that over just an editor or was there a particular person so no I think it needs to be the author so I think for that's me me for the BFI and Alex for the Berlin yeah let's do something different

exit okay got it okay any other comments final stuff that one still needs to be watched as a draft and you do we can merge it as a draft regardless of any decisions made it can be in draft status as long as it is well-formed so I think there's some outstanding comments or did they oh actually there will prove okay I'll merge it right now and we want to have

any afire talk about that next time let's talk about that next time there's not a reason to have EFI on that today okay next calls May 29th at 1400 UTC thanks everyone so much for coming and we will see you then Cheers thank you thanks for that

summary that was sure [Music] [Music]

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

[Music]

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