Hashing It Out
Hashing It Out

Episode 54 · 2 years ago

Hashing It Out #54 - Ethereum Geth 1.9.0 - Péter Szilágyi & Martin Swende

ABOUT THIS EPISODE

https://blog.ethereum.org/2019/07/10/geth-v1-9-0/

Now, entering and kind work welcome to hashing it out POTCASP orretouhkd to the ATTECH intevators behind blocked in intrastructure anddecentralized networks. We dive into the weeds toget at Wyand how peoplebuild this technology. The problems they face along the way come, listenand learn from the best in the business. You can join teir wreck Ocen, backto verybody to hash it out,as always on your hose Tuckecor, petty my trust, O host, Callin, cuchet, sayhello. Everybody Call Im Hello with her bitty Collin, a tosay. We were going totalk about ges. That's we have Martin and Peterr with the get team to discussall things. Guess the recent mrass of release of one point, nine, thefeatures within and then just kind of talk shop around what it's like tobuild. Um A timimplementation, eclineapimentation of rank sensism. All the things inside guesss that that makethis network run so woken o the show Um. We start off by thinking allowing youTho, thres, yourselves and so Martin and Peter. How did you getinto the space and Um? What do you do? Matin go ahead, okay, yeah! So, as far as I got into thespace, so I was iven doing programming and information security for a number of years and got kind of Um Yeah. I was working at a consult,Ran Thenas, full time, employee working withinformation, security and application security and got kind of bored withthat and discovered this whole new atarium thing, which uh was so awesomethat ad blow my mind and I got into it by during porknine. Therewas this bounty program R, where we could um get get diwarse, profining, concessi Boabilities in the clients, and I figured how hard can it be and it turns o Elpri daren't difficult, an gulped me to reading all a sourcecode for AEF and for well. It wasn't called ilest or that time, but shewould be a therum on the Pyon client and te go there appliant to try to find a scrupon case, and I kept doing that and just learning thecode. I learned besitill, don't go programming by anthing th the go there.Cod Base and yeah one thing let to the other, and later on after the Dohak happened, the foundation was without the securtsecurity person and dedicated security person h. So I that's how I got intothe foundation and then I kind of gradually just more and more merged into the go theremteam and gradually started becoming on o the developers of the clients as Peter he he likes to be. Thank you for beingmide. So as for me, while I came from a more iless theeconemic background, essentially I just graduated university. I was doing myPhD in Um. I was mostly working on a decentalizedmessaging system and Um. While that was kind of cute, it was open so project.You can probably find it if you you're reary curious, but it didn't really goanywhere, mostly because I can't sustain it. So I started looking forauternatives and essentially I was trying to find t e job that is somehowrevolves around distributor systems. I I wasn't really hoping to find thesecentralized systems and I was really hoping to find something that actuallywas wittuning go because I was a go. Fana tcket that time and one thing liketo the other I kind of contacted Jeff and he offered Meu. I think it was TA trial Erio to t tryto get on to the gaft Tam and yeah from there on. I just got stuck to the GAF tem, andthat was about four and a half years ago. So it's really interesting that, from I could say that Gothearm is my firstactual real job that I ever had. Although I did do internships beforethat in various places hell of a first sob I'd, say: Yeah O got to startsomwhere though it seems like you have the background for it so and you'redoing a great job. So I appreciate it so yeah speaking of a great job, getone point: Nine fourst. What a monster! What's a o you want a back of a bitback off,...

...is Gab ate grate as like what is it dobut let'St for those Thot. Don't know everyone knows what it is, but I wouldrather hear it from the Horse's mouth on what it is and what it does yeah SOM. It's re interesting that Umevery time we do a major guest release. One of the first comments alread it isthat what the heck is gote. So I think it's a valid question, especially Sensithimeis kind of growing, so in short, etheremis kind of thisdecentralized network of computers that run transactions, etcetera, etcetera,but m. even so, there are a lot of components,a lot of dapts that you can use to interact with a network, but there'salso the network itself that somebody has to run it. So if you, if you exessentially, want to access yourlittle Deatfa Mathamas, that's just a browser and that browser eeds tocommunicate with something and essentially that something is Dey theoron network and get is one of the multiple programs that that sustains that that, basically,that runs that networks it sirm. I guess that's mostly it sa just a lotof notes in the net with the software for for the for the network itself, I'e called that a humble introductionto guess, but h, it's a good start. Um, okay, Co, nowit's, a good time toask that question. I'd say: Hey Man, great job at one point, nine GEF isawesome. You guys do amazing work. I appreciate you thank you for being hereand thank you for everything that you do now. Thank you. Actually, I got sanother sidequestion based off what you said so without Geath is there inAtherof network? Yes, so what h? How would the networkexist without the client so well? Goa Yeah, so, like yes, parody existedafter gas, but like this, this is kind of the thing that kick started: Ain'tit. So after t he beginning there werethree. I would say there was ipy BA there. They want t gowith ther. The was Pio pyathon. That's right! I re. I remember CPPN Pi nowOkcol and I think it was kind of forty four to gift CTP, an twentypython. I don't know I mean Peter Di- have a better figure, but itwas so to that of ffect right honesty. I din't give Adem about that March, but but but yeah. So so in the BenninThet, with we out of those Um, there is really only guefs. I meanSIPEPEA therum kind of still lives in Aliv, but it's not being used to lockon maynace today and WHA. What I specifically wasattractive about: Go over CPP which, by the ways more common language and has alot longer history, though it's a lot more insecure. No, it's not. Naturally it's notinsecure, but you can make more mistakes in SIPOSPLASA. I Bar M. isthat what made you gu? May The community KINDOF get behind death andgo as a language? No, no! No, if you s essentially, whenI joined thetherium, it was in April twsand a fifteen, I think. Essentially, then python was already.This kind of research client, which was kind of slowish kind of Wel Italic, washacking on it, but at back back at that point in time, mostly everybody wasusing SIPPP and t en ther was this underdog that tried to try to take aslice of the pie and h. The first thing that really struck me is m that I wanted to compare some features.I was working on the networking protocol and I wanted to run aSIPIPINAT and te Gono than see what the heck is not working and after half aday I gave up because I couldn't build it. So if you ask me that was the nail inthe coffin of CPP therium that it was semiimpossible for a developer andactually I was pret previous, I was developing a CPASTA, so it wasn'tsomething new and I couldn't build it or it was really extremely painful tobuild it an then. I think this is okay. Ok, soit 's more like a design choices early on in the project that kind of led t itbeing difficult for developers to actually get on boarded. Yes, so so I would say this is from myperspective this. It was probably the biggest reason why people started usingdeath over the other ones, but the other reason was that Um simply go witha newer language, so we could ship features faster and then it was it was just simply for us, it waseasier to develop new stuff and then it was always a bit of pitahead ofcvpetheum after it caught up because originally CPP was the lest clindGotcha. Okay and it's come a long way...

...since, since I firstusd Usedo doN'tnRember what the first version he used to was Um, it was a long time ago Burg. It's now up to one point: Nine and NlieNiney, O one as yesterday, Oh for real four hour, and it's got some teachers. People beenasking about for a very long time. Most significantly is the theperformance features dealing with h sinking times. So can we go over some of thechallenges that people are facing prior to one point: Nine with regard tosinking and dissise at sore size and some of the designe decisions that youmade to make fas SINC, faster and Archi? Think, like tremendously faster, aswell as reduced some of the storage sizes on on the disk wow, that's quite Thi Bigela! You tellthe whole story. You want tohear sear for the beginning yeah, so I guess th the reason why oneline too half a year and the reason why there are so many features in it isbecause we want to do some major database reorganizations, and it justtook that much time. So usually we try to ship every feature at the moment.It's done. We just merge it in our shipherd, but this one was this wholedatabase wea got so masty that we had to postpone and keep postponing it yeah it its also that affect that. Ifwe know that feature a requires non back was compatible day to BISUPGRAD. So we save it for a major release and then Wen al that Ay f AHB'sgot an that well as well, so we might as well do that one at the same timeand try to get all the known backward compatible changes in so it kind of becomes this big malkinof things thatbe o ship. At the same time, also yeah definitely like the best casescenao for any any set amount of features that are going to breakbackwards, cobatability a just ship them all at once. You only have thebreak at once so because and as people run nodes Um within the network, youwant to make sure that they're staying within consensuns of each other,especially on block changs right, and you want to make sure that IIF there is a breaking issue. Trang to the point, like the maincrrucks of running blacchad nodes, it's used to be very careful when breakingcompatibility, especially maybe with consensus rules. This is more adatabase issue, but um any any issue. discrevancy between clients, Omthenenetwork could lead to drastic consequences. Did you have any problems or feelingslike that could be the case in the process of trying to do some of thesedatabates Ucrad. So I wouldn't say I we weren't reallyafraid of consensis issues. What we were afraid is um kind of like dataavailability, because I suppose that we change the database formats. We deletea lot of stuff that we think are redundant and in the process we kind ofmake a tiny bug, which kind of deletes something that it shouldn't delete, abit more information than needed and then all of a sudden you lose that lodeor that note may become completely useless because it's missing some data,but the only way to them to fix it is to do a resing which is really painful.So it's Um I mean the fallout can be fairly big W, for example, if you havesimple concernhis issue: okay, simply that sounds a bi wear better. If youonly have a concernis issue, then depnd. If, if it's only in the new version,then maybe you cantrive, downgrading or or if I it is a legitimate concenseissue. We can issue an you update and then you obdate and it's done, but soit's fairly fast. However, if we manage to screw up the database, then gameover. You have to rethin that can take depending on suppose that you'rerunning an archive. No you sink for sixty days, and then we ruin yourdatabase you're going to be rudibest. I think what may inform the the remainer a lotof the conversation after this is thediscrepancy which is this is often Um, heavilyness, miscommunicated or ormisunderstood, within the entire Blauche Nico System, the differencesbetween nodes and he theorem, and why? What thediscevarcy beteen a full ligt node and an archive note and and why people getthat wrong. So much okay, we'regetting O it into adifferent topic here, but I guess this: They somewhat do touch each other. So Iguess I guess there are three Ma major notesin in Theorum, one of them is called Ariv now most people are the full load,and then you have light nose and a lot...

