Upgrade Your Node Running via Docker¶
Introduction¶
Keeping your node up-to-date is an important part of being a Tanssi sequencer. Not only does it help to ensure that your sequencer node stays healthy, it also contributes to keeping the entire Tanssi Network running smoothly.
This tutorial covers upgrading your Tanssi sequencer that was configured using Docker. It assumes you have already set up your account and launched a sequencer using Docker.
Subscribe to Release Notifications
Staying informed about new client releases is essential for maintaining an up-to-date node. Node maintainers can subscribe to GitHub notifications to be alerted for new client release versions.
To subscribe, visit the Tanssi GitHub repository and click Watch. Select Custom notifications and ensure the box for Releases is checked.
Upgrading Docker Nodes¶
If you're running your sequencer with Docker, updating your node is as simple as stopping the running container and restarting it with the new version tag.
First, get the container ID of your Tanssi block producer node with the following command:
docker ps -a
The container ID is the first column and if you're running multiple Docker containers, you can identify it by the image name of moondancelabs/tanssi
. You can run the stop command as follows:
docker stop INSERT_YOUR_CONTAINER_ID
Your terminal interaction will resemble the following:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
aa751703d6aa moondancelabs/tanssi:v0.6.1 "/tanssi/tanssi-node…" 56 seconds ago Up 56 seconds focused_chaum
docker stop aa751703d6aa
aa751703d6aa
To restart the node, you can use the same command you used when launching your node the first time. The command pulls the image and the node will resume syncing blocks from where it left off when the Docker process was stopped.
docker run --network="host" -v "/var/lib/dancebox:/data" \
-u $(id -u ${USER}):$(id -g ${USER}) \
moondancelabs/tanssi \
--name=INSERT_YOUR_SEQUENCER_NODE_NAME \
--base-path=/data/container \
--node-key-file=/data/node-key \
--keystore-path=/data/keys/session \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
--pool-type=fork-aware \
--database=paritydb \
--rpc-port=9944 \
--rpc-cors=all \
--rpc-max-connections 100 \
--unsafe-rpc-external \
--rpc-methods=unsafe \
--prometheus-port=9615 \
--prometheus-external \
--listen-addr=/ip4/0.0.0.0/tcp/30333 \
--state-pruning=2000 \
--blocks-pruning=2000 \
--db-cache=1024 \
--trie-cache-size=1073741824 \
--collator \
--in-peers=100 \
--detailed-log-output \
-- \
--chain=/chain-network/relay-raw-no-bootnodes-specs.json \
--name=INSERT_YOUR_TANSSI_NODE_NAME \
--sync=fast \
--base-path=/data/relay \
--node-key-file=/data/node-key \
--database=paritydb \
--rpc-port=9945 \
--rpc-cors=all \
--rpc-methods=safe \
--unsafe-rpc-external \
--prometheus-port=9616 \
--prometheus-external \
--listen-addr=/ip4/0.0.0.0/tcp/30334 \
--pool-limit=0 \
--db-cache=128 \
--out-peers=15 \
--state-pruning=2000 \
--blocks-pruning=2000 \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
--bootnodes=/dns4/qco-dancelight-boot-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWCekAqk5hv2fZprhqVz8povpUKdJEiHSd3MALVDWNPFzY \
--bootnodes=/dns4/qco-dancelight-rpc-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWEwhUb3tVR5VhRBEqyH7S5hMpFoGJ9Anf31hGw7gpqoQY \
--bootnodes=/dns4/ukl-dancelight-rpc-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWPbVtdaGhcuDTTQ8giTUtGTEcUVWRg8SDWGdJEeYeyZcT"
docker run --network="host" -v "/var/lib/dancebox:/data" \
-u $(id -u ${USER}):$(id -g ${USER}) \
--entrypoint "/tanssi/tanssi-node-skylake" \
moondancelabs/tanssi \
--name=INSERT_YOUR_SEQUENCER_NODE_NAME \
--base-path=/data/container \
--node-key-file=/data/node-key \
--keystore-path=/data/keys/session \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
--pool-type=fork-aware \
--database=paritydb \
--rpc-port=9944 \
--rpc-cors=all \
--rpc-max-connections 100 \
--unsafe-rpc-external \
--rpc-methods=unsafe \
--prometheus-port=9615 \
--prometheus-external \
--listen-addr=/ip4/0.0.0.0/tcp/30333 \
--state-pruning=2000 \
--blocks-pruning=2000 \
--db-cache=1024 \
--trie-cache-size=1073741824 \
--collator \
--in-peers=100 \
--detailed-log-output \
-- \
--chain=/chain-network/relay-raw-no-bootnodes-specs.json \
--name=INSERT_YOUR_TANSSI_NODE_NAME \
--sync=fast \
--base-path=/data/relay \
--node-key-file=/data/node-key \
--database=paritydb \
--rpc-port=9945 \
--rpc-cors=all \
--rpc-methods=safe \
--unsafe-rpc-external \
--prometheus-port=9616 \
--prometheus-external \
--listen-addr=/ip4/0.0.0.0/tcp/30334 \
--pool-limit=0 \
--db-cache=128 \
--out-peers=15 \
--state-pruning=2000 \
--blocks-pruning=2000 \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
--bootnodes=/dns4/qco-dancelight-boot-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWCekAqk5hv2fZprhqVz8povpUKdJEiHSd3MALVDWNPFzY \
--bootnodes=/dns4/qco-dancelight-rpc-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWEwhUb3tVR5VhRBEqyH7S5hMpFoGJ9Anf31hGw7gpqoQY \
--bootnodes=/dns4/ukl-dancelight-rpc-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWPbVtdaGhcuDTTQ8giTUtGTEcUVWRg8SDWGdJEeYeyZcT"
docker run --network="host" -v "/var/lib/dancebox:/data" \
-u $(id -u ${USER}):$(id -g ${USER}) \
--entrypoint "/tanssi/tanssi-node-znver3" \
moondancelabs/tanssi \
--name=INSERT_YOUR_SEQUENCER_NODE_NAME \
--base-path=/data/container \
--node-key-file=/data/node-key \
--keystore-path=/data/keys/session \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
--pool-type=fork-aware \
--database=paritydb \
--rpc-port=9944 \
--rpc-cors=all \
--rpc-max-connections 100 \
--unsafe-rpc-external \
--rpc-methods=unsafe \
--prometheus-port=9615 \
--prometheus-external \
--listen-addr=/ip4/0.0.0.0/tcp/30333 \
--state-pruning=2000 \
--blocks-pruning=2000 \
--db-cache=1024 \
--trie-cache-size=1073741824 \
--collator \
--in-peers=100 \
--detailed-log-output \
-- \
--chain=/chain-network/relay-raw-no-bootnodes-specs.json \
--name=INSERT_YOUR_TANSSI_NODE_NAME \
--sync=fast \
--base-path=/data/relay \
--node-key-file=/data/node-key \
--database=paritydb \
--rpc-port=9945 \
--rpc-cors=all \
--rpc-methods=safe \
--unsafe-rpc-external \
--prometheus-port=9616 \
--prometheus-external \
--listen-addr=/ip4/0.0.0.0/tcp/30334 \
--pool-limit=0 \
--db-cache=128 \
--out-peers=15 \
--state-pruning=2000 \
--blocks-pruning=2000 \
--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \
--bootnodes=/dns4/qco-dancelight-boot-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWCekAqk5hv2fZprhqVz8povpUKdJEiHSd3MALVDWNPFzY \
--bootnodes=/dns4/qco-dancelight-rpc-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWEwhUb3tVR5VhRBEqyH7S5hMpFoGJ9Anf31hGw7gpqoQY \
--bootnodes=/dns4/ukl-dancelight-rpc-1.rv.dancelight.tanssi.network/tcp/30334/p2p/12D3KooWPbVtdaGhcuDTTQ8giTUtGTEcUVWRg8SDWGdJEeYeyZcT"
Specifying a Version Tag¶
If you wanted to specify a particular version tag, you can do so by replacing the version tag appended to the image name. For example, if you wanted to fetch version 3
, you would replace the 2
in moondancelabs/tanssi
.
And that's it! You've successfully upgraded your Tanssi node.
| Created: March 8, 2024