From 8e9e12c351890be9dcb3abc111692a209d2a1e69 Mon Sep 17 00:00:00 2001 From: Jamie Date: Fri, 7 Aug 2026 17:12:37 +0800 Subject: [PATCH] Remove atlantic docs Signed-off-by: Jamie --- docs/introduction/Manta-Atlantic.md | 30 - docs/manta-atlantic/Bridge.md | 41 - docs/manta-atlantic/Collation/01-Overview.md | 16 - .../Collation/02-Requirements.md | 31 - .../03-SetupAndRun/01-installation.md | 146 --- .../03-SetupAndRun/02-configuration.md | 470 ---------- .../Collation/03-SetupAndRun/03-running.md | 261 ------ .../Collation/03-SetupAndRun/04-sync.md | 80 -- .../Collation/03-SetupAndRun/05-keys.md | 205 ----- .../Collation/03-SetupAndRun/06-bond.md | 38 - .../Collation/04-Maintenance.md | 20 - .../Collation/05-Reduce Bond.md | 5 - docs/manta-atlantic/Collation/06-Unbond.md | 24 - .../Collation/07-CollatorFAQ.md | 29 - .../images/collator-cancel-leave.png | 3 - .../images/collator-execute-leave.png | 3 - .../Collation/images/collator-go-offline.png | 3 - .../Collation/images/collator-go-online.png | 3 - .../images/collator-schedule-leave.png | 3 - docs/manta-atlantic/Collator Overview.md | 17 - docs/manta-atlantic/Collator Requirement.md | 828 ------------------ docs/manta-atlantic/Network Information.md | 32 - docs/manta-atlantic/Node/01-Overview.md | 16 - docs/manta-atlantic/Node/02-Requirements.md | 27 - .../Node/03-SetupAndRun/01-full_node.md | 68 -- .../Node/03-SetupAndRun/02-archive_node.md | 68 -- docs/manta-atlantic/Staking/01-Overview.md | 48 - docs/manta-atlantic/Staking/02-Rewards.md | 17 - docs/manta-atlantic/Staking/03-Rules.md | 48 - .../Staking/04-Delegation/01-dApp Overview.md | 58 -- .../04-Delegation/02-HowTo Delegate.md | 57 -- .../04-Delegation/images/active_collator.png | 3 - .../04-Delegation/images/authorize_wallet.png | 3 - .../04-Delegation/images/choose_stake.png | 3 - .../Staking/04-Delegation/images/head.png | 3 - .../04-Delegation/images/select_collator.png | 3 - .../Staking/04-Delegation/images/staking.png | 3 - docs/manta-atlantic/Staking/05-StakingFAQ.md | 71 -- docs/manta-atlantic/migration-faq.md | 204 ----- sidebars.js | 66 -- static/img/manta-atlantic/collator/1.png | 3 - static/img/manta-atlantic/collator/2.png | 3 - static/img/manta-atlantic/collator/3.png | 3 - static/img/manta-atlantic/collator/4.png | 3 - static/img/manta-atlantic/collator/5.png | 3 - static/img/manta-atlantic/collator/6.png | 3 - static/img/manta-atlantic/collator/7.png | 3 - static/img/manta-atlantic/collator/8.png | 3 - 48 files changed, 3078 deletions(-) delete mode 100644 docs/introduction/Manta-Atlantic.md delete mode 100644 docs/manta-atlantic/Bridge.md delete mode 100644 docs/manta-atlantic/Collation/01-Overview.md delete mode 100644 docs/manta-atlantic/Collation/02-Requirements.md delete mode 100644 docs/manta-atlantic/Collation/03-SetupAndRun/01-installation.md delete mode 100644 docs/manta-atlantic/Collation/03-SetupAndRun/02-configuration.md delete mode 100644 docs/manta-atlantic/Collation/03-SetupAndRun/03-running.md delete mode 100644 docs/manta-atlantic/Collation/03-SetupAndRun/04-sync.md delete mode 100644 docs/manta-atlantic/Collation/03-SetupAndRun/05-keys.md delete mode 100644 docs/manta-atlantic/Collation/03-SetupAndRun/06-bond.md delete mode 100644 docs/manta-atlantic/Collation/04-Maintenance.md delete mode 100644 docs/manta-atlantic/Collation/05-Reduce Bond.md delete mode 100644 docs/manta-atlantic/Collation/06-Unbond.md delete mode 100644 docs/manta-atlantic/Collation/07-CollatorFAQ.md delete mode 100644 docs/manta-atlantic/Collation/images/collator-cancel-leave.png delete mode 100644 docs/manta-atlantic/Collation/images/collator-execute-leave.png delete mode 100644 docs/manta-atlantic/Collation/images/collator-go-offline.png delete mode 100644 docs/manta-atlantic/Collation/images/collator-go-online.png delete mode 100644 docs/manta-atlantic/Collation/images/collator-schedule-leave.png delete mode 100644 docs/manta-atlantic/Collator Overview.md delete mode 100644 docs/manta-atlantic/Collator Requirement.md delete mode 100644 docs/manta-atlantic/Network Information.md delete mode 100644 docs/manta-atlantic/Node/01-Overview.md delete mode 100644 docs/manta-atlantic/Node/02-Requirements.md delete mode 100644 docs/manta-atlantic/Node/03-SetupAndRun/01-full_node.md delete mode 100644 docs/manta-atlantic/Node/03-SetupAndRun/02-archive_node.md delete mode 100644 docs/manta-atlantic/Staking/01-Overview.md delete mode 100644 docs/manta-atlantic/Staking/02-Rewards.md delete mode 100644 docs/manta-atlantic/Staking/03-Rules.md delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/01-dApp Overview.md delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/02-HowTo Delegate.md delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/images/active_collator.png delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/images/authorize_wallet.png delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/images/choose_stake.png delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/images/head.png delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/images/select_collator.png delete mode 100644 docs/manta-atlantic/Staking/04-Delegation/images/staking.png delete mode 100644 docs/manta-atlantic/Staking/05-StakingFAQ.md delete mode 100644 docs/manta-atlantic/migration-faq.md delete mode 100644 static/img/manta-atlantic/collator/1.png delete mode 100644 static/img/manta-atlantic/collator/2.png delete mode 100644 static/img/manta-atlantic/collator/3.png delete mode 100644 static/img/manta-atlantic/collator/4.png delete mode 100644 static/img/manta-atlantic/collator/5.png delete mode 100644 static/img/manta-atlantic/collator/6.png delete mode 100644 static/img/manta-atlantic/collator/7.png delete mode 100644 static/img/manta-atlantic/collator/8.png diff --git a/docs/introduction/Manta-Atlantic.md b/docs/introduction/Manta-Atlantic.md deleted file mode 100644 index f012103e..00000000 --- a/docs/introduction/Manta-Atlantic.md +++ /dev/null @@ -1,30 +0,0 @@ -# Manta Atlantic - -Manta Atlantic is the fastest and most decentralized ZK Layer 1 blockchain, supporting modular on-chain compliance identities. Its suite of core products and technologies—including zkNFTs, staking mechanisms, and ecosystem projects—provides user-friendly access to powerful ZK-enabled use cases. - -## ZK Compliant Credentials - -Unlike other ZK identity Layer 1 solutions that focus on building ZK smart contract languages, Manta Atlantic prioritizes the ZK compliance credential layer. This approach ensures real-world adoption and interoperability, enabling other projects to integrate interoperable identities without needing to handle complex cryptographic work themselves. - -## zkAddress and Other Advanced Infrastructure - -Manta’s ZK circuits and infrastructure have been under development for two years. The platform features a public account-based address system alongside a UTXO-based private address system, which we call zkAddress. Here are the key features: - -- Privacy Protection: A zkAddress shields sensitive information, including SBT minting, on-chain credentials, and off-chain identities. -- Reusability and Independence: It is the first private address system that is reusable, independent, and auditable. -- Multi-NFT Support: zkAddress is the first system to support multiple NFTs, complete with its own seed phrase functionality that allows synchronization across different devices. -- Selective Disclosure: Using a Prove Key, users can selectively share specific credentials from their zkAddress without compromising their zk identity. - -## Additional Reading - -- [Manta Network Extends zkSBT Features to Over 1.5m Web3 Users](https://mantanetwork.medium.com/manta-network-extends-zksbt-features-to-over-1-5m-web3-users-81cadd7ebdbf) - -- [BNB Chain Projects Adopt zkBAB for Private Identity Verification](https://mantanetwork.medium.com/bnb-chain-projects-adopt-zkbab-for-private-identity-verification-41c00482b909) - -- [Enabling Private Identity on Manta Network Through A Suite of New Products](https://mantanetwork.medium.com/enabling-private-identity-on-manta-network-through-a-suite-of-new-products-237bad78244d) - -- [Enabling Private Identity on Manta Network Through A Suite of New Products](https://mantanetwork.medium.com/introducing-zksbts-zknfts-and-npo-89a8e6d77a7f) - -- [Manta Network Achievements: A Review of 2022](https://medium.com/manta-network/manta-network-achievements-a-review-of-2022-6877b45eea18) - -- [A Look Back at 2021](https://medium.com/manta-network/a-look-back-at-2021-7e96eb60af28) diff --git a/docs/manta-atlantic/Bridge.md b/docs/manta-atlantic/Bridge.md deleted file mode 100644 index d8495cd4..00000000 --- a/docs/manta-atlantic/Bridge.md +++ /dev/null @@ -1,41 +0,0 @@ -# The Ultimate Guide to Manta Interoperability - -Manta Network initially started its journey with Manta Atlantic (the fastest ZK L1 chain on Polkadot) and later introduced Manta Pacific (the modular L2 ecosystem that is community-driven) in the Manta ecosystem. - -To ensure seamless participation from the Manta ecosystem users, assets should circulate freely within both chains, especially the native governance token, $MANTA. Users can use tokens on both chains to participate in Manta Pacific’s fast-growing ecosystem (DeFi, SocialFi, zkApps & more) by enjoying the inexpensive gas fees & highly scalable environment. Meanwhile, on Manta Atlantic, users can use $MANTA for gas fees to participate in staking and other on-chain activities. - -The cBridge cross-chain bridge powered by Celer enables a seamless bridging experience between Manta Pacific and Atlantic. The bridge will go live at TGE on January 18, 2024. - -## Bridge and Lockup - -Manta bridge and stake functions on Atlantic will be live at TGE. For token holders of $MANTA on Manta Pacific, you can bridge to Manta Atlantic to stake and interact with the Atlantic ecosystem. - -## Bridging $MANTA between Pacific and Atlantic - -### Bridging with Manta Bridge - -
- 1 -
- -- Make sure you have enough tokens to pay gas fees: $MANTA in your Manta Atlantic wallet, and $ETH in your Manta Pacific wallet. If you don’t have an Atlantic wallet yet, you can download a compatible wallet such as the Manta Wallet. Once you have your Atlantic wallet, you can use the address located in it. -- Bridge $MANTA from Manta Pacific to Manta Atlantic by using the Manta Bridge. -- Connect both your Atlantic wallet (e.g., Manta Wallet) and your Pacific wallet (e.g., MetaMask) on cBridge. Then, select the token you are bridging (i.e., $MANTA) and enter the amount you want to bridge. -- Approve the transaction to initiate the transfer process. - -## Bridging with cBridge - -
- 2 -
- -- Make sure you have enough tokens to pay gas fees: $MANTA in your Manta Atlantic wallet, and $ETH in your Manta Pacific wallet. If you don’t have an Atlantic wallet yet, you can download a compatible wallet such as the Manta Wallet. Once you have your Atlantic wallet, you can use the address located in it. -- Bridge $MANTA between Moonbean to Manta Pacific by using Celer’s cBridge. -- Connect both your Atlantic wallet (e.g., Manta Wallet) and your Pacific wallet (e.g., MetaMask) on cBridge. Choose which network you want to bridge from (e.g., Manta Pacific) and which network you want to bridge to (e.g., Manta Atlantic). Then, select the token you are bridging (i.e., $MANTA) and enter the amount you want to bridge. - -## Notes - -- If you need to manually update Manta Wallet, open the Chrome extension, enable developer mode in the top-right corner, and click ‘Update’ in the top-left corner. -- If you participated in Squad Game (the Manta Network Crowdsale), your $MANTA tokens will appear in your Manta Atlantic network wallet. -- When transferring to centralized exchanges, please make sure to double check the network address. Manta Pacific addresses begin with prefix 0x. -- The Polkadot XCM bridge is used from Manta Atlantic to Moonbeam, and the Bridge by Celer is used from Moonbeam to Manta Pacific. diff --git a/docs/manta-atlantic/Collation/01-Overview.md b/docs/manta-atlantic/Collation/01-Overview.md deleted file mode 100644 index 24bf0ca8..00000000 --- a/docs/manta-atlantic/Collation/01-Overview.md +++ /dev/null @@ -1,16 +0,0 @@ -# 🧩 Overview - -Node maintainers are encouraged and welcome to run Manta collators. No centralized permission is required but a MANTA bond must be posted. - -Free-Market competition between high-performing collators for delegations will ensure a Manta Network runs at maximum performance and censorship resistance. - -## Benefits of Running a Collator - -- Participation in staking rewards -- Boosted APY compared to delegation through 10% commission on delegator's share of rewards -- 10% of transaction fees in every block produced by the collator -- 2% of the total supply goes directly to block producers on an annual basis. - -## Join the collator maintainer community discussion - -- Discord: [Collator Program](https://discord.com/channels/795390654628102165/936300292536942592) diff --git a/docs/manta-atlantic/Collation/02-Requirements.md b/docs/manta-atlantic/Collation/02-Requirements.md deleted file mode 100644 index 80f2b9d1..00000000 --- a/docs/manta-atlantic/Collation/02-Requirements.md +++ /dev/null @@ -1,31 +0,0 @@ -## MANTA Bond - -400_000 MANTA must be available to post as collator bond - -## Hardware and Infrastructure - -a. Running on your own hardware and within you own premises (recommended): - -- collator system host (note that a substrate collator will utilize all available system ram and all available cpu cores unless specifically configured not to do so) - - cpu: 8 cores - - memory: 32 gb of ram (more is better) - - disk space: 700 gb of disk space dedicated to the blockchain basepath (as of date 2024 Dec 7th, more is better, growing at 200G~300G annually) -- infrastructure and environment - - network bandwidth: 100 mbps+ - - internet-accessible ports: - - **31333**: default manta peer-to-peer port - - **31334**: default (embedded-relay) polkadot peer-to-peer port - - **9615**: default manta metrics port - - **9616**: default (embedded-relay) polkadot metrics port - - you should monitor your own collator using the techniques described on the [polkadot wiki](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node). the metrics exposed on ports 9615 and 9616 facilitate this, so these ports should be accessible both from your own prometheus/alertmanager server (which should be configured to alert you) and manta devops' [pulse server](https://pulse.pelagos.systems) at `18.156.192.254` (monitored by manta devops). - - an uninterrupted power supply to both the collator node and the network switches and routers that provide its connectivity must be capable of keeping the system online during provider power outages - - a failover 4g or 5g router should be included in your network topology to provide connectivity in the event of a wired or fibre connection failure - - your network management should include automatic dns updates in the event of changes to your nodes publicly accessible ip addressing - -b. Running on AWS EC2 -- instance type: r5ad.xlarge or similar -- image: Ubuntu 22.04 (latest ubuntu server ami from Canonical/099720109477) - -c. Azure/GCP or other cloud/datacenter provider -- Please use your judgement to match or surpass the requirements for other environments above diff --git a/docs/manta-atlantic/Collation/03-SetupAndRun/01-installation.md b/docs/manta-atlantic/Collation/03-SetupAndRun/01-installation.md deleted file mode 100644 index 45210b54..00000000 --- a/docs/manta-atlantic/Collation/03-SetupAndRun/01-installation.md +++ /dev/null @@ -1,146 +0,0 @@ ---- -sidebar_position: 1 -sidebar_label: 🥡 Installation -title: 🚄 Setup and run a Collator -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -Installation > [Configuration](configuration) > [Running](running) > [Sync](sync) > [Session keys](keys)> [Bond](bond) - -## 🥡 Installation - - - - -- pull the latest manta container - -```bash -#!/bin/bash - -# Depending on your setup, here are some steps to get started - -# Upgrade to latest version -sudo apt update && sudo apt upgrade -y - -# Install docker -sudo apt install docker.io - -# Add current user to docker -sudo usermod -aG docker $USER - -# Pull the manta image -docker pull mantanetwork/manta:latest -``` - - - - -the manta .rpm package contains: - -- the manta binary (which is also used to run manta) -- manta and manta systemd services -- manta, polkadot and kusama chain specifications -- a script which runs after installation and creates the manta system account which the systemd service runs under - -get started (see also: [rpm.manta.systems](https://rpm.manta.systems/)): - -- add the manta .rpm repository - - ```bash - #!/bin/bash - - sudo dnf install dnf-plugins-core - sudo dnf config-manager --add-repo https://rpm.manta.systems/manta.repo - sudo dnf config-manager --set-enabled manta - sudo dnf update - ``` - -- install manta - - ```bash - #!/bin/bash - - sudo dnf install manta - ``` - - - - -the manta .deb package contains: - -- the manta binary (which is also used to run manta) -- manta and manta systemd services -- manta, polkadot and kusama chain specifications -- a script which runs after installation and creates the manta system account which the systemd service runs under - -get started (see also: [deb.manta.systems](https://deb.manta.systems/)): - -- add the manta .deb repository - - ```bash - #!/bin/bash - - sudo curl -o /usr/share/keyrings/manta.gpg https://deb.manta.systems/manta.gpg - sudo curl -o /etc/apt/sources.list.d/manta.list https://deb.manta.systems/manta.list - sudo apt update - ``` - -- install manta - - ```bash - #!/bin/bash - - sudo apt install manta - ``` - - - - -- download binary, chain specifications and systemd unit file - - ```bash - #!/bin/bash - - # intall jq on ubuntu - sudo apt install jq - - # or on fedora - sudo dnf install jq - - # get the latest version of binary - manta_version=$(curl -s https://api.github.com/repos/Manta-Network/Manta/releases/latest | jq -r .tag_name | cut -c 2-) - - # binary - sudo curl -Lo /usr/local/bin/manta https://github.com/Manta-Network/Manta/releases/download/v${manta_version}/manta - sudo ln -srf /usr/local/bin/manta /usr/local/bin/manta - - # chainspecs - sudo mkdir -p /usr/share/substrate - sudo curl -Lo /usr/share/substrate/manta.json https://raw.githubusercontent.com/Manta-Network/Manta/v${manta_version}/genesis/manta-genesis.json - sudo curl -Lo /usr/share/substrate/polkadot.json https://raw.githubusercontent.com/paritytech/polkadot/master/node/service/chain-specs/polkadot.json - - # systemd unit file - sudo curl -Lo /etc/systemd/system/manta.service https://raw.githubusercontent.com/Manta-Network/Manta/deb-rpm/scripts/package/manta.service - ``` - -- create the manta system account which the systemd service runs under - - ```bash - #!/bin/bash - - sudo groupadd --system manta - sudo useradd \ - --system \ - --gid manta \ - --home-dir /var/lib/substrate \ - --create-home \ - --shell /sbin/nologin \ - --comment 'service account for manta and calamari services' \ - manta - ``` - - - diff --git a/docs/manta-atlantic/Collation/03-SetupAndRun/02-configuration.md b/docs/manta-atlantic/Collation/03-SetupAndRun/02-configuration.md deleted file mode 100644 index 8946a68a..00000000 --- a/docs/manta-atlantic/Collation/03-SetupAndRun/02-configuration.md +++ /dev/null @@ -1,470 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: 📝 Configuration -title: 🚄 Setup and run a Collator -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -[Installation](installation) > Configuration > [Running](running) > [Sync](sync) > [Session keys](keys) > [Bond](bond) - -## 📝 Configuration -some extra command line parameters are required or helpful for collating. - - - - -edit the manta service unit file to include collation parameters in the `ExecStart` command. - -`/usr/lib/systemd/system/manta.service` - -for version `>= v4.6.0` (inclusive) -```ini -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --rpc-max-connections 100 \ - --rpc-port 9144 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --rpc-port 9145 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - -for version `< v4.6.0` (exclusive) -```ini -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --ws-port 9144 \ - --ws-max-connections 100 \ - --rpc-port 9133 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --ws-port 9145 \ - --rpc-port 9134 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - - - - -edit the manta service unit file to include collation parameters in the `ExecStart` command. - -`/usr/lib/systemd/system/manta.service` - -for version `>= v4.6.0` (inclusive) -```ini -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --rpc-max-connections 100 \ - --rpc-port 9144 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --rpc-port 9145 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - -for version `< v4.6.0` (exclusive) -```ini -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --ws-port 9144 \ - --ws-max-connections 100 \ - --rpc-port 9133 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --ws-port 9145 \ - --rpc-port 9134 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - - - - -edit the manta service unit file to include collation parameters in the `ExecStart` command. - -`/etc/systemd/system/manta.service` - -for version `>= v4.6.0` (inclusive) -```ini -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --rpc-max-connections 100 \ - --rpc-port 9144 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --rpc-port 9145 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - -for version `< v4.6.0` (exclusive) -```ini -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --ws-port 9144 \ - --ws-max-connections 100 \ - --rpc-port 9133 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --ws-port 9145 \ - --rpc-port 9134 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - - - - -**note** passing `--relay-chain-rpc-urls ` to the parachain parameter section in the startup command will delegate relay chain data to remote relaychain rpc, it's recommanded to not do this, however this can be handy at times when local relay chain data fails to sync (related artcle https://mantanetwork.notion.site/Manta-Atlantic-Block-Production-Accident-Report-9a3742c6e0844d78a32e76fc47cf0cc0), **below is an example** - -```bash -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ -... - --state-cache-size 0 \ - --relay-chain-rpc-urls "wss://1rpc.io/dot" \ - --relay-chain-rpc-urls "wss://polkadot-public-rpc.blockops.network/ws" \ - --relay-chain-rpc-urls "wss://polkadot.api.onfinality.io/public-ws" \ - --relay-chain-rpc-urls "wss://rpc.ibp.network/polkadot" \ - --relay-chain-rpc-urls "wss://polkadot-rpc.dwellir.com" \ - --relay-chain-rpc-urls "wss://polkadot-rpc-tn.dwellir.com" \ - --relay-chain-rpc-urls "wss://rpc.dotters.network/polkadot" \ - --relay-chain-rpc-urls "wss://rpc-polkadot.luckyfriday.io" \ - --relay-chain-rpc-urls "wss://polkadot.public.curie.radiumblock.co/ws" \ - --relay-chain-rpc-urls "wss://rockx-dot.w3node.com/polka-public-dot/ws" \ - --relay-chain-rpc-urls "wss://dot-rpc.stakeworld.io" \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ -... - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ -... -``` - -### parameters with special significance for collator maintainers -two sets of parameters are supplied to the substrate node binary (manta), separated by a double-dash (`--`). the first set controls the behavior of the parachain node. the second set controls the behaviour of the embedded relay-chain node. -- significant **parachain** parameters - - `--collator`: run in collator mode. behaves the same as `--validator` on relay chains. setting this also causes pruning mode to be set to `archive` (like `--pruning archive`). - - `--name`: parachain node name, displayed on [manta telemetry](https://telemetry.manta.systems/#list/0xf3c7ad88f6a80f366c4be216691411ef0622e8b809b1046ea297ef106058d4eb). - - `--port`: parachain peer-to-peer port. manta default is 31333. this port must be accessible over the internet to other manta nodes. - - `--prometheus-port`: parachain metrics port. manta default is 9615. this port must be accessible to the manta metrics monitor at: `18.156.192.254` (`18.156.192.254/32` if you are specifying by subnet) - - `--prometheus-external`: if you are not reverse proxying metrics over ssl, you may need to set this parameter to tell the embedded metrics server to listen on the *all ips* socket (`0.0.0.0:9615`) rather than *localhost only* (`127.0.0.1:9615`) - - `--relay-chain-rpc-urls`: list of relay chain full node to communicate with, if this parameter is specified, the node will delegate relay chain data to the relay chain rpc endpoints, local relay chain data won't be used/synced. This parameter is **not** recommanded, however this can be handy at times when local relay chain data can't sync. (list of official polkadot relay chain rpc endpoints can be found on [polkadot rpc endpoints](https://wiki.polkadot.network/docs/maintain-endpoints)) -- significant **relay-chain** parameters - - `--name`: relay-chain node name, displayed on [polkadot telemetry](https://telemetry.manta.systems/#list/0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3). - - `--port`: relay-chain peer-to-peer port. manta-embedded-polkadot default is 31334. this port must be accessible over the internet to other polkadot nodes. - - `--prometheus-port`: relay-chain metrics port. manta-embedded-polkadot default is 9616. this port must be accessible to the manta metrics monitor at: `18.156.192.254` (`18.156.192.254/32` if you are specifying by subnet) - - `--prometheus-external`: if you are not reverse proxying metrics over ssl, you may need to set this parameter to tell the embedded metrics server to listen on the *all ips* socket (`0.0.0.0:9616`) rather than *localhost only* (`127.0.0.1:9616`) - -### expose node metrics for monitoring -you should monitor your own collator using the techniques described on the [polkadot wiki](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node). the metrics exposed on ports `9615` and `9616` facilitate this, so these ports (or port `443`, if ssl proxied) should be accessible both from your own prometheus/alertmanager server (which you should configure to alert you, using alertmanager) and manta's [pulse server](https://pulse.pelagos.systems) at `18.156.192.254` (which is monitored by manta devops). - -#### firewall configuration -several ports are required to be accessible from outside of the node host in order for the collator to function well. for simplicity, the settings documented below use the default ports, however feel free to use alternative ports as required by your infrastructure and network topology. - - - - -``` -30333: default manta peer-to-peer port -30334: default (embedded-relay) polkadot peer-to-peer port -9615: default manta metrics port -9616: default (embedded-relay) polkadot metrics port -``` - - - - -``` -31333: default manta peer-to-peer port -31334: default (embedded-relay) polkadot peer-to-peer port -9615: default manta metrics port -9616: default (embedded-relay) polkadot metrics port -``` - - - - -#### reverse proxy metrics over ssl with letsencrypt and nginx -it is good practice to serve your metrics over: - -- **ssl**, so that their authenticity and provenance can be verified -- **dns**, so that changes to your ip address don't require a pulse server update - -it also makes it much easier for an alert observer to work out which collators are performing well (or poorly) when they are looking at domain names like `manta.awesome-host.awesome-collators.com` versus ip addresses and port combinations like `123.123.123.123:987` which may not make it obvious wich collator is being observed and wether the metric in question refers to the relay-chain or parachain. - -an easy way to accomplish this is to install certbot and nginx and configure a reverse proxy listening on port 443 and which proxies ssl requests to the local metrics ports. - -the example below assumes: -- you administer the domain **example.com** -- its dns is managed by cloudflare or route53 -- your nodes hostname is **bob** -- your manta node uses default ports -- your internet gateway (router) port forwards 443/ssl traffic arriving on the routers wan interface to your collator node -- you have certbot installed - -:::note -cloudflare and route53 examples follow. google `python3-certbot-dns-${your_dns_provider}` for other examples -::: - -- install certbot and a dns validation plugin - - - - - ```bash - #!/bin/bash - - sudo dnf install \ - certbot \ - python3-certbot-dns-cloudflare \ - python3-certbot-dns-route53 - ``` - - - - - ```bash - #!/bin/bash - - sudo apt-get install \ - certbot \ - python3-certbot-dns-cloudflare \ - python3-certbot-dns-route53 - ``` - - - - -- request a cert using a dns plugin so that certbot is able to automatically renew the cert near the expiry date. manually requested certs must be manually updated to keep ssl certs valid, so they should be avoided. - - - - - ```bash - #!/bin/bash - - sudo certbot certonly \ - --dns-cloudflare \ - --dns-cloudflare-credentials .cloudflare-credentials \ - -d bob.example.com \ - -d manta.metrics.bob.example.com \ - -d polkadot.metrics.bob.example.com - ``` - - - - - ```bash - #!/bin/bash - - sudo certbot certonly \ - --dns-route53 \ - --dns-route53-propagation-seconds 30 \ - -d bob.example.com \ - -d manta.metrics.bob.example.com \ - -d polkadot.metrics.bob.example.com - ``` - - - - -- configure nginx `/etc/nginx/sites-enabled/example.com.conf` to reverse proxy dns subdomains to local metrics ports. - ``` - server { - server_name manta.metrics.bob.example.com; - listen 443 ssl; - gzip off; - location / { - proxy_pass http://127.0.0.1:9615; - proxy_http_version 1.1; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - } - ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; - include /etc/letsencrypt/options-ssl-nginx.conf; - ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; - } - - server { - server_name polkadot.metrics.bob.example.com; - listen 443 ssl; - gzip off; - location / { - proxy_pass http://127.0.0.1:9616; - proxy_http_version 1.1; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - } - ssl_certificate /etc/letsencrypt/live/bob.example.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/bob.example.com/privkey.pem; - include /etc/letsencrypt/options-ssl-nginx.conf; - ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; - } - ``` - - - - -```bash -#!/bin/bash - -default_zone=$(sudo firewall-cmd --get-default-zone) - -# manta p2p -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=31333/tcp \ - --permanent - -# polkadot p2p -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=31334/tcp \ - --permanent - -# manta metrics -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=9615/tcp \ - --permanent - -# polkadot metrics -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=9616/tcp \ - --permanent - -sudo firewall-cmd --reload -``` - - - diff --git a/docs/manta-atlantic/Collation/03-SetupAndRun/03-running.md b/docs/manta-atlantic/Collation/03-SetupAndRun/03-running.md deleted file mode 100644 index d3b3b6a0..00000000 --- a/docs/manta-atlantic/Collation/03-SetupAndRun/03-running.md +++ /dev/null @@ -1,261 +0,0 @@ ---- -sidebar_position: 3 -sidebar_label: ⚙️ Running -title: 🚄 Setup and run a Collator -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -[Installation](installation) > [Configuration](configuration) > Running > [Sync](sync) > [Session keys](keys) > [Bond](bond) - -## ⚙️ Running - - - - -- start your docker node - - ```bash - #Non production sample - docker run \ - -it \ - -p 9933:9933 \ - -p 30333:30333 \ - -p 30334:30334 \ - -p 9615:9615 \ - -p 9516:9516 \ - -v host_path:/container_path \ - --name your_container_name \ - mantanetwork/manta:latest \ - --base-path /container_path/data \ - --keystore-path /container_path/keystore \ - --name your_collator_name \ - --rpc-cors all \ - --collator \ - --rpc-methods=unsafe \ - --unsafe-rpc-external \ - - #Production sample - docker run \ - -it \ - -p 9933:9933 \ - -p 30333:30333 \ - -p 30334:30334 \ - -v host_path:/container_path \ - --restart=unless-stopped \ - --name your_container_name \ - mantanetwork/manta:latest \ - --base-path /container_path/data \ - --keystore-path /container_path/keystore \ - --name your_collator_name \ - --rpc-cors all \ - --collator \ - --rpc-methods=safe \ - -- \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' - ``` - - Examples of these name and paths: - - `host_path:/container_path` => `~/my-manta-db:/manta` - - `your_collator_name` => `Community-Collator-1` - - You may want to consider the following: - - if using http (not configured for ssl with certbot) for metrics, add ports - `-p 9615:9615 -p 9616:9616` - - add auto restart to ensure start on system boot or reboot - `--restart=unless-stopped` - - remove unsafe-rpb-external when you are ready for production - - change rpc-methods to safe when ready for production - `--rpc-methods=safe` - - additional Pokadot configuration. at the end of your command stack, add -- to designate Pokadot configuration, then add telemetry-url - `-- --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0'` - - Ensure you can see a line of log like this: - - ```bash - 👤 Role: AUTHORITY - ``` - - - - -- check the status of the manta service: - - ```bash - #!/bin/bash - - systemctl status manta.service - ``` - -- enable manta service (the service will start automatically on system boot): - - ```bash - #!/bin/bash - - sudo systemctl enable manta.service - ``` - -- start manta service: - - ```bash - #!/bin/bash - - sudo systemctl start manta.service - ``` - -- stop manta service: - - ```bash - #!/bin/bash - - sudo systemctl stop manta.service - ``` - -- tail the manta service logs: - - ```bash - #!/bin/bash - - journalctl -u manta.service -f - ``` - -- debug manta service configuration (run manta as the manta user, to quickly check for runtime errors): - - for version `>= v4.6.0` (inclusive) - ```bash - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta.json --base-path /var/lib/substrate --port 31333 --rpc-max-connections 100 --rpc-port 9144 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 -- --chain /usr/share/substrate/polkadot.json' - ``` - - for version `< v4.6.0` (exclusive) - ```bash - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta.json --base-path /var/lib/substrate --port 31333 --ws-port 9144 --ws-max-connections 100 --rpc-port 9133 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 -- --chain /usr/share/substrate/polkadot.json' - ``` - - - - -- check the status of the manta service: - - ```bash - #!/bin/bash - - systemctl status manta.service - ``` - -- enable manta service (the service will start automatically on system boot): - - ```bash - #!/bin/bash - - sudo systemctl enable manta.service - ``` - -- start manta service: - - ```bash - #!/bin/bash - - sudo systemctl start manta.service - ``` - -- stop manta service: - - ```bash - #!/bin/bash - - sudo systemctl stop manta.service - ``` - -- tail the manta service logs: - - ```bash - #!/bin/bash - - journalctl -u manta.service -f - ``` - -- debug manta service configuration (run manta as the manta user, to quickly check for runtime errors): - - for version `>= v4.6.0` (inclusive) - ```bash - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta.json --base-path /var/lib/substrate --port 31333 --rpc-max-connections 100 --rpc-port 9144 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 -- --chain /usr/share/substrate/polkadot.json' - ``` - - for version `< v4.6.0` (exclusive) - ```bash - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta.json --base-path /var/lib/substrate --port 31333 --ws-port 9144 --ws-max-connections 100 --rpc-port 9133 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 -- --chain /usr/share/substrate/polkadot.json' - ``` - - - - -- check the status of the manta service: - - ```bash - #!/bin/bash - - systemctl status manta.service - ``` - -- enable manta service (the service will start automatically on system boot): - - ```bash - #!/bin/bash - - sudo systemctl enable manta.service - ``` - -- start manta service: - - ```bash - #!/bin/bash - - sudo systemctl start manta.service - ``` - -- stop manta service: - - ```bash - #!/bin/bash - - sudo systemctl stop manta.service - ``` - -- tail the manta service logs: - - ```bash - #!/bin/bash - - journalctl -u manta.service -f - ``` - -- debug manta service configuration (run manta as the manta user, to quickly check for runtime errors): - - for version `>= v4.6.0` (inclusive) - ```bash - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta.json --base-path /var/lib/substrate --port 31333 --rpc-max-connections 100 --rpc-port 9144 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 -- --chain /usr/share/substrate/polkadot.json' - ``` - - for version `< v4.6.0` (exclusive) - ```bash - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta.json --base-path /var/lib/substrate --port 31333 --ws-port 9144 --ws-max-connections 100 --rpc-port 9133 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 -- --chain /usr/share/substrate/polkadot.json' - ``` - - - diff --git a/docs/manta-atlantic/Collation/03-SetupAndRun/04-sync.md b/docs/manta-atlantic/Collation/03-SetupAndRun/04-sync.md deleted file mode 100644 index 4984fb7b..00000000 --- a/docs/manta-atlantic/Collation/03-SetupAndRun/04-sync.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -sidebar_position: 4 -sidebar_label: 🤝 Sync -title: 🚄 Setup and run a Collator -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -[Installation](installation) > [Configuration](configuration) > [Running](running) > Sync > [Session keys](keys) > [Bond](bond) - -## 🤝 Sync the relay and para chains - -if you have no peers on the relaychain or your node is failing to verify new blocks, ensure your node’s clock is accurate, ie. by syncing with an ntp timeserver. - -you must sync both the manta parachain and polkadot relay-chain before the motion to include your collator is passed. completely synced substrate blockchain nodes will show an idle state in their logs for both `[Relaychain]` and `[Parachain]` and looks like so: - -```shell= -2022-03-01 17:18:58 [Parachain] 💤 Idle (49 peers), best: #1037783 (0xa0c5…04a8), finalized #1037781 (0xabd5…1c05), ⬇ 16.7kiB/s ⬆ 14.5kiB/s -2022-03-01 17:18:55 [Relaychain] 💤 Idle (49 peers), best: #11619808 (0x24a5…ad58), finalized #11619804 (0xa362…2df4), ⬇ 478.0kiB/s ⬆ 520.5kiB/s -``` - -if your collator node logs do not contain both `[Relaychain] 💤 Idle` and `[Parachain] 💤 Idle` messages, your node is still syncing. do not bind a collator account to an aura session key for a node whose sync is incomplete. doing so will result in ejection of your collator. - -the best way to sync is to just run your node until the idle messages show up in your logs. doing so may take up to 2 weeks, however it will also give you a perfect, cryptographically validated and complete history of the blockchains you are syncing. - -if you cannot wait for the recommended sync mechanism to complete, you may obtain a fast-sync copy of the manta and polkadot blockchains taken from manta's backup nodes. to do so: -- stop your manta service -- delete your manta and polkadot databases from the basepath (taking care not to delete your keystores which are also under the basepath) -- fetch a copy of the blockchains, extracting if required -- ensure that the entire basepath and all of its contents are owned by the user your node runs under (change ownership recursively if required) -- start your manta service -- verify that the node is syncing correctly -- wait for both parachain and relay-chain idle messages to appear in the logs - -list available snapshot date are -* `2024-08-17UTC` (latest) -* `2024-06-28UTC` -* `2024-05-07UTC` -* `2024-03-07UTC` -* `2024-02-12UTC` -* `2024-01-29UTC` -* `2024-01-28UTC` -* `2023-12-05UTC` - -fast-sync commands (requires [zstd](https://github.com/facebook/zstd)): -```bash -#!/bin/bash - -# install zstd -sudo apt install zstd # this command might be different accordingly to your distro - -# stop manta service -sudo systemctl stop manta.service - -# sync manta blockchain database -lib_path="/var/lib/substrate" # change this accordingly -snapshot_date="2024-08-17UTC" # change this accordingly -identity="$(sudo -H -u manta cat "${lib_path}"/chains/manta/db/full/IDENTITY)" -echo "identity: ${identity}" -sudo -H -u manta rm -r "${lib_path}"/chains/manta/db/full -curl -L https://manta-polkadot.s3.amazonaws.com/backup/"${snapshot_date}"/manta.tar.zst | sudo -H -u manta tar --zstd -C "${lib_path}"/chains/manta -xv -echo "${identity}" | sudo -H -u manta tee "${lib_path}"/chains/manta/db/full/IDENTITY - -# sync polkadot blockchain database -identity_relay="$(sudo -H -u manta cat "${lib_path}"/polkadot/chains/polkadot/db/full/IDENTITY)" -identity_para="$(sudo -H -u manta cat "${lib_path}"/polkadot/chains/polkadot/db/full/parachains/db/IDENTITY)" -echo "identity_relay: ${identity_relay}" -echo "identity_para: ${identity_para}" -sudo -H -u manta rm -r "${lib_path}"/polkadot/chains/polkadot/db/full -curl -L https://manta-polkadot.s3.amazonaws.com/backup/"${snapshot_date}"/manta-polkadot.tar.zst | sudo -H -u manta tar --zstd -C "${lib_path}"/polkadot/chains/polkadot -xv -echo "${identity_relay}" | sudo -H -u manta tee "${lib_path}"/polkadot/chains/polkadot/db/full/IDENTITY -echo "${identity_para}" | sudo -H -u manta tee "${lib_path}"/polkadot/chains/polkadot/db/full/parachains/db/IDENTITY - -# update database `current` manifests -sudo -H -u manta bash -c "basename $(ls "${lib_path}"/chains/manta/db/full/MANIFEST-*) > \"${lib_path}\"/chains/manta/db/full/CURRENT" -sudo -H -u manta bash -c "basename $(ls "${lib_path}"/polkadot/chains/polkadot/db/full/MANIFEST-*) > \"${lib_path}\"/polkadot/chains/polkadot/db/full/CURRENT" -sudo -H -u manta bash -c "basename $(ls "${lib_path}"/polkadot/chains/polkadot/db/full/parachains/db/MANIFEST-*) > \"${lib_path}\"/polkadot/chains/polkadot/db/full/parachains/db/CURRENT" -``` diff --git a/docs/manta-atlantic/Collation/03-SetupAndRun/05-keys.md b/docs/manta-atlantic/Collation/03-SetupAndRun/05-keys.md deleted file mode 100644 index aa875c1f..00000000 --- a/docs/manta-atlantic/Collation/03-SetupAndRun/05-keys.md +++ /dev/null @@ -1,205 +0,0 @@ ---- -sidebar_position: 5 -sidebar_label: 🔑 Session keys -title: 🚄 Setup and run a Collator -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -[Installation](installation) > [Configuration](configuration) > [Running](running) > [Sync](sync) > Session keys > [Bond](bond) - -## 🔑 Collator session keys - -To collate on the Manta chain, two accounts/keys are required at any given time: -- **Collator Account**: This is the account that holds the collator bond. it is also the account that the collator's share of transaction fees will be deposited into. the bond cannot be spent while the account is collating. the keys for this account should be protected carefully and should never exist on the filesystem of the collator node. -- **Nimbus Session Key**: This is a disposable account used to identify your individual node and blocks it has produced with other nodes on the network. Substrate stores this key in the parachain keystore on the filesystem of the collator node (`/var/lib/substrate/chains/manta/keystore`) when either of the author_insertKey or author_rotateKeys RPC methods are called. As this is a hot-wallet key that can be abused to impersonate your node if leaked (potentially leading to slashing of deposited funds in the future) it is good practice to infrequently rotate the session key - typically every half year, once per session at most. - -Both keys are associated with one another to create a bond-node pair for transaction fee reward payouts and (in the future) slashing. - -In addition, your node might have two additional keys in storage: -- **Aura Session Key**: Now-unused key to decide eligibility to author blocks *before* v3.3.0 -- **VRF Session Key**: Placeholder for a future [VRF](https://en.wikipedia.org/wiki/Verifiable_random_function)-based block proposer assignment mechanism that is inactive as of v3.2.1. The future mechanism will use the key you set here, so if you set it now, you won't have to touch the node later when it is enabled. - -:::warning -Both of the following methods (insert, rotate) use an **unsafe** RPC call to set the node session key. -In order to use them, you must stop the node if running and start it with a `--rpc-methods=unsafe` CLI parameter. -This mode of operation is **unsafe** when exposed to the public internet, restart the node without this CLI parameter when done. -::: - - - - -This command demonstrates a session key insertion using a key created with - -- Build/Install [subkey](https://docs.substrate.io/reference/command-line-tools/subkey/) for your platform -- Install the [jq utility](https://stedolan.github.io/jq/download/) for your platform -- Generate a Nimbus (nmbs) key and insert/check payloads with subkey/jq - ```bash - #!/bin/bash - subkey generate \ - --scheme sr25519 \ - --network manta \ - --output-type json \ - --words 12 \ - > ./nmbs.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_insertKey", - "params": [ - "nmbs", - "nmbs mnemonic phrase", - "nmbs hex public key" - ] - }' | jq \ - --arg mnemonic "$(jq -r .secretPhrase ./nmbs.json)" \ - --arg hex "$(jq -r .publicKey ./nmbs.json)" \ - '. | .params[1] = $mnemonic | .params[2] = $hex' > ./insert-nmbs.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_hasKey", - "params": [ - "nmbs hex public key", - "nmbs" - ] - }' | jq \ - --arg hex "$(jq -r .publicKey ./nmbs.json)" \ - '. | .params[0] = $hex' > ./check-nmbs.json - ``` -- Generate a VRF (rand) key and insert/check payloads with subkey/jq - ```bash - #!/bin/bash - subkey generate \ - --scheme sr25519 \ - --network manta \ - --output-type json \ - --words 12 \ - > ./rand.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_insertKey", - "params": [ - "rand", - "rand mnemonic phrase", - "rand hex public key" - ] - }' | jq \ - --arg mnemonic "$(jq -r .secretPhrase ./rand.json)" \ - --arg hex "$(jq -r .publicKey ./rand.json)" \ - '. | .params[1] = $mnemonic | .params[2] = $hex' > ./insert-rand.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_hasKey", - "params": [ - "rand hex public key", - "rand" - ] - }' | jq \ - --arg hex "$(jq -r .publicKey ./rand.json)" \ - '. | .params[0] = $hex' > ./check-rand.json - ``` -- Execute the `author_insertKey` RPC payloads - ```bash - #!/bin/bash - for key in nmbs rand; do - curl \ - --header 'Content-Type: application/json;charset=utf-8' \ - --data @./insert-${key}.json \ - http://localhost:9133 - done - ``` -- **Validation**: Check that the session keys stored in the node match the generated ones (below command returns a `"result":true` field) - ```bash - #!/bin/bash - for key in nmbs rand; do - has_key=$(curl \ - -s \ - --header 'Content-Type: application/json;charset=utf-8' \ - --data @./check-${key}.json \ - http://localhost:9133 ) - echo "${key}: ${has_key}" - done - ``` -- **Validation**: Check that node logs show your node is running with role: `AUTHORITY` (check the timestamps) - ```bash - #!/bin/bash - journalctl -u manta.service -g AUTHORITY - ``` -- Note down the `publicKey` fields from `nmbs.json` and `rand.json` and/or back-up these key files to a **secure**, offline location -- **Cleanup**: Remove secrets from the filesystem that were created in earlier steps - ```bash - #!/bin/bash - rm ./nmbs.json ./rand.json ./insert-nmbs.json ./insert-rand.json - ``` - - - - -:::warning -Ensure your node is [fully synced](sync) before attempting this method -::: - -This command rotates session keys, i.e. creates a new private key in its keystore and outputs the corresponding public keys. -If old keys exist, they remain present in the node's keystore and are *not* deleted. - -:::note -The private keys are not displayed by the node, if you wish to back them up in order to restore your node credentials in case of loss of the node, follow the instructions in insertKey. If your session keys get lost without backup, you will have to go through the collator program ondboarding process again with your new node -::: -Run -```bash -#!/bin/bash -curl -H 'Content-Type: application/json' --data '{ "jsonrpc":"2.0", "method":"author_rotateKeys", "id":1 }' http://localhost:9133 -``` -**note** the `9133` port is the value passed to `--rpc-port` change this accordingly - -Output from this RPC call should look like the following and is a concatenation of three 32-byte *public* keys in one long hex number. -```json -{"jsonrpc":"2.0","result":"0x06736e65ab33fd1e4e3e434a1fa2c5425f0e263ddb50e6aeb15951288c562f6906736e65ab33fd1e4e3e434a1fa2c5425f0e263ddb50e6aeb15951288c562f6106736e65ab33fd1e4e3e434a1fa2c5425f0e263ddb40e6aeb15911288c562f63","id":1} -``` -Strip the leading `0x` and then split this number after every 64 characters to recover the three constituent public keys. -Prepend each of them individually with a `0x` and note them for further use. It should look like -``` -nimbus => 0x8a8af929d1219802dc8155d0b5381c41d49a185aae2c8bf3537d5c124a63a63e -VRF => 0x48c832d59679790f579d6009f5bb56ef0b52da49d7e4c504fe50847d04b12474 -``` - - - -:::note -Verify that your node does *NOT* show log lines like `2022-07-19 17:24:18 [Parachain] 🔏 No Nimbus keys available. We will not be able to author.`
-If it does even after restarting the node the procedure above failed, redo the above steps following the instructions closely. -::: - -### Bind collator account to the Session Keys - -:::note -If your collator node logs do not contain both `[Relaychain] 💤 Idle` and `[Parachain] 💤 Idle` messages, your node is still syncing. **DO NOT BIND** a collator account to session key if sync is incomplete. Doing so may result in ejection of your collator. -::: - -Account binding is done on-chain. The simplest way to do this is using polkadot.js. -- Load [manta/developer/extrinsics](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/extrinsics) in a browser: - ![session.setkeys()](/img/collator-program/session.setkeys-manta.png) -::: - - In the first box, labelled "using the selected account", select the collator account holding the [collator MANTA bond](../Requirements#manta-bond). - - In the second (dropdown) box labelled "submit the following extrinsic", select `session`. - - In the third (dropdown) box, select `setKeys(keys, proof)` -::: - - In the fifth box, labelled `nimbus: NimbusPrimitivesNimbusCryptoPublic`, enter the hex public key of the Nimbus session key you generated earlier. - - In the sixth box, labelled `vrf: SessionKeyPrimitivesVrfVrfCryptoPublic`, enter the hex public key of the VRF session key you generated earlier. - - In the seventh box labelled `proof: Bytes`, enter the hex public key of the Nimbus session key *again*. - - Click on the `Submit Transaction` button and wait for confirmation (a green tick), to appear in the upper right corner of the browser window. -- Verfy that the collator account and the Session keys are *bound* by loading [manta/developer/chain state](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/chainstate) in a browser: - ![session.nextkeys()](/img/collator-program/session.nextkeys-manta.png) -::: - - In the first (dropdown) box, labelled "selected state query", select `session`. - - In the second (dropdown) box, select `nextKeys(AccountId32): Option`. - - In the third (dropdown) box, select the collator account holding the MANTA collator bond. - - Leave the `include option` checkbox selected. - - Leave the `blockhash to query at` box set to the default `0x` value. - - Click on the small plus (`+`) icon to the right of the second dropdown box. - - Verify that a new box labelled `session.nextKeys(AccountId32): Option` appears and contains a json object whose,`nimbus` and `vrf` values are set to the hex public keys generated earlier. diff --git a/docs/manta-atlantic/Collation/03-SetupAndRun/06-bond.md b/docs/manta-atlantic/Collation/03-SetupAndRun/06-bond.md deleted file mode 100644 index 4ba2af2a..00000000 --- a/docs/manta-atlantic/Collation/03-SetupAndRun/06-bond.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -sidebar_position: 6 -sidebar_label: ⏳ Bond -title: 🚄 Setup and run a Collator -hide_title: false ---- - -[Installation](installation) > [Configuration](configuration) > [Running](running) > [Sync](sync) > [Session keys](keys) > Bond - -## ⏳ Bond MANTA - -Prospective Collators must post MANTA as a bond on-chain before they are considered collation candidates. -This amount must be present as a transferable balance within the collator account at the time that the `joinCandidates` extrinsic is run. - -At launch (Manta v4.4.0), this bond is set to a minimum of **400 Thousands MANTA**. -The current candidacy bond amount can be confirmed [on-chain](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/chainstate/constants) > parachainStaking > minCandidateStk(). - -:::note -The bonded MANTA are *locked* in the account, i.e. until you remove the lock by exiting the candidate set, they are: -- NOT TRANSFERRABLE, but -- Available for other on-chain actions like **voting in governance** - -Unlocking these tokens is possible through [unbonding](../Unbond) and takes a minimum of 7 days -::: - -### 💓 Starting collation - -Run the `joinCandidates` [extrinsic](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/extrinsics) from the account you set [your session keys](keys) to in a browser. - -![parachainStaking.joinCandidates()](/img/collator-program/parachainStaking.joinCandidates-manta.png) -:::note -**bond** is 400_000_000_000_000_000_000_000 MANTA ( 400 THOUSANDS MANTA with 18 decimals )
-**candidateCount** is a hint for transaction weight ( i.e. gas fee ) that should be larger than the current number of registered collators ( or the transaction will fail ). -The current number can be found by counting the entries on the [manta chain](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems#/chainstate/constants) > parachainStaking > candidatePool(): u128. -It is safe to just set a high number, but reducing it as much as possible reduces the estimated gas fees that must be available in your account in addition to the bond amount for the transaction to succeed. -::: - -Your collator will join the set of block producers and become eligible for rewards at the beginning of the next *round* ( i.e. after a maximum of 6 hours ) **if it is in the top 70 of registered node candidates by total stake** ( i.e. your collator bond + sum of all delegations on your node ) diff --git a/docs/manta-atlantic/Collation/04-Maintenance.md b/docs/manta-atlantic/Collation/04-Maintenance.md deleted file mode 100644 index 92fb7e12..00000000 --- a/docs/manta-atlantic/Collation/04-Maintenance.md +++ /dev/null @@ -1,20 +0,0 @@ -### Manta Binary Upgrades - -Although [forkless upgrades](https://wiki.polkadot.network/docs/learn-runtime-upgrades#forkless-upgrades) largely allow for upgrades without needing to change the node software, every once in a while, chain upgrades will break the client binary and require manual updating. - -:warning: Please follow the [Manta node github releases](https://github.com/Manta-Network/Manta/releases) closely for upgrade instructions. - -### Taking the Collator Offline - -You can (and should) notify the network your collator will be offline **for more than 6 hours** by running `parachainStaking::goOffline()` from your collator account. -![](images/collator-go-offline.png) - -This will remove you from the set of candidates temporarily without removing your collators -It takes effect at the start of the next round after execution (at most 6 hours). - -Neither you, nor your delegators will receive any rewards in the time you are offline (whether you run the above extrinsic or not), so ensure to keep downtimes to a minimum or you will risk losing delegators and thus your spot in the active collator set. - -Conversely, once your maintenance concludes, re-add your collator to the active set with `parachainStaking::goOnline()` -![](images/collator-go-online.png) - -Again, this takes effect at the start of the next round after execution (at most 6 hours). \ No newline at end of file diff --git a/docs/manta-atlantic/Collation/05-Reduce Bond.md b/docs/manta-atlantic/Collation/05-Reduce Bond.md deleted file mode 100644 index fedabd11..00000000 --- a/docs/manta-atlantic/Collation/05-Reduce Bond.md +++ /dev/null @@ -1,5 +0,0 @@ -### Reduce Bond - -- Run the `parachainStaking` extrinsic `scheduleCandidateBondLess` function [extrinsic](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/extrinsics) from the account you bonded your collator with and enter the desired amount to reduce from bond. Remember polkadot.js needs, the MANTA amount with 18 decmals. -- Wait for 7 days. -- Run the `parachainStaking` extrinsic `executeCandidateBondLess` function [extrinsic](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/extrinsics) from the account you bonded your collator with to withdraw the expected MANTA to the account. diff --git a/docs/manta-atlantic/Collation/06-Unbond.md b/docs/manta-atlantic/Collation/06-Unbond.md deleted file mode 100644 index d4addb76..00000000 --- a/docs/manta-atlantic/Collation/06-Unbond.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -sidebar_label: 💔 Leave the Collator Set -hide_title: true ---- -## 💔 Leave the Collator Set and Recover the MANTA Bond - -:::note -The screenshots below show example values for the `candidateCount` and `candidateDelegationCount` parameters. Ensure the number you provide to -- `candidateCount` is larger than the number of currently registered **collators** on the network -- `candidateDelegationCount` is larger than the number of **delegators** on the collator you want to unbond - -It is not necessary to be exact, this parameter is a gas fee hint that is used to reserve a gas fee on execution. -Unused gas is refunded afterwards, so it is ok to use a large number here if you don't want to count and have enough MANTA -::: - -In order to fully offboard your collator, execute `parachainStaking::scheduleLeaveCandidates` -![](images/collator-schedule-leave.png) -This will mark your collator as exiting, making it ineligible for future rewards. - -**After 7 days** you (or anyone else) can execute the removal extrinsic for your collator which will unlock your bonded MANTA -![](images/collator-execute-leave.png) - -If you change your mind, you can always cancel the unbonding (unless you've already sent the `execute` extrinsic above) -![](images/collator-cancel-leave.png) diff --git a/docs/manta-atlantic/Collation/07-CollatorFAQ.md b/docs/manta-atlantic/Collation/07-CollatorFAQ.md deleted file mode 100644 index fa35447e..00000000 --- a/docs/manta-atlantic/Collation/07-CollatorFAQ.md +++ /dev/null @@ -1,29 +0,0 @@ -### Q: How to setup and run a Collator? -See the [collator setup guide](SetupAndRun/installation) - -### Q: Where can I find the current collators? -https://manta.subscan.io/account_list?role=validator - -### Q: Where can I get help? -A: Come join us on the Manta & Calamari Network Discord Community in the #collator-candidates channel and you’ll find both community members who’ve had similar questions before and team members to help out. - -### Q: What are the different networks? -A: There are two networks, each will require dedicated hardware. - -- Manta Network - production network on Polkadot (live) -- Calamari Network - canary network on Kusama (live) - -### Q: What are Nimbus keys? -A: A Nimbus key is a type of session key. It is your node’s identification to the block production/verification method on the network, which is called Nimbus. It does NOT store or access funds. The node must always have access to this key in order to collate, so it is a hot key stored on the filesystem. You should keep a backup of this key in a safe - offline - location to be able to transfer your node’s identity to another device should you need to. Find more about nimbus session keys in the docs. - -### Q: What should I look for in the logs? -A: If everything is running smoothly and your node is ready to become a collator, your node logs should contain repeating mentions of `💤 Idle` with a number of peers larger than 0 for both [Relaychain] and [Parachain], e.g. -``` -2022-03-01 17:18:58 [Parachain] 💤 Idle (49 peers), best: #1037783 (0xa0c5…04a8), finalized #1037781 (0xabd5…1c05), ⬇ 16.7kiB/s ⬆ 14.5kiB/s -2022-03-01 17:18:55 [Relaychain] 💤 Idle (49 peers), best: #11619808 (0x24a5…ad58), finalized #11619804 (0xa362…2df4), ⬇ 478.0kiB/s ⬆ 520.5kiB/s -``` -Compare the block number reported in the [Parachain] line to other nodes on the network. They should be equal or very close. -See the docs for more on this - -### Q: How much is the bond to become a collator? -The bond to join the collators pool: 400_000 MANTA diff --git a/docs/manta-atlantic/Collation/images/collator-cancel-leave.png b/docs/manta-atlantic/Collation/images/collator-cancel-leave.png deleted file mode 100644 index a29921a2..00000000 --- a/docs/manta-atlantic/Collation/images/collator-cancel-leave.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:151511c0916472ee797f0f7f4d2059b3f22d949845ab8d0197071e830627347b -size 41347 diff --git a/docs/manta-atlantic/Collation/images/collator-execute-leave.png b/docs/manta-atlantic/Collation/images/collator-execute-leave.png deleted file mode 100644 index 7d8a791b..00000000 --- a/docs/manta-atlantic/Collation/images/collator-execute-leave.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e0f0f5b9dbfbe5366cc17c42e398852b3ae09d4c5aa55575566df94a40fb409b -size 72160 diff --git a/docs/manta-atlantic/Collation/images/collator-go-offline.png b/docs/manta-atlantic/Collation/images/collator-go-offline.png deleted file mode 100644 index 992200c3..00000000 --- a/docs/manta-atlantic/Collation/images/collator-go-offline.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:3c975aa8859b89d63787a5fe0f6eb0073975511721a610ee139e01a4bc2be208 -size 44982 diff --git a/docs/manta-atlantic/Collation/images/collator-go-online.png b/docs/manta-atlantic/Collation/images/collator-go-online.png deleted file mode 100644 index d6ca2d04..00000000 --- a/docs/manta-atlantic/Collation/images/collator-go-online.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:52c9ec29a317a46a396f909425480fc0adbd6cefe30a7135d0ddfe34f5b7714c -size 44835 diff --git a/docs/manta-atlantic/Collation/images/collator-schedule-leave.png b/docs/manta-atlantic/Collation/images/collator-schedule-leave.png deleted file mode 100644 index 0dea18ea..00000000 --- a/docs/manta-atlantic/Collation/images/collator-schedule-leave.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d60f1274282527e088e452accd6936c0dc3ffce80bfa7280a261b7651b65fc06 -size 53553 diff --git a/docs/manta-atlantic/Collator Overview.md b/docs/manta-atlantic/Collator Overview.md deleted file mode 100644 index cbc0398c..00000000 --- a/docs/manta-atlantic/Collator Overview.md +++ /dev/null @@ -1,17 +0,0 @@ -# Manta Collator Docs - -🧩 Overview - -Node maintainers are encouraged and welcome to run Manta collators. No centralized permission is required but a MANTA bond must be posted. - -Free-Market competition between high-performing collators for delegations will ensure a Manta Network runs at maximum performance and censorship resistance. - -## Benefits of Running a Collator[](https://docs.calamari.network/docs/calamari/Staking/Collation/Overview#benefits-of-running-a-collator) - -- Participation in [staking rewards](https://docs.calamari.network/docs/calamari/Staking/Rewards) -- Boosted APY compared to delegation through 10% commission on delegator's share of rewards -- 10% of transaction fees in every block produced by the collator - -## Join the collator maintainer community discussion[](https://docs.calamari.network/docs/calamari/Staking/Collation/Overview#join-the-collator-maintainer-community-discussion) - -- Discord: [Collator Program](https://discord.com/channels/795390654628102165/936300292536942592) diff --git a/docs/manta-atlantic/Collator Requirement.md b/docs/manta-atlantic/Collator Requirement.md deleted file mode 100644 index 0d7f2a77..00000000 --- a/docs/manta-atlantic/Collator Requirement.md +++ /dev/null @@ -1,828 +0,0 @@ -# Requirements - -## MANTA Bond[](https://docs.calamari.network/docs/calamari/Staking/Collation/Requirements#kma-bond) - -400_000 MANTA must be available to post as collator bond - -## Hardware and Infrastructure[](https://docs.calamari.network/docs/calamari/Staking/Collation/Requirements#hardware-and-infrastructure) - -a. Running on your own hardware and within you own premises (recommended): - -- collator system host (note that a substrate collator will utilize all available system ram and all available cpu cores unless specifically configured not to do so) - - cpu: 8 cores - - memory: 32 gb of ram (more is better) - - disk space: 700 gb of disk space dedicated to the blockchain basepath (as of date 2024 Dec 7th, more is better, growing at 200G~300G annually) -- infrastructure and environment - - - network bandwidth: 100 mbps+ - - internet-accessible ports: - - - **31333**: default manta peer-to-peer port - - **31334**: default (embedded-relay) polkadot peer-to-peer port - - **9615**: default manta metrics port - - **9616**: default (embedded-relay) polkadot metrics port - - you should monitor your own collator using the techniques described on the [polkadot wiki](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node). the metrics exposed on ports 9615 and 9616 facilitate this, so these ports should be accessible both from your own prometheus/alertmanager server (which should be configured to alert you) and manta devops' [pulse server](https://pulse.pelagos.systems/) at `18.156.192.254` (monitored by manta devops). - - - an uninterrupted power supply to both the collator node and the network switches and routers that provide its connectivity must be capable of keeping the system online during provider power outages - - a failover 4g or 5g router should be included in your network topology to provide connectivity in the event of a wired or fibre connection failure - - your network management should include automatic dns updates in the event of changes to your nodes publicly accessible ip addressing - -b. Running on AWS EC2 - -- instance type: r5ad.xlarge or similar -- image: Ubuntu 22.04 (latest ubuntu server ami from Canonical/099720109477) - -c. Azure/GCP or other cloud/datacenter provider - -- Please use your judgement to match or surpass the requirements for other environments above - -# **[SetupAndRun](https://docs.calamari.network/docs/calamari/Staking/Collation/Requirements#)** - -# 🚄 Setup and run a Collator - -## 🥡 Installation[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/installation#-installation) - -- docker -- fedora -- ubuntu -- other linux -- pull the latest manta container - -`#!/bin/bash*# Depending on your setup, here are some steps to get started# Upgrade to latest version*sudo apt update && sudo apt upgrade -y*# Install docker*sudo apt install docker.io*# Add current user to docker*sudo usermod -aG docker $USER*# Pull the manta image*docker pull mantanetwork/manta:latest` - -## 📝 Configuration[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/configuration#-configuration) - -some extra command line parameters are required or helpful for collating. - -- fedora -- ubuntu -- other linux - -edit the manta service unit file to include collation parameters in the `ExecStart` command. - -`/usr/lib/systemd/system/manta.service` - -for version `>= v4.6.0` (inclusive) -``` -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --rpc-max-connections 100 \ - --rpc-port 9144 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --rpc-port 9145 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' -``` - -for version `< v4.6.0` (exclusive) -``` -ExecStart=/usr/bin/manta \ - --collator \ - --name 'my parachain collator node name' \ - --chain /usr/share/substrate/manta.json \ - --base-path /var/lib/substrate \ - --port 31333 \ - --ws-port 9144 \ - --ws-max-connections 100 \ - --rpc-port 9133 \ - --rpc-cors all \ - --rpc-methods auto \ - --prometheus-port 9615 \ - --prometheus-external \ - --state-cache-size 0 \ - --bootnodes \ - /dns/a1.manta.systems/tcp/30333/p2p/12D3KooWCpnkG834s9ETesFTWtGqRDjs6Te1UCXHib3iD8GEmXLU \ - /dns/a4.manta.systems/tcp/30333/p2p/12D3KooWN9Zud842idiiUypJF9nzQfNrSsuWQRdtRA8D6sqsPXMb \ - /dns/a5.manta.systems/tcp/30333/p2p/12D3KooWM6Txo8orkxGsSTPByzzWhtTSfdFi2u9KJtd9eWCkry3k \ - /dns/a7.manta.systems/tcp/30333/p2p/12D3KooWFKMcE12XRLZfktX3crfkZyyBetpHsffDjPopYVhQLXwP \ - /dns/c1.manta.systems/tcp/30333/p2p/12D3KooWSNwD7tJkqKGdMfCVTJbbzrGFTGbXoeMFZCTwEytpFCM4 \ - -- \ - --name 'my embedded relay node name' \ - --chain /usr/share/substrate/polkadot.json \ - --port 31334 \ - --ws-port 9145 \ - --rpc-port 9134 \ - --prometheus-port 9616 \ - --prometheus-external \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' - -``` - -### parameters with special significance for collator maintainers[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/configuration#parameters-with-special-significance-for-collator-maintainers) - -two sets of parameters are supplied to the substrate node binary (manta), separated by a double-dash (`--`). the first set controls the behavior of the parachain node. the second set controls the behaviour of the embedded relay-chain node. - -- significant **parachain** parameters - - `-collator`: run in collator mode. behaves the same as `-validator` on relay chains. setting this also causes pruning mode to be set to `archive` (like `-pruning archive`). - - `-name`: parachain node name, displayed on [manta telemetry](https://telemetry.manta.systems/#list/0x4ac80c99289841dd946ef92765bf659a307d39189b3ce374a92b5f0415ee17a1). - - `-port`: parachain peer-to-peer port. manta default is 31333. this port must be accessible over the internet to other manta nodes. - - `-prometheus-port`: parachain metrics port. manta default is 9615. this port must be accessible to the manta metrics monitor at: `18.156.192.254` (`18.156.192.254/32` if you are specifying by subnet) - - `-prometheus-external`: if you are not reverse proxying metrics over ssl, you may need to set this parameter to tell the embedded metrics server to listen on the *all ips* socket (`0.0.0.0:9615`) rather than *localhost only* (`127.0.0.1:9615`) -- significant **relay-chain** parameters - - `-name`: relay-chain node name, displayed on [polkadot telemetry](https://telemetry.manta.systems/#list/0xb0a8d493285c2df73290dfb7e61f870f17b41801197a149ca93654499ea3dafe). - - `-port`: relay-chain peer-to-peer port. manta-embedded-polkadot default is 31334. this port must be accessible over the internet to other polkadot nodes. - - `-prometheus-port`: relay-chain metrics port. manta-embedded-polkadot default is 9616. this port must be accessible to the manta metrics monitor at: `18.156.192.254` (`18.156.192.254/32` if you are specifying by subnet) - - `-prometheus-external`: if you are not reverse proxying metrics over ssl, you may need to set this parameter to tell the embedded metrics server to listen on the *all ips* socket (`0.0.0.0:9616`) rather than *localhost only* (`127.0.0.1:9616`) - -### expose node metrics for monitoring[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/configuration#expose-node-metrics-for-monitoring) - -you should monitor your own collator using the techniques described on the [polkadot wiki](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node). the metrics exposed on ports `9615` and `9616` facilitate this, so these ports (or port `443`, if ssl proxied) should be accessible both from your own prometheus/alertmanager server (which you should configure to alert you, using alertmanager) and manta's [pulse server](https://pulse.pelagos.systems/) at `18.156.192.254` (which is monitored by manta devops). - -### firewall configuration[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/configuration#firewall-configuration) - -several ports are required to be accessible from outside of the node host in order for the collator to function well. for simplicity, the settings documented below use the default ports, however feel free to use alternative ports as required by your infrastructure and network topology. - -- docker -- linux - -``` -30333: default manta peer-to-peer port -30334: default (embedded-relay) polkadot peer-to-peer port -9615: default mantametrics port -9616: default (embedded-relay) polkadot metrics port - -``` - -### reverse proxy metrics over ssl with letsencrypt and nginx[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/configuration#reverse-proxy-metrics-over-ssl-with-letsencrypt-and-nginx) - -it is good practice to serve your metrics over: - -- **ssl**, so that their authenticity and provenance can be verified -- **dns**, so that changes to your ip address don't require a pulse server update - -it also makes it much easier for an alert observer to work out which collators are performing well (or poorly) when they are looking at domain names like `manta.awesome-host.awesome-collators.com` versus ip addresses and port combinations like `123.123.123.123:987` which may not make it obvious wich collator is being observed and wether the metric in question refers to the relay-chain or parachain. - -an easy way to accomplish this is to install certbot and nginx and configure a reverse proxy listening on port 443 and which proxies ssl requests to the local metrics ports. - -the example below assumes: - -- you administer the domain **example.com** -- its dns is managed by cloudflare or route53 -- your nodes hostname is **bob** -- your manta node uses default ports -- your internet gateway (router) port forwards 443/ssl traffic arriving on the routers wan interface to your collator node -- you have certbot installed - -NOTE - -cloudflare and route53 examples follow. google `python3-certbot-dns-${your_dns_provider}` for other examples - -- install certbot and a dns validation plugin - - - fedora - - ubuntu - - ```bash - #!/bin/bash - - sudo dnf install \ - certbot \ - python3-certbot-dns-cloudflare \ - python3-certbot-dns-route53 - - ``` - -- request a cert using a dns plugin so that certbot is able to automatically renew the cert near the expiry date. manually requested certs must be manually updated to keep ssl certs valid, so they should be avoided. - - - cloudflare - - route53 - - ```bash - #!/bin/bash - - sudo certbot certonly \ - --dns-cloudflare \ - --dns-cloudflare-credentials .cloudflare-credentials \ - -d bob.example.com \ - -d manta.metrics.bob.example.com \ - -d polkadot.metrics.bob.example.com - - ``` - -- configure nginx `/etc/nginx/sites-enabled/example.com.conf` to reverse proxy dns subdomains to local metrics ports. - - ``` - server { - server_name manta.metrics.bob.example.com; - listen 443 ssl; - gzip off; - location / { - proxy_pass http://127.0.0.1:9615; - proxy_http_version 1.1; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - } - ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; - include /etc/letsencrypt/options-ssl-nginx.conf; - ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; - } - - server { - server_name polkadot.metrics.bob.example.com; - listen 443 ssl; - gzip off; - location / { - proxy_pass http://127.0.0.1:9616; - proxy_http_version 1.1; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header Host $host; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection "upgrade"; - } - ssl_certificate /etc/letsencrypt/live/bob.example.com/fullchain.pem; - ssl_certificate_key /etc/letsencrypt/live/bob.example.com/privkey.pem; - include /etc/letsencrypt/options-ssl-nginx.conf; - ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; - } - - ``` - -- fedora - -```bash -#!/bin/bash - -default_zone=$(sudo firewall-cmd --get-default-zone) - -*# manta p2p* -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=31333/tcp \ - --permanent - -*# polkadot p2p* -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=31334/tcp \ - --permanent - -*# manta metrics* -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=9615/tcp \ - --permanent - -*# polkadot metrics* -sudo firewall-cmd \ - --zone=${default_zone} \ - --add-port=9616/tcp \ - --permanent -sudo firewall-cmd --reload -``` - -## **⚙️ Running** - -**docker** - -- start your docker node - - ```bash - #Non production sample - docker run \ - -it \ - -p 9933:9933 \ - -p 30333:30333 \ - -p 30334:30334 \ - -p 9615:9615 \ - -p 9516:9516 \ - -v host_path:/container_path \ - --name your_container_name \ - mantanetwork/manta:latest \ - --base-path /container_path/data \ - --keystore-path /container_path/keystore \ - --name your_collator_name \ - --rpc-cors all \ - --collator \ - --rpc-methods=unsafe \ - --unsafe-rpc-external - - #Production sample - docker run \ - -it \ - -p 9933:9933 \ - -p 30333:30333 \ - -p 30334:30334 \ - -v host_path:/container_path \ - --restart=unless-stopped \ - --name your_container_name \ - mantanetwork/manta:latest \ - --base-path /container_path/data \ - --keystore-path /container_path/keystore \ - --name your_collator_name \ - --rpc-cors all \ - --collator \ - --rpc-methods=safe \ - -- \ - --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0' - - ``` - - Examples of these name and paths: - - `host_path:/container_path` => `~/my-manta-db:/manta` - - `your_collator_name` => `Community-Collator-1` - - You may want to consider the following: - - - if using http (not configured for ssl with certbot) for metrics, add ports `p 9615:9615 -p 9616:9616` - - add auto restart to ensure start on system boot or reboot `-restart=unless-stopped` - - remove unsafe-rpb-external when you are ready for production - - change rpc-methods to safe when ready for production `-rpc-methods=safe` - - additional polkadot configuration. at the end of your command stack, add -- to designate Polkadotconfiguration, then add telemetry-url `- --telemetry-url 'wss://api.telemetry.manta.systems/submit/ 0'` - - Ensure you can see a line of log like this: - - `👤 Role: AUTHORITY` - - **fedora** - - - - - check the status of the manta service: - - ```bash - #!/bin/bash - - systemctl status manta.service - - ``` - - - enable manta service (the service will start automatically on system boot): - - ```bash - #!/bin/bash - - sudo systemctl enable manta.service - - ``` - - - start manta service: - - ```bash - #!/bin/bash - - sudo systemctl start manta.service - - ``` - - - stop manta service: - - ```bash - #!/bin/bash - - sudo systemctl stop manta.service - - ``` - - - tail the manta service logs: - - ```bash - #!/bin/bash - - journalctl -u manta.service -f - - ``` - - - debug manta service configuration (run manta as the manta user, to quickly check for runtime errors): - - for version `>= v4.6.0` (inclusive) - ```jsx - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta .json --base-path /var/lib/substrate --port 31333 --rpc-max-connections 100 --rpc-port 9144 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/crispy.manta.systems/tcp/30333/p2p/12D3KooWNE4LBfkYB2B7D4r9vL54YMMGsfAsXdkhWfBw8VHJSEQc /dns/crunchy.manta.systems/tcp/30333/p2p/12D3KooWL3ELxcoMGA6han3wPQoym5DKbYHqkWkCuqyjaCXpyJTt /dns/hotdog.manta.systems/tcp/30333/p2p/12D3KooWBdto53HnArmLdtf2RXzNWti7hD5mML7DWGZPD8q4cywv /dns/tasty.manta.systems/tcp/30333/p2p/12D3KooWGs2hfnRQ3Y2eAoUyWKUL3g7Jmcsf8FpyhVYeNpXeBMSu /dns/tender.manta.systems/tcp/30333/p2p/12D3KooWNXZeUSEKRPsp1yiDH99qSVawQSWHqG4umPjgHsn1joci -- --chain /usr/share/substrate/polkadot.json' - ``` - - for version `< v4.6.0` (exclusive) - ```jsx - #!/bin/bash - - sudo -H -u manta bash -c '/usr/bin/manta --chain /usr/share/substrate/manta .json --base-path /var/lib/substrate --port 31333 --ws-port 9144 --ws-max-connections 100 --rpc-port 9133 --rpc-cors all --rpc-methods safe --state-cache-size 0 --bootnodes /dns/crispy.manta.systems/tcp/30333/p2p/12D3KooWNE4LBfkYB2B7D4r9vL54YMMGsfAsXdkhWfBw8VHJSEQc /dns/crunchy.manta.systems/tcp/30333/p2p/12D3KooWL3ELxcoMGA6han3wPQoym5DKbYHqkWkCuqyjaCXpyJTt /dns/hotdog.manta.systems/tcp/30333/p2p/12D3KooWBdto53HnArmLdtf2RXzNWti7hD5mML7DWGZPD8q4cywv /dns/tasty.manta.systems/tcp/30333/p2p/12D3KooWGs2hfnRQ3Y2eAoUyWKUL3g7Jmcsf8FpyhVYeNpXeBMSu /dns/tender.manta.systems/tcp/30333/p2p/12D3KooWNXZeUSEKRPsp1yiDH99qSVawQSWHqG4umPjgHsn1joci -- --chain /usr/share/substrate/polkadot.json' - ``` - - ## 🤝 Sync the relay and para chains[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/sync#-sync-the-relay-and-para-chains) - - if you have no peers on the relaychain or your node is failing to verify new blocks, ensure your node’s clock is accurate, ie. by syncing with an ntp timeserver. - - you must sync both the manta parachain and polkadot relay-chain before the motion to include your collator is passed. completely synced substrate blockchain nodes will show an idle state in their logs for both `[Relaychain]` and `[Parachain]` and looks like so: - - ``` - 2022-03-01 17:18:58 [Parachain] 💤 Idle (49 peers), best: #1037783 (0xa0c5…04a8), finalized #1037781 (0xabd5…1c05), ⬇ 16.7kiB/s ⬆ 14.5kiB/s - 2022-03-01 17:18:55 [Relaychain] 💤 Idle (49 peers), best: #11619808 (0x24a5…ad58), finalized #11619804 (0xa362…2df4), ⬇ 478.0kiB/s ⬆ 520.5kiB/s - - ``` - - if your collator node logs do not contain both `[Relaychain] 💤 Idle` and `[Parachain] 💤 Idle` messages, your node is still syncing. do not bind a collator account to an aura session key for a node whose sync is incomplete. doing so will result in ejection of your collator. - - the best way to sync is to just run your node until the idle messages show up in your logs. doing so may take up to 2 weeks, however it will also give you a perfect, cryptographically validated and complete history of the blockchains you are syncing. - - if you cannot wait for the recommended sync mechanism to complete, you may obtain a fast-sync copy of the manta and polkadotblockchains taken from manta's backup nodes. to do so: - - - stop your manta service - - delete your manta and polkadotdatabases from the basepath (taking care not to delete your keystores which are also under the basepath) - - fetch a copy of the blockchains, extracting if required - - ensure that the entire basepath and all of its contents are owned by the user your node runs under (change ownership recursively if required) - - start your manta service - - verify that the node is syncing correctly - - wait for both parachain and relay-chain idle messages to appear in the logs - - fast-sync commands (requires [aws cli](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)): - - ```bash - #!/bin/bash - - # install zstd - sudo apt install zstd # this command might be different accordingly to your distro - - *# stop manta service* - sudo systemctl stop manta.service - - *# sync manta blockchain database - lib_path="/var/lib/substrate" # change this accordingly - identity="$(sudo -H -u manta cat "${lib_path}"*/chains/manta/db/full/IDENTITY*)" - sudo -H -u manta rm -r "${lib_path}"*/chains/manta/db/full - *curl -L https://manta-polkadot.s3.amazonaws.com/backup/2023-12-05UTC/manta.tar.zst | sudo -H -u manta tar --zstd -C "${lib_path}"*/chains/manta *-xv* - echo "${identity}" | sudo -H -u manta tee "*${lib_path}*"/chains/manta/db/full/IDENTITY - - *# sync polkadot blockchain database - identity_relay="$(sudo -H -u manta cat "${lib_path}"/polkadot/chains/polkadot/db*/full/IDENTITY*)" - identity_para="$(sudo -H -u manta cat "${lib_path}"/polkadot/chains/polkadot/db/full/parachains/db/*IDENTITY*)" - sudo -H -u manta rm -r "${lib_path}"/polkadot/chains/polkadot/db*/full - *curl -L https://manta-polkadot.s3.amazonaws.com/backup/2023-12-05UTC/manta-polkadot.tar.zst | sudo -H -u manta tar --zstd -C "${lib_path}"/polkadot/chains/polkadot* -xv - echo "${identity_relay}" | sudo -H -u manta tee "*${lib_path}*"*/polkadot/chains/polkadot/db*/full/IDENTITY - echo "${identity_para}" | sudo -H -u manta tee "*${lib_path}*"*/polkadot/chains/polkadot/db/full/parachains/db/*IDENTITY - - *# update database `current` manifests* - sudo -H -u manta bash -c 'basename $(ls "*${lib_path}*"/chains/manta/db/full/MANIFEST-*) > "*${lib_path}*"/chains/manta/db/full/CURRENT' - sudo -H -u manta bash -c 'basename $(ls "*${lib_path}*"/polkadot/chains/*polkadot*/db/full/MANIFEST-*) > "*${lib_path}*"/polkadot/chains/*polkadot*/db/full/CURRENT' - sudo -H -u manta bash -c 'basename $(ls "*${lib_path}*"/polkadot/chains/polkadot/db/full/parachains/db/MANIFEST-*) > "*${lib_path}*"/polkadot/chains/*polkadot*/db/full/parachains/db/CURRENT' - ``` - - ## 🔑 Collator session keys[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/keys#-collator-session-keys) - - To collate on the manta chain, two accounts/keys are required at any given time: - - - **Collator Account**: This is the account that holds the collator bond. it is also the account that the collator's share of transaction fees will be deposited into. the bond cannot be spent while the account is collating. the keys for this account should be protected carefully and should never exist on the filesystem of the collator node. - - **Nimbus Session Key**: This is a disposable account used to identify your individual node and blocks it has produced with other nodes on the network. Substrate stores this key in the parachain keystore on the filesystem of the collator node (`/var/lib/substrate/chains/manta/keystore`) when either of the author_insertKey or author_rotateKeys RPC methods are called. As this is a hot-wallet key that can be abused to impersonate your node if leaked (potentially leading to slashing of deposited funds in the future) it is good practice to infrequently rotate the session key - typically every half year, once per session at most. - - Both keys are associated with one another to create a bond-node pair for transaction fee reward payouts and (in the future) slashing. - - In addition, your node might have two additional keys in storage: - - - **Aura Session Key**: Now-unused key to decide eligibility to author blocks *before* v3.3.0 - - **VRF Session Key**: Placeholder for a future [VRF](https://en.wikipedia.org/wiki/Verifiable_random_function)based block proposer assignment mechanism that is inactive as of v3.2.1. The future mechanism will use the key you set here, so if you set it now, you won't have to touch the node later when it is enabled. - - DANGER - - Both of the following methods (insert, rotate) use an **unsafe** RPC call to set the node session key. In order to use them, you must stop the node if running and start it with a `--rpc-methods=unsafe` CLI parameter. This mode of operation is **unsafe** when exposed to the public internet, restart the node without this CLI parameter when done. - - - insertKey - - rotateKeys - - This command demonstrates a session key insertion using a key created with - - - Build/Install [subkey](https://docs.substrate.io/reference/command-line-tools/subkey/) for your platform - - Install the [jq utility](https://stedolan.github.io/jq/download/) for your platform - - Generate a Nimbus (nmbs) key and insert/check payloads with subkey/jq - - ```bash - #!/bin/bash - subkey generate \ - --scheme sr25519 \ - --network manta\ - --output-type json \ - --words 12 \ - > ./nmbs.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_insertKey", - "params": [ - "nmbs", - "nmbs mnemonic phrase", - "nmbs hex public key" - ] - }' | jq \ - --arg mnemonic "$(jq -r .secretPhrase ./nmbs.json)" \ - --arg hex "$(jq -r .publicKey ./nmbs.json)" \ - '. | .params[1] = $mnemonic | .params[2] = $hex' > ./insert-nmbs.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_hasKey", - "params": [ - "nmbs hex public key", - "nmbs" - ] - }' | jq \ - --arg hex "$(jq -r .publicKey ./nmbs.json)" \ - '. | .params[0] = $hex' > ./check-nmbs.json - - ``` - - - Generate a VRF (rand) key and insert/check payloads with subkey/jq - - ```bash - #!/bin/bash - subkey generate \ - --scheme sr25519 \ - --network manta \ - --output-type json \ - --words 12 \ - > ./rand.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_insertKey", - "params": [ - "rand", - "rand mnemonic phrase", - "rand hex public key" - ] - }' | jq \ - --arg mnemonic "$(jq -r .secretPhrase ./rand.json)" \ - --arg hex "$(jq -r .publicKey ./rand.json)" \ - '. | .params[1] = $mnemonic | .params[2] = $hex' > ./insert-rand.json - echo '{ - "jsonrpc":"2.0", - "id":1, - "method":"author_hasKey", - "params": [ - "rand hex public key", - "rand" - ] - }' | jq \ - --arg hex "$(jq -r .publicKey ./rand.json)" \ - '. | .params[0] = $hex' > ./check-rand.json - - ``` - - - Execute the `author_insertKey` RPC payloads - - ```bash - #!/bin/bash - for keyin nmbs rand;do - curl \ - --header 'Content-Type: application/json;charset=utf-8' \ - --data @./insert-${key}.json \ - http://localhost:9133 - done - - ``` - - - **Validation**: Check that the session keys stored in the node match the generated ones (below command returns a `"result":true` field) - - ```bash - #!/bin/bash - for keyin nmbs rand;do - has_key=$(curl \ - -s \ - --header 'Content-Type: application/json;charset=utf-8' \ - --data @./check-${key}.json \ - http://localhost:9133 ) - echo "${key}: ${has_key}" - done - - ``` - - - **Validation**: Check that node logs show your node is running with role: `AUTHORITY` (check the timestamps) - - ```bash - #!/bin/bash - journalctl -u manta.service -g AUTHORITY - - ``` - - - Note down the `publicKey` fields from `nmbs.json` and `rand.json` and/or back-up these key files to a **secure**, offline location - - **Cleanup**: Remove secrets from the filesystem that were created in earlier steps - - ```bash - #!/bin/bash - rm ./nmbs.json ./rand.json ./insert-nmbs.json ./insert-rand.json - - ``` - - NOTE - - Verify that your node does *NOT* show log lines like `2022-07-19 17:24:18 [Parachain] 🔏 No Nimbus keys available. We will not be able to author.` - - If it does even after restarting the node the procedure above failed, redo the above steps following the instructions closely. - - ### Bind collator account to the Session Keys[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/keys#bind-collator-account-to-the-session-keys) - - NOTE - - If your collator node logs do not contain both `[Relaychain] 💤 Idle` and `[Parachain] 💤 Idle` messages, your node is still syncing. **DO NOT BIND** a collator account to session key if sync is incomplete. Doing so may result in ejection of your collator. - - Account binding is done on-chain. The simplest way to do this is using polkadot.js. - - - Load [manta/developer/extrinsics](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/extrinsics) in a browser: - -
- 1 -
- - - NOTE - - - In the first box, labelled "using the selected account", select the collator account holding the [collator MANTA bond](https://docs.calamari.network/docs/calamari/Staking/Collation/Requirements#kma-bond). - - In the second (dropdown) box labelled "submit the following extrinsic", select `session`. - - In the third (dropdown) box, select `setKeys(keys, proof)` - - In the fourth box labelled `aura: SpConsensusAuraSr25519AppSr25519Public`, enter the hex public key of the Aura session key you generated earlier or a dummy value, e.g. `0x0000000000000000000000000000000000000000000000000000000000000000` - - NOTE - - `aura` is an inactive key from pre-v3.3.0 versions of the node. The value you provide here will not be used - - - In the fifth box, labelled `nimbus: NimbusPrimitivesNimbusCryptoPublic`, enter the hex public key of the Nimbus session key you generated earlier. - - In the sixth box, labelled `vrf: SessionKeyPrimitivesVrfVrfCryptoPublic`, enter the hex public key of the VRF session key you generated earlier. - - In the seventh box labelled `proof: Bytes`, enter the hex public key of the Nimbus session key *again*. - - Click on the `Submit Transaction` button and wait for confirmation (a green tick), to appear in the upper right corner of the browser window. - - - Verfy that the collator account and the Session keys are *bound* by loading [manta/developer/chain state](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/chainstate) in a browser: - -
- 2 -
- - NOTE - - - In the first (dropdown) box, labelled "selected state query", select `session`. - - In the second (dropdown) box, select `nextKeys(AccountId32): Option`. - - In the third (dropdown) box, select the collator account holding the MANTA collator bond. - - Leave the `include option` checkbox selected. - - Leave the `blockhash to query at` box set to the default `0x` value. - - Click on the small plus (`+`) icon to the right of the second dropdown box. - - Verify that a new box labelled `session.nextKeys(AccountId32): Option` appears and contains a json object whose `aura`,`nimbus` and `vrf` values are set to the hex public keys generated earlier. - - ## ⏳ Bond MANTA[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/bond#-bond-kma) - - Prospective Collators must post MANTA as a bond on-chain before they are considered collation candidates. This amount must be present as a transferable balance within the collator account at the time that the `joinCandidates` extrinsic is run. - - At launch (Manta v3.4.0), this bond is set to a minimum of **400 Thousand** MANTA. The current candidacy bond amount can be confirmed [on-chain](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.calamari.systems%2F#/chainstate/constants) > parachainStaking > minCandidateStk(). - - NOTE - - The bonded MANTA are *locked* in the account, i.e. until you remove the lock by exiting the candidate set, they are: - - - NOT TRANSFERRABLE, but - - Available for other on-chain actions like **voting in governance** - - Unlocking these tokens is possible through [unbonding](https://docs.calamari.network/docs/calamari/Staking/Collation/Unbond) and takes a minimum of 7 days - - ### 💓 Starting collation[](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/bond#-starting-collation) - - Run the `joinCandidates` [extrinsic](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems%2F#/extrinsics) from the account you set [your session keys](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/keys) to in a browser. - -
- 3 -
- - NOTE - - **bond** is 400_000_000_000_000_000_000_000 MANTA ( 400 Thousand MANTA with 18 decimals ) - - **candidateCount** is a hint for transaction weight ( i.e. gas fee ) that should be larger than the current number of registered collators ( or the transaction will fail ). The current number can be found by counting the entries on the [manta chain](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.manta.systems#/chainstate/constants) > parachainStaking > candidatePool(): u128. It is safe to just set a high number, but reducing it as much as possible reduces the estimated gas fees that must be available in your account in addition to the bond amount for the transaction to succeed. - - Your collator will join the set of block producers and become eligible for rewards at the beginning of the next *round* ( i.e. after a maximum of 6 hours ) **if it is in the top 70 of registered node candidates by total stake** ( i.e. your collator bond + sum of all delegations on your node ) - - # Maintenance - - ### Manta Binary Upgrades[](https://docs.calamari.network/docs/calamari/Staking/Collation/Maintenance#manta-binary-upgrades) - - Although [forkless upgrades](https://wiki.polkadot.network/docs/learn-runtime-upgrades#forkless-upgrades) largely allow for upgrades without needing to change the node software, every once in a while, chain upgrades will break the client binary and require manual updating. - - ⚠️ Please follow the [Manta node github releases](https://github.com/Manta-Network/Manta/releases) closely for upgrade instructions. - - ### Taking the Collator Offline[](https://docs.calamari.network/docs/calamari/Staking/Collation/Maintenance#taking-the-collator-offline) - - You can (and should) notify the network your collator will be offline **for more than 6 hours** by running `parachainStaking::goOffline()` from your collator account. - -
- 4 -
- - This will remove you from the set of candidates temporarily without removing your collators It takes effect at the start of the next round after execution (at most 6 hours). - - Neither you, nor your delegators will receive any rewards in the time you are offline (whether you run the above extrinsic or not), so ensure to keep downtimes to a minimum or you will risk losing delegators and thus your spot in the active collator set. - - Conversely, once your maintenance concludes, re-add your collator to the active set with `parachainStaking::goOnline()` - -
- 5 -
- - Again, this takes effect at the start of the next round after execution (at most 6 hours). - - # Reduce Bond - - ### Reduce Bond[](https://docs.calamari.network/docs/calamari/Staking/Collation/Reduce%20Bond#reduce-bond) - - - Run the `parachainStaking` extrinsic `scheduleCandidateBondLess` function [extrinsic](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.calamari.systems%2F#/extrinsics) from the account you bonded your collator with and enter the desired amount to reduce from bond. Remember polkadot.js needs, the MANTA amount with 12 decmals. - - Wait for 7 days. - - Run the `parachainStaking` extrinsic `executeCandidateBondLess` function [extrinsic](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fws.calamari.systems%2F#/extrinsics) from the account you bonded your collator with to withdraw the expected MANTA to the account. - - ## 💔 Leave the Collator Set and Recover the MANTA Bond[](https://docs.calamari.network/docs/calamari/Staking/Collation/Unbond#-leave-the-collator-set-and-recover-the-kma-bond) - - NOTE - - The screenshots below show example values for the `candidateCount` and `candidateDelegationCount` parameters. Ensure the number you provide to - - - `candidateCount` is larger than the number of currently registered **collators** on the network - - `candidateDelegationCount` is larger than the number of **delegators** on the collator you want to unbond - - It is not necessary to be exact, this parameter is a gas fee hint that is used to reserve a gas fee on execution. Unused gas is refunded afterwards, so it is ok to use a large number here if you don't want to count and have enough MANTA - - In order to fully offboard your collator, execute `parachainStaking::scheduleLeaveCandidates` - -
- 6 -
- - This will mark your collator as exiting, making it ineligible for future rewards. - - **After 7 days** you (or anyone else) can execute the removal extrinsic for your collator which will unlock your bonded MANTA - -
- 7 -
- - If you change your mind, you can always cancel the unbonding (unless you've already sent the `execute` extrinsic above) - -
- 8 -
- - # CollatorFAQ - - ### Q: How to setup and run a Collator?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-how-to-setup-and-run-a-collator) - - See the [collator setup guide](https://docs.calamari.network/docs/calamari/Staking/Collation/SetupAndRun/installation) - - ### Q: Where can I find the current collators?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-where-can-i-find-the-current-collators) - - [https://sparta.manta.systems/](https://sparta.calamari.systems/) - - ### Q: Where can I get help?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-where-can-i-get-help) - - A: Come join us on the Manta & MantaNetwork Discord Community in the #collator-candidates channel and you’ll find both community members who’ve had similar questions before and team members to help out. - - ### Q: What are the different networks?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-what-are-the-different-networks) - - A: There are two networks, each will require dedicated hardware. - - - Manta Network - production network on Polkadot (Not yet live) - - Calamari Network - canary network on Kusama - - ### Q: What are Nimbus keys?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-what-are-nimbus-keys) - - A: A Nimbus key is a type of session key. It is your node’s identification to the block production/verification method on the network, which is called Nimbus. It does NOT store or access funds. The node must always have access to this key in order to collate, so it is a hot key stored on the filesystem. You should keep a backup of this key in a safe - offline - location to be able to transfer your node’s identity to another device should you need to. Find more about nimbus session keys in the docs. - - ### Q: What should I look for in the logs?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-what-should-i-look-for-in-the-logs) - - A: If everything is running smoothly and your node is ready to become a collator, your node logs should contain repeating mentions of `💤 Idle` with a number of peers larger than 0 for both [Relaychain] and [Parachain], e.g. - - ``` - 2022-03-01 17:18:58 [Parachain] 💤 Idle (49 peers), best: #1037783 (0xa0c5…04a8), finalized #1037781 (0xabd5…1c05), ⬇ 16.7kiB/s ⬆ 14.5kiB/s - 2022-03-01 17:18:55 [Relaychain] 💤 Idle (49 peers), best: #11619808 (0x24a5…ad58), finalized #11619804 (0xa362…2df4), ⬇ 478.0kiB/s ⬆ 520.5kiB/s - - ``` - - Compare the block number reported in the [Parachain] line to other nodes on the network. They should be equal or very close. See the docs for more on this - - ### Q: How much is the bond to become a collator?[](https://docs.calamari.network/docs/calamari/Staking/Collation/CollatorFAQ#q-how-much-is-the-bond-to-become-a-collator) - - The bond to join the collators pool: 400_000 MANTA - - # Early Collator Program - - In recognition of the early support collators lent to the network through early 2024 when there was little incentive to doing so, we propose the following time-limited Early Collator Program to reward their support and allow them to accrue part of the MANTA amount necessary to continue running collators on the network through staking rewards: - - - This program is open to anyone (~30 people) with an active collator registered with the previous *Community Collator Program* before launch of staking - - An Early Collator will be allowed to join the staking set **_once_** at a 400_000 minimum bond through the rest of 2024. - - If the collator leaves the set for any reason, the normal 400_000 MANTA bond will be required rejoin. - - There will be no intervention in free-market mechanics beside the above lower entry-bond on behalf of early collators. - - Early 2024 will see a runtime upgrade or governance motion that disables this mechanism AND will forcibly off-board any collator in the set below 400_000 MANTA self-bond. diff --git a/docs/manta-atlantic/Network Information.md b/docs/manta-atlantic/Network Information.md deleted file mode 100644 index 1c30f061..00000000 --- a/docs/manta-atlantic/Network Information.md +++ /dev/null @@ -1,32 +0,0 @@ -# Network Information - -## Manta Atlantic Mainnet - -| Category | Information | -| --------------- | ------------------------------------------------------ | -| Network Name | Manta Atlantic Mainnet | -| Explorer URL | [https://manta.subscan.io](https://manta.subscan.io) | -| RPC URL | wss://ws.manta.systems | -| Chain Type | Polkadot Parachain | -| Polkadot Para ID| 2104 | -| Native Token | name: Manta | -| | symbol: MANTA | -| | decimals: 18 | -| Account Prefix | 77 | -| Genesis Hash | 0xf3c7ad88f6a80f366c4be216691411ef0622e8b809b1046ea297ef106058d4eb | - - -## Manta Atlantic Canary Net - -| Category | Information | -| --------------- | ------------------------------------------------------ | -| Network Name | Manta Atlantic Canary Net | -| Explorer URL | [https://calamari.subscan.io](https://calamari.subscan.io) | -| RPC URL | wss://calamari.systems | -| Chain Type | Kusama Parachain | -| Kusama Para ID | 2084 | -| Native Token | name: Calamari | -| | symbol: KMA | -| | decimals: 12 | -| Account Prefix | 78 | -| Genesis Hash | 0x4ac80c99289841dd946ef92765bf659a307d39189b3ce374a92b5f0415ee17a1 | diff --git a/docs/manta-atlantic/Node/01-Overview.md b/docs/manta-atlantic/Node/01-Overview.md deleted file mode 100644 index 4593129c..00000000 --- a/docs/manta-atlantic/Node/01-Overview.md +++ /dev/null @@ -1,16 +0,0 @@ -# 🧩 Overview - -Node maintainers are encouraged and welcome to run Manta Node. Varies types of node can be Archive Node, Full Node, RPC Node. - -## Benefits of Running a Node - -- The capability to deploy, oversee, and upgrade nodes as required, along with continuous monitoring of their performance. -- Establishment of high-quality connectivity suitable for creating and administering smart contracts, handling transactions, and retrieving blockchain data through protocols such as JSON-RPC, REST, and WebSockets. -- Access to real-time blockchain data and analytics. -- Simplified integration of blockchain technology into applications, avoiding the need for complex configurations. -- Consistent, reliable connectivity -- Service Level Agreements (SLAs) to align with specific business needs, ensuring the delivery of services. - -## Join the node maintainer community discussion - -- Telegram: [Collator Program](https://t.me/+C6zfp5cRG-A3ZDQ1) diff --git a/docs/manta-atlantic/Node/02-Requirements.md b/docs/manta-atlantic/Node/02-Requirements.md deleted file mode 100644 index f683b5a4..00000000 --- a/docs/manta-atlantic/Node/02-Requirements.md +++ /dev/null @@ -1,27 +0,0 @@ -## Hardware and Infrastructure - -a. Running on your own hardware and within you own premises (recommended): - -- node system host - - cpu: 8 cores - - memory: 32 gb of ram (more is better) - - disk space: 700 gb of disk space dedicated to the blockchain basepath (as of date 2024 Dec 7th, more is better, growing at 200G~300G annually) -- infrastructure and environment - - network bandwidth: 100 mbps+ - - internet-accessible ports: - - **31333**: default manta peer-to-peer port - - **31334**: default (embedded-relay) polkadot peer-to-peer port - - **9615**: default manta metrics port - - **9616**: default (embedded-relay) polkadot metrics port - - you should monitor your own node using the techniques described on the [polkadot wiki](https://wiki.polkadot.network/docs/maintain-guides-how-to-monitor-your-node). the metrics exposed on ports 9615 and 9616 facilitate this, so these ports should be accessible both from your own prometheus/alertmanager server (which should be configured to alert you) and manta devops' [pulse server](https://pulse.pelagos.systems) at `18.156.192.254` (monitored by manta devops). - - an uninterrupted power supply to both the node and the network switches and routers that provide its connectivity must be capable of keeping the system online during provider power outages - - a failover 4g or 5g router should be included in your network topology to provide connectivity in the event of a wired or fibre connection failure - - your network management should include automatic dns updates in the event of changes to your nodes publicly accessible ip addressing - -b. Running on AWS EC2 -- instance type: r5ad.xlarge or similar -- image: Ubuntu 22.04 (latest ubuntu server ami from Canonical/099720109477) - -c. Azure/GCP or other cloud/datacenter provider -- Please use your judgement to match or surpass the requirements for other environments above diff --git a/docs/manta-atlantic/Node/03-SetupAndRun/01-full_node.md b/docs/manta-atlantic/Node/03-SetupAndRun/01-full_node.md deleted file mode 100644 index c9029adc..00000000 --- a/docs/manta-atlantic/Node/03-SetupAndRun/01-full_node.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 2 -sidebar_label: 🦾 Full Node -title: 🚄 Setup and run a Full Node -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## 🥡 Full Node -A full node prunes historical states: all finalized blocks' states older than a configurable number except the genesis block's state. This is 256 blocks from the last finalized one by default. A pruned node this way requires much less space than an archive node. - -By specifying RPC endpoint parameters, node can be accessed over the WebSocket protocol, which can be used to access the underlying network and/or validator node. By default, you can access your node's RPC server from localhost (for example, to rotate keys or do other maintenance). - -### Configuration - -- --base-path (e.g `/opt/manta/lib`) -- --chain manta - -for version `>= v4.6.0` (inclusive) - -- --rpc-port (e.g `9944`) -- --rpc-cors (e.g `all`) -- --rpc-max-connections (default: `100`) -- --rpc-methods (e.g `safe`) - -for version `< v4.6.0` (exclusive) - -- --ws-port (e.g `9944`) -- --ws-max-connections (default: `100`) -- --rpc-port (e.g `9933`) -- --rpc-cors (e.g. `all`) -- --rpc-methods (e.g `safe`) - - -### Example Command - -for version `>= v4.6.0` (inclusive) - -```bash -./manta --base-path /opt/manta/lib --chain manta --rpc-port 9944 --rpc-cors all --rpc-max-connections 100 --rpc-methods safe -``` - -for version `< v4.6.0` (exclusive) - -```bash -./manta --base-path /opt/manta/lib --chain manta --rpc-port 9933 --rpc-cors all --ws-max-connections 100 --ws-port 9944 -``` - -### Check Full Node Logs - -check for `👤 Role: FULL` line in logs - -```bash -Jan 10 00:06:40 f1.manta.systems manta[2795938]: 2024-01-10 00:06:40 ❤️ by Manta Network, 2020-2024 -Jan 10 00:06:40 f1.manta.systems manta[2795938]: 2024-01-10 00:06:40 📋 Chain specification: Manta Parachain -Jan 10 00:06:40 f1.manta.systems manta[2795938]: 2024-01-10 00:06:40 🏷 Node name: 🦾 f1 🦾 -Jan 10 00:06:40 f1.manta.systems manta[2795938]: 2024-01-10 00:06:40 👤 Role: FULL -Jan 10 00:06:40 f1.manta.systems manta[2795938]: 2024-01-10 00:06:40 💾 Database: RocksDb at /var/lib/substrate/chains/manta/db/full -Jan 10 00:06:40 f1.manta.systems manta[2795938]: 2024-01-10 00:06:40 ⛓ Native runtime: manta-4600 (manta-1.tx7.au1) -``` - -### Test RPC Node - -```bash -curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "rpc_methods"}' http://127.0.0.1:9944/ -``` diff --git a/docs/manta-atlantic/Node/03-SetupAndRun/02-archive_node.md b/docs/manta-atlantic/Node/03-SetupAndRun/02-archive_node.md deleted file mode 100644 index 141e34cf..00000000 --- a/docs/manta-atlantic/Node/03-SetupAndRun/02-archive_node.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -sidebar_position: 1 -sidebar_label: 🗃️ Archive Node -title: 🚄 Setup and run a Archive Node -hide_title: false ---- - -import Tabs from '@theme/Tabs'; -import TabItem from '@theme/TabItem'; - -## 🥡 Archive Node - -An archive node keeps all the past blocks and their states. An archive node makes it convenient to query the past state of the chain at any point in time. Finding out what an account's balance at a particular block was or which extrinsics resulted in a specific state change are fast operations when using an archive node. However, an archive node takes up a lot of disk space.(For Polkadot's 20 millionth block, it took up around 328 GB.) - -Similar to full node rpc parameters can also be specified serve the archive node as rpc node - -### Configuration - -- --pruning archive -- --base-path (e.g `/opt/manta/lib`) -- --chain manta - -for version `>= v4.6.0` (inclusive) - -- --rpc-port (e.g `9944`) -- --rpc-cors (e.g `all`) -- --rpc-max-connections (default: `100`) -- --rpc-methods (e.g `safe`) - -for version `< v4.6.0` (exclusive) - -- --ws-port (e.g `9944`) -- --ws-max-connections (default: `100`) -- --rpc-port (e.g `9933`) -- --rpc-cors (e.g. `all`) - -### Example Command - -for version `>= v4.6.0` (inclusive) - -```bash -./manta --base-path /opt/manta/lib --chain manta --pruning archive --rpc-port 9944 --rpc-cors all --rpc-max-connections 100 --rpc-methods safe -``` - -for version `< v4.6.0` (exclusive) - -```bash -./manta --base-path /opt/manta/lib --chain manta --pruning archive --rpc-port 9933 --rpc-cors all --ws-max-connections 100 --ws-port 9944 -``` - -### Check Archive Node Logs - -check for `👤 Role: FULL` line in logs - -```bash -Jan 10 00:06:40 a7.manta.systems manta[2795938]: 2024-01-10 00:06:40 ❤️ by Manta Network, 2020-2024 -Jan 10 00:06:40 a7.manta.systems manta[2795938]: 2024-01-10 00:06:40 📋 Chain specification: Manta Parachain -Jan 10 00:06:40 a7.manta.systems manta[2795938]: 2024-01-10 00:06:40 🏷 Node name: 🗃️ a7 🗃️ -Jan 10 00:06:40 a7.manta.systems manta[2795938]: 2024-01-10 00:06:40 👤 Role: FULL -Jan 10 00:06:40 a7.manta.systems manta[2795938]: 2024-01-10 00:06:40 💾 Database: RocksDb at /var/lib/substrate/chains/manta/db/full -Jan 10 00:06:40 a7.manta.systems manta[2795938]: 2024-01-10 00:06:40 ⛓ Native runtime: manta-4600 (manta-1.tx7.au1) -``` - -### Test RPC Node - -```bash -curl -H "Content-Type: application/json" -d '{"id":1, "jsonrpc":"2.0", "method": "rpc_methods"}' http://127.0.0.1:9944/ -``` diff --git a/docs/manta-atlantic/Staking/01-Overview.md b/docs/manta-atlantic/Staking/01-Overview.md deleted file mode 100644 index bc7a7537..00000000 --- a/docs/manta-atlantic/Staking/01-Overview.md +++ /dev/null @@ -1,48 +0,0 @@ -:::danger Manta Atlantic Deprecation Notice -Manta Atlantic is being deprecated. **Staking rewards stopped on May 1, 2026**, and all remaining staked positions are being forcibly unbonded. The parachain slot will expire in late July 2026. - -**Action Required:** Please unstake your MANTA and migrate your assets to Manta Pacific using the [Migration DApp](https://app.manta.network/manta/migrate). See the [Migration FAQ](/docs/manta-atlantic/migration-faq) for full details. -::: - -:::note Historical Reference -The content below describes how Manta Atlantic staking worked. Staking is no longer active. New staking has not been accepted since March 18, 2026. -::: - -Manta Network runs a delegated proof-of-stake (DPoS) consensus mechanism. - -Similar to other Layer 1 blockchains, block producers are selected out of a set of candidates based on the total MANTA stake backing each specific block producer candidate - in our case called a `collator`. In addition, users who don't wish to run their own `collator` can instead `delegate` their MANTA token to an existing collator and gain a share of its rewards. - -### What does this mean for MANTA holders -1. High-performing block producers voted in through delegation => cheapest possible gas fees for transactions -2. Many independent collators => high censorship resistance -3. You can generate yield on your MANTA by participating in staking rewards - -### I have staked MANTA — what should I do now? - -Since staking has ended, your immediate next steps are: - -1. **Unstake your MANTA** — If your position has not yet been forcibly unbonded, initiate unstaking via the [Migration DApp](https://app.manta.network/manta/migrate). The standard 7-day unbonding period applies. -2. **Migrate to Manta Pacific** — Once unbonded, use the Migration DApp to bridge your MANTA to Manta Pacific (or to Polkadot / other parachains via XCM). -3. **Missed the deadline?** — Don't worry. A chain state snapshot will be taken before the slot expires. All unmigrated MANTA will be airdropped 1:1 to your corresponding address on Manta Pacific. - -:::note -The automatic 1:1 airdrop applies only to MANTA tokens. Non-MANTA assets (DOT, GLMR, USDt, etc.) must be migrated manually before the chain stops producing blocks. -::: - ---- - -### Historical: How staking worked (for reference) - -#### Routes to participate (historical) - -1. Become a `Delegator` — All you needed was some MANTA and [the delegation dApp](Delegation/dApp%20Overview) -2. Become a `Collator Runner` — Required technical experience, dedicated hardware, and a larger MANTA bond. See [the collator section](../Collation/Overview) - -## What is DPoS? -### In contrast to other PoS Networks -In contrast to other networks like Ethereum, where no on-chain mechanism exists for multiple token holders to collaborate (staking pools are used as an off-chain crutch here), our DPoS solution allows for people who can't or won't run their own collator node to `delegate` their token to one or multiple specific `collators`, thus voting that they do a good job with producing blocks, helping ensure its position in the set of at most 70 active collators and in return share in the [block rewards](Rewards) the backed collator obtains. -In order create a semi-stable set of collators, these locked tokens are subject to a 7 day waiting period if a user wishes to recover his tokens from a staking lock or change the target collator they're delegating to. - -### In contrast to Polkadot/Kusama’s NPoS (nominated proof of stake) -On Polkadot/Kusama, an on-chain election occurs to distribute DOT/KSM tokens among backed nodes, while on Manta a delegator always picks one concrete collator and a concrete number of MANTA they wish to delegate to that collator. -This approach is both simpler and less computationally heavy than running a distribution election, which has a nondeterministic execution time - something that must be avoided on Parachains as it can easily lead to chain stalls. \ No newline at end of file diff --git a/docs/manta-atlantic/Staking/02-Rewards.md b/docs/manta-atlantic/Staking/02-Rewards.md deleted file mode 100644 index adea55c2..00000000 --- a/docs/manta-atlantic/Staking/02-Rewards.md +++ /dev/null @@ -1,17 +0,0 @@ -:::danger Staking Rewards Have Ended -**Manta Atlantic staking rewards stopped on May 1, 2026.** No further rewards are being distributed. All staked positions are being forcibly unbonded. - -Please unstake and migrate your MANTA to Manta Pacific using the [Migration DApp](https://app.manta.network/manta/migrate). See the [Migration FAQ](/docs/manta-atlantic/migration-faq) for full details. -::: - -:::note Historical Reference -The content below describes how staking rewards worked before staking was discontinued. -::: - -Staking rewards worked the following way: - -1. On every produced block, ~7.6 MANTA are created (equivalent to 2% of total issuance per year) -2. This reward is allocated for later payout in the following way - - 10% of this reward go to the collator that produced it to compensate for collator running expenses - - The remaining 90% is split proportionally to MANTA staked between everyone who delegated to this collator (this includes a collator’s self-bond) -3. Two *rounds* later ( max. 12 hours ), the rewards accumulated in this way are paid out automatically, directly to the addresses of the collator and every delegator diff --git a/docs/manta-atlantic/Staking/03-Rules.md b/docs/manta-atlantic/Staking/03-Rules.md deleted file mode 100644 index b59985e6..00000000 --- a/docs/manta-atlantic/Staking/03-Rules.md +++ /dev/null @@ -1,48 +0,0 @@ -:::danger Staking Has Ended — Forced Unstaking in Progress -**As of May 1, 2026, staking on Manta Atlantic has fully ended.** New staking was closed on March 18, 2026. All remaining staked positions are now being forcibly unbonded. - -- The standard **7-day unbonding period** still applies before funds can be withdrawn. -- After unbonding, please use the [Migration DApp](https://app.manta.network/manta/migrate) to migrate your MANTA to Manta Pacific. -- The parachain slot expires in **late July 2026** — do not wait until the last moment. - -See the [Migration FAQ](/docs/manta-atlantic/migration-faq) for the full timeline and migration instructions. -::: - -:::note Historical Reference -The rules below describe how staking participation worked before staking was discontinued. -::: - -One account on Manta Network could be -- A delegator -- A collator candidate -- Not participating in staking - -Different rules apply for each and *collator* and *delegator* roles are mutually exclusive. -To switch between the two, you need to leave the current role by unbonding all your MANTA and then re-bond as the other role. - -## For Delegators -- Minimum delegation amount - 500 MANTA. -- Maximum delegators eligible for rewards per collator - 100. - - If more a collator has >100 delegators, the minimum delegation amount to receive rewards will be larger than above 500 depending on the other delegator's stakes. Check the minimum reported by the [delegation dApp](Delegation/dApp%20Overview) for the current amount -- Removing or Reducing a delegation is subject to a **7 day waiting period** -- APY per delegated MANTA decreases when total MANTA staked on a collator increases ( your MANTA is buying a smaller share of a larger pot ) -- You will not earn rewards if your chosen collator drops out of the top 70 -- You will not earn rewards if your delegation falls out of the top 100 on its collator -- You *may* delegate to more than one collator should you choose to -- Rewards are calculated in 6 hour intervals called *rounds* -- Rewards are automatically paid to the account of a delegator **2 *rounds* after they have been accrued**. -- Rewards are not compounded. -- Every manta account can delegate to up to 25 collators -- There is (currently) no slashing risk. - -## For Collators -- Minimum MANTA bond to join the collation candidate set - 400_000 MANTA -- Maximum number of active collators eligible for rewards - 70 - - This *collator rank* is calculated as the total sum of MANTA staked on the collator ( i.e. the sum of collator bond and all delegations ) -- Maximum number of active delegations (contributing to total stake) on each collator - 100 -- Rewards are calculated in 6 hour intervals called *rounds* -- Rewards are automatically paid to the account of a collator 2 *rounds* after they have been accrued. -- Rewards are not compounded. -- Removing or Reducing the candidate bond is subject to a **7 day waiting period** -- Reducing the candidate bond below the 400_000 MANTA minimum is not possible ( except by removing ) -- There is (currently) no slashing if your collator misses a block, but your delegators won't like their missing rewards. \ No newline at end of file diff --git a/docs/manta-atlantic/Staking/04-Delegation/01-dApp Overview.md b/docs/manta-atlantic/Staking/04-Delegation/01-dApp Overview.md deleted file mode 100644 index 528d13eb..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/01-dApp Overview.md +++ /dev/null @@ -1,58 +0,0 @@ -:::danger Staking dApp Has Been Replaced by the Migration DApp -The staking dApp is no longer active. **New staking closed on March 18, 2026**, and staking rewards ended on May 1, 2026. - -If you still have staked MANTA, please use the **[Migration DApp](https://app.manta.network/manta/migrate)** to unstake and migrate your assets to Manta Pacific. The Migration DApp will automatically detect your staking status and guide you through the unstaking and migration process. - -See the [Migration FAQ](/docs/manta-atlantic/migration-faq) for the full timeline and detailed instructions. -::: - -:::note Historical Reference -The content below describes the staking dApp interface as it existed before deprecation. -::: - -The staking dApp was available at [app.manta.network/manta/stake](https://app.manta.network/manta/stake) - -You'll notice it has the following elements: -## Header -![alt_text](images/head.png) - -1. The currently selected network -2. Your currently connected account through Polkadot.js -3. Your MANTA balance for the connected account - 1. This includes delegated MANTA, as well as any MANTA within your account -4. Your MANTA balance available to delegate -5. Your MANTA balance currently staked -6. Your MANTA earned during the last emission schedule -7. Helpful links such as the blockchain explorer and collator dashboards - -## Staking Section - -![alt_text](images/active_collator.png) - -1. Collator name and address information -2. Amount of bonded MANTA to this collator -3. Amount of rewards generated during the last round -4. Collator status. - 1. Active - Collator is currently receiving rewards - 2. Inactive - Collator is not eligible to receive rewards -5. Your rank among the delegators that are staked to this collator (by amount of MANTA) -6. Stake to this collator -7. Unstake from this collator (if applicable) - -## Collator section -![alt_text](images/select_collator.png) - -1. Find a collator -2. Filter out collators by Active vs Inactive -3. Collator information, such as the collator name and address -4. Amount staked to this collator -5. Minimum stake required for this collator -6. Estimated APY for this collator (note that APY is variable and subject to change) -7. Collator status. - 1. Active - Collator is currently receiving rewards - 2. Inactive - Collator is not eligible to receive rewards -8. Number of delegators backing this collator -9. Stake to this collator -10. Unstake from this collator - -I’m ready to stake. [Show me how](HowTo%20Delegate) diff --git a/docs/manta-atlantic/Staking/04-Delegation/02-HowTo Delegate.md b/docs/manta-atlantic/Staking/04-Delegation/02-HowTo Delegate.md deleted file mode 100644 index 5ae3bac4..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/02-HowTo Delegate.md +++ /dev/null @@ -1,57 +0,0 @@ -:::danger Staking Is No Longer Available — Please Migrate -**New staking closed on March 18, 2026. Staking rewards ended on May 1, 2026.** All remaining staked positions are being forcibly unbonded. - -If you have staked MANTA that needs to be unstaked and migrated, please use the **[Migration DApp](https://app.manta.network/manta/migrate)** instead of the staking dApp. -::: - -## How to Unstake and Migrate - -Instead of the staking guide below, follow these steps to recover and migrate your MANTA: - -### Step 1 — Connect to the Migration DApp - -Visit the [Migration DApp](https://app.manta.network/manta/migrate) and connect using your Polkadot wallet (Polkadot.js / Talisman / SubWallet). - -### Step 2 — Unstake your MANTA - -The Migration DApp will automatically detect your staking status on Atlantic. If you have staked assets, the DApp will provide an option to unstake. Initiate unstaking and wait for the **7-day unbonding period** to complete. - -### Step 3 — Choose a migration destination - -Once unbonded, you can: -- **Migrate to Manta Pacific** — via the Manta Bridge cross-chain transfer (recommended for staying in the Manta ecosystem) -- **Migrate to Polkadot or other parachains** — via XCM transfer (for DOT, GLMR, and other assets going back to their native chains) - -### Step 4 — Confirm and wait - -Confirm the transaction and wait a few minutes for it to arrive at your destination. Under normal circumstances, a single migration transaction completes within a few minutes. - -:::note Address Format Change -Atlantic uses Substrate address format (SS58), while Manta Pacific uses Ethereum address format (starting with 0x). The Migration DApp will guide you to connect your Ethereum wallet address to receive your assets. Make sure you control the private key / seed phrase for that Ethereum address. -::: - -For the complete timeline and more details, see the [Migration FAQ](/docs/manta-atlantic/migration-faq). - ---- - -:::note Historical Reference — How Delegation Used to Work -The original delegation guide is preserved below for reference only. The staking dApp is no longer active. -::: - -Before delegation was closed, users needed to be familiar with the [Staking Rules for Delegators](../Rules#for-delegators). - -When visiting the Staking page for the first time, a pop up would appear asking you to allow polkadot.js access to the dApp. - -![](images/authorize_wallet.png) - -After connecting, clicking the **Start Staking** button would open the collator selection view. - -![](images/head.png) - -Choosing a collator and clicking Stake would present a pop up to enter the delegation amount. A minimum amount was required. - -![](images/choose_stake.png) - -Once the transaction went through, staking was active and rewards were distributed every 6 hours. - -![](images/active_collator.png) diff --git a/docs/manta-atlantic/Staking/04-Delegation/images/active_collator.png b/docs/manta-atlantic/Staking/04-Delegation/images/active_collator.png deleted file mode 100644 index af0358eb..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/images/active_collator.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:25370aed0a5b40bea539d069590bae8e2310daa6c21b760241d862b0cc03c2cf -size 66470 diff --git a/docs/manta-atlantic/Staking/04-Delegation/images/authorize_wallet.png b/docs/manta-atlantic/Staking/04-Delegation/images/authorize_wallet.png deleted file mode 100644 index ff881202..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/images/authorize_wallet.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:03cfd870e2827faac673ddd39bef14f267e9a3e8ccc4d6f277ddcd0bf68cfd09 -size 61363 diff --git a/docs/manta-atlantic/Staking/04-Delegation/images/choose_stake.png b/docs/manta-atlantic/Staking/04-Delegation/images/choose_stake.png deleted file mode 100644 index eb32690e..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/images/choose_stake.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:35c9c2f500de70be1ebbafa3b0c341de736c7f4337205c386816945fb7463657 -size 64680 diff --git a/docs/manta-atlantic/Staking/04-Delegation/images/head.png b/docs/manta-atlantic/Staking/04-Delegation/images/head.png deleted file mode 100644 index 39b14891..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/images/head.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:73d5c4b7fd4b9616d0cc2cac51a56abed7db783042c5dbf6dadf08ae63cfe0fd -size 102889 diff --git a/docs/manta-atlantic/Staking/04-Delegation/images/select_collator.png b/docs/manta-atlantic/Staking/04-Delegation/images/select_collator.png deleted file mode 100644 index 59c9a585..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/images/select_collator.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9be42951afa4a5a19196ccc2115a6418aeba0fb34df43c04b9e3e2d06bcdc3b4 -size 206322 diff --git a/docs/manta-atlantic/Staking/04-Delegation/images/staking.png b/docs/manta-atlantic/Staking/04-Delegation/images/staking.png deleted file mode 100644 index 1bba5478..00000000 --- a/docs/manta-atlantic/Staking/04-Delegation/images/staking.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2e28065f39756589ee630713556fd006f16247f9f2d184bb1f4501f9efa86efe -size 139762 diff --git a/docs/manta-atlantic/Staking/05-StakingFAQ.md b/docs/manta-atlantic/Staking/05-StakingFAQ.md deleted file mode 100644 index b755a397..00000000 --- a/docs/manta-atlantic/Staking/05-StakingFAQ.md +++ /dev/null @@ -1,71 +0,0 @@ -# FAQ - -:::danger Manta Atlantic Staking Has Ended -Staking rewards stopped on **May 1, 2026**. New staking was closed on March 18, 2026. The parachain slot expires in late July 2026. Please unstake and migrate your assets using the [Migration DApp](https://app.manta.network/manta/migrate). -::: - -## Migration FAQ - -### Q: I'm currently staking MANTA. What should I do? - -Please unstake and migrate as soon as possible using the [Migration DApp](https://app.manta.network/manta/migrate). Key dates: - -- **March 18, 2026**: New staking no longer accepted -- **May 1, 2026**: Staking rewards stopped; forced unstaking began -- **June 2026**: Chain enters read-only mode (most on-chain functions disabled, but migration transfers remain available) -- **Late July 2026**: Parachain slot expires and chain stops producing blocks - -### Q: How do I unstake and migrate? - -1. Visit the [Migration DApp](https://app.manta.network/manta/migrate) and connect with your Polkadot wallet (Polkadot.js / Talisman / SubWallet) -2. The DApp will automatically detect your staking status and provide an option to unstake -3. Initiate unstaking and wait for the 7-day unbonding period -4. Once unbonded, choose your migration destination: - - **Manta Atlantic → Manta Pacific** (recommended) - - **Manta Atlantic → Polkadot or other parachains** (via XCM) -5. Confirm the transaction — it typically completes within a few minutes - -### Q: What if I miss all migration deadlines? - -A complete chain state snapshot will be taken before the chain stops producing blocks. All unmigrated **MANTA** will be airdropped 1:1 to corresponding addresses on Manta Pacific. However, non-MANTA assets (DOT, GLMR, USDt, etc.) must be migrated manually — they cannot be airdropped on Pacific. - -### Q: Will my address change after migrating to Pacific? - -Yes. Atlantic uses Substrate address format (SS58), while Manta Pacific uses Ethereum address format (starting with 0x). The Migration DApp will guide you to connect an Ethereum wallet address to receive your assets. - -### Q: What happens to assets that are not MANTA (DOT, GLMR, USDt)? - -These assets must be migrated manually before the chain stops. They can be sent back to their native chains via XCM through the Migration DApp. The automatic 1:1 airdrop only covers MANTA tokens. - -### Q: I'm a Collator node operator — what should I do? - -Please complete your unstaking as soon as possible. After May 1, 2026, inflation is set to 0 and Collators no longer receive any block production rewards. Regular reminders and step-by-step guides are posted in the Collator community Telegram group. The goal is for all Collators to safely exit before the slot expires in July. - -### Q: Where can I get the latest migration information? - -- **Discord:** [`#atlantic-migration`](https://discord.gg/PbaJZGPQ) channel -- **Twitter/X:** [@MantaNetwork](https://twitter.com/MantaNetwork) -- **Telegram:** [Manta official group](https://t.me/mantanetworkofficial) - ---- - -## Historical Staking FAQ - -### Q: What is the Manta staking APR? -2% of the initial supply is awarded to Manta stakers for the first year. -APR is varies depending on your percentage stake on a collator and whether it producing a block on its turn each time or if it's missing some - -### Q: How often are Manta staking rewards distributed? -Manta stakers will receive rewards at the end of each round (6 hours). - -### Q: Is there a Manta unstaking period? -The unstaking period is 7 days. - -### Q: Is there a minimum staking amount for Manta? -The minimum staking (=delegation) amount is 500 MANTA. - -### Q: Do Manta staking rewards compound? -No, Manta staking rewards are not compounded automatically. - -### Q: Is there a slashing risk for Manta validators? -There is no slashing risk for delegators. Collators that do not produce blocks will not earn rewards for themselves **and their delegators**. diff --git a/docs/manta-atlantic/migration-faq.md b/docs/manta-atlantic/migration-faq.md deleted file mode 100644 index d5625ee6..00000000 --- a/docs/manta-atlantic/migration-faq.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: Manta Atlantic Deprecation FAQ -sidebar_label: Migration FAQ -sidebar_position: 99 ---- - -# Manta Atlantic Deprecation FAQ - ---- - -## I. General Information - -### Q1: Why is Manta Atlantic being shut down? - -Manta Atlantic's Polkadot parachain slot will naturally expire on August 1, 2026. We have decided not to renew the slot and instead consolidate all resources into Manta Pacific (L2). This is not an abandonment — it's a strategic focus. Manta Pacific offers lower gas fees, faster transaction confirmations, a richer EVM ecosystem, and a larger developer community, enabling us to better serve users and developers. - -### Q2: When will Manta Atlantic officially stop operating? - -The parachain slot is expected to expire around **late July to early August 2026** (the exact timing depends on block production speed and may vary by a few days). At that point, Atlantic will automatically stop producing blocks. We are providing a migration window of over 4 months before then. - -### Q3: What are the key dates? - -| Date | Event | -| --- | --- | -| March 11, 2026 | Official deprecation announcement published | -| March 18, 2026 | Staking rewards stopped; new staking no longer accepted | -| March 20, 2026 | Cross-chain bridge inbound transfers closed (outbound only) | -| March 25, 2026 | Migration DApp goes live | -| June 2026 | Chain enters read-only mode (final migration window) | -| July 2026 | Slot expires, chain stops producing blocks | - -### Q4: What is Manta Pacific? How is it different from Atlantic? - -Manta Pacific is Manta Network's Ethereum Layer 2 network. Unlike Atlantic, which is built on Polkadot, Pacific runs on top of the Ethereum ecosystem, is EVM-compatible, supports Solidity smart contracts, and has access to a broader DeFi and developer ecosystem. All future Manta development and ecosystem building will take place on Pacific. - ---- - -## II. Asset Safety & Migration - -### Q5: Are my assets on Atlantic safe? Will I lose them? - -**No, you will not.** Your assets are 100% safe. We are providing ample migration time (over 4 months) and dedicated migration tools. Even if you miss all migration deadlines, we will take a chain state snapshot and conduct a 1:1 airdrop on Manta Pacific to ensure your assets are not lost. - -### Q6: Which assets do I need to migrate? - -All assets you hold on Manta Atlantic need to be migrated, including: - -- MANTA tokens (including staked MANTA) -- DOT (Polkadot) -- GLMR (Moonbeam) -- USDt -- Other native assets on Atlantic - -For a complete asset list, please visit: https://manta.subscan.io/asset_token - -### Q7: How do I migrate my assets? - -We have provided a dedicated **[Migration DApp](https://app.manta.network/manta/migrate)**. Here are the steps: - -1. Connect to the Migration DApp using a Polkadot wallet (Polkadot.js / Talisman / SubWallet) -2. The DApp will automatically detect all your assets and staking status on Atlantic -3. If you have staked assets, the DApp will provide an option to unstake -4. Choose your migration destination: - - **Migrate to Manta Pacific** — via Manta Bridge cross-chain transfer - - **Migrate to Polkadot or other parachains** — via XCM transfer -5. Confirm the transaction and wait for it to arrive - -### Q8: What migration paths are supported? - -Two paths are available. Assets can only be **transferred out**, not in: - -- **Manta Atlantic → Manta Pacific**: For users who want to stay within the Manta ecosystem -- **Manta Atlantic → Polkadot & other parachains**: For users who want to move DOT, GLMR, and other assets back to their native chains - -### Q9: Will my address change after migrating MANTA to Pacific? - -Yes. Atlantic uses the Substrate address format (SS58), while Pacific uses the Ethereum address format (starting with 0x). The Migration DApp will guide you to enter or connect your Ethereum wallet address to receive your assets. Please make sure you control the private key / seed phrase for that Ethereum address. - -### Q10: How long does migration take? - -Under normal circumstances, a single migration transaction is expected to complete within a few minutes. The exact arrival time depends on the cross-chain bridge's confirmation mechanism. - -### Q11: Can I still transfer assets into Atlantic after March 20? - -**No.** Starting March 20, 2026, the cross-chain bridge closed all inbound transfer channels. Assets can only be transferred out of Atlantic, not in. - -### Q12: Can I still migrate after June? - -Starting in June, Atlantic will enter read-only mode. In this mode, most on-chain functions will be disabled, but **migration-related transfer operations will remain available** until the slot expires in July. This is the final migration window — we strongly recommend not waiting until this stage. - -### Q13: What happens to my assets after July if I do nothing? - -We will take a complete chain state snapshot before the chain stops producing blocks. All unmigrated MANTA will be **airdropped at a 1:1 ratio** to corresponding addresses on Manta Pacific. Additionally, a read-only archive node will be maintained for at least 90 days as a safety net. - -However, please note: the automatic airdrop applies only to MANTA tokens. **Non-MANTA assets such as DOT, GLMR, and USDt must be migrated by you before the deadline** — these assets cannot be airdropped on Pacific. - ---- - -## III. Staking - -### Q14: I'm currently staking MANTA. What should I do? - -Please unstake (unbond) and migrate as soon as possible. Key dates: - -- **March 18**: New staking no longer accepted; existing stakers could still earn rewards and unstake -- **May 1**: Staking rewards stopped; forced unstaking began -- **After May 1**: All remaining staked positions are being forcibly unbonded - -### Q15: How long does unstaking take? - -Manta Atlantic's standard unbonding period applies as normal. After initiating an unbond, you will need to wait approximately 7 days before you can withdraw. We recommend acting early to avoid potential queuing delays. - -### Q16: I'm a Collator node operator. What should I do? - -- Please complete your unstaking as soon as possible. We will post regular reminders and step-by-step guides in the Collator community Telegram group -- After May 1, inflation will be set to 0, and Collators will no longer receive any block production rewards -- Ultimate goal: All Collators safely exit before the slot expires in July - ---- - -## IV. Exchanges & Wallets - -### Q17: My MANTA is on an exchange (Atlantic network). What should I do? - -We will notify all exchanges that support Manta Atlantic (such as Gate.io) to proceed with delisting. Please follow exchange announcements for their specific delisting timelines and withdrawal deadlines. - -**Recommendation:** Withdraw your MANTA (Atlantic network) from the exchange to your own wallet as soon as possible, then use the Migration DApp to migrate to Pacific. Do not wait until after the exchange delists. - -### Q18: Which exchanges will be affected? - -All exchanges that support Manta Atlantic network deposits and withdrawals will be affected. A specific exchange list will be updated in future announcements. If you are unsure whether the exchange you use supports Atlantic, please contact their customer support to confirm. - -### Q19: Can I still use my wallet (Talisman / SubWallet)? - -During the migration window, these wallets will continue to work normally with Atlantic. We will notify wallet providers to remove Atlantic network support before the chain enters read-only mode (June 2026). Please make sure you have completed your migration by then. - ---- - -## V. Projects & Developers - -### Q20: Will smart contract code on Atlantic be preserved? - -After the chain stops producing blocks, archive nodes will be maintained for at least 6 months, during which you can query historical contract states and data. We are also coordinating with block explorers such as SubScan to preserve historical query functionality. - ---- - -## VI. Community - -### Q21: Where can I get the latest information? - -- **Discord:** Dedicated [`#atlantic-migration`](https://discord.gg/PbaJZGPQ) channel -- **Twitter/X:** [@MantaNetwork](https://twitter.com/MantaNetwork) -- **Telegram:** [Manta official group](https://t.me/mantanetworkofficial) - -### Q22: I'm a large holder (whale). Is there dedicated support? - -Yes. We will conduct 1:1 outreach to addresses with large on-chain holdings and provide dedicated migration support. If you hold a significant amount of assets and would like assistance, please contact our team directly via Discord or email. - ---- - -## VII. Technical Details - -### Q23: What does "Read-Only Mode" mean? - -Starting in June 2026, Atlantic will enter read-only mode: - -- Most on-chain functions will be disabled (DApp interactions, new transactions, etc.) -- **Functions that remain available:** Migration-related transfer operations, withdrawing unbonded funds -- The chain will still produce blocks but will not accept regular transactions -- The UI will display prominent migration reminders - -### Q24: Will data still be accessible after the chain stops? - -Yes. We will: - -- Maintain read-only archive nodes for at least 6 months -- Coordinate with block explorers such as SubScan to preserve historical data queries -- Archive the chain's complete historical data for long-term storage - -### Q25: How will DEX liquidity on Atlantic be handled? - -Manta has already withdrawn all official liquidity from the Atlantic DEX. The remaining third-party LP positions are negligible in size. If you still have LP positions in the DEX, please withdraw and migrate them as soon as possible. - ---- - -## VIII. Other - -### Q26: Is Manta Network shutting down? - -**Absolutely not.** Manta Network's development will be fully focused on Manta Pacific (L2). The deprecation of Atlantic is a strategic consolidation, allowing us to concentrate all resources on building a better ecosystem on a single chain. Manta Pacific is the future of Manta. - -### Q27: I already have assets on Manta Pacific. Will they be affected? - -No. Manta Pacific is not affected in any way and will continue to operate normally. This deprecation only involves Manta Atlantic (the Polkadot parachain). - -### Q28: What if I have other questions? - -- Join the Discord `#atlantic-migration` channel to ask questions -- Reach out on Twitter/X [@MantaNetwork](https://twitter.com/MantaNetwork) -- Join the official Telegram community [Manta official group](https://t.me/mantanetworkofficial) - ---- - -*This FAQ will be continuously updated based on community feedback and migration progress. Last updated: March 10, 2026* diff --git a/sidebars.js b/sidebars.js index fa0bc544..b2633197 100644 --- a/sidebars.js +++ b/sidebars.js @@ -30,11 +30,6 @@ module.exports = { label: "Manta Pacific", id: "introduction/Manta-Pacific", }, - { - type: "doc", - label: "Manta Atlantic", - id: "introduction/Manta-Atlantic", - }, ], }, { @@ -311,66 +306,5 @@ module.exports = { }, ], }, - { - type: "category", - label: "Manta Atlantic Network", - collapsible: false, - items: [ - { - type: "doc", - label: "Network Information", - id: "manta-atlantic/Network Information", - }, - { - type: "category", - label: "Collator", - items: [ - { - type: "autogenerated", - dirName: "manta-atlantic/Collation", - }, - ], - }, - { - type: "category", - label: "Node", - items: [ - "manta-atlantic/Node/Overview", - "manta-atlantic/Node/Requirements", - { - type: "category", - label: "SetupAndRun", - items: [ - "manta-atlantic/Node/SetupAndRun/full_node", - "manta-atlantic/Node/SetupAndRun/archive_node", - ], - }, - ], - }, - { - type: "doc", - label: "Bridge", - id: "manta-atlantic/Bridge", - }, - { - type: "category", - label: "Staking", - items: [ - "manta-atlantic/Staking/Overview", - "manta-atlantic/Staking/Rewards", - "manta-atlantic/Staking/Rules", - { - type: "category", - label: "Delegation", - items: [ - "manta-atlantic/Staking/Delegation/dApp Overview", - "manta-atlantic/Staking/Delegation/HowTo Delegate", - ], - }, - "manta-atlantic/Staking/StakingFAQ", - ], - }, - ], - }, ], }; diff --git a/static/img/manta-atlantic/collator/1.png b/static/img/manta-atlantic/collator/1.png deleted file mode 100644 index d73020ea..00000000 --- a/static/img/manta-atlantic/collator/1.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0e4eba5c4b07f4a4bc0d51fa692f67735f0a90613e55a486eeadebe6d1204e53 -size 154723 diff --git a/static/img/manta-atlantic/collator/2.png b/static/img/manta-atlantic/collator/2.png deleted file mode 100644 index 7d57544f..00000000 --- a/static/img/manta-atlantic/collator/2.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d0c9dbc218a73cd6217b366b6f51e867c120d34fcc9a04db234198fc3dffe236 -size 102688 diff --git a/static/img/manta-atlantic/collator/3.png b/static/img/manta-atlantic/collator/3.png deleted file mode 100644 index 82321754..00000000 --- a/static/img/manta-atlantic/collator/3.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:39b459ceaffffc31392b8f4c07dc17efd5ce7c514499b468dcda29e509fcb26d -size 60554 diff --git a/static/img/manta-atlantic/collator/4.png b/static/img/manta-atlantic/collator/4.png deleted file mode 100644 index 7c9629ad..00000000 --- a/static/img/manta-atlantic/collator/4.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:18eb6d81e2a7f79908649a67c849b744f55e4a9d66343d2c1226df4ce5d05d0a -size 36433 diff --git a/static/img/manta-atlantic/collator/5.png b/static/img/manta-atlantic/collator/5.png deleted file mode 100644 index 2540f4f3..00000000 --- a/static/img/manta-atlantic/collator/5.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:9f0daa540efbcd31c60b59a8631f3c035d6168424ce3706243654a8880143f49 -size 36343 diff --git a/static/img/manta-atlantic/collator/6.png b/static/img/manta-atlantic/collator/6.png deleted file mode 100644 index 79d621c3..00000000 --- a/static/img/manta-atlantic/collator/6.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2b72fa9ee05f8bb31aa9913deef896895a48007dda945134c071a12d9fc33782 -size 44563 diff --git a/static/img/manta-atlantic/collator/7.png b/static/img/manta-atlantic/collator/7.png deleted file mode 100644 index 1b8c2099..00000000 --- a/static/img/manta-atlantic/collator/7.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c8f32c82917b1dc664065c0ac0b5bb73146c047b8fda19f00fce3b103ed35dae -size 59524 diff --git a/static/img/manta-atlantic/collator/8.png b/static/img/manta-atlantic/collator/8.png deleted file mode 100644 index 00806500..00000000 --- a/static/img/manta-atlantic/collator/8.png +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:5bab9ce0422170a455511f367c119461fa0405fcfa0239611c36be50799310cc -size 31346