All Core Devs - Consensus #16

All Core Devs - Consensus · 18 Apr 2019 · 1:15:33

Eth2 client teams and researchers cover testing, client updates and briefings from a workshop, then research and network updates. Researchers report consensus on a spec freeze at the end of the second quarter, with simplifications coming for deposits, incentivization, crosslinks and serialization, and BLS standardization moving forward through fortnightly calls.

Speakers

Topics

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

Transcript

[Music] [Music] [Music]

[Music] [Music] [Music]

[Music] [Music] [Music]

[Music] okay the stream should be switched and

they'll tell us in the chat box and I hope here's the agenda shared in the chat welcome Vitalik can you please mute your actually uh you're pretty we couldn't hear you very well can you test that one more time one two three okay cool cool okay great the stringers transferred over let's get started so we have a number of things needed today and as we have in the past few weeks we're going to start with testing updates

Diedrich has been spending a lot of time restructuring getting everything really clean and working on some tests Diedrich do you wanna give us an update was to get the tests integrated into the inspection poster ii so it could trigger it on the CI we want the prospect to be this common core between tests that do the sanity tests for the aspects of the test generators and in the future we'll also have invariance testing so we know a certain output is valid and together

with some new tooling we get to write new testing writers we have an example state transition test generator now for deficits we have lots of theaters and here's a few others that are backward ported student you wouldn't cool hey Greg can you mute please sorry no problem thanks Berto so there is there's increasing number of tests and good examples on how to use the new test generator functionality if

you want to get your hands dirty and write some tests I recommend opening it up cool next we will go to client updates let's start with Pegasus hey can you hear me okay yep okay so um we're pretty close to being up to date with the zero point five point one spec we've been doing a bunch of network debugging we integrated Antoine's implementation of the plum tree algorithm and we're also planning

that road dinner up workshop so if y'all are gonna be in New York during blockchain week I think it's like the 15th or 16th maybe someone can jump in if they remember the exact date it's a sixteenth okay right on um and then we're also working on generating some test data for pause a contract and put an output so that's pretty much it cool have you had your attempted to run any of those state transition tests um no cool just curious Thanks how about parity Marco Marco database in January

flow index so we can store everything in into a local database and yeah that's really for us great thank you have a loadstar all right yeah so we we've just were doing a couple things we've got a branch tracking v6 because we thought it was going live last week so we just had that continue updating and we pretty much wired up everything and we're getting ready to actually test like a single

node kind of block processing and processing some empty blocks and we're getting ready to integrate a couple if we've got lid PDP actually on its way pretty well and we're working on hobbits as well so we can get closer to testing syncing up with Artemis and whoever else wants to join and well and we have a like POC MVP of our validator client it's like stateless at this point but it looks like it should be working soon what about it thank you hey so in the past three weeks we had

the or test nest launch at the beginning of the month we targeted crypto enthusiasts and we had good feedback for the first two weeks it was relatively easy to get started this week we had a couple issues due to firewall changes but that's fixed since this morning and four we had a lot of interest from Korea even though we didn't do anything that raised a lot of issues and improvement on Raw messages logs we found some memory leaks and we did some optimization on state

transition because there were much too slow and right now we have to test Nets running one for the public called net zero and one for development that we use for 0.6 or any development when when we don't want to break as a test net for the public otherwise our beacon chain is not working on Windows we didn't work much on Windows testing because we had some issues in the past but now it's it's working but we don't advertise yet because the build system is a bit complex

regarding networking we had some discovery issues that we fixed we improved sync efficiency so right now we have both backward sink like a client request missing blocks and we also have 4 watt sync so someone request blocks and the reply err will send the block requested and every following blocks both have merits so we are waiting trying to check if we should keep both or use one over the other we had issues with not traversals for the test net so we wrapped a mini UPnP and not PMP so it's being integrated

into if I am one and we will be doing the same for the beacon chain soon and we added some debugging tools and leak detection tools for the networking part and also a tool to query network topology because most of the issues we had with the test net was pure discovery and networking on side note on if I am one we've been working on whisperer a bit regarding testing so we can now pass state tests though we don't pass them and we open the two issues on the test repo on the improvements that we would

