Skip to main content
Version: latest

Register an Operator

note

Currently, the domain chain does not support syncing from other operator nodes; it needs to be deterministically derived from the consensus chain block by block.

Check the list of the available domains:

In order to participate in block production, operator needs to register on a specific domain.

note

Any account with the minimum operator stake can become an operator.

To check the list of available domains:

  1. Proceed to PolkadotJS
  2. Make sure to select the correct network at the top-left corner.
  3. Go to Developer -> Chain state Staking-1
  4. Select domains under selected state query and choose domainRegistry
  5. Exclude option
  6. Click on + to query the chain state. Staking-2
  7. Review the list of available domains Staking-3
    tip

    In the example above the number 3 corresponds to the domainId. The example is not Stake Wars specific, the operator is responsible for finding out the correct domain ID they want to operate on. Stake Wars are using the domain with ID 1.

Create operator key

An operator needs a key pair to participate in bundle production.

To create a new operator key, run the following command: subspace-node domain key create --base-path /tmp/node --domain-id 0

Make sure to specify the base --base-path for the key generation, and running an operator node and make sure to replace --domain-id value with the domain ID you would like to be an operator on.

You have successfully generated an operator key, congratulations!

note

Be sure to record and securely store the printed seed phrase. If it is leaked or stolen, both your operator and nominator stakes could be at risk of being slashed.

The keys were generated in the subfolder of NODE_DATA_PATH under /domains/domainID/keystore. If you don't see the generated keypair in the subfolder, something went wrong.

Start the domain operator node

The domain operator node is running with an embedded consensus node, thus you need to specify the args for both the consensus node and the domain operator node:

subspace-node [consensus-chain-args] -- [domain-args]

Example: Start a node as operator on gemini-3h chain:

info

You need to wipe and sync your node from genesis block, since you need to sync both consensus and domain chains. You do not need to wipe any existing plots.

note

Ensure you replace your_domain_id with your domain identifier in the command and your_operator_id with your operator_id.

tip

You can ignore setting up your_operator_id while you're syncing your node. Make sure to set it after syncing and registration.

target/production/subspace-node run `
--chain gemini-3h `
--name your_node_name `
--base-path NODE_DATA_PATH `
-- `
--domain-id your_domain_id `
--operator-id your_operator_id `
--bootstrap-nodes /dns/bootstrap-0.nova.gemini-3h.subspace.network/tcp/30334/p2p/12D3KooWBm1PHFHAP9mA6LNd72uFimyPoo6ixjdfgajzizXDYND2 `
--bootstrap-nodes /dns/bootstrap-1.nova.gemini-3h.subspace.network/tcp/30334/p2p/12D3KooWD3Q8JpAPoXR67ZQ1H1nXfPqCgPHCvWVcGxNKbfFmuPnu `
--bootstrap-nodes /dns/bootstrap-2.nova.gemini-3h.subspace.network/tcp/30334/p2p/12D3KooWEYs5yikat5NanzN7c2Sb4ngxJoCro9vXMULM2ZYVWW9H `
--listen-on /ip4/0.0.0.0/tcp/40333

You should see the node start successfully and begin syncing.

Staking-13

Register an operator on domain

info

It's crucial to fully sync your node before registering as an operator. Please follow the commands in the Start the domain operator node section and only register as an operator once your node is fully synced. If many operators are registered but their nodes are still syncing or offline, it can adversely affect the speed of block production in the domain.

Prefer a video? Expand for our installation video using PolkadotJS interface.
  1. Proceed to the Subspace Staking portal and connect your wallet.

NStaking-1

  1. Select the wallet you would like to connect. Both Subwallet and PolkadotJS wallets are supported.

NStaking-2

  1. Enter your password to give an access to your wallet.

NStaking-3

  1. Select the account you'd like to use form the dropdown menu. You will see both available and locked (staked) token balances for each account.

NStaking-4 5. Proceed to the Stake as a pool operator tab.

NStaking-5 6. Select the domainId you would like to be registered on. Enter the Minimum Operator Stake, Amount to Stake, Nomination Tax and Signing key and then click Next.

NStaking-6

info

Make sure to use the signing key generated on the previous Create operator key step.

  1. Approve the request in the pop-up window.

NStaking-8 8. Congratulations, you're now registered as an operator!

NStaking-8

info

It can take up to 10 minutes for the operator to be registered and appear on the page. You can check if the operator was created successfully by following the steps.

tip

You can view some additional actions by clicking on action next to your operator. You can increase your stake, withdraw some stake and de-register your operator from there.

If you prefer to use a native PolkadotJS, or faced any issues in one of the steps above, you can try using PolkadotJS interface guide to register an operator on the domain.

Checking your operatorId

There are two ways to check your operatorId:

  1. You can use PolkadotJS Network Explorer.

Staking-7 2. Browse the recent events and you should see domains.OperatorRegistered event.

Staking-8 3. Click on the dropdown arrow to view the domainId and operatorId.


Alternatively, you can use Subscan which is a little easier to navigate for this job.

  1. Navigate to Subspace Subscan portal.
  2. Click on Blockchain -> Extrinsics.

Staking-9

  1. Scroll to the bottom of the page to view all recent events, search for register_operator event.

Staking-10

  1. Click on Extrinsic ID for the desired event.

  2. Scroll to Parameters and ensure that signing_key corresponds to your signing key.

Staking-11

  1. Scroll to Events and click on dropdown arrow for domains(OperatorRegistered).

Staking-12

  1. Inspect and remember your domain_id.