# Ethereum Core Devs Meeting #9 [1/26/2017]

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2017-10-09
- Duration: 1:28:54
- Topics: blockchain, smart contracts, distributed ledger, all core devs meeting, metropolis
- Watch: https://streameth.org/watch/yt-ex51Gb3SVqo
- YouTube: https://www.youtube.com/watch?v=ex51Gb3SVqo

## Description

Agenda: https://github.com/ethereum/pm/blob/master/All%20Core%20Devs%20Meetings/Meeting%209.md

## Transcript

okay let's see uh is anybody from parody here AR is here right I'm here yeah Ary oh welcome AR there's someone who who hasn't said the name yeah um if you could go if you haven't set your name go to the top left corner um and there should be like a little uh box with a face click that and uh change your display name okay kavas can you hear us now yep it's uh seems to be working great I haven't used jitu before but this seems nice awesome awesome am I pronouncing that right because I always have trouble with that name spot on perfect okay I think everybody's here so let me go ahead and pull up the agenda and um yeah the agenda is in the allore devs getter um it's in the PM repository so the first um item on there is going to be um should we set up like a recurring meeting time uh we usually do like a Google doodle but um people have been asking if we can just set up like a you know always on this state this time so um a suggestion um that I had was the first and third Friday of every month at 1400 UTC so pretty much this time first and third Friday of every month is there anybody who has uh a better suggestion or anything that's a deal breaker for time no but could you um could you link the agenda again please absolutely let me send it out on Skype and on getter awesome thanks uhuh is that a particular reason for doing Fridays instead of Thursdays um because the last few times Fridays seem to be like the least busy for people um but yeah I'm okay with Thursdays as well just kind of depends on what people think and what we might do is um there's going to be some days that you know there's going to be conflicts with a bunch of people missing like um Ed Kong and Paris coming up on the 14th of February so we'll have to change it but I was just thinking we try um I was just thinking we try Friday's 1400 see how that goes would 14 be better uh Martin um yeah great oh I said 14 I meant Thursday oh yeah doesn't really matter but yeah i' prefer Thursday but doesn't really matter I think it's we could give it a go to books regular ones and if it doesn't make sense I skip it okay sounds good um great so the next item I'll just start setting that up and like send out invites and stuff um okay so the next one is Christian about uh EIP 8 and that one is uh the gas cost for return value so Christian you can uh take it away thanks so yeah we discussed that for quite some time already and if I remember correctly uh there was a proposal last time which was waiting for the confirmation by parity and I think aradi was present and he said that he's not at Liberty to decide about that did that change in the meantime no not really we haven't discussed it here in [Music] detail so do we have any anyone from par right here but I mean yeah I'm here I'm parity and can you make decisions about the the design of the of the consensus changes in in parity or not yeah I guess at this point we'll be we'll be happy with anything that you guys decide and we can always have a situation where we could have like a very tentative yes with a 24hour 48 hour period for kind of final comment on that or if um someone else from the parody team has any issue we can just let them know to you know send in their comments in that time yeah okay so then I would propose uh that weting that right yep and so to be honest I don't remember the exact details of the two Alternatives but I guess most of the work does not have to do with that single decision yeah um uh we're going to be redoing the EIP soon so Christian I'll get with you on uh formalizing that one from an issue to a PR so then once we get the implementation and we can just reach out to um all the teams and relevant people about that good okay so yeah um unless there's any other comment on that one we can just run on to the next one um also on the left upper left side quick question oh yeah sure yeah just quick for for like Jeff and G and balic what are you guys thoughts about implementing the uh return code my thoughts Pros cons so it looks like Jeff dropped off for just a second and I don't know where vitalic is let me see sorry say what was there a question uh everyone okay yeah um turn off the video to say bandwidth is what someone's saying ah sorry yeah I'll do that uh yeah so Jeff I was wondering if you you as one of the uh client implementors if you have any thoughts about this Dynamic return uh code um I think um most the same as always I mean I mean the same as it was before I'm I'm I'm I'm happy to implement this I think it's fine I mean we've been discussing this now for over two two or maybe even three um e calls or core calls I think I think it's about time that we actually do something Jeff could you hear Martin Sometimes some people cannot hear some other people yeah he he answered I just answer oh then I couldn't hear him H oh yeah Jeff do you hear me Chris I hear you let me just he all on board with it okay good let me just reload quickly yep yep and once hey Chris can you hear me now Chris yes now I hear you okay uh okay cool so I said um as in the previous discussions that we have had over the past three four I don't know how many um calls we've had about this I think it's fine I think we should implement it um I think we have uh been postponing this for for too long uh I think um an answer is in you know I'm not in the Liberty to to make a decision then either get someone that can make a decision um or you know don't I mean you know we've got to do something yeah so um if um if Gavin is the the person that can make a decision get him on the call here um um and otherwise you know I think this has been the third call the fourth call maybe I think we should we should just either we should do it we should Implement some sounds good um so just uh real quick about the process for these decisions and Eeps so this was actually the last agenda item but it's probably better that I bring it up now um the new EIP process has a more defined way of you know getting through Eeps so there's going to be um just a little bit more of a formal method we're still going to be using you know just general consensus and meetings like this and other things to um you know come up with if an EP should move forward but uh things aren't going to be waiting in queue for months anymore as long as they have you know uh pretty General consensus and we can uh quickly get together with most of the main parties so yeah that should fix things a lot but yeah sounds like uh everybody's in agreement on that pending um any more comments from parody and we we can check in the all cevs channel for that oh on the top left side um because I think someone just asked if there is a uh chat if you um open the shared document on the top left it's like uh it looks like the little document icon uh that opens up an ether pad so we can just use that and um I'm taking notes and I'm going to uh release those on the uh GitHub afterwards will you will you be responsible for that every call would be good to know yes I'm responsible for that every call um unless otherwise um stated so I would just um uh yeah I'll just let someone know if I'm not here or something and they can do it hey Roman can you hear us um yeah I was um um Roman Alex um folic can you guys hear us I can hear okay cool did you did she get anything of the conversation that we have just had um I personally dropped out a few minutes ago when someone asked me about the return gas at E8 and I said that I was fine with like every version of it oh okay I I actually I didn't hear you but cool no but you here is now fine yes yes I switch to better internet yeah what we might need to switch to Skype it looks like because there's enough people who are dropping let me see yeah so I I I I mentioned it on on Skype as well but so we've been I I'm not I'm not suggesting we that we do this now but maybe for the next time we um we switch to Discord we've had some you know we've had pretty good experience with that so far no dropouts um no weird I mean we've had some weird qus like the ones that we've had right now but uh things seem to be improving um rapidly um they seem to be doing a lot of improvements and they seem to deploy code every now and then so that's good um Discord please work into that might be uh uh might be a way forward with yeah I I think I think it's a good idea I've used it before um I would say that uh because we're having enough trouble does anyone know if Skype supports 19 people I'm like I'm totally open to trying trying Discord next time around y I don't think so um I don't think so I I think it's support TI to like I don't know like 10 maybe even less okay we're going to keep trying this for the time being then I'm I'm releasing notes after so um I'll just let everyone know we we kind of have to go through this way uh but list some options for people to troubleshoot so uh while that's happening let's go ahead and the next one is also uh Christian talking about pre-c compiles for elliptic curve Point Edition and a number of other um topics on that so this is basically about uh adding promiles for uh yeah to enable CK snarks on ethereum and uh I together with Ariel gabison I had some kind of yeah research session in in uh December and at first we try to keep the the pre-compiled as flexible as possible to support multiple curves so that we can uh switch to different curves if some curves turn out to be bad um but it looks like this can't really be done there are no generic elliptic curve addition or yeah in general tic curve operation implementations because we would need so we of course have to assign gas costs to uh every pre-compile and there's no way to do that in a in a really generic uh fashion so I would propose to um concentrate or to to implement pre compiles exactly for the elliptic curve used by zcash and in particular uh one elliptic uh yeah one elliptic curve um Point addition precompile one Scala multiplic precompile and one precompile for the um for a pairing function um the okay the pairing function perhaps I also should say something there so in general it's a quite complicated thing that Maps a a point that takes two points on two different elliptic curves and Maps them to a uh rather complicated uh um finite field and all of these in all of these we uh could potentially run into representation problems because there's no really yeah not not a unique way to represent elements from these uh sets but the good news is that um we can instead of implementing this pairing function we can it suffices to implement a pairing Checker which uh basically just returns true or false uh uh depending on whether the result is the identity or not in the Target group and that removes the need for a comple specifying the complex encoding of this complex finite field and so what remains uh for the specification is just to um yeah uh fix an encoding for these two elliptic curve so so for points for these two elliptic curves and of course uh yeah to assign uh gas costs for that yep so I have a kind of working group here in Berlin to uh yeah work out the details for that I would like to hear General opinions about about this from the others hey uh could you link to the in the getter channel the um if we want to make the some of the pre-compiled slightly more generic what one thing that we could do is we could make the addition and multiplication uh be support any curves that uh have like any B parameter so the a parameter would be of the curve would be zero but the B but the B could be anything um one reason why this kind of slight increase in genericness is nice is because it also covers the SEC p256 K1 curve that we use already for EC recover so like we get for it's probably actually might even be a zero complexity gain because the addition form in formulas are I believe are independent of B we get just a bit more support but that's a fairly small point so you're saying we can make the the elliptic curve operations a bit more generic but not the pairing is that correct I believe so making um making the pairing more generic I think might be harder actually you know what hold on let me actually check through my code right now I'm just going to check if they're like where the A's and B's are by the way V tell I think you cannot hear Hudson is that true yeah yes I am cannot hear okay oh it's not important but uh I was just going to say Christian could you uh post a link to this EIP or anything about the specification but in general I'm fully on board with the with paing implementation um the one thing that's worth adding is from an implementation standpoint as I believe Sean does have that uh heing implementation and rust right um I think so there should be implementations in Rust and in C++ yeah what is the does the go team think about uh that's how I think about it no rather not so we would need to find either find an implementation or reimplement it and go do do you have of the of the EAS recover and stuff yeah yeah of course well I mean so the only C dependency that we have is the uh uh are the recovery functions and assigning obviously um but other than that we would probably need to implement it ourselves um and as far as I know folic has already implemented it in go so that's could serve as a good example um and other than that you might be able to help if necessary we'll find a way I guess yeah so um we're not too keen on um C++ dependencies because this kinds of break or complete um uh um cross compil ability so that would s big time because we can right now we can compile to any platform and adding a plus dependency would probably break that yeah I see makes sense keeps dropping off things so um Chris what kind of can people hear me yeah I can hear you I can hear you um Chris what kind of dependency were you fic can you hear me chis can you hear me no you can't hear me I can hear you but Jeff cannot hear you H you cannot hear Jeff okay what's with jitsy like it seems like so like it seems like some pairwise connections like Communications work but some pairwise Communications don't like how do you even make it a chat app that like fails in that way it's a p toer app that's the thing not cized to be fair Discord often has the same problem okay sometimes you get what you pay I've always found Google Hangouts to be really quite reliable yeah but Google Hangouts doesn't I think it allows up to 15 participants yeah exactly so yeah we're g let's also look into the WebEx and I I'll look into some paid ones and I'm taking lead on that after the call um so Chris what kind of dependency were you looking um what you're looking for no there's so we need a an implementation of the of the precompile of the sorry of the um pairing function yeah we we can we can probably write that in go I don't think it should be that much of a problem okay I mean it's not so the the pro side is it's not uh sensitive implementation so we don't need to keep track of uh leaking side channel uh data so if it's fine okay we'll find a way I'm sure okay so it sounds like we have um go and C++ and uh python um clients um so um Anton Roman or uh arade could you uh comment for your teams well there's also rust Library so very good yeah about zash and all the obstructions for for curve we we just started to look at it just finished the big release so H didn't a chance to actually go into details but uh we are okay with what with your decision okay um if people want to make an implementation I you can always uh feel free to just copy the one I made in Python because it was designed to be kind of both like as readable as possible even at the at the expense of speed um but yeah okay so so V you actually sugges to take python as a reference implementation um I name I um hold on so Java I mean first of all i' I would recommend the step one trying to see if there's any pairing implementations written already in Java and if there aren't then I yes uh C copying python and uh if uh if it passes all the like all the tests and it's probably worth giving it a review is probably second best yeah we need we need to dive into the okay yeah um so also I sorry I totally forgot I see Jan's in here Jan what do you think of this um I guess because you work on both uh Python and Ruby uh yeah I think there should be no problem with Ruby and python because uh we can use ffi rapper to WP the ca Library so yeah that should be okay great and then um anyone from parody arcadey or um gav's joined or anyone at this point yeah can you hear me I've already mentioned that there is a rust grate and that works for us perfect okay can did everyone just hear Ary just want to get it kind of check Okay cool so yeah uh everyone seems good on that so we can just check that off and say that oh say that one time yeah ar ar was on board you hear me perfect um so yeah we can we can check that one off um so the next thing and this one is going to take a little bit um the agenda that I posted if everyone could go there during this conversation there are about five links for the eips that vitalic is going to be discussing uh he's going to be talking about Metropolis but uh real quick before we do that um what is cuz I know Martin posted that the difficulty bomb is about 3 months away is that still the case um well it did it's not so much a bomb it's an ice age right so like the it never explodes it just kind of becomes the the block time becomes worse and worse and the uh security becomes worse and worse over time so like three months as word starts to become noticeable I think actually hold on let me just get my script out again and I'll just uh read it out again um yeah but basically this conversation topic is about the impending I age um sometimes called difficulty bomb but yeah ice Ag and then also U Metropolis going forward okay so from what I have um in exactly 3 months from now so around March 25th the block time is going to go up to 15.2 seconds so that's about 6% up then 6 months from now so like around July 25th the blog time will be up to 29.7 seconds so like between three to six months is where it starts to kind of um substantially manifest itself Okay cool so interesting um so I guess um does anyone have any questions or concerns about that we're going to have a number of cordev meetings in between that time and it sounds like we're coming along with some of the Metropolis planning so if there's no other concerns about that specifically vitalic you can go ahead with the Metro uh eips you were going to discuss sure I mean from these five I think um I'm pretty sure we discussed almost all of them already so like EIP 86 is the abstraction changes so recall us discussing this several times in previous meetings um basically allows a new transaction type that's kind of more basically it has a a sender of zero and then it also has a uh two extra um transaction uh it it has two extra features which basically modify the scheme that's used to determine the uh determine an address of a contract basically the moving from sender and nons to um sender and code and uh like this like we we talked about all of this and I I recall from last time that people generally found the uh found the idea acceptable um there were a couple ofs of this but as I recall we like one version like basically there's one of the issues that you start getting in so like what if you try to uh what if there's an existing contract that calls create in such a way that it tries to like create many co a contract with the same code many times and you don't want to break existing stuff unless you absolutely have to so the debate was between having a very complicated scheme that that checks for that it automatically add to jump to a different address versus just having like a new create op code like like I called it create p2sh but like you can call it create whatever and I recall the opinion being more toward creating a new OP code because it's just like cleaner [Music] um that so that's then after that there's EIP 96 which is basically trying to kind of on the also on the abstraction road map trying to take block hashes and state routs and move them kind of into the formal State rather than being something that requires s of extra infrastructure to try to try to access from inside the VM then there's also I I recall us previously talking about um eips for elliptic curve addition and multiplication but like that's that's now kind of being rolled into the pairing discussion so I'm not worried about that then EIP 101 so this is big into arithmetic and I yeah which so um hold on instead of an OP code can we canot we have a precompile for creation um that's worth cons I guess worth considering um although matches well with how was would operate okay I mean I'm happy to take that discussion offline but it's uh so I think at some point we uh basically I think the question there is is whether or not like the question is do we have more op codes versus do we have PR compiles that have a new kind of like this would basically be our first uh impure precompile um no I can't hear Christian yeah I was about to um what yeah impure that's the exact oh I think he was just clarifying uh the definition of a um of a term so he he'll probably just put that in chat in a second is okay cool is this on one of the eips um yes so the block hasion hold on um e here right exactly such a that's what I was getting at that basically if you have a create precompile without H without having a create op code then you have a precompile that cannot even theoretically be implemented in VM code and like this is a sort of fundamentally new kind of complexity so that was the kind of best argument to get uh in favor of just making it an OP code for the time being what's the the EIP number I I don't see it chat anywhere um this is uh 86 yeah so on the um I I just posted GitHub eum PM isues 3 that has a list of all five that vitalic is talking about from what I've been able to keep up with so uh it's not in the order on the page but it's they're they're all in there links okay and it sounds like Alex just clarified yeah I I I got it I just uh hadn't read that part of the conversation yeah great so yeah uh was that all the eips balic I didn't know I was wasn't keeping so just just to going through all of them fully so with EIP 101 big integer arithmetic um so uh the reason why uh hold let me just finish answering a Christian oh cool what about e98 let me just check over this um ah yes um very good points EAP 98 yeah EP 98 is going to screw over the light cimer Jeff was that you talking yes that was me okay great you did not hear me oh no I heard you I was just making sure when I tell vitalic vitalic can you hear Jeff um I yeah Jeff can you say something yeah I don't think you can hear me because I just didn't maybe not oh oh okay uh let me see yeah it almost might be worth me just throwing in a Google Hangout link because everyone's on Google for their projects do you think that's worth it anybody feel like it'd be like a couple minute delay but yeah if you do if you do make sure you send it from an apps account because apparently apps accounts 25 but regular Gmail accounts are two oh you you said from an X account wait which kind of account Google Apps as an ethereum.org account for instance ah got it okay so yeah let me I'll start that up uh while we're still having this discussion over talk and chat and then when there's kind of a stopping point with vitalics comments um I I'll just send out the link and get everyone switched over so yeah uh vitalic um I think uh yeah you just got all that so yeah Metal's talking in chat and it looks like the EIP yeah they're gonna go over E9 well EIP 98 is like controversial for and uh or at least like not not fully settled at the moment but we'll discuss we'll discuss it uh offline um hold on which other one yeah so the other thing I wanted to finish off on is 86 for okay I almost got the hangout up and let's hope that so video call great here we are all right I'm putting it in the jitsy link I'm also putting it in Skype and getter what are we supposed to do uh everyone switched to Google Hangouts I just put the link in and we have confirmation tentatively that uh it supports up to 25 people and we have less than that okay hello can people online hear me yes I can hear you this is much better I can't hear the now Nick you used to work for Google oh sorry oh you were talking on Hangouts right oh yep I should get off jitsy so testing can can you hear me yes s so he can hear you okay great thank awesome okay looks like Nick's on we have a lot of people so we have most people Casey's joining let me see um wait I'll wait a couple minutes oh yeah it won't take that long we have most people here yep uh let's see kavas did you get in here hello test test yep I can hear I can hear you Jeff awesome thanks okay let me just make sure uh arade can you hear yeah I can hear fine perfect and then we have uh Alex Bazi yo Alex vanders Casey Christian Jan okay this is representative of every major client so uhal if you wanted to continue so basically what we just did for those who didn't hear is go over some eips for Metropolis yeah so um how about I'll just kind of uh recap a few things because it looks like there are lots of bilateral communication problems sure um so I'll throw this into the chat and the other thing is um hold on oh okay that doesn't seem to work well but basically there's five eips uh that people seem to be looking at 86 96 98 or 101 140 so 86 is General abstraction and uh Bas which has two components to it one of which basically says if you send the transaction from that whose signature is zero then it's assum to be sent from a zero address the second and there would also be like client side minor logic that says uh uh what was it uh if that would like provide some extra conditions for accepting transactions like that but that's not something we need to have consensus on so that's like not really any IP then the second part of uh EIP 86 is this uh rule change for how to generate addresses for contracts and uh 96 uh or sorry and it seems like the P like there there are a few PS with a few different tradeoffs and it seems like the one people are most happy with is adding this kind of new create off code that follows the new rules and then figuring out how to deprecate the old one safely then uh the EIP 98 basically removes intermediate State rots which has its pros it does have a couple of con of cons and we decided to like myself and Jeff and whoever else is interested we take it offline and uh discuss at some point to figure out if it's actually worth it then uh EIP 101 just to skip ahead a bit is basically big computation now like my person I mean I originally proposed this and the original rationale basically was that there's at least a few people that need to use RSA and we might as well make it generic and like support various kinds of bigin based crypto um my current position is that if we're doing this I think modular exponentiation itself should be enough so basically don't bother with multiplication and don't bother with addition my reasoning basically being that addition is probably Quicken like of the three exponentiation is the only one where you actually really might need the optimization addition you can just do fairly eily anym multiplication you can do anym it's quadratic but like it's still not too bad or if you want you can basically do like you can convert a multiplication into two modular squarings and then use the exponentiation pre compile for that so there's like two fairly accessible paths for it um so basically the question is like whether or not to add this um so like the main users would I me like orac one example there's a few others like there's just a lot of at least some cases where people wants to like verify existing like cryptography that comes from outside of theorum and that cryptography happens to be either RSA or something big uh something uh big into your based then 100 so this was in response to a vulnerability disclosure bug report made by S learner where he pointed out an incentive flaw that basically ENC encourages um M large mining pools to mine uncles and the solution is that instead of targeting a fixed block time we will Target a fixed uh or instead of targeting a fixed time between block number increments we would Target a fixed time between blocks including uncles and there's like a slight formula change it's like one line of code that will give us that um then EIP 140 and I threw it in because I feel like we haven't discussed it enough but it's interesting which is uh nikolai's idea of basically a throw up code that doesn't uh that that doesn't just like just burn all all of the gas that's G given to a sub call so like that's basically it and I if also I guess at the at the same time I know there's a bunch of stuff that we've discussed over the last like six months of these calls so maybe there's stuff I missed that's worth bringing up again so the reversion the 140 seems to be particularly dangerous where um reverting State comes at no price um it does come at some cost because like it doesn't give you 100% of the gas back like it's like the idea is that you would still lose the gas that you spent um but you would uh but you would get back the gas that you have hav spent yet but wait a didn't we didn't we already don't we already have the situation that we have to implement it at no cost because I mean you can have a throw after you run out of gas so it has to be exact charge yeah Fair the one thing I'm so that might be dangerous with this is that currently we can do some kind of sloppy gas counting when we hit a out of gas and I mean it's not this is not really an out of gas so it's an right it's some specific up Cod so it might not be too uh too difficult to do that and so I have to admit I didn't read I haven't read that that proposal Does it include some kind of error code you can also Supply because that was also requested uh quite often I'm not sure if that proposal has I mean it might make sense to um let's see it says details extra things to consider it would be useful to pass back a return value to be interpreted as an error um this is a nice to have yeah so there's a so there is a kind of proposed extension to it that would uh make throw have one argument that would be like the value that gets that gets pushed back onto the stack I'll just paste the link here um yeah I'm happy to imp this I'm I'm I'm supportive but uh although like although I would add that if we end up running into a time crunch then this probably is one of one of the ones that's that that that I'd be willing to sacrifice pushing off the until Serenity but like I guess we'll see um I have a quick question to be clear um you had talked before or i' had seen some discussion about um having I think it was either Serenity or Metropolis in phases especially to phas in the bigger p uh features is that for only Serenity or Metropolis as well um I think [Music] um let me think I remember talking about Serenity in phases I mean I remember Metropolis being h no so the time when I broke that I was proposing breaking up Metropolis into part one and part two was when we thought that we would do a d fork and like if we're going to do or sorry when we were deba first discussing the idea of not the D Fork have Fork to fix the DS issues and I brought up the idea of well hey if we're going to hard Fork we might as well knock off a few other items um and we decided not to do too much of that but like even actually we did Implement a a couple of the eips that made me fairly happy so like that was intended to be kind of mopolis step one if it would be but like at this point it seems like uh one step is probably all right sounds great discussing the list of of changes you want to include for Metropolis or is this just a this this consider at all know this is discussing the possibility of making like Metropolis part one and Metropolis part two no I mean the the list of of VIPs you you gave is that your proposal to include exactly that into Metropolis or well no that was I mean a lot some of them are mine but like some of them uh aren't so like 140 is from Nikolai but uh like a lot of like most of them are things that we had already discussed and that I recall us kind of tentatively already agreeing are okay for Metropolis so yeah they are all about Metropolis Christian they're all potentially to be included in Metropolis pending further discussion sure so one my question more aims at is are we also discussing that or does this also uh imply that others are not included or not um so are there any um look what others are there that uh have been discussed that we're not that we're not considering for Metropolis yeah I would like to at least have the 58 for Metropolis okay um 5'8 that's the return gas thing right yes yes okay yes I think we were all supportive of that I me perhaps we should can you can you repeat broke up for me me we said that uh the return gas is probably also part of metropolis but in general so yeah I mean how do we decide what is included in Metropolis and the time frame especially so shouldn't we rather discuss that uh things to be so that that we should start implementing stuff and then if something turns out to be extremely hard to implement then potentially postpone it or and things that are easier to implement to uh include or I don't know I think that's a good idea Christian um is there a way to maybe do Point values or something relative to say the difficulty of each EIP that uh vitalic listed out and then the 58 that you just mentioned is that something that should be done in this call or would be very quick to say you know for each client you know how fast would it be for you to do this to kind of get an idea um I mean first of all I guess the first thing is do we have like a just a list of all of these eips that we're considering in one place is that somewhere in the uh repo or dock or thread Hudson um I've never seen that document um I thought I think that I don't think that document exists whe that sounds like a document that should I see what you're saying yes we can definitely do that in the PM repository we have a folder called Metropolis now and we can set up an issue so post call I'll set that up cool it doesn't need to be something like really formal and fancy and basically just needs to just like an issue yeah that would work um I mean theoretically even like a yeah an an etherpad page would also be fine if we can find a version of etherpad that stays up yep exactly so or maybe even a combination so yeah Christian to answer your question um since we're going to start having these every two weeks that should be something especially for the next um agenda to say you know everyone you know between now and the next meeting see if any of these are going to be too difficult to get done in you know x amount of time uh so actually speaking of time just because this is something we can probably you know decide pretty much today what would be the approximate time for Metropolis now that we know that the ice age is coming well as last time we um I would BR enough rush it as we did last time so um I would like to have ample time for testing good call so I guess it's more dependent on or I guess what I'm trying to say is we can you know figure this out or the minimum stuff the next core Dev meeting if it's in three months or if it's in six months because I think you gave that time frame right metalic yeah so um I think a good strategy for this and obviously I want everyone else's opinion is to kind of come up with a minimum viable Metropolis I guess uh before or during the next all core Dev meeting based on a lot of feedback between now and then for eips and then using that we can say you know for testing time and for just general implementation how long things will take and then I think it'll just kind of or organically come out of that what will be in Metropolis mhm so yeah would that satisfy your kind of um feelings about the uh testing time Jeff sorry could you repeat you broke up oh no problem I think it's my I think it's my internet connection I'll just blame you either way uh so um I what I was saying is I think that if we come up between now and then with like a page that just says EIP you know time to implement time to test estimate and then give ourselves a ton of time on that uh we can safely create a list of eips we definitely want to get to before metropolis and then some like maybe one or two stretch goals uh as far as the eips so yep Yes sounds good to me okay so yeah we'll we'll I'll do that uh post call just kind of start that document some some time today uh so yeah did you have any uh other eips or uh places to go with the discussion vitalic um I mean those were all that I had but then I mean I also wanted to bring up static call but that seems like that's number five on the agenda anyway great anyone else have Metropolis uh topics uh before we move on to static call okay great uh then we can move on to oh anyone there's another item before St call I just oh yep you're right sorry I skipped one um Martin uh if you could bring up the um General state test I believe that was one that um Dimitri wrote uh Demitri are you in the call hello could you hear me yes I can perfect and you can hear us oh yeah that's fine finally yes definitely this works from my phone yeah so this EIP is one that uh Dimitri wrote and Martin if you want to start because you're listed as facilitator I have problems hearing you just bad connection maybe so you suggest me to start discussing General uh than watching oh I think Martin Hol snd was going to start because he had a I don't know what direction he was going to going to start the conversation with but yeah if both of you could speak on it but um Martin are you here oh he might be dealing with something right now so yeah go go ahead to me tree if you could just um I have the link in here it's EIP 16 or EIP 176 so uh take it away oh you sound like a robot to me oh sorry yeah if you could you could just start talking about 176 I Martin's not on right the second okay so you could hear me well enough right I can hear you just fine Martin did you get back on yeah Martin we can hear you sorry then point was that as a client developers should start implementing the general States proposal that I mentioned on the E because lots of tests in this all previous tests are converted into a new general state test it's basically thisth and recently we have added more new test for State reversion and so on so really want to see how other are doing with this what are the results okay so you were saying you wanted feedback from other clients about how they're doing the uh test might be better just chat yeah that might be an offline thing but yeah that's that's a good that's a good strategy and um it looks like yeah that that's a pretty that's an active EIP thread so uh if we could just uh recommend everybody to go to that EIP thread and um uh make comments on it I think that might move it along a little bit and it looks like Martin's still having connection problems uh Martin can you hear us now yeah you still sound like a robot I could barely hear you oh yeah uh let's see oh Jeff can we not hear you anymore yeah yeah yeah no I was I was just typing to um to Martin um ah got it okay um in that case uh yeah what what we can just have that on pause until Martin gets back uh but Demitri I think I think um basically you're saying take conversation offline for that EIP uh Demitri can you hear me yes uh just questione itype and then I could respond to you I can hear he just fine testing testing yeah there we go yeah I can hear you all right I guess it's I device is not too powerful yeah we can just chat we can text chat then Demetri uh Martin since you're on now uh hear me yep I can hear you so the reason that I wanted to bring this up was that I wanted some clear go or no go from the client developers uh if they're okay to move on with the general status and if they have any objections please raise them otherwise just say go and we can know that it's on yeah um so I was I was looking at it the other day and um I had a few suggestions um that I think we should be discussing over I don't want to discuss them now because it's taking up too much I think we should move on to um to other things this can definitely be done offline on on the all core death Channel um it's just mainly adding some extra fields that might be helpful uh and that's all so we can discuss that offline I definitely think it's a good idea and I think we should Mo be moving forward with this um but I said I have some suggestions great perfect okay yep we'll do this offline and then next all core Dev meeting we will collect all sentiment by then the IP will probably be done anyway and we can just finalize it next all cev meeting um so yeah we can move on from there to static call so Christian go ahead [Music] um yeah right so um this is a proposal about uh yeah kind of adding new callup codes again which restrict the the virtual machine that inside that call and in all sub calls to modify the state um and in addition uh there might also be an extension that even restrict the col to read from the state which would make the uh it a um yeah a pure function I mean in general I think uh there's a lot of benefit of making call a bit more parametric to restrict what Coles can do but we have to find a solution so that we don't need uh a new OP code for every single thing so perhaps you could also combine delegate call and all these these combinations there I know uh gav had an EIP somewhere for a new OP code called interrupt where the idea would be that uh they basically would be like a new kind of one callop code to rule them all and it would just have as one of its arguments be a bit field that uh represents the various Flags yeah the problem with with that these flags being an argument is that it's it's hard to do static analysis on that I think it would be better to to move that into an immediate argument or something like that if we if we go to multi up codes anyway then that be a solution that's um a good point though I will point out that like static call is implementable with like easy to medium difficulty but if we start going in that direction then the complexity starts racking up so there's the usual will kind of expediency peity tradeoff and static analysis is generally difficult anyways how does one approach make static analysis easier than the other um because with different op codes or with an immediate argument you statically know what kind of call it's going to be and so you can more easily do things like statically verify that particular functions are pure so so that that's in line that that's not for debugging and development that's that's for the essentially for the for the for the validator to be able to optimize validation yeah invalidation um valid what kind of uh verification checking debugging like all those things so one one use case would be these these entry contracts so uh these these abstract uh accounts and if you use a static called there then the minor doesn't have to uh look what is called the minor can can uh immediately know that uh the stat didn't change yeah yeah yeah so so the so the complexity is is is if if we don't know what it is then we may have to have some type of refund mechanism for the for balanced gas cost but if we know what it is then just so am am I going down the right path there well in in any case it's it's a nice EIP so it sounds like either solution could be discussed in the in the comments not necessarily in the comments also just offline over the next uh one or two weeks okay so um looks like that that's going to be um brought to 116 and um there's more discussion to be had on that and then by the next all cordev meeting we'll have that as a top agenda item along with um Metropolis to um decide on does that sound good Christian yeah sure great okay so we'll have everyone uh included in that EIP to look at the next one is uh Christian with EIP 141 the evm op code for invalid instructions and I felt like we talked about this earlier in the call but it might be might have been something different so this this this is this is not not actually a consensus change but more like a agreement um solidity would like to change its Behavior Uh for reversion so the the the thing is we want to distinguish an explicit throw from things like Ari itic overflow or array out of bounds axis and for one of them we want to keep the the jump to inell jump test and for the other we want to uh use an inverted op code and uh the question is just is it safe to assume that uh we don't break any compatibility by assuming that this up code0x EF will always be invalid and serpent uses zerox Fe but like I'm fine with keeping both of those inaccessible or like always invalid what's the benefit of The Proposal Christian and basically the it's like an agreement that's to have future hard Forks that make some one particular currently invalid op code do something with the understanding that like programs can safely use that op code knowing that it's basically a kind of throw okay I get it now so I mean I can also just use Fe Alex I think you initially created that EIP is that right what was the reason to to choose EF oh he just says plus one in chat let me see if he can talk all right Alex just gave a shout out to the ethereum foundation in chat or he was talking about uh he might have to be logged into that account to talk I don't think that's the case oh oh zerf is equal to ethereum Foundation oh interesting nice nice okay so yeah sounds like heo is the ethereum foundation in French so take that yeah I mean if you already use Fe then I also use not to waste any up codes just waiting for Reddit to yell about centralization again if we do that but I I'm yeah that's that's worth it okay so it sounds like we will continue that discussion on the EIP um and there's a few key people who um have some thoughts on that so any other comments on that from anybody but so I mean I I would like to use that from from now on because it's not a consensus chains so is everyone fine with keeping fe uh unimplemented or invalid no problem oh uh keeping or keeping invalid Alex I think is asking keeping invalid because it's invalid now Martin is saying that we should use the same as serpent yeah I think vitalic mentioned that's how it's already implemented in serpent right vitalic yeah yeah yeah okay good looks like we have consensus on that that's yeah and that's not even an EIP is it let me see it's an EIP IP ah the Improvement proposal sounds good sounds good um so sorry just just a quick question what what about the static call um we are going to decide it later um or are we going to decide later how we're going to do future calls it's a bit unclear to me not clear to me either um because that so I mean you know we we could quickly discuss the implementation details of static call um I don't think we need to move it necessarily to another meeting to just discuss this topic we can have calling conventions and stuff like that on another call but I think it is important to discuss that a call agree yeah Christian if you don't mind taking that back over again and just outlining it um kind of like Jeff's saying um or Jeff if you want to take it either one I mean no I mean um I'm I'm happy with a St H um to begin with oh it's just up down got it but do you want it so do you prefer it to be a new OP code or or not you know just apart from apart from that um having I mean shouldn't we discussing whether we want to have aestic call at all okay what's your opinion on that like I said I'm I'm completely fine with having having aesthetic call but I don't know about anyone else oh yeah Jeff just wanted consensus from others so it sounds like Alex good Christian's good Jeff's good uh can we hear from uh Java so perhaps maybe antic it's a basic question and and also what about a pure call which is a yeah pure function that cannot read State apart from the code yeah we we we are we are following we are good oh hey Roman welcome um so yeah and I'm here all the time regarding pure regarding pure call um One Challenge is that in my opinion pure call implemented that way would still be not quite pure because the contracts can contract code is technically mutable because contract can start existing and they can get suicided um the thing that the thing that I would prefer is I have an OP code that I already use in some of in my Casper PC's which is called call blackbox which just like directly takes a piece of code and a piece of data as an argument and so basically two bite slices but I think there might be an EIP for for it somewhere and it yeah I remember am yeah yes so you're right I mean code is part of the state so it can read that um yeah I have to think about it I mean the thing is that pure Maps Li nicely into what we're doing with solidity currently or planning yeah no so I think I mean what we what we we could do is uh like I don't think that uh having the address based necessarily has any benefits because like if you have't take two memory slices you can always just grab the code if he really wants to grab it by uh call by EXT code copying it so it's a just all right I see okay yeah so you do a you do read from uh store you do read from the state to grab the code and then you execute in a pure way right okay okay it sounds like um yeah I think most people want static call is that is that um am I hitting that right I think most people want both static call and some kind of pure call or blackbox call or something in that category cool so y anyone opposed no I like the black box idea um two containing the code and data yeah and we need in addition to that I think having a set of call where you can read but not necessarily write to state would be yeah helpful y okay so let's get some formal eips on that um and again I'm going to send uh everybody really soon what the new EIP template is it's very similar to the old one though so as long as you I'll just kind of Follow that it'll be good enough um and I think there already is are some eips on that but just yeah kind of digging them up and putting them for the uh like maybe in the meeting notes or something so that I can reference this that'd be great so also we since we have a bunch of forg is these is this like new AIP format still it's not using issues in the same way anymore is it like it's like yes so um and yeah that's the last topic but I can just run through it really quick uh how it's How the new EIP processes and it's actually not new it's actually just enforcing kind of how it currently is with a few updates um the templates similar uh it's going to um uh the template for the EIP is similar it's going to have a section for like plane text um like not when I say plain text I mean like um human readable what this EIP is about so someone just like with not as much technical or or specific ethereum technical knowledge can know what the impact of it is uh or the proposed impact uh additionally uh just a few more clarifications in there to avoid um issues like we had in the last hard fork with um different implementations implementing it different ways um and then also moving it to PRS helps with um uh tracking the changes so for instance there's been a few eips where changes were discussed in different channels like Skype and then not updated on the main EIP uh so then there was some miscommunication there so it's pretty much just to get clarity of communication and to uh help streamline the process so the um process is when you have an idea um put it in an issue and you can discuss it in the issue uh talk about whatever you want it can be a simple as one line it can be as complex as a whole template like PR style template and then when you want to actually move your EIP into like a draft status make a PR for it um now GitHub allows you to make PRS like within the repo so you don't even have to I don't even think you have to clone um the whole repo anymore but a lot of people will be more comfortable doing that uh and then there's just a it's pretty much just kind of how it uh was before I think we took out a few um of the we took out a few of the uh labels so instead of like approved and accepted there's just accepted now uh I'm going to post the link to all of the uh change discussion and at the very top um there is all of the um there is all of the um details of the changes okay yeah Nick just corrected me you do have to clone but you can do everything through the web interface and then finally uh let's see there's one more thing oh yeah we changed it to four subtypes so we've been having a lot of erc's come through like the token standard so um and the standards so we're going to have those version now so whenever there's uh an EIP a subcategory of that can be an ERC and you would have like the token standard version one and then once consensus has been met uh uh you can go ahead and um just kind of approve that as you know an approved eipc and then when you want to update that you would make a version two um there's also yeah the the tracks now or core networking interface face and erc's so yeah if you just go to that link I sent um oh the things that are going to be most interesting are the future goals which is having a signaling system using blockchain and GitHub so that you can uh go in and a smart contract will automatically fill in uh current eips and you can uh submit votes uh that are just you know plain weighted not weighted by coins or anything uh about how you feel about them like approve or disapprove we might even have group set up and things like that and then um something that like a node. green that will um check for compliance of eips so I just posted a link to it so something that looks like that but for any EIP we discuss uh cross client uh compatibility so yep just kind of a mouthful of stuff uh again go to that link and uh that'll give you all the information you need so yeah we just got through static call um we're going through EIP 141 or actually we just did that was that uh finished up Christian or should we go back to that no that was finished okay perfect um and then the last the second to last one difficulty bomb and we already discussed that um so yeah and then yep I just went over the new EIP process so if anyone has comments on the EIP process it's not final uh core group of people who have been um active and wanting to change it and uh you know help out with the changes have been discussing it but anyone can jump in uh additionally uh the list of editors it currently stands is let me pull them up because this is also kind of an important thing right now the editors are myself uh Martin um Martin beey vitalic Jeff gav Roman Fabian and Casey drio um so I've talked to most of you guys but Roman uh do you feel fine being an editor um on the eips still you were set as one initially but I'm just kind of checking with all the editors yeah sure perfect okay so we'll we'll start getting some communication for that uh with kind of the responsibilities Jeff said he's fine uh vitalic you're cool staying that uh and then I'll talk to Fabi and I don't think he's on the call and I'll talk to je uh gav and then Casey's good okay so yeah that's all uh for the eips expect that in the next two weeks at the latest hopefully it'll happen this week well thanks for um thanks for coordinating um Hudson I appreciate it and I also appreciate the works being done on the uh the E stream lining stream linning process very nice we needed that thanks Jeff and yeah actually the Casey and Nick and um uh Greg and a bunch of other people have been helping out so uh yeah we've been having hours of Skype convos so they they should be thanked as well good job guys all right so yeah thank you that that's all of the um uh oh yeah so Casey asks is there a clear statement on point s for the difficulty bomb I think if I remember correctly it was 3 to 6 months depending on certain factors yes okay wonderful um in that case is there anything else uh anyone wants to talk about we just under an hour and a half which is perfect and I think everything's checked off the list well what's the status of swarm Jeff or vitalic do do you know we're we soon yeah well I don't think it's really um necessary to talk about that now um there is a swarm room on gter um feel free to ask those questions over there I to be honest I don't know the exact sets I know it's operating on the um on the test net and it's semi functional but uh yeah go ahead and jump into the uh swarm get room it's public yeah it's working for me um it has some good it's had a little bit of hiccups but it's working pretty well right now from what I can tell yeah I I have a question so uh if you guys can hear me can I can hear you yeah so my question is do we are is the plan to kind of move forward organically with this or is someone going to propose an actual plan for the coming six months if it's going to be one fork or two forks and what's going to be included I think it's sounds like the very near-term plan is like after this call for developers to kind start uh implementing these uh at least the eips that we have a very clear consensus on and to continue kind of disc discussing amongst each other to continue uh to uh like like research the path for imple implementing pairings and uh hopefully we'll uh keep coordinating and within the next uh two one or two weeks or so we'll have a much better idea of kind of what the priority list is yeah so I just an issue in the project management repository so I'll fill in kind of the info at the top of there the main goals of that is going to be uh deciding definitely what is required for the next hard Fork um rough timelines to then finalize timelines hopefully by next allord Dev meeting or as soon as possible and uh come up with time estimates for the how long eips can take to implement and how long they would take to test uh on a per client basis so um I can round up everybody body for that that's not going to be too bad because we're all on the same getter channel so yep just posted the link to that to everybody um and so yeah Martin did that answer your question yeah perfect sorry yeah perfect so would it be fair to say that the plan is for all cor devs to see what they can Implement and what is a simpler thing so that by the time that difficulty bomb starts can we can we can do the for um I mean start to see what you can Implement then I would even say as soon as possible once we get once we get kind of informal consensus than uh just start going ahead and implementing as I think uh like given that we do that we do have a deadline I think trying to kind of pipeline things and just getting to work on the first half even even while getting to on the on the second half would be quite sensible so so it's more like the reverse deadline right we we have the some point the bom kicks in and we want to see how much we can do until then right yeah yeah and I mean obviously what what our goal is to give us a lot of padding a lot of um time for testing and for uh potential issues implementing um especially across uh the clients with the most um uh I guess client or node share uh so we'll be working closely on that and so yeah what vitalic and said we're gonna get to this as soon as possible oh what was that Jeff no sorry I said something to my to my girlfriend and I was unaware that I was unmuted sorry hi Jeff girlfriend uh she can't hear you oh but that's said hi feed oh thank you all right so um anything else anybody I just wanted to say that that this was a really really lovely uh meeting and I'm looking forward to more regular meetings and more structured process yes me too I think this one was definitely helpful um GTO one on the same page gu yep yeah thanks thanks for doing this yep uh so what we have is uh y that's pretty much the meeting just to remind everybody we have where is it uh the first and third Fridays of every month at 1400 UTC uh I'll be sending out emails to everybody about that um if I don't have your email I'll just reach out to you on get her and get it I think I have almost everybody's though and uh if I'm missing a client um that is significantly built I guess uh or people that should be added to here just ping me and I'll uh get them included in this and by the next time we'll have a myriad of options for the calls I'll try to test some between now and then as well I know uh a few people had volunteered to help me uh test jitsy so we might have like a jitsy server like locally with a lot more uh Power instead of using the public one yeah but also look into Discord please I think someone had mentioned that it has the same issues as jitsy as far as um disconnects yeah I mean we they used to but I think it's been improved and it was um Nick that said it um okay cool uh it's not open source I don't know do that really matter uh it's more important to some people than others we can definitely check oh you know what before we go who cares if this um is this audio is presented to the public is that something that anyone has a problem with I'm not doing it yet but just I'm thinking about that as a way for people to more clearly go back and see what's going on that's no problem cool uh Roman do you have a problem with that vitalic problem cool yep so it sounds if anyone does have a problem you can PM me privately and we can uh work through that but yeah otherwise I think I'm going to start to release these publicly because that'll make it a lot easier so we don't have to take as many detailed notes for the community all right great I'm not going to keep youall any longer it's exactly an hour and a half since it started uh great call everybody and we'll see you on the first uh THS right the first Friday so that would be the 3rd of February all right cool thank you guys see you thanks everybody