like to see we are eagerly waiting for the SSD tests because caching is needed to pass the state tests and that's where we we are failing that's it thank you how about harmony yep so we are now up to date with five oh one stick we adopted almost all tests and passing them except of bunch of state transition tests we implemented incremental to

equation so we're now doing some benchmarking tool to check what what parts of did you can you please so I also started why I di implementation and quiet syncing functionality that's it great thank you can you share your incremental rehashing implementation I know Paul from White House has been

working about a lot and be good to share ideas there yep sure cool thank you great how about Trinity hello so last week most most of us or in at car last two weeks so still feel in Australia respectful the people who in Australia really and the test a is under construction and now we're testing how to proposing the box between the meditators and the knowledge thing is that we are interpreting the common test

is to put all test version 0.5 one two the Trinity heist ID that's our updates thank you thank you about lake house yep so we are now passing five one state transition tests Paul's implemented the tree hash cashing in isolation I think next week we'll probably implement into our run time we've been assisting with the BLS standardization by benchmarking a new hash to curve method we've been improving

networking and doing some bug fixes like everyone else particularly in Discovery and started doing some peer management for a lighthouse and we're improving our logging in freaking out started building some debugging tools to do some proper large-scale network tests that's it from us great thank you how about prismatic yeah hey guys as many of you seen from our Cortana dashboard most of our resources are going to improving and 15-time parks so what may be incremental steps we right now the current update is we're able to run 128 validators with post and restart with tests on for

scenario and 120 ml did this work so we're now we're trying to ramp up to 1024 validators we reign through a few issues where we're trying to figure out what type of bad blocks wish you save what about four o'clock we should be saving and I will ask them later so we don't spam the step status update on top of that we are we are optimizing LMD for tourists we add caching to community shuffle means and we implemented where a single validator can act us multiple validators by giving them many different public and private keys and shout out to our team and we shape for that and

that's it thank you any updates from Jeff I think Felix is the only one from get today yeah so I can I can just say that basically there is some work on Heath to stuff in in the gut team is mostly me working on the discovery and then we have one guy just like exploring different parts of it too and I trying to implement some stuff but we're not at a point where we can actually like you know follow the spec or anything so I guess like at that point someone and someone who's actually working that stuff's gonna join the call okay cool I see

Martin's been digging and he's found a few bugs here and there so yeah it's mostly I think most people actually really busy so fun I guess we're just really busy with like you know if one and like the next big release which is gonna happen real soon and like there's like a ton of stuff outside it's not related to e 2.0 so we're just not we just yeah like we we made a promise so that you know like maybe spending like half a day each week like working on e to stuff but in practice just never happens okay thanks and we will get to network updates in a little bit I think Keith I don't think we have anyone from eath is that correct

cool okay thank you I so we had a workshop in Sydney thank you everyone that was able to attend and thank you single crime guys for helping us find location and just general hospitality and have one out there I wanted to give a little bit of time for brief updates the expectation I think is to write up some notes from each of these sessions and we also have some videos of most of the sessions that I will I'm hoping to get soon and release but if any one that was leading her in her session that once you have just a quick refund look what

happened again quick but how about it Paul do you want to give us an update on your session you sure sir mine was a client architecture so he spent the first part sort of talking about I think it was I don't have the notes in front of me but it was it was API so talking about like I'm trying to find maybe some minimal interface between beacon road and a Ballard a client and what that's like we try a little bit about whether we should use JSON or G RPC I think Luke from Sigma prime is going to create some issues to deal with that and then we just kind of had a bit of open

discussion about caching and optimizations and things like this yeah not a huge amount of takeaways but once I have those issues I'll link them in mostly just us kind of trying to like learn from each other cool thank you Matt do you wanna give us update on the network side and just a baby yeah cool cool yeah cool insect let me just pull up the nodes Austin so we covered a variety Thanks first thing that we covered was Lippe to be just issues and things that we might like to change the gardening with p2p so I have

