Hi, everyone. Thanks for joining. Just waiting for a few more folks to join.
Thanks, everyone, for being here.
All righty. Thanks, everyone, for joining us. Today we have an exciting spaces. We're going to be talking about Comet BFT and Gateway to Cosmos. So welcome, everyone. Just to do a quick intro. This is informal spaces. We do this every Thursday at 11 a.m. Eastern Time. Follow us on Twitter for any recaps and reminders of spaces and other super great information that we'll always be providing.
Tomas from Gateway to Cosmos is the developer relations lead at the team at Informal Systems for Comet BFT. Tomas, do you want to say hello?
Good to be on the Comet BFT. So I'm working on the Comet BFT. So I'm working on the Comet team for the DevRel side. So a lot of exciting things happening with the Comet team. Yeah. And my history has been in Cosmos since 2019. So many of you might already know me. I was working previously with AIB and Akash and SifChain. So I've been in the ecosystem for a while. So yeah, good to be on the spaces.
Awesome. Thibaut, you want to take it away?
Yes. So yeah, let's start with Ali then. I think Ethan is not joining us this morning. He was advertised on the space, but I guess he's in Vienna, busy at a conference. So it's you and me, Ali. And then maybe Isabel might also step in every now and then.
So Ali, I wanted to get a sense of the, or rather, you know, at least for our listeners, a sense of how the Comet team came to be. I know you joined Informal quite recently, but if you can explain, you know, when, at which point in time did Informal start working on tournaments and then Comet as the rebrand happened?
Yeah, I think that's a very interesting question. And as you rightly said, I joined Informal after the rebranding happened. So most of my perspective was like kind of as a community member.
Although I did get a lot of insight later on, I don't know what's happening. So just to like quickly walk you through the history.
As we all know, like 2014, Jay starts, Jay starts working on Tenement and then like 2015, 16, Bucky joins him and then like they start working on this together.
I think Zarq also joins at that time. And he points out a liveliness bug in Tenement and they'd like spend a lot of time improving and fixing it.
Fast forward a timeline to like 2019. I think that's when I might be getting my years wrong, but like I think 29 is the year when AIB stops contributing or like stops working on Tenement and that's being handled by the ICF team.
So we had like a Tenement team at ICF that was kind of handling all of the things. And then in 2022, late 2022 in December, I think, Jay abruptly removed access from the entire Tenement team on the Tenement repo and announced that it would be now archived and then frozen on O34, which was like the stable version at that time.
So, so like the Comet team was like, so the Comet team was informing, was in process of being formed, but due to this sudden decision that Jay made, like the team had to like, had to be like spun up on a very, very short notice.
And then like, like the Comet team came together in late December and early of January.
So in, so that was, so that was, I think the part where ICF granted the stewardship to informal systems where like informal now stewards for like the common PFT, which is like a fork of Tenement.
Right. I think we, we worked on Tenement before December, but maybe the, the official stewardship was done, wasn't at that, that point in time.
And so right now, right now, Ali, what's, what's the size of the Comet team at informal and how is it structured?
Yeah. On your first point, yes. Informal actually actively worked with the Tenement team, which was like at IG.
So a couple of people like Thane, Sergio were actually on the, on the original team as well for Tenement.
And then they later like moved to Comet team. As for like the size of Comet team right now, like we have like around 12, 10 to 12 people who like work, work like exclusively on Comet PFT.
Yeah, around, around 12 people. I actually thought it was less than that. So that, that's interesting to know that there's a lot more people than I thought.
I thought you guys were about six or seven people.
And, and so, yeah, no, go ahead, go ahead.
No, no, I'm just saying, yeah, we, we might look like a small team, but we are actually making a good impact and progressing.
Yeah, yeah, yeah. No, no, it was, it was probably me that I don't have all the, all the recent recruits, I guess.
Um, yes. So what are, what are you guys working on? I know maybe we should, we should go over the, you know, what's coming for, for Comet PFT.
And specifically how different is it's going to be from the version of a tournament that we fought.
Um, so right now there's, there's at least one feature or two features that I'm quite familiar with.
Uh, we should start with that. And then, uh, you can go into the stuff that I actually don't know.
Uh, but something that everyone in Cosmos and outside Cosmos sometimes is asking is when are vote extensions coming?
Uh, can you, uh, can you explain what are vote extensions and, uh, you know, when are they coming?
Yeah. Um, interesting. So to your first point of like, um, the first one that they asked, like, what's different that like, uh, planning to do with Comet PFT.
Um, and I think, um, one of the things that we are trying to achieve with Comet is modularization, which I think, um, to some parts were like messing with the original tournament, um, BFT.
So one of the things that like happened in the past was like folks of tournament occurred. And, and, um, one of the reasons why is people did not have a lot of modularization of like the components that they could change within like tournament.
And I think like in a long run, we strive to improve that. So that's like one thing. Um, second thing that what we are currently working on is, um, as you rightly said on O38.
So shipping out O38 is like our highest priority right now, um, with respect to like what's coming in O38. So like O38, uh, basically includes a lot of features, the higher of which would be like finalized block and word extension.
Um, so finalized block is basically it coincidences, um, like the different, uh, like begin block, end block and deliver transaction into a single, uh,
uh, single finalized block. So I think, uh, that's a good, uh, and what was the last question?
Yeah, I was asking about word extension, but maybe, maybe, uh, it was, uh, maybe we should take a step back and explain a little bit more about, uh, the current, uh, you know, what, what was there before word extension.
So, um, can you, let's, let's start from scratch actually, start from scratch and explain what is, uh, what does a consensus engine does?
Uh, so people that joined the call and maybe are not familiar with, uh, the whole, the whole thing, uh, we, we can explain more like back to basics kind of, uh, kind of approach.
So what is a, what is a consensus engine and, uh, what, what, what is it useful for?
Um, yeah, so, um, on a very high level, um, consensus is, lets you, um, it's like a block that lets, um, um, enables different nodes to, um, come to consensus, which is like, come to an agreement.
So I think that would be a very, very high level of explanation.
Um, what else, uh, so we could, um, sorry.
Are you, are you still here?
Um, uh, my voice got broken, I think in the middle.
I'm having a bad connection right now.
This space is, no, no, no, it's breaking.
Uh, no, it's breaking for me.
Actually, let me try to, like, to rejoin one second.
Maybe, Isabelle, can you make, uh, Andy or, um, I see we have, let's see, I think we have Sean
also in the call from the informal team and they are quite familiar with, uh, comments.
Inviting Andy and Sean to speak.
Sean, are you getting, are you getting the, uh, invites?
Sean, are you, I think, I'm welcome back.
We're inviting Ali as well.
We're inviting Ali, as well.
We're inviting Ali, as well.
And then we're inviting Ali, as well.
We're inviting Ali as well.
maybe in the meantime uh the gateway guys if you if you guys want to talk a little bit about the
conference that is going on at the moment while we wait for andy or or sean yeah definitely
definitely like just to recap the the conference will be happening from june 3rd to june 5th a lot
of cosmonauts and like developers also from your team will be there we have planned roughly uh
30 keynotes ranging from like a super deep technical uh topics like comet bft up to like
the future of cosmos itself and also like a defy topic real world usage of cosmos technology in
like chain for energy and like many others so it will be packed and also we will have 10 uh 10
panels and 15 workshops so it will be pretty packed and for those who have been last year on gateway
it's the same play uh as last year so it will be good and like also there will be like uh ending
party from celestia uh which is called like game night it should be like a similar vibe as the one
which they've thrown in denver but this year it will be on prague castle it's like a beautiful view
over the whole prague so it will be an unforgettable moment nice and when uh when does it start and
uh either way to catch it online uh yeah it starts on june 3rd and also there will be like live stream but
uh from the live stream you won't be able to like uh bump into the other people from the ecosystem and
have like a pretty good conversations with them like last year it was like the best best outcome
from last year that like people from the whole ecosystem are meeting with each other and like
talking and like creating new project and so on so please please join in person i won't be able to
join but i know we have a i think we have three people from the uh informant team coming in
including ali and uh including i think marius is coming as well from the cosmos hub team
yeah it'll be um igor from like the abalachi quint team lauren will be there ali and he will be there
so yeah catch us live definitely um if you can join and remember to use that promo code that we have
if you would like a discount on that um but i think we have ali and andy on andy on the stage
um so we can bring it back to comment yeah so let's uh let's start with uh
let's start with andy um so andy can you can you maybe answer the question where before before ali
broke uh the connection was bad can you uh can you explain our listeners today what is a consensus
engine yeah sure can you guys listen to me yes okay good yeah so the idea of consensus is
is actually based on um like the concept of distributed systems right so basically you want
uh thinking of uh at a high level you want uh a distributed database for example right that
everybody has a copy of the database and they have to agree that the copy that they have is the same
or at least the majority has uh uh a copy that they they accept as the truth right so uh the consensus
is basically a mechanism that allows them to uh through let's say uh a p2p layer uh to to exchange
or gossip messages and and try to understand each other's um uh let's say database and agree on on on
on that uh the truth itself right so in comment we use uh uh the the consensus the the pbft and and and the
idea is that as long as uh let's say two-thirds of or the majority of people agree on that logic then we we
we we get into consensus right so so this is the whole uh this is not even just like a comment
itself is the whole blockchain is is based on on this idea right uh from the distributed database
perspective that people can agree on a certain uh truth let's say uh i don't know if that explains
but um we can go more in depth in particulars uh if we need to but that that's the idea right it's just
uh yeah yeah no that explains it well i think uh if you can compare maybe or give some other
besides besides tournament commits uh what other examples of consensus engines are out there
um but you have different protocols right that um different blockchains will uh will use
so for example uh at a high level you you can have well comet bft use bbt but you have um
all the new blockchains that are coming up with different uh consensus right um um so for example
ethereum use a different one like in the past um to reach consensus uh people use um
for example in bitcoin they use proof of work uh and and but the the the consensus that we it's more
based on uh proof of statement right uh the the the uh like there's all the types for example ouroboros
yeah i think one uh one very popular one now uh is bull shark um that is coming up and that actually
the guys that part i made made that work with the cosmos sdk which was a kind of a big breaking news
last year um yeah i think ali ali is back and we can we can focus on uh on on comet today uh so ali if
you want to unmute yourself making let's make sure that you're actually back yeah and confirm that
you are yeah yes so no worry so let's uh let's talk about the vote extensions let's uh let's explain
what what are they and why is everyone in cosmos i'm talking about skip i'm talking about dydx i'm
talking about kai there are so many projects you know that are blocked right now on the vote
extensions uh why is everyone looking forward to that yeah um good question so i think like um as
you like rightly said word extension is like one of the features that like was very very highly
anticipated so um what has like happened with with word extension is like uh now like with with um
the release of o38 we will be giving uh so initially like when the transaction was um was with with the
with uh with like the state application engine then there was no way for the application to actually
make any um like like solutions or like uh any kind of changes which is now like possible with uh
just features of like prepare proposal and process proposal where like um like whenever a proposal
is being created on the common bft side it reaches the common bft will reach out to the application and
the application can um um like can uh like say that okay so uh like for example perform a
perform a certain check or like do something um and that's like coming in with like prepare proposal
and process proposal um and then that uh feature is like then extended uh with with word extensions
right so let's take uh just to make sure that people visualize this uh are you familiar with skip
yes i am okay so can you can you describe briefly what's uh what skip does
and then you know why is word extension important for them um i i i don't uh actually recall on the top of
my head like uh what what skip what uh what skip is doing with word extensions uh maybe if uh and if you
you have it on the top of your head um uh i i know what skip does but i haven't i haven't in particular
been working with them we have uh unfortunately the people who are like our experts in voter extensions
which is surgery um mostly been working on that um he's not here um so i don't want to i don't want to
say anything that uh i may be wrong but um skip is basically um works with the um um like mevs right
and for them to have more control uh through voter extensions uh it's important right but i can tell
like the specifics right i'll just explain quickly uh at least my take on it uh so basically skip is
capturing mev on multiple blockchains they are on ethmos they are on juno they are on osmosis and
what they do is uh enable people like to submit transaction into a private mempool and then submit
that mempool to the to the validators and the validators are able to like make additional revenue
because the people that submit transaction pay them to include the transaction first so that's that's
more or less what what skip is doing what uh my understanding about voting extension and in general
like vci plus plus is that it will give skip the ability the uh the ability for the cosmos sdk
application to communicate with the the tournament's consensus engine or rather the comet's consensus
engine uh in a more efficient fashion so that uh it is not it is no longer a private mempool that
is controlled you know by a centralized party in this case skip and it will be uh transparent and
viewable by everyone on the blockchain so it's a it's an effort uh to kind of decentralize the kind
of black box uh that that is going on at the moment on ethmos juno and osmosis to some extent to
to lesser extent because i believe on osmosis it is kind of built in into the protocol uh what uh what
skip has been building um yeah so are you guys um maybe ali what's uh you can maybe tell what's uh your favorite
feature for for for commit that is coming up um and you can describe that feature
yeah um for me i i think it's um i really like finalized block um so it is one of the most uh very
powerful feature that uh uh that's been uh coming up with like o38 um so basically as i was saying
like finalized block coincidences um the begin block end block and then deliver transaction into like
one single call so um it just delivers the block to the application um and the application then
executes the transaction in the block and then updates the state accordingly
cool i think we have thing now in the call uh thing is actually the project lead for
or commit so he's also a good person to talk to thing are you are you with us
yes can you hear me it's the first time i've used twitter spaces
nice we can we can hear you yeah cool you're doing great so far
um yeah thanks so i wanted um i wanted to uh ask you about uh maybe we should take uh take
back the question about vote extension um and maybe you can describe ali started describing it but it
would be great if you can um if you can describe it in your own words so we have a second version of
that i'm not sure everyone got it sure so to add to what ali was saying um vote extensions is basically
a new way of transmitting data across the the network effectively between peers and what we're
doing on a technical level when when we when we're running consensus as andy was talking about earlier
nodes have to vote basically and we vote in various different phases in order to get to as andy
was saying the the source of truth of like what is the next block that the network wants to agree on
and part of that process now in 038 in with vote extensions is that uh we're going to be piggybacking
some data on consensus votes so we're basically allowing applications to send um arbitrary data
that's then signed by the their validators this is getting quite technical let me know if i need to
zoom out a bit but um no what this what this will allow applications to do is to potentially create
offer things like uh random oracles or let's say price oracles or um i think one of the the use cases
for this is uh threshold decryption um there's a bunch of different potential use cases for this
the people looking into yeah is there any other consensus engine at the moment that have these
features that that you may be aware of uh committed to the first one i'm not sure i mean i don't know
if you can really compare some of the consensus algorithms uh in the same way um yeah i'm not sure
if any other any other protocol has this uh this type of feature yeah yeah i can't think of one of
on hand yeah i don't think i don't think anyone does i i think uh uh abc i plus plus and uh what
extensions are going to be a unique feature of uh of commit that is going to kind of set us as a as a
you know kind of special place in the consensus engine space for instance uh casper for a theorem uh
bull shark that they don't have that uh so that's one of the sort of the thing that people are most
excited about in cosmos uh in terms of uh you know shipping shipping new stuff um can i add to that
one of the things that um also to add to like what's exciting about or 38 and abc i plus plus in
general uh abc i plus plus the the technical version number for it is abc i 2.0 uh abc i plus plus is by
the way not the final iteration of what abc i is going to become we potentially envisage more changes in
the future to the application blockchain interface the way in which the application interfaces with
the consensus engine but what this effectively enables is a lot more control we're giving a lot
more control to the application of what data goes into a block at the end of the day and how the data
goes into the block so this is something that's quite new where previously the that the model didn't
facilitate certain kinds of use cases one of which for example is application side mempools and i know
that there's been quite a bit of interest in this as well this is actually technically enabled
already in comet 037 which is already available but you know with 038 and vote extensions and finalized
walk we're giving even more control to the application and potentially enabling a variety of use cases
and so at the at the comet team how do you guys track all these use cases are you are you in touch with
each and every project or are you like setting your roadmap independently of them no so adi does a
lot of great work and ali as well so they're they're they're continuously in touch with a whole bunch of
different users and i'd like to encourage other folks who may not be in touch with our team yet
to reach out to adi and ali because uh adi is maintaining a quite an extensive database of people's use
cases and their various different needs of the consensus engine and what we're trying to do is
figure out as ali was saying how do we modularize the system so as to be able to effectively address
the widest range of use cases over time i think that what we're going to be looking and doing in
future is simplifying the consensus engine substantially so that we can eventually do that
we can we can the simpler we make the consensus engine i think the more use cases we'll be able to
so that's it yeah um a question also i i had uh i had quite recently is um in terms of the limit on
the number of validators that validator blockchain um a comet based blockchain is there you know right
now the hub has 175 validators i think uh the fastest blockchain like say network they're going to limit
that to i think 50 or 60 validators uh what what do you think is the theoretical limit for for the number
of validators for a comet based blockchain oh there's so many things so many different technical
factors that go into the the size limits there one of the biggest uh influence one of the biggest
influential factors over there is how much bandwidth the protocol takes and right now we're already aware
of the fact that the protocol consumes quite a bit of bandwidth this has been a burning pain point
for operators for quite some time now the trouble is that it's very complex to reduce this bandwidth
consumption but as you as we figure out ways of reducing the bandwidth consumption over time
you should be able to facilitate having more validators in the network but as to what the
the theoretical limit is uh we i don't have any numbers offhand right now yeah it really depends
also depends on the speed of the connection it depends on a whole bunch of factors between
the connections between the the different nodes in the network as well right in terms of uh
optimization i think an interesting an interesting uh observation here is that you know infinite
security for the cosmos sub one of the major problem or at least you know concern that people have
is that it is expensive to run nodes and so if we force everybody errors on the network to run a
separate binary for each consumer chain it creates like this kind of uh you know a linear cost for them
uh which which makes which makes it difficult to scale um and i think one of the big things that
we could optimize potentially is uh the the tournament uh bandwidth that is taken so that the the nodes
actually have cost less for the validators operators to run do you have any do you have any thoughts on that
yeah so as i said we're really looking into that part of the challenge that we face is that
we don't have any clear specifications for how certain parts of the the gossip the two different
facets to the the gossip that happens the way that the nodes talk to each other on the network
we don't have formal specifications for these gossip mechanisms so what we have is the implementation
we have the code but we don't have like a theoretical understanding of what the code should be doing
and so we're in the process a bunch of people on our team are busy investigating uh developing
specifications for these different protocols so that we then know how we can uh further optimize the
the protocol in future we suspect that this will involve some breaking changes to the the gossip
protocols in future but i think that um we can potentially provide substantial uh bandwidth reductions
we don't have a set timeline for that yet uh that's still very much a work in progress
but um there are other facets to running a tournament core slash comet mode they're also quite expensive
one of which is storage for example so we're also looking into a variety of different ways of reducing
storage consumption on the nodes as well interesting so for the uh let's uh that's an interesting point
uh so can you describe exactly what that would look like like modeling specifying uh tournaments and how that
would help you know find this kind of uh weak spot where we can optimize uh for for for blockchain to run more
efficiently sure so i mean the tenement consensus algorithm which is the consensus algorithm that the
comic bft implements um is well specified but the the gossip mechanisms there are other facets of the system that
are not well specified when we say specified we mean we don't have a good formal definition of what
those different parts of the system should be doing um and what we're realizing over time as the informal
team has become more and more familiar with code base is that there is a lot of deep wisdom and insight
that went into the initial designs of the code and what we don't have unfortunately as i said is some
translation of that deep wisdom and insight out of the code and into some kind of formal language of some
kind and this is now what our team is working on so we're going to be using um you know uh algorithms
and protocols like uh the ones implemented by um i mean bullshark was one of the ones that was quite
interesting but i mean the the the model there is quite different i don't think we can implement that
in common at least not in the short term and it has a lot of implications for uh what kinds of
applications you can implement on top of it um but then taking some learnings from narwhal for example
or taking learnings from from other types of gossip protocols that are more optimal um we're we're
looking into um we're looking into options over there at the moment we haven't got any specific options
yet that we've sort of simplified as to what we're going to be implementing but hopefully we'll have a
better idea of that in the coming months right so that that's uh that's very interesting so do you
mean that when tournament was first developed and first written like i guess ethan jay and the team
back then just started coding like they didn't they didn't write even in english some some uh
specification or some instructions about how the tournament program would work yeah i think also
we'll clarify for you know what people mean by the word specification because some people when
they talk about specifications they mean documentation of the data structures or those kinds of things
and when i i talk about specifications when our team talks about specifications we're actually talking
about some kind of uh formal definition of the the protocol ideally something we can eventually
translate into tla plus or quint a language for one of the languages for formally defining distributed systems
protocols and from my understanding of the initial development process because i only joined i joined icf
back in 2019 so by that point in time the system was already premature um and uh you know it had been
out in the wild for quite some time and from from my perspective ethan and jay had a lot of like deep
insight into what the system should be doing and that had a lot of valuable insight in their heads that
they then translated into code but then that in those insights are quite difficult to communicate just
from looking at the code especially given the codes evolved a lot over the years and it's growing quite
organically so it's it's hard to really glean that that same insight that they had just by looking at the
code and that's why i think we need to you know develop these specifications that we're currently doing now
so just for for an idea how big is uh how big is uh how big is that uh code base like how many lines of code is
is there for tournament oh um it's uh about 170 000 lines of code about 40 40 of which is tests
um and then so the remainder is actual implementation right so that's huge how big
good it's tough question but do you have a sense of how big is pool chart i don't know don't know offhand
yeah it would be interesting to to compare do you i would expect like it's much smaller
maybe i mean remember the the entire code base that so the entire comet code base is not just the
consensus engine implementation so there's the consensus package and the consensus protocol but then
there's also the mem pools there's the p2p layer there's the rpc there's the storage layer there's
a whole bunch of different components that go into building the consensus engine so yeah i mean one of
the one of the things we're very interested in is progressively refactoring the code base over time
such that maybe eventually in future you might be able to pull out the uh tenement consensus protocol
and put bullshark in there if you want so if you wanted to build something that uses a different
consensus protocol then you could there's a lot of work to be done to get the code base into that that
state but you know it's something that we're aiming for in future yeah cool well thanks uh thing that
was a super instructive uh also for me uh i don't know if there's any questions from the audience if
anyone has a question maybe raise your hands and we will let you as a speaker in the meantime if ali or
andy or gateway if you have any comments or or questions yourself for fame or in general please go ahead
yeah or if ali you want to give a brief overview of um the talk that adi is going to give and the
workshop that you'll be hosting um if you want to give us a quick overview while we wait for people
to raise their hands that'd be great yeah sure um so i can just fill in for adi and um tell you about
his talk uh so actually from the comment team three of us will be in gateway so it will be me at the end
daniel um we've been in prague so if you guys uh want to like talk or chat like just come and meet us
as for adi's talk um like he's trying to um like basically talk about the origins of like tenement and
like how common bft came into being um and then like uh the different folks that that um comet or
that tenement has and um as i was like saying earlier like how can we modularize comment more and
more so that like people have to have less burden and over it of maintaining their own folks and instead
they can just um improvise and change the modules and like have comment work for them
so i think that's the the biggest agenda for um for adi to talk about um and his his um topic is
very very interestingly titled which is like called when comets align so it kind of has a nice ring to
it um so that's going to be like one one i think that's on day three if i'm not getting my agenda wrong
so that's i think around like 3 p.m on day three um and then i will be doing a workshop on the same
day in the morning uh at 9 a.m which will be around abci plus plus so all of the different features that
we spoke about uh that they also like touched upon will be i'll be i'll be giving a live demo of like
how to do it and stuff like that so uh we'll i'll be building a simple forum application from scratch
um demonstrate like abci plus plus and then i will like open up to people um so that like they can add
features to it and then like um whoever like wins or like like but gets the best feature out is
actually going to look win a prize uh so that's the plan so that's going to be like my workshop
which is going to be like again on at 9 a.m on the third today awesome that sounds so fun that
contest that you have running um so hopefully everyone if you're interested in comment bft
please come to ali's workshop and stop by audi's talk which will kind of be an expansion of like
what we did today so if you're interested that would be great um i'm not seeing anyone raise their
hands so i think we can do closing statements um tomas if you want to plug gateway one more time
that'd be great yeah so everybody's invited please come to prague june 3rd to june 5th and if you
would like to stay more there will be also like privacy in cosmos from zk validator on june 7th so
you can stay in prague and enjoy the city
amazing thank you so much everyone for joining us again informal spaces happens every thursday
at 11 a.m est and we have a variety of things that we'll be sharing on our twitter on our blog
etc um so thank you so much for joining and if you have any questions you know um please
at you know tebow ali andy thing um if you have questions about the conference you can
at gateway to cosmos thank you so much and we'll see you next week thank you bye