# EVM Roundtable: Everything You Wanted to Ask, But Were Afraid To (Devcon5)

- Channel: [Devcon](https://streameth.org/devcon)
- Date: 2020-10-09
- Duration: 2:02:50
- Topics: blockchain, smart contracts, distributed ledger, ethereum
- Watch: https://streameth.org/watch/yt-hhDjviZegbA
- YouTube: https://www.youtube.com/watch?v=hhDjviZegbA

## Description

Visit the https://archive.devcon.org/ to gain access to the entire library of Devcon talks with the ease of filtering, playlists, personalized suggestions, decentralized access on IPFS and more.
https://archive.devcon.org/archive/watch/5/evm-roundtable-everything-you-wanted-to-ask-but-were-afraid-to

A fishbowl style conversation with passionate contributors to the EVM, but allowing anyone from the audience to stand up and lead a topic.
The intent is to discuss certain key topics, such as how to evolve the EVM, what the most pressing issues are, and dissecting a handful of EVM proposals.

Speaker(s): Alex Beregszaszi, Paweł Bylica, Casey Detrio, Nick Johnson, Jacques Wagener
Skill level: Advanced
Track: Execution Layer


Follow us: https://twitter.com/efdevcon, https://twitter.com/ethereum
Learn more about devcon: https://www.devcon.org/
Learn more about ethereum: https://ethereum.org/ 

Devcon is the Ethereum conference for developers, researchers, thinkers, and makers. 
Devcon 5 was held in Osaka, Japan on Oct 8 - 11, 2019.
Devcon is organized and presented by the Ethereum Foundation, with the support of our sponsors. To find out more, please visit https://ethereum.foundation/

## Transcript

[Applause] questions they're gonna try to go through but if any of you have a question you can just ask it or a CNN the topic you're passionate about you can also just move up here kick me out sit down and leave the topic but if you don't speak up even though I said that we shouldn't be special I think you guys should just introduce yourself like in a one sentence and whoever comes scriptures do the same so then if you want to start everyone my name is Leo I work on [Music] it could help them now they need to be eating their juices hi I'm Chuck hi on top of I work I mostly do EDM and my mouth except working on solidity wasn't the case here muscle for them it wasn't alright let's jump in to some of these questions maybe start with a big one which is no pricing of computational and arithmetic octaves that has been I think you get started I will today the discussion will give him one inoculations not sure if any of you guys have seen that talk there today and but there was also a paper that some instructions may be mispriced and in Istanbul heart work may have seen the IP one eight eight four which also suggests two to repress a couple instructions so what do you guys think about instructional pricing is everything correct it's it's kind of impossible for it right across all the machines the best we can do is try entires an average machine but with different reasons for transitive difference because D is different parameter teachers and so on I was never gonna be completely correct we just have to try arrival pricing scheme isn't so far off base that it converts a subject dearest text and that's why we had to do things like what are they for in order to or whether it's like the disruption to existing stock contracts a problem but it's not avoidable one who is the alternative is that we just simply what we've got and inside we have a contract that yes just to add to it I think just as replacing is tough I think it's also kind of we want to go in the future but also in a high life it is we often say what we call simple make love change so we should keep that in mind it's not that's why we will have we want to do something most of the crisis that happened the papers are welcome this is actually about accessing exterminator PDF and like this is actually externally in the door it's just a way to do it something from from the outside let's say this for something like memory and and I think this is what we mostly struggle with the on the other hand the computation of the kind of higher price comparing to DHT time in texting so it's up like big safe margin here and I actually have a claim us even if we prize the computation of course by the same amount of them it wouldn't matter because it still so by comparing it to the other car that's like it's not exploitable I kind of algorithm instead of something something more so the worst case I think what I think of code that's duplication and division but still I think the margin is big enough and we are bounded by but I think they could be smaller if that helps for exactly to be to go more into state that stateless contract so you can compute more instead of staying there the computational ones are are highly WordPress today but now you say that to your commutation yeah I personally would be likely to lower them but well we cannot try them accurately like each other but they're not like oh this other things they not in terms of time they eat they take to execute and the crisis that's not also a queue at the moment but somehow it's not exploitable from the security point of view but yeah if you want more fair prices I think they should be indefinitely lowered by by some time but bye bye geek geek Mountain I mean indecisive so stank blood concerns really mostly like unfortunately the store so I think that as well we're talking about reducing the cost of just the computational ones right now that are using custom topics wouldn't to say that if you're moving towards stateless contracts that you would actually have to decrease the price up to come to there's always to make reasonable yeah otherwise your user Richman's have been late to spend yeah actually they expensive very different lower the cost be mindful yeah yeah the maintenance trane this is the crisp call data so lovely and it's great progress that the VIP were reducing the cost of call data is going into Istanbul if it wasn't for that I'll be pretty pessimistic but that was great progress and it's like about halfway to where we want to go so if we do that again the next work once the price proposed for Istanbul as you know the network is still stable if that's the case we can make progress and reduce it further that will be will be well on the way and but I think the other difficult part is going to be versioning and versioning will be necessary to prevent breaking existing contracts so but if we have versioning then we can propose new costs and it will incentive these new costs plugs will be cheaper than the old costs and the and existing contracts that are blowing the state will eventually be based out because people will be incentivized to vote today cheaper of stateless pocket house yeah I think I think it's a great idea also because it kind of solves that problem oh I have this contract like it's my grave do this I'm a good stuff so is it a good idea various countries that's the regime you wouldn't also sold diseases free with the sponsor news it's an evening for me are you guys developers or are joining deaf developers and are you guys writing contracts are you happy with the prices what are you not happy with the gas price as a misdemeanor of actions and you cry too much for them or the specific if you have to like wait yes are you storing enough data is is that the main challenge but just try to execute yes I've recently deployed contractor to Nicole's a signature for deployment wing yeah people so the gas prices on 31 like who creates bison beforehand for the lifetime right it's not that because the cheap we can improve the efficiency because my name's pollution was you can't really like to sell a future and they would be guaranteed works for there's the potentially effective guest token works by exploiting data and issues with the refund mechanics where you can basically most of the miners do twice as much work as you pay but it's not very scalable I mean I kind of wonder if we shouldn't if you say nothing it would be awful but at least it wouldn't be wasting stories yeah I wish I was wearing my I was bringing my god yes token we're in today but it was the funny thing is that it was warned about in 2015 and the least authority you know report like analysis before it's very enlarged and but well the way they warned about it was minor versus minor storage bombs and it's not exactly what guess token has what did has the same effect yeah some of the relate such as depression is like we say that you forgot stateless so then guess if you ever stateless mode that sure on that layer we can maybe price that's different but guarantee execution environments could have the same sort of thing like you can design a controversial I just stores the compassion for each child we have destructive list and they say the great deal guess that mrs. teevee similarly does the same thing we only store - and I think yeah one of the contractor on that is you could also like using sensors to do any calculations but kind of if you have like a two-party system and that's trading or something and you have a formula that derives the total points both parties on both sides actually have incentives to calculate the closest value and you could actually catch the value of storage and then make them constantly some transactions to get an actual Maggie so yeah interesting stateless so maybe the unisex you said that and you senators who just arrived at the hash how do I get the date that you're sitting on the order of at least the kilobyte very intrigued basically we think that saying like 500 bytes of exercise for DNA century and so you you know use the Mercer report things of how the beam and it verifies thank you stores the Hessian that definitely hold some of the links one assignment that Kate Hewson back and used to the previous record verify passionately and so on see some changes but it's not a long title but storage is very expensive and it's been watching that possibility twice by apologizing as it is one cycle data and store Freeland independent ever decides that if you do have a lot of data you need to pass in and you need to do certain mental computation on them to derive two distinct you store there's like a trio Farragut is way cheaper to store stuff on I think it depends on the computation so in this case I think it's obviously in this case when you're passing of the redundant are the only computation some codes to verify that the cycnus is passed and verified last time so we don't repeating a lot of computation because their clarifications only two months actually I guess two bets for our panel this you want use his works Welland the issue is when there when every part is Merkel cruises and all that Merkel data is what makes the call to it's interesting you senators currently just passing it you know just that just the DNS data and then that's about to be you know four times cheaper after history all right so we still need he receive the code deposit limit I think it's your see because I mean the contract yeah thank you because I thought some discussion and a big magician forum that there is some debate and I think more and more demanding into this limit and this is really needed some of the problem is that was any static scheme is not contracted alone say not disk and also just the basic Java test analysis for the whole thing and it's the size that is I'm down to did something consumers a very large contracts that only execute to say to all codes before exiting and the the VM is to do a great deal of work for very little gas so that the OS vector so until we ever be a solution I kind of use that as easy any plan implementer because yeah they said it's like I know when I actually build myself to adapt the code size will not be graded on that and I can have my summer sample some new notch because except that something like analysis you have to do when you load the count and you about execute it but I think that I way to kind of work around that I mean some of these analysis can be done nicely but it's much more complicated and we could do now I just come to code once and also this this this this analysis can be can be cached but yeah actually hugely exploiting that doing much more things doing this analysis because I know the the curse I swap meets super huge I get it so yeah it's limited by the gas price we can yeah you cannot deployed super big contracts because like you pay for them to bite to the blank dad but for me it's it's not static routing information because this change is way too wrong so when I actually like make design decisions doing yeah implementing EVM this is not like strict grant redux I mean I cannot guess what works it's like the reasonable size for you I mean like I know that for example for example if you you know how if you're like let's say you sum up of the cost of all the curve I know it's gonna not exceed like it to this value because it's like the maximum code of codes constants is created which is 42 K and multiplied by the Scout size it still will be a 32-bit limit so things like that so i know i can i can store like this information within a 32-bit limit that's many things like this so you have at least I also can actually generate like the worst cases businesses in Shekau how much time elapsed egg so like this is some kind of security precaution like yeah in the worst case and it's like they're the order of yeah yeah I mean I mean I feel also like much context there's no saying no use contractors lives the case that represents trying to make contract in too much or that you should be motorized and in doing place so it's about complaint or resident I don't think it's I think it's there are definitely contracts that product but your first reaction will be rather to it should be to the to do the review of your college and say how am i try the correct way too much stuff as maybe or on Changmin is it something to take off chains and stuff I didn't walk instead of computing and storing looks like that or kind of modular eyes the business in case the TV set context registers was a budget ear based algorithm is an ancient letters of the civil contract without which makes it more flexible and also ensures [Music] but I'm talking about the bucket limit is the limiting factor for the contrapositive anyway so currently when the when the movie was in host and proximate was like four million and that was the mark and now it's at 8 million 10 million and so it would be double the Jebusites that they in have to guess from the contract hasn't changed so they'd still be trying to do yes we increased against one that's right increasing as much of arresting it became more expensive to run the CPM to inlining the back end part of the cosmic separation so it can make it will often make it worse being relatively [Music] this kind of research but I mean very differently about just having some context about the idea that safety look at the so so I still like that idea and I think what I bring that Nicholas was actually the fact that they business static cost and it's like same amount of gas this car time and it doesn't really reflect what you do we actually running and so what I would like to see is something more like what the operating system does it does the computation of 30 your I don't know your your index library from Thirsk once it's a memory it can just recall that and to get that advantage so like and water in the transaction the first floor was priced at something and it may be to somebody else pair as European philosophers and I think it makes sense for the same reasons the other option is that we do system to propose well used contractors Milton's didn't say I mean my own personal Viennese registry yeah is now a built-in and it cause it's fifty years to go let's go see a doctor because you expect American clients to feel safe just like everybody uses this yeah it almost cheap enough you could get up recompile it suggested some kind of advanced caching in the IPD grandmother's though this contractor was addresses happens contract especial St Trinian's individual presentations can choose to really badly or advisor complain Lotus has been very evident it's kind of the wasn't a frog but that's actually Martin Martin's Wanda I work with the client and secured their foundation but for the infrastructure in the EVM and I was up another and also we were just discussing pricing and pricing in general and what we ended up with I think Nick proposing that so regularly used contracts or libraries with right so how would you so I have a problem with there's a general thinking sometimes that caching clients have caches so we should make the things memory in the caches cheaper and my problem with that is that caches allow the level of freedom to have whatever cash eviction policy you want it can be least frequently used lost recently used caches and if you have a big machine you have a large cache in if you're running it on a Raspberry Pi a very small cache it will be slower but if we like say well the cache should be this and this should be cheaper than we all of a sudden encode in cash eviction policy into a consensus engine and we hope fast slice into the consensus engine and we need to make sure that if something is put into this cache and it's been a revert that we need to clean it up from this cache again so it's not sitting around we need to have a journal covering this cache and basically it's no longer cached but we've added the new consensus structure with very strict rules on what needs to be in the must means not being there and yeah and it's room so the the old cache has become just another consensus structure which doesn't help make it more complicated so the question is if we want to make it cheaper I don't think we should have like anything except in the last town solid you need to be very clear about what should cheer and why and what kind of data structure - anything - I agree and I'm actually against caches very easily attacked by the eventually we saw the need to do is make sure that he realizes that application so they think would when you don't really need them and they fail when you need it most and you always have to assume the worst case that everything is a certification therefore you can't actually optimize your stuff further at least you can do this when times are good your sink is slightly faster still if you're catching out or maybe a lot faster what I was proposing is is one of two things one is effectively extinction and it gets to apply to corporations the other option is a way for the idea is to say the contractors by previous address why it is considered a public road in this roost regularly because of the science and math coding or something and executing the cool off code to this world across 20 guests because we expect every client emergent to the American style and it'll be a very limited Caesar small contracts that work the CMAs basically yeah on the first thing yeah I think it would make sense but probably be a maybe a limited usability and on the second idea I think that would be yeah really that look okay period I think use what my team will use music because it was an email a library that has a serious mentality functions the contracts were star engage cools the defendant gets saved in deferral orientation about the library [Music] tie back to that if you get cheaper call the next time you call something that you've already called that's like the more generic version of Alex or typical self and I took that Eve and I did an analysis we can get up on the screen there but the analysis looked at if you have a someone's malicious well at the contract which repeatedly calls itself as many clients as of town first in Java means it calls itself recursively to limit word can't do that any longer and when it runs on the gas there it will do it again so it could be like down down go even though [Music] [Music] [Music] the first contract does just a second time and what the second one does is it calls itself in the case of reduced toss to something that's already been installed this would fall in the same general framework and this is how it basically looks so first you have a recursive call tree going to a certain depth this Gasca current and in total there two to six decorations where it goes to the depth of 344 and total 13,000 cause animate 10 million yes and if xyx implements the where the reduce will be the 1400 there will be welcome is the more important to five iterations and the maximum that for 503 and what you can see what's that on gift without any state to anything and i only the cure gets run times the execution time jumped up to one point 18 seconds and I'm sure the must be the floor yeah and then became 171,000 Coulson pump oh that's pretty steep difference yeah but I mean you could adjust the gap priced right right but so do you have to decide what so yeah both the number 14 [Music] that's what spokes third person from reaching 1,000 foot boards but when that recursion them souls all those 164 sorry turn and we can go one level down and do the depression again it'll be short because started so there's no need to use an explicit call that plan that was do just have one but just to be clear that proposed 14 or whatever it was to the guestlist it was just starting number which means do the benchmark which is right where this is always good to happy with it yeah say to you you have this just repricing with dynamic repressing for goal that you more often there is like an eternity I mean even if we pull call something that's working close there is an inherent over up in the yes they can do condemn sweets no such a the questions like how bad is this fundamental [Music] right this probably means 700 is pretty cheap to compare it to an extra cash but it's super expensive and then you get into the incentive so I can write modular contracts instead of fabula a huge we're all artists just so because there were just a small war then the repression of all would affect that so you should write for one tool a contract which are easier to understand lengths probably safer in general but if you're very extremely months and guests they would just like writing which in huge contract and just intro calls and functions and Anna just conjoined between them but then say there's incentive to write more contracts against similar contract but that's inherent that means jump is inherently cheaper for the event correct right over those will be you know you take care all the sorts of variables and of veracity call is like the other email takes care although yes personally I'm just from the perspective of the incentive for coders to write my comments that's the perspective can be backtrack a tiny bit you went here at the beginning and I know that some people questions of the previous cover death but we started off with one single question in position quite a bit the single question was why is the code says mechanic or TM to be extended and it is a lot of different topics we can discuss in with it whatever you think one we suggested that it makes sense to break up contracts to make them more matter but that has the issue of of the cost of fall and you know these overheads and we also explained that the code size limit is there because of an issue analysis cost and it's it's a u.s. record and I know there was a question probably there which we never answered can we moved to the analysis earlier a deployment and I think it's certainly possible to type in that case the deployer is already paying yes proportional to inside paid for at least there's no description seeing because there invisible change the contract actually BPM implementations to be able to serialize that and they also said that efficiently loaded up again execution if even if they do that we would incentivize people to create bigger contracts device company to make them practical and still but let's assume we would we would make this easier and we would mr. Coates estimate that we wouldn't do anything on the call cost then then we would be just expanding this piece to make more monolithic contracts and the the alternative to that is maybe consider making multiple contracts more attractive and that's what we have been discussing but scientists soon let me put it in fact we find some material and we're distant projects every time you recall it would be possible to have in my contract the ability to indicate that a club could be at one so I can still write a modular but I'm not paying the price of a bull call because of load times there's some hints there saying you know this is gonna be probably eventually been a lot of sectoral month exactly like I want to write a module early but I don't want to pay this cost so in - cause it seems more like a optimization the the difference would be events the summer night there's no in my contract okay I'm not in line but the code is not in line in the contract it's an indication to the end time so I don't pay the cost of this bloated contract but then the others has to be studied for it yes it was but they do make medium beta cos it's a widely neglected I'm paying some overhead costs to indicate in line but I'm not paying I trust everything to the college said it's a one-time I think this may change if I can get not too surprising I'm curious you should times there about what the two seconds for a block full of these we in this case and I explained then we shouldn't really be written about verse 1 because they could just write the other thing which would be worse for us I actually already have one so we should be getting pretty much but that we wouldn't be making things worse once we get rid of those so they will go back to that one so I'm asking how far away this is from a reasonable position well I mean I think we can go in that general direction but we kept like pretend that the call is equivalent to a jump because it is very middle but I don't think it's ever I don't think a cool to Sophos what's a matter so this is is this suggesting that it would be resisted using muscle 14 yeah yeah so yeah [Music] but anyway this is only for call to self which was motivated by Viper and Viper initially for every single functional defining writer it would do an external call so that to make those functions fully pure and this has changed I believe last year in the classroom this year and the writer is also using jumps for internal calls because obviously we want people to use the language so the motivation of this proposal was to reduce the call to self so that Viper could could keep using this safer method fewer functions and also suddenly they could start using them exactly I mean I'm not a big fan of that because it requires you to serialize your whole documents retirement in AC realize that we say even if for self switching problems [Music] especially say this conflict buddy I mean you would have to navigate the home 63-64 throws which would cause issues so every time you make a call you can only send along maximal sixty three sixty fourths of the gas that you have which makes it practically impossible to breathe or recursion record up something like yeah and that so the conflict which is in the contract world where everything is based on causes little jumps that can be problematic on the belt of series ation so we do have like the EBI including across different contracts but if you're calling yourself you may not not be to use it you can use your own wizard main match to man but you do still need things much like if you've got a data structure that yeah [Music] [Music] [Music] parents okay said that that's just what was in the under call called yourself a new free starting to stand up good for that then we really made it a very specific case but earlier on we also said that this between more generalized outside of all to sell and to disk and calls to contracts which were already called in execution and that's that's the one which would be useful if you want to have more model contracts to your libraries [Music] [Music] so you guys giving any issues considering this more generative case is questioning you need to do a bit of analysis on how much can usually be enough attention to load into hurry like tech square shows the number of was your banking everybody contract seventy times because BVM intention has to be I occasionally if we featured a technologist over education choose a recipe it seems like if that's a nice meal so an interesting case there is you have given contract to use a bunch of librarians to keep pulling them you catch the top them and I applied to a brand new contract and then you want also catch stuff which is happening there I knew I mean should that be the case or shouldn't you be able to reuse that system I mean I really like the idea but I'm really worried that it's gonna pull it to the same problem system s customers that gas means no nominee repeat old specifically that the realization history imprints the issue but apart from do me in transient was just quite complex and there were so many versions of that basket and it's forever and even in the the last heart fork on coming up to this and will guess we drink it seems to be hard to to get people to write down a key of specification and beer tyskie the story and I mean I wrote the very first petition against metering and with respect I wish at least focused on trying to get me think it's to exactly reflect what the airdrome culture and morale just Simone simple protection catches some inefficiencies rather than a more complex one who tries to reflect a mover so maybe that's the approach we take on I'm not actually up to date on the latest variant of the proposals I think they leave this one has some an extra an extra rule just directly because so think there was like an article or a paper some time ago is showing that like we were presented with like it was really a high percentage of contracts that are actually the same workplace and I guess most difficult safe math and similar contracts like what so this whole thing that we're talking about the repricing alcohol would be a developer's not really too many these are for what what would be the difference for declined okay one case right now have all this contracts being the same of course I don't assume that a client stores all of them separately but then if you have people start writing more modular contracts and just delegating poles then you're going to have a fear of them deployed to what different or would would have been basically the same I'll say it's already already hashed by 30 stores Becky Becky stole it it's definitely raised to little such as the other day the most popular contract or theory of one of the most so the clients currently store the conference on at once but that's not something we should and trying or soon because there are there are it might change over time and that verdict no I was thinking primarily because if they are store if they're um right now that they duplicated and if they're on the duplicated that makes it possible to have another representation which is more amenable to things like lip-synching [Music] it's actually impossible to delete things from which how does creative billions County most party I mean I invited contract storage solution building a store stewardship adjustment to store frequently changed author at the end but if people start doing that we are gonna run to issues we need to start college committee contract so so well I mean the garbage collecting the contracts there is with the the repricing coming up for esto there's this other discovery that it is cheaper if you have a lot of linear data it is cheaper to store this in context and use Xcode copy more even to polish and hostage return some of the time of my code yeah it's in the case when it's just pure data and you X goes up here then a difference config [Music] my test ugh but I don't think it's a neat bad I think it's just it reveals area we know these polytrauma minds this previously hasn't been enough initiative just be entitled but I think that the costs of contract storage roughly relates to the actual costs of individual clients it's cheap Livaudais reasons we store we've got was mrs. Patricia training but this this also opens up the question why is the story to tell you about the key that is storage venue limited that's where the two bytes because if you move if you could have more in their names of interest and i storage should absolutely get me a page table time it's it up with large pages so it cost a lot but perspective page and variable quantities that's how just a story a lot of the machines okay that's when there's been a copy time waiting for each to return half the time receiving the data and maybe much besides straight dick you know I even either probably do it without changing table covers you just make it store a lot more of a chance but we've got thousands hundreds of thousands of contracts deployed that rely on the ultimate live use contract storage of the massive hash table over 19 if victim plea is instead of treating contract storage something 286 that played 2 bytes of data to buy that you would traces the series of pages and so when you do a you basically treat the last few bits of the position of the page of first but as which patients and then you you know the first time you defeat genuine page you charge their own gas for that and like maybe two or three five times well apparently slope costs but then the several times with a page sorry of memory you charge only comparable to get luggage costs total load of cows purchase in the store back potentially and city of codes would be the sign that still justice lightly a store that's just treating that semantically that's treating the belly differently suits their lives forty two quite so that's kinda still we really do contain lots of they're only under twenty eight nightly just keep infinity let you hospital and that's longest you you go within the same page only charged much of it at their scale but that would radically change health and we just needed to store data instead of using the entire storage by cash table everything to start using things like red black trees and so on it all just all stuff from contiguous range ISM a similar idea was was explored too soon I guess we could extend by discussed it hmm similar but not the same and instead of using s load two together pages it would be memory mapping the entire storage some are pink tonight but there's one trade up here it pushes hmm it pushes the other curve to do hash tables to the language well so differently shouldn't be hash tables because hash table say their motorized on one and every time you need to expand the edge table user 208 word which means that you know every 10,000 or agree you know two thousand transactions and it refers what needs to use so they're gonna do this fixed along in time like a red black tree and it doesn t need to do that in part [Music] from developer experience point of view a lot of contracts really rely on a mapping yes that's like the core data structure we use I think it's still headset it's just what the language was different seasons yeah I don't think it's an issue that the language will have to know everything will be just an initial investment all these languages would have to do quite something and then perhaps somebody magical but but even then she mentioned either it will be in the bytecode invisible deployed by two or you would have to generalize it out into some kind of library or by the end of it the same same issues as we discussed before so it seems to be all of these you want to change a tiny thing and you you have suddenly a bunch of every primitive well let's just say that I mean all sort of being a page table that's the reason the punch provision we get under the eyes in the beginning impact of expandability we could write much more natural violence if we could everybody into the stack of the other and so on just that this was marriage bubble is here now because Bethel was discussing it with 10 weeks ago venules Lee why my is advantageous and just wondering if this was discussed before to give some background to you guys this this was a discussion on the solidity def channel which is open to anyone to join its most people to compiler but this has some of these kind of interesting questions and it's originated from memory management anybody's finished the compiler I mean in the context but it's it's prism I can color and you can only expand the memory you cannot do anything else and in any given function they want to just use temporary memory and the the issue was that we wanted to maybe we use memory usage because memory is expensive and you want to await their temporary memory but it's kind of a challenge if you want to be sitting in a generic way because you leaves so you know if you're starting memory or to use to certain extent you get me to follow you through you want to interpret memory but at some point you may also want to store data which wouldn't be temporary and it becomes a challenge but if you have page tables then that you can it goes to me for some reason I knew this very moment that we could actually change that without big impact on existing contracts because if we using page tables and we have the same guest cost of letters will announce memory you use it throughout look the first invites the existing contracts are continue to operate the way they are but new contracts that take advantage of effect it suddenly think of right to take off something Steve proposal Daniel came up with a special so we took the memory page the most that you know the proposal was to maybe use some hybrids of the the offset the page table so what's your opinion don't know about the high bid well you don't I think like do we like but a lot of nice features to have but I am sure it's practical to use so like do it in the way it up between or affect existing contracts the hybrids are kind of I don't like using habits within the average 56 values when you implement stuff you actually can just trim it to like 32 bits of memory access and then I have to actually consider the upper of your fixer-upper like part of the value maybe it's also big deal with I usually do when there is no proposal I try to make a prototype implementation and then I can actually comment how so maybe there's a way to kind of come up but I don't like my first choice would be to use the even if you have some like bit mesquite and like differentiate like addresses [Music] first one that was so one of the questions we have here is which still relates to the earlier discussion on stateless contracts why are zero bytes in the transaction if cheaper than one Z of X there are already present no maybe they were thumbs sixteen from sixty but only yeah so so okay so context around this and it's in a transaction it has historically been the case that the data that goes into transaction I think that if it's the bike is zero it was before and if it's nonzero it was 68 gasps now for calls that happen within within yeah with it from a contract to another contract there is no such distinction what you pay for is memory expansion if the memory expansion address sorry I mean you can send a long megabyte of data but not actually cost anything in the gasps if you have already expanded the number to that megabyte yeah so with this double we're lowering with this post of 68 which those are some of the outermost it's actually lowering it to 16 and the initial reasoning to have a different between otherwise there would have to be a more intricate scheme to figure out the time also when you have added data suppose [Music] [Music] all right we have another question stimulating talk about pricing and we kind of explored and nothing somebody wanted to ask that question but should be should occur pricing be updated every hard work using some benchmarks so should we always be priced things to do what they are at that we do seem to have like a solid benchmarks it always gone there so like always adding things to it as well would that mean we will needs fixed set of benchmarks first which case so what I think still like we have to split like state axes of curves and computation of curves I think that they should be addressed differently actually has something like remind some idea how to make maybe try to evaluate a computation of course a more systematic way to actually have some kind of a bench - to remind these will tell something like a script to reproduce Jenkins yeah I mean that's what the hard part right our part is designing yeah benchmark analysis like the one Martin did or against among to determine that estimate was commander price that the one that these guys did the paper they came on 72 second walks okay so you know once we have those then you know we can start repeating and systematically running these benchmarks but haven't really had these you know analyses until quite recently yeah my ideal situation would be like with help us like some planning to say algorithm or program deflection you can rather than in outputs numbers and then we can discuss about their the algorithm and the program not negative numbers themselves so like maybe done we need to change the algorithm and so we mostly talk about the script of that produced the numbers that would be I think they do the best we can have but they should stop whenever it's doable I think what is I think that technically it would be ideal to do repricing set self as we can but then there is like social aspect that we actually do screw up for people when we do it needs to be done a little bit oh oh yeah I didn't think actually like we should actually use that to advise and hard work but these like check for yeah the question yeah yeah I've also missed something like unless we need it I think it's not worth to do and for computational on one side coming up distant wall probably mostly triggered by usually an appeal realizing as though people were concerned that it's gonna it's gonna break the contract or its expensive Widow Sudheer seems to be a really big big clash between those people who ride the clients and try to ensure that passes are so much reflective to what is happening compared to the people who use I mean you can't really hope in to like yeah I want to use some more expensive going to deploy after the new rules I think you can blackberries plus no I mean you're responsible for whatever but they'd like to change something that affects ploy lately it doesn't it come down to on for the new version is calling a contract that you know support with the over it so it's running as he answered yeah and it's difficult like if you have it if you deploy an old-style deployer contract deploy any contract is throughout it and then in the new world that they deployed with me that's a good way yeah for the lower gas price all the really cheap competition I mean you assume that say the new version which you can often would have things which are cheaper and things which are more expensive and they will often be discount somewhere cheap right but the things that are cheaper and accomplish the same thing as the they're more expensive in the all version like you know instead of reading data for peso of you created from default data you know it's not open but it's not a cure but it doubled up guys can you mark yeah so there were a couple of different possibilities for business and one of them would say that you can select the version you're deploying and everyone was saying that you could only deploy the new word check you can deploy the other complications for when you within the contract and already deployed contract if you want to create another contract can you define the words from there what should it take diversion of all the contract you have yeah then what happens when you call content of different versions what can it will sell out there yeah well I think that was figure out decided not to actually and then I think man think it was fully resolved what was probably sold is the current set of contracts deployed where should one we're doing two and if you like boys I think that's only yes but how you deal with versioning you know what I mean what scares me about version is more like I mean this one kind of yeah what scares me as if they're you know would be a new version at every hard work and then also we have five inversions that run concurrently that's just way too complex so really the one had one new version and that's one where we continually update you know how guests cost of anybody assumes it's constant well you know that inversion it'll break you know get rid of the 20 [Music] because you helped the enactments to the new new rules yeah I mean this recipe is ideal with me you know there was this other aspect to it that there might be two different kinds of gas changes there one set of gas changes is where where you want to make some features better and compensate against some other things but the other set of changes is fixing something against in the u.s. vectors so something depressing issue which you cannot just do in version two on the new version of one's own because you can already exploit the conversion one and people anticipate as possible that there are various outputs whose gas prices could change by like order of magnitudes in the future because in my opinion in regards to this proposal where a smart contract developer could opt in to a gas system where gas prices do change I think it would be like a code smell if the code you write today is already close to you know I hitting the block of gas limit and sorry and and so you know your your transactions should be much smaller than that in general and so the changes are marginal I think that we find for most developers but I mean is it possible that certain op codes could have their gas prices changed by worse magnitude rather up or down I think it's unlike it happened actually I think esto was a 15 and raised to a month crisis other in order of magnitude cortisone and as I was going to go up to big Rome - uh yeah but Estelle that's an order of magnitude from the first one today and if you I mean softballs DBM one benchmarks this morning then you would see there's room for like order of magnitude price changes yeah I just did some research recently just looking execution times from zero negative instructions and you can say like well the size dependent instructions and they're being crazy so I expect that that's the price over time will erase the community yeah me too but we could go down I mean it's like morning because because goes so I choose to stay for a minute feels like because if you had some assumptions like everything else that's cheaper than like the single occupant stays it might be with my adventure language dictates everything before which take us between it is yeah oh yeah and that transfer to this type of issue freakin parts have been that cheaper you know I mostly cook like talking about like not state taxes if you want to lower the confrontation of goods so like this is two options like rice everything cup because we don't have like actually lot of space here because this is my tenth of them like I think there will be a lot of issues to the existing contract to tell that because all of these like cars passing two different cones and so on so actually you can like lower them this makes the subject of this fraction [Music] there was a yeah so you guys I have a question related about so um where are you talks about the storage layout because what I'm trying to do is how can I get X product of a culture like inspect this product very easily I think right now you need to go to the initial deployment look for all the transactions get all the traces of the contract and then you can do any computation or is there any war there is actually I think it's not working Phuket that there have been proposals at least on solidity that the compiler would ever demand off the storage and you would use that there has been a proposal nothing has been implemented yet but this might happen itself they're often Depot methods satellite dump the storage of a contract address I don't know America there's RPC yes there is so and it's appropriate only on the gathered clients I'm not sure rain storage range at direct and storage range allows you to in the storage of a contract I don't I suspect that you won't get it from my Fuhrer but no no - probably not I don't think they expose me you can't you can have their try sentiment no it's not racist it's just the same courage slug but it can't buy a rule which you seem to say now excuse me yeah it was it was implement living gift for the use of a dress and I mean you want to know yeah I want to know that they only like the solidity to visualize it so it has to be I need the input is the contact address and I want to get what do you want to get into trailers that are there at the moment yes what do you see in the contract storage ranges yes they went like that balance mapping that we need to know so they location the map ends up passing - yeah you need to know it both feeling aesthetics partially up yeah like what you want to remix has the end of that you want to see what exactly this what's these nothing that's what stores rings but your conflict versus conservative original key right because your hash the key overlapping so if you use the there's a pre-image tone as well so it saves on reimage keys and I'm remembering all this existed that was something was bugging me and I mean now it's a feature and and remixed I help them with the picture with the historic mapping so remix has this lake state yet to show the you know the state members of mess Distortion keys to the solidity variable names yeah [Music] editor question I'm using an di interview - for my contract and it's still experimental right what so the main reason why they been good army - I hadn't been properly really easy as non-experimental is that we're still fuzzing it a lot and the fuzzer wasn't prepared and fully to fuzz all the complicated cases for the event could it be - because there's a lot of erosion areas so that's the main reason basically and but for the next breaking over these years to zero it's still very experimental but at least I'm gonna need you to warning anymore but it shouldn't because and maybe it's something experimental and there was just talk about that fuzzing effort right yeah [Music] it's a good idea to by default have contracts so like from my perspective like I truly horribly hate this one because all the calls because whenever I implemented khasim ABM I do it wrong and I did it like like 10 times already and every time I do it it because like all the precise order it doesn't specify enjoying page it when stiffened is not it like when you actually check the gas and like if it's there are a lot of conditions in the call yeah and I think there are cases where you could do them different order in the test suite was the same successfully so I think it's because but anyway some context around this so there's one group of people will think that there's problems that I cannot send money to a contract and prevent it from executing code I cannot sell it zero gasp and some cash and then there is not a group of people think that any time you receive ether it's Rita awesome that you can execute code and it should always be given full gas to do whatever it wants right now I think even for 300 transfers use less time a middle ground where people say there should be it should be allowed execute code but it should not be able to do state multiplications and that's kind of where this 2300 comes from the current gas data because that was sufficient to a log operation or two maybe even a stove but not actually to the state multiplication and right now is 2,300 thing is kind of ugly catch-22 allow a bit of execution no too much execution not allow state militia so there are different ways that this discussion goes like one one group maybe wants to do have a special call on some money and do nothing transferring the group you might not have ecstatic pokeman value and logs so the receiver can do that can consume infinite number into the gas but he can really only do like aromatics log operations I think that where the people are different we want this discuss which one issues good what is the reason people want to have good executed when they receive and there's some reasons people want them today in the first one I believe they want if they were guaranteed to be yeah to have the code executed and the one of the main reasons people want that they want to be checked and coming transfers if the contract is not supposed to score money because if you don't do that and it stores money and you don't have a way to between it then it just lost the second thing people want to do is have a log and be able to catch but still you have the option of doing it through this method then you know it's clearly now absolutely calling contacts to choose whether the country calling in how the other lien takes you to code enough and then it seems like this yes Stefan doesn't still serve a purpose because it doesn't enforce the invariants that the convict you're calling into can always execute code is this case read count yeah no what is that devious consistent which was a safety feature and probably analyze you know the chain has treated see how many times that's kept people from burning into a condo attempting to set it to contract that what those to receive it I wonder you know how many to people how much easier it saved throw it with quite a little argue that this is like that [Music] yeah my turn the past in regards to that some people proposed I don't think this would happen at this point I proposed that ether native ether as in the ERC 21 that we wouldn't have this like penquin asset it's a special case from like a team and developers perspective is there any reason that either that's have to be was nominated thing or is it theoretically possible that it could be an ER c 20 contract crazy [Music] I think yeah wrapped wrapped Eva I don't think there's a way around to first not look but for what the original vision was for reading let's say they're like two endpoints to different posts to the discussion one instead of the ERC twenty stuff so we've done what people do is as rep Teeter and you can actually write to a contract in the way you only use the years of 20 interface reject all the transfers and then it's it's a UX issue that you require users to use crafty turkey on top of that it also has an extra cost and whether you want to pay that costed so for that there were there was one proposal that maybe the red eater should be kind of versus standard system contract with people and it would be practically feet to the other death and users wouldn't need to mentally transfer the interest in to disrupt your contract you could just through this extra contract you could handle your ETA as if it were your C 20 but it wouldn't affect everything else is the beginning of your question why is eater dis dis native thing cannot you just make it more flexible and these other things there was a proposal long way to go for it can't abstraction to it was just a first step in the process to getting rid of each native thing with in theory you could use other things to pay for execution but that is a really long process and it stopped at the first step it never got so the building it's basically the base layer it's actually what we you exist you like if you don't want you to use it to use rap to end whatever you can't fold the tools or Robert what are you interactions Mississippi you can get quite fall the divers Martin what do you think about this idea of having test the special contract which gives in the air see too many but basically you wouldn't need to transfer your money into it is it good [Music] something that I need to think about some more [Music] [Music] like something why is it that like inside the EPI look back more than 256 blockages because the light clients wouldn't be able to dougie I mean it's it's a pretty to round them number though yes I don't know pretty big but it had to use a light clients as far as I know download all the others that doesn't verify everyone maybe like every just random number just a minute it's higher yes it was it's very motivated yeah so your professional wine up up codes and I think even the the initial set of freaking christ-like the sheriff f6 rapidly along with catching all those words and then those accept a check we went out to this new concept of recompenses kitchen and he was left to kiss it would be more like it except obviously the address basically online so what would be the benefit having them as well so to me like people exhausting the space my big deal it's mine ya know it's like stuff feels like problems yeah I don't know from this point I wanna contain much concern but I I so 5° like that's not the issue at all but I think I was corrected in fact it is so he still has next but well there's no white water on it [Music] [Music] [Music] like how do we know about the space there's this interesting VIP or what Gavin - instead of having like oh yeah exactly instead of having six you know sixteen different types of calls you have one and then it's a parameter or what kind of quality one going to do seven reduce the space yeah so while you also get to levy on one there was a question whether there any other optimization student apart from what to expend in the morning yeah number of damn but they're kind of like like the growth engine named off so this like I don't know if I can even start but yet reallocate stock yeah yeah yeah we can simplify that because of the block of instructions yeah but you can also calculate the desire you are yeah and there were the morons in the work so I thought it's the most important model but actually it's not I mean so I think good news like the integer implementation I think we actually change the integer implementation we hire from gusto and index and it's like three times so things change Mark Martin brain insecurely idea yes this is definitely faster than the bigot library but in practice it doesn't make a difference no because when even if you make 10 times faster if they are thematic the contribution of their automatic offs to the actual execution time is only this portion it doesn't matter this so you were benchmarking it against like the full Saint yeah right that's it but if you run a numerical benchmark just a traditional opcodes you would see a big speed up yes so if you would have to deploy those changes and habit actively we could reprise those as we discuss it of those thing could be get rid of some difficult levels of things well ideally you want people to be able to like write to me printf function to rely on the the client is to tonight oh yeah there gets the very impossible in terms of displacements accompany against what treatment miles velocity excess are over it's a fail on for so many staff yes it's unfortunate II like that but then [Music] one of the problem speaking Francis people just want to get these features and not enough to to wait so they cannot do many of these things on the again today so that's banana have to ask for somebody to compose it and be lucky to be accepted and then going too hard for get some points and give and be on the sugar veteran goes into the heart from two weeks before the hard work Evans yeah okay so you made some benchmarks and I think you made some benchmarks for some existing people who has maybe some proposed ones but are there any one switch with like EVM one or anyone's which could be just done home with India moment without having them specialize whether in such cases we have only to me it was well I mean the thing is we have to be careful about power metering you know those new codes and so we don't have the studies done to show that we can safely meter them and get the full speed up so that's it's going to be done if we're optimistic yeah I think it's that's when show would be sufficient to replace the Green Mile but cricket they asked was did you in a way did you check where the gas went in I guess when to computational answer what when things to memory sheltering of theta and [Music] No so we haven't done any gas analysis we just did the you know runtime fetch my runtime on EVM one that stable okay well this is way less than the Hartnell socket so then it should cost less than you know but that assumes weekend you know optimistically price up codes and that there are worst case runtimes and EVM once nowhere where we have to be more conservative with our embraced them [Music] there is the way to actually start you can also see the some calls I mean this minimax again except rates some calls and our our process on in this course task image everything other tasks travel costs and this think LLVM and documentation and attached documentation that describes many of these tricks you can disable to go through for frequencies so twice on the like base map which formal app don't make it like four times slower like yeah like we mostly interested in in my difference is writing and many other things but I also got checked there the variation of extender [Music] but I mean that's the easy case the hurt is when you start dealing with the i/o operations yeah that's I'm not striking at all thank you for discussion let's finish this [Applause]
