Versions Compared

Key

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

Performance:

...

  •  As a Node operator I want metrics on my node's performance.
  •  RChain has to demonstrate measurement of COMM events over the network. 
    •  Demonstrate Prometheus charts for each of these metrics.
      •  COMM Events
      •  CPU % utilization for the rNode process
      •  RAM (in MB)
        •  amount of memory being Utilized by rNode.
        •  amount being consumed by rSpace
      •  Disk consumption (in MB)
        •   For blockchain storage
        •  by rSpace (tuplespace storage)
      •  Network core metrics at the core level
        •  Messages by message type (include the message type in the metric)
        •  Response time for network messages - raw numbers only
      •  JVM performance
      •  Garbage collection
      •  Size of memory pools
      •  Consumption of memory pools
  •  As a Node operator I want all the logs to land in a place where I am used to finding system logs (follow best practice - use syslogs & apachelog4j)

...

  •  There have to be multiple bootstrap nodes that will provide the initial configuration for the network, so that there is geographical redundancy and speed around on boarding nodes on to the network.
  •  The bootstrap nodes should have a well known DNS identity
  •  A node can boostrap from any other node, given the node identity, either DNS or node id.
  •  The node software will accept a DNS name such as testnet.rchain.coop as the bootstrap location. 
  •  There is no economic incentive for being a bootstrap node.
  •  The DNS of bootstrap nodes can be published on the rchain.coop website.  This way the addresses of the nodes need not be hard coded into the package.
  •  

Security and Identities

  •  A node must have a unique identity, which is a cryptographic signature, comprising of public and private keys.
  •   Also known as nonce. Node communications must be encrypted for security.
  •  When 2 nodes connect for the first time, the nodes must exchange public keys and a shared secret.
  •  If the node does not have a certificate (public key & identity) then the system must generate one upon startup.  The Communications software should store the certificate in the data directory where application data is stored.  If a certificate is not found in the designated location, then a certificate should be generated by the system.
  •  Messages from a node must be encrypted. A node knows where a message came from by virtue of the node's identity (public key). No other identification is required.
  •  A node can have only a single identity.  
  •  In order for a node to be a validator, it must have a certificate that is signed with its validator key.
  •  In order to prevent MITM attacks, the communications subsystem checks the validator key against the list of bonded validators in the Casper PoS contract. 

...

  •  Not waste electricity (Proof of Stake protocol)
  •  Be significantly faster than PoW
  •  Run on simpler hardware (personal computers) given fast, reliable network connectivity (depends on software footprint of the node itself)
  •  Store blocks on the node
  •  Show blocks in memory

Sharding

  •  A validator can create a new shard
  •  The validator set can control certain parameters in a shard
  •  Shards in RChain form a tree structure, and operate like side-chains.

...

  • Provide a mechanism for the end user to view the block data

Name Registry

  •  Register a name

Rholang

  •  Support for unforgeable names on the blockchain
  •  Language features (this is a long list of features in the language)
  •  Features to run Rholang code on the node

...