Register an Operator
Download Subspace Node
Download Subspace Node
for your respective operating system.
For running the Operator Node on Linux, proceed directly to the next step.
- 🖼️ Windows
- 🍎macOS
- 🐧Ubuntu
Choosing the right domain
An operator needs to register on a specific domain and create a key pair to participate in bundle production. Stake Wars is using domains with IDs 0 (Nova) and 1 (AutoID). It is possible to register an operator for each domain, but each operator will require running a node.
Any account with the minimum operator stake can become an operator.
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 NODE_DATA_PATH --domain-id DOMAIN
Make sure to specify the base --base-path for the key generation, and running an operator node and make sure to replace the value in --domain-id with the domain ID you would like to be an operator on.
The operator is responsible for finding out the correct domain ID they want to operate on.
You have successfully generated an operator key, congratulations!
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:
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.
You need to wipe and sync your node from genesis block without using snap sync, since you need to sync both consensus and domain chains. You do not need to wipe any existing plots.
Ensure you replace your_domain_id
with your domain identifier in the command and your_operator_id
with your operator_id.
You can ignore setting up your_operator_id
while you're syncing your node as you won't have an operator id until you have registered your operator. Make sure to set it after syncing and registration.
While it is possible to use archive
for blocks-pruning
and state-pruning
, it is recommended to use archive-canonical
. Using archive
will keep the state of all blocks and will use additional disk space.
- 🖼️ Windows
- 🍎 macOS
- 🐧 Ubuntu
- 🐋 Docker
target/production/subspace-node run `
--chain gemini-3h `
--name your_node_name `
--base-path NODE_DATA_PATH `
--blocks-pruning archive-canonical `
--state-pruning archive-canonical `
--sync full `
-- `
--domain-id your_domain_id `
--operator-id your_operator_id `
--listen-on /ip4/0.0.0.0/tcp/40333
target/production/subspace-node run \
--chain gemini-3h \
--name your_node_name \
--base-path NODE_DATA_PATH \
--blocks-pruning archive-canonical \
--state-pruning archive-canonical \
--sync full \
-- \
--domain-id your_domain_id \
--operator-id your_operator_id \
--listen-on /ip4/0.0.0.0/tcp/40333
target/production/subspace-node run \
--chain gemini-3h \
--name your_node_name \
--base-path NODE_DATA_PATH \
--blocks-pruning archive-canonical \
--state-pruning archive-canonical \
--sync full \
-- \
--domain-id your_domain_id \
--operator-id your_operator_id \
--listen-on /ip4/0.0.0.0/tcp/40333
services:
node:
# Replace snapshot-DATE with the latest release (like snapshot-2024-jun-18)
# For running on Aarch64 add -aarch64 after DATE
image: ghcr.io/autonomys/node:snapshot-DATE
volumes:
# Instead of specifying volume (which will store data in /var/lib/docker), you can
# alternatively specify path to the directory where files will be stored, just make
# sure everyone is allowed to write there
- node-data:/var/subspace:rw
# - /path/to/subspace-node:/var/subspace:rw
ports:
# If port 30333 or 30433 is already occupied by another Substrate-based node, replace all
# occurrences of 30333 or 30433 in this file with another value
- "0.0.0.0:30333:30333/tcp"
- "0.0.0.0:30433:30433/tcp"
- "0.0.0.0:40333:40333/tcp"
restart: unless-stopped
command: [
"run",
"--chain", "gemini-3h",
"--base-path", "/var/subspace",
"--listen-on", "0.0.0.0:30333",
"--dsn-listen-on", "/ip4/0.0.0.0/tcp/30433",
# Replace INSERT_YOUR_ID with your node ID (will be shown in telemetry)
"--name", "INSERT_YOUR_ID",
"--blocks-pruning", "archive-canonical",
"--state-pruning", "archive-canonical",
"--sync", "full",
"--",
# Replace INSERT_YOUR_DOMAIN_ID with domain ID you want to be operator on
"--domain-id", "INSERT_YOUR_DOMAIN_ID",
# Replace INSERT_YOUR_OPERATOR_ID with your operator ID
"--operator-id", "INSERT_YOUR_OPERATOR_ID",
"--listen-on", "/ip4/0.0.0.0/tcp/40333"
]
healthcheck:
timeout: 5s
# If node setup takes longer than expected, you want to increase interval and retries number.
interval: 30s
retries: 60
volumes:
node-data:
If you're running an operator node for AutoID domain, add the following bootstrap node to the list of domain arguments:
--bootstrap-nodes /dns/bootstrap-0.autoid.gemini-3h.subspace.network/tcp/30334/p2p/12D3KooWFoiz2iTkmnnSqiL2oQRhGzaqgtUjYNz2jyWKQqgPXgx9
You should see the node start successfully and begin syncing.
Register an operator on domain
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. You are required to have at least 100 tSSC in order to register your operator. If you are a verified farmer but do not have enough tSSC, you can visit the Operator Tips & Tricks page to find out how to claim 100 tSSC.
Register an operator using Autonomys Staking interface
- Proceed to the staking tab on Astral and connect your wallet.
- Select the wallet you would like to connect. Both Subwallet and PolkadotJS wallets are supported.
- Enter your password to give an access to your wallet.
- Select the account you'd like to use form the dropdown menu. You can click the button in the upper left corner to see available and locked (staked) token balances for the selected account.
- Proceed to the
Register Operator
tab.
- Select the
domainId
you would like to be registered on. For Stake Wars, Nova is Domain 0 and Auto-ID should be Domain 1 once it is available.
- An important security change from Stake Wars one is that you are now required to have a Proof of signing key ownership signature. This is derived from your seed phrase when creating the operator key.
You can either select the file that contains your seed in the subfolder of NODE_DATA_PATH under/domains/domainID/keystore
and then click the choose file and point to that file or you can choose the Proof with seed and manually enter the seed phrase. Once you click the Generate proof button it will automatically populate theSigning key
andProof of signing key ownership signature
fields. Enter theAmount to Stake
,Nominator Tax
,Minimum Nominator Stake
and then clickNext
.
Make sure to specify a Minimum Nominator Stake of at least 1 tSSC.
Make sure to either locate the signing key file generated on the previous Create operator key step or use the key phrase that was displayed when the key was created and is also in that key file.
- Approve the request in the pop-up window.
- Congratulations, you're now registered as an operator! You can click on the Manage My Operator tab to see your operator and get the Operator Id.
It can take up to 10 minutes for the operator to be registered and appear on the page. It may take a day before your Stake amount is displayed under Total Stake in the table. Once you have your Operator Id you can restart your operator node and include the --operator-id **OPERATOR_ID**
as a parameter.
You can view some additional actions by clicking on action
next to your operator.
You can increase your stake (Nominate), withdraw some stake and de-register your operator from there.