...of other communities. Tri always attacka cerum that an archive nod is humongous and they are kind of rightAna. I notice, I think, around three terrbites currently, but the point ofan arc. I've knowte is that it's kind of almost a block explorer, soanarchevno not only has the entire bloctionavel available, but it also hasall kinds of various indexes. It can qury arbitrary data in the past, for example, you can trace transactionsfrom the past. It has all the all the states so essentially t', like this mini block explorer that just needs touser interface. Onte, maybe not the fastest, but it is a fool. It cant beused as a full block explorer, but you don't really need all that data to runetherium and the holy therum database. I mean the data that is inside thechain that is significantly smaller and the full note is is so compared in archinote a Fullno,this kind of similarly anetheral node, but insteadof keeping all that index or that data that allows you to explore tha pastchain, it discards it. It still retains the chain itself. Just doesn't retainthe capability to explore it after a certain point of time, and this one issignificantly smaller and one thing that I would like to emphasize- thatfull notes still maintain a lot of indexes T to make their operation fast.That are unneeded. For example, we could? U. We have a feature pendingthat will be able to cut down a further Pannin gabytes from the state databaseof a full note, and it will still be a full load with every functionalityavailable. So it's T X, yndex they're, talking about yeah Yeahso, the INDIX is so a Usei can takea hash for transaction and getting infolved when that trosaction wasexecuted, an Wald Block and stuff interesting, the oher I, as going Tacurrious about how you get those. I guess you can continue with the lightclient. That's US basically not colding the blond chain, just all the headers a yeah, so so that I find is it kind ofrelies on a full note? So it instead of retain the Chiney just heap theheathers around and then whenever something it needs something. It knowsthat okay, the heather, contains a hash and based on that Hash, we can requestit from arbitary nose and we will be able to prove whether that data thatremote note return is valid at isn't valid, so alitind I's perfectly secure,but but it e realies on other notes to serve the data. Finally, for one point:Nine you're, intoduce concept of the ultralie, glant or or ne shipped ttheconcept of the olcanlighe client was the difference there yeah so Deri Tin. That was mostlyshipped by status, so they were working on it and the idea was that, with thelife client to validate the headers, you do proofor work checks, that's kindof howhow. How blocks are validated tobesideestate transitions, but the problem is that in a theorm, the proofof work is expensive. I mean it's really expensive so to generate the the data structure to verify a proof ofwork on a powerful machine. Currently it takes maybe three seconds now. Threesneons is not much. That desastructure is valid for Idon't know five days, Ithink so three seconds out of five days is is nothing but, for example, my MobaPone on my Mobil phone. It takes about two minutes to generate the same datastructure. So it's it's kind of painful and it will blow your battery out ifyou, if you keep doing poof of Roqalidati errifications on moreleaphons aon the Autora Life Concept, the idea was that instead of Um checking the poof of work, you canfigure. Maybe five trusted servers, and then you got the digital symeter fromeach of those fire or fight servers. And then you just check whether all five servers signd the same heather,and if yes, then you're happy and you assume that they are correct. Of courseyou lose you you massively. You lose a secure to this pan. But, let's suppose,if one of those servers is cloudclar, the other one is Infura. The third oneis status. The fourth is Etina Foundation of fiftys consensus thanwhat, if all five of them collude to screw you over, then I mean it's gameover anyway, you get a much more serious problem. Ay I just a just want to Ivert back the originalquestion, because I think that's kind of important and on how we actually manage to do theperformance we improvements in in Gath. So I can have mentioned that M. There's the difference betweenarchivnod and the ful note is that the arcavinet contains a lot of indexes alot of t data whose Sol purpose is to allow you to find other datafest and h. One of the main features ingessone point: Nine was that we actually went over every single index that wemaintain or everseen single, additional...

...methodata and Tryin to figure outwhether it is indeed needed, because originally the idea was that okay letsmake Folos as fast as possible. So you can quridate as fast as possible, whichis nice, but as the theorem grew you kind of realize that Um. Maybe it's not that important to beable to create somedat and sing rest, whereas it it might be much moreimportant to to run longer to store a lot lass dataand thatsee. That's an interesting thing for me Ho. How was that decisionprocess executed, m meaning? I D 't have any data points? First of all, arewe looking at here that you probably were trying to evaluate just T, give usan ideal scale? So so, essentially, I think. Let meapproximately we're talking dozens, we're talkinghundreds so, for example, one of the heaviestthing. So there are two extremely heavy things in the database currently anamit.The states try, which is let's leave that for a moment, so therare about maybe three hundred something million data entres for the state right,but there's ane another one which is really curious. That's the number oftransactions so and if you're may not currently according to blocks out,there are about five hundred and six million transactions. THAT'S A big number! That's! It means that if I just tore one bitefor every transaction, that's already half a Gigabyte, no owwait a minute,though so you're talking about like wh. When yousaid the datapoints, you trie to figure out what you reduce. I'm talk, I'mthinking like in the model of of as single transaction. Is that correct? Soare you having like thousands of of data points in these models mil like what o you e is that is thatan accurate way of understanding what you were saying you mean how many data points weretransaction yeah, it's that kind of. What's what you were talking about whenyou said you were trying to go through each each day at a point and figure outwhat you could kind of reduce. It's talk about the model of the D of Thetransactionly. This is wh t this is watthis is how we're storing it in ourinner in our chaind like Ye amisunderstood. So, for example, with ta transaction, you can store a couple of information. Obviously you have thethe Hash of the transaction y have the content of the transaction. You havethe receipts, but that's a different story, but then, for example, a whole lot better, the just as an explanatory note, so there willalways be. I mean we have the block and the blocks contain their actualtransactions somewhere, O, yes eyes. Ye Yeah got it okay, so th.The actual transaction emselvs, of course, O be store yet got it tats forvalitasho purposes, but whenyou're talking about the data set, the indexing essentially o the databasethat that indexing has overhead associated with it. So, yes, you havethe transactional data, but there's also the relational indexing thatyou're trying to do so. You COA do like historical queries. Like you mentionedearlier, Um Ann. That index has a overhead on discspace and I'm not sure how it affects sinc time ut. It appears to Um. So whatI'm kind of curious about 'cause, I feel like from the trancs actually Di.Couldn't you just build the sink like yourself? Actually, that's something Inever thought to ask before um go ahead, so the thing is that not supposed to be?If we have the blocks in the database Tan, we have the ROC transaction, butthe problem is that users generally like to say that okay, give me thetransaction with this particular hash, now te database, if I just tor theblocks, as is the database ar abtoely, no clue how to find that that Hash or or which block to lookinto so our index is previously contained at contained an inclusioninformation so for every transaction hash restored that okay, thistransaction is included in this block at this particular offset. I meantransaction offset at this particular blockhash et Cetera, theyit makes sense,and then, if you look at it, so if I so our inclusion date, I think,was block number blockhash transaction number. I think that's IT and similar one for receipts rigt. Yes,I think we use the same thing, and so you said you went over everyevery one of these dataports a determined. What was necessary and whatwasn't necessary. And what did you think? What did you decide to removewil oget it okay, so so essentially for, for example, or these transactionindexes we had the block number, the the blockhash and the transactionnumber, but you realize that, while the block number and the block Hash arekind of the same thing...

