Answering DFINITY Community Questions

Every week I answer three to five community questions that emerge in our Telegram “Mission Control” group. This is the dedicated community channel for everyone who’s interested in developing on DFINITY. In this episode, Robert joins me to answer this week’s questions. Please dive and enjoy Robert’s and my conversation.

Video Transcription

Alright, another morning! We had a nice team dinner last night. I had a couple calls till almost midnight and a few calls this morning. And now we’re headed to the office.

As we’re getting closer to launch day, we started answering more questions in the community. So if you haven’t joined our Telegram chat yet, go ahead and do that now because every week either I or someone on the team answers a few questions that were asked in the Telegram chat. It’s called Mission Control. It varies from high level – very, very high level – topics like what kind of nodes are we gonna have in the network, all the way down to like what’s an update on sharding, how sharding is gonna work on DFINITY and so on and so forth.

So without further ado, here’s a view on this week’s questions that I answered together with Robert. The original video was posted in Telegram. If you’re interested to stay on board, if you’re interested in developing anything decentralized, go ahead and join that right now. And with that, I’ll talk to you tomorrow.

Community Q&A with Robert

Cédric: So this time I have a guest for our weekly Q&A – it’s Robert. Robert is our researcher in Zurich and as the questions get more sophisticated and I’m struggling to answer them myself, I thought bringing on Robert was a good idea. He’s very familiar with our research and so we’re gonna go through some of the questions and try to give you more insights where we can. Some of this has not been finalized and some of this stuff is still confidential. So if we have to omit anything, we will have to do that, but we’ll try to give you a bit more information about these different topics.

Question 1: Anything new related to the DFINITY’s sharding methods? 

Cédric: The first question that Kevin asked was “have we learned anything new about the sharding methods?” I know you’ve been working on the sharding model, what is something that we can share with the community at this point?

Robert: When it comes to sharding, there are a lot of challenges that we need to tackle. And one of them is like how to assign the entities so assign the registered IDs and groups to the different shards. Optimally, there should be like a reshuffling over time. The IDs shouldn’t just get assigned to a shard for like four months, that would be a bad thing from a DDoS resilience perspective.

So that’s one challenge that we need to achieve. And the problem here is that whenever you are reassigned to a new shard or whenever the system like creates a new group, the identities would have to like sync up with the state of the new shard. Because every shard is like responsible for keeping the state and recording the transactions for a certain subset of all the actors. It will take some time to download the blocks or at least download the new state. So that’s a problem that we need to solve somehow and there are interesting approaches to that.

So that’s one of the challenges and there are others like how to deal with gas over in cross-shard transactions. And it turned out to be quite a big challenge because when you want to like achieve something called “atomic execution” or “atomic commit”, you want to be sure that your transaction which can like involve actors sitting on multiple shards, you want to make sure that either every single actor either succeeds or aborts. So there shouldn’t be partial commits. And the problem with that is that you need to find a way how to deal with gas, out-of-gas failures. Which can occur at every time because there are like indeterminations related to the gas system or gas model. Because you cannot really be sure in advance how many ticks or how much computation a certain message or transaction recalls. So you have to be careful with the gas.

So and that’s something we have… we are working on. And that’s also like a very important aspect that we need to solve before being able to tackle the sharding. Because we need to have like a solid gas model before we can go a step further.

Question 2: What type of nodes do we expect to have on the network?

Cédric: Alright, so we’re changing to a different area, we’re talking about DFINITY nodes. So maybe you can give a bit of overview, Robert, on what type of nodes: full and not full nodes we expect to have on the network?

Robert: Yes, you mentioned like already most types of nodes, there will be miners who probably need to like run full nodes. But even if you run a full node that doesn’t mean that you have to keep the full history of the blockchain. It basically means that you have to keep updated with the most recent state. You can distinguish between this kind of full node which you need for mining and an archival node which also keeps track of the whole history. Because there might be some applications that need access to historical data or transactions so that could be like offered by or provided by archival nodes that keep the whole history.

And other than that there will be the light clients who just download the headers and just like check the threshold signatures contained in the headers and the state commitments that they don’t have to have the whole state because they are only interested maybe in some part of the state in the transactions order that they have started or triggered and so they only need to download the newest state data related to their own transactions. So they communicate with full nodes who can like provide the proofs for the state against the block headers.

Question 3: What is DFINITY’s Validator concept?

Cédric: Question from Chris Remus: “Hi, can someone tell me what DFINITY calls its version of Validator Cosmos or delegate in Arc? Gavin thought it might be called “Replica”, is that right?” So maybe for people are not familiar, could you first explain what an Arc or a Validator is and then what the respective concept is in DFINITY?

Robert: So as far as I understand, the validator in Arc, you said, or just like the miners of the network – so the basic participants who contribute to consensus in the system. And the same goes for Cosmos. They have like these identities that give you the right to participate in the consensus algorithm.

In our case, it is a bit more complicated because we have like replicas, that is the smallest unit. Though a replica is like related to a stake deposit because we have a proof of stake systems. So you deposit stake and you get like replicas or also called “a mining identity” from the system. So maybe it’s a bit hard to compare these systems because in our case there are multiple roles that you have and should fulfill as a miner or as a replica with a mining identity.

Cédric: I think those were all the questions. Thanks so much for your time, Robert!

You can listen to the audio version here: