From 2794913da8e434914d726b7801715e07fe8881c5 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 13 Jan 2025 19:12:40 -0300 Subject: [PATCH 1/9] sequencers index page fix --- node-operators/sequencers/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-operators/sequencers/index.md b/node-operators/sequencers/index.md index 8f160bc4..baf5cb99 100644 --- a/node-operators/sequencers/index.md +++ b/node-operators/sequencers/index.md @@ -7,7 +7,7 @@ template: index-page.html # Tanssi Sequencers -Becoming a sequencer is a critical role in maintaining the security and efficiency of the Tanssi ecosystem. Sequencers are responsible for producing blocks, validating transactions, and ensuring the smooth operation of the network. This section provides everything you need to get started, from initial setup to operational best practices and account management. +Sequencers play a critical role in maintaining the liveness and performance of the Tanssi ecosystem. Sequencers are responsible for producing blocks, executing transactions, and ensuring the smooth operation of the network. This section provides everything you need to get started, from initial setup to operational best practices and account management. ## Explore This Section From 70b25bfbfc4657c7cf37d94ee4ff606b9f043437 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 13 Jan 2025 19:33:37 -0300 Subject: [PATCH 2/9] Onboard sequencers - Index page --- node-operators/sequencers/onboarding/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/node-operators/sequencers/onboarding/index.md b/node-operators/sequencers/onboarding/index.md index daf372a2..5925d261 100644 --- a/node-operators/sequencers/onboarding/index.md +++ b/node-operators/sequencers/onboarding/index.md @@ -1,20 +1,20 @@ --- title: Onboard to Run a Sequencer Node -description: Learn how to get started to run a sequencer (also known as producer nodes) using Docker or Systemd to participate in the protocol. +description: Learn how to get started to run a sequencer using Docker or Systemd to participate in the protocol, provide block production services, and earn rewards. icon: octicons-arrow-up-right-24 template: index-page.html --- # Onboarding -Starting your journey as a sequencer begins here. This section covers the foundational steps to set up your node and prepare your account for active participation in the Tanssi network. +Your journey as a sequencer begins here. This section covers the foundational steps to set up your node and prepare your account for active participation in the Tanssi network. Use the following resources to get started as a sequencer: - [**Hardware requirements**](/node-operators/sequencers/onboarding/run-a-sequencer/#hardware-requirements) - understand the recommended hardware specifications to ensure optimal performance of your sequencer node - [**Port configuration**](/node-operators/sequencers/onboarding/run-a-sequencer/#required-network-ports) - learn which network ports need to be open to facilitate proper communication within the Tanssi ecosystem - **Session keys setup** - detailed instructions on [generating](/node-operators/sequencers/onboarding/account-setup/#map-account) and [managing](/node-operators/sequencers/onboarding/account-setup/#map-session-keys) session keys, a vital step for enabling block production capabilities -- **Node deployment** - choose between [Docker](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/) and [systemd](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd/) for deploying your node, with step-by-step guides tailored for each method +- **Node deployment** - choose between [Docker](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/) and [systemd](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd/) for running your node, with step-by-step guides tailored for each method ## Explore This Section From 786ef3b77341297b6e6d5684224e2aeaf4a76bb9 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 13 Jan 2025 20:41:21 -0300 Subject: [PATCH 3/9] run a sequencer index --- node-operators/sequencers/onboarding/run-a-sequencer/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/index.md b/node-operators/sequencers/onboarding/run-a-sequencer/index.md index ec300b1c..bf271f76 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/index.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/index.md @@ -1,13 +1,13 @@ --- title: Run a Sequencer -description: Learn how to set up and run sequencer node (also known as block producers or collators) using Docker or Systemd to participate in the protocol. +description: Learn how to set up and run a sequencer node using Docker or Systemd to participate in the protocol, providing block production services and earning rewards. icon: octicons-server-24 template: index-page.html --- # Run a Sequencer Node -Setting up a sequencer node is an important step to participate in the Tanssi network. You have two options for configuration: using _Docker_ or _Systemd._ Whichever path you choose, we provide step-by-step tutorials to guide you through the process and ensure your node meets the necessary requirements to produce blocks and maintain a secure connection to the network. +Setting up a sequencer node is an important step to participate in the Tanssi network. You have two options: _Docker_ or _Systemd_. Whichever path you choose, we provide step-by-step tutorials to guide you through the process and ensure your node meets the necessary requirements to produce blocks and maintain a secure connection to the network. ### Hardware Requirements From 22e3d33b35f24e85b50fe879bf44db9e35e959f2 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Tue, 14 Jan 2025 16:38:23 -0300 Subject: [PATCH 4/9] sequencers with docker - partial --- .../sequencers/onboarding/run-a-sequencer/intro.md | 2 +- .../onboarding/run-a-sequencer/sequencers-docker.md | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md index 29c33086..3d731bae 100644 --- a/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md +++ b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md @@ -1,5 +1,5 @@ One of Tanssi's core propositions is that it provides decentralized and trustless block production for its networks. Tanssi's runtime handles sequencer assignments to all the active networks in the Tanssi ecosystem. -Each time, the assignment algorithm distributes the available block producers per session, assigning them to a random chain. Consequently, they would be producing blocks for the same network only for a relatively short period, increasing the overall security of the ecosystem. +Each time, the assignment algorithm distributes the available set of sequencers per session, assigning them to a random chain. Consequently, they would be producing blocks for the same network only for a relatively short period, increasing the overall security of the ecosystem. To this end, Tanssi's binary file (the software used to run nodes) already has an embedded mechanism to switch block production automatically to the assigned chain without requiring the node operator to make any changes. The binary includes the logic to sync the new chain and produce blocks when the session changes. Consequently, sequencers need to run the Tanssi binary file, and not that of the networks (like full nodes). diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md index 4a2b6d77..424588bb 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md @@ -4,13 +4,13 @@ description: Learn how to set up and run a sequencer (aka block producer) for Ta icon: simple-docker --- -# Run a Block Producer in Tanssi Using Docker +# Run a Sequencer in Tanssi Using Docker ## Introduction {: #introduction } --8<-- 'text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md' -In this guide, you'll learn how to spin up a Tanssi block producer to be part of the shared pool of sequencers using [Docker](https://www.docker.com){target=\_blank} on a Linux computer. However, it can be adapted to other operating systems. +In this guide, you'll learn how to spin up a Tanssi sequencer to be part of the shared pool of sequencers using [Docker](https://www.docker.com){target=\_blank} on a Linux computer. However, it can be adapted to other operating systems. ## Checking Prerequisites {: #checking-prerequisites } @@ -34,9 +34,9 @@ The command will download and extract the image and show the status upon executi ### Setup the Data Directory {: #setup-data-directory } -Running a block producer requires syncing with three chains: the relay chain, the Tanssi chain, and the network it has been assigned to. +Running a sequencer requires syncing with three chains: the relay chain, the Tanssi chain, and the network it has been assigned to. -Run the following command to create the directory where your block producer will store the databases containing blocks and chain states: +Run the following command to create the directory where your sequencer will store the databases containing blocks and chain states: ```bash mkdir /var/lib/dancebox From 328d5051b96823156fe0e7fcb2818dc72e01fc07 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 20 Jan 2025 18:24:59 -0300 Subject: [PATCH 5/9] Sequencers section --- .../generate-node-key-intro.md | 2 +- .../sequencers/offboarding/account.md | 50 +++++++-------- .../sequencers/onboarding/account-setup.md | 62 +++++++++---------- .../onboarding/run-a-sequencer/index.md | 3 +- .../run-a-sequencer/sequencers-docker.md | 17 +++-- .../run-a-sequencer/sequencers-systemd.md | 8 +-- .../sequencers/operational-tasks/index.md | 2 +- .../operational-tasks/proxy-accounts.md | 34 +++++----- .../upgrade-your-node/index.md | 2 +- .../upgrade-your-node/upgrade-docker.md | 6 +- .../upgrade-your-node/upgrade-systemd.md | 6 +- variables.yml | 4 +- 12 files changed, 96 insertions(+), 100 deletions(-) diff --git a/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md index 3e77656b..c945c1de 100644 --- a/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md +++ b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md @@ -1 +1 @@ -Starting from [runtime 700 release](https://github.com/moondance-labs/tanssi/releases/tag/runtime-700){target=\_blank}, Tanssi block producer nodes don't generate the session keys automatically on start-up. To generate and store on disk the session keys that will be referenced on the start-up command, run the following command: \ No newline at end of file +Starting from [runtime 700 release](https://github.com/moondance-labs/tanssi/releases/tag/runtime-700){target=\_blank}, Tanssi sequencer nodes don't generate the session keys automatically on start-up. To generate and store on disk the session keys that will be referenced on the start-up command, run the following command: \ No newline at end of file diff --git a/node-operators/sequencers/offboarding/account.md b/node-operators/sequencers/offboarding/account.md index 3f277170..ccfa375d 100644 --- a/node-operators/sequencers/offboarding/account.md +++ b/node-operators/sequencers/offboarding/account.md @@ -1,24 +1,24 @@ --- title: Decommissioning Your Sequencer -description: In these step-by-step instructions, learn how to properly offboard as a Tanssi block producer, including unmapping your session keys and unstaking your bond. +description: In these step-by-step instructions, learn how to properly offboard as a Tanssi sequencer, including unmapping your session keys and unstaking your bond. icon: octicons-arrow-down-right-24 --- -# Offboard as a Tanssi Block Producer +# Offboard as a Tanssi Sequencer ## Introduction {: #introduction } -As a block producer, there may come a time when you need to gracefully exit the network. Decommissioning your account involves a two-step process to ensure that your node is properly disassociated from your account and that you receive your bond back. +As a sequencer, there may come a time when you need to gracefully exit the network. Decommissioning your account involves a two-step process to ensure that your node is properly disassociated from your account and that you receive your bond back. -This guide will show you how to wind down your operations as a Tanssi block producer properly. This includes undelegating your self-delegation to reclaim your bond and unmapping your session keys to sever the connection between your node and your account. Naturally, this guide assumes that you're an existing Tanssi block producer with a [block-producing node](/node-operators/sequencers/onboarding/run-a-sequencer/){target=\_blank} and mapped [session keys](https://wiki.polkadot.network/docs/learn-keys#session-keys){target=\_blank}. +This guide will show you how to wind down your operations as a Tanssi sequencer properly. This includes undelegating your self-delegation to reclaim your bond and unmapping your session keys to sever the connection between your node and your account. Naturally, this guide assumes that you're an existing Tanssi sequencer with a [sequencer node](/node-operators/sequencers/onboarding/run-a-sequencer/){target=\_blank} and mapped [session keys](https://wiki.polkadot.network/docs/learn-keys#session-keys){target=\_blank}. ## Request Undelegation {: #request-undelegation } -When you set up your Tanssi block producer node, you had to submit a delegation bond of at least `{{ networks.dancebox.block_producers.min_self_del.dance }}` DANCE. To get that back and remove your block producer from the list of eligible candidates, you'll need to take steps similar to those in the onboarding process. +When you set up your Tanssi sequencer, you had to submit a delegation bond of at least `{{ networks.dancebox.block_producers.min_self_del.dance }}` DANCE. To get that back and remove your sequencer from the list of eligible candidates, you'll need to take steps similar to those in the onboarding process. ### View Existing Stake {: #viewing-existing-stake } -Before undelegating, it is helpful first to see how much you have staked, as you'll need to provide this figure later. To do so, head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/chainstate){target=\_blank}, click on the **Developer** tab, select **Chain State** from the dropdown, and take the following steps: +Before undelegating, it is helpful first to see how much you have staked, as you'll need to provide this figure later. To do so, head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/chainstate){target=\_blank}, click on the **Developer** tab, select **Chain State** from the dropdown, and take the following steps: 1. Select the **pooledStaking** module 2. Select the **pools** query @@ -27,32 +27,32 @@ Before undelegating, it is helpful first to see how much you have staked, as you 5. In the **option** field, you select **JoiningShares** 6. Click the **+** button next to the extrinsic field -![Check existing stake on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-1.webp) +![Check existing stake on the developer portal](/images/node-operators/sequencers/offboarding/account/account-1.webp) -Note, **JoiningShares** returns only the initial amount you delegated when configuring your block producer. To get your total amount staked, you'll need to repeat the above steps for either **ManualRewardShares** or **ManualRewardSharesHeldStake** if you didn't select Autocompounding, and either **AutoCompoundingShares** or **AutoCompoundingSharesHeldStake** if you configured Autocompounding. Then add your autocompounding or manual shares value to **JoiningShares** to get your total delegation outstanding. +Note, **JoiningShares** returns only the initial amount you delegated when configuring your sequencer. To get your total amount staked, you'll need to repeat the above steps for either **ManualRewardShares** or **ManualRewardSharesHeldStake** if you didn't select Autocompounding, and either **AutoCompoundingShares** or **AutoCompoundingSharesHeldStake** if you configured Autocompounding. Then add your autocompounding or manual shares value to **JoiningShares** to get your total delegation outstanding. -As an example, the total stake of an autocompounding block producer can be calculated by adding **JoiningShares** to **AutoCompoundingShares**. Note this amount, as you'll need it in the next section. +As an example, the total stake of an autocompounding sequencer can be calculated by adding **JoiningShares** to **AutoCompoundingShares**. Note this amount, as you'll need it in the next section. ### Submit Undelegation Request {: #submit-undelegation-request } -Head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: +Head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: -1. Select the account from which you want to send the extrinsic. This account must be your existing block producer account that you initially delegated from +1. Select the account from which you want to send the transaction. This account must be your existing sequencer account that you initially delegated from 2. Select the **pooledStaking** module 3. Select the **requestUndelegate** extrinsic -4. Enter your account, which is, again, the same account you are sending the extrinsic from and the account you want to decommission as a block producer +4. Enter your account, which is, again, the same account you are sending the extrinsic from and the account you want to decommission as a sequencer 5. Choose the target pool that you originally used when configuring your delegation (either **Autocompounding** or **Manual**) 6. Select **Stake** or **Shares** from the dropdown 7. Enter the amount to unstake. If you selected **Shares**, simply enter the number of Shares. If you selected **Stake**, you'll need to submit the value in [Planck](https://wiki.polkadot.network/docs/learn-DOT#the-planck-unit){target=\_blank}. As a reminder, the minimum stake amount is `{{ networks.dancebox.block_producers.min_self_del.dance }}` DANCE. If you delegated the minimum amount and didn't accumulate additional rewards, you'll need to enter `{{ networks.dancebox.block_producers.min_self_del.planck }}` Planck 8. Click **Submit Transaction** and sign and send the transaction from your wallet -![Create and submit an extrinsic to un-delegate on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-2.webp) +![Create and submit an extrinsic to un-delegate on the developer portal](/images/node-operators/sequencers/offboarding/account/account-2.webp) ### Execute the Pending Request {: #execute-pending-request } You'll need to wait at least {{ networks.dancebox.staking.leaving_delay_sessions_text }} sessions before executing the pending request. Each session is comprised of `{{ networks.dancebox.session.blocks }}` blocks and translates to about {{ networks.dancebox.session.hours }} hour per session. So, {{ networks.dancebox.staking.leaving_delay_sessions_text }} sessions correspond to approximately {{ networks.dancebox.staking.leaving_delay_hours_text }} hours. -Before executing the pending request, you'll need to retrieve the session at which you submitted the request to delegate. To do so, head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/chainstate){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: +Before executing the pending request, you'll need to retrieve the session at which you submitted the request to delegate. To do so, head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/chainstate){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: 1. Select the **pooledStaking** module 2. Select the **pendingOperations** query @@ -61,7 +61,7 @@ Before executing the pending request, you'll need to retrieve the session at whi 5. Click the **+** button next to the extrinsic field 6. The pending request will be displayed at the bottom of the page -![Query the pending undelegation request on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-3.webp) +![Query the pending undelegation request on the developer portal](/images/node-operators/sequencers/offboarding/account/account-3.webp) In the example in the above image, the undelegate request to leave the auto-compounding pool was submitted during session `5,037`. So, the request can be executed starting at session `5,039`. Take note of the operation and the session index at which you submitted the request, as you'll need both values to execute the pending request. @@ -72,7 +72,7 @@ You can run another query from the **Chain state** page to check the current ses 3. Click the **+** button next to the extrinsic field 4. The current session will be displayed at the bottom of the page -![Query the current session index on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-4.webp) +![Query the current session index on the developer portal](/images/node-operators/sequencers/offboarding/account/account-4.webp) If at least two sessions have passed from the session you submitted the extrinsic, the request is ready to be executed. To do so, select **Extrinsics** from the **Developer** dropdown and take the following steps: @@ -85,34 +85,34 @@ If at least two sessions have passed from the session you submitted the extrinsi 7. For **at**, enter the session index at which you submitted the delegate request 8. Click **Submit Transaction** and sign and send the transaction from your wallet -![Create and submit an extrinsic to execute the pending self-delegation request on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-5.webp) +![Create and submit an extrinsic to execute the pending self-delegation request on the developer portal](/images/node-operators/sequencers/offboarding/account/account-5.webp) ### Verify That Your Account Is Not in the List of Eligible Candidates {: #verify } -If you'd like, you can verify that your block-producing node is no longer in the list of eligible candidates. To do so, go to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: +If you'd like, you can verify that your sequencer is no longer in the list of eligible candidates. To do so, go to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: 1. Select the **pooledStaking** module and the **sortedEligibleCandidates** query 2. Click the **+** button next to the extrinsic field 3. A list of the eligible candidates and their stakes will be displayed at the bottom of the page. You can search for your address to ensure that it does not exist in the list -![Query the current list of eligible candidates on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-6.webp) +![Query the current list of eligible candidates on the developer portal](/images/node-operators/sequencers/offboarding/account/account-6.webp) ## Unmap Session Keys {: #unmap-session-keys } -Session keys are used to perform network operations, such as signing blocks, whereas your block producer account holds the staked funds and has an on-chain identity. By unmapping the session key to your account, you sever the association between your block producer account and your block-producing node. +Session keys are used to perform network operations, such as signing blocks, whereas your sequencer account holds the staked funds and has an on-chain identity. By unmapping the session key to your account, you sever the association between your sequencer account and your sequencer node. The unmapping step is taken only as part of the offboarding process. If you need to rotate/change your session keys, you'll need to follow the [generating and mapping new session keys](/node-operators/sequencers/onboarding/account-setup/#map-session-keys){target=\_blank}. You should not purge your keys during the session key rotation process. -To unmap your session keys, head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: +To unmap your session keys, head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: -1. Select your Tanssi block producer account +1. Select your Tanssi sequencer account 2. Select the **session** module 3. Select **purgeKeys** extrinsic 4. Click **Submit Transaction** and sign and send the transaction from your wallet -![Unmap session keys on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-7.webp) +![Unmap session keys on the developer portal](/images/node-operators/sequencers/offboarding/account/account-7.webp) -Using the `session.keyOwner` method, you can verify that your session keys have been unmapped from your account as expected. To do this on [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/chainstate){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: +Using the `session.keyOwner` method, you can verify that your session keys have been unmapped from your account as expected. To do this on the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/chainstate){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: 1. Select the **session** module 2. Select the **keyOwner** query @@ -123,4 +123,4 @@ Using the `session.keyOwner` method, you can verify that your session keys have ![Verifying Unmapping was successful](/images/node-operators/sequencers/offboarding/account/account-8.webp) -And that's it! You have successfully offboarded a Tanssi block producer. If you change your mind at any point and want to onboard back as a Tanssi block producer, you can follow the steps in the [onboarding guide](/node-operators/sequencers/onboarding/account-setup/){target=\_blank}. +And that's it! You have successfully offboarded a Tanssi sequencer. If you change your mind at any point and want to onboard back as a Tanssi sequencer, you can follow the steps in the [onboarding guide](/node-operators/sequencers/onboarding/account-setup/){target=\_blank}. diff --git a/node-operators/sequencers/onboarding/account-setup.md b/node-operators/sequencers/onboarding/account-setup.md index c69414e6..8ffb0618 100644 --- a/node-operators/sequencers/onboarding/account-setup.md +++ b/node-operators/sequencers/onboarding/account-setup.md @@ -10,11 +10,11 @@ icon: octicons-person-add-24 Before you can start producing blocks on Tanssi-powered networks, you'll need to set up your account and establish your eligibility. -You must have spun up a [block-producing node](/node-operators/sequencers/onboarding/run-a-sequencer/){target=\_blank} to tackle the account setup steps in this guide. +You must have spun up a [Sequencer node](/node-operators/sequencers/onboarding/run-a-sequencer/){target=\_blank} to tackle the account setup steps in this guide. You'll need to set up your account by generating [session keys](https://wiki.polkadot.network/docs/learn-keys#session-keys){target=\_blank} and mapping those session keys to your account. This account is the one to which delegators will choose to delegate and where your rewards will be distributed. You can optionally [establish a proxy account](/node-operators/sequencers/operational-tasks/proxy-accounts/){target=\_blank} for additional security. -To establish eligibility, you must delegate yourself as a block producer and meet the minimum bond requirements. +To establish eligibility, you must delegate yourself as a sequencer and meet the minimum bond requirements. By following the steps outlined in this guide, you'll learn everything you need to know to get started producing blocks within the Tanssi ecosystem. @@ -23,26 +23,24 @@ By following the steps outlined in this guide, you'll learn everything you need When establishing eligibility to produce blocks, there are a couple of variables to be aware of: - **Minimum self-delegation** - there is a minimum amount you must self-delegate to be considered eligible -- **Session** - a period that has a constant set of block producers -- **Tanssi block producers per session** - the number of block producers assigned to Tanssi per session -- **Network block producers per session** - the number of block producers assigned to a Tanssi-powered network per session +- **Session** - a period that has a constant set of sequencers +- **Network sequencers per session** - the number of sequencers assigned to a Tanssi-powered network per session -| Variable | Value | -|:------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------:| -| Minimum self-delegation | {{ networks.dancebox.block_producers.min_self_del.dance }} DANCE | -| Session | {{ networks.dancebox.session.blocks }} blocks | -| Tanssi block producers per session | {{ networks.dancebox.block_producers.tanssi.min.num }} to {{ networks.dancebox.block_producers.tanssi.max.num }} block producers | -| Network block producers per session | {{ networks.dancebox.block_producers.appchain.num }} block producers | +| Variable | Value | +|:------------------------------:|:----------------------------------------------------------------:| +| Minimum self-delegation | {{ networks.dancebox.block_producers.min_self_del.dance }} DANCE | +| Session | {{ networks.dancebox.session.blocks }} blocks | +| Network sequencers per session | {{ networks.dancebox.block_producers.appchain.num }} sequencers | -## Map an Account to Your Block Producer Node {: #map-account } +## Map an Account to Your Sequencer Node {: #map-account } -The first step is a two-step process that generates [session keys](https://wiki.polkadot.network/docs/learn-keys#session-keys){target=\_blank} and maps the session keys to your account. Session keys are used to perform network operations, such as signing blocks, whereas your account holds the staked funds and has an on-chain identity. By mapping the session key to your account, you create an association between your account and your block-producing node. +The first step is a two-step process that generates [session keys](https://wiki.polkadot.network/docs/learn-keys#session-keys){target=\_blank} and maps the session keys to your account. Session keys are used to perform network operations, such as signing blocks, whereas your account holds the staked funds and has an on-chain identity. By mapping the session key to your account, you create an association between your account and your sequencer. You will need to create session keys for your primary and backup servers. Each of your servers, your primary and backup, should have its own unique keys. Since the keys never leave your servers, you can consider them a unique ID for that server. ### Generate Session Keys {: #generate-session-keys } -Before generating session keys, you must be [running a block-producing node](/node-operators/sequencers/onboarding/run-a-sequencer/){target=\_blank}. +Before generating session keys, you must be [running a sequencer node](/node-operators/sequencers/onboarding/run-a-sequencer/){target=\_blank}. To generate session keys, you'll send an RPC call, using the `author_rotateKeys` method, to your node's HTTP endpoint. For reference, if your block producer's HTTP endpoint is at port `9944`, the JSON-RPC call might look like this: @@ -65,7 +63,7 @@ Make sure you write down your session keys; you'll need to map your session keys ### Map Session Keys {: #map-session-keys } -To perform the next step and map your session keys to your account, head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: +To perform the next step and map your session keys to your account, head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: 1. Select your account, which should be the same account that you previously self-delegated 2. Select the **session** module and the **setKeys** extrinsic @@ -73,9 +71,9 @@ To perform the next step and map your session keys to your account, head to [Pol 4. For **proof**, enter `0x` 5. Click **Submit Transaction** and sign and send the transaction from your wallet -![Create and submit an extrinsic to set session keys on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-1.webp) +![Create and submit a transaction to set session keys on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-1.webp) -Using the `session.keyOwner` method, you can verify that your session keys have been mapped to your account as expected. To do this on [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: +Using the `session.keyOwner` method, you can verify that your session keys have been mapped to your account as expected. To do this on the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: 1. Select the **session** module and the **keyOwner** query 2. Enter `nmbs` in the **SpCoreCryptoKeyTypeId** field @@ -83,7 +81,7 @@ Using the `session.keyOwner` method, you can verify that your session keys have 4. Click the **+** button next to the extrinsic field 5. The account associated with the session keys, which should be your account, will be displayed at the bottom of the page -![Create and submit query to verify session keys on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-2.webp) +![Create and submit query to verify session keys on the developer portal](/images/node-operators/sequencers/onboarding/account-setup/setup-2.webp) ## Submit Self-Delegation {: #submit-self-delegation } @@ -91,24 +89,24 @@ The next step towards becoming eligible to produce blocks on Tanssi-powered netw After you've submitted the request to delegate, you'll need to wait for a minimum of {{ networks.dancebox.staking.joining_delay_sessions_text }} sessions before you can execute the pending request. There are {{ networks.dancebox.session.blocks }} blocks in a session. So, {{ networks.dancebox.staking.joining_delay_sessions_text }} sessions are {{ networks.dancebox.staking.joining_delay_blocks }} blocks, which can take around {{ networks.dancebox.staking.joining_delay_hours_text }} hours. -Block producers are assigned upon each session, requiring {{ networks.dancebox.block_producers.appchain.display }} per network and a minimum of {{ networks.dancebox.block_producers.tanssi.min.display }} to {{ networks.dancebox.block_producers.tanssi.max.display }} for Tanssi. The block producers participating in the session are picked from the list of candidates ordered by total stake until the total number of block producers required is covered. So, you'll need to ensure that your total stake is enough to fill one of the slots, which may require more than {{ networks.dancebox.block_producers.min_self_del.dance }} DANCE tokens. +Sequencers are assigned upon each session, requiring {{ networks.dancebox.block_producers.appchain.display }} per network and a minimum of {{ networks.dancebox.block_producers.tanssi.min.display }} to {{ networks.dancebox.block_producers.tanssi.max.display }} for Tanssi. The sequencers participating in the session are picked from the list of candidates ordered by total stake until the total number of sequencers required is covered. So, you'll need to ensure that your total stake is enough to fill one of the slots, which may require more than {{ networks.dancebox.block_producers.min_self_del.dance }} DANCE tokens. ### Request Delegate {: #request-delegate } -Head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: +Head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Extrinsics** from the dropdown, and take the following steps: -1. Select the account from which you want to send the extrinsic. This account must be the same account that you are delegating to and is the account that you want to become a block producer +1. Select the account from which you want to send the transaction. This account must be the same account that you are delegating to and is the account that you want to become a sequencer 2. Select the **pooledStaking** module and the **requestDelegate** extrinsic -3. Enter your account, which is, again, the same account you are sending the extrinsic from and the account you want to become a block producer +3. Enter your account, which is, again, the same account you are sending the transaction from and the account you want to become a sequencer 4. Choose the target pool. The pool can either be the auto-compounding pool, which auto-compounds delegation rewards, or the manual rewards pool, in which all actions related to rewards are manual 5. Enter the amount to stake. This amount must meet the minimum, which is {{ networks.dancebox.block_producers.min_self_del.dance }} DANCE tokens. You'll need to submit the value in [Planck](https://wiki.polkadot.network/docs/learn-DOT#the-planck-unit){target=\_blank}, so for {{ networks.dancebox.block_producers.min_self_del.dance }}, you'll need to enter `{{ networks.dancebox.block_producers.min_self_del.planck }}` 6. Click **Submit Transaction** and sign and send the transaction from your wallet -![Create and submit an extrinsic to self-delegate on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-3.webp) +![Create and submit a transaction to self-delegate on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-3.webp) ### Execute the Pending Request {: #execute-pending-request } -Before executing the pending request, you'll need to retrieve the session at which you submitted the request to delegate. To do so, head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: +Before executing the pending request, you'll need to retrieve the session at which you submitted the request to delegate. To do so, head to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: 1. Select the **pooledStaking** module and the **pendingOperations** query 2. Enter your account @@ -116,7 +114,7 @@ Before executing the pending request, you'll need to retrieve the session at whi 4. Click the **+** button next to the extrinsic field 5. The pending request will be displayed at the bottom of the page -![Query the pending self-delegation request on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-4.webp) +![Query the pending self-delegation request on the developer portal](/images/node-operators/sequencers/onboarding/account-setup/setup-4.webp) In the example in the above image, the delegate request to join the auto-compounding pool was submitted during session 4,829. So, the request can be executed starting at session 4,831. @@ -128,30 +126,30 @@ You can run another query from the **Chain state** page to check the current ses 2. Click the **+** button next to the extrinsic field 3. The current session will be displayed at the bottom of the page -![Query the current session index on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-5.webp) +![Query the current session index on the developer portal](/images/node-operators/sequencers/onboarding/account-setup/setup-5.webp) If the request can be executed, select **Extrinsics** from the **Developer** dropdown and take the following steps: -1. Select the account from which you want to send the extrinsic -2. Select the **pooledStaking** module and the **executePendingOperations** extrinsic +1. Select the account from which you want to send the transaction +2. Select the **pooledStaking** module and the **executePendingOperations** transaction 3. For **delegator**, enter your account, which is the same account you sent the self-delegate request from 4. For **operation**, select the type of operation to execute. This should be either **JoiningAutoCompounding** or **JoiningManualRewards**, depending on the target pool you selected at the time of submitting the self-delegation request 5. For **candidate**, enter the same account as you did in the **delegator** field 6. For **at**, enter the session id at which you submitted the delegate request 7. Click **Submit Transaction** and sign and send the transaction from your wallet -![Create and submit an extrinsic to execute the pending self-delegation request on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-6.webp) +![Create and submit a transaction to execute the pending self-delegation request on the developer portal](/images/node-operators/sequencers/onboarding/account-setup/setup-6.webp) Now, you have completed all of the necessary account setup to be eligible to produce blocks! ## Verify That Your Account Is in the List of Eligible Candidates {: #verify } -If you've followed all of the steps in this guide and have fully synced your block-producing node, you are now eligible to produce blocks. To verify that you are in the list of eligible candidates, you can go to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: +If you've followed all of the steps in this guide and have fully synced your sequencer, you are now eligible to produce blocks. To verify that you are in the list of eligible candidates, you can go to the [developer portal](https://polkadot.js.org/apps/?rpc=wss://{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank}, click on the **Developer** tab, select **Chain state** from the dropdown, and take the following steps: 1. Select the **pooledStaking** module and the **sortedEligibleCandidates** query 2. Click the **+** button next to the extrinsic field 3. A list of the eligible candidates and their stake will be displayed at the bottom of the page. You can search for your address to ensure you are eligible to produce blocks -![Query the current list of eligible candidates on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-7.webp) +![Query the current list of eligible candidates on the developer portal](/images/node-operators/sequencers/onboarding/account-setup/setup-7.webp) -Remember that you'll need to be in the top candidates by total stake to produce blocks, and this is based on the number of [block producers required for each network and Tanssi](#important-variables). +Remember that you'll need to be in the top candidates by total stake to produce blocks, and this is based on the number of [sequencers required for each network and Tanssi](#important-variables). diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/index.md b/node-operators/sequencers/onboarding/run-a-sequencer/index.md index bf271f76..790e8dac 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/index.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/index.md @@ -24,12 +24,11 @@ Recommended Hardware: ### Required Network Ports -For successful block production, your node must synchronize and interact with three peer-to-peer (P2P) networks. To ensure proper communication within the Tanssi ecosystem, make sure the following ports are open for incoming: +For successful block production, your node must synchronize and interact with two peer-to-peer (P2P) networks. To ensure proper communication within the Tanssi ecosystem, make sure the following ports are open for incoming: | Network | Port | |------------------|-------------| | Tanssi Chain | 30333 (TCP) | -| Relay Chain | 30334 (TCP) | | Assigned Network | 30335 (TCP) | ## Explore This Section diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md index 424588bb..4536b3f4 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md @@ -18,7 +18,7 @@ In this guide, you'll learn how to spin up a Tanssi sequencer to be part of the ### Pulling the Docker Image {: #pulling-docker-image } -A Docker image is built and published in every release, containing all the necessary dependencies a Tanssi block producer requires and the binary file itself. +A Docker image is built and published in every release, containing all the necessary dependencies a Tanssi sequencer requires and the binary file itself. A Docker image combines the binary corresponding to the latest stable release of the [client node](/learn/framework/architecture/#architecture){target=\_blank}, along with the Tanssi orchestrator specification file. @@ -34,7 +34,7 @@ The command will download and extract the image and show the status upon executi ### Setup the Data Directory {: #setup-data-directory } -Running a sequencer requires syncing with three chains: the relay chain, the Tanssi chain, and the network it has been assigned to. +Running a sequencer requires syncing with two chains: the Tanssi chain and the network it has been assigned to. Run the following command to create the directory where your sequencer will store the databases containing blocks and chain states: @@ -48,7 +48,7 @@ Set the folder's ownership to the account that will run the Docker image to ensu chown INSERT_DOCKER_USER /var/lib/dancebox ``` -Or run the following command if you want to run the block producer with the current logged-in user: +Or run the following command if you want to run the sequencer with the current logged-in user: ```bash sudo chown -R $(id -u):$(id -g) /var/lib/dancebox @@ -73,13 +73,12 @@ moondancelabs/tanssi key generate-node-key --file /data/node-key To spin up your node, you must run the Docker image with the `docker run` command. -Note that the command contains three sections, divided by `-- \`: +Note that the command contains two sections, divided by `-- \`: - **Tanssi protocol section** - it contains the flags to run the Tanssi node -- **Block producer section** - it contains the flags to run the block producer node. It is abstract enough to be dynamically adapted in runtime to the specific chain the node will serve -- **Relay chain section** - contains the flag to run the relay chain node +- **Sequencer section** - it contains the flags to run the sequencer node. It is abstract enough to be dynamically adapted in runtime to the specific chain the node will serve -Name each of the sections with a human-readable name by replacing the `INSERT_YOUR_TANSSI_NODE_NAME`, `INSERT_YOUR_BLOCK_PRODUCER_NODE_NAME`, and `INSERT_YOUR_RELAY_NODE_NAME` tags in the `--name` flags. These names will come in handy for connecting the log entries and metrics with the node that generates them. +Name each of the sections with a human-readable name by replacing the `INSERT_YOUR_TANSSI_NODE_NAME` and `INSERT_YOUR_SEQUENCER_NODE_NAME` tags in the `--name` flags. These names will come in handy for connecting the log entries and metrics with the node that generates them. --8<-- 'text/node-operators/optimized-binaries-note.md' @@ -123,8 +122,8 @@ docker run -ti moondancelabs/tanssi --help ## Syncing Your Node {: #syncing-your-node } -The first time your node spins up, the syncing process displays lots of log information from the node configuration, the relay chain, and the node itself. Some errors are expected to be displayed at the beginning of the process, disappearing once the chain gets synced to the last block. +The first time your node spins up, the syncing process displays lots of log information from the node configuration and the node itself. Some errors are expected to be displayed at the beginning of the process, disappearing once the chain gets synced to the last block. --8<-- 'code/node-operators/terminal/syncing-process.md' -When the syncing with the relay chain and the Tanssi orchestrator is finished, the node will still need to sync with the network it has been assigned to. The syncing with the chain served by the block producer node will happen every time the block producer is rotated. +When the syncing with the Tanssi orchestrator is finished, the node will still need to sync with the network it has been assigned to. The syncing with the chain served by the sequencer node will happen every time the sequencer is rotated. diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md index f1ed9ca4..298f0e6c 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md @@ -4,13 +4,13 @@ description: Learn how to set up and run a sequencer (block producer) node for T icon: simple-linux --- -# Run a Block Producer Node Using Systemd +# Run a Sequencer Node Using Systemd ## Introduction {: #introduction } --8<-- 'text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md' -In this guide, you'll learn how to spin up a Tanssi block producer to be part of the shared pool of sequencers using the latest stable binary file release and managing the service with [Systemd](https://systemd.io){target=\_blank} on Linux systems. +In this guide, you'll learn how to spin up a Tanssi sequencer to be part of the shared pool of sequencers using the latest stable binary file release and managing the service with [Systemd](https://systemd.io){target=\_blank} on Linux systems. The article follows the good practice of running the service with its own non-root account and granting that account write access to a specific directory. However, you can adapt this article's steps and instructions to your infrastructure configuration, preferences, and security policies. @@ -97,7 +97,7 @@ You can create the file by running the following command: sudo touch /etc/systemd/system/tanssi.service ``` -Now you can open the file using your favorite text editor (vim, emacs, nano, etc) and add the configuration for the service, replacing the `INSERT_YOUR_TANSSI_NODE_NAME` and `INSERT_YOUR_RELAY_NODE_NAME` tags with a human-readable text in the `--name` flags. These names will come in handy for connecting the log entries and metrics with the node that generates them. +Now you can open the file using your favorite text editor (vim, emacs, nano, etc) and add the configuration for the service, replacing the `INSERT_YOUR_TANSSI_NODE_NAME` and `INSERT_YOUR_SEQUENCER_NODE_NAME` tags with a human-readable text in the `--name` flags. These names will come in handy for connecting the log entries and metrics with the node that generates them. ```bash [Unit] @@ -125,7 +125,7 @@ ExecStart=/var/lib/tanssi-data/tanssi-node \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ --node-key-file /var/lib/tanssi-data/node-key \ -- \ ---name=INSERT_YOUR_BLOCK_PRODUCER_NODE_NAME \ +--name=INSERT_YOUR_SEQUENCER_NODE_NAME \ --base-path=/var/lib/tanssi-data/container \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' -- \ diff --git a/node-operators/sequencers/operational-tasks/index.md b/node-operators/sequencers/operational-tasks/index.md index 14e69d6b..111863c4 100644 --- a/node-operators/sequencers/operational-tasks/index.md +++ b/node-operators/sequencers/operational-tasks/index.md @@ -7,7 +7,7 @@ template: index-page.html # Operational Task -Keeping your sequencer node up and running is more than just setup - it requires regular maintenance to ensure consistent performance and secure management of your accounts. Regular updates are essential to keep your node compatible with the latest Tanssi protocol changes, while tools such as proxy accounts provide an extra layer of security by allowing you to delegate certain tasks without exposing your primary account credentials. This section provides the necessary steps to keep your operations smooth, reliable and secure. +Keeping your sequencer up and running is more than just setup - it requires regular maintenance to ensure consistent performance and secure management of your accounts. Regular updates are essential to keep your node compatible with the latest Tanssi protocol changes, while tools such as proxy accounts provide an extra layer of security by allowing you to delegate certain tasks without exposing your primary account credentials. This section provides the necessary steps to keep your operations smooth, reliable and secure. ## Explore This Section diff --git a/node-operators/sequencers/operational-tasks/proxy-accounts.md b/node-operators/sequencers/operational-tasks/proxy-accounts.md index f8d03dad..8385faf6 100644 --- a/node-operators/sequencers/operational-tasks/proxy-accounts.md +++ b/node-operators/sequencers/operational-tasks/proxy-accounts.md @@ -8,27 +8,27 @@ icon: octicons-shield-lock-24 ## Introduction {: #introduction } -Proxy accounts can be set up to perform a limited number of actions on behalf of primary accounts and help keep the underlying accounts safe. As a block producer on Tanssi, it's a good idea to take advantage of proxy accounts to interact with the network in place of your block producer account. +Proxy accounts can be set up to perform a limited number of actions on behalf of primary accounts and help keep the underlying accounts safe. As a sequencer on Tanssi, it's a good idea to take advantage of proxy accounts to interact with the network in place of your sequencer account. -The staking proxy type conveniently allows the proxy account to manage staking activities, such as delegating and rotating session keys, on behalf of the primary block producer account, effectively transforming it into a "hot wallet" for performing regular maintenance duties on behalf of your "cold wallet" block producer account. For added safety, you can regularly rotate the proxy account. +The staking proxy type conveniently allows the proxy account to manage staking activities, such as delegating and rotating session keys, on behalf of the primary sequencer account, effectively transforming it into a "hot wallet" for performing regular maintenance duties on behalf of your "cold wallet" sequencer account. For added safety, you can regularly rotate the proxy account. Proxy accounts can also help you implement the principle of least privilege for access control. For example, if you have multiple team members, you can give them the minimum access required to carry out their duties via a specific proxy account. -This tutorial will walk you through configuring a staking proxy account on the Tanssi Dancebox TestNet specifically for operations as a block producer. Then, it will demonstrate initiating a delegation using the newly created staking proxy. +This tutorial will walk you through configuring a staking proxy account on the Tanssi Dancebox TestNet specifically for operations as a sequencer. Then, it will demonstrate initiating a delegation using the newly created staking proxy. ## Checking Prerequisites {: #checking-prerequisites } To follow along with this tutorial, you will need to have: -- [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F{{ networks.dancebox.dns_name }}#/accounts){target=\_blank} open and connected to the Tanssi Dancebox TestNet -- Create or have two accounts accessible in Polkadot.js Apps -- Both accounts will need to be funded with `DANCE` tokens, and the block producer account will need at least `{{ networks.dancebox.block_producers.min_self_del.dance }}` `DANCE` +- The [developer portal](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F{{ networks.dancebox.dns_name }}#/accounts){target=\_blank} open and connected to the Tanssi Dancebox TestNet +- Create or have two accounts accessible in the developer portal +- Both accounts will need to be funded with `DANCE` tokens, and the sequencer account will need at least `{{ networks.dancebox.block_producers.min_self_del.dance }}` `DANCE` -If you need help importing your accounts into Polkadot.js Apps, please check out the [Connecting to Polkadot.js](/builders/toolkit/substrate-api/wallets/talisman/#connecting-to-polkadotjs){target=\_blank} guide. +If you need help importing your accounts into the developer portal, please check out the [Connecting to the Developer Portal](/builders/toolkit/substrate-api/wallets/talisman/#connecting-to-polkadotjs){target=\_blank} guide. ## Creating a Staking Proxy Account {: #creating-a-staking-proxy-account } -There are a couple of ways you can create proxy accounts in [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F{{ networks.dancebox.dns_name }}#/accounts){target=\_blank}, either from the **Extrinsics** page or the **Accounts** page. However, to create a time-delayed proxy, you will need to use the **Extrinsics** page. A time delay provides an additional layer of security to proxies by specifying a delay period based on the number of blocks. This will prevent the proxy account from executing a transaction until the delay period ends. The delay allows time for the primary account that controls the proxy to review pending transactions and provides a limited period of time to cancel any actions. +There are a couple of ways you can create proxy accounts in the [developer portal](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F{{ networks.dancebox.dns_name }}#/accounts){target=\_blank}, either from the **Extrinsics** page or the **Accounts** page. However, to create a time-delayed proxy, you will need to use the **Extrinsics** page. A time delay provides an additional layer of security to proxies by specifying a delay period based on the number of blocks. This will prevent the proxy account from executing a transaction until the delay period ends. The delay allows time for the primary account that controls the proxy to review pending transactions and provides a limited period of time to cancel any actions. You also have the option of creating a proxy of type **Any** which grants the proxy account full and unrestricted control over the primary account. This means that the proxy account can transfer funds, and perform any arbitrary action. The following demo will showcase configuring a **Staking** proxy, which is more restrictive than an **Any** proxy, as it limits functions to activities that pertain to staking, such as delegating, undelegating, and mapping session keys. @@ -43,7 +43,7 @@ To get started creating your proxy account, head to the **Developer** tab and se 7. Optionally, you can add a time delay using a specified number of blocks to add an additional layer of security for the primary account to review the pending transaction 8. Click **Submit Transaction** -![Add a proxy account from the Extrinsics page of Polkadot.js Apps.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-1.webp) +![Add a proxy account from the Extrinsics page of the developer portal](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-1.webp) You will then be prompted to authorize and sign the transaction. Click **Sign and Submit** to create the proxy relationship. Once the transaction has been successfully submitted, you will receive some notifications confirming the transaction. @@ -52,14 +52,14 @@ As previously mentioned, you can also create a proxy from the **Accounts** page. 1. Select the three vertical dots next to the primary account 2. Select **Add proxy** -![Select the Add proxy menu item from the Accounts page of Polkadot.js Apps.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-2.webp) +![Select the Add proxy menu item from the Accounts page of the developer portal](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-2.webp) !!! note If the account already has a proxy, **Manage proxies** will be displayed as an option instead of **Add proxy**. A pop-up will appear and you can enter the required information, such as the proxied/primary account, the proxy account, and the type of proxy to create a proxy account. First, click **Add proxy**. -![Add a proxy account from the Accounts page of Polkadot.js Apps](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-3.webp) +![Add a proxy account from the Accounts page of the developer portal](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-3.webp) Then, take the following steps: @@ -67,7 +67,7 @@ Then, take the following steps: 2. Select the proxy type 3. Click **Submit** and sign the transaction -![Add the details of the proxy account, including the proxy account and type.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-4.webp) +![Add the details of the proxy account, including the proxy account and type](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-4.webp) In the next section, you will learn how to verify that your proxy account was set up successfully. @@ -82,21 +82,21 @@ To check your proxy accounts from the [**Chain state** page](https://polkadot.js 3. Select your primary/proxied account 4. Click on the **+** button to send the query -![Verify your proxy accounts via the Extrinsics page of Polkadot.js Apps.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-5.webp) +![Verify your proxy accounts via the Extrinsics page of the developer portal](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-5.webp) The result will appear on the page showing you information about all of your proxies, including the delegate/proxy account address, the proxy type, the delay period if one was specified, and the total bond amount for all of your proxies in Planck. You can also check your proxy accounts from the **Accounts** page. To do so, navigate to the **Accounts** page, and there should be a Proxy symbol next to the primary account. Hover over the icon and click on **Manage proxies** to review your proxies. -![Hover over the proxy icon to manage your proxies via the Accounts page of Polkadot.js Apps.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-6.webp) +![Hover over the proxy icon to manage your proxies via the Accounts page of Polkadot.js Apps](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-6.webp) A pop-up will appear where you can see an overview of all of your proxy accounts. -![Review your proxy accounts.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-7.webp) +![Review your proxy accounts](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-7.webp) ## Executing a Proxy Transaction {: #executing-a-proxy-transaction } -Now that you have created a proxy account and verified that it was successfully set up, you can execute a transaction using the staking proxy account on behalf of your block producer account, also known as the primary account or the account that is being proxied. The following example will demonstrate initiating a self-delegation. The proxy configuration shown is a realistic example of how you might have your own proxy configured for your block producer primary account. +Now that you have created a proxy account and verified that it was successfully set up, you can execute a transaction using the staking proxy account on behalf of your sequencer account, also known as the primary account or the account that is being proxied. The following example will demonstrate initiating a self-delegation. The proxy configuration shown is a realistic example of how you might have your own proxy configured for your developer portal primary account. To execute a transaction, you can navigate back to the [**Extrinsics** page](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2F{{ networks.dancebox.dns_name }}#/extrinsics){target=\_blank} and take the following steps: @@ -112,7 +112,7 @@ To execute a transaction, you can navigate back to the [**Extrinsics** page](htt 10. Enter the amount to stake. This amount must meet the minimum, which is {{ networks.dancebox.block_producers.min_self_del.dance }} DANCE tokens. You'll need to submit the value in [Planck](https://wiki.polkadot.network/docs/learn-DOT#the-planck-unit){target=\_blank}, so for {{ networks.dancebox.block_producers.min_self_del.dance }}, you'll need to enter `{{ networks.dancebox.block_producers.min_self_del.planck }}` 11. Click **Submit Transaction** -![Execute a proxy transaction from the Extrinsics page of Polkadot.js Apps.](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-8.webp) +![Execute a proxy transaction from the Extrinsics page of Polkadot.js Apps](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-8.webp) A pop-up will appear for you to authorize and sign the transaction. Enter your password for the proxy account and click **Sign and Submit**. To confirm the delegation request, you'll need to execute the pending request after two sessions have passed. Please refer to the instructions for [executing pending requests](/node-operators/sequencers/onboarding/account-setup/#execute-pending-request){target=\_blank} for a step-by-step guide. You can also [map your session keys to your block producer account](/node-operators/sequencers/onboarding/account-setup/#map-session-keys){target=\_blank} via proxy. diff --git a/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md index 3d7b1f1c..ef2ff6d3 100644 --- a/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md @@ -10,7 +10,7 @@ template: index-page.html Keeping your node updated is critical to maintaining compatibility with the latest Tanssi protocol changes and ensuring optimal performance. Outdated nodes can lead to desynchronization, reduced efficiency, or even an inability to participate in block production. By staying current with client releases, you can ensure your node operates securely and reliably within the network. !!! tip "Subscribe to Release Notifications" - Staying informed about new client releases is essential for maintaining an up-to-date node. Tanssi block producers can subscribe to GitHub notifications to be alerted for new client release versions. + Staying informed about new client releases is essential for maintaining an up-to-date node. Tanssi sequencers can subscribe to GitHub notifications to be alerted for new client release versions. To subscribe, visit the [Tanssi GitHub](https://github.com/moondance-labs/tanssi){:target="_blank"} repository and click **Watch**. Select **Custom notifications** and ensure the box for **Releases** is checked. diff --git a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md index 7e9d0cf9..fd4e3078 100644 --- a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md @@ -8,13 +8,13 @@ icon: simple-docker ## Introduction {: #introduction } -Keeping your node up-to-date is an important part of being a Tanssi block producer node. Not only does it help to ensure that your block producer node stays healthy, it also contributes to keeping the entire Tanssi Network running smoothly. Tanssi block producers can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. +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. Tanssi sequencers can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. -This tutorial covers upgrading your Tanssi block producer node that was configured using Docker. It assumes you have already set up your account and launched a [block producer node using Docker](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/){target=\_blank}. +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](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/){target=\_blank}. ## Upgrading Docker Nodes {: #upgrading-docker-nodes } -If you're running your block producer node with Docker, updating your node is as simple as stopping the running container and restarting it with the new version tag. +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: diff --git a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md index 501168c9..57704ca5 100644 --- a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md @@ -8,13 +8,13 @@ icon: simple-linux ## Introduction {: #introduction } -Keeping your node up-to-date is an important part of being a Tanssi block producer node. Not only does it help to ensure that your block producer node stays healthy, it also contributes to keeping the entire Tanssi Network running smoothly. Tanssi block producers can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. +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. Tanssi sequencers can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. -This tutorial covers upgrading your Tanssi block producer node that was configured using Systemd. It assumes you have already set up your account and launched a [block producer node using Systemd](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd/){target=\_blank}. +This tutorial covers upgrading your Tanssi sequencer node that was configured using Systemd. It assumes you have already set up your account and launched a [sequencer node using Systemd](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd/){target=\_blank}. ## Upgrading Your Systemd Node {: #upgrading-your-systemd-node } -If you're running your block producer node via the Systemd service, you'll need to take a few steps to properly upgrade your node. In short, you'll need to stop the service, replace the Tanssi binary with the updated version, and then start the service. +If you're running your sequencer via the Systemd service, you'll need to take a few steps to properly upgrade your node. In short, you'll need to stop the service, replace the Tanssi binary with the updated version, and then start the service. You can stop your Tanssi Systemd service with the following command: diff --git a/variables.yml b/variables.yml index f9529df3..1fa23bf9 100644 --- a/variables.yml +++ b/variables.yml @@ -43,8 +43,8 @@ networks: num: 5 display: 'five' min_self_del: - dance: '10,000' - planck: 10000000000000000 + dance: '100' + planck: 100000000000000 staking: joining_delay_sessions: 2 joining_delay_sessions_text: 'two' From 356921a871b6b81e890484928c5392f7cba15c0b Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 20 Jan 2025 19:15:18 -0300 Subject: [PATCH 6/9] startup commands --- .../sequencers-docker/docker-command.md | 16 +++------------- .../run-a-sequencer/sequencers-docker.md | 8 ++++---- .../run-a-sequencer/sequencers-systemd.md | 15 ++------------- 3 files changed, 9 insertions(+), 30 deletions(-) diff --git a/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md b/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md index 796aba8c..38c41a26 100644 --- a/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md +++ b/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md @@ -1,20 +1,10 @@ ---chain=dancebox \ ---name=INSERT_YOUR_TANSSI_NODE_NAME \ ---sync=warp \ ---base-path=/data/para \ ---state-pruning=2000 \ ---blocks-pruning=2000 \ ---collator \ ---telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ ---database paritydb \ ---node-key-file /data/node-key \ -- \ ---name=INSERT_YOUR_BLOCK_PRODUCER_NODE_NAME \ +--name=INSERT_YOUR_SEQUENCER_NODE_NAME \ --base-path=/data/container \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ -- \ ---chain=westend_moonbase_relay_testnet \ ---name=INSERT_YOUR_RELAY_NODE_NAME \ +--chain=/chain-network/relay-raw-no-bootnodes-specs.json \ +--name=INSERT_YOUR_TANSSI_NODE_NAME \ --sync=fast \ --base-path=/data/relay \ --state-pruning=2000 \ diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md index 4536b3f4..5dfc83fd 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md @@ -87,7 +87,7 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO ```bash docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ - moondancelabs/tanssi \ + moondancelabs/tanssi-node solo-chain \ --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` @@ -96,7 +96,7 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO ```bash docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ - --entrypoint "/tanssi/tanssi-node-skylake" \ + --entrypoint "/tanssi/tanssi-node-skylake solo-chain" \ moondancelabs/tanssi \ --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` @@ -105,7 +105,7 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO ```bash docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ - --entrypoint "/tanssi/tanssi-node-znver3" \ + --entrypoint "/tanssi/tanssi-node-znver3 solo-chain" \ moondancelabs/tanssi \ --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` @@ -117,7 +117,7 @@ The flags used in the `docker run` command can be adjusted according to your pre --8<-- 'text/node-operators/network-node/run-flags.md' ```bash -docker run -ti moondancelabs/tanssi --help +docker run -ti moondancelabs/tanssi-node --help ``` ## Syncing Your Node {: #syncing-your-node } diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md index 298f0e6c..d9a1d6af 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md @@ -113,24 +113,13 @@ User=tanssi_service SyslogIdentifier=tanssi SyslogFacility=local7 KillSignal=SIGHUP -ExecStart=/var/lib/tanssi-data/tanssi-node \ ---chain=dancebox \ ---name=INSERT_YOUR_TANSSI_NODE_NAME \ ---sync=warp \ ---base-path=/var/lib/tanssi-data/para \ ---state-pruning=2000 \ ---blocks-pruning=2000 \ ---collator \ ---database paritydb \ ---telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ ---node-key-file /var/lib/tanssi-data/node-key \ --- \ +ExecStart=/var/lib/tanssi-data/tanssi-node solo-chain \ --name=INSERT_YOUR_SEQUENCER_NODE_NAME \ --base-path=/var/lib/tanssi-data/container \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' -- \ --chain=westend_moonbase_relay_testnet \ ---name=INSERT_YOUR_RELAY_NODE_NAME \ +--name=INSERT_YOUR_TANSSI_NODE_NAME \ --sync=fast \ --base-path=/var/lib/tanssi-data/relay \ --state-pruning=2000 \ From 9baaff6a94d2fbdcd7f870bddcf314625d3e7c00 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 20 Jan 2025 19:22:54 -0300 Subject: [PATCH 7/9] upgrade --- .../operational-tasks/upgrade-your-node/upgrade-docker.md | 2 +- .../operational-tasks/upgrade-your-node/upgrade-systemd.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md index fd4e3078..ad3a17a7 100644 --- a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md @@ -8,7 +8,7 @@ icon: simple-docker ## Introduction {: #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. Tanssi sequencers can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. +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. Tanssi sequencer operators can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. 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](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/){target=\_blank}. diff --git a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md index 57704ca5..40a25a84 100644 --- a/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md @@ -8,7 +8,7 @@ icon: simple-linux ## Introduction {: #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. Tanssi sequencers can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. +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. Tanssi sequencer operators can subscribe to [GitHub notifications](#subscribe) to be alerted for new client release versions. This tutorial covers upgrading your Tanssi sequencer node that was configured using Systemd. It assumes you have already set up your account and launched a [sequencer node using Systemd](/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd/){target=\_blank}. From 46a407a71913c8d0800234b6c29001761211a6ac Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 20 Jan 2025 19:26:11 -0300 Subject: [PATCH 8/9] missing backslash --- .../sequencers/onboarding/run-a-sequencer/sequencers-systemd.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md index d9a1d6af..76bd0674 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md @@ -116,7 +116,7 @@ KillSignal=SIGHUP ExecStart=/var/lib/tanssi-data/tanssi-node solo-chain \ --name=INSERT_YOUR_SEQUENCER_NODE_NAME \ --base-path=/var/lib/tanssi-data/container \ ---telemetry-url='wss://telemetry.polkadot.io/submit/ 0' +--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ -- \ --chain=westend_moonbase_relay_testnet \ --name=INSERT_YOUR_TANSSI_NODE_NAME \ From 684e2115ff39f405b9f00e12da6763c962ded0d7 Mon Sep 17 00:00:00 2001 From: augustocollado Date: Mon, 20 Jan 2025 22:31:02 -0300 Subject: [PATCH 9/9] updated command --- .../sequencers-docker/docker-command.md | 30 ++++++++++++++-- .../run-a-sequencer/sequencers-docker.md | 2 +- .../run-a-sequencer/sequencers-systemd.md | 35 ++++++++++++++++--- 3 files changed, 58 insertions(+), 9 deletions(-) diff --git a/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md b/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md index 38c41a26..0ea6f71d 100644 --- a/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md +++ b/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md @@ -1,13 +1,37 @@ --- \ --name=INSERT_YOUR_SEQUENCER_NODE_NAME \ --base-path=/data/container \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ +--database=paritydb \ +--rpc-port=9944 \ +--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 \ +--rpc-cors=all \ +--unsafe-rpc-external \ +--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 \ +--base-path=/data/relay \ +--rpc-port=9945 \ +--prometheus-port=9616 \ +--prometheus-external \ +--listen-addr=/ip4/0.0.0.0/tcp/30334 \ +--pool-limit=0 \ +--db-cache=128 \ +--rpc-cors=all \ +--rpc-methods=safe \ +--out-peers=15 \ --state-pruning=2000 \ --blocks-pruning=2000 \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ ---database paritydb +--database=paritydb \ +--bootnodes=/dns4/fraa-stagelight-rpc-0.a.stagenet.tanssi.network/tcp/30334/p2p/12D3KooWCUwf99GjNKtDJ7SnuGPaecdiugiWJ3pr9JdoH27BW2tZ \ +--bootnodes=/dns4/fraa-stagelight-rpc-1.a.stagenet.tanssi.network/tcp/30334/p2p/12D3KooWHRQfPBf82SUU39CFh5jcUT1TL2ZvvTWvnbtghxqqNQwa diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md index 5dfc83fd..46783fb4 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md @@ -87,7 +87,7 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO ```bash docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ - moondancelabs/tanssi-node solo-chain \ + moondancelabs/tanssi solo-chain \ --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md index 76bd0674..05e75d1e 100644 --- a/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md @@ -115,17 +115,42 @@ SyslogFacility=local7 KillSignal=SIGHUP ExecStart=/var/lib/tanssi-data/tanssi-node solo-chain \ --name=INSERT_YOUR_SEQUENCER_NODE_NAME \ ---base-path=/var/lib/tanssi-data/container \ +--base-path=/data/container \ --telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ +--database=paritydb \ +--rpc-port=9944 \ +--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 \ +--rpc-cors=all \ +--unsafe-rpc-external \ +--collator \ +--in-peers=100 \ +--detailed-log-output \ -- \ ---chain=westend_moonbase_relay_testnet \ +--chain=/chain-network/relay-raw-no-bootnodes-specs.json \ --name=INSERT_YOUR_TANSSI_NODE_NAME \ --sync=fast \ ---base-path=/var/lib/tanssi-data/relay \ +--base-path=/data/relay \ +--rpc-port=9945 \ +--prometheus-port=9616 \ +--prometheus-external \ +--listen-addr=/ip4/0.0.0.0/tcp/30334 \ +--pool-limit=0 \ +--db-cache=128 \ +--rpc-cors=all \ +--rpc-methods=safe \ +--out-peers=15 \ --state-pruning=2000 \ --blocks-pruning=2000 \ ---database paritydb \ ---telemetry-url='wss://telemetry.polkadot.io/submit/ 0' +--telemetry-url='wss://telemetry.polkadot.io/submit/ 0' \ +--database=paritydb \ +--bootnodes=/dns4/fraa-stagelight-rpc-0.a.stagenet.tanssi.network/tcp/30334/p2p/12D3KooWCUwf99GjNKtDJ7SnuGPaecdiugiWJ3pr9JdoH27BW2tZ \ +--bootnodes=/dns4/fraa-stagelight-rpc-1.a.stagenet.tanssi.network/tcp/30334/p2p/12D3KooWHRQfPBf82SUU39CFh5jcUT1TL2ZvvTWvnbtghxqqNQwa [Install] WantedBy=multi-user.target