...in four cnonical blocks, so every blockthat is older than some number. If you start e block number, that's enough!You don't need a blockhash, because you don't care. If, if I know that it's inblack one million yeah it has whatever Hash, I don't care so, for example,that immediately I can cut off thirty two bites from this index: tery tobytes multiplied by five hundred million that sixteengabites of the an just from that one little that one little datapoint thewhole thing improves that tremendously a astastically you cut off thirty twobite, you gut off a single hash and that's thirty, six kiks! Sorry, Sixteengigs! So these are this. Why? I want to emphasize how manytransactions you have, because the data that you can save or waste isinsane if you, if you maintain something for so many data points and fotother aspect of of this dealingwith such a large number of transactions and then indexes Arround,those transactions is the performance of the database itself. Um. You feel like the early early choicesof how you've set up t e model of these databases was Um. Maybe not I, but was it a good choice and have youlearned a lot of lessons in the process of trying to handle so much data andretrieving so much data over years? Well, there have been some, for example,there Havebi some redondancis that we got ritof over the years. A have been,for example, lock filtering was implemented with some mitmapsoriginally, which turned out. I mean it looked okay when it was implemented andturned out to be horrible, an a current Manat scale, and we completely threwthat out and replaced it. So I mean I don't think it was designed ina terrible way, but it was designed for for a different world and nobody reallyknew in which direction if em will grow and then we we do. We just need tomodify the the storage to keep up with whatevermain nast direction is, for example, I think I brought it up previously. One thing that that really stillbothers me even now is that five hundred million transactions, andcurrently a full note, maintains still maintains a maping that okay, this fivehundred million transactions is included in whatever block number andUH. That might seem like a really obvio. I mean a really trivialtiv thing to saythat okay, Geth knows that transaction axis in Blacky, but knowing this singlefact takes twenty gigs of of data storage that you need to storeon les SB annow, for example, a feature that we will ship either inthe next resor, maybe in a couple of releases, would be to allow you to set the Bost recent block number for whichyou want to actually store this tatfor example. Realistically, if you run your own fullload, unless you want to actually dig up all the transactions, do you reallycare who did what three years ago andwhether transaction harshat was included three years ago that you canfind it or not? So most people won't care. So you could in theor say that.Okay, you only care about the last one months worth of transactions. You cantig up any transactions in that interval and anything older. You justwon't find, and I an actually specia is this partof the stinking process, or do you already have to have the full notebefore and then is this like part of the a feature of the freezer which alsowas release Stiopitnine, or is this a totally different future? That's goingto be released later that allows us to sort of pick where we want to startsinking. Is that what I'm understanding it's completely different from theprizer and everything? It's I independent of sing time. So this isjust an index. So the Nice thing about t is that at anyarbitual point in time you can expand or contract this intex. You cant saythat. Okay, you only care about the last thirty thousand blocks and then we will dynamically reduce this indexuntil it alld unneeded data. But then, if you realize that Holly Shit, I docare about the past one year, then you can change a command like flag and thenit will reindexthe missing data without needing anything from the network. Ohokay, I got it. Oh, that's great okay, cool said, maybe interesting to kind of glike a quick explanation of how um a node comes into sink in the first placeD and Fasally, you want to rebuild Um. If, if you're starting a guest, noutenscratch, you don't have any data, you didn't have to query all the othernodes in the network for information. I spy piece building the block chainreplaying the block chain, as it was once, was, and in the process of doingthat processing all those transactions and all the state transitions thathappen. That's whythat's! Why doing it...

...is so difficult for a theorium, becauseyou have kind of Art Li we have a lot more variability and how statetransitions can actually have it, which limits the UM resource devices. You can actually usethe duess and that's why making these changes in having all these configuraesand optins is important is because people you would like to for people togo, go run, Um, semisecure or or secure nodes on various commodity hardpare andan it's very, very difficult to do this, to provide all these options and speedoptions and store. Drops n simultaneously was that a question otice like I thinkpeople don't quite understand how people thild like from the start, toget to the point of actually having a full note, an SINC, a fornotand singhas replayed the entire blocchair. Well, I wouldn't agree with that: aactaly Nthat, because there's a misnomer going around and that Misnomeris wellsomething called R syntmode full. The singpold fool means that Tepreplace no from jenesis block by block until current head, and then there is a sinc mode fast,which is the default one that geth uses and anything which has been sinkedeither with singole vaster. Think od ful is is wild, be called a full note.I mean that's we when we say not. We meed an old which house the entire state and the difference between these twosimple fastesing good full is just how they how they reached that final, AhYeah, how they reach the destination Um and is count very conferintuative. Butbut that's what I think is a general ex except the term of a full node issomething which has entiresight so either sink by fastnalt or F fullmodeor even the Parat worpsing mode, its also full node. Do you gree hiter Yep, so just a timy expansion. If somebody's not not awarfor example, ful or fasthing, so Infos Ting, you just take the theblocks. You just retrieve the blocks from e network. You take a block numberzero one, two three four five etcetrastiquentially and you just applyone block after the other processing, all transactions and Um. The issue is that currently there arefive hundred and five million transactions which mean that it takes a shit enough time to actuallyexecute so many transactions. INSININE transactions are actually arbitrarycode. Executions and the the bigger even the bigger problem is that itdoesn't matter how fast it is today. If a ther will be here in five years time,it will be that much slower and that it will takefive years more transaction, so you're you're constantly accumulating data,and you cannot really expect people in five year stand years to just crunchthrough all the history, because why I mean if you'd expect them, but it's notreally realistic and then the alternative is thatinstead of crunching through the data, let's just assume that the blocks arevalid. I mean if we have currently eight point something million blocksthan there is a fairly small probability that block number one isinvalid, or black number two is invalid, so, instead of actually executing them,that's just trust the first eight million, let's just downlold themblindly, I mean we do verify proof of work, so people can't really give youcomplete junk, but let's just trust the blocks. Blindly, let's downloadwhatever the network says, the state is at the somewhat recent lock and then let'sstart executing blocks on top and if Yeadd binor clarification. So eachblock has a state roup in the block header, so each block, if you prepareFY the proof of work and thereby an and say okay yeah, I I I agree that this is probablyacanomical block. Then it has a crypographic hash o what the stateshould be at that point in time Yep. So essentially, if we trust, if wesay that we trust block number eight million, then we know that dark numberBillian has eight million has a specific hash and we can a sign up theSpecif Root Hash as the Hash of the state, and then we can download that state from the network fromarbitrary untrusted peers, because we can always verify that the result thatthey gave us is correspons to that particular Hash. So, as long as we arecorrect in trusting that particular...

...header, everything else can becrypographically verified, so we can reconstruct the entire state and proveit that that corresponds to a specific hader. Afterwards, we're going toexecute a lot more blocks on top, so you have everything was funky andthings will immediately fail, but Um, but we still do verify proof of workingadvance. So the only way, for example, to attack fasting would be to to mindquite a large number of m of blocks, accurrent IMENA difficulty. Soessentially you would need to mind, I think, sixty four invalid blocks. Imean sixty four valid proof of work blocks. That's that's a huge amount ofmoney to waste just to to attack somebody who is sinking at this exactpoint in time, because if they are sinking five minutes from now they needdifferent blocks or if they sink five minutes ago, they needed differentlocks to be attacked. It's unless you have an enormously network capable of minding at at leastsixty four times the capacity FITERMENA. It's it's almost impossible to pull off thisattack. Yeah, that's not happening, I mean, maybe a stated actor somewhere.You kno could probably pull it off, but it would be also obvious to the network,like somebody will pick up on it and then Yagecot an then kind, O devalu thewhole thing Um, but anyway there's a lot maney to cover today and we're kindof on a hard cap. So I I'd love to go over freezer and CLEFF, and I'd like totalk over the graph ql decision and God there's so much of uncover were throuat of time for first maybe five percent of the boy I realjus wane UN, evercleft EAODT US base to stand on before we went on Yeah. I really want to coverclafs um a little bit in in the Wallet Situation.So maybe we could talk about what it takes to support some of these walletsUm like what what dis support mean. I think its G. It's just a question thatyou know I think people I avragely had. I kindofno understand that. But maybe you could explain to me when you say you supportdifferent hardware walds. What does that entail? Well, that that entails implementingthe driver communication over USB with H,whatever hardware wealt, that is tressor ledger and the h status cards. So I I think the questionI have. There is one of kind of like a designed question for me, as if theyaretrying to they're trying to use you um D, Why do you have to implement theirdriver cant there be some sort of generic driver that they couldimplement. So I, I guess so with horder valets,every wallet has their own little quirky protocal. So, for example, treuser uses protocal buffers on top of wesbs peck,that's low level, O usbepack than H, letger users, its own custom protocal.On top of Ir of U S, this human interphase, DEVICEPAC thats, anotherUSB communicationspack than the smart cards was theyare smart cards, so theyuse some smartcart protocal and there aren't that many protocal, but actually all hardware a in the themicsystem is a different ome. So Um- and I guess the problem- is that H,each of thes horrible, a support their own little tool that you can use tointeract with them. Most of them are some wel based tools, but the problemis that if you, if you want to interact with all of them at once, you wantsupport to interact with status, Mart cars and treusers and ledgers. Then youeither need to to somehow integrate all of theirsupporting to one umbrella project which, for example, what Micrip do andie what it does or but that's one base, because they theymostly support or provide suportfal web stuff or w. We want to go down theother path where we have native support and we don't din't want to depend onexternal dependencye, so we said set it up and will implement the actuall thelow level USB pro cause to speak directly to the hardbare. So that'skind of what you did is you built like a bridge for that that works for thesekinds of Walletss? I correct. Oh, so I mean w. We we not me but Heringo and other people implementedthese drivers, but h kleff is something actually a lot larger than this UM BE lilyintrolbup Cub! Please, please,please! Yes, it's it's good stuff yeah, so something we realized. Actually,quite a long time ago is that I mean GEF is a twenty four seven piece ofsoftware that you put on your note and you leave it there. It's Ol, it's aservice software and...

