A DApp developer does not need to run the entire EOS blockchain, if so why would anyone want to be a witness node(full node?) since they are not part of the DPoS consensus. Aren't all transactions performed by Block Producers, does this mean that the only thing a node does is send and receive actions?
1 Answer
The philosophy behind DPoS is that, even though only a small set of nodes (in case of EOS, 21 Active BPs) are elected to produce blocks, every full node keeps an entire copy of block data & state data.
So basically:
- Every full node will validate the incoming blocks, checking signatures for transactions, checking contract execution results, checking if the producer of the incoming block is the elected BP, etc. --- a lot of things that prevent the chain to corrupt.
- Every full node could provide READ access to the chain data. As every node has a complete copy, every node could response to read access like getTableRows directly. That's like a whole decentralized CDN.
- Of course broadcasting transactions for users. That's like WRITE access to the chain data.
-
Lets say some one owns 1% of EOS tokens. Would that mean they could use their 1% stake to acquire 1% network bandwidth provided by the 21 block producers or 1% network bandwidth of all full nodes(incl. Block producers)? Feb 28, 2019 at 6:36
-
@DEVANABOINA The name of the "network bandwidth" resource can be misleading. In practice, the network bandwidth cost is just the number of bytes required to encode a transaction. Network bandwidth can be seen as a parameter of blockchain as a whole, and not of individual nodes transferring bytes between each other.– GassaFeb 28, 2019 at 10:14
-
@Gassa Ok thanks for the clarification. my comment wasn't specific to network bandwidth but any resource that an EOS token can claim a portion of. My sub-question still stands. Do EOS tokens represents a stake in the resources provided by the Block producers only or all full nodes(including block producers & witness nodes)? I find this question to be a followup to my original question but if it is more appropriate to post it separately then i will do that Feb 28, 2019 at 15:31
-
@DEVANABOINA What I'm trying to say is this. Staked EOS tokens reserve the right to use a certain amount of EOS blockchain resources. When you decide to use these resources, you implicitly use the actual physical resources of every node maintaining the current state of the blockchain. If a node maintains the current state of the blockchain, it's irrelevant whether it's a block producer or some personal node: it will have to process the transaction.– GassaFeb 28, 2019 at 22:02