a big list of those things we might go over this later during this call I'm otherwise all sort of aggregate then we can discuss them offline we discussed briefly some problems with serialization which I'll be writing up spec changes for in order to support and potentially also discussing with some of the sse team in just a few minutes regarding propagation so one of the big things we walked away from was that we're going to resurrect some of the efforts that white block was doing in order to test out gossip some performed under load so I'm really looking forward to that since that's sort of the biggest blocker right now to full adoption of gossip sub but nevertheless I'll be creating the specification for what we are going to be gossip subbing over the

next couple of days to check and then finally for peer discovery it's still a pretty early discussion there but the main thing that sort of we came together as a group was that we need to just spend some time to talk to Felix or some other expert on Discovery v5 to understand how it needs to change as it relates to e2 so if he looks like if you have a chance in the next like week or two I'm just have a great call with me to go over those things I'd really appreciate it oh yeah absolutely cool yeah and we touch on that and a little bit great thank you and then the other morning session was wasn't there was a

lot there is anybody one give us just a brief update on that I can give I can give an update so secession started with a reminder of the goal of EVM at the start and wasn't so for was a mix was more like a Java for the web something built from the web from the very start compact with security property and close to native performance and it was an is the goal is to abstract the execution layer so the two main challenges for it wasn't that I noted was mattering and

bounding execution so we had a very long review by CAHSEE on it was a performance and some special cases also where the EVM was actually faster than it wasn't we talked a lot about was E which is Mozilla web assembly system interface and comparing it to a forum environment interface and some questions about does it fit with V frame or not we use it or not

and another part of the talk was about the ease of formal verification with an intervention from the people from ke VM who highlighted that wasn't as a lot of nice properties for Proverbs and another thing was about interoperability we've over chains like should it wasn't be proposed as a concerted effort we've over blockchain and what happened with measuring is it beneficial so lots of questions about them should we do it

like in both for huazi or it wasn't should we do it on the side or should we talk to others with precession risk of delaying the delivery of fees - I never talk about pre compiles and I guess that's it you know I think that's the gist of very much so those are the morning sessions then after lunch Vitalik let a whiteboard session on light clients which is awesome just pretty much going over the specs the

rationale and the design there there is a video and we will be sharing so I don't think we nearly need to go over that right now and the afternoon we had a session on just test nets roadmap kind of we ended up just talking about lots of things that need to happen and generally trying to figure out what happened needs to happen in Q 2 3 etc a few notes I have for some conditions necessary for having a long-standing multi client s net we're all clients pass tests consensus tests speaking sand networking protocol building out and networking monitoring output tools we're definitely interested in doing some sort

of structured test nets as may be similar to type of game of state stuff xenon cosmos so we're looking into organizing that and maybe what some of the goals there would be obvious some let's see general tooling on visualizers Bach explorers some functions for injecting bad data into the test nuts and then stuff we expect in queue to be a phase zero spec freeze enhanced testing and testing against the pie and go spec for conformance between them defining a minimal or validate or API standardizing

events log format standardizing canonical IDs for objects like the root or the signed root q3 audits and formal verification longer standing test nets hi Blake CI and working towards a longer standing multi-client test net and then beyond that figuring out the path towards launch cool and I'll type up those notes in a little bit more formal way to share and the other afternoon session was just phase two outside of the VM I believe this ended up being I wasn't a part of it but I ended up being

kind of like a whiteboard session that italic let of italic you have any notes or comments on what happened during that event yeah and we basically went through the end of different parts of what we expect to be faced to so webassembly crossed short communication rent state merkel proofs like abstraction and i guess it seems that the that all of the kind of big parts of phase two were kind of rough are kind of roughly figure it out at least in their general form and

and I got the improv the impression that people seemed and if fine I'm fine with it but then there's obviously I bunch of small details still to be figured out it's be like the thing I use things I want to were basically the same as the posts that I made I think one time on the M in the 2.0 specs issues and the other assignment Magicians cool thanks and so we do have videos of all of these sessions that SEP for the client architecture because we only had two recordings that was because of the way the space is set up and so I will get those out as soon as possible and to my company notes again thanks everyone that