...one of the things that you have. Thereis te key management, PRIVA KISE managing ourherium accounts, and thesetwo doesn't they don't go well together. You shouldn't on your twenty four seven server, which tries to talk to as manypears, onthe Internet as possible. It would be good not to conflict thatand also have it being your top secret k manager managing all yourassets. So we kind of from early onreal well came to theconclusion that we should separate these two so that we could have totallystand alone, H, kmouter resigner. That is what going to clot, so it took tex. Basically, all theinternal stuff, that's Olready, ge Um puts that into separate binary that youcan run us a demon, preferably though in in a secure setting as cor hardwood could beanother virtual server. It could be another physical server Um and itshould expose only the bare minimum to the external world. So we can have anAPI and Externalie I, which does not takeany kind of password Um and it it doesn't rather return anything sensitive. So even if one I mean one of theproblems we have today, one of the the mainer problems is that people runtheir notes and they exposed the or BOC port and they exposed the the namespace for the personal namespace and we notice it because they make ticketson they go there and RIPO saying they g go outto memory and when we investicatethe stack trate, we see a it's going out o memory because someone ishammering it with unlook requests. PLASE Olook this and this yeah and fortunately ecryppting the Kaystore is hard onmemory. So, if you harer hard enough, it will go out to Mumber H, which isvery good thing Um, but with Clefh we wanted to removethe possibility of doing our lock by instead making it so that each actionneed to be manuly, approved, Togh, a Ui channel by the user, so any dat or Malitians use on theInternet to ask Taime or accounts or play sintus transaction. It would needto be nonually approved by the use of thin yeah. I approved to list theseaccounts, or only these two accounts. Nd Or yes, approved it tranact. But the problem with this isthat most people don't want to manually, approve every single little thing andthat's the UX problem and that's what led to us having unlook in the firstplace just to get around this svery unuseable, H, Cork, so how we sawthat in Claffis that we also added th, jobscript dungion thats. We we've beenusing him we're got for several years and made it possible to set upautomatic rules so that if someone wants to brouse on deths and always use Um, hehas one account that he always wantd to expose to that an he can make Ri Rightljabscript rule to allow that and similary. Since we have a full jobscripponion there, we can do more interesting things like or to approvetransactions up, which are below a certain value for certain contractsthat you often antract with, and things like that h yeah. So that's that's basically Clat um and the the way that it integrates with Gafis thatyou can tell Gelhey they start up using this external signer and then whenevergets gets the request, it would relay it it will. If it's a transaction, it will take the information as it doestoday, butfill with the the Nontudi the transact should have, and it will au tofeel good enough gas price Um, and then itwill pass it ont Clif, which has no no way to see what's happening on thechain. I mean Kafis just stand alone, it doesn't talk to other services, it gets request and it just tells yousa Hey. You want to approve this ousesays yes and Password and cleftSonis back to geath whic broadcast it to the Nutwork, no Y, misunderstandingthat and saying that you can actually on even a perfunction level. PorContract approve things in advance for signing. Is that correct?...

The reason I bring that up is becauseof integrated four bites. Ye Is the poor portion of the blog. So four bitesis a a function. Signature database. It basically just takes the cock of the Um uh function, signature and it takes thefirst four bites of that and uses that as sort of like a identifier, you know odds a collision very low fora function um so that you could actually kind ofassociate that with the actual Abi Format of that function. So people canmake calls and that enables you to sign at the function level of a smartcontract automatically Um without manual. Approval necessarily isis correct. Um Yeah, I guess so it that is actually not a use case, which weparticularly had in mind. The primary USECAS forhaving, the poorfor bysignature in Clif, is that Def should provide as much cotext aspossible to the users. So when there is request, hey you want to sign thistrasaction. They usually should not just see an opack bundle of data. So cleff tells an this request came intwo local holts from this remote typ. It came in Orage to to p Um I have when Parsin O data. I can see that itmatches a function. Signature called you know, transfer, and if it is that,then the first one is an intagar which would resolve to Blahba way you knowsoe can provide the use with as much contex as possible about transactionsthat are requested re lot. You are correct that the it would be possible to write sucha rule. Yes, O perfunction level, which coan be veryuseful for certain WELPS, but the question e have is I don't. I don'tthink to be. A rules today have access tofor by Databas AG, okay, so what you can still do isyou can still manually say it that if the the function siguature matchessomething then than approve it, otherwise don't approve it. So maybethat part still requires a bit of pibling, but in you could even nowwrite a rule which SAS that auhtto prove everything that istransfer one reputation, token from other, but nothing more. So you canstill. You can go into the details, but ABI parsing is not turally implementedso that that one requires probably a bit of dirty work but isdoable yeah. It sounds kind of useful Um. The thing that worries me aboutthis, though- and maybe this is where I just want you to tell me- don't worry 'cause, it's seemstoly like the client-might not be the best way to control that kind of permission, permissioning of things, but then again,like the clients, are supposed to be self cotained like individualindependent entities, which you know are a persons orparticular. I don't even know what to call it a particular users entry way into the ethereum space. Itjust seems strange to me that some sort of permissioning or approval of e Nialwould be client like a clienting and not like a trustless kind of likemechanism. That's kind of desentral a is that make sense, so clef is not part of the client poses.Clut is a a standalone k? Maager! Oh, Oh really!Oh okay! So it's like a 's tol that you could run along with you're you're,okay, okay, elthe whole point of clef was to please corecty. If I'm wrong wasto take the keys out of death so that people who are using the art pc, don'tcan't get access to them, and so you basically take all o permissionsassociated with key management that a normal go ith. Their impliant would bedoing and just expose it to an API where you can safely secure those keysand just give those permissions a recordingwo, yes and basically the the whole rulesystem was to make it possible to have the same niceUX that people have with unlock, but don't have the same kind of suicidaltendencies. That unlooked gives you I mean Yeah, O you on rid Ogy CR. I run aguest node with the wrong permissions associated with the network levelaccess and then give access to their keys ell because they want a better UX yeah. So if I can bea tee to it, makeit yeah and t the only existing way to...

...have nice used. Experience is to do unlok. mador accounts, og, that's horrible! Thi Tat actually brings me nicely, Othe like transition into like the change from Orothe Change, but theadition of grafkey. Well, API, as well as the ARCINC, and thatalso can't allow for a much better o their experience, or at least in termsof getting data or building Um Yu ise ontop of Fenon yeah. Who built that? What was thedecision processor on that? That's really cool and I'm really glad he didit. Love Graft Rill by thewise is superhap eced to do that so grafyard that was built byniclijasin. He probably he built it. He built it quitelongtime and I think he built it in January. Two Thousand and eighteen sogo figure. I took that long too much, but uh the. I guess the problem, the main problem with with the Arcicthat the filmship is that again when, if er MAS designed it wasincul designed for such massive contracts, such as these decenvizedexchanges or ens or stuff, like that, so nobody really figured that if will blow up so fastinto such a large number and then the API was kind of for these scute littlemasses. Thatee. This listtle bit of data give Yot that little bit of datathe apis were, for example, you can um Um. You can retrieve, U block you can', so is wornfully grangranuar enough, butthose that were, you had to do part a few quite a few executions of those, so itwas and really hard to to properly. If you had a complex quar, you want to getall the e Ns registrations that completely that' successfully completed the auction between two days, Blah BlahBlah. You had to do. Gazilions of tiny requests and a lot of data that you gotback was completely useless. For example, your curious witch block an auction took place, but you don'tcare about the miner of that block. You don't care about what other crasactionsare included in that block, but the artices still gave it to you and thisman that you have a huge datatraffic going fr m from gast or from the noteto your client that you just delete afterwards. You just don't care aboutit or if you care about more complexcleary than you have to do a lot of Queri. You have this back and forthback and forth back and forth. Just to answer a single question, andessentially the Graphi allows you to formulate your query: Seld the entirequery to gas gatagic executed pieces together the data and then send youback just the data that Youe actually were curious about. Thank you, fureal issue with that, ormaybe maybe a confetrible side effect iscomplex. Queries on top of Geath can potentially, I don't want to say Xaustthe system, but because it's difficult to retrieve information, not if you'renot running on Arkhive note. In some circumstances, can you imagine peoplerunning grafhcookres that then Liy basically just burn the note or or makea do a bunch of cycle to try and retrieve that data yeah. So it might bewell here to mention that people far too often expose or P C towardsuntrusted clients. Yes, the Internet and it's fairly trivial to dos any nodeof the well. Does it um? If you have access to the orpise m yeah, so you can do it biograph cl, I'msure you can definite. Do IT BYRBC Um, that's not hard, and it's really notsomething that we that geath can handle by itself in or if, if you want to expose it,then you need to have another layer of protection, for thatis I look at it this way, uh in a setralized world Apache, for instance, is a web serverand you can you can open up Directoris and you could do all sorts of crazystuff which could cause. I don't know you can you can you cancompletely make rules which would violate the security of your own systemand its up to the system? Adman and th you architect, of of howyou're building your R ifrastructure to make sure that your your your services and your servers aresecure Um, because Geth is kindo like an isolated like you don't need thisarchitecture, the architecture is...

