Appendix C: Governance DApps

Optional depending on setup (POSDAO does not use Governance DApps)

There are three DApps for governance:

Each of these DApps contains a src/utils/constants.js script which defines a path to poa-chain-spec repo containing the current addresses and ABIs of consensus contracts in the network (in the corresponding branches: core - for Core network, sokol - for Sokol network).

In order to use DApp in your network:

  1. Fork poa-chain-spec repo and create the branch for your network.

    DApps use the following files and directories from poa-chain-spec:

    • abis (contains the ABIs of consensus contracts). Make sure you only have ABI in each *.abi.json file (not combined json obtained by solc compiler). The example of the correct .abi.json file;

    • contracts.json (contains the addresses of consensus contracts and the address of Master of Ceremony).

  2. Edit src/utils/constants.js and adjust the following:

    • change constants.organization to the name of your organization on GitHub;

    • make constants.NETWORKS describe your network, e.g.:

      constants.NETWORKS = {
      '1234': { // network ID
      NAME: 'NetworkName',
      FULLNAME: 'Network Full Name', // only for Voting DApp and Validators DApp
      RPC: 'https://<rpc.address>', // only for Voting DApp and Validators DApp
      BRANCH: 'branch', // name of the branch in your poa-chain-spec repo
      TESTNET: true, // is it testnet or mainnet? Affects UI colors in Ceremony DApp
      SORTORDER: 4 // sort order for networks drop-down list on UI (for Voting DApp and Validators DApp)
      }
      }

      constants.NETWORKS can contain several networks.

  3. Launch DApps on your domain names. To host DApps you can use Netlify (GitHub account is needed) or a similar platform.