can make it and thanks Sigma prime for doing some of the hard work getting us the space and stuff cool next up on the agenda is research updates are there any research updates [Music] the research team has more less rough consensus I'm trying to do a spec freeze on the critique of June which is basically the end of q2 in the last like two three weeks there's been lots of simplifications that was still a few simplifications in the pipeline regarding deposits and centralization

cross-links civilization abstraction zero values for a subject's and stuff we've also got the BLS standardization kind of moving forward now so we have fortnightly calls initially with al-quran' but now we have a firm people al-quran she also ledger the the manufacturer of the Nano s so quite a bit quite a bit of engagement there we also are looking into constant time hash functions for hash g2 and in addition to

the traditional method which is called the fook Taguchi apparently there's a new curve that's just came out by Dan Bonet and Ryan Bobby so I guess we'll be discussing that mmm one thing that I think this rough consensus around is moving transfers to phase one so no transfers in phase zero I guess part of the rationale there's to take a slow and steady approach like transfers would be the main you know economically meaningful type of action on phase zero so if we remove them we are kind of

signaling that it's mobile test net and if there is some sort of network disruption that we can do a large rollbacks without having to worry about these these transfers and it will also hopefully allow us to should face the road earlier and and on that note in terms of trying to you know ship phase zero early where we may postpone the random early reveals for phase one as well and also partly because they're kind of bundled with with the custody he reveals which also phase one one thing that I've started working on locally is invariance so trying to find to start

with invariance in the state so static station variants and the idea there is to try and run the invariance check for every test that we do including including fast testing so kind of a new perspective on the spec which is interesting and I guess thinking forever down the line for Phase two and that's kind of a one of the outcomes of the workshop and is a kind of transaction abstraction so the idea that in in DBM to puno we may not have a notion of transaction where basically

everything is just a contract in the contract call which is an idea that's to to be quite quite nice and powerful with a few downsides yeah so on that topic I've been recently starting to think about how to do like fast cross road transactions basically I mean the approach that I've been promoting so far is this big strategy of the Slayer two thing where you basically you can include receipts in from one shard into another shard before the second shard

kind of formally learns about the receipt from the first shard and then what happens is that inside of the second chart you store a conditional state object so you have a process that kind of runs behind behind an epoch and resolves all of the conditional objects but that's just a kind of very big category of ideas and within that there's the challenges of how to avoid exponential blow-ups how to actually store state how to just make the whole thing work sanely in in a reasonably simple in general way so I've been I'm still in of early stages of mentally trying to figure out the best of the best model for this sort of thing so

like the general approach that I'm thinking about is that you can have state objects in one shard that store and a dependent that store dependencies and so you would have potentially multiple copies of a state object and you would have some data structure and that basically says this is the state objects that I kind know is most likely to be to turn out to be correct and so this is this is the one that means that a transaction can work off of and the rest of the objects are just there and if in case the first one through turns out not to work and so what this gives

you is the ability to do this kind of optimistic fast path and it almost looks like you're at you're getting actual state transitions cross shard within a couple of seconds but then actually it's done on top of this thing where they're real state transitions only happen after a couple of a couple of minutes and the challenge is basically just making and making that whole thing kind of lorca maximum just and feel maximally elegance to a use and work with so realistically the way I see this happening is that there would be

one contract that you could call a kind of hypervisor and transactions might actually might end up actually just being calls to the hypervisor and then the hypervisor would and if do logic that says that basically just manages these different state objects and then the transaction itself would have have opinions about what kiri opinions about what dependencies that things have been satisfied and then based on that diaper Weiser figures out which contracts to modify and you probably have to do a kind of internal sort of call capture thing where if one contract makes a call to another contracts that call itself

