Definition:
A Node that only receives finalized blocks and calls the gRPC API of validating nodes.
Items to Consider:
- Sending blocks to nodes costs network bandwidth.
- The RChain P2P network is a loosely connected graph. Shards exist at the blockchain and consensus level only
- A Read only node will have to 'join a shard' in order to receive blocks for the shard.
- Protocol for nodes to join a shard separate from bonding
- Node 'promotes' itself from a read only node to a bonded validator.
- Does this provide an incentive for a validator to unbond when they are done proposing blocks? Example: I bond, propose my blocks, wait until my blocks are finalized, and then I unbond. I can still get blocks, even though I may not have the full state. This supports the model of splitting transaction fees among the validators as an incentive to continue validating and remain bonded.
In order to prevent MITM, it has been recommended that the validator id be used to sign the TLS certificate. However, Read only nodes will not have a validator ID.
- The consensus protocol is currently designed to gossip blocks to the validator set. Read only nodes are not part of this set.
- The question arises then if the read only nodes should just ask validators to provide the last finalized block, and this is a transaction that they must pay a nominal amount for, to cover the costs of delivering the block.