diff --git a/.github/workflows/check-mkdocs-build.yml b/.github/workflows/check-mkdocs-build.yml index 790e158e..6aa406a7 100644 --- a/.github/workflows/check-mkdocs-build.yml +++ b/.github/workflows/check-mkdocs-build.yml @@ -10,6 +10,9 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 + - uses: actions/setup-python@v5 + with: + python-version: '3.10.12' - name: Allow to move dotfiles run: | @@ -24,7 +27,7 @@ jobs: - name: Move tanssi-docs contents to mkdocs repository run: | mkdir tanssi-mkdocs/tanssi-docs - mv * tanssi-mkdocs/tanssi-docs &> /dev/null || echo "Error with mv expected due to recursively moving all contents into subfolder" + find . -mindepth 1 -maxdepth 1 ! -name 'tanssi-mkdocs' -exec mv {} tanssi-mkdocs/tanssi-docs/ \; - name: Install pip requirements run: | diff --git a/.snippets/code/node-operators/appchain-node/rpc-docker/docker-command.md b/.snippets/code/node-operators/network-node/rpc-docker/docker-command.md similarity index 100% rename from .snippets/code/node-operators/appchain-node/rpc-docker/docker-command.md rename to .snippets/code/node-operators/network-node/rpc-docker/docker-command.md diff --git a/.snippets/code/node-operators/appchain-node/rpc-docker/terminal/pulling-docker-image.md b/.snippets/code/node-operators/network-node/rpc-docker/terminal/pulling-docker-image.md similarity index 100% rename from .snippets/code/node-operators/appchain-node/rpc-docker/terminal/pulling-docker-image.md rename to .snippets/code/node-operators/network-node/rpc-docker/terminal/pulling-docker-image.md diff --git a/.snippets/code/node-operators/appchain-node/rpc-systemd/terminal/check-status.md b/.snippets/code/node-operators/network-node/rpc-systemd/terminal/check-status.md similarity index 100% rename from .snippets/code/node-operators/appchain-node/rpc-systemd/terminal/check-status.md rename to .snippets/code/node-operators/network-node/rpc-systemd/terminal/check-status.md diff --git a/.snippets/code/node-operators/appchain-node/rpc-systemd/terminal/journalctl-logs.md b/.snippets/code/node-operators/network-node/rpc-systemd/terminal/journalctl-logs.md similarity index 100% rename from .snippets/code/node-operators/appchain-node/rpc-systemd/terminal/journalctl-logs.md rename to .snippets/code/node-operators/network-node/rpc-systemd/terminal/journalctl-logs.md diff --git a/.snippets/code/node-operators/block-producers/onboarding/account-setup/terminal/generate-session-keys.md b/.snippets/code/node-operators/sequencers/onboarding/account-setup/terminal/generate-session-keys.md similarity index 100% rename from .snippets/code/node-operators/block-producers/onboarding/account-setup/terminal/generate-session-keys.md rename to .snippets/code/node-operators/sequencers/onboarding/account-setup/terminal/generate-session-keys.md diff --git a/.snippets/code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md b/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md similarity index 100% rename from .snippets/code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md rename to .snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md diff --git a/.snippets/code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/terminal/pulling-docker-image.md b/.snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/terminal/pulling-docker-image.md similarity index 100% rename from .snippets/code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/terminal/pulling-docker-image.md rename to .snippets/code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/terminal/pulling-docker-image.md diff --git a/.snippets/code/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-docker/terminal/docker-stop.md b/.snippets/code/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker/terminal/docker-stop.md similarity index 100% rename from .snippets/code/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-docker/terminal/docker-stop.md rename to .snippets/code/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker/terminal/docker-stop.md diff --git a/.snippets/text/node-operators/appchain-node/bootnode-item.md b/.snippets/text/node-operators/network-node/bootnode-item.md similarity index 100% rename from .snippets/text/node-operators/appchain-node/bootnode-item.md rename to .snippets/text/node-operators/network-node/bootnode-item.md diff --git a/.snippets/text/node-operators/appchain-node/fetching-bootnode-section.md b/.snippets/text/node-operators/network-node/fetching-bootnode-section.md similarity index 87% rename from .snippets/text/node-operators/appchain-node/fetching-bootnode-section.md rename to .snippets/text/node-operators/network-node/fetching-bootnode-section.md index 17682932..3a30ad52 100644 --- a/.snippets/text/node-operators/appchain-node/fetching-bootnode-section.md +++ b/.snippets/text/node-operators/network-node/fetching-bootnode-section.md @@ -9,4 +9,4 @@ To do so, take the following steps: 3. Provide your Tanssi appchain ID 4. Click on the **+** sign -![Getting the bootnode](/images/node-operators/appchain-node/rpc-docker-systemd-1.webp) +![Getting the bootnode](/images/node-operators/network-node/rpc-docker-systemd-1.webp) diff --git a/.snippets/text/node-operators/appchain-node/intro.md b/.snippets/text/node-operators/network-node/intro.md similarity index 100% rename from .snippets/text/node-operators/appchain-node/intro.md rename to .snippets/text/node-operators/network-node/intro.md diff --git a/.snippets/text/node-operators/appchain-node/run-flags.md b/.snippets/text/node-operators/network-node/run-flags.md similarity index 100% rename from .snippets/text/node-operators/appchain-node/run-flags.md rename to .snippets/text/node-operators/network-node/run-flags.md diff --git a/.snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-intro.md b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md similarity index 100% rename from .snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-intro.md rename to .snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md diff --git a/.snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-unsafe-note.md b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-unsafe-note.md similarity index 100% rename from .snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-unsafe-note.md rename to .snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-unsafe-note.md diff --git a/.snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/hardware-requirements.md b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/hardware-requirements.md similarity index 100% rename from .snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/hardware-requirements.md rename to .snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/hardware-requirements.md diff --git a/.snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/intro.md b/.snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md similarity index 100% rename from .snippets/text/node-operators/block-producers/onboarding/run-a-block-producer/intro.md rename to .snippets/text/node-operators/sequencers/onboarding/run-a-sequencer/intro.md diff --git a/builders/manage/dapp/.pages b/builders/manage/dapp/.pages index 58027565..10b3a8b9 100644 --- a/builders/manage/dapp/.pages +++ b/builders/manage/dapp/.pages @@ -4,3 +4,5 @@ nav: - index.md - 'Block Production Services Payment': 'services-payment.md' - 'Manage Tokens': 'manage-tokens.md' + # - 'Manage Cross-Chain Communication Channels': 'xcm-channels.md' + # - 'Register External Assets': 'register-external-assets.md' diff --git a/builders/toolkit/ethereum-api/precompiles/.pages b/builders/toolkit/ethereum-api/precompiles/.pages index 847d2068..270696f0 100644 --- a/builders/toolkit/ethereum-api/precompiles/.pages +++ b/builders/toolkit/ethereum-api/precompiles/.pages @@ -5,4 +5,6 @@ nav: - 'Batch': batch.md - 'Call Permit': call-permit.md - 'Native Token ERC-20': erc20.md + # - 'Cross Chain Transfers': cross-chain-transfers.md + # - 'External Assets as ERC-20': external-assets-erc20.md - 'Proxy': proxy.md diff --git a/images/node-operators/appchain-node/rpc-docker-systemd-1.webp b/images/node-operators/network-node/rpc-docker-systemd-1.webp similarity index 100% rename from images/node-operators/appchain-node/rpc-docker-systemd-1.webp rename to images/node-operators/network-node/rpc-docker-systemd-1.webp diff --git a/images/node-operators/appchain-node/rpc-systemd/rpc-systemd-1.webp b/images/node-operators/network-node/rpc-systemd/rpc-systemd-1.webp similarity index 100% rename from images/node-operators/appchain-node/rpc-systemd/rpc-systemd-1.webp rename to images/node-operators/network-node/rpc-systemd/rpc-systemd-1.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-1.webp b/images/node-operators/sequencers/offboarding/account/account-1.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-1.webp rename to images/node-operators/sequencers/offboarding/account/account-1.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-2.webp b/images/node-operators/sequencers/offboarding/account/account-2.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-2.webp rename to images/node-operators/sequencers/offboarding/account/account-2.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-3.webp b/images/node-operators/sequencers/offboarding/account/account-3.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-3.webp rename to images/node-operators/sequencers/offboarding/account/account-3.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-4.webp b/images/node-operators/sequencers/offboarding/account/account-4.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-4.webp rename to images/node-operators/sequencers/offboarding/account/account-4.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-5.webp b/images/node-operators/sequencers/offboarding/account/account-5.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-5.webp rename to images/node-operators/sequencers/offboarding/account/account-5.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-6.webp b/images/node-operators/sequencers/offboarding/account/account-6.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-6.webp rename to images/node-operators/sequencers/offboarding/account/account-6.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-7.webp b/images/node-operators/sequencers/offboarding/account/account-7.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-7.webp rename to images/node-operators/sequencers/offboarding/account/account-7.webp diff --git a/images/node-operators/block-producers/offboarding/account/account-8.webp b/images/node-operators/sequencers/offboarding/account/account-8.webp similarity index 100% rename from images/node-operators/block-producers/offboarding/account/account-8.webp rename to images/node-operators/sequencers/offboarding/account/account-8.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-1.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-1.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-1.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-1.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-2.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-2.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-2.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-2.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-3.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-3.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-3.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-3.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-4.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-4.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-4.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-4.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-5.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-5.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-5.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-5.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-6.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-6.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-6.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-6.webp diff --git a/images/node-operators/block-producers/onboarding/account-setup/setup-7.webp b/images/node-operators/sequencers/onboarding/account-setup/setup-7.webp similarity index 100% rename from images/node-operators/block-producers/onboarding/account-setup/setup-7.webp rename to images/node-operators/sequencers/onboarding/account-setup/setup-7.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-1.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-1.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-1.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-1.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-2.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-2.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-2.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-2.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-3.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-3.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-3.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-3.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-4.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-4.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-4.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-4.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-5.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-5.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-5.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-5.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-6.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-6.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-6.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-6.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-7.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-7.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-7.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-7.webp diff --git a/images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-8.webp b/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-8.webp similarity index 100% rename from images/node-operators/block-producers/operational-tasks/proxy-accounts/proxy-8.webp rename to images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-8.webp diff --git a/learn/appchains/.pages b/learn/appchains/.pages index c53964e9..0dbcd760 100644 --- a/learn/appchains/.pages +++ b/learn/appchains/.pages @@ -1,4 +1,4 @@ -title: Appchains in Tanssi +title: Tanssi-Powered Networks hide: false nav: - index.md diff --git a/learn/appchains/index.md b/learn/appchains/index.md index a317fed2..5931104a 100644 --- a/learn/appchains/index.md +++ b/learn/appchains/index.md @@ -1,9 +1,20 @@ --- -title: Appchain -description: Discover the features in EVM and Substrate appchains deployed through Tanssi, leveraging user-friendly and easy-to-deploy templates for enhanced capabilities. -template: subsection-index-page.html -hide: - - toc - - feedback +title: Learn about Tanssi-Powered Networks +description: Discover the features in EVM and Substrate networks deployed through Tanssi, leveraging user-friendly and easy-to-deploy templates for enhanced capabilities. +icon: octicons-workflow-24 +template: index-page.html --- +# Tanssi-Powered Networks + +Developing a blockchain that balances scalability, efficiency, and customization is a complex task. Tanssi-Powered Networks address these challenges through their integration into Tanssi's modular infrastructure. This section explains the networks' structure, functionality, and unique characteristics in the Tanssi ecosystem. + +Key features of Tanssi-powered networks: + +- **Runtime customization** - adapt transaction types, execution logic, and state transitions to fit your network's specific requirements +- **Transaction efficiency** - optimize transaction fees for scalability and economic sustainability +- **Scalability at its core** - build networks that are prepared to grow alongside your ecosystem + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/learn/appchains/overview.md b/learn/appchains/overview.md index 41c63ea7..45418b4a 100644 --- a/learn/appchains/overview.md +++ b/learn/appchains/overview.md @@ -1,6 +1,7 @@ --- title: Appchain Overview description: Learn the high-level definitions of how a Tanssi appchain works, its architecture, and its block production as a service mechanism with deterministic finality. +icon: octicons-home-24 --- # Tanssi Appchains Overview {: #appchains-tanssi-overview } diff --git a/learn/appchains/runtime-features.md b/learn/appchains/runtime-features.md index 911b579e..f2248219 100644 --- a/learn/appchains/runtime-features.md +++ b/learn/appchains/runtime-features.md @@ -1,6 +1,7 @@ --- title: Core Runtime Features description: Learn about the core features of a Tanssi appchain, the transactions types, how they are executed and included in a block, and the forkless runtime upgrades +icon: octicons-package-24 --- # Core Runtime Features {: #core-runtime-features } diff --git a/learn/appchains/tx-fees.md b/learn/appchains/tx-fees.md index c66a8d91..86f6b0f6 100644 --- a/learn/appchains/tx-fees.md +++ b/learn/appchains/tx-fees.md @@ -1,6 +1,7 @@ --- title: Transaction Fees -description: Learn about the transaction fee mechanism in Tanssi appchains, how it works from a Substrate perspective, and in the Ethereum EVM emulation layer with EIP-1559. +description: Learn about the transaction fee mechanism in Tanssi networks, how it works from a Substrate perspective, and in the Ethereum EVM emulation layer with EIP-1559. +icon: material-piggy-bank-outline --- # Transaction Fees {: #transaction-fees } diff --git a/learn/framework/.pages b/learn/framework/.pages index 75305a08..9c02ec88 100644 --- a/learn/framework/.pages +++ b/learn/framework/.pages @@ -1,8 +1,8 @@ -title: Appchain Development Framework +title: Network Development Framework hide: false nav: - index.md - 'Overview': 'overview.md' - 'Framework Architecture': 'architecture.md' - 'Modularity': 'modules.md' - - 'Native Cross-Chain Communication': 'xcm.md' + # - 'Native Cross-Chain Communication': 'xcm.md' diff --git a/learn/framework/architecture.md b/learn/framework/architecture.md index d9aa26cb..858f24a0 100644 --- a/learn/framework/architecture.md +++ b/learn/framework/architecture.md @@ -1,6 +1,7 @@ --- title: Framework Architecture description: In a Substrate node, two main components are the runtime, which controls the blockchain's state transition, and the client, which manages everything else. +icon: octicons-stack-24 --- # Framework Architecture {: #framework-architecture } diff --git a/learn/framework/index.md b/learn/framework/index.md index 42e99343..b417fa99 100644 --- a/learn/framework/index.md +++ b/learn/framework/index.md @@ -1,9 +1,23 @@ --- title: Appchain Development Framework -description: Learn about the appchain Development Framework, Rust Programming Language, Substrate and its features, including XCM and ready-to-use pallets for your Runtime. -template: subsection-index-page.html -hide: - - toc - - feedback +description: Learn about the network development framework, Rust programming language, Substrate and its features, including XCM and ready-to-use pallets for your runtime. +icon: octicons-code-24 +template: index-page.html --- +# Network Development Framework + +Building a blockchain from scratch is an intricate process that demands deep knowledge of consensus algorithms, cryptography, data structures, governance, and more. Tanssi simplifies this process by leveraging Substrate, a powerful blockchain development framework that provides all the essential components for creating customized blockchains. + +With Substrate’s modular architecture, you can modify runtime characteristics, integrate pre-built modules, or develop new ones based on your network’s specific needs. Tanssi provides the foundation you need to bring your blockchain vision to life. + +Key features of the framework: + +- **Substrate core architecture** - divided into the _core client_, which manages external communications and internal responsibilities like storage, and the _runtime_, which executes transactions and manages state transitions with customizable logic +- **End-user simplicity** - the internal workings of the framework are abstracted for end-users, ensuring seamless interaction through dApps or via RPC endpoints, such as those used by wallets +- **Modular system design** - incorporate pre-built modules or create custom ones to meet specific needs +- **Developer-centric flexibility** - focus on runtime characteristics and use case specifics, allowing you to create a blockchain tailored to your vision without unnecessary complexity + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/learn/framework/modules.md b/learn/framework/modules.md index b9403bed..9f29b20c 100644 --- a/learn/framework/modules.md +++ b/learn/framework/modules.md @@ -1,6 +1,7 @@ --- title: Appchain Modules for your Runtime description: Substrate is a modular blockchain development framework with an extensive set of ready-to-use components to bundle with custom logic into the appchain Runtime. +icon: material-puzzle-outline --- # Appchain Framework Modules {: #appchain-framework-modules } diff --git a/learn/framework/overview.md b/learn/framework/overview.md index c986d878..afb59172 100644 --- a/learn/framework/overview.md +++ b/learn/framework/overview.md @@ -1,6 +1,7 @@ --- title: Appchain Development Framework Overview description: Substrate is a blockchain development framework built in Rust Programming Language that streamlines and speeds up the process of developing new appchains. +icon: octicons-home-24 --- # Appchain Development Framework Overview {: #appchain-dev-framework-overview } diff --git a/learn/index.md b/learn/index.md index b35d954c..da48217b 100644 --- a/learn/index.md +++ b/learn/index.md @@ -1,8 +1,31 @@ --- title: Learn About Tanssi Infrastructure Protocol -description: Learn about Tanssi protocol and how it helps developers to build and deploy appchains by handling infrastructure complexities and providing key integrations. +description: Learn about Tanssi protocol and how it helps developers to build and deploy networks by handling infrastructure complexities and providing key integrations. template: index-page.html -hide: - - toc - - feedback --- + +# Learn + +Launching a decentralized network has traditionally been a challenging and time-consuming process, requiring expertise in infrastructure, security, and operational setup. Tanssi simplifies this journey by removing the complexities and making network deployment fast and accessible. With Tanssi, developers can rely on seamless block production, integration with essential tools, and the flexibility to choose security providers that best fit their blockchain environment, empowering them to focus on innovation rather than technical hurdles. + +This section explores the core elements that define Tanssi as a leading solution for network development. From its modular framework and runtime customization to transaction management and interoperability, Tanssi transforms network development into an accessible and efficient process, drastically reducing time to market while ensuring high performance and scalability. + +Whether you’re starting your journey into decentralized networks or deepening your understanding of Tanssi’s unique capabilities, these documents provide everything you need to understand how Tanssi sets a new standard for network infrastructure. + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: + +## Want to Jump Right into the Action? + +
+
+ +
+ +