gets sort of rerouted through the hypervisor and the hypervisor figures out like which version of the Contra of the contracts it goes through but the group basically the good news there is that it seems so likely that all of this can be done at layer two which it which would be nice because then it becomes seamless there and if upgrade hypervisors and try out different ones over time great thank you another comment on the transfers so I think the intention here is to launch with the max transfers per block constant at zero and I'm actually in favor of before phase one to coordinate a fork on enabling

transfers simply to kind of practice a hard fork before we with the fork any mechanism before we hard for phase one but that's up for debate and discussion for that online any questions about other research updates is there anyone from the Pegasus research team I think they're having network troubles so they can't participate yeah okay so next time and maybe they'll leave us a text update any other research updates for a move on or any questions about what was said yes so

this is from BSC this is more of an academic update perhaps rather than a Sunday because it was important I just mentioned that I have give a couple of classes on the last few weeks master that is focus on project energy and I more or less explain the concept of a chart in material and I have presented the simulator to France and a supercomputer to the students and so they have been playing with this simulator a little bit so yeah there is a little bit of academic dissemination on that side and just another quick note I met with Ken last weekend on New York and in Europe

and we discuss about couple of ideas on how to continue this project great Thank You leo okay cool any other research for move on great moving on to network updates and discussion Felix is here so actually I was gonna do the let's do discovery first Felix is there yeah nice so I posted it the link on the agenda to the call so I think we have the discovery before expect 95% so there are still some tiny things to figure out but

basically I think almost everything's come together now I have a go implementation of it it's not as completely suspect so at some point it was ahead of the spec now it's behind again I was sick this week so I couldn't actually do anything but I'm guessing that we'll be able to actually I don't know like test it out in like one two weeks time so what we need right now on the on the Discovery v5 is just you know extra eyes on this back and just you know to see if the if the Crypt is okay so we changed from the last update which was I think three weeks ago and they call change quite a

few things so there was like it's it's encrypted now so there's like a key agreement handshake and some of the actual messages in the protocol and simplified and there's a lot more documentation in general like about the protocol so we have a dis packet and it is a spec is in three parts now so we have a we have the actual wire protocol spec which is really short so it's like 1,500 words approximately then we have a sort of theory document it explains how to implement it in terms of algorithms and data structures and then we have a

rational document but this one is outdated at the moment so just probably like the next update to the spec is probably going to be to just update the rationale to explain some of the design choices better so this is where we are at the moment and I'm actually really excited because because there's just not so much to do anymore in terms of figuring out some of the problems so I guess the the the big next step is just going to be like you know having it audited and seeing how the implementation behaves and then you know maybe having a second implementation or test against before we can like launch it great I was gonna ask is it would it be a value to have another

implementation have a go at it yet or maybe sure I mean at this point yes absolutely so I'm there is that I mean if anyone's interested and you know has time I don't think it's like particularly complicated especially if you already have like a before implementation because you know most like some of the data structures you can just reuse there is definitely you know we have a voltage in in in Goya theorem because we we've had you know for the for the topic advertisement stuff we basically already had the implementation from the from the two-year-old prototype that we've actually been using for two years so we can already know that you know it's not

obviously broken in in in in those parts but but the wire protocol is like brand new so it's that's actually most of the work was which is you know making the wire protocol work so they actually did a structure I just used the same thing that we already had for the v4 and from the from the earlier prototype so it's not not changed all that much in general I just think you know it would be best if like some people whoever's like really internet working who just check out the spec and you know tell me if there's anything obvious is wrong or they think something's wrong maybe something needs like to be explained and to be explained better we already had one issue where someone asked for some clarification so I think

this is definitely the face for this now to just check it out maybe see how easy it is to implement and you know ask questions and and so on you know really I'll do that sent one and I mean bird until tomorrow so if you wanna meet up yeah sure so we could definitely meet up like either today or like I don't know yeah yeah cool thanks cool yeah to reiterate this is definitely one of the big not a blocker but just kind of one of these unknowns that we need to resolve so if the networking person from your team can take a look at it and provide feedback as soon as possible

