EOS BIOS Process - Starting the Network

aclarkuk82(51)
Published in
#eos
Words
662
Reading
3 min
Listen
Play
8y

eos-1.png


Big thanks to eos-canada@eos-canada for spearheading this initiative.

Why do we need to have a defined process to start up the EOS blockchain, and why has there been as much effort put into testing this process as assigned to checking the running EOS platform itself?

Understanding the EOS BIOS process and methodology is critical for a successful mainnet launch, so all block producer candidates must follow the technical requirements. The BIOS process will also be an excellent tool for those looking to spin off private chains of their own. I believe individual 'private' EOS chains will have a solid place in the corporate world as the blockchain is a perfect fit for security audits and potential PCI compliance requirements in the future.

EOS runs the Delegated Proof of Work consensus algorithm (DPOS), in which there will be 21 delegated (voted in) block producers who will be the only nodes allowed to produce the blocks containing all transactions. Well, if there is no network, there are no nodes so and worse no one to vote for block producers:-

  1. How will this be handled?
  2. What information must agree between nodes?
  3. Who will boot the initial network (Bootstrap)?

Initial Boot

During the initial startup of the network, a mechanism is needed to agree on who will produce blocks until the system is up and stable, these nodes will be the 'Appointed Block Producers,' and will NOT receive any rewards for block production at this point. All nodes must also agree on some critical items, and then all accept that they all agree, ( kind of like a consensus without the blockchain ). A discovery file will be used to handle these variables and allow each block producer candidate to access a copy of each other's properties and compare them.

The Discovery File contents.
- Details of other peers to launch the network with (weighted values).
- Boot sequence requirements.
- Pointer to the system contract code (stored via IPFS).
- Pointer to the Ethereum Snapshot (EOS token swap data, stored via IPFS)).

Here is a cut down of the discovery file format the block producers will all use:


seed_network_account_name: examplecom11
seed_network_http_address: http://stage0.example.com

The list of the other block producer candudates wuth an allocatd weight

seed_network_peers:

  • account: eosexample
    comment: "Insert why you think they're worth that weight"
    weight: 10 # Weights are between 0 and 100 (INT value)
  • account: eosmore
    comment: "Insert why you think they're worth that weight"
    weight: 20

seed_network_launch_block: 551 # Block on the SEED EOS network before we orchestrate the TARGET network launch. >Putting a past block will start orchestration right away.

target_network_is_test: 1 # 0 = mainnet, anything else is a testnet
target_p2p_address: stage1.example.com:9876
target_http_address: http://stage1.example.com
target_account_name: examplecom12
target_appointed_block_producer_signing_key: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
target_initial_authority:
owner:
threshold: 1
keys:

  • key: EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV
    weight: 1
    active:
    threshold: 1

target_contents:

  • name: boot_sequence.yaml
    ref: /ipfs/QmYzxLMZa5FEHvn5WGcTq2jU7sLqRk5VMWESKsGVKhLy1d
    comment: "Refers to github.com/eoscanada/eos-bios/files/boot_sequence.yaml. Updated to dawn-v4.2.0."
  • name: snapshot.csv
    ref: /ipfs/QmeAL8aTvrBVKQbKEzeYwp9oKEPuajQSaaubLxHBuAZXCo

The great thing about the location of the discovery file is that will be stored on the EOS testnet as this proved the most efficient and optimal method of decentralized retrieval while maintaining the ability to update the contents.

Once the network is up and running, the EOS system smart contract will need to be installed and started, one of the functions of this contract will be controlling the voting so 'Elected Block Producers' can step in.

Thomas Cox, the renowned Blockchain Governance Guru, has defined the stages of a BIOS process as:

Phase 0 - Pre Boot
Phase 1 - BIOS Boot
Phase 2 - Appointed BPs
Phase 3 - Elected BP's
Phase 4 - Constitution Zero

The above steps are the summarized rundown of what will happen and what has happened multiple times during the bootup testing that has been ongoing over the last week or so.

Here is to a successful launch all!!!!

For the full details on these stages, read the article by Mr. Cox here

Github repo
https://github.com/eoscanada/eos-bios

EOS BIOS Process - Starting the Network | Ecency