EOS BIOS Process - Starting the Network

in eos •  7 years ago  (edited)

eos-1.png


Big thanks to @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

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

Congratulations, your post received 44.78% up vote form @spydo courtesy of @aclarkuk82! I hope, my gratitude will help you getting more visibility.
You can also earn by making delegation. Click here to delegate to @spydo and earn 95% daily reward payout! Follow this link to know more about delegation benefits.

Congratulations @aclarkuk82! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of posts published

Click on any badge to view your Board of Honor.

To support your work, I also upvoted your post!
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last announcement from @steemitboard!

Do you like SteemitBoard's project? Vote for its witness and get one more award!