All Core Devs - Consensus #21
All Core Devs - Consensus · 11 Jul 2019 · 2:09:21
Eth2 client teams and researchers cover testing, including an overflow in slashing, the spec freeze and fuzzing, then client updates, research updates on phases 0, 1 and 2, PegaSys and Runtime Verification, and network updates on libp2p and gossiping mechanisms.
Speakers
- Raúl Kripalani
- Danny Ryan
- Mike Goelzer
- Vitalik Buterin
- Diederik Loerakker
- Justin Drake
- Jacek Sieka
- Jonny Rhea
- Dankrad Feist
- Preston Van Loon
Topics
From All Core Devs - Consensus, hosted by Ethereum Foundation.
Transcript
[Music] [Music]
[Music] [Music] okay welcome to the call the stream
should be switched over I will await confirmation from the YouTube chat box that is successful cool can actually get someone else to test their levels just anyone say hello okay perfect levels look good okay let's get started everyone should have the agenda 255 sharing it in the chat right here we will get started with some testing updates as usual prismatic I think Terrence found an issue where the
calculation and slashing was due to the way it was formatted was overflowing potentially overflowing and I think in a tester to overflowing the UN support where I have a few relatively non substantive changes some fixes and documentation things thank you and Boozer 8x branch that includes a fix to this that just kind of alters the way the computation is happening so there's non-substantive but it doesn't overflow this one seems relatively important to get out so I think I'm gonna get out this V 0 8 X win the next few days which has some of the
other minor things that people have found that's a lot of fix it's maybe that testing issue if anyone else is running to it let's see proto do you have any updates for us oh it's just spec Freesat so for now so you get you get two builds more and focus less on this on like they're enough to the spec now can actually build so it's guys agreed great yeah there's I'm sure even after the threes are going to be expanding coverage of the tests as as we find some stuff to do I add cool
and any update on fuzzing so the goal here is to try and provide the basic facing infrastructure for all the clients so that client implementers don't have to worry too much about being compliant with the state transition function and you can spend most of your time on you know what makes a client a client I guess like networking databases so it you know we've started with high spec and and and the go executable specs and I think the the next target for
integration will be lighthouse but hopefully a lot of infrastructure will be generic for for all the clients so I guess that might come in the next two weeks hopefully cool yeah well I guess get the experiment around with one and then learn some things and tie everyone else a great cool any other testing things before you one for our fishing we are facing 0.8 and go excuse post focus almost up to date and the PI spectral radius and then it's really able to like lost like the first clients to also be
on the same spec first you I can start so something about the fuzzy and how do you drive it hello like how is the passing driven what what's the input so this the problem with first thing is that we have two kinds of inputs refer States we have blocks and a state itself is pretty easily randomized contains cryptographic content and it has all these validity assumption since you already built on solid-state Preston blocks you are you can have any kind bloke right so these
are like the attack sector you could say so you're facing blocks now and you're extending seconds KOCO ha echoes of of the priests at but then only then there's a Fed at post at the extent this copper so the like generally you could say we were mostly focusing on blocks now they are looking to make this extension of the state's more intelligent so you could actually make more progress in like where like a giant tester you have more different priests that's being first so what's the difference between that and the Yemen
file is particularly constructed tests so given a pre state and given some input that we want to hit certain conditions certain bounds so maybe a normal path or maybe testing right on the boundary or testing right past the boundary so they're they're like particularly constructed tests you know something that you might write in your own test feet whereas these are taking pre states and modifying blocks generally at random within some some sort of balance and just applying them to test things that we weren't necessarily thinking about does that
make sense yeah yeah I'm not exactly sure how the ef-1 works been amazed explained how our one works and you start with a like a valid block or some valid object that that kind of reaches as far into the code path as it can then the fuzzum meters all your code and then it randomizes the fields of the original object you gave it and then detects if it explores new code paths and kind of smartly tries to expand itself out to cover as much code as it can by like randomly modifying the or deterministically but somewhat randomly modifying the object and then and learning about how that affected the coverage okay yeah because the phasing that proto outline seemed like it didn't
check the bit patterns also code paths that were exercised by the framework I'm simplifying into little bits here that's you add the randomization of the book is done by lip for sure and that checks the coverage and then tries to randomize it asbestos good just the parts that improve coverage but again a sin you don't want to first only one priest dies it's more complicated than that and there is a randomization aspect go any other questions on this before and even
Oh Preston has a question how does the fuzz harness look is it live buzzer an existing tool or existing tool compatible hey I think proto just answered that he said that it would be using live fuzz to basically you get the signal feedback did you get farther through the test or was this a worse fussing scenario so that answers my question thanks alright so I think some people here are already familiar with look first bit for sir we have Peter working on this with lots of experience with its and extending it and so it's like although is just saying about these two different kinds of
states are working on we have the beacon States and the block and we just don't want to involve if off only the block inputs because if you're always first thing the same states you don't really get the same coverage as you could if you're facing multiple states so this is where we're trying to improve on the normal art architecture and then it's yet somewhat similar to MIT for service since this is what's being used internally the current approach was good enough at exploring many different paths and and finding bugs I think the speed
of high spec but you couldn't be slow so hopefully once we do differential fuzzing on comrades a lot of our performance chefs because back and hopefully also have clients I think with by spec is that there's these functions not really pleasant outs they all inefficiently repeat themselves we not pretty computing anything and now in the next go updates in goes back updates i optimize your playing i pre compute this week we do that so we get have almost client speeds back i tried to keep the
sweet applause possible right one of the paths might be to differentially fuzz against the goes back in clients and then if we find issues so then go back to the PI spec and make sure that where I dream it on what functional it should be ok let's move on buzzing thank you we'll keep you updated with minutes on that cool so client updates let's start with Nimbus so we launched a test net1 based on the p2p demon this morning we need to adapt the script because so that it
starts with a single common because a lipid EP demon is not built but it's almost on so pretty soon I guess by the end of the week we are working toward zero point eight all the small change were integrated and right now big focus are is SSE and we also started to align or status function with perspec in terms of naming and this is also to improve and facilitate testing and we had the significant parfum provement during the past week accumulated 20 to 30 X speed
up on the state-transition bench we identified three bottlenecks in process cross links get cross-linked deltas so both come while we are the technique speed improvement and get cross-linked committee via caching we improved by two weeks as 2x the speed so I can put or PR in in the chat so that if people are interested in seeing what we did they can reproduce since we follow the spec naming it should be very easy to
navigate now we also published metrics library for primitives compact matrix I'm adding the link to the chat as well we have it was research library and we are very happy with so we have studied the language in name the domain specific language that combines to it wasn't and it's quite competitive in terms of
contract size so I'm posting the link as well and lastly on a frame one we had some connections issues that were resolved to power and yes and that's all great thanks Congrats on the was 30 X feet up let's move on to Artemis um so you've uh we've updated to there especially with the SSE and we've been
also thinking a lot about a tester slashings computation worst scenario and it also like um we kind of kind of see the need to investigate the network load you know from the anta stations decide what strategy to use so um that's just kind of the stuff we've been even thinking about let's move on to Trinity so regarding to regarding spacing is he
has been synced to the version 0.8 and the state transition update is outgoing I think it's almost Lera thanks to Alex and for the networking side integrating with the piety the library and we found some required issues that we need to fix on the lab string library and also frequency we have vaccines interoperability requirements and there is secure connections stake I'm posting
here and I think Kevin and maybe at all we will introduce it in the networking section I mean after the clay updates Trinity say thank you thanks about youth hey um so I was doing some stuff with like the inner up guys last week I started helping out a bit on Artemis but handed that off again so now I'm back on updating east to the latest spec version cool thanks
harmony yeah we've been pretty much work on an update to 0.8 spec we're almost almost there but mrs. Z part is still in work in progress also we started to work on a slot clock mechanism which is based on network adjust time proposed by vitalik we have a PR so far with basic implementation of that proposal going to take my time on that also so we have started a small research to investigate into the station aggregation strategies
the goal is to evaluate approach that doesn't involve build in additional other ways like handle 3 and working on minimally p2p or gbms and work worked on multi-stream implementation recently that's all from outside great thank you glad to hear there's progress on the lighthouse hey-oh so the same as everybody else we're
progressing with updating a lighthouse to version 0.8 which involves three optic we have to re-up demise out rehash caching to include for more padding nodes so what we reasonably doing we're defining more extensive HTTP api's which is working to improve dev experience map from consensus or quilt is building out some SS ed partials in into our code base which is good we've also slowly been testing out our initial version of discovery v5 in small test nets which also seems to be working hasn't had it too many issues so far and we've been walking working to us
standardizing like a lip kind of a minimal or final there p2p specification for clients that are using the p2p and in doing so we've had to update our RPC in particular there's been discussion about for the RPC to be using separate particles separate protocol ID protocol IDs prayer request and there's PR which I'll link where we're trying to come together as to standardize to basically put it be implementation that's it from us great who's that it hey guys we caught up to be 0.8 we are passing all
the specs just figuring out some final things in the Genesis trigger one thing that we want to bring up is that we noticed that there's a lack of coverage for some cases across suspect s so for example we passed all the SEC spec fest but then we were pretty surprised when we saw that we that says he failed in some of the block sanity tests the reason was because the way python converts the length for the mixing length into bytes kind of did not cover longer types of links so like for example if you try to the way we were encoding the length and go like there was a there was a list of values I was 512 in length when we included that and go it gave us a
different mixing length and we did in Python due to some edge cases and putting variants so yeah so we were just pretty surprised to that I think just like having a little bit more coverage for like longer longer based lists can be good in Suz but that was just one thing yeah it from that we're getting ready to start optimizing prism and working on toward improvement beautician testing and just more robust improvements to the to the client yeah we're pretty much caught up on the latest stuff nice Congrats yeah I mean if you do find some lacking in the test please report it and or add tests I definitely I see how that could happen the PI the actual specification and test
facilitation got a lot of love and maybe not on some other peripheral testing but thanks for playing about cool let's star so yeah like everyone else we're just like trying to upgrade to 0.8 we began starting now that things are kind of like more stable we're starting to actually build out a lot of tooling stuff so we're separating our our types exclusively so that like in the JavaScript world you could go and actually import like eath to types and look like react project or whatever down
in the future and that also helped with like our providers and stuff like that like a web 3jx provider that says z is almost up today we have a branch working we're just gonna like ironing up some bugs that we were working with proto in prison went and we should have that up to date on symbol see our eyes calm so that you guys can like tested out online and and we're working towards ensuring that BLS works properly in browser as well although we've been running into some like peculiar issues and we'll keep you guys posted to find anything we're also working and trying to get the using or rumi again so that we can have some diversity in DLS in regards to the
client though we're comfortable now to start actually doing block production so as soon as we finish our upgrade to eight will actually start getting our test net so that we can actually see kind of how that will play out and then getting ready so that it can work in browsers so we can have an in-browser natively written one and and then on the side we're also hire a bunch of assembly secured we picking up now that we've frozen again we're also working and going back into the assembly scripts and getting a bunch of natively written code so we can execute blossom in some section so we're going to try and see how they'll speed up some of the
shuffling and whatnot and also so we can convert as I said into a purely assembly script so that we'll have native Lee and and see how that increases speed in the browser as well so just a lot of focus on kind of like getting ready to view dev tooling yeah it's kind of ready Oh awesome we're going after you guys on the ERC 20 contracts the wild one will get you challenge accepted what do you mean exactly there there's a little game of
woz and golf going on with the RSC 20 you guys gonna cheat and use a some discrete variable okay atomization library last week which we hopefully want to extend that into a food cache in degree but there are still a few missing pieces there and we're trying to update who's your quad 8 spec issue we had was in the SSD which i think is a quite
substantial change for us it's not as a algorithm change or big but is that now there are a lot more types in the specification requires configurable parameters which wasn't expect because we were using dynamic config and that most likely won't work for us right now so we need to change our config strux to state static types so we have all the type information at compile time so that's what we're working on basically
quite large refactoring of the Cobras so yeah that's right thanks did I miss anyone that's great okay now we have some time for research updates and I was just going to start talking about phase 1 stuff so if your thing is faster maybe third so things on the research side there's lists of - dues
for proof of custody and for shard box none of them are that long probably the big things are well one is that we discovered that that our approach the white clients what that involved like Fiat shimmering and active and experts didn't particularly make sense and there was or and there's an approach that's even simpler which is basically to just sign over the the committee's route and then allow clients to just verify to verify the committee's we're directly
without doing any of this yeah any on the fee hm your stuff so that's nice because they can simplify and they're reduce the cost of the like client protocol quite a bit but there's still some decisions to make around like basically what the committee's are for each individual salon and how they're and how those committees change and I'd be some of the trade-offs there between like basically the struck properties of white clients and properties of old clients and different kinds of efficiency and safety properties but in general like the thing that we would need to do is to just you know in phase
zero including in the block some of route of the purse of the persist across wing committees is probably fine and then in phase one just including a root of be persistent committees and then we get these a nice are really efficient like clients that in even in the worst case or when we slightly less get a less efficient I mean servings of flights per second than Bitcoin black headers are and you know and in the best case are much more efficient that's been like it's so some good news on that friends there's still just parameters to decide otherwise figuring out the exact structure of data in cross
links and like basically the trade off it's me impacting the data tightly versus putting the data for each of the blog headers into a consistent position position and recently I'm actually leaning towards just basically packing the data tightly which would require and it having like be basically just taking the data for each block header in each block and just putting them beside each other so that's something that I have a PRF for but I think that's it's one oh it's one of the possible approach it's also not the only not the only approach so that's the other thing otherwise
there's not not too much to do on the shard block side I also have a PR where I mean um among other things the thing it does is it switches from multiple data stations and a proposer signature to just having one signature that includes the proposer in the at the stations so that's that's their arsenal as an option as well but generally I don't think I'm not I'm not seeing any unexpected difficulties at all on the phase one side it's I'd say continuing to look better and better in many ways [Music]
yeah on e fees to side there's less problem not not much much progress for myself though and at this point there's these well one of the bigger and if issues in trade to think about is still healthy markets would work so and if anyone's and the channels will be interested or Plasma people released there are going to release a post on OPM very soon which
should be nice I think those are the main things cool thanks Justin and one thing to add on phase one is that we're likely to have some cryptanalysis done in particular we might have admit the kamatovic of the new cryptography that's used there so one of the primitives that we're using is called the lujon symbol and we were using it as a PRF and it it looks fine in the various ways and there's very security mechanisms that we can put in place but it would still be
good to have an auditor because if it's not it's an assumption which is not necessarily used in production right now I guess one of the things that the research team is also doing in parallel to phase one and phase two is is more education about phase zero so various people have made educational documents I'm working on one as well and on July 15th at 1:00 p.m. GMT there will be a second if two AMA so that would be a great
opportunity to ask questions and maybe also answer questions related to to your implementation work yeah I mean generally now you know the spec is frozen if you have questions about the design feel free to just reach out I mean I'm for example just in Drakon telegram I'm more than happy to answer your question at the same time thanks Justin any updates from either I'm sure you have any Azam guys but quilt yeah for sure
so we've been doing continuing work or Matt's been doing continuing work on implementing assistive partials one of the things we talked about this in the last call is we are kicking off a basically a prototyped phase one implementation so we can kind of bind together the work around scout and and some of the work that you as some team has done and that we we've collapsed on to have this phase one two and to test net so we can I guess kind of rally people around testing or having something more tangible to test various
environments and and other assumptions so because in general the Scout code bases and rest and we've been we've been rest focused will be going ahead and building that off of the work that was done or so will I kind of go ahead and extend on that to build the prototype so we are kicking that off this this next week also we started diving into some research that's connected to batalik s'posed on state schemes and I think we
you know I need a pretty novel or interesting idea of how to iterate on that and how to kind of build a this on chain multi shard state scheme that can support generalized contracts and so we in this off was kind the delayed state execution model so we're pretty we're pretty excited about that will be we posted kind of first half on e3 search yesterday and then we'll be posting the second half and the applicability to state schemes and if - and multi shard behavior and and what that can open up so we're definitely looking forward to hear hearing feedback
from people on this as there's there's some pretty cool applications there the fee market stuff we didn't continue diving as deep into it this last a couple weeks we've been in transition but that that should we should be able to look into that again it these these coming weeks other thing are our team's growing so we've we've had John John Adler he's on the call he's clapping with us now and enjoying the crew and we're I guess trying to grow for rust rest-based researchers as well and so
we're trying to kind of do more research projects on phase one phase two more phase to focus in parallel and try and expand a lot of this so yeah cool exciting stuff thank you any questions for will for anyone great cool any updates on the Pegasus research team 20 we continue to welcome holdups we're just working on it so the moving units okay any other research updates
for a move on so we have this formalization in K so in the cake framework which is directly based on the specification we have we've done the migration to point eight and what we are trying to do at the moment is have something that is meaningfully testable at least at that at this stage and then going from there there is also the the there's also an abstract model of the specification but that's that's a
lower priority type of development at the moment but but we believe that this is going to be helpful also on the in the future so great yeah thanks Musab is with the runtime verification team working on the K model bazooka chain sorry I didn't I didn't see there otherwise would have given you a chance yeah so the intention is to build out this formal model and and then utilize it to verify various properties about the specification for the downline thank you any other research updates great okay moving on to networking side of
things I think we have some probably some PP updates and maybe some further discussion from Adrian let's start with the VP yeah okay so we do have a couple of updates so first just on a grants front the the grant that we're making to harmony for them the minimal JVM the p2p that was mentioned earlier that should be finalized like Monday so that's that one's in good shape then on Jas the p2p there was I want to ask this group a question about six
weeks ago there was some discussion on this call about jeaious Lib p2p specifically not being quote unquote production ready and so we what we did was we went to the chain flow folks who were working most closely I'm sorry I'm sorry chain safe I have a different company on on my brain yeah um we went to the chain say folks who are working most closely with J slip p2p and asked them you know hey what would you do to make this production ready and so they put together a proposal that is primarily about switching to type safe a JavaScript at typescript and also some
improvements to the documentation and examples and what I wanted to check with the folks on this call is were there any other concerns specifically about Jas Lapita pede that we should be addressing that either us or a chain safe and the reason I ask that is I want to make it granted them to get jsv to a production ready state and I just would like to include everything is sort of an everything anyone feels is necessary I just I will add just live IV has been in production on ipfs for a couple of years
at least so you know it's it's not something that's totally untested but I but I do understand that if you're him you know might have different requirements so if there's anyone on this call who has an opinion about that I would ask the use speak up or or we can talk take it offline but um is there anyone besides chainstay through has views on on NGS the PDP production readiness I'm not certain many other people have taken that much of a look but obviously if you have please pick up otherwise you can find Mike on telegin
talk about it yeah if you want to follow up with me um my name is just Mike gelser just one word on telegram I mean the there's like eath to loopy to be shared channel I mean that one yeah so just yeah if anybody else has concerns about Luka p.j a slim p2p specifically yeah just bring that up with me and then I guess the last thing is um we're working with the I think we'll probably say more about this on the next call but we're working with the etherium community to like answer some questions about you know what is protocol labs relationship to the p2p and just like
some questions about the project in general sort of like provide greater transparency I think we we haven't done a great job of that not because we're trying to actively trying to hide anything but more but out of neglect so I think that should that process is playing out right now and what when we have a written when we have written answers to all the questions will share it will make it public to share with the whole community but so you'll probably hear about that next call but that's going on right now Ronald did you want to add anything I know I think it was a question about the secure transport which it's now being
used that I think Chanel we mentioned earlier that we should address in this block optical so I'll just go just go for it we are respect the insecure transport that was that was a bug that didn't another receiver and of the connection to know about the PID that was establishing a connection to them therefore something for painting and go duty to be which made it difficult to produce our ability tests now with what going to be to be using the insecure transport so when you want to remove sex IOT or the encryption channel out of the question and just test you know whether you're multiplexing is working then this
is a good approach to do so so we are hopefully between today and tomorrow will be adjusting go let me to be to a dear to the news bag that we that we that was written and approved and merged a few days ago so hopefully that will unblock and ye interoperability testing that are pending due to this decision hey hey Mike so you mentioned um you mean you said there are some concerns about lib p2p not being production ready and so you're saying it's not not production ready because it's like been working on on ipfs for a while is that same form that was likely of JavaScript is that in the in the same in the same
form sorry explain what he was approving out it was it broken out of lube p2p and mated to meet into J s sorry was it broken out of IGS ipfs and made into libya was that how did that it was the flow of that yeah yeah yeah uh yes sir I understand your question now um yes so initially J asleep p2p was a part of ipfs it was specifically broken and out into a separate system separately of the Borg everything and but that version that broken out version is the one that J ipfs is builds with now or sorry it's Chava scripts it doesn't know compiled but that's the one that Jas ipfs uses today both the node version
and the in browser JavaScript version okay right on I was just curious about the history I thought I'd I thought I remembered that thank you yeah no you remembered it right yeah this the history of all ipfs implementations history they started the history of the all that started out in in in in ipfs are JSA let p2p and go let p2p but were both broken out of the respect their respective ipfs implementations then the third implementation was the rust implementation that was written from scratch by parody and then every subsequent language implementation like
the the all the other ones you hear about on this call are being developed from scratch but they're all based on the same set of principles and the interfaces and abstractions that go let p2p and Jaya slim p2p years cool thanks man yeah go ahead sorry I have another quick question what is the current state of the spec because I'm probably gonna have to start implementing it if I want my clients to be able to talk to other clients last time I looked at it it was kind of like not that great so I've been working off the go version which is also seemingly
like going through a refactoring what are the states on those two things yeah I think well so I'll give my take on it in Rome I'd be able to fill in some some more specific details yeah we're definitely the the we would like to be we would like for the p2p to be a spec first project and so we have one DOX writer and he's going through and opening PRS on the specs repo which is just lit p2p slash specs to define the correct behavior based on what's happening in the go implementation for different parts of the system I don't
that effort is not complete yet but it has he's making progress in the meantime what we've been recommending to people is to refer to the go implementation which we consider it sort of the reference implementation so then you're asking okay but that seems to be undergoing a lot of refactor I'll let Ron speak to this but the only major refactor I know about was called the core refactor where we pulled out a bunch of interfaces into their own repo and that actually didn't that that didn't change anything in the wire protocol so it just makes the code a little easier to understand
let me turn over a roll though he might yeah that's actually correct so we there are gonna be further changes to literally all of those as like there are there are basically suggestions to bring in you know different different constructs and different approaches to do connection management to handle the ps4 and other things those are going to be spec first so you should not any longer expect for an implementation to change under your feet any longer without there being a spec up front we are being very strict about this so things like for example can SS have
connection management peers towards and some things that are first being discussed as a spec working right so this like this this the situation where you see yourself where you have you need to follow the need of a particular implementation should not happen anymore the core refactor itself was as Mike said restructuring of code but the principles and the concepts and in general you know the the relationships between the different components of the b2b remain the same then right now in just one record instead of fifty proposed so this makes life much easier makes removes a lot of friction for people approaching that b2b like Eugene and so on there are a number of specs that so there is this process by which we draw a line in the sand we
said everything that were you going to do from now onwards it's gonna be speck forest but of course we need to look back from that line in the sand as well and bring up everything that has been done so far up to the level of specking that we're imposing ourselves now and this work is in progress and this is what yourself is working on the person that that might prefer it to go through the Libby to be specs record you'll see there's a lot of updates there there's Mellon index specs are much more you know this like much more easy to approach in general because there was an index that's a table of contents and as well go through the through the open PRS right now in the spectra in the specs purple because there's several specs that are being worked on right now that
are in one stage or another we also a few weeks ago introduced because some of these specs were being kind of like over arriving to like a stage of a lot of Mike chatting and so on and it was a bit unhealthy some specs you know remained and kinda like a drop stage for very long so we introduced a and this was because we lacked a process to define specs maturity so you know it was very difficult for it for somebody to just say hey I fully agree or I don't agree with this when there are different shades of gray and a spec should be giving room and time to mature as the community sees it so and makes adjustments to it so this is now we've merged the specs lifecycle and maturity
in meta spectrum though things are getting much more structured in this department one spec that I think we did it we haven't made a good job of announcing because I think it's pretty important and it unifies a lot of concepts in terms of like how connections are handles how streams are handled how the connection upgrade process works is the one that I'm posting right now on the chat box I think this one is kind of like a unifying spec that it's gonna you know bringing tie in a lot of concepts together you might have seen another spec so I definitely suggest that you go through it okay um kind of still don't understand what the maturity of the current spec is um uh so if you guys are still working
on the go Docs because from my experience from going through the go code what ends up happening whenever I debug is I hit some kind of interface and then I end up playing find the implementation to try and figure out what the p2p code does so is this spec at a current state where I can implement off that spec or do I need to continue going through the go code repeatedly and keep hitting interfaces without clear documentation and trying to figure out what those implementations do myself yeah Desai in frustrations why don't we do why don't we do one thing I definitely like to like provide a bit of like mentoring here to understand as well like what the process is for you from like when you start from scratch and then you know the the new
implementation of the b2b so what I suggest is you know it's very difficult to give you a generic answer because of what specs are modular and specs are not like monolithic documental corpus so it just peak so a spec will have like a different maturity behind it and it should be tabbed upfront like other top so what I what I suggest is maybe we get an a call off line and we we we go through like where you are right now and we provide we establish that channel of communication so we can help you and guide you through the process okay yeah awesome about the unsecured transport does that basically mean that it's an
unencrypted clear-text Channel yes totally big notice do not use in production this is only for testing it was intended only for testing and precisely that's why it doesn't it didn't work in though the PTP with other against other clients against other implementations I'd only worked internally but it is true that you know now that we have a more hybrid echo system there are others that are trying to sort of like test their inner pieces that they're implementing that come after you know the the handshake the security handshake that do not rely on a secure channel like multiplex a other protocols or whatever so it there is some value in having a standardized and secure transport only
make head like babe make big notice on front only for testing purposes so basically what you're saying is that assuming that some client doesn't have sekai o implemented yet and they can start by using discipline which is more simple exactly so there's like different you know different teams are parallelizing work and some members are working on second one others are working on M flex for example is that this enables the M Plex person to test against an insecure version while the other peers where was I hey guys it sorry and one one last question okay
that does it does it authentic eight and or does it not authenticate healer it does authenticate the initial connection so the initial handshake the connecting here so the initiating peer should be having the peer ID for the other end and the other and the receiving end is exchanging its own PR ID and it's public key so the initiator can actually check that is them but then subsequent messages and by its unmodeled educate all right cool excellent thank you yeah so I had a question about the jst PGP so back to Mike's point about the
production readiness of the rescue Libby TP I believe that gossip sub has been implemented by change safe and it's not used by AP effects is that correct i I don't know is it used by a professor oh not yet has not been integrated and I hear this yeah okay so yeah that is correct then yeah but so that would be something to trenchers production-ready just yeah yeah that's a fair point um I understand where you're going yeah I mean there are some features that aetherium who cares about that are although they're like you know part of the citizen ipfs isn't really battle testing them so yeah the
modular nature the system means that there are some things like that and I do agree we need to do some testing on gossips so yeah and for the record at the EDI FST would be super super happy to intake gossip sub and to add an experimental flag to enable it just like the go ID offense solution is very project has done and and even conduct interoperability testing out in the world with ipfs I'm positive enabled both goal in Jas yeah for transparency like the main reason I'm hesitant want to make sure that it's actually in like we have more people than just us looking
at is because although I know that like clients are kind of today kind of might have got blown up a little bit but as we approach doing like clients like that so what are one of our main focuses and like I want to make sure that you know people can actually have a like Chrome extension like client in their browser and it's gonna have to rely exclusively on gossip said so that's like really important so I do want to know like what steps we can take to make that hardened yeah so this several terminal things here first of all I would definitely have I would I would definitely start a
conversation to integrate your work concept selves into JSI DFS as a medium before shipping into an actual finished product to the world secondly we are working on a test lab infrastructure that would allow us to deploy different clients at scale and test the interactions between them and measure and so on so that would be another another avenue to conduct this testing and yeah then we can even look at you know different other projects that are using J has to be to be out there there are several of them including that come on skin and so on that we could then are specifically using pops up as well that we could you know potentially
like how the conversation worth doing - great gossips tested hey quick question I apologize if you said before I was coming in and out but is there a date at which you plan to have the specs kind of you know finalized I guess or to the point where you expect people to implement against them yeah actually we were just having this conversation yesterday we we don't have a date that we've committed to yet but but we're thinking that we should we should create one I mean you know to font define a date so the answer is we don't know the answer yet but this was one of the
questions that came up with just about project transparency and stuff in general so now we're thinking about that so maybe we could update you again next time on what what decisions we make there yes that's good thanks yeah I just put out on just on the subject of specs for one second the biggest bottleneck for us is actually we need to hire a second specs writer and so if anybody on this call has anyone you can refer to us who's looking for a job and who does you know technical documentation writing that that would be really awesome that's sort of the biggest so might be higher or how
can we help you as a community to actually get the job done oh yeah that's a good point I mean um we definitely would be receptive to pr's I think people who understand the go code base well would be the best ones to write specs for it and the person to contact is to you so if you go in the spectra freako you'll see a guy named use of use of napur why you SEF and he's the one who is primarily responsible for writing the specs right now so you know if you if you have some time and want to
bud something off you could hang them on github and ask him you know what's a good area okay sorry so what I'm thinking what I'm thinking about Mike and Antoine is now we can potentially create like that's pipeline that we have in this sort of like calendar that we've discussed we can we can make that public and create kind of like a like a stasis matrix where people can see what the status of each element that you know has been sort of like in the pipeline to spec is and get involved we should basically create an issue for each of them so that people you know winning to participate in this and this African can really jump in and help yeah and I don't know if you're looking to
hire I don't know if if I hires going to work out I know the local lads at grants to help kind of implement and develop the ecosystem so I know for a fact that there's several actors in the same community would be willing to put themselves to work on that so I don't know do you want to open some get coin grants or bounty system that might actually help speed up the whole thing yeah we would definitely be open to making grants yeah yeah so far we have we haven't been using it get coin we would like to we just Esther haven't had time to yet but yes if there are people who are interested in grant based work
on the improving this badness yeah we would definitely you sniffing I get in touch with this okay we have some other things I want to take care of today do you have obviously is continuing a conversation on the PAP specs development etc we touched me reach out to Rob Rob will reach out to Mike I do want to highlight this PR that actually was the combining of two other PRS that age has up right now there's already some good conversation on here but I do want generally you know someone from each team that's on the networking side to take a look at this participate in the conversation because we some of this
stuff it's not majorly important from certain respective but very important to conform on and get people talking so it's something I want to get merged relatively soon we can continue to iterate on it but we want to kind of get the bones in some of these core directions in place so please take a look at pull requests 1281 script conversations going on right there already but let's age is there anything else you want to say on that for move on not really as it as you said it's pretty iterative so ideally if people could have a look and just put their own opinions I'm sure people have got their own implementations which may be difficult to change to what we've
written here so I know that I've had to rewrite a lot of stuff so if that's the case just let us know we can modify it cool do you anticipate that we can use the same discovery for each one in these two at some point we're using disc v5 at the moment and that seems to work well I haven't actually made it if the question is is one gonna be migrating just v5 the answer is yes so the intention is to use the same unified discovery and even ours across both that when these protocols exist in parallel across both verticals
it's not the question and yeah yeah that's the question and basically share DHT table as well yes all the unknowns will be on the same well table whatever you want to call that piece right right here you're advertising you know are you beefing are you two what topics of each or your light client server like my stuff to kind of unify discovery appears across all right no yeah I know an update on discovery b5 is that helix is I don't know there is an engagement but there's discussions with some people who are gonna do an audit of the protocol he expects probably some iterative a little
bit of iterative stuff on the actual spec itself after that finishes and then he's gonna be on that probably do conform assistant was like that cool any other updates any other movement on networking things that people wanna discuss sure I can talk a little bit about the the effort that took place last week internal that's of interest yeah so internal last week we had three common themes in same room we had Artemis we have prismatic labs and we had lodestar sitting in Toronto at the chainset office thank you folks for
hosting so we were able to have an exchange of handles between prismatic and Artemis using the simple hobbits approach we are kind of learning on that this is interesting because most of the ugly bits of this has been more on the people and making sure they communicate and collaborate then the technical side Finkel site itself given the hobbitses is not too complex so we're able to move pretty quick the next step for us is to take it to the next level with I think the ability to gossip bits between the different instances we're also trying to gauge from the McDow tester and also the
only work that we did into creating this type of test nets what does it take to create a test bench where we would be able to really create genesis event make it possible for all the peers to recognize each other even over static steering is fine for now and to start having an exchange of blocks at the stations so that we can really make sure that this is working all the time so there are two efforts in separate on parallel one is to work on that gusset being approached right now the Gustav is extremely simple we just send one message to everyone saying that we have a block and they can ask for it or they have we have an attestation and then you can ask for it and we're working on
creating all sorts of utilities and tools so it's possible for the community to run at net with the various clients so there are a number of stylization items around the keystore around making sure that we can all generate the same genus event and that you can work with for example a gift note on the local network they can generate that from UM from a state from the from a contract being deployed there one thing I should note that at white block we have the ability to snapshot the state and so recreate des that's where the states are these snapchatted so it would actually help move much faster on doing that so we will use that technology as much as possible to shorten the days I call those always
takes quite a bit to recreate the the whole set up every time have any questions I did want to point I know I think some clients are currently gossiping hashes and then doing RPC calls or retrieval of those that data I believe are our assumption right now is that the latency of that is going to be too high in production and that gossiping full objects is going to be the proper path but we this to a point where it's very very simple for the reason of just handing into a party the way it's going to be the way being able election time election time you
might want to use something as good as gossip sub or even just episode where we have the ability to really tune in the number of years and have propagation in a way that it's impossible to stop from a net that cure perspective the propagation of a message but also it's much easier in the network but all this needs to be benchmarked so having a bad baseline helps us kind of fall in there and increase advancement yes I was gonna say I'm and Preston might want to jump in but it was that it was that Preston suggestion that we that we simplified the gossiping mechanism I think he was he was saying that the if they you know the egress or ingress you know charges
really high on GC PE and and that methodology hoped to cut the cost down or something is that is that right we can't hear you Preston if you're talking yeah sorry my mic was muted so I need like your furnace when we're doing the announcement messages so if we if you know created a new blog will announce the hash of it which is you know constant size and then that gets gossip through the entire network and if people hear it redundantly they're not getting this redundant large data they're only getting a small piece so I tell you this new block and if you want
it you dialed back and asked me what what the data is so that's been helping us say some bandwidth there in terms of keeping it simple just I think that's for the hobbits implementation you don't want to take this and we're super complex because it's just to see basic Interop so I was advocating keep that simple as well there what I'm saying though is that announcement of identifiers and then subsequent requests although it does save bandwidth I think is going to induce way too high of agencies on the network and that if anything essentially a high I mean yes the beginning no one knows about it so you're you're strictly
wasting time so there potentially is a hybrid strategy where maybe portion to the slaughter only identify a gossipping identifier but I don't think that the extreme on the end of strictly you got something identifier at the beginning it's gonna yep the property would without for four blocks because those actually have some simple agency but Franta stations it's not as urgent and you can you can still get away with broadcasting like a subset of it without having to do the full full data so it's yeah it's worth looking into but I agree there so there's now like a round-trip if you're turning it blocks out there
pretty quickly and Danny years ago Simon is very similar to me that piece up or epidemic broadcast trees just FYI that hybrid approach right right and we did Yannick we did do some experimentation on Episode a while ago and the what the woods findings your Heinie's there that it didn't really help much gotcha but I think a piss-up is different from from what Danny just suggested because it's not based on timing so if I understood correctly then he wanted to basically send four blocks in the first
half of the slot and then only hashes in the second half there's an episode you just keep track of what information you received from which P and then you decide on on that what to sent to that P again yeah but it still it still has the ability to do the hybrid approach mean it's still a hybrid approach because you have the you know the actual gossiping the full block if it's a eager peer and then if it's a lazy peer you know you just tell it hey I have this and so it's kind of kind of splits the differences my point the thing is it's already in house I saw that I wanted I had this thing is it because I think it's gossip service
probably probabilistic yeah that was my understanding too and also I don't know that any subs actually implemented since we have the lead big guys on the call did you know what's the what's the level of maturity of a piece of folks do you know okay sorry I can hear can you be a pleasure yeah the like eternity of episode yes and the sub was if I read book correct it was a was an idea that you want to work on particularly that's in the pipeline that is not necessarily being highly priorities right now because if I recall correctly the trade-off there is that for episode to be an the use case
where episode is mostly optimal is where you have very stable dissemination patterns in the network so there are very few producers in the network and then of concealers therefore episod by using by using the tree and the broadcast screens and so on you're able to figure out so if like the best spanning tree across the network to disseminate messages that have coming from a very small set of producers so in you know what use case this we don't really have that pattern that's why we haven't really prioritized it much but if this is the case for you 2.0 then definitely I think it's worth is worth reactivating this this particular
discussion yeah I'd be interested if someone has looked into like what would be best for for gossiping blocks as opposed to attestation about that that's a good point row by the way towards the trade-offs oh sorry I just want to add that I think the message identifier scheme the sorting process up now and FZ Ibis sub is more like you grab and trim the edges like your peers connections so mmm it is the different scenario and I think Dominique has done some poor and
push scheme simulation before yeah that was similar to what Danny such listed but it also didn't help but I don't remember why Oh is there was there a particular reason why you know you you believe that a academic broadcaster approach could could be an efficient for pool in this message propagation paradigm that that you have a needs to play note no I don't know it just look mean I'll speculate you throw something out there um maybe gossip subs better for gossiping blocks and you know an episode was better for at two stations that's great but sorry reverse that
there's better for blocks and gossip so maybe that's better for attestation certain if you can change some that would probably be more stable over time whereas these other topics may alter quickly so there might be a trade-off between what gossiping we're using for short subnets versus you can send that but I'm not certain so maybe if there's like as a way forward to continue discussing this particular topic if somebody can put together maybe a small blurb on what the differences in message propagation are in these particular circuits then maybe I can involve
somebody from the p2p team the person that you know basically to be specialized in gossiping and have a look at potentially if we could have a hybrid router that we could attach specific dissemination routing like routing strategies for one topic and a different different routing strategy for a different topic and so on and and somehow arrive event you know different different paths throughout the network I have some notes on this that discuss the timing of broadcast as well as the size and can add some notes about the stability of topics and stuff I'll pass it on to you perfect sounds great
and I know what what I would want to point out here is that all these schemes they introduced extra opportunities for failures and issues in general like the e absolutely most simple approach gossiping full box is very very resilient it like it's it's foolproof so to speak and then anything on top of that any smart things we try to do and even actually even Gossett's up over floods up I think we should be very careful about motivating that with like
some substantial gains because the simplicity of of a normal flooding makes it extremely resilient against all kinds of attacks and so on I mean that'sthat's valid and I think one way to address that yes ik is to make sure that whatever gossiping polical we end up choosing we have this baseline where it's always possible to go back to flooding in and it works right so we should have an adaptable approach where we always start by flooding in an region which is maybe optimize a little bit down the road but we need to test that as far as I can tell when you did some testing of flats other wedlock does not perform in the
span of time with the number of bytes which are required for blocks genetic stations for the Eve to pelacone but I might be wrong I think there's more research needed and more testing needed there but we this is what I think we know at this point yes my understanding was that flood sorry Kaustubh sub was chosen precisely for this reason that diverse and really substantial improvements in early experiments at least that right yeah so let me let me provide some insight there into like how you make decisions how one is supposed to make decisions regarding you know what
gossiping pattern to choose and so on generally like it's all a matter of trade offs blood sub is very resilient as he said to to cut into all kinds of attacks because it's very naive you know the keys of the city here so you just broadcast messages to every single peer that you connected to that you believe is interested in that message however that introduces a massive amplification factor arise so massive right amplification on IO which depending on the traffic and the volume and the size of messages and you know the latency of the links and a number of things could potentially harm more than it could benefit but it does provide the security aspects right so that is one trade-off
then as you start like trying to cut down on the amplification factor because we say well you know if like these miss if these beers are supposed to be well redundantly connected and indirectly redundantly connected to see so a particular gossip message might travel through the network the end of arriving at a particular period way too many times due to the amplification factor then you do want to start getting like more intelligent about how you tell peers hey stop sending me this kind of message because I'm already subscribed to that I'm already it's receiving it earlier from another peer that I'm subscribed to and that actually has a closer off so I mean that and that's
when you start becoming more intelligent because your trade off there or in your priority could be to reduce frightened presentation right and and an overall traffic in the network so it's definitely a matter of trade-offs but like I'm happy to have you know to continue having this discussion there were things about the gossips of measurements that need to be revisited is that we're testing the wrong things but this has been already you know has come up in different forums so so yeah the numbers that we have on call sets up I'm not particularly realistic in terms of you know what the testing and how they're testing it so I wouldn't use that as a deciding factor right now but definitely open to you know exploring
different different approaches and really understanding training down to the requirements to understand if you know a hybrid of gossip serve and happy serving flood serve as like a fallback and so on could could be you know something that even advances the state of the art in the way that these hardware could be prevented at scale thank you okay we gotta move on gossiping is complicated and important so let's cool general spec discussion the one thing that I know a lot of employment brought up is as a Z there
were a couple of more skin types that were added to sse specifically the bit listed by vector that moved some of the low-level validation of bytes out of the spec and into the typing system this was done one to make the spec focus more on stuck things and on the level byte manipulation and byte validation and was also done in an effort to potentially provide a valuable set of types and SSE that might be used in other places such as the application area the idea there being if there is byte levelness validation and
manipulation that you'd want to be doing why have to repeat the logic and multiple places instead put it in the type system that said there are obviously some pain points and issues there so I want to open it up for a quick discussion this is something that we want to figure out if it's gonna stay in soon so that we can fix the speck in the before word if we need to doctored I know you did a lot of work on that and I know you also facilitated some a conversation right do you have anything to add yeah I mean I think like clearly one we want to be open here to like
understand what people's pain points are there I guess like we didn't do that enough back when we've first put this to do the spec but yeah I mean like so yeah let's start that conversation I'm I still think that it's a valuable thing to have in the SSDs packet I think it can avoid some errors but like of course we don't want to make life super hard for implementers so yeah okay I know there are various opinions in this if is their doctorate is there
still an open issue discussing this I think at the moment the issue is closed I think Preston opened an issue and was kind of okay with our discussion in the end but of course like if people have opinions on this and they can reopen this and add it again for such okay if there is precedent are you and not muted you look unmuted are you talking No so yes no problem to pump um just want to make sure this is something that I don't want to leave hanging so if there
is continued conversation that needs to be had let's have it over the next seven days in an issue so if someone still feels fired up about this still feels that it should be changed please make a new issue and we'll discuss there otherwise this is very critical for getting in line with consensus test so I don't want to leave this hanging for too too long so Preston just posted the original discussion we can either reopen that issue if somebody wants to or to make a new issue but again let's keep the conversation let's make the conversation happen in the next seven days just as a comment some more types
we have defined in the SSD spec more efficient or code at least in name can be in terms of both code size and performance because we don't have to check out we have much less to check and we can directly insert the proper disser lysing code in your code base gotcha thanks okay we just have a few minutes left is there anything any questions boats yes I see there's this minor thing where
we can have fixed size empty containers and empty vectors it's a kind of troublesome and I know we don't really have them currently in spec I just wanted to address it so that as a suspect can be complete but to clients like best we want to make empty factors in Eagle or do we want to make lists containing them illegal history use case for empty fixed sized containers we already made them illegal resinous is basically revisiting that
decision he made spectres illegal but we also have containers and then there is this inconsistency between easily being zero and factors not being Sara so it's not to get this right and then we can move on so I think the problem just came so before containers and empty vectors empty containers empty vectors they're both illegal and now we added this new thing that lists actually have a limited size and suddenly we have the question can that size be zero and it actually doesn't cause the same problems as it does for for vectors or containers because it would still be a variable
size type so all the information would still be needed the questions just is it kind of weird that we like forbid one thing and not the other like yeah it looks a bit weird to me but yeah like there are different ways to resolve this basically hmm yeah I'm okay forbidding or an odd forbid with zero backswing mm want to forbid it it's because it might give us some easy way to like kind of in quotation my comment out some features in aspect by
setting some lengths to with some max lengths to zero what I wanted to say we already discussed this in this issue but they do want to bring it up and if any implementers of like opinions here or they see if sometime in the future very good needs this kind of type the please do join the issue on the specs repository and you can discuss other I also think it's just like not to importance yeah let's move on we're at the hour and a half any other things before we close today for the Interop I just want to say like the invitations
went out team leads and it's gonna that those invitations are good until like the 14th and for the antwon's on the call that's Bastille Day and so like after that we're gonna kind of reshuffle and send out more invitations to some of the teams that are wanting to attend so make sure that you register there bunch of teams that still haven't registered prism I can't remember if chain safe or not but yeah so like please do register in the next three days cool it's easy
and free to register great anything else for clothes okay thank you a lot of really good discussions I appreciate everyone attending we will likely meet in two weeks and you take a look at the calendar first Thanks have a good one guys talk to you soon thanks bye exchange guys thank you bye bye [Music] [Music]
[Music] [Music]
[Music] [Music] [Music] [Music]
[Music] [Music] [Music]
[Music] [Music] [Music] [Music]
[Music] [Music] you
[Music] [Music]
[Music] [Music]
[Music] [Music]
[Music] you
you [Music] [Music] [Music]
[Music] [Music]
[Music] [Music]
[Music] you
[Music] [Music]
[Music] [Music]
[Music] [Music]
[Music] you
[Music] [Music]
[Music] [Music]
[Music] [Music]