Private Testnet Genesis file

As you know, each blockchain starts with a genesis block that definitions are in a genesis file.

If you want to test the feature set of current mainnet without connecting to mainnet, you must start a new (private) network.

In a private testnet, you MUST create and configure own genesis file by creating a subdirectory named genesis and create a file within it named my-genesis.json. This file dictates the initial state of the network.

For the use of private testnet, you must put an account into the genesis file with keys that you have generated yourself. In a configuration config.ini file, you can set a genesis.json path parameter value (i.e., genesis-json = genesis/my-genesis.json ). Before you start a witness_node, make sure if you set your my-genesis.json file name in a config.ini file.

Tip

If you want to generate new keys pairs, you can use - suggest_brain_key option in cli_wallet. Or ./get_dev_key option in the programs/genesis_util/ by using the corresponding network prefix(“BTS”, “TEST”, “MY”, etc).


Sample private testnet genesis file

Important

For the private testnet, each public key needs to be generated and set the values into the private testnet genesis file for active and owner keys of all the initX accounts and also to nathan. Then the public/private key pair is added into the blockchain config (config.ini).

{
  "initial_timestamp": "2016-01-18T09:18:25",
  "max_core_supply": "1000000000000000",
  "initial_parameters": {
        "current_fees": {
          "parameters": [[
                  0,{
                        "fee": 2000000,
                        "price_per_kbyte": 1000000
                  }
                ],[
                  1,{
                        "fee": 500000
                  }
                ],[
                  2,{
                        "fee": 0
                  }
                ],[
                  3,{
                        "fee": 2000000
                  }
                ],[
                  4,{}
                ],[
                  5,{
                        "basic_fee": 500000,
                        "premium_fee": 200000000,
                        "price_per_kbyte": 100000
                  }
                ],[
                  6,{
                        "fee": 2000000,
                        "price_per_kbyte": 100000
                  }
                ],[
                  7,{
                        "fee": 300000
                  }
                ],[
                  8,{
                        "membership_annual_fee": 200000000,
                        "membership_lifetime_fee": 1000000000
                  }
                ],[
                  9,{
                        "fee": 50000000
                  }
                ],[
                  10,{
                        "symbol3": "50000000000",
                        "symbol4": "30000000000",
                        "long_symbol": 500000000,
                        "price_per_kbyte": 10
                  }
                ],[
                  11,{
                        "fee": 50000000,
                        "price_per_kbyte": 10
                  }
                ],[
                  12,{
                        "fee": 50000000
                  }
                ],[
                  13,{
                        "fee": 50000000
                  }
                ],[
                  14,{
                        "fee": 2000000,
                        "price_per_kbyte": 100000
                  }
                ],[
                  15,{
                        "fee": 2000000
                  }
                ],[
                  16,{
                        "fee": 100000
                  }
                ],[
                  17,{
                        "fee": 10000000
                  }
                ],[
                  18,{
                        "fee": 50000000
                  }
                ],[
                  19,{
                        "fee": 100000
                  }
                ],[
                  20,{
                        "fee": 500000000
                  }
                ],[
                  21,{
                        "fee": 2000000
                  }
                ],[
                  22,{
                        "fee": 2000000,
                        "price_per_kbyte": 10
                  }
                ],[
                  23,{
                        "fee": 2000000,
                        "price_per_kbyte": 10
                  }
                ],[
                  24,{
                        "fee": 100000
                  }
                ],[
                  25,{
                        "fee": 100000
                  }
                ],[
                  26,{
                        "fee": 100000
                  }
                ],[
                  27,{
                        "fee": 2000000,
                        "price_per_kbyte": 10
                  }
                ],[
                  28,{
                        "fee": 0
                  }
                ],[
                  29,{
                        "fee": 500000000
                  }
                ],[
                  30,{
                        "fee": 2000000
                  }
                ],[
                  31,{
                        "fee": 100000
                  }
                ],[
                  32,{
                        "fee": 100000
                  }
                ],[
                  33,{
                        "fee": 2000000
                  }
                ],[
                  34,{
                        "fee": 500000000
                  }
                ],[
                  35,{
                        "fee": 100000,
                        "price_per_kbyte": 10
                  }
                ],[
                  36,{
                        "fee": 100000
                  }
                ],[
                  37,{}
                ],[
                  38,{
                        "fee": 2000000,
                        "price_per_kbyte": 10
                  }
                ],[
                  39,{
                        "fee": 500000,
                        "price_per_output": 500000
                  }
                ],[
                  40,{
                        "fee": 500000,
                        "price_per_output": 500000
                  }
                ],[
                  41,{
                        "fee": 500000
                  }
                ],[
                  42,{}
                ],[
                  43,{
                        "fee": 2000000
                  }
                ]
          ],
          "scale": 10000
        },
        "block_interval": 5,
        "maintenance_interval": 86400,
        "maintenance_skip_slots": 3,
        "committee_proposal_review_period": 1209600,
        "maximum_transaction_size": 2048,
        "maximum_block_size": 2048000000,
        "maximum_time_until_expiration": 86400,
        "maximum_proposal_lifetime": 2419200,
        "maximum_asset_whitelist_authorities": 10,
        "maximum_asset_feed_publishers": 10,
        "maximum_witness_count": 1001,
        "maximum_committee_count": 1001,
        "maximum_authority_membership": 10,
        "reserve_percent_of_fee": 2000,
        "network_percent_of_fee": 2000,
        "lifetime_referrer_percent_of_fee": 3000,
        "cashback_vesting_period_seconds": 31536000,
        "cashback_vesting_threshold": 10000000,
        "count_non_member_votes": true,
        "allow_non_member_whitelists": false,
        "witness_pay_per_block": 1000000,
        "worker_budget_per_day": "50000000000",
        "max_predicate_opcode": 1,
        "fee_liquidation_threshold": 10000000,
        "accounts_per_fee_scale": 1000,
        "account_fee_scale_bitshifts": 4,
        "max_authority_depth": 2,
        "extensions": []
  },
  "initial_accounts": [{
          "name": "init0",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init1",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init2",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init3",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init4",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init5",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init6",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init7",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init8",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init9",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "init10",
          "owner_key": "--- set a public key ---",
          "active_key": "--- set a public key ---",
          "is_lifetime_member": true
        },{
          "name": "nathan",
          "owner_key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3",
          "active_key": "5KQwrPbwdL6PhXujxW37FSSQZ1JiwsST4cqQzDeyXtP79zkvFD3",
          "is_lifetime_member": false
        }
  ],
  "initial_assets": [],
  "initial_balances": [{
          "owner": "--- set a public key ---",
          "asset_symbol": "TEST",
          "amount": "1000000000000000"
        }
  ],
  "initial_vesting_balances": [],
  "initial_active_witnesses": 11,
  "initial_witness_candidates": [{
          "owner_name": "init0",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init1",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init2",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init3",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init4",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init5",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init6",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init7",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init8",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init9",
          "block_signing_key": "--- set a public key ---"
        },{
          "owner_name": "init10",
          "block_signing_key": "--- set a public key ---"
        }
  ],
  "initial_committee_candidates": [{
          "owner_name": "init0"
        },{
          "owner_name": "init1"
        },{
          "owner_name": "init2"
        },{
          "owner_name": "init3"
        },{
          "owner_name": "init4"
        },{
          "owner_name": "init5"
        },{
          "owner_name": "init6"
        },{
          "owner_name": "init7"
        },{
          "owner_name": "init8"
        },{
          "owner_name": "init9"
        },{
          "owner_name": "init10"
        }
  ],
  "initial_worker_candidates": [],
  "immutable_parameters": {
        "min_committee_member_count": 11,
        "min_witness_count": 11,
        "num_special_accounts": 0,
        "num_special_assets": 0
  }
}