ADD: Churn in Service Nodes

Current: The blockchain is stuck with 1 Service Node

Desired: Potential Service Nodes can apply to be whitelisted and be churned into consensus.

Phase 1 - Build

Clone and build ssd sscli bnbcli tsscli

  • Load offline Admin bnb key

Phase 2 - Key-Gen

Generate keys:

  • Observer bep key
  • Validator bepv key
  • Signer bnb key

Phase 3 - Application

Apply for whitelisting from existing Service Nodes of:

  • Observer bep account
  • Validator bepv account
  • Signer bnb account
  • Admin bnb account

Suggest: Potential Service Node does it via 3 pool transactions from their potential Admin account:

  • APPLY:O:bepxxxxx
  • APPLY:V:bepvxxxxx
  • APPLY:S:bnbxxxxx

Phase 4 - Whitelisting

All existing Service Nodes get notified and decided to approve each key, identified via the admin key:

  • WL:O:bepxxxxx:bnbadminxxx
  • WL:V:bepvxxxxx:bnbadminxxx
  • WL:S:bnbxxxxx:bnbadminxxx

KVStore counts votes and stores the key-set for the new Service Node.

Phase 4 - Churning

At a pre-determined blocktime (suggest once a week on a Wednesday), then the protocol does the following:

  • New Service Node signer proves ownership of whitelisted signer key

  • All nodes then participate in MPC key-gen

  • Final pool address is outputted.

  • All nodes send a POOL tx from their signer key: POOL:bnbpooladdr

  • Once new Pool Address has been accepted into the statechain with 100% votes from existing committee then:

Statechain allows:

  • Additional Observer
  • Additional Validator
  • Additional Signer

Statechain then:

  • Transfers all assets from old pool to new pool
  • Reconciles user-transactions
Edited Sep 16, 2019 by JP
Assignee Loading
Time tracking Loading