Genesis Block Requirements


Goals

  • Support the RHOC/Rev Swap
  • Obtain signatures from the validators on the genesis block
  • Support a repeatable launch process
    • Execute multiple network launches (dry runs) 
    • Launch the testnet
    • Launch the mainnet


Background

There is a desire to launch the test net and main net in a public forum.  This implies that the launch of the networks be tried and tested multiple times before the prime time launch of these networks.  Furthermore, the genesis block will have hard coded transactions in it, where RHOC holders are offered a 1:1 'swap' of Rev token on the public blockchain.  These transactions must be submitted for auditing well in advance of the deployment of the mainnet.  

Requirements

TitleUser storyImportanceNotes
ETH AddressesAs a RHOC token holder I must be able to access my Rev tokens by using my existing ETH private keysMust Have
  • The RHOC token was distributed as an ERC20 Token. RHOC holders will want to access their Rev by using their existing private keys on the RChain main net.
TransparencyAs a RHOC holder, I must be able to audit the genesis block in advance of deployment, so that I know I will get my Rev at genesis.Must Have
  • RHOC token holders want to review the genesis block, to validate that their assets are properly listed.
  • Genesis block should be committed to GitHub, so it can be reviewed and updated as needed over time.
Repeatable & ReliableAs an RChain investor, I would like to see the genesis block deployed during the test net launch ceremony, so that I can have confidence in the launch processMust Have
  • It is critical that the launch process be run multiple times, so that it can be tested thoroughly, and all functions and features work as expected.
RHOC balancesThere must be a way to collect up the addresses and associated RHOC balances from the Ethereum blockchain.Must Have
  • All RHOC transactions have taken place on the Ethereum blockchain.  The RHOC balances associated with each address need to be extracted from the Ethereum blockchain by some process.
Validator Signatures The validators in the network need to provide cryptographic acceptance of the genesis block.  Each validator must be presented the genesis block, and given the opportunity to add their signature to the block. Must Have
  • It is important to the process that the validators cryptographically sign the block as a signal of its acceptance.

Engineering Proposal
Initializing the Blockchain -- Protocol for generating the Genesis block