that would be awesome and if you if somebody does want to take a whack at an implantation let me and Felix know cool anything else Felix on your side no I know things like nothing else all right cool thank you it's exciting great and we have Raul from Lupita P from protocol labs here today Rolla do you want to give us an update on what's going on on y'all soon yeah so one big change on our end something that has been Hey for a long time entry consolidating and basically pulling together all of the instructions that make up will it be to be into a single place so that it's you know it's easy to reason about the

system to understand how things are wired together and so on this is taking place already in the current gravitation we are basically deprecating around fifteen records which is a very huge number that I'm very happy about and and yeah this is I posted a few links on the meeting agenda for today with a few but the forum discussion and the issues and so on so you can participate take a look at how it's shaping up in the in the branch where this work is taking place and so on and and just just take a look around and poke around that is the main update update from my end but I just want to say that and you've probably already seen this because I noticed it

in several places that we have opened up our forums they are now GA finally so feel free to to create an account there and start a discussion I don't want to be a bottleneck for you guys to indeed here in community to interact with them at the TP community so that's pretty rich these two communities together and have a free flow of conversations there great thank you I guess a moment just for the p2p discussion and questions in general anybody has any and we do have a handful of notes from the session and we can get those to you

anyone lead p2p before move on okay well yeah use those forums and maybe let's just have to talk about next week okay Matt you have any updates on the phase zero networking protocols hello can you hear me yep yes cool so there's a bag of updates that I have coming that I should have ready by like Tuesday next week so specifically these are changes based on

feedback serialization the contents of the gossip sub or not gossip sub but the like the block propagation api's and then a couple more that I'll aggregate from the notes so you can expect those to be open on Tuesday and ready for discussions thanks Matt cool so there were a couple of issues brought up on using SS network serialization anybody who had authored one of those I want to give it up just a brief one what's going on in that conversation specifically I mean I could yeah I can give an over

giving overview if you'd like even though I didn't talk the yeah please yeah so the context for both of those issues was a discussion that we had around some of the limitations of using sse for the network so specifically if you use SSD for the network you need a predefined schema which doesn't work for the RPC sort of request response wrappers that i defined as part of the networking specification so that spawned Yonex issue which was basically to point that fact out and try and find ways in the existing a suspect in order to make that work and then that also spawned discussion with justin Drake and the

folks responsible for creating the SSD spec to see if there are ways we could change it to make the word and so the proposed changes were effectively the introduction of a union type which unfortunately does not completely solve the problem so it still adds functionality we might need later so there are two pieces that are inside that porpoise there's the introduction of a null and the introduction of a union type which will allow us to have richer data structures for structures that we do serialize using ssz but for the actual like request response payloads I'm just not going to use SSE and just use a sequence of bytes just because it's massively easier and

expresses the data inside those request/response wrapper objects simply enough without having to introduce big changes to these serialization so that's the sort of story there thank you for the briefing questions comments about the path forward here are these new types or anything is veteran an issue or PR but we can review or discuss on yes so I just shared eight six one and eight seven one in the chat which I believe are both related and then I shared the

PR related the Union type and Melo type in SS so discussion can definitely happen there and it looks like Matt is going to be releasing some of these updates next week and so discussion can happen on that PR as well okay and was eight six one is that relay is that the same issue let me go check on psych yeah it is yeah so that can be resolved okay cool thank you okay any other thoughts on this particular issue forum the one is

does anybody feel strongly about this union type and null type being added no would be nice but it's not extremely important at this particular juncture so like if there are any concerns at all about how the null is implemented I say we table for now okay well we can continue conversation that PR okay thanks everyone on that great and then white walk is reopening some of the gossip sub deployments essence act you have any updates on that no I I just

started a new repo for it and I just repurposed everything from our work last year with III search I'm gonna be writing out the test library and sharing it all in that repo so feel free to check it out any feedback or collaboration on defining the test test plan would be appreciated but I'm gonna start already started on this week so great can you share the repo please yeah I added it to the big get for the call okay great thanks so when I wanted to say that's that can I have been in touch regarding saluting them for this and I put them in touch as well with the lead

