Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

These actions will result in data or a state change being written to a block.  

Phlogiston - A mechanism to pay for contract execution on the RChain network.  An exchange rate will exist between Rev and Phlogiston.  Similar to Ethereum Gas

Validator - A node that participates in the consensus protocol by running transactions and proposing blocks.  See RChain Consensus

Rev -  The RChain token.

Data in a Transaction

A transaction needs to include the following pieces of data:

...

  • Parent blockhash - The hash of the previous block
  • Namespace URI - We should limit this to the block's namespace and its' parent.
  • Hash of the Root level block that contains the state of stake at the time the block was proposed
  • Deployment root: corresponds to the Ethereum transaction root
    • Does not depend on the order in which updates are made
  • Comm Event root (receipts root)
  • State root  → Per RChain State document this is the tuplespace
    • Depth of this tree is bounded (addresses attempts to DOS via tree depth, making updates very slow) 
      • One state trie / namespace
      • Updates over time, code deployments update this state.
      • Storage trie : Where all contract data lives.
        • Validator set + weights (PoS Contract state changes & updates) 
        • Rholang terms
        • Compiled code? (Or Normalized code?)
  • Signature of creator
  • Justifications

...

With the introduction of garbage collection of blockchain data & Rent post Mercury, a node need not download the entire blockchain (unless they are joining a namespace that explicitly serves this purpose) - for the Mercury time frame, the blockchain will not be that large, so downloading the entire blockchain keeps the data across the nodes in the namespace consistent. Similarly, once Rent is implemented, the validators in the namespace can decide how much of the blockchain to persist, and a new node will have to adhere to those rules, or propose a change to the GC rule for the namespace.

During the time when a node is determining which namespace to join, it should temporarily connect to the 'root' namespace, where the information of the entire network exists?  This way the node can be offered a set of shards to join?  This root node should have access to all the shard properties.