...atheorium. People have the wrong, I wouldn't say all people, but I wouldsay some people might have the wrong idea of what security means and that alot all the security should be dependent on this application that Idownload onto my machine. Well, the application enables you to do thethings you want to do and if you want to do something, that's stupid, it'll,let yo and that's the same thing with a pache. If you install a patchy serf onyour system and you open up your root directory to browsing and writing anyw, then yyou'll have a bad time. SoI to me makes it makes sense that we stop Ij kind of look at these clientsless, even though they are. Clients is more like many web servers and thatthey enable me to sort of like not even host but just like access, Iguess, serve Deta sort of, but you still need to kind of protecteverything that you do around. Opening your r PCs to the outside world maybeput that behind a firewall or something like that. If you care Um, you know orusssecure communication PROOGESA already built into the system as muchas possible and lean on those, rather than lean on exposing something to theWhiter Network or building a a wrapper so that it requires a local client inorder to actually access anything. I guess Mi the difference between apatch and GAF is that the worst you can do with a pache is yeah servifial yeah. So that's what the Pesso eeds to takeinto into account on Gaff. You can say: Hey run this turn Al Look for me,please with three Gatilian gas yeah, but so the there's still a lomuch bigger diference in, in my opinion, between a PATCI and get so Apache wasmade to smoth random external people with data with your data, whereas Gatis kind of the imverse. Tat is kind of your old personal gateway into thispublic network. So I mean it. Death was not ever designedto be exposed over the internet or exposed publicly to random people thatyou don't trust. So the fact that Infura clouds there et cea are runningthat's kind of their problem and they there are lots of security challengesand lots of Deni of service challenges that they have to solve. But that'sbecause they want to build whatever business on top and they are. They need those fonctionality, but asan average user, you don't want to expose your get noteto the Internet. So from that point onward it doesn't matter how powerful graph cl is, because youare supposed to be the only one sending queries against it. Yep A and that'skind of the thing I was saying towards Yo in there, so I kindof fubbled aroundwhat I was getting at a little bit, but the wrapper park and the endstatus doesthis. Is You know if you wantta like if you want to integrate, if you want tobuild a desuctiize application, the best way I seem to do it is just don'tassume they have a no t already package. It Up, send it along with yourapplication, when they install that they could actually stall it locallylike they would slack, and then you've got what is espentially a standaloneability to to do this. Now they already haven't knowed. You should discoverthat yet yet yea, but the point is, is that m? You know it's T's. It's notmeant to leave your system. The the secure protocol is there for a reasonand you should use it and if you opening up your R P C ports to theworld, you're, not you're, not probably using it the wayit was intended. Bthe way. Just a tiny note when yousaid that one of the best ways- and I Ccompletely agree that Mso many people who are shippingApsworth, adepts kind of like status, Auger- probably the best way S to shipship, an internal embodded, node and use that just to ethe sin note to theclass discussion. That is specifically the other reason why we wanted tocreate clafh so that each of these apts can run their own nose in. However, inwhatever sinkbot and whatever howver, they fancy, but they shouldstill so we don't want every single act to manage it's same sort of keys,because then you just have kyds lying all over your far system and wheneveryou need to do a back, Uppyo have no idea. Instead, you can have one singl claffinstance, and then everybody can ship their node an you can have tondifferent nose running on your machine. You don't care you just eed to specifythat all these those should use a single key store, which is lightweightwhich is secure, yeah. That's that's, definitely cool Um. So we we're kind ofrente low on time here. Um H, but there's a couple of other things.I'd like to talk about H, specically, the future of light clients Um in Inotheria, and where are we now and where are we goingthe check, poinoracle and stuff like...

...that? What what's the skipes Aqu quick updateon what get one point? Nine is implemented in terms of that yeah, so likeso that time. That's aninteresting Um, interesting topic, because a lot ofpeople are working on different versions of lifecient with differentproperties. Gets version of a lihe. Client is kindof a bearbon thing in that e downloage the heaters and then crytographicallyproves reother data. Now, one of the things that we've been working on in gas one point nine is that theproblem is that in theory, light clients should synchronize the same wayas fool clients do in that they should download the heathers from black numberzero to block eight million and verify them or some of them. T problem is thatdowloading all these haders from zero to eight million is a lot of time anddoing the proof of workchecks on them, which I said that like lients, do is alot of time. If you, if you go with authri clients, it's still a lot oftime to verify digital signatures for eight million things and then quite a long time ago we introduced theconcept of these little snapshots. I think sht calledTMCHDS and the ideas that in every gas release we embad a small snap shot ofwhere the network is at currently and then the night clients can actuallystart sinking from that point onward. So, for example, if you dalod get, Idon't know one point, eight point fifteen then maybe the startingsnacktruck will be block seven million. I just gave a number and then insteadof having to download all the headers from zero to eight million, you justneded own, the heathers, from seven million to eight million. Now thisworks reall nicely. Whenever we do a fresh release, you get a fresh CHT. Youcan synchronize in one minute. But what happens if h? You are running a lifeclient for augur. You have your Auger apshipped now, for example, just rolease todayand then you're going to use the same Augraf for half a year or for one yearnow. The problem is that Um, the life client, so I probably theywon't get a new guastlight, client and but into it they will use the same oldone. So if, for some reason you need to resynchronize your Ogerapp, then youwill need to reimport all the blocks to reprossess all the block. heathers.From this point onward and uh, the point of the checkpoint Oracl was whatwe tried to solve is to dynamically to allow crients to dynamically accessfresh CH, thse fresh stap shots, so that when you start up your old lightclient, it won't have to Reimport all the heathers from seven million,whether it can immediately check that Oh we're, currently at block ninemillion, let's Dowlal from here onward, its kind of like this dynamic CHD andso the the question I have is who gets to be at checkpoint? And how do I knowthat they're all cool, so the checkpoints M, apoint adman, I should say but wichcheckpoints, you kind of need to trust the developers. So we are shipping chdswith geath. So it means that if you are using Geaf, you are already trusting uswith these starting truckpoints for the like kind. Now, the same people that that you are trusting already with yourinishor snapshots or initial stocking points, the same people are signers for Thi,treckpoint Oracle, and this so in theory. What we could do so imaginethis treck Mygorac. We would run a web server somewhere on some etheriumfoundation website, which just gives you the lates snapshot, and then we candigitally sign it in theory. This would be enough because your client you likein can download this H, this random tacnot from some randomwebsite and uh, and it can check a digit or signature that indeed theguest developers signed t wer enough of the gaft developer signd tat, so itshould be valid. The problem is that you don't really want that sort ofcentralization. You don't want to get nose to each Hav to a centralwebsite it'sacually. What we did is that we use the intherum Chin itself asthe central website, so we deployed I a treckpoint ORCA contract and the geathdevelopers can, with enough signatures, can publish a new snapshot into thischeck, Pontorical and the fun the the interesting catch is. How do you so we use a therum chain to publish thesnap shot, but the Lihe lient needs to retrieve the snapshot before it has thechain so to get the chain. You need the chain, it's a bit of a mastop situation and the solution was actually that H. whenever we do a transaction to publisha new snapshot, we embad a lot of day...

...into it. We am bad all the signaturesinto it. We Am bad recent blocks into it. We essentially therre every single datathat that the CHD needs to contain. We ambad in a single transaction and thenlight clients can blindly just ask a random light. Server. Inthe net. Okay,give me the later Chd you can Bagrat a Siaci with it, which is completelyuntrusted. You have no clue, but you have all the data there to actuallyverify that the guest developers signed it and then you have you. Can the coat cantrust it that the CS contains the properly signed O is propebly sine, I guess that'sdiapoint, so wh n, when you UPFL? Oh sorry, I didn't mean t interrupt but te when you uplod these checkpoints to thesmore contract, you're, actually putting the data directly into thesmart contract. Um. So D. do you do this manually? Is this an automatedregular thing or is it's 'cause? I would assume you'd want to do it attimes when it's, you know cheafest to do so. Um, even though you've got tonsof ease, ind reserve and it shouldn't be that big good deal like what l youknow. It still makes sense say if you're going to do it, you probablyjust do it at a time when it's optimal Um. Do you mainly push these things or so this thing is m, so the theges aredated once every week or so so it's not? U So that's the Sass Arta Ey, thirty, twothousand bocks, okay, okay, that's the minimum, but realistically, but wedon't do that. So what we do currently is that when, when I do a release, wepush our new SGE s, hartcoed into the block answaring to the client andsimultaneously we just published chds into the into the chain. Gotja Kachi may be onetransaction every two weeks, so it doesn't really matter so along. I don't know if you rememberthis, but sometime last year I talked to you. We worked together solving somepuppeth issues. I was since I have Yonma Horn here.What is the status of pupath how's that coming along Um? You know, I I mean Igot it to work, it was. It was good, although there were still some issueswith, for instance, there 's no explorer that ihes on a a private chain. It looks like the POA network, Lynsusan explorer, so Um, maybe y could give me an update on pupath. So OPAT is Um. I mean not much. Development is goinginto public, it's kind of, I wouldn't say t kind of done, but U it can deploy, do natwork it can. It can configure agenesis block for proof of o network or click proof of tetorky. It can deploybootnotes status, page signers, so more or less it can be played intiInterati, the entie entire Etherian infrastructure, and I think two thingsthat are kind of missing or where kind of missing a Fanta. Now is a blockexplorer and the wallet the Walit is. I mean it's it's nicecity, but it's not that necessary. However, a block explor t is necessary.So if Y, U, if you're on private network- and you have no clue what yournetwork is doing- then it's it's hard and up until ow ether scan and theother block explore providers. They were kindenough to run block exporses, O all the test networks but h. But if I want torun my own little private network for Heckathon, then obviously nobody'sgoing to run Blocke scol from my heckothon, and this is where were the a nat work, people and blockscout comes in that I think last week's somwer in October that last year they published an open source,blockxfloer cold block scout based. I think it's based on Elixir and UH. Essentially that's when we gotthe idea that finally, there is a possible open source, actually workingopen source block expore that we could integrate into Poppeth and H. Garyworked quite a lot on death to actually pull it off, but now oet does support,deploying a more or less working block explorer.So it's Um. You were kind of happy about that. Itmoved poppe one STEPP closer to the dream, but I think it's important to torealize that oers will always be this hacky thing, so it it's meant forhacathons. It's meant for test networks. It's not for your little play privatenetwork, it's Otman for production, yeah, tes, also youw. I was going toSaey this also this kind of inherent bit ropped in Popof, since it alsoconfigures other clients and other clients move on and they change the theparempters and changed the configrations fix so...