developer of concepts table so we can help you refine that test plan and support to you whenever you find roadblocks or whatever thanks thanks a lot appreciate it and here's is the is gossip stove used by anyone in production right now I have to check I think yes let me let me start go back with the team and and get back to your map okay cool it'd be good to maybe sync up with them and see if they have any metrics or insight yeah yeah that would be easy will you all right thank you cool general spec discussion I want to highlight okay so we're we have this

this looming 0 6 I kind of want to get it out tomorrow because it has a number of testing updates that I'd like to get out but there are a few things still pending so we're debating on whether to wait on getting it out for next week so I'm gonna pull up a draft PR today I like to take a look at the complexity and things going on and make a judgment call so that to be released in the next seven days I wanted to highlight that before we release it that although there are a number of changes it's almost entirely bug fixes and simplifications I believe that a lot of code this is going to be

simplifying and removing a lot of code and making a lot of things clear and the testing coming along with it is also much simplified and better so I just wanted to give you all an update on that for any other general discussion on the spec I know Terrance you had a question earlier would you like to ask that here yeah yeah so the problem that we're running into is we see there's three different of a scenario so one scenario is that you could receive a backlog and the backlog to just be a passing issue and then we

could receive a block that's from a for chain and then the third scenario is that we can receive a block that is from the canonical chain right so let's say if we receive a block that's bad which has a bad signature I think we should just drop the block discard it and then if we receive a block that's from a fortune we should probably save it and then update the registrations with the latest stasia targets because that block could be the head sometime again so because of that we want to save it and then if we receive a block from economical chain would you just process it normally do you guys agree with this type of approach yeah that all sounds sane when

you are processing a block I suppose you eat either building on what you see is the head or not but regardless of whether it's building on the head of its building on something that's in your block tree you should certainly process it and see if it is the head and save it for later use so I think we're definitely in agreement they're bad blocks should should be dropped there's there could be there could be at two stations and a bad block that you would want to keep if you hadn't seen them before but I would put that as an exceptional case that you wouldn't necessarily want to program for at the time for the time being so one question that I had was that safe we

receive a block but then it's from a different proposer and that's it we ignore that block is from different proposer and later there's two reorg and in the reorg caused a reshuffling and then and then turns out that blood is actually from the right proposer because of the shuffling so what do we do in that case so the only way that a so that say you have a block from an unexpected proposer if it was built if it if it's in your tree you can still tell if it's a valid proposer given so say it built off something prior to the previous

reshuffling then that proposer would be valid in the context of the branch of the tree and so you could always process it there probably are some heuristics to employee here I mean the naive way is to just process it put it into your your block tree and have it as a potential for the future if you have a block that might cause some sort of like it looks totally unexpected it looks like it's on a branch that is not canonical you always have a heuristic of attestations so if you have a block come in and

there's literally no authorization for it and it's going to cause you to have to download a bunch of other blocks to figure out where it goes or an unexpected proposer there's definitely if it's gonna cause you to do unto work and there's no attestations for it you might put it in a queue and deal with it later mm-hmm so can we um so can wiki find the báb blog it just means a fantasy measure that's it so write a bad block means it through in the context of the Python spec it throws any of those assertions in the block processing I see I see so you know so if you throw any of those assertions we just distorted it we don't

save it right correct okay sounds good thank you yeah yeah and I mean that could be because they included it's a bad proposal signature they included invalid at two stations it pretty much anything that they can include in the block could be could make it into a bad block we have a we have a queue like a queue that we we build up like as we sink we build this queue and then we try and process the queue so we have to do just like a little bit of extra logic on top of that to be like is it is it should we discard it from the queue or should we leave it in the queue and try and process it later so if it's if it's like the case where we don't know its

parent but it's not necessarily invalid then we keep it and maybe try and process it later same deal if it's from like it's the future slot that's like ever-so-slightly maybe the next or something like that so that's just something that we've come across that makes sense we do the same thing in Nimbus we have a block pool which run in a separate process so during the block processing if we receive a block with that we don't know about we put it in that pool and we have a separate process that just checks and ask the network well I don't know about this block give me information and if

