serverSubnet creation and initialisation

We have now created all the required wallets and configuration files for five validators and two users. We'll now create an L2 subnet and have four validators join it.

Step 1: Create a child subnet

We can now create a subnet under /b4 — Bitcoin Regtest. If you have not created the env variable, replace $WHITELIST with the one you created earlier.

ipc-cli --config-path ~/.ipc/validator1/config.toml subnet create \
	--parent /b4 --min-validators 4 --bottomup-check-period 60 \
	btc --min-validator-stake 100000000 --min-cross-msg-fee 10 \
	--validator-whitelist $WHITELIST

You should see the subnet ID printed to the console. Let's save the subnet ID for later use — we will refer to it as $SUBNET_ID.

export SUBNET_ID="the_new_subnet_id_from_terminal"

You can now start the miner helper script (as described in Helper scripts) by running the following from the bitcoin-ipc repo:

./scripts/miner.sh

All monitors should have printed the subnet create message to the console.

circle-check

Step 2: Update the config.toml files

We now need to add the new subnet configuration to all of the following configuration files:

  • ~/.ipc/validator1/config.toml

  • ~/.ipc/validator2/config.toml

  • ~/.ipc/validator3/config.toml

  • ~/.ipc/validator4/config.toml

  • ~/.ipc/validator5/config.toml

  • ~/.ipc/user1/config.toml

  • ~/.ipc/user2/config.toml

  • ~/.ipc/config.toml

It might be easier to leave those files open in an editor, so we can modify them later when we create a second subnet.

A subnet configuration looks as follows. For ease of use, each config.toml file already contains the entry — you only have to replace /b4/t410fyi77izvsakigfjnocb7f3hm52bjdeb76jayo4ti with your SubnetID.

circle-check

Step 3: Join the subnet

Let's have four validators join the subnet with some initial collateral.

Let's include the join transactions in the blockchain by mining a block (not needed if you are running the miner.sh script).

We should see the monitors print the join messages to the console, and also reporting that the subnet has been bootstrapped, like so:

circle-check

Step 4: Fund the validators

circle-exclamation

All validators need to have some balance in the subnet, as they use it to pay transaction fees. Let's fund their accounts with wBTC.

Make sure you mine a block (not needed if you are running the miner.sh script).

You should see the logs being printed, like so:

Last updated