All Core Devs - Execution #43
All Core Devs - Execution · 27 Jul 2018 · 1:34:41
Ethereum core developers weigh four competing EIPs to delay the difficulty bomb or reduce the block reward, covering EIP-858, EIP-1227, EIP-1234 and EIP-1240, and discuss the geth implementation of EIP-1087, lowering the cost of precompiles, the Shasper v2.1 spec and a Fellowship of Ethereum Magicians update.
Speakers
- Péter Szilágyi
- Hudson Jameson
- Martin Holst Swende
- Lane Rettig
- Nick Johnson
- Piper Merriam
- Danny Ryan
- Paweł Bylica
- Afri Schoedon
Topics
From All Core Devs - Execution, hosted by Ethereum Foundation.
Transcript
[Music] [Music]
[Music] [Music] [Music]
[Music] [Music] [Music] you [Music]
all right I think we're ready to begin can someone give me a test hello up that didn't work why didn't it work okay it's working now yay all right we can start good morning afternoon evening everyone first thing on the list is testing as always so let's go over that with Dmitry Dmitry what are your updates for testing so fortunately I have looked in them test repository find out that your each actually added some tests for beat face shift already so I ask everybody to
check as it's working on your clients and I personally think that it's not enough to just write test for this new up course manually because last year when Casey did this fast testing he discovered a lot of new bugs just by running fast operational fast program of the arguments that is this functions EVM of course receive you're able to find more bugs and you could possibly write manually so as I just do that I use a new of course this time of Awesome create two of code is about to be merged to CBP's here and I will be ready to
start compiling some tests on it and external code hash is seems to be pretty easy to implement yeah what what else do we need what what kind of we're considering 1087 for net gas metering for s store we're gonna talk about that in a second is it kind of changing the gas price for a story I mean no it's a little bit different if I understand correctly Nick am i right there yeah should I go into details now you can just if you have like a summary for
Demetri sure so the basic idea is that wingman you do not write to a single story gentlemen we are over trenching for gas as which are just right little gas so there's proposed is to change this maintenance as if you might save my time same spot you and me and the attached one so yeah it's a little bit different than just raising the gas price Dimitri and we'll talk a little bit more about how gets implemented that in a moment yeah this this change will at least required to regenerate all of the tests cause current tests using storm writes to stores actual value for more than
just testing the store up code every of course that i test i use store operator to put something into the state and see whether the hope could worked correctly or not i think its effects all of the tests probably don't have the view only right once but most likely have to regenerate suggest me also implement block chain test without proof of work so what would that mean for everybody just disabling proof of work and difficulty function tests if the specific flag is set no need to waste
time on generating the difficulty for those tests okay that makes sense to me so let's see is that all the testing updates dmitry so i can add on regarding post testing air will be starting to restart processing again yeah we needed some updates both to the lib foster based testing and to the test f / eb m la base random generator passing to make sure that we get the new op codes and everything and yeah so and that part
requires the I mean it's differential testing so it requires that implemented a taste into clients and preferably gas and parity and dif with testing between those yeah so it's better work usually to configure it correctly so that they're enabled and you have the right Genesis but I'm hoping that working it could start with the processing quite soon after clients merged their pr's their features okay wonderful I also have a small test updates update just wanted to say that
Guido started too far as theorem G which is just great so that's it awesome that sounds good okay we'll run through client updates and then before we get to research updates what we'll do is we'll talk a little bit about the 1087 and whether or not it's gonna go into Constantinople before we go into other things because peter has to leave a little early so for client updates let's start with parody I think that's Fredrik or a free yeah that's me I guess almost yeah some release parity serum 2.0 last week just finally
concludes what we have been preparing for a while to have a pure blockchain client for IBM and wasn't be unbiased hence we stripped out or installed us or wallet user interface and strong and that's basically where we are now was our 2.0 release and yeah we slightly rebranded the client it's called Elysium now just to distinguish it from other very Oh congrats on the new client release thank you so it as far as constantinople IPS is there an update on any implementations of that and sorry we implemented let me quickly
check we implemented one four five bitwise shifting and just as of today we also have a pull request for 1052 Xcode hash of code that's the priority status great Thank You fret do you want to add something no not really okay all right thanks parody guess that'd be Peter you know so as for the gaff so the big ships have been merged on master for a few months now mark ended those so I back and last week and this week we also had implemented
the Xcode her.she IP and skinny create these have all been merged to master and we've also implemented next that storage metering PR which has not yet been merged master and ik reviewed it I think it's a simple enough PR but I'm kind of holding out with merging it until it's actually decided whether we're going to ship it or not because I don't want to go back and try to extract it out its if we decide against but essentially these for a IPS are mostly done of course testing pending and that's for the 220 the block Hoshi IP it would be nice to figure out whether we go with two sorry
not to 28 to 10 so it's really nice to figure out whether we go to be the original block Hoshi IP metallic at a certain point suggested a simplified version it would be nice to just arrive at a decision whether we are doing this because again it's insane in theory it's a bit it's relatively simple AIT in practice it introduces a new type of account it's super user stuff it it marks around a bit with gas gas allowances because the the contract calls get special gas allowances so anyway it's not on it's not particularly hard but again it will be nice to have a confirm that we're going with it before
blowing up everything so yeah that's about the gas status on the car setting up of work as to I think that was also mentioned previously whether we want to do ice age and either issuance stuff for that I don't particularly we don't have anything to add but whatever is decided we're going to roll with it okay sounds good we can try to make some more decisions today hopefully nick and peter as far as implementing the esthe or the net s store AIP there was comments last time about the need to maintain a
journal for the dirty map and what happens if stuff gets reverted and increasing complexity there is that's something that we have more information on now or anything like this that's like something we should know about or would make it easier or harder for people so I'll go first thing so essentially as the quick recap dn't net storage as storage so the crux of the EIP is that instead of if instead of charging a lot of gas for every operation we kind of charge a really small amount for every operation and only charge a big amount if we actually end up modifying the state because otherwise if we just keep
overwriting to stay to the same thing then there's no really point no not much point to overwrite it implementation wise this kind of entails two things one of them is that we need to track the original value so whenever a new slot is his rent we kind of need to put that in some map and keep it around unto the transaction finishes executing and the other one is that we actually need to be able to track whether slot is dirty or not dirty because the gas price has changed a bit whether for example if I if I override a slot with the exact same value then it shouldn't get dirty so that's why we kind of need to have dirty tracking now implantation wise in gas it
turned out that it's relatively straightforward because we already had the dirty tracking done for optimization reasons so that we don't update the try only if if if the value actually changes so implantation wise we only needed to add three pieces one to track the original values when you first access it so that's straightforward we need a second rule so that if we're constantinople then we don't charge based on whether we zero or not zero rather there's more complex logic but it's actually four it's or a switch so that was relatively straightforward and the only addition that we needed to add is that when we finished processing the
transaction then when actually retrieving the refund amount we also iterate over all the dirty accounts world all the accounts that we touched and iterate over all their dirty state items and just see whether but do we need how much we need to charge or how much we can we can't recover gas wise due to essentially overwriting with the same thing so what it is most probably a bit it not too understandable but all in all implementing it in gas was pretty straightforward that would be my conclusion but we did the dirty tracking
already I'm not sure how other clients did a question you think there are weird edge cases around stuff like you run a contract do semesters then use suicide I [Music] think that's a case where you will potentially be able to charged a guest the exam you know to the degree that you're currently charged for guess personally I'm okay with leaving a few rich cases like that because the bulk juice was cost to realize events for the bulk of operation similarly if you do Smee stores and the new charges usually is I'm not that concerned about if
there's quirky behavior in how the gas is calculated and more worried about quirky behaviors which can cause implementation difficulties and things that we failed before see in our testing and makes like go down the road and leave Geneva consensus issues can you elaborate on why self-destruct button might interact poorly with Astoria maybe if you do post transaction you do you delete the the entire account from the stores try but you also have some dirty mappings which also get
deleted or they don't get deleted and trans-canada much different thing um just thinking a lot about weird edge cases and potential how complex of this I mean the way Peter implemented it have to change me basically the all the new state is scoped to a call just like existing dirty tracking or existing state tracking so all of the effects of have and should also be scoped to the cool little thing so I don't think they're gonna be edge cases around destroying stuff at least I don't see any obvious
association between a self-destruct and how you charge for the guest was okay for the button you can continue now just to just go ahead add to that - Martin's question I think the two things that but I wouldn't call them edge cases but we definitely need to test them is that yes one when you suicide the contract then it's a valid question whether the storage slots for those do they return refund gas or don't they refine gas and all in all I would say no but I guess either behavior is valid as long as it is backed out and the other interesting
thing that again means the test is what happens with reverts so for example if I if I modify a storage slot make it dirty and then revert then does that revert the dirtiness to or not and a more optimal solution would be that it does not revert the dirty but with make we kind of agree that okay let's revert the dirtiness to simply because then it is much more much better scoped so that we don't have these weird effects that revert old nonetheless has a side effect so that's I in my opinion it's not it's kind of logical but again I'm speaking based on on our code so it was easy to implement
him to our code base I cannot speak for other kind so maybe I would suggest that maybe if another client wants to take a stab at it then they should then maybe you can be evaluated after second implantation yeah parity or aetherium J do you do you have comments on the potential for implementing the CIP and no comments it just try to the man actually I don't see any real problems that I am looked at it and add enough detail yet to have any useful comments okay no problem what would it be too much of
an ask for parity and harmony to implement this to get a better idea by the next meeting just how problematic or not problematic this could be yeah make sense well try to do that yep same here okay thanks so much guys so we can't officially put it on the you know mat roadmap to Constantinople but I really think it'd be a good idea to put it in I think it would help just based on the little knowledge I know about it and how excited Nick got so I think we should see about putting it in it's one of the only other ones that were real close to adding if things aren't too complicated for it you know one suggestion that I
could make for for parity and harmony is that so I pasted the link to our poor request and I think the code is really clear as to how how it can be injected and our obviously the cocodes I'm not I don't know how how how familiarities or how easy it is for you guys to read it but maybe it will be a bit of a help to just look at it and see if it's it's horribly complicated to port this to your code bases or not you know it's always useful to be able to look at something like your reference yeah agree where'd you paste that link because I
don't see it in core devs chat it's in the under the PM on the issue ah got it maybe it's maybe it doesn't make sense to create some kind of a list of implementations of Constantinople to list their reference implementations like like this one I can do that in the PM repository where I put the issues for the meetings I think I tried to do that for a hard fork once and it kind of worked so I'll use a similar template to kind of track implementations and meta EIP Zahn who's done with which features yeah I think that musical all right I'll
put that on my to-do list okay so I guess the conclusion is anyone against trying to implement 1087 net gas metering for s store operations and seeing about putting that basically pending any complications putting that into Constantinople okay cool close enough to rough consensus for me we should put it in and test it on parity and harmony or not test to implement it on parity and harmony to see how it looks and if there's any things we're missing Dimitri blasting what do you do you have an opinion on
this as far as from a testing perspective or do you need to look into it more yeah located more and as I understand when you're talking about a revered death right that's one of the things that was mentioned yes yes there was almost three kissed one and yeah I might need to help use those metering I I mean really I don't think it will need that and then explicit test because the rest of their thousands of tested or it exists will cover every potential case that's my
dear so I think just in generating their already existing test will be fine um I entered a list of just to taste places to the Eid with it was help you've probably have advanced treatments which isn't already covered by existing tests that sounds helpful cool any other comments on this guy's mmm one comment that I would add regarding dirty tracking so one thing that so up until now dirty tracking in in the collision code waste was more like an optimization so that we kind of tracked whether other stores thought was modified and if it
was modified at any other end of the transaction we updated the storage try but we didn't care at all about three births I mean we as in we didn't care about on marking and feel dirty if it was ever returned and even if it was over which can be the same thing we just did a stores try update and it wasn't Noah and who cares and that's one thing that we actually had to pay attention to that now we actually correctly track the dirtiness and revert the dirtiness so that if any client does have optimizations already for dirty tracking them this is maybe the only case where you actually need to pay attention that the roberto's have done correctly but if you if anyone who has a journaling in
place it should be fairly straightforward to just conjure a flag okay that makes sense sounds good there let's see and then I guess what we'll do is what we kind of jumped around here but since a few people have to go I think I've just been told the block cast refactoring EIP to ten where did we land on that last time is that something where we said there were too many let me actually just look at the notes real quick so batalik made the same proposal and last time so that leaves us with the old proposal a new proposal and on the
old proposal there are a few concerns about they slit the actual EVM code to put there and special new features that like these balances I see okay and in both cases there have been some discussions about how to actually use that thing because the block hash is a little bit dynamic and overwritten in time so it I suspect it may be kind of difficult to make a smart contract rely on earlier block hashes since at the given point you can't really tell what block hashes would be there and which
ones will be stored which won't sleep over it yes so just to expand on that I would say that it would be before going ahead with the IP 2:10 it would be nice to have a reason for going ahead with it because in the IP we have Vitalik did enumerate a couple of ideas of where that might be useful but given the nature of how we store and what we store I'm wondering whether it's truly useful to do it in my opinion it would be nice to kind of iterate a bit on on exactly what the purpose of the CIP would be
because I'm a bit I'm not fully certain that it's worth the complexity maybe I'm missing something that's a completely valid possibility but it would be nice to just have a clear picture of what the purpose is and what what it aims to solve how do we have other comments about 210 the dollar just joined so he might have Oh wonderful okay hello hello we were just talking about 210 and wanting to get a better idea about the reasoning behind it that's block cache refactoring and you
recently did another AIP that was like a simpler version of that your band was really bad you might want to turn off video try it talk again your audio still a little weird let me see if it fixed it oh yeah it's still really like staticky and cracki sounds good anyways while he's moving we got 1:45 we got 10 52 or we got bitwise shifting EXT code hash we got skinny create 2 and then we tentatively
have net gas metering for s stores 1087 right now 210 block hash refactoring we're still trying to decide the purpose of it kind of reap rekindling that if we're not going to have EDM contract for protocol level instead we're gonna move to word wazza-wazoo X being both in a protocol level then if we want to get the benefits of it it probably makes sense to just extend it in a way that's like written in native code and much simpler
which is what 12-18 does and 12-8 tells your new or one right yes yes it's called a simpler old enough to block cast extension 210 Martin did you have a question or comment yes I was just curious about the italics take on the fact that we override block numbers another contract at a given point I'd really be searching which numbers will still be available okay so in the real in a real practical use case it might be difficult to use this information so so the overwriting is kind of necessary because otherwise
this whole thing would have event storage overhead if we want to like basically the idea is that if you want a use case that has like some larger range of durability then you would basically use a block hash that is that has like or is he was a block number that has a larger number of zeros and it's binary representation and that we have a larger span of time within which you can submit the block hash right that means you know I have to wait yes although that's ok so if you want to like certainty that
you'll be able to use the same block cache for a year then you'll have to wait a year if you have one application then one thing that you could do is you could just have a feature that what's that calls the contract once and then just like basically stores that particular block hashes up really hello hello can we get here I'll just waiting if Martin I had a response [Music] examples I can definitely add examples
[Music] yeah if you could add some of those to the EIP it helped your discussion okay I'll do that wonderful and if you can mute when you're not oh great yeah well if you give me when you're not talking with Alec that'd be great I just saw you did okay so we'll talk about EIP to ten more next meeting right now there's or not to ten we'll talk about the new number twelve eighteen or whatever and we will follow up on that let's see but right now it looks like it's not going in until we have more information and stuff like that I think that's actually all the constants and
Oakland A's we've talked about a lot of them are implemented I'll make that Mehta chart that I talked about that shows which clients have implemented which E is and doing that I was gonna add all the like death parity harmony I was wanting to add Pantheon but his Pantheon still closed source hey Hudson mad from Pegasus year it seems like it's probably gonna be closed or something till our expected release date at DEFCON 4 got it okay no problem so let's go ahead and go to back to client updates and then we'll do research updates after that so harmony last two weeks we worked
mostly on shorten research and there is no major changes in theorem G or harmony and we plan to start to work in Constantinople next two weeks so yep and about Charlene researcher gets better to say it you know research sexually great Trinity so we published our seconds kind of major named release this week and while we're still waiting for the client to finish we think we have a client that fully syncs with the main net right now
so another day or so state syncing and then you think we'll be there so lots of improvements on performance and syncing reliability yeah thanks for coming along quickly and really nicely we have not started on any constant Constantinople leaps but we have issues open for all of them and we'll probably start biting into them very soon okay thank you CPP etherium mario is about to release the new version so in terms of Constantinople hard folk we have bitwise shifting implemented and and create -
and external code is in progress so I have a tiny comment about Xcode hash but I'm it's more about VIP itself so I'm through this good time to talk about that you can talk about it right now that'd be fine so one detail there is in the current spec you can do in the empty accounts are distinguished from not existing accounts because the empty account would have a non zero hash of
empty string as a result and non existing account will just output no harsh for this up good I'm just try to collect information if developers aware of this and if that's a good idea well that's kind of works the same way either Oh Paul can you meet when you're not talking well no one's let me look at Oh Peter did you say you were looking it
up or did you put yourself on mute accidentally oh no I keep discussing it out trying to look up a reasoning here oh okay no problem and that was for which one again txt code hash right yeah who authored that was that Nichkhun Powell it was Nick I I made some improvements to this back okay this is kind of new information available to contract because it was not directly exposed the the only thing the contract could could see before is different call cost in case the account existed or not
and that this allows actually it's like more direct access to this information if the contract would like to check whenever the account is empty or doesn't exist at all I mean it's yeah mostly can check if the account exist however I'm not sure like that the definition of existing account is is very precise within the or ethereal specification any comments on that anteater we can come back to this in a little bit if
you're still looking no III didn't I miss miss remember something I was just checking how we implemented it because I know that we we had a back and forth on exactly the differences because empty accounts down existing accounts empty pre-cum files etc but I yeah we just keep doing things in the index if the account doesn't exist we just return zero and if you do that dispute and the empty Co - and for pre-compile we return the empty Co - they do exist okay I need a comments on this yeah Peter when you say with pre compiles
we're trying to empty Co - that's only if thing exists writes which is not a given I mean it happens to be so on may not right now but oh yeah exactly so this is actually a very good very good corner case marking that you brought up that our implementation currently just does yes if if the account exists but there's no code in it then return the empty code hash that for pre compares to however if the pre-compiled does not exist because it doesn't have balance then we'd return zero so this in my opinion this is a good behavior because otherwise all of a sudden this opcode will need to be aware
of whether something is a pre compare or not so I think this approach is better but indeed it's it's an interesting corner case okay let's move on to the other clearance actually one quick question sure we had that that we although a special case in the yellow paper regarding the ripe and the 160 precompiled in the end did we delete it or didn't we delete it I know that that was the time when both parity and gas
implemented different things wrong and then in the end we went with parities so to say bug because it was easier to reproduce the bug than to fix everything but I don't remember I know that it was some something after the the cleanups the Shaka and cleanup set it so I think in the end we were following an inconsistent rule in this case yes I know but the question is did we actually delete that right I'm the contractor didn't we delete it because if we didn't delete it then then we don't really care about this specific corner case for me not if we did delete it down be made
explicit that's word I think we did delete it and after it we just recreated with sending some balance there manually but this case is for precompiled are listed in the list of test cases in the spec so this is actually as someone implementing a client and coming online to Maine that I actually had some questions about so you know you can find out about this transaction at block two point six seven million in the yellow paper but in terms of you know the actual behavior being locked into an E or somewhere else we'll get a specification it doesn't seem like it's
ever really been finalized and so I was wondering if for Constantinople maybe we could get some closure on that I also think if you look at the client implementations there could be cases where they could also handle other edge cases differently so it could probably be something good to get that closure on so me and yuuichi spent quite a lot of time trying to find some common ground on how CBP get and parity handle this special case that happened on 2.6 million somewhere and there's an open ticket for that and it's really really a mess so I can send some links to where
that is and we could take the discussion offline because it's quite a long discussion actually that would be great thank you cool yeah I remember there was actually and you probably still have this Martin there's a long document that either yo Ichi or you and you know Ichi created I was just a gist but it had like the whole story and like what ended up happening and why the yellow paper is written as it is so that that'd be helpful I think yeah fine wonderful next we have okay so we went through harmony trend or Trinity is there Nimbus mana X theorem or any other
clients I'm missing Pantheon a Pantheon you're here okay because we talked earlier what's the update from you guys yeah don't forget about us though Pentiums at the point where we can connect to main that in the stable way so discovery layer seems to be working pretty well same with our LP X and we're at the point where we're able to perform full syncs it's not optimized at this point but we're well into block or well past bought like two point four eight million so right in that transaction attack chain segment so we're letting it run were singing far we can get beyond that and we storm a few pre compiles to do for Byzantium and we have not started thinking about Constantinople yet okay
thanks for the update any other clients I'm missing okay there's a brand-new client that I haven't been able to reach out to but I'm gonna post the link to it it's called nether mind it's a full death aetherium client so unlike nathie areum which is a dotnet integration library this is actually a full client so I'm gonna invite them to the meetings if I can get a hold of them does anyone know the person who does this okay yeah I haven't seen him around either yeah their github activities seems to have dropped off for the past month so I'm not sure where they're right here okay
so just a second let me do something real quick okay I think I'm still here my zoom client freaked out for a second II was um do we have an update from axe ik Sarah's just trying to you to find the Mike we don't have any substantial update the testing and hmm especially testing of the pre-compile implementations is ongoing and we're closing of a couple of or at least
discussing a couple of design issues in in depth and that would be most of the update wonderful okay I think if there's no other clients were on to research now so that would be Vitalik and Danny whoever wants to do an update I can give the details Angelica buildings and the Casper starting version 2.1 there's kind of a working spec that is getting close to complete this that combines cross-links and anta stations for a
cleaner design introduces a new fork choice rule recursive proximity justification which is still pending a little bit more peer review Vitalik posts a proposed ethic with caspere on each research recently and the intention is to introduce this design but it's still pending some more peer review at this point we're doing a sharding implementers call the first one on Thursday so week from yesterday we talked about that on the sharding getter if anyone's interested VDS are being supposed to be using in the sharding iron G adjustment some of the security grammars and upon how much
an attacker can how much advantage an attacker can gain I like producing it in hardware to do this suggestions getting some real-world and so on with a hardware manufacturer own on some of that so that's that's mostly what's going on Vitalik if you have any other notes uh yeah I think so like the two key things that I'm working on from my side one are that debacle is Casper and which basically is an improvement on Casper that allows any ebook to be justified and finalized and so takes the time to finality down to I'm basically equaling the optimum so
what we're as below it was like twenty five percent above optimal and it also like basically simplifies the algorithm because we don't have to separately worry about like what happens inside an epoch versus what happens across a box and then the second thing is recursive products have needed justification which is the fancy name for the fortress rule which once again now when we needs to have basically one component instead of two let's see so I be I did a quick implementation of a quick version of recursive proximity
to justification which you can which is kind of in the category of ghost algorithms and it seems to work very well though it does and them it per manages to like justifying finalized things even with extremely high and network latency and so I think the next step at this point is to try to take both that and epochal is Casper and formally prove some properties about it and mail down more details of the protocol and at that point like the main reason the main reason behind this work is basically to it's a separate line of research from Justin's vdf work where we're then the purpose of this is to make the algorithm highly resistant against even the vdf feeling horribly so
basically the algorithm is robust against the long sequences of bad proposers and it's in mathematics so far it seems like it does the job but you know like once again we do need more thing okay to kind of spend more cycles like working out the details and ideally getting mr and getting some kind of formal formal proof of it out for various different properties okay cool thanks for the update there was also a theory of Jess which I skipped because holger's not here but he did put a comment that said they just did their first release series version two point
four point X where they have partial Constantinople support and some other cool things they're gonna write up issues for Constantinople IP soon and they have a reddit follow-up call for participation because they don't have enough people to implement it all themselves so if you all know any good JavaScript developers who are interested in building on a client implementation of aetherium send them a holger's way or send them my way and I'll direct them to the right place same thing with testers we could use some more testers alright next was supposed to be the difficulty bomb diffusal or the reduce block reward but I actually want to skip to potentially
lowering the cost of pre compiles cuz that'll be a quick one and I don't want to leave that out so Martin do you want to take that sorry yeah yeah sure so there's been some suggestions about lowering the costs for the new modern precompiled I've done some benchmarking all that you can see the results and as it is right now there is some yes we could lower the costs oh let's see easy add an easy mo oh not drastically we can really can't really lower the
cost of modok's and we can definitely not lower the cost of pairing as it stands right now I guess would make it but parity would have some serious problems with that on the upside parata's looked into the feasibility of improving that I know do you guys want to talk about it yeah so Henry's been working on it for about a week and we have a PR in now that doubles the performance so it's a 2x speed-up but not really close to the 10x that we'd need and the problem here is sort of Gathol eyes on this cloud filler library that has super specialized assembly for 64-bit architecture zombie
and 128 and 256 and it's not really something that we can like we've dug in to try to see if we can use that somehow or into a tit or like what our options are but it's it's very very involved there this implementation actually we noticed this when going through it so that it's it's for non-commercial use only and yeah so it's we couldn't really copy/paste that either so basically where we're at a point where we can get to X rellis like that we have a PR in four that we can maybe improve it in some
ways further but to get that 10x we'd need it needs like a low-level expertise that we really don't have right now and are you talking about the pairing right now or yeah all of them yeah the pairing specifically we have a PRN to improve mod X and some other stuff as well but the pairing specifically says they're hard bits so basically if someone could port the cloud for a library to rust then we'd be good to go but it's it's harder than it sounds so according to the charts we could basically have but to have the halving
of the cost for ADD and multiplication roughly and not really do anything with monix well maybe habit if heretic are able to improve it I don't think we can do anything with pairing at all even if they double the performance so that's where it is right now and this is Piper with Trinity I'm kind of coming into this without a lot of homework being done but I know that our implementations of those are extremely slow their implementations that are done in pure Python and as far as I remember when I
was implementing those pre compiles there were no other options that I could find but they all so and I don't really know what other language ecosystems are looking like as well but I'd be wary of dropping those gas costs for the current implementations and thus making DDoS vectors for any new clients that are coming online that don't have access to a fast version of that so I I'm not per se the proponent of lowering gas costs I just made a feasibility study but if anyone here is
is champion of that yeah please go ahead and talk about it yeah I don't know if it has a champion right now and that's for an EIP lowering gas cost right Martin yes or comparing I thought the talaq wrote something or was that for a different set of yeah no idea right um I did write an EIP for reducing gas costs hmm you know where that is not sure about the number it's like in
there somewhere but it's very like small and simple okay I think someone posted a numbers today on the on the PM comment section oh okay yeah let me look yeah Barry White had posted so it's 1187 1108 1187 where does that posted I'll just go to it yeah gas cost reduction for EC a TC mole
and EC Perry is 1187 so I'll copy that in and then what was the other number Martin 11:08 1108 okay oh that was actually 1108 was merged that was Nick's Nick as there was this actually implemented oh it was merged it was merged as draft wasn't it which is this 1108 I just posted in the core dev
chat it's to reduce all be in 128 gas cost great you're still in favor of the CIP going for I have no yeah who was originally oh oh this was okay sorry I read that wrong I thought you wrote it I haven't had coffee or anything today okay that was a different person so it looks like they're kind of our champions for this Martin it's just it might not be as loud so yeah any other comments on this
I think reducing gas cost is something everyone can kind of agree on right or is there a not a reason to do it yeah well the it really can't be done a siddhis we can't reduce herring at all we can't reduce easy-mode by a factor of four is a bit much okay sounds good any other comments on this you go closer to the reducing the gym is pretty violent I mean the
standard cost to execute a cool operation 700 sorry I think you're right for cheap freaking pilot still interested affectionately this horizon 704 instance the agency pecan pie was previously used as a mean coffee yeah so that would affect basically the ad and the mouth but the pairing I mean it's
nine hundred thousand at least so it wouldn't really matter for that that one but the pairing stuff if somehow we do get the 10x improvement what's the what's the possibility there yes sir to get it so gif would be able to what what today cost 900,000 gasps I guess gift would could cut that down by a factor of four safely to about twenty fifty two hundred twenty thousand you
know be in the same area if they went down by a factor of town yeah I mean then like it's theoretically possible for us to do that so it's it's just a matter of getting the right person to be able to do it but then that the question is really just like do we want to depend on on having these hyper optimized assembly implementations with parings available for our call clients yeah and it doesn't sound like it's feasible for constantinople to mess with airing i mean maybe but I wouldn't commit to it right now
from what I'm hearing about how much gas I mean from what I know about how much these costs to run in Python like this is potentially already close to a DDoS vector for us so dropping gas costs is gonna be a it's going to impact us a lot us being Trinity in the Python community similar known as well it's it's something we don't know how it's gonna perform yet either yeah so I would propose that we don't change the cost this time around so I think it's it's but this issue will happen again when we
going to it like depend on different cryptography and I think it was discussed and some conference recently about pls signatures and so on that this one are there and I think we have one example when we used all of the clients use the same implementation and it's sick P 2 v 2 v 6 K 1 when we just use the code from Bitcoin and maybe that would be some some approach we should try to get so coordinate effort to have maybe single good performing implementation that would be available
to let's say new clients and new new teams that want to focus on different aspect of of the soft when Dan optimizing the same problem all over again yeah from a security perspective there were the one issues now you have language bindings which have been attack vectors in some cases before so you know you have a very secure library but then interfaces may not be as secure yeah but we are using that already so so having different implementation of the same cryptograph it's I don't think it's it's
it's better because you can make mistake differently but I'm not security expert so mmm yeah I'm I'm open for comments in this case but happened that we we used the single library into every every software for 14 clients it is service for a batalik or whoever is champion yes would it make I mean if we do having of easier than easy model but nothing else but enable and I think much would that be worth it or is just mmm it could be I mean like a having four ec mold it would
definitely make ring signature stuff considerably more viable and I guess for easy add the benefit is that it would make like pls aggregate signature is more viable McHale did you have a comment yeah I have a small comment that as for Java we can try to create a gene I for for this cultural library but it's definitely will take a while so ya need
to look at this library I mean so the problem with this library or not problem but like what makes it hard for us is it's it as a fairly tight integration with go and goes big in its library and so it like breaking out the assembly parts is not as easy as just like taking those and copy pasting them somewhere else what it's possible to compile this library just binary right I guess so yep we can just use binaries like rev them I'm in interest in terms of Java gene I agree so I don't think it's easy this in this case because go has its own runtime
you really have to include with with this library I think yeah I'm not I'm not really sure how that would work either I think you run into that and then there's like the issue of the the thing that I mentioned that this library is not actually allowed to be used for commercial usage so and that's something that we apparently want to still keep so we couldn't use the library directly okay that was just a thought about that yeah still fun for Java the better solution would be to have something that is
doesn't have garbage collector and inside so any any C C++ Ruston's it would be much convenient to include that in a name and other languages I guess yeah maybe no I never try to work with go binaries from Java yeah we've been using bouncy castle in the Pantheon code base which is Java based yeah we actually we use spawns you cast one which is a company of bouncy castle with some changes for Android as for pairing and multiplication and addition
for those curves just use our own implementation which was ported from lip snark library so it's not super efficient I guess okay do we have other comments on this I think I was just gonna generally say that you know we want to encourage a variety of clients to operate on the network and we start providing gas costs that bias specific implementations you know we might be raising the barrier for some of those implementations yeah it's good to have
something more even across the board I guess for different implementations any other comments so so Martin did you get what you needed to out of this discussion is this something we should bring up next meeting what are your thoughts no I just wanted to give some some feedback to whoever and wants to pursue this and wants this to happen so that they can change the you can make something a new proposal thing I don't really have any skin in this game okay so it sounds like the only real person is champion us right
now that we're aware of as vitalik and I don't even know Vitalik how much do you even want the sin I mean I don't like you're extremely okay for now we'll leave it out then thanks for running those benchmarks though Martin that helps a lot welcome okay so the next item on the list which actually goes back up to four is the there's four AIPS to either delay or completely remove the difficulty balm and or reduce the block reward so there's eight fifty eight twelve twenty seven one two three four and twelve forty that's on the agenda if you all want to
kind of look at the reasoning behind some of these but I think what I'm gonna do is just get general opinions on this because we're not gonna be able to decide this part today likely first of all can anyone give a concise reason to or does anyone does anyone like want to remove the difficulty bomb entirely I've never heard anybody speak up about that and the person who's proposing that is Micah's ol2 who's doing it for what I would consider philosophical reasons behind what minor incentive is so does anyone want to remove the difficulty bomb completely cool and we have yeah go ahead Dmitry yeah I actually I don't
think that the difficulty bomb was a good idea in the first place why is that initially it was implemented to speech interpretive stake right and we are not there yet and we just keep moving the difficulty bond and its additional tests about difficulty being calculated in a yield way it's it's not good so I want a question that I hope someone can answer what is the purpose of the difficulty bomb today versus when it was actually first implemented because my impression
is that it forces miners to participate in and hard fork updates is that not what it is today um I'll speak up from my own personal point of view which is that the difficulty bomb makes in action not an option that if nothing else we have to do something every some amount of period so that we don't so that inaction isn't the default default course of action agreed and the corollary of that is that it removes the Sauron lessons that sort
of default effect of being the most attractive option okay anybody else have comments about what the difficulty bomb means for us today and to add to that that is the night that I think that that is a very good feature for us to have to acquire some sort of Network action every you know sample just a related question as you said Hudson in Dimitri I think in the first I was first
introduced it was sort of specifically around the group of state but what Piper's alluding to here what I think we're kind of alluding to is that it's more just it's not for any particular move or switch it's just around participating in hard forms and removing the default option so it's just a general thing is that kind of what we're saying right now that's what it sounds like yes correct my intent is that it isn't really necessarily applicable to minors or anybody in specific it's just that in general we the Royal we everybody must do something to keep the network up and running every you know some amount of time and I guess the follow-on I have been is if it were specific about
transitioning approve mystique and we might agree that it would be removed after that transition is complete but are we suggesting we want to keep this forever without having done a lot of deep thought on it yes that is my personal opinion I feel so you know I feel like after a proof of stake so i sharding it probably would make sense to have it exists on like much longer timescales because i expects the like the rate at which the blockchain will change would not need to be as large as it was before so I'm not sure if I am gonna have a strong opinion about what or not it's something that should be
kept forever or not okay so it sounds like we have we pretty much have consensus that we don't want to remove it entirely as far as delaying it I think everyone a we we kind of agreed last time we need to delay it we need to delay the difficulty BOM otherwise block times are going to get really high starting in 2019 is that correct yes okay so now we get to the point where there's some AIPS that do a combination of delaying the bomb and changing the difficulty reward I was gonna wait for the end to kind of suggest this but I think we should separate the two I don't
think I think traditionally we've had it in the same EIP but I think decoupling them would help us create priorities where we have one thing that's a economic and technical change and the other ones appear technical change that doesn't have to do with as controversial other thing so as far as reducing the reward there's people who say that it should be actually reduced or increased some people say it should be reduced to 1/8 some people says it should be changed to 2 wiith and others should be said it should be changed to 5s I can go back with between atthenes is it 3 is it
3 right now there's the reward yes that's 3 okay what is the what are the reasons to change the reward at all because we've done theory I guess the main one is just like the chain is over paying for security interesting ok so let me let me just open up a couple of these and see if I can get some key words or key phrases as to why oh I need to head off in a couple of minutes by the way ok no problem I think we can also make the general statement that if we do
delay the Obama do not change the block reward than overall inflation over time increases and so there's sort of this I guess maybe philosophical maybe economic question about which is the intended issuance schedule is it kind of the issue and schedule it exists with the bomber without it so can you repeat that again Lane I don't think I followed that sure I'll repeat it and then it Vitali or someone else wants to expand on it please do up you cut off line can you hear us
hello Lane oh okay he's been muted and unmuted I think what he was implying is on a chain that has the difficulty upon issuance actually goes towards towards zero and so changing the disc aging they block reward to two or two smaller while at the same time delaying the difficulty bomb actually increases issuance or like stabilizes this ruin which is different than what would happen if you did nothing I don't know if I necessarily agree with that but I think that was his intention hey later you back sorry yeah
I can hear you now go ahead I got a phone call I'll input some reason my audio cut out sorry about that um I'll repeat what I said if someone else wants to clarify please do I was just saying that if we were to make the decision hypothetically to postpone the difficulty bomb but not to change the black rewards then if you kind of look at overall if their issuance overall time going forward it goes up as a result because the block times come down does that make sense I see yes and but that would be because we have that's purely because we have the difficulty bomb otherwise it would we would not need to do that right right but so then this leads to this very interesting sort of economics lesson what question which is like what is the quote unquote intended issuance schedule
you know that the market is factoring in so to speak is it the issuance schedule with or without the difficulty bound and this goes back to the question I asked before which is like do we intend to keep it forever or not so it's all kind of tangled up but I would be very curious to hear what vitalik and others have to say about that yeah it is it who has strong opinions or any opinion sure yeah Vitalik had to cut out so he's gone [Music] argument to afford the reduction I don't know if that completely I don't know if that's the original intent of the difficulty mountains but the original
just in terms of the difficulty Vaughn was to mood for the steak which would ultimately and greatly reduce issuance so if you want to piggyback on that this is kind of in the spirit of the original difficulty balm because it's a reduction but it's not the move to prove mistake so you know it is very tangled I think that with the IP 1011 I did put out kind of an analysis of the etherion mining reward and how if you look at it in comparison to some of the other block chains especially even like Bitcoin Bitcoin cash that we are overpaying and that a reduction we'd still be extremely
competitive proof-of-work blockchain but some of that was some of that analysis was one it was to move two to one ether and it was also with the assumption that we gained security with proof with the overlay of proof of stake so some of the analysis a post link of the original stuff but I think that some people pointed out reducing block or without at least considering a six which I think have as we saw was a video of one the other day I think they do exist
think that the conversation they need to be talked about at the same time I think at least a lot of people in the community wanted to be talked about at the same time the the fear would be if you if there are a lot of Asics my network and you do reduce the block award then that would increase that would reduce kind of the consumer minors and essentially just have more and more a secure Network I don't know how much validity there is sex I don't nominate they're out there and what the exact specs are but it's something to consider interesting okay just one thing to add you had suggested decoupling these two and you said I think you said on the
grounds that one is sort of purely technical meaning postponing the bomb and the others economic and technical I guess what I'm suggesting is that they're actually both economic and technical and I'm not personally convinced that it should be decoupled but obviously open to what others have to say about that yeah I'm good with them staying together if it makes sense so I don't have a super strong opinion on that it's sound it's sounding more and more like they do go together actually yeah so free I know you did one two three four do you want to kind of discuss your reasoning behind it and what what your what your championing there yeah sure I just stepped up to write this proposal a templated based on
six for nine which we used for the Santiam fork it's basically the same mechanics delaying it by three million blocks and decreasing block reward by roughly thirty percent and I have actually a strong opinion on not separating block we brought from difficulty bump delay because delay is difficulty bomb-like lengths already set that has an economic impact and reducing the block reward to tries to counter this a little bit and that's the danger of separating both of them is that in
case we decide only to do one of these two things this means we significantly changed issuance model officer and inflation model and that's why I think they have to be in one proposal this does not mean I'm super convinced that the numbers I've chosen for this proposal are the best numbers I'm up for suggestions but I guess it's a good start to discuss it other people have comments I have one just stepping into the sentiment and especially what
piper mentioned that it is a force that we do something every certain amount of time and especially I don't know the number but the proposal from a free says that the the timelines are shifted I had to like mid 2020 and I wonder if there is any sentiment to - if any change is made it should only give us time for 12 months so there's at least one change every 12 months so practically a heart for every 12 months or is there any such time we should agree on yeah we definitely need to agree on a timeline I
think usually we just kind of pick a time and I don't remember at least the last time we discussed this I don't remember there being that much discussion over it so we should have more this time about how how much of a timeline we should have so there was a discussion at Def Con last year and I think we were tossing around numbers between 9 months and 18 months with nine months feeling way too short and 18 months sometimes feeling long so one year is something that I at least could get behind but I agree there should be discussion because this
affects everybody and we're currently discussing releasing a fork about one year from the previous just for one game point yeah that's true actually yeah it's but it would be about a year interesting I think having them once a year is probably an okay thing even if we especially if we decided to have two in a year or something that could also be a posit that seems a little short though actually yeah having them once a year is not a bad deal I think we have two unrelated discussions here right now because we don't want to delay its difficulty bump twice per year I guess or once per year
I just just I'd say we want to just delay it or disable or whatever we decide in future whenever necessary but not certainly with every fork so it might be a good thing a good practice to say okay that's just delays a bomb by another 18 months for instance so we have like a buffer of time in case we have longer schedule to do hard Forks delayed I think that was also part of the discussion which was basically all wait even if we do a fork every year always pushing the difficulty bomb out like 18 months I see okay yeah that makes sense to me - okay so we're kind
of where we're talking about 12 to 18 months being the the times that we're deciding it on for for delaying the difficulty bomb when we delay it and then as far as reduction of or increasing the reward we will need to talk about that more we're at we have to wrap up in the next minute but if you all can go in and kind of comment and look at some of the IPS about block reward reduction and block reward increasing and just kind of try to come to your own opinion so we can have more opinions the next meeting that'd be great we also don't have anyone in here for the fellowship of a theory of
magicians update except maybe offering i we might want to save that up for next time if we could have Jamie or or Greg or someone come to the meeting and talk about it because I think there were some things that were very relevant to the core devs call even though generally I wouldn't like something like the fellowship of a theory of magicians updates to be and the core dev meeting I think that this gathering they recently had is important but the IP one thanks for sharing that I agree we should discuss this more in the next call one super super quick thing that's just maybe worth mentioning is that the Fellowship of the theory of magicians is planning another gathering I believe in Prague it's looking like just before DEFCON and so there's definitely some interest in including you know the all
four devs audience in that if possible cool that's something I'll try to make that'll be fun all right thanks everybody before Def Con but after what three summit that's a one week in between yeah very cool I am alright thanks everybody we'll see you in two weeks good bye [Music] [Music]