something is is missing because we are missing that block and a lot of block in the middle we ask for all of those as well we don't have eristic to put it for later processing it just we have a process with the Maine state transition and another one for blocks that we don't know about so Sansa you have two parallel processes for that ring yeah also thinks it makes sense yeah so you have a block come in if you can't process it you pass it along to something that tries to figure out the data it needs to process it and then it would pass it back if it can figure that cool and we just have a like a little

flag to flag the time that we got it and then if it's been too long since we got it then we'll just drop it we don't feel like ran with crap any other questions spec comments and things you'll run into that might be worth sharing cool sorry I destroyed Greg's comment okay I guess we can move on from spec

discussion as always head up the getter get in touch with me or you know actually at this point the clients there your Co clients can answer lots of questions cuz they're seeing a lot of these problems in the law as well cool so open discussion anything anyone wants talk about you know yeah I just want to reiterate what Johnny was talking about this workshop we're gonna do May 16th in New York it's kind of in between consensus I assume nobody here is going to that and in between consensus and

East New York it's just a day in between we'd love to have everybody come out I think there's been like a decent amount of commitments from the various implementation team so we hope either yeah I'll be there excited and the topic again is road to interrupt so test Nets testing plans project management all that kind of stuff yeah some of the agenda is still being drawn up but that's kind of like the overarching theme right is like getting from where we are now actually having a test that we're actually interrupting in between our various clients yes agenda we'd love to have you at it you know I know from

experience this is a bit easier said than done but if there's a way for people to call in that'll be great just so that because we're it we're pretty far away so it'd be cool if we could promote in we came down to see you guys come on May the amount of times I've been to see you guys it's not even know we'll do we'll do our absolute best to try and get that I'm still kind of like working out some of the logistic on that but yeah yeah we're gonna do our best to get back thanks appreciate yep so for this week I hope to finish the CIA infrastructure so we

have the test from the test generators output to a new repository difficut all of us supporting like large amounts of all these test outputs and then starting from next week out like support from clients to start implementing test runners the program's executing the tests and seeing if the clients match the expectations and hopefully also see contributions back to the testing and see some new generators so if anyone wants to like collaborate on that and start coding test generators like message me and we'll get started

starting from next one man so yeah Diedrich built out some cool general purpose tools for creating the generators so should be relatively easy and if we get a couple hands in there we can iron out even more okay so interested I guess we can go on the a forum 2.0 tests jitter to coordinate or to say okay I want to work on SSE or on whatever I guess yeah proto you're in that get irate yes just

a fellow together and this court as well cool Greg you raise your hand yeah I'm using features in there is did anyone started discussion on a validator to be container peace third ball RPC or whatever we end up choosing I didn't insert that discussion for mine and it's somebody from syncope was gonna do it I haven't seen ya yeah I think Luke was gonna do it but he's just going on away I'm not sure I'll try and fall off with that but I think he's out of reception yeah nor you can Paul do you have I took a picture of what y'all had drawn up on the board do you have notes from that if

we can just do like a dump of the ideas from the session that'd be good can do cool thank you anything else actually what's the discord the produce was referred to before good question so there's this bridge from the guitar chance to discord channel so you can either chat in the discord or on get there it works you got to see the messages anyway guitar smart

reused I thought it was a secret channel for like cold testers there's this public discards from the if your information with many other projects as well and so there's this one public channel the bridges the discord Decatur hey users but I'm there if there's anyone that prefers this course I'll stick with Gator I have enough chat apps thanks to too many shadows migrating to discord from Gator no I just like having space travel do not

migrate to discord okay thanks bye actually I discovered that jitter as a search that is working it's just strange in term of ergonomic but it works try anything no it was an accident ok cool I think we're gonna close the meeting it seems like now that we all have a ton of to do these meetings are a little shorter ok thank you

everyone will plan on meeting in two weeks I'll send an invite soon as always it has happened get her lots of stuff going on and the spec repo and talk to y'all soon thanks everyone cheers thank you I thank [Music] [Music]

[Music] [Music]

[Music] [Music]