Build Your Network

+
+

Learn how to design and customize your network with ready-to-use templates and tools tailored to your technical needs.

+
+
+
diff --git a/learn/tanssi/included-templates.md b/learn/tanssi/included-templates.md index 3081983c..a002ee65 100644 --- a/learn/tanssi/included-templates.md +++ b/learn/tanssi/included-templates.md @@ -1,6 +1,7 @@ --- title: Appchain Templates Included in Tanssi description: Tanssi protocol provides useful templates to start building your appchain, including a ready-to-use EVM template for Ethereum compatibility. +icon: octicons-copy-24 --- # Appchain Templates Included in Tanssi {: #appchain-templates-included-in-tanssi } diff --git a/learn/tanssi/index.md b/learn/tanssi/index.md index 90eed52b..10351b3e 100644 --- a/learn/tanssi/index.md +++ b/learn/tanssi/index.md @@ -1,8 +1,21 @@ --- title: Learn About Tanssi -description: Learn about Tanssi protocol and how it handles infrastructure complexities, making it easy for new appchains to be deployed in the Polkadot Web3 ecosystem. -template: subsection-index-page.html -hide: - - toc - - feedback +description: Learn about Tanssi protocol and how it handles infrastructure complexities, making it easy for new networks to be deployed in the Polkadot Web3 ecosystem. +icon: octicons-star-24 +template: index-page.html --- + +# Learn About Tanssi + +Here, you'll find an overview of Tanssi’s core capabilities that support network development, covering everything from infrastructure and security to essential integrations. + +Key features that set Tanssi apart: + +- **Block production as a service** - Tanssi’s incentivized block producers ensure reliable block creation and network liveness, removing the operational burden from developers +- **Flexible security providers** - choose security solutions tailored to your Tanssi-powered network environment, such as Symbiotic for Ethereum-based chains, enabling shared security without sourcing economic guarantees +- **Time-to-market efficiency** - launch networks in minutes with Tanssi’s comprehensive approach to infrastructure and security, significantly reducing development time +- **Seamless integrations** - Tanssi provides out-of-the-box infrastructure, including wallets, RPC endpoints, and block explorers, streamlining network deployment + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/learn/tanssi/network-features/index.md b/learn/tanssi/network-features/index.md index 178a3056..212748f0 100644 --- a/learn/tanssi/network-features/index.md +++ b/learn/tanssi/network-features/index.md @@ -1,8 +1,14 @@ --- title: Network Features -description: Learn about Tanssi general network features such as Staking, Governance and Treasury, and how each help Tanssi becoming a fully decentralized Appchain orchestrator for the Web3 ecosystem. -template: subsection-index-page.html -hide: - - toc - - feedback +description: Explore Tanssi's network features like staking, governance, and treasury, supporting its role as a decentralized network orchestrator for the Web3 ecosystem. +icon: octicons-cpu-24 +template: index-page.html --- + +# Network Features + +The network features in Tanssi are designed to provide the foundational mechanisms that support decentralization, security, and scalability. From securing networks through staking to future capabilities, this section outlines the core elements that empower Tanssi’s network infrastructure. + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/learn/tanssi/network-features/staking.md b/learn/tanssi/network-features/staking.md index 4a54e153..da613079 100644 --- a/learn/tanssi/network-features/staking.md +++ b/learn/tanssi/network-features/staking.md @@ -1,6 +1,7 @@ --- title: Staking description: Learn how Tanssi implements a novel Staking mechanism to provide a decentralized and trustless set of block producers to all Tanssi-powered appchains +icon: material-hand-coin-outline --- # Tanssi Staking {: #tanssi-staking } diff --git a/learn/tanssi/overview.md b/learn/tanssi/overview.md index af50eee7..3e34e6f7 100644 --- a/learn/tanssi/overview.md +++ b/learn/tanssi/overview.md @@ -1,6 +1,7 @@ --- title: Overview description: Tanssi is an appchain protocol that eases the process of deploying appchains so that developers can focus on their custom application logic. +icon: octicons-home-24 --- # What is Tanssi? {: #what-is-tanssi } diff --git a/learn/tanssi/technical-features.md b/learn/tanssi/technical-features.md index 20558180..bc108a3d 100644 --- a/learn/tanssi/technical-features.md +++ b/learn/tanssi/technical-features.md @@ -1,6 +1,7 @@ --- title: Block Production Services description: Tanssi provides block production services assigning block producers to the appchains, requiring minimal changes to the code for appchains to be deployed. +icon: octicons-gear-24 --- # Technical Features of Tanssi {: #technical-features-of-tanssi } diff --git a/node-operators/.pages b/node-operators/.pages index 31f759a8..05ba09ec 100644 --- a/node-operators/.pages +++ b/node-operators/.pages @@ -2,5 +2,5 @@ title: Node Operators hide: false nav: - index.md - - appchain-node - - block-producers \ No newline at end of file + - network-node + - sequencers \ No newline at end of file diff --git a/node-operators/appchain-node/index.md b/node-operators/appchain-node/index.md deleted file mode 100644 index 1fd99cb0..00000000 --- a/node-operators/appchain-node/index.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: Appchain Nodes -description: Learn how to set up and run a Tanssi appchain node using Docker or Systemd, which allows you to have your own RPC endpoint to interact with your appchain. -template: subsection-index-page.html -hide: - - toc - - feedback ---- - diff --git a/node-operators/block-producers/index.md b/node-operators/block-producers/index.md deleted file mode 100644 index 9550d724..00000000 --- a/node-operators/block-producers/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Tanssi Block Producers -description: Learn how to set up, run, and manage block producers (aka sequencers or collators) to participate in the Tanssi infrastructure protocol and earn rewards. -template: subsection-index-page.html -hide: - - toc - - feedback ---- diff --git a/node-operators/block-producers/offboarding/index.md b/node-operators/block-producers/offboarding/index.md deleted file mode 100644 index 43b319d5..00000000 --- a/node-operators/block-producers/offboarding/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Offboard your Block Producer Node -description: Learn how to properly offboard your Appchain block producer node (also known as sequencers or collators) including clearing session keys and undelegating funds. -template: subsection-index-page.html -hide: - - toc - - feedback ---- diff --git a/node-operators/block-producers/onboarding/index.md b/node-operators/block-producers/onboarding/index.md deleted file mode 100644 index c3524c58..00000000 --- a/node-operators/block-producers/onboarding/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Onboard to Run a Block Producer Node -description: Learn how to get started to run appchain block producer nodes (also known as sequencers or collators) using Docker or Systemd to participate in the protocol. -template: subsection-index-page.html -hide: - - toc - - feedback ---- diff --git a/node-operators/block-producers/onboarding/run-a-block-producer/.pages b/node-operators/block-producers/onboarding/run-a-block-producer/.pages deleted file mode 100644 index 55d2ffb4..00000000 --- a/node-operators/block-producers/onboarding/run-a-block-producer/.pages +++ /dev/null @@ -1,6 +0,0 @@ -title: Run a Block Producer Node -hide: false -nav: - - index.md - - 'Using Docker': 'block-producer-docker.md' - - 'Using Systemd': 'block-producer-systemd.md' diff --git a/node-operators/block-producers/onboarding/run-a-block-producer/index.md b/node-operators/block-producers/onboarding/run-a-block-producer/index.md deleted file mode 100644 index bdbfa1b6..00000000 --- a/node-operators/block-producers/onboarding/run-a-block-producer/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Run Block Producers -description: Learn how to set up and run appchain block producer nodes (also known as sequencers or collators) using Docker or Systemd to participate in the protocol. -template: subsection-index-page.html -hide: - - toc - - feedback ---- diff --git a/node-operators/block-producers/operational-tasks/index.md b/node-operators/block-producers/operational-tasks/index.md deleted file mode 100644 index ad23ba40..00000000 --- a/node-operators/block-producers/operational-tasks/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Block Producer Operational Tasks -description: Learn how to manage your activities as a block producer in the Tanssi appchain protocol, including managing your account, upgrading your node, and more. -template: subsection-index-page.html -hide: - - toc - - feedback ---- diff --git a/node-operators/block-producers/operational-tasks/upgrade-your-node/index.md b/node-operators/block-producers/operational-tasks/upgrade-your-node/index.md deleted file mode 100644 index db33e33a..00000000 --- a/node-operators/block-producers/operational-tasks/upgrade-your-node/index.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Upgrade Block Producers -description: Follow these instructions to update your node to the latest version of the Tanssi client software you use to produce blocks on the Tanssi Appchain protocol. -template: subsection-index-page.html -hide: - - toc - - feedback ---- diff --git a/node-operators/index.md b/node-operators/index.md index 2a1a9264..f16280c8 100644 --- a/node-operators/index.md +++ b/node-operators/index.md @@ -1,8 +1,25 @@ --- -title: Node Operators & Block Producers -description: Learn how to run a Tanssi appchain RPC node or a block producer to participate in the block production mechanism for chains within the Tanssi ecosystem. -template: subsection-index-page.html -hide: - - toc - - feedback +title: Run Infrastructure on Tanssi +description: This section offers guides on setting up infrastructure and nodes for RPC services, block production, and validation within the Tanssi ecosystem. +template: index-page.html --- + +# Node Operators + +Operating nodes is a crucial part of maintaining a blockchain ecosystem, and Tanssi ensures that this process is as seamless as possible. From running network nodes and managing sequencers to onboarding validators, this section provides everything you need to get started and operate efficiently. + +Whether you're setting up for the first time, handling operational tasks, or retiring your node, these guides offer clear and concise instructions to help you maintain secure and reliable operations. + +### Node Types in the Tanssi Ecosystem + +Understanding the roles of different nodes in the Tanssi-powered network helps you choose the right one based on your goals: + +- **Network nodes** - these nodes provide RPC endpoints and data availability services, ensuring smooth data flow and interaction between chains and users +- **Sequencers** - Sequencers are responsible for producing blocks, executing transactions, and maintaining the network's liveness by ensuring its operational continuity + +!!!tip + With this in mind, you can decide whether to set up a network node or become a sequencer depending on your desired level of participation in the Tanssi ecosystem. + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/node-operators/appchain-node/.pages b/node-operators/network-node/.pages similarity index 78% rename from node-operators/appchain-node/.pages rename to node-operators/network-node/.pages index 60f7bbbe..0987e073 100644 --- a/node-operators/appchain-node/.pages +++ b/node-operators/network-node/.pages @@ -1,4 +1,4 @@ -title: Run an Appchain Node +title: Run a Network Node hide: false nav: - index.md diff --git a/node-operators/network-node/index.md b/node-operators/network-node/index.md new file mode 100644 index 00000000..0257a8be --- /dev/null +++ b/node-operators/network-node/index.md @@ -0,0 +1,17 @@ +--- +title: Run a Node on a Tanssi-Powered Network +description: Learn how to set up and run a node on a Tanssi-powered network using Docker or Systemd, which allows you to host your own RPC endpoint for chain interaction. +icon: octicons-globe-24 +template: index-page.html +--- + +# Run a Network Node + +Setting up a network node is essential for interacting with your Tanssi-powered network, providing a secure and dedicated RPC endpoint. This section offers step-by-step guides to help you deploy and manage your node effectively. + +- **Using Docker** - instructions to set up your node in a containerized environment for easy deployment and isolation +- **Using Systemd** - guidance for configuring your node as a service, enabling automated management and system integration + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/node-operators/appchain-node/rpc-docker.md b/node-operators/network-node/rpc-docker.md similarity index 87% rename from node-operators/appchain-node/rpc-docker.md rename to node-operators/network-node/rpc-docker.md index b576f378..81390b0e 100644 --- a/node-operators/appchain-node/rpc-docker.md +++ b/node-operators/network-node/rpc-docker.md @@ -1,13 +1,14 @@ --- -title: Run an RPC Node Using Docker -description: Learn how to set up and run a Tanssi appchain node using Docker, which allows you to have your own RPC endpoint to interact with your appchain. +title: Run a Network Node Using Docker +description: Discover how to configure and operate a Tanssi-powered network node using Docker, enabling you to host your own RPC endpoint for interaction with your chain. +icon: material-docker --- # Run an Appchain Node Using Docker ## Introduction {: #introduction } ---8<-- 'text/node-operators/appchain-node/intro.md' +--8<-- 'text/node-operators/network-node/intro.md' In this guide, you'll learn how to quickly spin up a Tanssi appchain node using [Docker](https://www.docker.com){target=\_blank} on a Linux computer. However, it can be adapted to other operating systems. @@ -38,7 +39,7 @@ docker pull moondancelabs/dancebox-container-chain-evm-templates The command will download and extract the image and show the status upon execution: ---8<-- 'code/node-operators/appchain-node/rpc-docker/terminal/pulling-docker-image.md' +--8<-- 'code/node-operators/network-node/rpc-docker/terminal/pulling-docker-image.md' ### Simple Substrate Appchains {: #pulling-substrate-docker-image } @@ -55,7 +56,7 @@ The command will download and extract the image and show the status upon executi To spin up your node, you must run the Docker image with the `docker run` command. Note that you'll need to modify the following parameters: - `Appchain ID` - replace `YOUR_APPCHAIN_ID` with your Tanssi appchain ID within the `--chain` command. This ID was obtained during the [third step of the appchain deployment process](/builders/deploy/dapp/#reserve-appchain-id){target=\_blank} and can be retrieved from the dashboard on the [dApp](https://apps.tanssi.network){target=\_blank}. For example, `3001` ---8<-- 'text/node-operators/appchain-node/bootnode-item.md' +--8<-- 'text/node-operators/network-node/bootnode-item.md' --8<-- 'text/node-operators/optimized-binaries-note.md' @@ -66,7 +67,7 @@ To spin up your node, you must run the Docker image with the `docker run` comman ```bash docker run -ti moondancelabs/dancebox-container-chain-evm-templates \ /chain-network/container-chain-frontier-node \ - --8<-- 'code/node-operators/appchain-node/rpc-docker/docker-command.md' + --8<-- 'code/node-operators/network-node/rpc-docker/docker-command.md' ``` === "Intel Skylake" @@ -74,7 +75,7 @@ To spin up your node, you must run the Docker image with the `docker run` comman ```bash docker run -ti moondancelabs/dancebox-container-chain-evm-templates \ /chain-network/container-chain-frontier-node-skylake \ - --8<-- 'code/node-operators/appchain-node/rpc-docker/docker-command.md' + --8<-- 'code/node-operators/network-node/rpc-docker/docker-command.md' ``` === "AMD Zen3" @@ -82,7 +83,7 @@ To spin up your node, you must run the Docker image with the `docker run` comman ```bash docker run -ti moondancelabs/dancebox-container-chain-evm-templates \ /chain-network/container-chain-frontier-node-znver3 \ - --8<-- 'code/node-operators/appchain-node/rpc-docker/docker-command.md' + --8<-- 'code/node-operators/network-node/rpc-docker/docker-command.md' ``` === "Simple Substrate Appchain" @@ -92,7 +93,7 @@ To spin up your node, you must run the Docker image with the `docker run` comman ```bash docker run -ti moondancelabs/dancebox-container-chain-simple-templates \ /chain-network/container-chain-simple-node \ - --8<-- 'code/node-operators/appchain-node/rpc-docker/docker-command.md' + --8<-- 'code/node-operators/network-node/rpc-docker/docker-command.md' ``` === "Intel Skylake" @@ -100,7 +101,7 @@ To spin up your node, you must run the Docker image with the `docker run` comman ```bash docker run -ti moondancelabs/dancebox-container-chain-simple-templates \ /chain-network/container-chain-simple-node-skylake \ - --8<-- 'code/node-operators/appchain-node/rpc-docker/docker-command.md' + --8<-- 'code/node-operators/network-node/rpc-docker/docker-command.md' ``` === "AMD Zen3" @@ -108,13 +109,13 @@ To spin up your node, you must run the Docker image with the `docker run` comman ```bash docker run -ti moondancelabs/dancebox-container-chain-simple-templates \ /chain-network/container-chain-simple-node-znver3 \ - --8<-- 'code/node-operators/appchain-node/rpc-docker/docker-command.md' + --8<-- 'code/node-operators/network-node/rpc-docker/docker-command.md' ``` !!! note Only the historical state of the last 256 finalized blocks are kept in the local database by default. To run a full archive node, you must set the `--state-pruning archive` flag. More information is in the [flags section](#run-flags). ---8<-- 'text/node-operators/appchain-node/fetching-bootnode-section.md' +--8<-- 'text/node-operators/network-node/fetching-bootnode-section.md' ### Full Node Example for Demo EVM Appchain {: #example-demo-evm-appchain } @@ -149,7 +150,7 @@ docker run -ti moondancelabs/dancebox-container-chain-evm-templates \ The flags used in the `docker run` command can be adjusted according to your preferences and hardware configuration. The following ones are some of the most note-worthy: ---8<-- 'text/node-operators/appchain-node/run-flags.md' +--8<-- 'text/node-operators/network-node/run-flags.md' ```bash docker run -ti moondancelabs/dancebox-container-chain-evm-templates \ diff --git a/node-operators/appchain-node/rpc-systemd.md b/node-operators/network-node/rpc-systemd.md similarity index 94% rename from node-operators/appchain-node/rpc-systemd.md rename to node-operators/network-node/rpc-systemd.md index 4271a541..e43d5690 100644 --- a/node-operators/appchain-node/rpc-systemd.md +++ b/node-operators/network-node/rpc-systemd.md @@ -1,13 +1,14 @@ --- -title: Run an RPC Node Using Systemd -description: Learn how to set up and run a Tanssi appchain node using Systemd, which allows you to have your own RPC endpoint to interact with your appchain. +title: Run a Network Node Using Systemd +description: Learn how to set up and run a Tanssi-powered network node using Systemd, which allows you to have your own RPC endpoint to interact with your chain. +icon: simple-linux --- # Run an Appchain Node Using Systemd ## Introduction {: #introduction } ---8<-- 'text/node-operators/appchain-node/intro.md' +--8<-- 'text/node-operators/network-node/intro.md' In this guide, you'll learn how to spin up a Tanssi appchain node using a binary executable file and manage the service with [Systemd](https://systemd.io){target=\_blank} on Linux systems. @@ -24,7 +25,7 @@ To get started, you'll need access to a computer running an Ubuntu Linux OS and - **Appchain specifications file** - the appchain specification file is needed to run the node. You can download it from the dashboard in the [dApp](https://apps.tanssi.network){target=\_blank} by clicking the **Appchain Data** link - ![Getting the chain specs](/images/node-operators/appchain-node/rpc-systemd/rpc-systemd-1.webp) + ![Getting the chain specs](/images/node-operators/network-node/rpc-systemd/rpc-systemd-1.webp) - **Relay chain specifications file** - the relay chain specification file can be downloaded from this [public GitHub repository](https://github.com/papermoonio/external-files/blob/main/Moonbeam/Moonbase-Alpha){target=\_blank} @@ -105,7 +106,7 @@ Now, you can open the file using your favorite text editor (vim, emacs, nano, et Note that the `ExecStart` command has some parameters that need to be changed to match your specific appchain: - `Specification file` - replace `YOUR_APPCHAIN_SPECS_FILE_LOCATION` with your appchain's absolute path. If you copied the file in the same directory as the binary file and the relay chain specs, then your path will look like `/var/lib/appchain-data/YOUR_FILENAME.json`, e.g., `/var/lib/appchain-data/spec-raw.json` ---8<-- 'text/node-operators/appchain-node/bootnode-item.md' +--8<-- 'text/node-operators/network-node/bootnode-item.md' === "EVM-Compatible Appchain" @@ -187,7 +188,7 @@ Note that the `ExecStart` command has some parameters that need to be changed t WantedBy=multi-user.target ``` ---8<-- 'text/node-operators/appchain-node/fetching-bootnode-section.md' +--8<-- 'text/node-operators/network-node/fetching-bootnode-section.md' ### Full Node Configuration Example for the Demo EVM Appchain {: #example-demo-evm-appchain} @@ -239,7 +240,7 @@ WantedBy=multi-user.target The flags used in the `ExecStart` command can be adjusted according to your preferences and hardware configuration. The following ones are some of the most note-worthy: ---8<-- 'text/node-operators/appchain-node/run-flags.md' +--8<-- 'text/node-operators/network-node/run-flags.md' === "EVM-compatible Appchain" @@ -268,7 +269,7 @@ You can verify that the service is up and running correctly running: systemctl status appchain.service ``` ---8<-- 'code/node-operators/appchain-node/rpc-systemd/terminal/check-status.md' +--8<-- 'code/node-operators/network-node/rpc-systemd/terminal/check-status.md' And check the logs, if needed, with the following command: @@ -276,4 +277,4 @@ And check the logs, if needed, with the following command: journalctl -f -u appchain.service ``` ---8<-- 'code/node-operators/appchain-node/rpc-systemd/terminal/journalctl-logs.md' +--8<-- 'code/node-operators/network-node/rpc-systemd/terminal/journalctl-logs.md' diff --git a/node-operators/block-producers/.pages b/node-operators/sequencers/.pages similarity index 78% rename from node-operators/block-producers/.pages rename to node-operators/sequencers/.pages index 8b098aaf..2f7c5e7a 100644 --- a/node-operators/block-producers/.pages +++ b/node-operators/sequencers/.pages @@ -1,4 +1,4 @@ -title: Block Producers +title: Sequencers hide: false nav: - index.md diff --git a/node-operators/sequencers/index.md b/node-operators/sequencers/index.md new file mode 100644 index 00000000..51cc370b --- /dev/null +++ b/node-operators/sequencers/index.md @@ -0,0 +1,14 @@ +--- +title: Tanssi Sequencers +description: Learn how to set up, run, and manage Sequencers (block producers) to participate in the Tanssi infrastructure protocol and earn rewards. +icon: octicons-server-24 +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. + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/node-operators/block-producers/offboarding/.pages b/node-operators/sequencers/offboarding/.pages similarity index 100% rename from node-operators/block-producers/offboarding/.pages rename to node-operators/sequencers/offboarding/.pages diff --git a/node-operators/block-producers/offboarding/account.md b/node-operators/sequencers/offboarding/account.md similarity index 89% rename from node-operators/block-producers/offboarding/account.md rename to node-operators/sequencers/offboarding/account.md index 4e9a8a26..3f277170 100644 --- a/node-operators/block-producers/offboarding/account.md +++ b/node-operators/sequencers/offboarding/account.md @@ -1,6 +1,7 @@ --- -title: Decommission Block Producer +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. +icon: octicons-arrow-down-right-24 --- # Offboard as a Tanssi Block Producer @@ -9,7 +10,7 @@ description: In these step-by-step instructions, learn how to properly offboard 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. -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/block-producers/onboarding/run-a-block-producer/){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 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}. ## Request Undelegation {: #request-undelegation } @@ -26,7 +27,7 @@ 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/block-producers/offboarding/account/account-1.webp) +![Check existing stake on Polkadot.js Apps](/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. @@ -45,7 +46,7 @@ Head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.d 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/block-producers/offboarding/account/account-2.webp) +![Create and submit an extrinsic to un-delegate on Polkadot.js Apps](/images/node-operators/sequencers/offboarding/account/account-2.webp) ### Execute the Pending Request {: #execute-pending-request } @@ -60,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/block-producers/offboarding/account/account-3.webp) +![Query the pending undelegation request on Polkadot.js Apps](/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. @@ -71,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/block-producers/offboarding/account/account-4.webp) +![Query the current session index on Polkadot.js Apps](/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: @@ -84,7 +85,7 @@ 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/block-producers/offboarding/account/account-5.webp) +![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) ### Verify That Your Account Is Not in the List of Eligible Candidates {: #verify } @@ -94,13 +95,13 @@ If you'd like, you can verify that your block-producing node is no longer in the 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/block-producers/offboarding/account/account-6.webp) +![Query the current list of eligible candidates on Polkadot.js Apps](/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. -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/block-producers/onboarding/account-setup/#map-session-keys){target=\_blank}. You should not purge your keys during the session key rotation process. +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: @@ -109,7 +110,7 @@ To unmap your session keys, head to [Polkadot.js Apps](https://polkadot.js.org/a 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/block-producers/offboarding/account/account-7.webp) +![Unmap session keys on Polkadot.js Apps](/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: @@ -120,6 +121,6 @@ Using the `session.keyOwner` method, you can verify that your session keys have 5. Click the **+** button next to the extrinsic field 6. The query should return none -![Verifying Unmapping was successful](/images/node-operators/block-producers/offboarding/account/account-8.webp) +![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/block-producers/onboarding/account-setup/){target=\_blank}. +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}. diff --git a/node-operators/sequencers/offboarding/index.md b/node-operators/sequencers/offboarding/index.md new file mode 100644 index 00000000..2d93ca82 --- /dev/null +++ b/node-operators/sequencers/offboarding/index.md @@ -0,0 +1,22 @@ +--- +title: Offboard Your Sequencer Node +description: Learn how to properly offboard your Sequencer node (also known as block producers) including clearing session keys and undelegating funds. +icon: octicons-arrow-down-right-24 +template: index-page.html +--- + +## Offboarding + +Stepping down as a sequencer requires following the proper procedures to ensure a smooth transition. This section provides clear instructions to unmap your session keys and undelegate your self-bonded stake, allowing you to safely reclaim your funds and disconnect your account from the network. + +What you’ll learn: + +- **Removing your self-delegation** - steps to remove your self-bonded stake and ensure your sequencer is no longer listed as an eligible participant +- **Unmapping session keys** - how to unmap your session keys, properly severing the connection between your node and your account + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: + +!!! tip "Rejoining as a Sequencer" + If you decide to return as a Tanssi sequencer in the future, you can easily onboard again by following the steps outlined in the [Onboarding](/node-operators/sequencers/onboarding/) guide. \ No newline at end of file diff --git a/node-operators/block-producers/onboarding/.pages b/node-operators/sequencers/onboarding/.pages similarity index 78% rename from node-operators/block-producers/onboarding/.pages rename to node-operators/sequencers/onboarding/.pages index 423e228b..c1615f42 100644 --- a/node-operators/block-producers/onboarding/.pages +++ b/node-operators/sequencers/onboarding/.pages @@ -2,5 +2,5 @@ title: Onboarding hide: false nav: - index.md - - run-a-block-producer + - run-a-sequencer - 'Set Up Your Account': 'account-setup.md' \ No newline at end of file diff --git a/node-operators/block-producers/onboarding/account-setup.md b/node-operators/sequencers/onboarding/account-setup.md similarity index 91% rename from node-operators/block-producers/onboarding/account-setup.md rename to node-operators/sequencers/onboarding/account-setup.md index c3b83d4d..0db9e208 100644 --- a/node-operators/block-producers/onboarding/account-setup.md +++ b/node-operators/sequencers/onboarding/account-setup.md @@ -1,6 +1,7 @@ --- title: Setup an Account to Produce Blocks description: Follow these step-by-step instructions on becoming eligible to produce blocks on Tanssi and Tanssi appchains and setting up your account for rewards payouts. +icon: octicons-person-add-24 --- # Set Up Your Account to Produce Blocks on Tanssi @@ -9,9 +10,9 @@ description: Follow these step-by-step instructions on becoming eligible to prod Before you can start producing blocks on Tanssi and Tanssi appchains, you'll need to set up your account and establish your eligibility. -You must have spun up a [block-producing node](/node-operators/block-producers/onboarding/run-a-block-producer/){target=\_blank} to tackle the account setup steps in this guide. +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'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/block-producers/operational-tasks/proxy-accounts/){target=\_blank} for additional security. +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. @@ -41,7 +42,7 @@ You will need to create session keys for your primary and backup servers. Each o ### Generate Session Keys {: #generate-session-keys } -Before generating session keys, you must be [running a block-producing node](/node-operators/block-producers/onboarding/run-a-block-producer/){target=\_blank}. +Before generating session keys, you must be [running a block-producing 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: @@ -58,7 +59,7 @@ curl http://127.0.0.1:9944 -H \ Your hex-encoded session keys will be printed to the terminal in the `"result"` field. ---8<-- 'code/node-operators/block-producers/onboarding/account-setup/terminal/generate-session-keys.md' +--8<-- 'code/node-operators/sequencers/onboarding/account-setup/terminal/generate-session-keys.md' Make sure you write down your session keys; you'll need to map your session keys to your account in the next section. @@ -72,7 +73,7 @@ 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/block-producers/onboarding/account-setup/setup-1.webp) +![Create and submit an extrinsic 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: @@ -82,7 +83,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/block-producers/onboarding/account-setup/setup-2.webp) +![Create and submit query to verify session keys on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-2.webp) ## Submit Self-Delegation {: #submit-self-delegation } @@ -103,7 +104,7 @@ Head to [Polkadot.js Apps](https://polkadot.js.org/apps/?rpc=wss://{{ networks.d 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/block-producers/onboarding/account-setup/setup-3.webp) +![Create and submit an extrinsic to self-delegate on Polkadot.js Apps](/images/node-operators/sequencers/onboarding/account-setup/setup-3.webp) ### Execute the Pending Request {: #execute-pending-request } @@ -115,7 +116,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/block-producers/onboarding/account-setup/setup-4.webp) +![Query the pending self-delegation request on Polkadot.js Apps](/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. @@ -127,7 +128,7 @@ 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/block-producers/onboarding/account-setup/setup-5.webp) +![Query the current session index on Polkadot.js Apps](/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: @@ -139,7 +140,7 @@ If the request can be executed, select **Extrinsics** from the **Developer** dro 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/block-producers/onboarding/account-setup/setup-6.webp) +![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) Now, you have completed all of the necessary account setup to be eligible to produce blocks! @@ -151,6 +152,6 @@ If you've followed all of the steps in this guide and have fully synced your blo 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/block-producers/onboarding/account-setup/setup-7.webp) +![Query the current list of eligible candidates on Polkadot.js Apps](/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 appchain and Tanssi](#important-variables). diff --git a/node-operators/sequencers/onboarding/index.md b/node-operators/sequencers/onboarding/index.md new file mode 100644 index 00000000..8a13d1ab --- /dev/null +++ b/node-operators/sequencers/onboarding/index.md @@ -0,0 +1,24 @@ +--- +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. +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. + +Getting Started as a Sequencer: + +- **Hardware requirements** - understand the recommended hardware specifications to ensure optimal performance of your [sequencer](/node-operators/sequencers/onboarding/run-a-sequencer/) node +- **Port configuration** - learn which network ports need to be open to facilitate proper communication within the Tanssi ecosystem +- **Session keys setup** - detailed instructions on generating and managing session keys, a vital step for enabling block production capabilities +- **Docker and systemd deployment** - choose between Docker and systemd for deploying your node, with step-by-step guides tailored for each method + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: + + + diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/.pages b/node-operators/sequencers/onboarding/run-a-sequencer/.pages new file mode 100644 index 00000000..c69fc0f9 --- /dev/null +++ b/node-operators/sequencers/onboarding/run-a-sequencer/.pages @@ -0,0 +1,6 @@ +title: Run a Sequencer +hide: false +nav: + - index.md + - 'Using Docker': 'sequencers-docker.md' + - 'Using Systemd': 'sequencers-systemd.md' diff --git a/node-operators/sequencers/onboarding/run-a-sequencer/index.md b/node-operators/sequencers/onboarding/run-a-sequencer/index.md new file mode 100644 index 00000000..4f613e82 --- /dev/null +++ b/node-operators/sequencers/onboarding/run-a-sequencer/index.md @@ -0,0 +1,38 @@ +--- +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. +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. + +### Hardware Requirements + +To run a sequencer node successfully, using high-performance hardware is essential. Suboptimal configurations can lead to delays, missed authoring rounds, and lost rewards. Since the block production and import process relies heavily on single-threaded performance, prioritizing CPUs with strong single-thread capabilities over higher core counts is recommended. + +Recommended Hardware: + +- **Recommended CPUs** - Intel Xeon E-2386/2388 or Ryzen 9 5950x/5900x +- **Recommended NVMe** - 1 TB NVMe +- **Recommended RAM** - 32 GB RAM + +!!! warning + As a sequencer, you are responsible for both your own stake and that of your delegators. Maintaining your node's performance, keeping it updated, and ensuring its security are critical for maximizing rewards and building a strong reputation within the Tanssi network. + +### 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: + +| Network | Port | +|---------------------|--------------| +| Tanssi Chain | 30333 (TCP) | +| Relay Chain | 30334 (TCP) | +| Assigned Network | 30335 (TCP) | + + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: diff --git a/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md similarity index 79% rename from node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker.md rename to node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md index e83c31a6..c821e6fa 100644 --- a/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker.md @@ -1,18 +1,17 @@ --- -title: Run a Block Producer Using Docker -description: Learn how to set up and run a block producer (aka collator or sequencer) for Tanssi appchains using Docker to participate in the protocol and earn rewards. +title: Run a Sequencer Using Docker +description: Learn how to set up and run a Sequencer (aka block producer) for Tanssi-powered networks using Docker to participate in the protocol and earn rewards. +icon: simple-docker --- # Run a Block Producer in Tanssi Using Docker ## Introduction {: #introduction } ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/intro.md' +--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. ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/hardware-requirements.md' - ## Checking Prerequisites {: #checking-prerequisites } --8<-- 'text/node-operators/installing-docker.md' @@ -31,7 +30,7 @@ docker pull moondancelabs/tanssi The command will download and extract the image and show the status upon execution: ---8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/terminal/pulling-docker-image.md' +--8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/terminal/pulling-docker-image.md' ### Setup the Data Directory {: #setup-data-directory } @@ -60,7 +59,7 @@ sudo chown -R $(id -u):$(id -g) /var/lib/dancebox ### Generate the Node Key {: #generate-node-key } ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-intro.md' +--8<-- 'text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md' ```bash docker run --network="host" -v "/var/lib/dancebox:/data" \ @@ -68,7 +67,7 @@ docker run --network="host" -v "/var/lib/dancebox:/data" \ moondancelabs/tanssi key generate-node-key --file /data/node-key ``` ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-unsafe-note.md' +--8<-- 'text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-unsafe-note.md' ## Start-Up Command {: #start-up-command } @@ -90,7 +89,7 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ moondancelabs/tanssi \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` === "Intel Skylake" @@ -100,7 +99,7 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO -u $(id -u ${USER}):$(id -g ${USER}) \ --entrypoint "/tanssi/tanssi-node-skylake" \ moondancelabs/tanssi \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` === "AMD Zen3" @@ -109,14 +108,14 @@ Name each of the sections with a human-readable name by replacing the `INSERT_YO -u $(id -u ${USER}):$(id -g ${USER}) \ --entrypoint "/tanssi/tanssi-node-znver3" \ moondancelabs/tanssi \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` ### Run Flags {: #run-flags } The flags used in the `docker run` command can be adjusted according to your preferences and hardware configuration. The following ones are some of the most note-worthy: ---8<-- 'text/node-operators/appchain-node/run-flags.md' +--8<-- 'text/node-operators/network-node/run-flags.md' ```bash docker run -ti moondancelabs/tanssi --help diff --git a/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-systemd.md b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md similarity index 87% rename from node-operators/block-producers/onboarding/run-a-block-producer/block-producer-systemd.md rename to node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md index 2de5635e..f1ed9ca4 100644 --- a/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-systemd.md +++ b/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-systemd.md @@ -1,20 +1,19 @@ --- -title: Run a Tanssi Block Producer -description: Learn how to set up and run block producers (collators) for Tanssi appchains using Systemd, allowing you to participate in the protocol and earn rewards. +title: Run a Tanssi Sequencer +description: Learn how to set up and run a sequencer (block producer) node for Tanssi networks using Systemd, allowing you to participate in the protocol and earn rewards. +icon: simple-linux --- # Run a Block Producer Node Using Systemd ## Introduction {: #introduction } ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/intro.md' +--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. 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. ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/hardware-requirements.md' - ## Checking Prerequisites {: #checking-prerequisites } To get started, you'll need access to a computer running an Ubuntu Linux OS and root privileges. You will also need: @@ -80,13 +79,13 @@ mv ./tanssi-node /var/lib/tanssi-data ### Generate the Node Key {: #generate-node-key } ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-intro.md' +--8<-- 'text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-intro.md' ```bash /var/lib/tanssi-data/tanssi-node key generate-node-key --file /var/lib/tanssi-data/node-key ``` ---8<-- 'text/node-operators/block-producers/onboarding/run-a-block-producer/generate-node-key-unsafe-note.md' +--8<-- 'text/node-operators/sequencers/onboarding/run-a-sequencer/generate-node-key-unsafe-note.md' ### Create the Systemd Service Configuration File {: #create-systemd-configuration } @@ -147,7 +146,7 @@ WantedBy=multi-user.target The flags used in the ExecStart command can be adjusted according to your preferences and hardware configuration. The following ones are some of the most note-worthy: ---8<-- 'text/node-operators/appchain-node/run-flags.md' +--8<-- 'text/node-operators/network-node/run-flags.md' ```bash /var/lib/tanssi-data/tanssi-node --help @@ -168,7 +167,7 @@ You can verify that the service is up and running correctly running: systemctl status tanssi.service ``` ---8<-- 'code/node-operators/appchain-node/rpc-systemd/terminal/check-status.md' +--8<-- 'code/node-operators/network-node/rpc-systemd/terminal/check-status.md' And check the logs, if needed, with the following command: diff --git a/node-operators/block-producers/operational-tasks/.pages b/node-operators/sequencers/operational-tasks/.pages similarity index 100% rename from node-operators/block-producers/operational-tasks/.pages rename to node-operators/sequencers/operational-tasks/.pages diff --git a/node-operators/sequencers/operational-tasks/index.md b/node-operators/sequencers/operational-tasks/index.md new file mode 100644 index 00000000..b8d828ee --- /dev/null +++ b/node-operators/sequencers/operational-tasks/index.md @@ -0,0 +1,15 @@ +--- +title: Sequencers Operational Tasks +description: Learn how to manage your activities as a sequencer in the Tanssi network protocol, including managing your account, upgrading your node, and more. +icon: octicons-arrow-switch-24 +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. + + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: \ No newline at end of file diff --git a/node-operators/block-producers/operational-tasks/proxy-accounts.md b/node-operators/sequencers/operational-tasks/proxy-accounts.md similarity index 87% rename from node-operators/block-producers/operational-tasks/proxy-accounts.md rename to node-operators/sequencers/operational-tasks/proxy-accounts.md index b5ee46ea..f8d03dad 100644 --- a/node-operators/block-producers/operational-tasks/proxy-accounts.md +++ b/node-operators/sequencers/operational-tasks/proxy-accounts.md @@ -1,6 +1,7 @@ --- -title: Set Up a Block Producer Proxy Account -description: Follow these step-by-step instructions to configure a proxy account to manage block producer activities on behalf of your primary block producer account. +title: Set Up a Sequencer Proxy Account +description: Follow these step-by-step instructions to configure a proxy account to manage sequencer activities on behalf of your primary sequencer account. +icon: octicons-shield-lock-24 --- # Set Up a Proxy Account @@ -42,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/block-producers/operational-tasks/proxy-accounts/proxy-1.webp) +![Add a proxy account from the Extrinsics page of Polkadot.js Apps.](/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. @@ -51,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/block-producers/operational-tasks/proxy-accounts/proxy-2.webp) +![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) !!! 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/block-producers/operational-tasks/proxy-accounts/proxy-3.webp) +![Add a proxy account from the Accounts page of Polkadot.js Apps](/images/node-operators/sequencers/operational-tasks/proxy-accounts/proxy-3.webp) Then, take the following steps: @@ -66,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/block-producers/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. @@ -81,17 +82,17 @@ 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/block-producers/operational-tasks/proxy-accounts/proxy-5.webp) +![Verify your proxy accounts via the Extrinsics page of Polkadot.js Apps.](/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/block-producers/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/block-producers/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 } @@ -111,11 +112,11 @@ 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/block-producers/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/block-producers/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/block-producers/onboarding/account-setup/#map-session-keys){target=\_blank} via proxy. +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. -After you've mapped your session keys and executed the pending delegation request, you can [verify that your block producer is in the list of eligible candidates](/node-operators/block-producers/onboarding/account-setup/#verify){target=\_blank}. +After you've mapped your session keys and executed the pending delegation request, you can [verify that your block producer is in the list of eligible candidates](/node-operators/sequencers/onboarding/account-setup/#verify){target=\_blank}. That's it! You've successfully executed a transaction using a proxy account on behalf of your primary block producer account. diff --git a/node-operators/block-producers/operational-tasks/upgrade-your-node/.pages b/node-operators/sequencers/operational-tasks/upgrade-your-node/.pages similarity index 100% rename from node-operators/block-producers/operational-tasks/upgrade-your-node/.pages rename to node-operators/sequencers/operational-tasks/upgrade-your-node/.pages diff --git a/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md new file mode 100644 index 00000000..3d7b1f1c --- /dev/null +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/index.md @@ -0,0 +1,19 @@ +--- +title: Upgrade Sequencers Node +description: Follow these steps to update your node to the latest version of the Tanssi client software, ensuring seamless block production on the Tanssi network protocol. +icon: octicons-rocket-24 +template: index-page.html +--- + +# Upgrade Sequencers Node + +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. + + 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. + +## Explore What This Section Covers + +:::INSERT_GENERATED_CARDS::: diff --git a/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-docker.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md similarity index 77% rename from node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-docker.md rename to node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md index 062bc5b1..0d795ecd 100644 --- a/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-docker.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker.md @@ -1,6 +1,7 @@ --- -title: Upgrade Your Block Producer Docker Node -description: Follow these instructions to update your Tanssi block producer node running via Systemd to the latest version of the Tanssi client software. +title: Upgrade Your Sequencer Docker Node +description: Follow these instructions to update your Tanssi Sequencer node running via Docker to the latest version of the Tanssi client software. +icon: simple-docker --- # Upgrade Your Node Running via Docker @@ -9,7 +10,7 @@ description: Follow these instructions to update your Tanssi block producer node 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. -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/block-producers/onboarding/run-a-block-producer/block-producer-docker/){target=\_blank}. +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}. ## Upgrading Docker Nodes {: #upgrading-docker-nodes } @@ -29,7 +30,7 @@ docker stop INSERT_YOUR_CONTAINER_ID Your terminal interaction will resemble the following: ---8<-- 'code/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-docker/terminal/docker-stop.md' +--8<-- 'code/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-docker/terminal/docker-stop.md' To restart the node, you can use the command you used when launching your block producer node. The Docker command is configured to automatically retrieve the latest version. The node will resume syncing blocks from where it left off when the Docker process was stopped. @@ -39,7 +40,7 @@ To restart the node, you can use the command you used when launching your block docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ moondancelabs/tanssi \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` === "Intel Skylake" @@ -49,7 +50,7 @@ To restart the node, you can use the command you used when launching your block -u $(id -u ${USER}):$(id -g ${USER}) \ --entrypoint "/tanssi/tanssi-node-skylake" \ moondancelabs/tanssi \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` === "AMD Zen3" @@ -58,7 +59,7 @@ To restart the node, you can use the command you used when launching your block -u $(id -u ${USER}):$(id -g ${USER}) \ --entrypoint "/tanssi/tanssi-node-znver3" \ moondancelabs/tanssi \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` ### Specifying a Version Tag {: #specifying-a-version-tag } @@ -73,7 +74,7 @@ The complete commands with specific version tags are thus as follows: docker run --network="host" -v "/var/lib/dancebox:/data" \ -u $(id -u ${USER}):$(id -g ${USER}) \ moondancelabs/tanssi:{{ networks.dancebox.client_version }} \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` === "Intel Skylake" @@ -83,7 +84,7 @@ The complete commands with specific version tags are thus as follows: -u $(id -u ${USER}):$(id -g ${USER}) \ --entrypoint "/tanssi/tanssi-node-skylake" \ moondancelabs/tanssi:{{ networks.dancebox.client_version }} \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` === "AMD Zen3" @@ -93,7 +94,7 @@ The complete commands with specific version tags are thus as follows: -u $(id -u ${USER}):$(id -g ${USER}) \ --entrypoint "/tanssi/tanssi-node-znver3" \ moondancelabs/tanssi:{{ networks.dancebox.client_version }} \ - --8<-- 'code/node-operators/block-producers/onboarding/run-a-block-producer/block-producer-docker/docker-command.md' + --8<-- 'code/node-operators/sequencers/onboarding/run-a-sequencer/sequencers-docker/docker-command.md' ``` And that's it! You've successfully upgraded your Tanssi node. diff --git a/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-systemd.md b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md similarity index 90% rename from node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-systemd.md rename to node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md index dc726d3f..df9d5573 100644 --- a/node-operators/block-producers/operational-tasks/upgrade-your-node/upgrade-systemd.md +++ b/node-operators/sequencers/operational-tasks/upgrade-your-node/upgrade-systemd.md @@ -1,6 +1,7 @@ --- -title: Upgrade Your Block Producer Systemd Node -description: Follow these instructions to update your Tanssi block producer node running via Systemd to the latest version of the Tanssi client software. +title: Upgrade Your Sequencer Systemd Node +description: Follow these instructions to update your Tanssi Sequencer node running via Systemd to the latest version of the Tanssi client software. +icon: simple-linux --- # Upgrade Your Node Running via Systemd @@ -9,7 +10,7 @@ description: Follow these instructions to update your Tanssi block producer node 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. -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/block-producers/onboarding/run-a-block-producer/block-producer-systemd/){target=\_blank}. +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}. ## Upgrading Your Systemd Node {: #upgrading-your-systemd-node }