is because I'm out on a farm, say, yeah. But anyway, I'm on a farm at the moment.
Welcome to Game of Nodes, a weekly podcast on Cosmos from independent ValorBator teams.
Hello, welcome to Game of Nodes, a weekly podcast from independent ValorBator teams on the Cosmos
and Null is out on a farm and complaining about his internet. Nothing's really new there if you
watched last week's episode. And we're joined by James from Subquery. We're going to talk about
what a Subquery is and why I should want one. But first, we're going to cover off some follow-up
questions from last week. And both you, Serpa and James, are going to tell us all about consensus
in Austin. It's going to make us feel very, very jealous that we weren't there because I have been
in a loft and Null has been in the bush. So clearly we weren't a consensus, which is very,
very distressing. So first, oh, right, the big, the big, the big follow-up we have obviously is on
the Osmosis Hall, right? But Schultz is our resident Osmosis expert and he's been rugged by the power
cut in, are we allowed to say where he lives now? Is that Doxin? He lives in a, are we not allowed to say, okay, if not, I'd say he lives in a place with bad power grid and he has been
rugged by the power grid. So that's why Schultz is not on today's episode being wholesome. This is not the first one, he's been rugged either by the old power.
That's correct. I think two out of three of the most recent episodes, he's been rugged by power cuts, which begs a lot of questions about, about, about living there. But
Not least he doesn't have a bed and a snake.
He's not good at that.
He was able to tell us that the power was out, but I guess that was that was a mobile or something? I don't really, I don't really know how he got the word out, smoke signal or something like that.
So, you said, is there something that you can you add something to the, to the Osmosis follow up or is it just simply we're back, hooray?
I think we're back, hooray. I think, I think there was concerns about that they were going to make a, there was some discussion around the state change, right? I think when we left it last week, there, they had four, there was four
suspect accounts, I think had volumes high enough in this little defect, scan, whatever we want to call that. And I believe the other two, they, I think they tracked those owners down. This is all consensus rumor, by the way.
But what I heard was I heard that they tracked those two individuals down by going through the CEXs and identifying who they were and then communicating out. And once they communicate out, there was some, oh yeah, we'll return that right away.
I could be wrong on that, that whole story, that's just kind of secondhand, but that's what I understand. So, from my perspective, I think then those funds were returned, maybe post restart, possibly. And the issue was fixed and the chain was restarted, I think, without any drama.
Is that everybody else's understanding of the situation? Yeah, that was roughly what I heard. I mean, I know we were talking last week about whether or not the, especially the fire state thing happened because they realized they'd been busted or whether or not it was actually a genuine sort of, yeah, we did actually screw up and want to return the funds rather than somebody tapping you on the shoulder and going.
Right. We know it's you lads, you literally did it with your validator account. What were you doing? You never know it's a real exploit until you get past the first million. That's what they always say. That's what they say, yeah. It does, yeah, whatever.
Yeah, it sucks. Sorry for the Osmosis guys, glad that they're back up, I guess, is the conclusion from that one. So there were some talk as well about ICA host functionality and stuff. Last week, we were kind of nibbling around the edges of that.
And I guess the other thing that's happened for us was we ran a chain upgrade on Juno, which enabled ICA host functionality for the testnet so we can play around with it. And I think almost all of us were AFK when it happened.
Our automation is good enough that it just happened. But I think most of us, well, I know certainly you've got a very cool setup now on the testnet, haven't you? You said, because you're hawk-wraxing it up, aren't you?
I am, yeah. We're still hawk-wraxing it up. I'm still trying to figure out what that's going to look like. And if I had time to actually build it out the way I want to build it out, but it's getting there. We'll get there.
Can you talk about what that ICA thing is for us that don't know exactly what that is?
Okay. So interchain accounts, ICA, for those that want to just shorten things incessantly. The key components of ICA are that there's a host chain and there's a controller chain. So the host chain is the one that is being interacted with, if you like, and exposes functionality that can be used by other chains.
The controller chain is the one that's actually doing the controlling, and that has some pretty heavy implications for authentication. There is a default implementation of the authentication part with a lot of capital letters, warnings on it, saying do not use in production, etc., etc., etc., etc.
So Joe Abbey, another common panelist, if you like, on Game of Nodes and I have been working on that a little bit. And yeah, we decided essentially that a staged approach to getting it out made sense because the full requirements of authentication to be a controller chain aren't really clear and having spoken to other chain core teams.
The general feeling I got, and please, if we're just being cowardly cussed, just say on Twitter and say that we can just do it, don't worry about it. But the impression we've got was that most chains who are doing ICA functionality at the moment are doing host first and waiting for somebody else to jump on controller.
And it kind of makes sense, right? Because a lot of the time what you actually want to do is allow other chains to interact with the applications on your chain, especially if you're a smart contract chain.
So the kind of functionality that you know is exposing is smart contract executions, smart contract instantiation, it's the kind of stuff that an AMM might need to do, that anything interacting with NFTs, CW20s, that kind of stuff, it's going to want to instantiate and execute smart contracts.
And so those are the things that are initially exposed as well as the native modules so you can do, you know, bank sends and all that kind of stuff. All the other things that you're going to expect to do for sort of advanced IBC interactions, I guess, ICA interactions.
Can I take us on topic and go deeper on that? Just, I mean, completely off topic right off the bat. So the ICA piece, can there be chains in between those two endpoints? Or is it always one to one?
It's always a controller chain and a host chain.
And there's nothing in between, right? Like there can't be a, there can't be a, there's no other, the reason I'm asking this, one thing that came up a lot was that consensus, which we'll talk about a little bit is there's a lot of conversation on the cosmos discussion around the role of the hub, right?
And the idea right now that this is very mesh based, but as we grow from 60 chains in osmosis to 250 or to 30,000, and then the hub idea is going to come back and maybe it's one hub or maybe there's multiple hubs and blah, blah, blah, blah, blah.
And interchange account seems to be an item that would delay that more than enable it, right? Because you kind of need that.
I think that'll try to plan things further. Yeah.
It does. However, I suppose the way I was kind of thinking about it the other day is that if you have a chain like Juno, it works very well for because there's this idea that you can build a thing on Juno, get product market fit off your crack, make your own chain.
In that model, it makes a lot of sense to deploy your application on Juno have literally a smart contract, say a registry for from Juno's perspective, let's say here are the IBC channels that matter or here are the coin denominations that actually map to these human readable representations of them, whatever,
because obviously the IBC denom is different on every chain or whatever. But there are probably ways, as soon as you can start interacting with smart contracts on a smart contract chain, where you can say, okay, well, from our point of view, right,
from this chain, addressability looks like this. Here are the things we care about and here are what they're called.
And then from another chain, you can kind of decide, well, which chain is the canonical chain that we sort of care about from that perspective, I guess.
So I think it doesn't, like you say, it doesn't say like, oh, we just stick that on the hub and we're done. But it does mean that people can decide potentially which host chain they want to use for saying what the source of truth is on a given thing that might be fragmented.
The one that jumps into my head is IBC denoms, but that's actually not really, is that a problem that anybody's having? I'm not sure it is, but, and it's just a thing that jumps into my head as different on every chain, you know.
Can multiple chains be a controller chain to another one?
Yeah.
So it's kind of scoped to the interaction.
So that's the right place conditions where one chain kind of issues a command that another chain does very, it's very similar time and have you kind of merged together those two actions and
Well, indeed. I mean, so a lot of that is actually controlled by the authentication controller.
So it's, yeah, I've, I don't fully understand every bit about the mechanism. I'll be lying. I would be actually quite surprised if anybody outside of the folks implemented our ICA, the ICA spec fully understand that but that is the role of the
essentially the authentication piece, but then also the fact that any instruction and transaction you submit is going to be part of a block. So then all of the usual guarantees of validity on the, maybe it's right, host chain apply,
because obviously that's all the part of the anti handler and the keeper in the cosmos SDK of saying like, well, is this actually a valid inclusion in the block which and that validation has to be run before it can be included.
So that there, you know, conceivably is a type of zero day that somebody hasn't ever thought of because of the context, but if certainly I guess at the native level, all of the interaction with with the native SDK modules
should be covered, I guess by the existing data validations that govern block, the govern transaction inclusion in the block. I think, but I'm not an expert on that on that mechanism so
I'm the leader of technology right you know I mean you really sound like an expert so
that's all I'm going to write. And please no more no more zero day discoveries on game and notes let's try to keep that to a bare minimum. Yeah, I think the thing I guess the thing that sort of
worries me is like because we've we've gone through the whole cosmogonance and getting to 1.0 fun time and
during that audit process there are a couple of minor things and there were a couple of actual zero days and the ICA piece is quite complex and there's also things you can interact with like individual modules that chains will implement that aren't part of the
kind of core set of modules that every chain has like bank like staking distribution etc. So if you expose that functionality to control the chains there's probably like your attack surface is it suddenly gets much bigger and much more complex.
So, although in principle my understanding is it shouldn't get any more complicated because the modules are modules and they're governed by the same security model as the rest of cosmos.
Like I say like I've been surprised by security vulnerabilities before so I'm not going to I'm not going to say oh yeah it's totally secure so that you can clip two seconds of it when it turns out to not be secure, you know.
So that in an actual I guess why we're taking our time with it.
But it's I think it's also a case of actually just having to read a lot of the source code and really understand what it's doing before we're we're sure whether we have like I say like kind of additional criteria for the authentication piece that we weren't aware of.
Because it is like, like a lot of things in cosmos it sort of described in a couple of blog posts and then after that is read the source code so it escalates very quickly from you want your interest in this thing.
You might want to implement it.
Read the source code. So there is there are to be fair there are a couple of pages of docs actually embed in the source as well on how the ICA controller and off bit works so I'm being a little bit unfair. But I'm not going to pretend I fully understand it and I'm not comfortable with things I don't fully understand.
So that's why I'm putting the brakes on it and I think Jaby is is similar, I guess.
Cool. So just reading what pop monsters put down on here so he's saying, IBC denoms are an issue in his experience.
So he's saying that there's a module called coin metadata module that might address that have any of you guys heard of that module I haven't heard of that one yet.
I've not heard of that but I have. I have, I think as I just said there, I figured that there is a five minute implementation of a smart contract that can live on a host chain that interprets what an IBC denom is from the point of view of the chain into something that a human can read.
I even actually is on my pad somewhere like if you have a little bit of time, investigate this but you have put my story down that that would be cool. That would save us all some time.
Well, I think he's saying that there is maybe a module that's in the works potentially I guess for Cosmos SDK.
Well, actually said both are in the work so chain name service.
So yeah, I heard of that. That's Jack, isn't it?
I don't know.
So there is a working spec for a coin metadata and chain name service data format in the chain registry.
Okay, so maybe who maintains the chain registry that's on the Cosmos.
That Cosmos Hub? I think it's Cosmos Hub.
Yeah.
Yeah, that would make sense. But I guess the question is again, where is that going to live on the hub?
Every chain is going to end up deploying it because that's sort of what every chain ends up doing and then you're kind of back to the who you trusting argument.
Not denying it is useful for developers.
The denoms are a real pain in the ass on Cosmos really.
Unless everything goes back to their host chain. And yeah, I can see that being a problem across the ICA for sure.
Unless you can deduplicate properly that this is the same denom as this denom, then you are kind of fucked as a user.
And actually as a developer like Popmos just alluded to, like if you're trying to do complex defy things where you don't know where the tokens have come to you from, that is potentially an issue.
Was there any talk later on during consensus about like Terra2 and where it's going and if it's a massive road from Terra2?
I don't really hear any conversations about it. I don't know if that's different from you, but there weren't any talks.
Yeah.
Not a thing. The only other stablecoin conversation I really heard anything about was the IST thing with the gorg.
That's the only thing that really came up is Dean was up there and he was on stage talking about that, which maybe we could talk about a future day or something similar to that, but I'm trying to talk about why that's a good idea.
So, well, I mean, if we're done with consensus talk, maybe we could talk a little bit about stablecoins unless we had something else already on the list to move on to, guys.
Because there has been talk around the place about bringing new...
I think Frida and I are both chopping up the bit that bring up a specific topic that we want to talk about.
I'll go for it. I'll bring this shit up later.
Yeah. I mean, I think we're both looking at the same spreadsheet that you always doggedly refuse to actually open.
Well, I mean, I'm looking at the bit that's in all bold that says topic of the week. No.
I know you said that as well.
Yeah. The man joined us from New Zealand. Come on.
New Zealand's miles away.
It's like 13 hours from us. I mean, it's like an hour from you. I mean, it's a very, very long way away.
That's okay. We have good experience. It's fine.
Why are you chopping and jumping around this spreadsheet? You've gone straight to the bottom and now you're going back up.
Well, it sends the stuff, obviously. It's an extraordinary addition to the spreadsheet now, which we actually did discuss before you joined in the pre-show.
We were going to cut it a little differently. So it's all about you snooze you lose, I think, on this one.
Well, I think if you're going down a list and you skip shit, you skip it. It's done.
It's done. We can't ever talk about it.
It's about the civil engineer here. It's just like...
You just do everything without any kind of certification, without any kind of real engineering now,
without any understanding of how to put up a good old-fashioned bridge.
It's an O-L ordered list, fucking in an order.
I copied it to the bottom of the list, so now it's back on the list.
Well, that's okay. It's practically a new item then.
All right.
So, with that little rebellion out of your system, are you happy to continue with the podcast?
Sure. My internet's working much better now. Thank you for...
Yes, actually.
So, James, I was kind of interested. Obviously, we've talked a little bit about some of these myriad,
infinitely regressive telegram groups that have been, I think, absorbing the life force of most of the core Gino team
for the last few weeks.
So, Kevin's another friend over the show, if you like.
We were sort of saying, because it's absolutely impossible, even if you're inside the process,
to keep track of what's actually going on.
When it's all kind of said and done, we need to basically just get Kevin with a town crier outfit on and a bell,
and just be like, here you hear you.
Here's the list of protocols that are joining, and then just read them all off at the top of the show.
And then we can go, right, there we go. That's piece of news done.
Now everybody's on the same page. All right, cool. Right. Let's move on.
But obviously, I hadn't honestly heard much about subquery before we started talking to Terra projects,
but it was pretty much the first thing that most start saying to us is, do you have to, very good,
do you have any deployment of subquery or working examples for running on Gino?
Are you in touch with the subquery team? And obviously, very quickly, that came to pass.
But from somebody who didn't know much about the organizational solution,
I'm kind of just also interested in the background of the organization.
I have a background in RDF of all things, right, link data.
So the dorkiest, arguably most dead end of all Web 2 technologies,
but that's why I care about addressability and stuff.
So I'm kind of wondering how you guys settled on indexing and stuff,
and what was the history of subquery and how you chose this as your niche to sort of work in?
Yeah, we were doing infrastructure stuff.
So our origins from the poker ecosystem, and we were doing some infrastructure stuff for them.
You know, poker and cosmos, very similar in terms of the outcome that we're trying to achieve.
We're going about it different ways, but the outcome is the same, which is this multi-chain universe
where everyone's got freedom to kind of build their own application chains that talk for each other
and communicate well, and they're interoperable, right? It's the same outcome.
We were doing a lot of infrastructure work for a lot of teams that were building in that ACQ system,
and they kept asking us about indexing, right?
If you want to build an application, you need indexing,
and for those that are listening that don't know what indexing means,
this is another buzzword that you have no idea what means in the outcome.
Indexing is very simple, right? So a blockchain is a linked list.
It's a glorified linked list, and for those that don't know linked list, it's like a book of pages.
Every, you know, 10 seconds, a new page is written to the book, which includes what happened in the last 10 seconds.
And if you can imagine trying to convert a book into like a something that you can build an application of,
like, for example, just getting the last of the transaction history of my account.
If that's recorded in a book, you have to kind of go through each and every page looking for transactions to or from your account.
It's the most inefficient way to query data, and that's one of the biggest problems of blockchains.
It's a great way to store data in an immutable way, but it is a terrible way to have that data accessible.
Accessible so you can build brand new depths off it, so you can use that in other platforms or ecosystems,
so you can kind of interact with that data.
And if you want to build a new application, it's easy to use, you need access to data. It is critical.
So subqueries are data indexer, very similar to what the graph does on Ethereum.
We've started Polkadot and we're working our way through the non-East chains that allows you to,
in your own way, for your own application, index data from the blockchain.
So when a new block is added, we will go through that block and we'll pull off exactly what you want,
convert it to a format that is exactly what you need, and then allow you to then query that data using a language called GraphQL.
The outcome of building a subquerie project, which takes a very simple process,
means that you have a brand new API specifically built for your application that has exactly the data that you need,
and it's much, much faster and more efficient than querying the database.
It allows you to build better applications that are more user-friendly, more intuitive, faster.
And the background to how we got to Cosmos is a bit of a windy path. We announced support for the Tera ecosystem a week before it all collapsed.
So perfect timing, the kings are perfect timing, but we're working with many of the teams in the Tera ecosystem,
and many of those teams, and the ecosystem we talked about between you or 30 of them, all very friendly.
And as a side note, one of the things I really love about Tera, or the Tera teams, is that your whole ecosystem collapsed.
Your reserves are all lost because most of those teams are in UST.
And most of those teams, the next day, weren't saying, you know, maybe blockchain is not for me.
They were saying, where am I building next? Where should I go and do this again?
You know, I still believe in this idea, where am I going to build that application I was building in Tera?
Where am I going to build that next?
And one of the ecosystem teams in Cosmos, Juno, was very efficient at reaching out to a lot of these Tera teams,
sitting up the Tera Development Fund, to which we're a party of, or a recipient of, and bringing these teams into the warm bosom of Juno.
So that's kind of how we got here, right?
But we support Polkadot, we support Avalanche, we support Cosmos.
We started with Juno, we've tested Juno, but we believe it works with any Cosmos and chains.
So we're on the same page.
So you're where we start A's and...
Yeah, Algorik and we're going to talk to, yeah, Osmosis as well, even the Cosmos Hub we've tested on.
So now it's just a challenge of going and talking to all these teams and making sure it works well.
But that's the background to what we do.
But all these, you know, Tera teams that are coming over, and even the teams that are building on Juno and on other chains,
we just provide that developer tool that makes life easier.
So essentially, again, for people listening, well, I guess we have enough technical people that probably this won't come as a surprise.
But just to clarify, the indexing side is primarily the query end, isn't it?
So you're writing to the blockchain.
If you worked with the traditional, the way I was explaining, if you worked with the traditional web application,
you have some kind of database interaction layer, and then there's a database.
That interaction layer is usually some kind of abstraction like a line of business logic app,
or, you know, back when I first started, it would be like a PHP or a Rails app or something like that.
And then a database driver and then probably Postgres or something.
And then all you're really doing is orchestrating reads and writes.
But in the blockchain world, we're sort of sending writes down to the blockchain,
and then we're bringing up reads through an indexer.
So the most you know projects, for example, will be hitting a core chain RPC for live data constantly,
and doing a lot of filtering on the front end.
And that can get pretty complex.
Some regulars of the show will know that, yeah, so like this is something that regulars of the show know,
I'm working on a social protocol with some other people, we're in private alpha at the moment,
and we're totally fine on performance because it's a private alpha.
But one of our principal concerns was, you know, are we going to have to build our own indexer?
So, you know, selfishly, we're really happy that Subquery have appeared on the scene because
an indexer is not something that you just lightly sort of get up one morning and you go, like to build a...
But that's what most teams have had to do, right? And every time we enter an ecosystem, there's no provider like us.
It's like all these teams have built their own wheel, you know, from scratch, and it's just like, it's a shame.
But we're doing a lot of work to add support for as many different chains.
And one of the big opportunities for us is a lot of the teams are thinking about other chains outside of, you know,
Cosmos, even, right? And, you know, being in Cosmos, you guys, you know,
I assume everybody believes that multi-chain interoperability will drive the next kind of adoption uptake of blockchain
or make our lives easier or make consumers' lives easier in terms of the assets that they have.
And so if we all believe that, then we certainly need these tools that make it easier for people to build applications
on different chains in and outside of Cosmos.
So we've got... We've had a few questions in the chat. That microphone arm is amazing.
I would like to know which one it is. Nice one. Usurper has responded with that. It's a road one.
But we've got also a couple for James. So Puttmas has asked, could you discuss a little bit more
how subquery and mantelment differ from or complement one another, which obviously that might also need a bit of background
for folks who are maybe more in the Cosmos ecosystem as to what mantelment actually is as well.
Yeah. So I'm no expert on this. My mind is saying a mantelment is a much more organized and efficient node.
So it was built by the Territimer, if I'm not wrong. And essentially it's a kind of layer on top of the core
non-parooned archive node that makes it a lot more efficient to query. We actually use mantelment nodes.
So the difference between us and mantelment is mantelment is kind of like an off-the-shelf API.
You can't really change an API. It has certain API definition that you have to accept
and that might work for you, but for most people it doesn't. If you're building your own custom app using your own smart contract,
you need certain endpoints, API endpoints that are custom to your product. And that's where the subquery piece comes in.
So it's really about converting this kind of common blockchain structure to a structure that is completely custom to your application.
So that may mean that if you're building an NFT marketplace, all I care about is the NFTs that I've minted,
who currently owns them, what the transaction history with those NFTs were, and what the floor price is of this collection, right?
And you can build APIs that give you those pieces of data in a much more efficient way than you can calculating that dynamically in the front end.
Because you can't ask the blockchain what are the transaction history of this NFT. That's not a question that you can do a mantelment.
That's like historic data and you can't really ask that in a mantelment endpoint.
So I have some questions, the fray, if I may.
So obviously there's the graph as well that's doing something similar to you guys.
So I have a question that's more around trust and integrity of data.
Because at the moment, for example, like basically everybody in the cosmos relies on the integrity of Cosmos station to provide accurate data in Mint's Android.
So there's no one checking that. That is basically they're indexing and putting it into their database and they're reading from their database.
And that's why we can have historical data from chains that have done like hard forks and stuff like that.
But inherently, everybody is basically required to trust that data that they're serving up.
So how like are there any checks and balances like that are able to be implemented in the sub query or how does it, you know, prove the integrity of data?
We can be thinking about this all the time now.
And so we provide it like a centralized hosting services for our customers.
Most of the wallets explorers and polka dot user, we're doing like 400 million API calls per day through it.
So, you know, we do a lot there, but you're absolutely right.
It's a centralized service that's trusting us that we're going to get it wrong.
And I guess it's a reputational sacrifice if we violate that.
But correct, you know, it is a trust nonetheless.
So we're building a decentralized network very similar to what the graph's doing.
The difference between us and what the graph's doing is the graph's decentralized network only supports their Ethereum projects and doesn't support projects on the other chains that they support.
Sub query.
The graph have started doing Juno.
They've started working on Juno and they've started working in Cosmos Hub.
And we're kind of in the avalanche space with them.
We just entered that a couple of months ago.
There are some complaints about the graph treating these new chains as like a second class citizen.
You don't really get the support.
You don't get the full functionality of the graph.
They kind of focus on their Ethereum customers primarily.
We're trying to be a bit different about that.
But your point around data validation, so sub-group project can be open source.
We try to make it so without you kind of doing something crazy,
that sub-group project will be deterministic as much as possible.
And you have to like turn a flag off to say this is not safe anymore when you disable that deterministicness.
If it's deterministic, that means you two parties can, you can't verify automatically that the data's correct inside of a single project.
There's like too many mutations that might happen.
But you can quickly verify and we're built in the proof of indexing.
We call proof of indexing which is you can compare two different independent providers to that same data.
And through you know, Miracle Mountain Ranges, you can compare and confirm that they are exactly consistent in terms of the data that they're providing.
So in this starting collusion, the data is valid across those two.
And we have that inbuilt and that is kind of critical to our decentralized network.
So for you to become a data provider for our decentralized network, your hashes, your, your data must be completely consistent with everyone else.
Otherwise, there's something going wrong here.
It's something strange.
So theoretically, right?
So say, you know, there's sub-query main nodes doing that, you know, for 400 million queries a day.
So there could be, you know, say from each network, there could be two or three other providers, even if they're not even serving, you know, data to customers, for example, they're just as an integrity check.
So say, save King nodes ran their own sub-query servers and did their own indexing and then basically had a publicly viewable cross check with the main sub-query data.
So you could establish trust by multiple providers, at least, who are, you know, trust the people in the source.
You can run it yourself and it's fine.
And then, but we're trying to go a bit further with that far decentralized network.
It's less so that we're running the servers.
It's more so that anyone can run the servers, anyone can run indexes and they can index that data and sell that on the marketplace.
Okay.
So the vision here is that rather than just we run all the infrastructure and you guys do some checks, you can run the indexes.
Just like you run validators for these networks and you can earn rewards for that data that you sell to the marketplace.
So if MintScan wanted to decentralize its infrastructure, it could create all these sub-query projects that provide that data to their front end.
And anyone, any validator, any individual could run that project themselves and the network kind of proxies those off and rewards the indexes for what they do.
Is there any plan to like have a like implement a way to automatically, well, I mean, you've got the, so you've got your marketplace, right?
Would it be possible to have sort of like single endpoints that distributes queries to, you know, a network?
And so you get performance on that, right? Because this is a read-only database. It's a content delivery network. It's a CDN.
And, you know, if you're serving web pages from the internet, it means that web page is probably located in a data center closest to you.
So the more indexes, the more performance you get because read-only operations.
And so the more indexes we create, you know, that that's the outcome that we're trying to push for.
That's the outcome that we're trying to incentivize. And we're trying to incentivize, you know, you can run, you know, now you can run your own index or an Outback Australia.
And it means that millions of people in the Outback that want that data will get it from you.
The three K's and the paddock and the fucking sheep across that great access to, you know.
So, I mean, I'm impressed with that. That's exciting to me because one of the, you know, it's always been a gripe of mine that I think about, not talk about, is just that, you know, we rely so much, for example, on min scan.
And if this is like an evolution of indexing, then in my book, that's pretty exciting.
And we're working with like from Polkadot, there is an example, a similar version of min scan that dominates the space and everyone has to use because other tour the other knows.
And we're working with a person to actually build like an open source version of min scan that is built in a sub project.
So you can kind of, you can democratize that public good, which is the index, which is, you know, it's critical, also the explorer, you know, it's a critical piece of infrastructure on any chain.
And it means more chains get launched, min scans backlog is going to get bigger.
Maybe there should be an open source alternative where the tend themselves committed it with some minimal, you know, alterations.
So I think, like for for bold did build a an explorer that is more or less open source and you can you can run it and then it, you know, integrate it into the list and stuff like that.
But that's completely other topic.
But so back on sub query, I wanted to ask you, obviously, when people build their own contracts and have their own message types and stuff in their own contracts, it's reasonably bespoke.
And obviously, sub query is not going to have.
Well, in my mind, sub query is not going to have the native ability to crawl subcontract contracts.
It does.
So you can.
So when the contracts up, it can, it can query that contract determine the messages and then decode basically.
We have, we have various different types of like so what we call like trigger points.
They're called mapping handlers, but I look at them as like trigger points and so your basic one is like a block trigger to every block that's added.
We do something very simple, but very brute force, but we have more advanced ones like for cosmos.
We have like a transaction.
We have tons of transaction happens.
We do something, but even better.
Every time a log is received.
So or a message is received that filter that that fits a certain like topic.
You know, when you like define topics and you trigger logs or events from those, we can filter down to those.
You can like put them the filter of what exactly you're looking for, which means that you can write the flight.
Like I did an example project which tracks all the vote events for the smart contract that is related to the Terra developer fund.
So my project that's running has index every single vote made on any, any one of those Terra development fund proposals and lists, you know, the voter, the voting address.
If they voted yes or no, what, what, what, you know, fund or proposal idea was on and the date and the block height that happened.
And that was a very simple process because I can just filter just that smart contract into a certain events or that were related to that.
So what is the, you know, breaking it down like to language for dummies like me with databases?
What's the basic storage?
We've spent decades optimizing databases.
Like we've spent so long optimizing database.
So in here, there's a Postgres database that holds data.
Not what I was going to say, but preempting what I'm trying to spit out of my head.
So the data storage, like, are you storing individual messages that you pull out or do you store like particular data from messages?
Or, you know, are you creating like a list of transactions or are you creating like a list of messages and how is it stored and how is it broken up in sub query?
And I don't know if that's like within the scope of our discussions today.
It could be a little bit out there, but I'm interested nonetheless.
No, that's fair enough.
So think of a sub query project like a recipe and the recipe has a myth like it has ingredients.
So for example, if your trigger point is on a certain event, that's your your ingredient.
Okay, so I received the event and you define a very simple function that say I received a cosmos event.
And all I do is for my one, for example, I will I just want certain things.
I wanted to propose the idea, the vote, the voting address.
So my TypeScript function, I just like pull that piece of data out and I save that as a new like JavaScript object or TypeScript object.
Okay, so that TypeScript option object gets put into the database.
So we don't save everything willy-nilly.
We kind of you when you're creating your sub query project, you're defining the shape of your data that you want at the end.
You're defining your trigger points and you're defining the mapping functions that take it from, you know, a cosmos event or a cosmos block and putting into the.
The object that you want at the end of the day.
So that's those three pieces, you know, the trigger points, the mapping function and the final result.
Those are the three things you do when you create a sub query project and we do the rest.
We set up the indexer.
We do we kind of reliably index all blocks according to the rules and the method that you've defined.
And we spin up a database and a process and a query endpoint that you can create that resolving data.
Okay, so so basically, okay, I understand it better now.
So a user will tell it what it wants.
And then basically you then store bespoke tables related to what they've asked for from the base of data.
Like, yeah, it makes sense in my head.
So James, if that definition changes over time, if you if you is always from this point forward or I can point it out a, you know, an archive node and have it replay blocks and start re creating those other.
It goes, it goes what a block you want to block one if you want, but I do know still has a block.
300 something thousand.
And does that does the future for every block up to now.
And then as a box, we have updates.
And then if I if I add another query, like if I'm if I want to be inspected a different area, I could just point it backwards is rebuild it back up and I build my new graphql structure off of that.
That's pretty cool.
So if you want to keep it determinants that you kind of have to go back and start again, because you know, you don't want things to.
As I forgot how fast the re indexing but you know retain that determinism because again, that's critical.
Sure.
I can stick tricky, tricky challenge.
So in terms of users then what kind of costs typically is it to like index a project say if you had a million blocks and then how is it paid for is is there like a sub query coin on it's open source.
There will be a sub query token for the network and that's how you reward indexes for doing the work that they do to index that data.
We're working out the payment methods are trying to figure out how to make it work so that you know end users don't have to pay for it.
They kind of get sponsored by the application owner.
But we also have a host service where we run a large amount of structure right now.
And we have kind of we give it away for free from small customers just to get up and started.
But we have you know arrangements with those big wallets or explorers that use millions of requests per day and have huge data sets.
And that's you know we just kind of cover costs there but it's essentially open source and you know if you want to run it yourself if you want to start building with it and power you up off it you can do it without even talking to us.
Kind of curious if you can run it on a cache actually that would be pretty cool.
Like I kind of with all of that luxurious amount free time I have I'd love to have a go indexing June off and run it on the cache.
Right.
You know we're adding heaps of chain support but there's like so many different changing cause chains and cosmos that we don't really have the time to cut goes through and like test them with each.
So we're really interested to hear from different chains from teams and different chains as it's working.
I don't mean indexing a cache I mean in run an index node an indexing instance of sub query on a cache as a container because you know a cache is just a marketplace for compute on Cosmas right that you can access via IBC.
So let's say let's say I'm building a social protocol because maybe I am.
Maybe that's control bear Dow because maybe it is and maybe we want to run an index for some type of content that comes up in the service.
You could conceivably run your own the Dow could run its own sub query instance on a cache and then pay for it in a KT via IBC straight out of the Dow Treasury.
Which would be pretty cool.
Would you buy over rice.
Which you can buy what you can buy over IBC I think you need I see a for oh why you're talking about the thing you need the tokens first right in order to transact over IBC so.
I'm talking about the wall at the wall at sport.
Oh you're talking about the fancy fancy.
Yeah that was really helpful.
Yeah sorry I don't know why I just said fancy fancy like that was descriptive of anything.
I mean I knew exactly what you're talking about we're low.
The fancy fancy yet exactly using the fancy fancy the double the double stop the double hop transaction over IBC the fancy fancy.
So yeah and people people kind of people who I know there are some people who are listening to this who also listen to the dev podcast we did earlier today.
So when James already described a blockchain is a linked list which you also encountered earlier today so.
When we had a little bit of a tangent on applicative functions and mapping functions earlier and why it's a rate is a pretty good in rust smart contracts.
That that that mapping function that that we spent maybe a little bit too long getting to the weeds over is basically how sub query works as well so it goes to show you that.
Developers rambling about concepts sometimes those concepts are universally applicable to hard problems.
So yeah so I guess the final question I'd have James like what you know obviously that you guys you folks are so kind of launching your own chain and whatnot.
What's what's exciting on the roadmap that those of us who may be application developers should be like excited about coming from sub query and kind of looking out for.
Yeah well like so as our teams focus on making this index is reliable as far sufficient open as possible right.
And it means that we're constantly building new improvements to it.
So an example was that hosted service we're just improving the scalability of that and new features to that the network which we're trying to launch we just had a test network we had about 150 indexes.
I'm simulated about 200 million API requests in the test network and we're rolling onto a main net soon and we'll have a a Cosmos project on there probably as well.
We're doing a lot of like interesting features around these performance improvements that's always like the number one thing is make it faster and better but also features around.
So you can make a sub-group project that is mutable and mutable for those are no means means like data inside of it updates.
So for example if you're indexing the current owner of an NFT that data will change all the time is that you have to assault.
We have added a new feature recently that keeps track of all historic mutations of that so you can ask what you can ask your sub-group project what was the state of the world at this particular point.
Oh so then sourcing.
Yeah.
Okay that's cool.
So you can you can ask like what was the balance this point if you're indexing like the balances of all assets that what's had you can ask how much did they have at this time.
I guess you can kind of figure that out but you know like this points here where what was the the API of a of a defy protocol at this point in time and how's it changed.
So those are kind of interesting features where we're working on adding but of course more chain support is always one thing we're going to be supporting.
So we have a goal of about eight different chains by India and we're kind of three almost you say four but now three thanks to tears demise.
It sounds like someone might actually be able to make some effective fucking tax software based on sub query.
Hey let's not get ahead of ourselves here.
Yeah.
Yeah it's like in the cosmos it's just impossible to work out your tax.
Yeah.
I had to write my own software based on Matt produce as it happens but obviously my accounts can't run it because it's a closure project so they were really excited they were like oh you've written software to do your taxes.
Oh is this something we can resell.
I was like if you know the list if you're happy to run a repel you know it's bag easy but at least we don't feel like that.
It's a text governments around the world are going to account for like 300 million of your 400 million daily queries on the.
But so just just because that final point you talked about where it kind of sound like it was an event sourcing based solution where you're you're calculating the delta right between two points and that's how you're moving the index forward.
Is that a fundamental reimagining of how sub query does stuff or is that an additional product that is essentially doing event sourcing for because that for those that I guess don't do lots of log streaming stuff.
There's basically two models one of them is you just log the value every point in time and you just keep track of an entity and then you as an application developer decide when what to do when you are told it changes.
An example of this would be something like a smack stack where you have Apache Kafka writing to Cassandra so you have a date a database and then you have like a log streaming thing.
Ha ha ha ha ha ha ha, Callum, yes, I managed to make it an hour without mentioning this, well done.
Or you have something where the database on the log of the same thing like it in events or somewhere you say okay well I actually only care about what can be computed at a point in time which might be now.
In which case what I actually need to do is compute the deltas so.
I don't know how many people listening and listening to the playback later.
Yeah, we're storing the states at different points of view. So we're saying the state was
like this between blocks x and y. Computing and storing the data is a fundamental reimagining
of how you do that. And I think it's a little bit of a step too far. But from state was this,
that x to y and from y to z it was this, you could obviously backtrack and compute the data.
Okay, so you're going about it that way rather than the event sourcing model where it is.
I know some very, very smart people that did some work on geolocated event sourcing.
I think you might have even been for a demonstrated project in New Zealand of all places.
But yeah, it was. There's so many people here.
Yeah. Well, they were based in the north of England. So I think the original purpose was
like for tracking emergency services or something saying like, oh, where was a given point reported
at a given point in time? And then it ended up pivoting the whole company towards like,
where is a customer in a supermarket at a given point in time? Which as it turns out,
is a really hard problem to solve and very interesting, but it doesn't actually translate
to bucks in the cash register. So nobody bought it. But lots of fun. Lots of fun to think about
it anyway. I'm going to shut up. Nell, you say, do you have any final questions for James?
Oh, yeah. But it's not related to subquery.
So New Zealand thing. Yeah.
Go ahead.
No, it's mean. I'm not going to say it.
Bloody Aussies.
I mean, completely unrelated to anything blockchain or cosmos or that. So I think this is like,
similar around the world now. Everyone's pushing up interest rates. And in New Zealand,
is probably ahead of the curve on pushing up interest rates. And you guys are getting it
pretty hard there. So the reason I ask is because traditionally, the news is pretty full of shit.
And I don't really look at it that often, but lately on my Google news feed on my phone,
I keep seeing all this shit about the New Zealand house market imploding, etc. Any truth to it? Or
is it all media bullshit? It's not imploding yet. It's saying like the news on my house market has
been one of the hottest house markets for the last five years, right? House prices here like went up
like 28% last year. Yeah. So it's not imploding. It's actually like stagnating slightly going
down a little bit, but like compared to what it was doing last year, it's like, oh, wow.
Yeah. It's kind of like the house prices in Sydney, right? It's almost like London, I think,
where it's just ridiculous, but outside. Well, like in the news relating to our housing market,
you know, it's like the news headlines are like, Sydney completely fucked, Melbourne completely
fucked, but like they've still got a clearance rate on auctions and stuff like that. So it's
really hard to decipher what in the hell is going on with it. But I mean, I don't own a house, so
it doesn't really bother me. Yeah, I'm the same. I can't bother buying houses right now. It's
I'm just waiting for things to shit the fuck up and like 12 months or so, you know, that's the
time to have cash. Yeah, it's interesting like where it's all going because I don't really want
to get I could talk about, you know, the local economies here for days and just bore the shit
out of everyone. But I wanted to ask you about that. So you surfers like, where even are these
places? Are these? They have economies? These guys aren't in America. Where are they?
These guys aren't in the same country. I thought New Zealand was the state of Australia.
I do know that there's been those two. I'm trying to I am trying to figure out what exactly the
local economy looks like in the bush over there. And is that like how many kangaroo pelts you get
for a gallon of koala milk? I got it with that one.
That's a good one.
You know, like we've only had just the American billionaires fly out before COVID to really
fleece and are arguing a bit, getting a bit too knowing about the subject.
Like we literally sell bags of chicken shit on the side of the road.
We don't have a good deal on the side of the road.
And ends like we sell rocks to throw it to try neighbors or like, what's the utility here?
Well, we do have a chicken shit. It's based on the ability of Australia to sell rocks to China.
Basically, yeah, it's how much can we dig out of the ground and convince China to buy before
they explode us with nuclear bombs? They write that on the bills, right? Isn't that the bottom of
the bill? I think it's like in the UK on the money, it says like, I promise to pay the bearer
on demand the sum of blah and it has like the address of the Bank of England. You obviously
can't bloody do that anymore. But in Australia, it says like I promise to pay the bearer on demand
the amount of rocks equivalent to probably the equivalent of coal or something.
Yeah, it's a reserve currency in case people listening weren't aware of that.
Like it still does have a reserve, but it's primarily rocks and coalesce.
We have coal on oil and gas. It's like... So you're basically Russia. You're basically Russia.
But like, you're a solid hemisphere. Nobody assaulted you.
Does that make New Zealand like Ukraine or something?
No, no, no, no. We're friends. We're like, we're like, we're like Canada to the US, you know?
We couldn't get the rock out of the ground without Kiwis probably. So
to come with us. It's sort of like a threat, like weirdly.
We'll get that rock out. You'll be sorry about joking about those rocks out the ground.
A famous prime minister or like president from the Americans listening of New Zealand
once said the same as back when someone said, you know, the migration rate to Australia is
through the roof right now. And the prime minister said, well, it's not a bad thing.
It, you know, it raises the IQ of both countries. Wow.
Wow. It's pretty good. Ironically, I've worked in New Zealand to get money when I was a uni.
Yeah, it costs like so much money to buy steak over there. It's ridiculous.
The food in Costa Living is fucking madness in New Zealand. And they pay you like half of what they
pay you here. It's bizarre. But I must say it is an incredibly beautiful country. And, you know,
some of the places out there like the glow worm caves in Waitomo and down south, like around
like Milford Sound and those around there, just incredibly beautiful.
King knows desperately trying to save his New Zealand delegates right now. Backpedaling.
No, when I went down there, I traveled around quite a bit. And yeah, man. So in Australia,
the places you go see, which are serene and pretty, are like over in WA in the middle of the desert,
they're like red and green. It's a different type of landscape, right? But when you go to New Zealand,
it's like rolling hills and green grass and big lakes and hills. It's just
Wales but massive. It's Wales but massive lads. It's different to here, but it's just completely
beautiful. And it's a great thing to go and see. If anyone's thinking of traveling anywhere post
COVID, go check out New Zealand. So everybody, you've been listening to Game of Travel Asians with
King knows your friendly local travel agent, King knows.com for all your travel needs to
Australia and New Zealand. They'll organize your package holidays, trips to the outback and
yeah, personally, you're powered by Subquery. So it's time to do a little bit of wrap up and
hopefully not get rugged this week by now. So we had a few quick questions for Game of Nodes
during the week, which were, and James, feel free to jump in if you have an answer to a question,
even though they've kind of been asked in our direction. We've been asked a question,
a couple of questions about, isn't Nomec main net?
Like, is it Nomec or Nomec? Nomec. Nomec. Nomec. The main net is this week, next week.
You two are validating it, right? Where are the windows tiled?
I'm trying to point to the two of you. You're both validating Nomec, right? That's going live
next week or the week after? I'm not. New Surfer probably is.
I am. The date, I don't have the exact date in front of me because I think we're going to talk about it.
It is something about in the chat right now as well. I believe it is next week.
I have a question for you, you Surfer. If Nomec main net is just now going live,
what the fuck has been live for the last couple of months?
Yeah, we were talking about this on the Game of Nodes channel. It's just been really stinking up
to this point, right? Because the idea is that this is a bridge for Bitcoin bridge. So it is,
I guess, we're up to a point where everybody's just auto-compounding like crazy to be able to
build this up and build a pretty uneven delegate structure in these hundred validators.
Three months for like three months. I think it's the end of the scamming period, is it?
Exactly. Yeah. Now we can actually do something here.
So it is, yeah, there you go. Calvin and Publix just hit stake net, which is a nice way of saying
what I just said. So it's live and we're staking. And so I think I actually, I'm trying to find
the date exactly when it's going to launch. So then I think then the new UI will be able to
be available and then we'll start having some exchange of the things that are going to happen.
So yeah, I actually haven't seen too many. They don't communicate quite the same way
that they're chained. So it's been difficult to somewhat keep up with.
Well, let's be rectifying some of the, so is there still going to be the weird shit that they've got
in the stake net is what they're going to have in main net like,
or have they already fixed it where they, for example, didn't have the ability to
unjail or something like that? They do run this again, some Kimiak. I think they run,
they do run a separate UI that or CLI that sits in front of the tandem SDK.
And so I'm not sure if that's Rust based. I think somebody told me that was Rust based.
Somebody's going to say if it is or not, right? They built their own application on top of
tandem and it's not based on the Cosmos SDK. Okay. So behind this team, they have some of
the same components that are in there and there's some front end to be able to perform some of those
tasks. But I think like the wallet structure and where that's held, some of the other commands,
obviously are quite different than, and now, now a little bit, now, I don't know if it's on par,
but early on it was a little bit restrictive in terms of what was available to you.
Even things like being able to, you know, enable something like a tender duty to be able to monitor.
It was difficult to even get developer address out of that. But now that's all somewhat changed
and there's ways to be able to do that and things like that. So, but there hasn't been that many,
I was actually trying to go back and see how many, how many actual upgrades there's been in
those periods as well. And I think there's only one or two during the stake net period. So
I assume there's another one obviously coming for the upgrade here and we'll see what kind of what
happens. That's like, that's a weekend's of upgrades for like uni three. Yeah, seriously. Yeah.
Yeah. So it's more of a, it's well, obviously, there's some things that are different, but it's
approaching future parity for against versus the SDK on core stuff, basically. That's a,
that's a, that's a pretty weak example for me. But in my eyes, at least some of those things are
coming in. So if you can monitor the node using standard tendiment monitoring tools, that's a
good start. To start. Well, I mean, because this is the thing that you've been talking about with
James this entire episode is, you know, the beauty of Cosmos SDK or Cosmos more generally is that
you should be able to run one thing against all chains with very little modification and kind of
get results or at least be able to diagnose them yourself. So I think, you know, if you're saying,
given that they're now advertising, this is main net for real lads, the fact that that stuff is now
starting to work suggests that their implementation is now in a good place, which is good to hear.
I mean, I'm excited. I'm excited primarily because people are talking about it in Prague as
potentially a Rust implementation on top of the SDK that would work. And as we know, I am a
unashamed Rust Maxi when it comes to Rust versus Go. So yeah, actually, I don't see anything official
about what that data is. Kyle also talked about maybe next week, but I haven't seen anything on
the Twitter and other types of things. I think all I've heard is like, it's been through other people
now that reason I feel uncomfortable talking about this is I don't know if I've actually seen
something myself. But we'll see kind of what happens. Cool. We have one more thing on here,
which is interchange security. But I think honestly, let's kick that to next week now,
because that's a big one. And we can, we've like, yeah, there's just, I managed to really kick
it because that one security, it's a long, it's a lot. Yeah, yeah, it's, there's, there's a lot
of stuff that I managed to stir up with that one. And there's some very good points from
many people who are much, much smaller than me. So we'll kick that to next episode and make sure
that they're given the time they deserved. And actually, maybe we were talking about this, we
could get like somebody who's particularly knowledgeable about things to come along and
join the show because we've been shuffling the guests around a little bit recently. So,
yeah, final thing of the week, which we might, we have actually managed to get to for once,
the entire spreadsheet. What are you most excited about this week in the cosmos?
You say, I thought, I mean, I think about this for a few weeks.
Yeah, just me and I'll escalate the rocking. Yeah, right. All right. I guess I do have something.
So one thing that started this week, one big one conversation I had out of almost my accident
a little bit. Actually, not so much by accident. When Daniel was up from steakfish a few weeks ago
and he was on Game of Notes, it gives an opportunity to be able to talk after that. And then they were
meeting down in consensus and there was a group called Validator Commons, which I think I've put
a link into, which there's Metagov and steakfishes in there, I believe Cosmo Station might be in
there. There's a few others and there's some research individuals in there as well. And
that's having some conversations around governance in the cosmos is very cosmos specific. Although
those chains also talk about Validator Governance outside the cosmos as well. I think actually
it might be more than just the Cosmospace. And I think having a conversation, I hope my mouth
in that meeting and was just talking a little bit around just what's happening in our ecosystem
with validators and kind of how validators grow and those types of things. And they have some
pretty detailed conversations and discussions around I think both the Validator and Foundation
relationship and kind of the economy of that and those types of things. And then something,
so that's been pretty interesting. I'm starting to be involved a little bit in those conversations
just to better understand it and then hopefully get more people involved. And then the other thing
that started this week was also coming out was this Cosmos Validators League, which we've talked
a little bit and I know that you guys know and Frey have been involved with as well. And that
is another group which is now growing pretty large in terms of the number of Cosmos Validators that
have been involved. That came up out of Thiborg and also Ghost from Whisper. And that is also talking
about just trying to look at different ways to provide delegators with a good understanding of
value from validators in the Cosmos. Is that a fair statement, guys? And the idea of being able to
maybe make UX changes or other types of things that help more than just VP. And how do we find
other ways to be able to show value and either giving back or I guess I should sum it up to say
qualitative and quantitative ways to be able to show value. And so those conversations have been
also pretty big. We'll put links to the show notes I guess to both of these. So if there's
validators if not involved in either of those, it'd be interesting for people to get involved in that.
So I think that I don't know if that's the most interesting thing I'm excited for, but I do think
these conversations are really good. And I think that there's a lot of viewpoints in both these
areas. But I'm not sure of exactly what's going to come out of either one because there's, you know,
it's a lot of people involved with different kind of backgrounds and needs, but it's pretty cool,
I guess. Any comments from you guys on those? Yeah, well, I had like a pretty lengthy conversation
yesterday with Thiborg, who I think is like effectively, I'm not sure if I said his name
right, but he's effectively like, you know, the spring from which the fountain has come with this
validator, let's say assessment. And actually, we invited him to the, out of this, we invited him to
the delegations there, which we're looking at on Juno. Because I think, you know, he's got the right
he's got the right attitude towards that and is reasonably non-biased and that type of stuff as
well. So, but, you know, had a pretty decent conversation with him about like how that process
might look and, you know, the pitfalls and dangers of doing something like that. And especially if
they, you know, for example, became the default wallet that people use to do staking, right? So,
then you're sort of actively, you know, ranking people and encouraging directly delegations to
certain people and like, how do you how do you manage the responsibility of that? And a lot of
that would be subjective. A lot of contributions aren't on chain. How do you make all that assessment
and create that criteria to be able to effectively achieve what they want to. And things along those
lines, it's quite a complex subject. And, you know, the problem is for delegators, like it's
quite a it's a difficult thing for for delegators. Because obviously, as a delegator, if you're
fresh into the cosmos, you want the thing that's going to get you the most money, right? So, you
come in, you see a thing that you're going to get money back out of your delegates them. And then
your job's done, you click on, you know, restake or whatever and off you go after the raises.
But, you know, so if you're like a rhino and you're providing like RPCs for Stargaze, that's
on chain. But if you're like a poker chew, and you index things and put them on your website,
that's not on chain. And then assessment of that type of thing is pretty subjective, but they provide
a lot of value to the entire cosmos through doing that. So, you know, there's a lot of moving parts
when you're trying to rank people or or that type of thing. So, you know, I suggested that then that
maybe like instead of ranking people, you keep it like a random listing, but you know, maybe red flag
people like have agreed criteria, maybe even voted criteria that, you know, if you represent the top
30% of the vote on a chain or something, then you just get, you know, wrapped up and pushed to the
bottom. And then the remaining might get just scattered around a list. Or even, you know,
there could be a red flag system where if you do certain things, then then the, you know, you get
like a you get put in a roll up of a red flag line, you know, if you want to look at the red flags,
you can go on, if you hate the eco, you can go and vote to all those people and stuff like that. But
you know, you have to think about that type of stuff. You can't just go fuck it. We want to like
make a list and then make a list. There's a list now. So the question is, is the list going to be
better than the list that exists now? And the list that exists now is not right. So there's a bunch
of points that have been made in the chat. I just want to quickly highlight. I'm just going to have
a good run as well, guys, but I really appreciate coming on to say any of us for the meeting.
James, I apologize for bringing this topic up with them.
No, no, no, it's not. I was also, I want to say and talk about this because yeah,
we're trying to work out dials as well. But it's life. Cheers, guys. Cheers. Cheers.
See.
So, as Paul Moses said, whitelist and validated cartels are anti-community.
There's been a facetious respect the cartel. And then I think the second comment that I've
most made on this is actually very, very important, which is validators to sign the criteria is an
equation for cartel behavior. And I think that's like, I think the root of my uncomfortableness
with a lot of those validators we should get together and whatever is essentially that.
And I think it's also just that too many validators are up on more than one chain as well.
Like I think in an ideal world, the economics would be the case that you would only validate
one chain. We validate two, we're going to validate three soon. It's not impossible,
given that technically we're supposed to, assuming passage actually makes it,
we're supposed to validate passage that would be up on four. And that's at the point where I'm,
you know, as a part of an organization, validating more than one chain, I'm going, well, that's
it's not great, is it? And then that's before you've even really thought about,
you know, white labels and all the other complex stuff. So, you know, I think like Noel was saying,
whatever the metrics are, it's probably should be up to the community to decide.
But then the community is going to decide on an economic basis at the moment. Because it's
conflate. The problem we have like in a nutshell is that we've conflated economic incentives and
political incentives. And what's happened is we've got people buying votes. Let's call it what it is,
people are buying votes, and that's the problem. And this is a very, very solved problem. You don't
let people buy votes in democracy. You make it hard for them to do so using law. And we don't
have that. We just have this loose social consensus. So it's really hard problem to solve.
CB all right. I agree with Noel's point too. I don't want to recreate rankings and those
types of things. I do think that there is a real dark spot of education. And I think some of these
other types of things around what makes value more than just what that ranking is. And even like,
you know, I mean, I understand the idea of like having validators come together and trying to
build a UI seems like collusion, but you have one validator building a UI right now, right?
Like that's what Mintscan is, right? You know, it's community driven and it's open source. You
still, you know, that's kind of a small group that's being able to decide how that looks and why
the first 10 of those spots are colored differently than the other ones that exist in that validator
list. So I think that there could be more to be added on chain. I think there'd be more to be
added off chain. I think there's probably rules for indexers in this to be able to have other
types of things. Like a good example is miss blocks. Like those things, most of those RPC
nodes are just looking at the last 100 blocks. I'd like to see if for the last year, show me
downtime over the last 365 days across validators, maybe from when they bonded. Like that is much,
that's much more valid, you know, valuable to me. Mintscan shows number of votes. But if somebody
just joined, it shows that they missed if there's 30, you know, 30 governance proposals. And I just,
I was just a validator for the last one. It shows me as one out of 30. And so it looked like,
you know, what the hell I do? I just got here. So like those types of things and that and those
are, those aren't necessarily their issues. I mean, those are, those are indexing RPC issues.
And there's a technology gap there, which I think now maybe these, maybe a tool like this or other
tools that exist can help solve that. And those things are incredibly difficult UX problems. But
it definitely has a huge impact. And so I do think the idea of validators getting together,
at least talk about what's important is fine. And if that is a, if that looks differently, and
there's other ways to be able to add that data whether it's on or off, I think is there's nothing
wrong with that to make people make good decisions. There's a, I had a thought last night. So I had
a pretty lengthy conversation in my night last night with some guys from Orbitalapes,
because well, yesterday I flamed them on Twitter a bit and I got a lot of heat for it. But,
you know, we had a conversation with them last night. And one thing that occurred to me
while I was talking to them was that, you know, maybe, maybe a good interface is basically
a staking interface that doesn't say anything about any validators. And you just click a button
that says scatter stake. And then, you know, you pick the amount of validators you want to go to,
10, click scatter state, and it just goes even across all of them.
This is like the, this is like the bit in the matrix where he's down on the floor. It's like,
what's happening? It's like, he's starting to believe. I finally, no, no, I was finally
suggested his first solution that involves a random number generator. I love it.
And I'm like, yes, finally, finally, I've said random number generator enough times.
Yeah, just sprays it around to wherever, like, you know, because at the end of the day,
doesn't even matter. Like, as long as you make the blocks,
he's starting to believe, he's starting to believe, fellas.
I think there has to be some other changes where it does matter. I think the governance thing kind
of is a sticker in this. You know, I'm going back to this whole idea around governance,
there are validators voting for non voting shares. I think that that does make some differences. And
so I think there's some values in there that would make difference. And then if governance changes,
and that we separate that piece of it, or some other way of doing that, maybe it's a Dow structure.
And now there's a subset of Dow's that make or a subset within that Dow that makes decisions
versus just this on chain type thing, from a validator perspective, then I think, yeah,
you could just spray it, be done. Well, some think that, you know, validators shouldn't even be
involved with governance. Some, not me, but you know, some. I do. I don't, I think.
I mean, I think there's almost certainly bad ways of doing it. I think there's bad ways of doing it.
Yeah. My red hottest take, I don't know if this is my red hottest take, they all get so
perennially spicier. You know, the meme where it's just like the dial, and it's just like how
like the, the, what was it? It's like an old drill tweet, isn't it turning the dial and looking back
at the audience and then turning the dial again is the tweet is something like that. And it's just
like a classic shitposting meme. And, and that's kind of what I feel like with some of my takes.
I'm just like, turn the dial, look back, I'm like, okay, they're still here. Right. You can turn it a
bit more like, I think I've gone from there might be a problem with proof of stake to like, let's
eliminate validators lads to let's eliminate vote. No, I don't even know. Right. But I think it,
I think there is a bit of me that would like to make a cartel chain.
Cartel chain? Yeah. Yeah. Because it's a cartel anyway. So just admit it's a cartel and say,
okay lads, this is the cartel. Here are your validators for the evening.
But yeah. And then, and then once you kind of admit like, well, I mean, I suppose this is what
Foucault would say or whatever, I think it's Foucault, isn't it? Like, you can only critique
what you can, you can only critique what you have language for, right? So if it is a cartel,
you have to call it a cartel before you can critique it and build a solution.
And like maybe a decent, maybe a set of 125 validators is by its very nature,
essentially going to tend towards a cartel. And then, yeah, maybe the voting power is not the
problem, but who votes, each validator could have its own dial structure of delegators who
actually assign the vote that the validator should do. You could do jury duty voting.
That you know, a random delegator has to vote on behalf of the validator. And if that person's AFK,
then eventually it, you know, drops down to the validator, let's say a day before the voting
window or something like that. There are some very interesting things you could do with that vote.
But then also, you know, should, it's back to kind of should voting be tied to economic power,
like it's done as an anti-Sibyl thing, but actually fundamentally results in vote buying,
which is something we've decided in every advanced democracy is a bad thing.
So, yeah, the combination of vote, vote power plus, plus economics seems to me to be like,
not desirable. Like the thing validators want is stability of income to provide infrastructure,
right? Yeah, that's the primary concern. And I think with Prop 16, we saw that like, not all of us
we're mind stepping up for the community, but we're not always like,
yay, let's get into politics on behalf of our delegators. Right.
Ah, yes, good point partial match as well on anonymous voting and ZK voting would be awesome,
but you need like addressable off chain storage to do the ceremony is quite complicated or relays.
So we're not lucky to have lots of people.
I seriously apologize for bringing this topic up at hour 40.
Yeah, we need we need Henry on here to talk about private voting. We talked about getting
Henry from Penumbra on and he did say yes on Twitter. So that's that's legally binding. All
right, Noel, what are you excited about this week?
Well, what was the date? I don't know. T grades coming up. So people just
actually mentioning proof of engagement in the comments there. And T grades going to launch
like I don't 27th, I think, or something like that. It's imminent now. So I'm pretty,
pretty happy to see that coming up. It's really it's quite different to anything else there is
out there. And I want to see how it unfolds really. But yeah, other than that, I'd be excited to see
some fucking green candles. There is on the board here. This is all this is all because U.S. raised
0.75% or something like that today. And it's all green candles for the last hour. But I'm sure
that I'll sell off tomorrow and we'll be back. Oh, man, everything's like across the board.
Everything's getting the smoke at the moment. It's yeah. Well, anyway. But yeah, also the
the hack down, I think might be just going to go to vote soon on Juno. So I'm excited to see the
DOWs starting to roll out now. Working on a delegations down for Juno, which I'm kind of
excited about. But then again, it comes down to like, you know, assessing people on an individual
level. And it's it's quite subjective. And I'm interested to see how it all pans out to date.
It's core one who's been doing the assessment. And you know, I think we're looking for like a
quite a diverse mix of people for that particular DOW. Not just, you know, there'll be some
validators and some core people. But like I said, for example, I don't know how you say it, Thibord,
is a community person. He's not a validator. He's not a dev. He's but he's, you know,
interested and, you know, pragmatic about it. So need more people like him around the place as well.
Yeah. So excited about the DOWs. Deaf named the Frey. What are you excited about, bud?
I've been talking about this since early May. This because my to-do list catching up after
the Prop 16 bullshit has been so long to get through all of it, plus all this stuff with Hal
and everything like there's just a lot to do. But tomorrow is getting started to sink in a
cash node on a cash day, which will be a fun day probably of swearing at the screen. And yeah,
I've also got a bunch of some kind of semi-secret, top secret stuff going on as well. There's just
like so many projects and things on the go, which I think there's some stuff I'll be working on the
next week, which I've wanted to work on for quite a long time and have that time. And that's going
to be really exciting. And some of that ties quite closely into the sort of things we've been talking
about around validator stuff and whatnot. So going to be getting to stick around with some
Rust and some stuff and some SDK and some fun times. So yeah. And everybody should also check
out your Cosmosm educational series with Callum. Like that's that watch that one today. And I
thought that was because it was the basic stuff, right? Just kind of get an environment set up
and those types of things. But excited. I don't know anything about it. I'm excited to just
understand a little bit. Yeah. People should watch Cosmosm by Dummies, which is the podcast
that Callum and I have started doing. First episode shows you how to bootstrap a local
Dev environment. Would you know? Next episode, next week, Wednesday, 1400 UTC, we're going to be
deploying our first smart contract, showing you a contract lifecycle and stuff like that,
building on this week's episode. They're going to be every week, every two weeks, as we have the
time to do them in between, you know, actually working on smart contracts. But yeah. Yeah.
We're going to go through some of that stuff. There'll be a third episode on doing a simple
front end for that contract as well. And then we'll probably do some stuff where we basically
update the Juno docs for a bunch of little bits. And we'll also probably use some of the teaching
materials in Callum's Cosmosm 10k subs Vim docs. Yeah. Okay. The Callum did a really good,
there's a GitHub repo called Cosmosm zero to hero. I always say hero to zero because the
beta bound album zero to hero, which is really good learning resource. If you're already a
programmer and you're already a little bit comfortable with the SDK, and you can just like
kind of crack on ease that. And so we'll probably use that repo because Callum's already done all
hard work as a bit of a basis for doing some of the future lessons and stuff as well. And we'll
also obviously be taking viewer questions like we do with Gim of nodes. So very cool. Go and check
that out if you're interested. Before we go, we talked about this last week, I think, quick
shirt. No, people said, please don't rug this week. So I'm respecting the comments. And we'll
hopefully sign out properly. But quick show of hands. TM KMS now, we're all here. Right.
Well, you said it was moving in the direction of Horcrux, right?
Yeah. So I'm thinking that's the next step we can ask every week. Are you on Horcrux yet?
I don't know. Seriously.
We plan to move that pretty soon. We're everything TM KMS now, but we want to move to
Horcrux as well. And but last we spoke about it, you were moving to TM KMS, the Frey, right?
Yeah. We're now everything on TM KMS, including actually test net stuff,
because we don't want any setups to be kind of different to other ones.
And I think we're going to start doing like rolling destroys of some of our nodes now,
because the signer is on TM KMS is highly available. Right. Everything else is garbage,
really. We can just like throw it away, build up a new node from scratch.
Do you just want to poke a snapshots that we talk about so much because they're really,
really useful. And then just like point the signer at it, bam, we're done.
Oh, shout out to poker working with Tom on Cosmos Omnibus and creating the API to be able to
programmatically access the his snapshots. So one of the problems has been with Cosmos Omnibus is
having to specify snapshots when you deploy to a cache. And now you can programmatically, well,
it's coming up. I assume they've been working on it. But I believe the plan is to be able to access
an API, which will direct to the latest poker choose snapshot, which are regularly pruned. So
historically, like if you start up in a cache node with Cosmos Omnibus, you can be hanging around
for quite a while waiting for it to download a snapshot. So getting ready access to update.
I think that actually is done as of Tom pushed an update to Omnibus literally like yesterday.
Oh, really?
So yeah, he mentioned it on Monday. So Tom spoke at an event that we run in London and
Tom's a great guy and he's going to be coming on the show in a few weeks. So that is awesome. And
that feeds into your rolling destroys on a cache. So you can now for instance run,
you know, a Horcrux cluster on, you know, five nines, and then have your, you could, you know,
theoretically reliably have your entire century structure on a cache now. So that's what we
want to do. We want to have one, one node that's not a cache to begin with and a couple of nodes
on a cache and see how that starts out. We might start with a uni. And if it works well,
we might move it on to maybe Juno mainnet and then go from there.
Good thing I have a Kolo rack with 10 servers and a five terabytes of memory. And so that's
good timing.
I guess that
seriously, I'm going to have to what's the, but what's the benefit? What's the benefit that you
can get from Horcrux by the time you're on, because if you're on TM KMS and like you're
running your TM KMS box on AWS. Sure. So we, we're kind of foolishly running it exactly on what it
says in the specs in the, in that blog post they did, where they definitely over spec like fuck.
So it's like a, an R5 a XL or something. It's like 32 gig RAM and it's like a one rust service.
Yeah, it doesn't need that much RAM. So at some point we'll, we'll size it down. But even at that
size, it only requires a tiny hard drive. It's only costing 120 bucks a month.
Something like that. So, you know, even at that position, like that box is basically going to stay
up forever, like until you need to restart it. And by something you need to like restart it,
you're going to be like moving up to a new version of, you know, bun two or something.
And just wanted to rebuild the box from scratch, right? Yeah. So, you know, it feels to me like
all you're doing with Horcrux is then having to rebuild three boxes rather than rebuild one box
when you do actually do, you know, really critical validator maintenance, like, like an LTS version
goes out of LTS, that kind of thing. The advantage of Horcrux is whether, whether you use a one of
one Horcrux or, you know, 98 of 100 Horcrux or whatever. The advantage of Horcrux is you can
point it at multiple nodes. So it provides redundancy that way. So if you, for example, have
an Akash node and a main node, like say on DigitalOcean or on bare metal or in your backyard or
whatever, and your internet goes out, then, you know, it can pick up the slack on a cache or,
you know, you might scatter them all over the place, but it's, you know, you don't have to
then go and manually repoint your TMKMS node. And also, it's hard to keep a spare node ready
and synced as a spare for your TMKMS because it won't progress blocks until you connect a
TMKMS instance to it, which means it could have a lot of catch up to do unless you keep it synced,
and then you have to manually go and change it to accept a connection from your, your TMKMS,
but then you actually have to restart it. And if that's on a cache, restarting it might mean that
you have to actually redeploy the instance. So you just shouldn't run that on a cache,
you should just run that on a cache. No, no, your sentry node I'm talking about.
Oh, right. Yeah, okay. Because you have to change. It would take a couple of seconds, yeah, yeah.
Yeah, well, with persistent storage now would, but previously they didn't have persistent storage.
And if you had to restart it after download a snapshot and re-sync. So it could take quite
a long time. Like I used to run a Juno testnet validator on a cache a while ago, just as a test.
And it was interesting when I told Jacob, of course, Jacob wanted to destroy my toy. So
he, it had a RPC port open on it as well. And basically you just spam the shit out of the RPC
port until the process and it reset, but it couldn't get back up to the head before it got jailed. So
while it did come back up, it got jailed. It was interesting. But it just takes a long time.
But now, you know, there's beginning to be some more options available to be able to
reliably using a cache to, you know, have a no downtime set up. So it's certain and it's a big
step. I don't, I can't express enough how much of a big step it is to be able to get direct access
via an API to, to people who are providing snapshots around the community.
Anyway, that's pretty rad. So that's all I'm excited about this week. So it's gonna be pretty
fucking rad. Let's go.