...yeah there there's always the needs arekind of upte top of with okay. So I change this tart and Um there may betimes when it. It doesn't fall a function with the latestversions ofeverything yeah. If I, if I'm test, do seons application just to get it offthe crown, I don't want, do it on Mainne and honestly, the test networkis not something that I want to develop on either. I Want Fast Block Times. Iwant t intoerate quickly and I want my team to be able to itterate quickly aswell, and I want them to struggle want to do something, quick, that I couldjust get up going and say here. Juinteface to this, make it work, Oget, Ol work, and even though it's notthe same as the regular network, I can make it that way. I guess, but I findthat hat having the ability just toploy a network isextremely useful in practical, real world situations when you're trying toget something off the ground m. just personally, so I appreciate that work alot. You know, I guess one of the. If, if you were asked, if, if somebodywould ask me what the best purpose of popet is nowadays, I would probably saythat if you want to run development environment inside your owncompany, where you have Yev ton, people or fifty people or two hundred people,I don't know I sad the number of developers who want to use it. That'sthat's a perfect oppocscenaro because they you don't really want to screwaround with cubunities and setting up really fanty clusters and everything.If everything goes to crap Don, who cares it's fine but h, but you canreally fast you can I in ten minutes spin up a atwork and have all youpeople on it Woa ten minutes, I don't know about that. Have you seen UNMESTYOU'VE BN CHANGT. Have you seen my? Have you seen my article on on Pakok? Idid a tutorial on it last year and it takes a good four to six hours still toset up a network Um just because most just a lot of little instructions. Youhave to do at least with Click, I'm not sure about like doing a a foe. U Kn WMa et a PROFO authority som this or that T s. It takes a little time stillyet log in thes servers still do still do the Cup with commitdions etcetera,Etceera could figure theca whole servent renvironment to actually deploy.So one thing that would be great is if there was just like eght of s or Azure,like answible cookbooks Tomisdeploy, a network Lik that we super Um. But youknow I probably Shouldn've wound up doing that now. I think about it, butUm. You know it still takes a bit of time, but it's way less time to do it.Imanually, like way last it takes it from like a four day project to youknow a half a day. So that's great, I guess so one one important thing is tha. Wat poppet is that I try to make it asas a maintenance thing too. So it's not just about deploying the thing, butalso maintaining it. So, for example, when there's a new fork rolled out,theampoblec can actually support updating the the genesist block of starinogigensabout the chain configuration within you folk definition, O. You can saythat okay in one week I want to enable by Santimori, Stumbul or, and then itcan redeploy bootnotes with fresh versions of gas it can so the idea is that you, it's not justassembling theiinitial at work, because that could be easily done, but alsomaintaining that afterwards yeah, I mean, I guess people don't know this,but Heryou you basically maintain rine beusing Opethrit, yes, OPAPA was actually made forwinkabe. So the reason I I wrote that is because when I was deploying GrinKobe, it was I I really honestly, I probably really playd it ten times aday after provisioning, the lastery machines. Yes, so there usually, I wasdeveloping click. I found some issues really played the whole thing. Thewhole network got stuck. I really played the whole thing: the Ol Aer Fen,a party they play the whole thing and uh after you do it three times. Yourealize that it's impossible to keep doing this manually so um. So I just started writing a tool, andthen we figure that Ellif we are going to use this to and its legitimately, sofor us that might as well release it, which seemed like greatidea. Initially, then it turned out it's a horrible idea, because I neededto actually make it nice, you demitate it yeah. Here's! This awesome thing I feel ohwait now responsible for it. Ooo Ma here's, my kid. You know e Wun' me Ifer to a child and then justlitin. Let it go off what his yeah that doesn't work. Teay noble left sword, but I think all inall the it it's worth it, it was worth it. I think it helps a lot of peopleand I got a lot of comments on that article. So, like a lot of people,we're trying to use pupat and Um ends...

...really. I think I think it as a greatwork and I really appreciate it 'cause. It helped me a whole lot. 'cause I hadto take the service to let you down and then revuil the whole nutber, the VPCand stuff. So I that's probably why it took me longer than you to say redeploy.I H literally tear down the entire servers and and rebuild them andrebuild a private Youkno of the hole, Um Itas, firewalls and stuff just to justtoget it going every time and it was a pain and to have that part that talindof of just blaunching the network like removed 'cause. I know we had. We hadactually built a couple of projects prior to in twothousand and seventeen M Yeah Lake, two thousand and seventeenearly, two thousad and eighteen webuilt, some pretty major deployment stuff for the company I was working with. I can't get into many details about it,but basically Wev deployed a global network several times and we need toautomate that process in Yadiadiada and it was it took a guy along, I meanihads been working on it and it took a long time each time just to get thatgoing and pupat made things so much easier. So I really appreciate it m. Soat the UH in article you seem to have some visitof the future with regard to discovery protocol. Maybe you could go a littlebit about what has happened and what is going to happen M with discovery, no discovery Markin on a take at away. I think, is the Questionis more aboutUm, your sce other mm, o then yo discoverPROTOCO. Is it I'know? It's n Rd, I think th a ourrecords as no habit. I it actually says Um. It actually goes through what we'retrying to do your contructing Brainan vision. Iwinted you to go over that brain New Vision, but after you described thebrand New Vision, there was also this part of the e n Ur records. T was likebuck in transition towards atenverdo built, T, inour records and here's whatthey are. So maybe we could go over a little tey tell that woris yeaoy. So I guess not not many people, so a lot of people kind of nowadays assumethat ethereum just works and they just need to work on thadepts and h. Thereare few people who kind of understand that the baseplayer needs a lot of work,but most even most of those people that realize that thetherm still needs a lotof work. They kind of assume that ilyea about networking- that's done. I meanthat' been done for twenty years b. t. What can you do with networking? It'sjust you Virat together and it's magic but Um. The problem is that there arestill a lot of challenges around h around thes, centralized protocal. Thatmay not be not be so obvious to somebody whoactually didn't implement one of them for Esample, one of the biggestchallenges in in thiscentralized Protocollige, okay, I start op, mymachine, I install guest or parroty or whatever and boom. I want to thing andthen your no goes like I wat e Fackan. Who Am I supposed to sing against, and that is quite a hard problem. Sohow do you find somebody on the Internet that is going to give you data and Um generally? This is an entire suit ofproblems and h. There are a lot of different mechanisms or protocols todiscover other people in the network and the tearm two had originallywanithing was designed. We shipped UM fairly simplice to discovery proocalwhat you C, what you did is there are a few hardcoded servers. I don't know tentwen service, hard, coodingdoall clients and you just reach out tofthose servers and tell them that okay here, my name is whatever please giveme peers to connect to, and then they give you a hundred years and then youtry to connect to those and then let hey. Please give me one hundred morepears and gradually y try to find people who are still running noses inthe network and this kind of works in a simplistic scenario, but then, all of asudden, eight trm grows. You launch different test networks, you no auchprivate networks and all of a sudden asking somebody. Please give me ten ora hundred aterum piers it's worthless, because you actually don't want onehundred, an therum piers. You want one hundred light servers on the ring, cabe tes network and that a completely differentquestion than just give me one hundred peers, and the problem is that if there Ma not kind of is happilychugging along. So if you want to Sincris it, maynot has a foload, it'seasy, but if you want to find more specific beers than...

