Skip to content

Latest commit

 

History

History
 
 

sample_config

Sample Docker configuration for eos-bios launch

This directory contains all the files necessary for a launch, be it booting a network or joining an existing network. You can also use it for local development.

Table of contents:

  • my_discovery_file.yaml is the file representing you in the network you are creating/joining. It includes the votes (peers) to other BPs you wish to launch the network with. It also includes references to the contents you want to inject in the nascent chain (like smart contracts, snapshots, etc..)

  • hook_* are the hooks used by eos-bios to automate your infrastructure configuration. The sample files start a Docker instance locally.

    • When running boot, these are executed in order: hook_init, hook_boot_node, hook_boot_publish_genesis and TODO ADD OTHERS HERE hook_done.

    • When running join, these are executed in order: hook_init, hook_join_network, hook_done.

  • base_config.ini, the base configuration you want to provide to your nodeos instance. It is consume by the sample hooks, and shouldn't include any private_key, enable-stale-production or producer-name fields.

Some files generated by the sample hooks:

  • config.ini is then passed to docker to configure nodeos.
  • genesis.json is also passed to docker to seed the genesis blocks.

The discovery file

The my_discovery_file.yaml is a sample discovery file for your BP. It is published to IPFS with the command:

eos-bios publish discovery

You need to be running ipfs (use ./run_ipfs.sh) for this to work.

By linking to their peers, BPs effectively create a graph, weighted according to their trust in their peers.

The eos-bios tool is able to traverse the graph, fetch all files references (contracts, snapshots, boot sequences), cache it locally and use it to execute things on the network.

The main pattern is:

  • You put IPFS links to the data (contract code, abi, snapshot.csv, boot sequence) you vouch for.

Say you created a snapshot.csv, publish it with eos-bios publish files snapshot.csv and put the returned link in your discovery file. You're now voting for that snapshot. Keep your ipfs node open and your peers will be able to download it.

  • If you don't feel like running the snapshot tool yourself (with parity, mysql, etc..) but you trust entity XYZ, you can copy their link and vouch for it too. This way, not everyone is forced to run all steps or decide on all things.

By pointing (in your my_discovery_file.yaml) to some peers, you can join a network being booted.

If everyone is running orchestrate, you won't be included in the graph unless someone points to your /ipns/Qm... link (it's given to you when you eos-bios publish discover). This only means you can't be elected as either the BIOS Boot node (and be recognized as such by the other eos-bios instances), or be appointed an initial block producer (without the rewards, remember).

However, you can run boot or join locally simply with your own file.