...that things got very, very Mussy and uh a couple of years ago, shotstarted working in a UW, versinal discovery protocol. Where you couldadvertise some topics, you can advertise it, Hey I'm a light server,I'm a light server at this particular Hash and thenthe pro allowed othernhose to look up these advertisements, but it was kind of a prof of concept it.It didn't really go anywhere and h with the advant of IFM. Two Point:Oh, however, this problem, all of a sudden, became a lot more seriousbecause ANA tem two point. Oh, you would like to have different shots, soyou, if, if want to split the chain into one hund, one thousand sharts,then it means that all of a sudden when you want to synchronize with the thenetwork, you don't want to synchronize with some random note. You want tosynchronize with a note, that's in a specific short or maybe you want to synchronize with ano that in a specific shard in a specific pestnet that has light servercapabilities, et Cetera, and then you got these really complex requirementsand then all of a sudden, you need to implement a way to find remote machines, remote computers inthe world, on the Internet that match your criteria and essentially the thediscovery prolical version of fiveyes all around. How do you define thesecriteria? How do you make them forturable Ave, you shar? How do youmake it not docible? It that's a whole huge topic, but u one of the tiny pieces of it isUm Wel. The big part of the Hart part is how do Yo make it serchable. Theeasy part is: How do you publish the data in the first place and that's whatwhat th e nrs The therium no records? I think I always mess that up. So maybeit's not it's anoter MoD, recrerce noking. No, it's singular F. There amno recaral come on yeah O, so enr was a stop towards thatdirection. That, before we can actually search for thiscomplex criteria, we need a way to publish them into the network andAnefelix creatted. This idea of EAND RS, where every note can define catafact esminiki value Dataset, they can put arbitrary data in it and they can justmake this available into the network and then discover PROTOCAC, Co andquery this date, and I can retrieve your en ur record and then based onthat, I can figure out whether I want to connect to you or not. Now Idiscovery problical version of five, the complexity. There would be that youshould be able to qlear it out, so you should be able to Tal this CoverpodoGive Me Rink Abe light servers, but currently we're only a discovrubationfour, which is simplified version. We can make it available, but we cannotsearch it and this might look useless from a initial perspective, butthe use in it is that M. I so currently establishing a CIPIconnection. A fully theompicipi connection is really expensive. It's acryptograp, crytographic connection. It takes a lot of time. If the remote nodoesn't have enough slots, then you get rejected immediately. I mean you getrejected, Asto, reuman, etcphadshake and t e. The advantage of these ENRswould be that I don't have to connect to you to figure out that you're a badpeer. So I can just retriete your eana record. That's a tiny ou depround trip.It will take it ill, be almost instantaneous. You don't need toprocess anything. You just give me back record that you have on store and baseon that. I can immediately filter out ninety nine percent of the network asuseless and Um, and that will actually enable smallernetworks or note with Qerky requirements to to find good notes. Alot faster, I mean, and you think this protocol will also be used for the twopointo version. Is that what I was understanding you to say also by theway it is plural we and n our records? It's just that one partnerawer. It wassingular, but I read it so I was like O butanway each thing. Werwere we're fon show anyway the th you're saying this is somethingthat's being Plann to help and assist with if Yoam two point ois something I',misunderstood or N. no, so that's actually th discovere the the nextversion of discovery, Produ, one of the main renquirements, is to support I femTopointo, so that breaks Mo to tha other kind of question. I have- and Iknow we're kind of running late here. I hope hope. Okay with you guys um by Atherum. Two Point: U is geath going to suport, I mean thatlike or are there going to be other like there's Nimbus, there's prismaticlabs, some other there's, there'simplementations of of...

...tests, clients or F to point? U. Um isgetfor to be like the official Sftpno Lake thing and is one point:Nine going to start being two point o when you start supporting Vni thing:Zero, testet m? Yes, so to asswer that question GEAs as in geath itself, the currentgas cod base will never be anesum topoint of client. Because uh I mean ifyou an Aitum, two is kind of apart from sharing the same name. They are more orless completely different things. Yes, from this perspective, trying to support iftn to pointofwithin Geth, it would be a suicide from two perspective, one ofthem it would be injecting a whole lot of code into an already massive system,and the second part would be touching and messing around with critical stuffthat that can have really catastrophic consequences. So the geat gas binaryitself will probably never support. If you're in to point O it, it wasn't,Realy meant to support it, but Um we did have quite discussions in Chery, picking the internals of Gat,for example the RBC, the networking discovery, protocalld storage layers,etcetera and building an excerient to point a client out of those. So we dohave a lot of very valuable pand components that we think can beused can be reused, but we wouldn't. We wouldn't make gest te n two point ofclient. Rather, we would build anything to point o kind out of the pieces ofgas tatatse not makes sense, yeah that security to perspective. That'sdefinitely the way to go. You don't want to kind of taint the secure codebase of death by trying to impy trying to tack on very different architecturaldifferences of F two point out, so you get ac F, plusplus the working name is firefly J T. Oh,that's did actually read that that's funny so funny. That was the name of aproject I did in two thousand and seventeen on atherium anyway yeah. I think this is probably decentway to start wrapping up Justgo Ahead N. I just want to ask onemore question. I think that's kind of important that it. You asked whether this would be an official etherumto point of crientand I think from the if on foundations, perspective is kind of important thatthey. What I'm seeing is that they don't really want to have an officialkind. Rather they want to support multiple teams. I expect that one. Ifyoring two point of launches it will be the same as ti o one that most of the clients will die out and UH. It's I mean it's questionable whichclients will be the last man standing so the same so m. I'm almost certain that there won't betwenty clients and realistically maybe there Wern't peoplfetch ones, then were happy. When I said official I meant like the onethat's funded by the atherium foundation as and only the theorfounation, if Guessis, that makes they don't have. A company like Geth is not built by a like aseparate organization. If that makes sense right, not yeh. So I think that',that's a bit question athough! So currently we would like to create tobuild an Atin to point a crient. It would be nice if we got to the pointwhere it's actually stable enough to say to the Founto tell the foundationthat he funded because you need it, but I think realistically it's also important toemphasize that, for us, one of the primary goals is tokeep Etherem one alive. So as much as I would like to work on, if im to pointof full time, I think we can't iif one isn't in astate where you can just leave it and hope that it will be there in fiveyears time. So there are ill a lot challenges to solve and I think itwould be a bit irresponsible, at least for me personally to situate adifferent project. Yeah lucine brought up is that people were giving a guyscrap out twitter for even building one point: Nine and they're like. Why areyou're just focusing on two point, l, which I think pretty much unanimously.Everybody said it was dumb, but I I still I I think, you're right,there's a lot of money still flywing through etherium and it doesn't stopjust Bas. Somebody has a very good idea,...

...but it's still in a very prototype,very research phase for F. You know two point O um and and it's not it's notdone yet, and you know at one point I was driving in an economy and it'simportant to keep that economy running. So I guess one of the bigmisunderstandings around es two point: Oh, is that I've seen it antiter allover the place that Woif you're on two point O is launching in January orstatet, launch yar, and in I mean maybe something will launch inJanuary, but I think most people who are saying that ecame to point inconking in January. They don't realize what is actually launching, because thething that, if Yor is launching in January, wants to launch is phase zero,which is just empty chains, creating blocks, so it will have absolutely zerofunctionality or zero transactional capability and H do hen if they're on two point o willactually reach the feature set: Ofe Thn, one thats, a big questionmark, so Iknow like the standard was set because of Catol put out his white paper in whatearly two thousand and fourteen M is that right and then it wasn't untilwhat June maybe two thousand and fifteen is that right that the theramlaunched? I don't know. I can't remember timelines very well, but you know that was a very shortperiod of time to create what is built. An entire ecosystem of I mean thesecond largest CRYPTOC occurrency in market cap is a theoryum and it onlytook it took a like a year and a half to build it. So people mentally intheir mind, go oh wow. It shouldn't really take like that's that's. What II feel like is the case, but I reality first off Thean. Two point out is anorder of magnitude, more M advanced than I don't know. If advanced YEAAERDABANC, I knon't what he is yeah, it is complex, there'sa lot of moving parts yeah, I think compl. You know it's anorder, magnitude more difficult to build from an engineering standpoint.There's a lot more moving parts for things to go wrong, a lot more testingthat would need to be done. A lot more process oriented to build it. Umthere's a lot of lessons that they need to c h y. They probably are going totake this opportunity kind of correct Um and some of those revolving Oun,maybe smart contracts on the Thirty Teo point a chain. I know there's a lot oftalk. You also, if it's yewalesome N, that that's a whole nother beast thatthey've got to go through. It's SUC, ust a you know, Gabin riting solidityor something it's it's literally like this is this is Um you just you y kN W we go gotto, take alittle more belte, more tickets up to Abe, more careful, but also you know um it. It was kind of areasonable to buildtherm in a year and a half and they did it anyway. That was the cool feat in mymind and that it was such a tremendous project. I had such a massive impact onthe world and they did in a very very, very short period of time and from you eighteen year, Ol, how I don't know howe Liv but c you know, college student from from Waterloo to to j drop hislife and go do this. I mean that's impressive feat to do it in a year anda half and get a team surrounding Hem and get everything working, Um everybod.Behind the vision like it was an impressive feat: You can't you can't expect that kind ofMagic to happen twice. This is a serious engineering project. It takesserious time. It takes serious rigor and, I think TAT's not to say thatetherium wasn't, but I think that people just have unrealisticexpectations because of the history Um- and you know, wellit's just UPA battle,withat nothe geal, but hopefully it doen't impact the market price too much.But that's that's what it is, and I think just to add to that one.Essentially, I them to point to attempts to fix all the problems ofIEAN, one which kind of implies that if eone was kind of a bit simplisticcompared to what it should have been so e Carme to point always by design a lotmore, a lot more nit's going to be impressivewhen it's out it ife it time to bake yeah and just one more thought around.That is, I think it's also important to realize that money therm launched ithad. This is going to sound a bit strong. It had a value of zero. I mean it was a completely new projectwith completely new chain. You could do whatever yes, itdit a of initial value. But U You d. So there was nothing at risk,whereas currently you have an entire twenty somethingbillion thing at risk. It's it's not...

...the same thing! You! Don't you don'tjust hacker. I remember way back when we were preparing for frontier and then youvitally figured out that W bechange some nes in the Ivm and thenhe just went into the GOCO base and secet based and just pushe Ta commit tochange a parameter. Ha t go in a boom, Donis change, and you don't do that nowadays. So noand I think people need to appreciate and be grateful for and happy about. Thefact is taking longer- and I think that's a harder narrative to spendbecause people are by nature impatient, but to tell them that to explain to them that this is goingto result in something magnificent and if you give it the right time and stoppushing us to just release two point: o Hurry up e yea, you're Gon, O you'reGoin to have a better product and invest in that product by investing inthe Etheorian Foundation and then making this happen and and the othergroups that are pushing such a status, such as prisbatic labs, pushing theirown versionable it a thery Um to put o client like it's a you know. If youwant to see it happen, although you can't make it go faster with moredevelopers, you sure could make those developers' lives a lot morecomfortable SA. They can do better work well, based on all of that which I ivly agreeupon. WESHOULD start to rapare there any questions that you would have liked us to ask youabout any of this or anything else. You feel strongly about that. We didn't getaround to yeah. One of the new cool figures thattheare guys hoping to uh looking forward to regards to guess or yeah so th. SoThat's e question. I can ask that's no that's I asse it myself. So there are two UNICORS that we'vebeen chased. E. One of them is pruding which Peter, as spent quite a long time,um trying to get to work. I mean morepermanent proding than they memer improvement. Provin ta we now theoother one is the new sink protocol to replace the current Fasing, which isand that's nuing proticals are being worked at in H, various groups, andthat is something that's. Hopefully, Wi'll reduce sametimes and scad better in the future. So I guess the reason Marcin called them.UNIQORNES is because h they are so from the outside. It kindof looks obvious, thant, okay, make it sing faster or make it deleve Mo Paoand the what so, for example, uponto. Now I actually wrote I think, six orseven puning agrithms that all of them kind of worked and or sink rising wite. I think maybeI wrote two more cincrozation protocols that actually worked t at wereimplemented fully. The problem with both these Unicorn problems orchallenges is that there are a lot of possible solutionsthat are that would be workable now, but would break down in two years timeand then there's simply no reason to implement something that we know willtake three months to implement, and then, after one and a half years, weknow that it will die so that this is why these are kind ofconsidered the UNICORM problems, because we're trying to find a solutionthat can scale as long as geth stays alive, which is certainly longer than twoyears. Oh Yeah, Oh, you know, do you feel like peopleare going to transition on t e Eh two point: Oh, I know that it's kind of premature to talk about that stuff, but do you feel like Geth is going to have tosupport those features to get that transition happening? 'cause thers talk about moving, youknow the burn and whatnot it's Mor along a smart contract development thanthan the actual mode. Is it oh? Okay? I didn't know it was all based on a smartcontract Um. That makes sense. Now, though, okay go out, so if there's anyso, probably if there, if there'r some features needed to help on board peoplefrom if yo want to Thearim to an Ye, should definitely ges flu shipwhatevers needed to help but Um. Realistically, I would expect that after, if en topointo is usable and a hin reaches future paroty with it in one. Evenafter that, I would expect that unless there's some master plan tomurder, therin one in is track. I expect, if you want to to live forquite a long time, igre artely there' there probably awhole corhodof community that doesn't...

...want to switch to two point out. Theyrather keep their business in value on the one point of Chame, and if that'sfaste an the client wanted to be maintayinorder to keep the networkaleven daying, what happens if a theory Monpointo becomes the new etc? That's the whole thing about this. Thistechnology is that those things are capable Um. I I do think that this interestingquestion, but I do think that one of the big competitors- Af you thre im tois actually thre an one yeah. That's the weird part about it. You know I do see that that's exactly how I Iview it, but it's also like this collaborative competitor and it's notlike the problem is thaugh like people got money and they want it. It's Goin to be intesting to see W itall plays out, but we got a couple of years to work that out. So it'spolitics game. Don't worry about that! Just be an engineerthat's, the KapeIsso. The only way I essentially as to possibilities. One of them is Esuin onelives alongside e firm to Pon toindefinitely more until people loseinterest, and the other is that if there's master pen to I wouldn't call it Murderin one, but tosomehow make it part of O therem to s Ding hat nonorather to completelytransition everything into I yo topl, so to some instantly shut down one anth do at the other. There was talk about storing a NA contract as abaselayer for the transition, the entire state of etheorium Um one, orsomething like that. I can't remember the exact details that and that doesn'tsound right now that I'm saying o loud but to basically make one a shard ontherium two UM in some way. Just from this point forward, this state exists,but I feel like there's so much negotiation around that and the that itreally has an air of centralization to make that decision making process onbehalf of a theoryum musers. In other words, I feel like they would have tovote that in somehow so yeah itwould be interesting, sale that out honestly, Ipersonally don't really like that idea from an engineering perspective, weteone built up an immense amount of techical debth. Essentially we have six forks, be fine. We have all the IPS.We have all stuff that we have for the state. Try is a bit weird: it doesn'treally scale and UM. Maybe if IAM, if hem to point oflaunches, I would prefer if they would solve these issues instead of somehowintegrating for bringing the issues into the new system. Yeah Yeah, theidea of Thou was just copig. This t data of the state over so transishis. Idon't know the either way yeah I kind of agree with you on that yeah ebut. So unless Prob, you cannot really make onechain an instantly stop and the other one pick it up from where you, where you go left offso coordination issue of all that, as is not tractable yeah. So you could saythat okay, we're going to take the state of Victoramat Block. I don't knowtwenty thousand twenty million sorry. I just had the number and we're going tosnap shot tack into then two point: o okay. But what happens if I mid atransaction block? Twenty million and one OK MI stood. So it's just going to have to be individuals.Decisions to move over TOR transfer their value from one to two and theneventually, you'll have the pot the majority of people working on too, tomake one not very feasible to to Kindof, have a community around there's, noother realviable scenario of of EO on that value over we know brilliant stuffcomes up all the time. Maybe maybe somebody'll fin find an idea, but atthe moment I conlin gree with what couragous said. But even then it's? U. You have a big problem, because if youcan take value over so a I suppose, you can aport either one to one over fromit. Yer One toetm. Two then eventually, why would anyone stopminding if ern one, if you'd take the mining reward and push it into ith, Hemtoo, so the only wayis to stop giving up mining rewards? But if you startgiving out mining revords, then you actually need to move everybody overbefore that a long time before that, otherwise, when minors, whichofteatwork will become completely unsecure but one I thought at thering Im at onepoint, I was not even going to have minors at that point. It's going to bevalidators is all going to be prof a Stak one point: Allamot Mumpon is no nolonger going to have proof a Stak, my what proof of Sak is not no art of onepoy. Now I guess not. I just I thought...

...that was the original plan. I thoughtthey were still going with that yes did an was to switch over to Casper orShasper or nosure. What t last day was but um, I donknow, so that on taking at a certain point, the researchers kind of axed that idea,because they said that it it takes a lot of effort to try to somehow got out if heren one- and maybe it'sjust better- to go with O tm to and not care about thataspect. So I remember that conversation just thought that that meant that theywere going to be using fts a research bed. For that I guess yeah e. It makesmore sense, so there's no plan to remove proof of work from a thn one, any moreokay got it. I I would be happy, but ou ha from rom the playing devil'sadvocate. If you remove proof of work from iterin one and switch over to apoof APSTAKE, then you actually make it even harder for for afim to to survive Becaso to change the kind of securityof of a network while transitioning to a different like unproven network t esame time, noso I I would. The problem is that ifyou do change it successfully, then you Oue T ha. You have an even stronger competiboryethat's as ANASPECTOF. That too, I think we're moving on to like acompletely different conversation here and I want to say, we've taken up toomuch of your time already Um. I definitely appreciate the work thatyou both do for the ecosystem. It's it's. I would, I would say we wouldn'tbe here without the work of the far fantation and and and guess being themain stay of the clients that fortcesensus and the network itself. Sothank you for your work, Real Ford to even more massive improvement. Youtotiu, ta Ma Pun et e'lltake. It back on the show, don't expect filable! Thank you for AmeohThinkicomnonapprecian. Thank you very much. It doesn't reaize Tapin to.

In-Stream Audio Search

NEW

Search across all episodes within this podcast

Episodes (108)