## Running `./polkadot-parachain --chain coretime-kusama` works now: **Parachain genesis state and header** match expected ones from https://gist.github.com/bkontur/f74fc00fd726d09bc7f0f3a9f51ec113?permalink_comment_id=5009857#gistcomment-5009857 ``` 2024-04-03 12:03:58 [Parachain] 🔨 Initializing Genesis block/state (state: 0xc418…889c, header-hash: 0x638c…d050) ... 2024-04-03 12:04:04 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050) ``` **Relaychain genesis state and header** match expected ones: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/explorer/query/0 ``` 2024-04-03 12:03:59 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe) ``` **Full logs:** ``` bparity@bkontur-ThinkPad-P14s-Gen-2i:~/parity/polkadot-sdk$ ./target/debug/polkadot-parachain --chain coretime-kusama 2024-04-03 12:03:52 Polkadot parachain 2024-04-03 12:03:52 ✌️ version 4.0.0-665e3654cec 2024-04-03 12:03:52 ❤️ by Parity Technologies <admin@parity.io>, 2017-2024 2024-04-03 12:03:52 📋 Chain specification: Kusama Coretime 2024-04-03 12:03:52 🏷 Node name: subsequent-quicksand-2382 2024-04-03 12:03:52 👤 Role: FULL 2024-04-03 12:03:52 💾 Database: RocksDb at /home/bparity/.local/share/polkadot-parachain/chains/coretime-kusama/db/full 2024-04-03 12:03:54 Parachain id: Id(1005) 2024-04-03 12:03:54 Parachain Account: 5Ec4AhPakEiNWFbAd26nRrREnaGQZo3uukPDC5xLr6314Dwg 2024-04-03 12:03:54 Is collating: no 2024-04-03 12:03:58 [Parachain] 🔨 Initializing Genesis block/state (state: 0xc418…889c, header-hash: 0x638c…d050) 2024-04-03 12:03:59 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe) 2024-04-03 12:03:59 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. 2024-04-03 12:03:59 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup. 2024-04-03 12:03:59 [Relaychain] 🏷 Local node identity is: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd 2024-04-03 12:03:59 [Relaychain] 💻 Operating system: linux 2024-04-03 12:03:59 [Relaychain] 💻 CPU architecture: x86_64 2024-04-03 12:03:59 [Relaychain] 💻 Target environment: gnu 2024-04-03 12:03:59 [Relaychain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz 2024-04-03 12:03:59 [Relaychain] 💻 CPU cores: 4 2024-04-03 12:03:59 [Relaychain] 💻 Memory: 31797MB 2024-04-03 12:03:59 [Relaychain] 💻 Kernel: 5.15.0-101-generic 2024-04-03 12:03:59 [Relaychain] 💻 Linux distribution: Ubuntu 20.04.6 LTS 2024-04-03 12:03:59 [Relaychain] 💻 Virtual machine: no 2024-04-03 12:03:59 [Relaychain] 📦 Highest known block at #0 2024-04-03 12:03:59 [Relaychain] 〽️ Prometheus exporter started at 127.0.0.1:9616 2024-04-03 12:03:59 [Relaychain] Running JSON-RPC server: addr=127.0.0.1:9945, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"] 2024-04-03 12:03:59 [Relaychain] 🏁 CPU score: 1.40 GiBs 2024-04-03 12:03:59 [Relaychain] 🏁 Memory score: 15.42 GiBs 2024-04-03 12:03:59 [Relaychain] 🏁 Disk score (seq. writes): 1.39 GiBs 2024-04-03 12:03:59 [Relaychain] 🏁 Disk score (rand. writes): 690.56 MiBs 2024-04-03 12:03:59 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs 2024-04-03 12:03:59 [Parachain] 🏷 Local node identity is: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW 2024-04-03 12:03:59 [Parachain] 💻 Operating system: linux 2024-04-03 12:03:59 [Parachain] 💻 CPU architecture: x86_64 2024-04-03 12:03:59 [Parachain] 💻 Target environment: gnu 2024-04-03 12:03:59 [Parachain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz 2024-04-03 12:03:59 [Parachain] 💻 CPU cores: 4 2024-04-03 12:03:59 [Parachain] 💻 Memory: 31797MB 2024-04-03 12:03:59 [Parachain] 💻 Kernel: 5.15.0-101-generic 2024-04-03 12:03:59 [Parachain] 💻 Linux distribution: Ubuntu 20.04.6 LTS 2024-04-03 12:03:59 [Parachain] 💻 Virtual machine: no 2024-04-03 12:03:59 [Parachain] 📦 Highest known block at #0 2024-04-03 12:03:59 [Parachain] 〽️ Prometheus exporter started at 127.0.0.1:9615 2024-04-03 12:03:59 [Parachain] Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"] 2024-04-03 12:03:59 [Parachain] 🏁 CPU score: 1.40 GiBs 2024-04-03 12:03:59 [Parachain] 🏁 Memory score: 15.42 GiBs 2024-04-03 12:03:59 [Parachain] 🏁 Disk score (seq. writes): 1.39 GiBs 2024-04-03 12:03:59 [Parachain] 🏁 Disk score (rand. writes): 690.56 MiBs 2024-04-03 12:03:59 [Parachain] discovered: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd /ip4/192.168.1.100/tcp/30334/ws 2024-04-03 12:03:59 [Relaychain] discovered: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW /ip4/192.168.1.100/tcp/30333/ws 2024-04-03 12:03:59 [Relaychain] discovered: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW /ip4/172.18.0.1/tcp/30333/ws 2024-04-03 12:03:59 [Parachain] discovered: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd /ip4/172.17.0.1/tcp/30334/ws 2024-04-03 12:03:59 [Relaychain] discovered: 12D3KooWAAvNqXn8WPmvnEj36j7HsdbtpRpmWDPT9xtp4CuphvxW /ip4/172.17.0.1/tcp/30333/ws 2024-04-03 12:03:59 [Parachain] discovered: 12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd /ip4/172.18.0.1/tcp/30334/ws 2024-04-03 12:04:00 [Relaychain] 🔍 Discovered new external address for our node: /ip4/178.41.176.246/tcp/30334/ws/p2p/12D3KooWSfXNBZYimwSKBqfKf7F1X6adNQQD5HVQbdnvSyBFn8Wd 2024-04-03 12:04:00 [Relaychain] Sending fatal alert BadCertificate 2024-04-03 12:04:00 [Relaychain] Sending fatal alert BadCertificate 2024-04-03 12:04:04 [Relaychain] ⚙️ Syncing, target=#22575321 (7 peers), best: #738 (0x1803…bbef), finalized #512 (0xb9b6…7014), ⬇ 328.5kiB/s ⬆ 102.9kiB/s 2024-04-03 12:04:04 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050), ⬇ 0 ⬆ 0 2024-04-03 12:04:09 [Relaychain] ⚙️ Syncing 169.5 bps, target=#22575322 (8 peers), best: #1586 (0x405b…a8aa), finalized #1536 (0x55d1…fb04), ⬇ 232.3kiB/s ⬆ 55.9kiB/s 2024-04-03 12:04:09 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050), ⬇ 0 ⬆ 0 2024-04-03 12:04:14 [Relaychain] ⚙️ Syncing 168.0 bps, target=#22575323 (8 peers), best: #2426 (0x155f…d083), finalized #2048 (0xede6…f879), ⬇ 235.8kiB/s ⬆ 67.2kiB/s 2024-04-03 12:04:14 [Parachain] 💤 Idle (0 peers), best: #0 (0x638c…d050), finalized #0 (0x638c…d050), ⬇ 0 ⬆ 0 2024-04-03 12:04:19 [Relaychain] ⚙️ Syncing 170.0 bps, target=#22575324 (8 peers), best: #3276 (0x94d8…097e), finalized #3072 (0x0e4c…f587), ⬇ 129.0kiB/s ⬆ 34.0kiB/s ... ``` ## Running `./polkadot-parachain --chain people-kusama` works now: **Parachain genesis state and header** match expected ones from https://gist.github.com/bkontur/f74fc00fd726d09bc7f0f3a9f51ec113?permalink_comment_id=5011798#gistcomment-5011798 ``` 2024-04-04 10:26:24 [Parachain] 🔨 Initializing Genesis block/state (state: 0x023a…2733, header-hash: 0x07b8…2645) ... 2024-04-04 10:26:30 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), ⬇ 0 ⬆ 0 ``` **Relaychain genesis state and header** match expected ones: https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Fkusama-rpc.polkadot.io#/explorer/query/0 ``` 2024-04-04 10:26:25 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe) ``` **Full logs:** ``` bparity@bkontur-ThinkPad-P14s-Gen-2i:~/parity/aaa/polkadot-sdk$ ./target/debug/polkadot-parachain --chain people-kusama 2024-04-04 10:26:18 Polkadot parachain 2024-04-04 10:26:18 ✌️ version 4.0.0-39274bb75fc 2024-04-04 10:26:18 ❤️ by Parity Technologies <admin@parity.io>, 2017-2024 2024-04-04 10:26:18 📋 Chain specification: Kusama People 2024-04-04 10:26:18 🏷 Node name: knotty-flight-5398 2024-04-04 10:26:18 👤 Role: FULL 2024-04-04 10:26:18 💾 Database: RocksDb at /home/bparity/.local/share/polkadot-parachain/chains/people-kusama/db/full 2024-04-04 10:26:21 Parachain id: Id(1004) 2024-04-04 10:26:21 Parachain Account: 5Ec4AhPaYcfBz8fMoPd4EfnAgwbzRS7np3APZUnnFo12qEYk 2024-04-04 10:26:21 Is collating: no 2024-04-04 10:26:24 [Parachain] 🔨 Initializing Genesis block/state (state: 0x023a…2733, header-hash: 0x07b8…2645) 2024-04-04 10:26:25 [Relaychain] 🔨 Initializing Genesis block/state (state: 0xb000…ef6b, header-hash: 0xb0a8…dafe) 2024-04-04 10:26:25 [Relaychain] 👴 Loading GRANDPA authority set from genesis on what appears to be first startup. 2024-04-04 10:26:25 [Relaychain] 👶 Creating empty BABE epoch changes on what appears to be first startup. 2024-04-04 10:26:25 [Relaychain] 🏷 Local node identity is: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB 2024-04-04 10:26:25 [Relaychain] 💻 Operating system: linux 2024-04-04 10:26:25 [Relaychain] 💻 CPU architecture: x86_64 2024-04-04 10:26:25 [Relaychain] 💻 Target environment: gnu 2024-04-04 10:26:25 [Relaychain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz 2024-04-04 10:26:25 [Relaychain] 💻 CPU cores: 4 2024-04-04 10:26:25 [Relaychain] 💻 Memory: 31797MB 2024-04-04 10:26:25 [Relaychain] 💻 Kernel: 5.15.0-101-generic 2024-04-04 10:26:25 [Relaychain] 💻 Linux distribution: Ubuntu 20.04.6 LTS 2024-04-04 10:26:25 [Relaychain] 💻 Virtual machine: no 2024-04-04 10:26:25 [Relaychain] 📦 Highest known block at #0 2024-04-04 10:26:25 [Relaychain] 〽️ Prometheus exporter started at 127.0.0.1:9616 2024-04-04 10:26:25 [Relaychain] Running JSON-RPC server: addr=127.0.0.1:9945, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"] 2024-04-04 10:26:25 [Relaychain] 🏁 CPU score: 1.18 GiBs 2024-04-04 10:26:25 [Relaychain] 🏁 Memory score: 15.61 GiBs 2024-04-04 10:26:25 [Relaychain] 🏁 Disk score (seq. writes): 1.49 GiBs 2024-04-04 10:26:25 [Relaychain] 🏁 Disk score (rand. writes): 650.01 MiBs 2024-04-04 10:26:25 [Parachain] Using default protocol ID "sup" because none is configured in the chain specs 2024-04-04 10:26:25 [Parachain] 🏷 Local node identity is: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj 2024-04-04 10:26:25 [Parachain] 💻 Operating system: linux 2024-04-04 10:26:25 [Parachain] 💻 CPU architecture: x86_64 2024-04-04 10:26:25 [Parachain] 💻 Target environment: gnu 2024-04-04 10:26:25 [Parachain] 💻 CPU: 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz 2024-04-04 10:26:25 [Parachain] 💻 CPU cores: 4 2024-04-04 10:26:25 [Parachain] 💻 Memory: 31797MB 2024-04-04 10:26:25 [Parachain] 💻 Kernel: 5.15.0-101-generic 2024-04-04 10:26:25 [Parachain] 💻 Linux distribution: Ubuntu 20.04.6 LTS 2024-04-04 10:26:25 [Parachain] 💻 Virtual machine: no 2024-04-04 10:26:25 [Parachain] 📦 Highest known block at #0 2024-04-04 10:26:25 [Parachain] 〽️ Prometheus exporter started at 127.0.0.1:9615 2024-04-04 10:26:25 [Parachain] Running JSON-RPC server: addr=127.0.0.1:9944, allowed origins=["http://localhost:*", "http://127.0.0.1:*", "https://localhost:*", "https://127.0.0.1:*", "https://polkadot.js.org"] 2024-04-04 10:26:25 [Parachain] 🏁 CPU score: 1.18 GiBs 2024-04-04 10:26:25 [Parachain] 🏁 Memory score: 15.61 GiBs 2024-04-04 10:26:25 [Parachain] 🏁 Disk score (seq. writes): 1.49 GiBs 2024-04-04 10:26:25 [Parachain] 🏁 Disk score (rand. writes): 650.01 MiBs 2024-04-04 10:26:25 [Parachain] discovered: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB /ip4/172.17.0.1/tcp/30334/ws 2024-04-04 10:26:25 [Relaychain] discovered: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj /ip4/172.18.0.1/tcp/30333/ws 2024-04-04 10:26:25 [Relaychain] discovered: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj /ip4/192.168.1.100/tcp/30333/ws 2024-04-04 10:26:25 [Parachain] discovered: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB /ip4/172.18.0.1/tcp/30334/ws 2024-04-04 10:26:25 [Relaychain] discovered: 12D3KooWS2WPQgtiZZYT6bLGjwGcJU7QVd5EeQvb4jHN3NVSWDdj /ip4/172.17.0.1/tcp/30333/ws 2024-04-04 10:26:25 [Parachain] discovered: 12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB /ip4/192.168.1.100/tcp/30334/ws 2024-04-04 10:26:26 [Relaychain] 🔍 Discovered new external address for our node: /ip4/178.41.176.246/tcp/30334/ws/p2p/12D3KooWPoTVhnrFNzVYJPR42HE9rYjXhkKHFDL9ut5nafDqJHKB 2024-04-04 10:26:27 [Relaychain] Sending fatal alert BadCertificate 2024-04-04 10:26:27 [Relaychain] Sending fatal alert BadCertificate 2024-04-04 10:26:30 [Relaychain] ⚙️ Syncing, target=#22588722 (8 peers), best: #638 (0xa9cd…7c30), finalized #512 (0xb9b6…7014), ⬇ 345.6kiB/s ⬆ 108.7kiB/s 2024-04-04 10:26:30 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), ⬇ 0 ⬆ 0 2024-04-04 10:26:35 [Relaychain] ⚙️ Syncing 174.4 bps, target=#22588722 (9 peers), best: #1510 (0xec0b…72f0), finalized #1024 (0x3f17…fd7f), ⬇ 203.1kiB/s ⬆ 45.0kiB/s 2024-04-04 10:26:35 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), ⬇ 0 ⬆ 0 2024-04-04 10:26:40 [Relaychain] ⚙️ Syncing 168.9 bps, target=#22588723 (9 peers), best: #2355 (0xa68b…3a64), finalized #2048 (0xede6…f879), ⬇ 201.6kiB/s ⬆ 47.4kiB/s 2024-04-04 10:26:40 [Parachain] 💤 Idle (0 peers), best: #0 (0x07b8…2645), finalized #0 (0x07b8…2645), ⬇ 0 ⬆ 0 ``` ## TODO - [x] double check `cumulus/polkadot-parachain/chain-specs/coretime-kusama.json` (safeXcmVersion=3) see [comment](https://github.com/paritytech/polkadot-sdk/pull/3961#discussion_r1549473587) - [x] check if ~~`start_generic_aura_node`~~ or `start_generic_aura_lookahead_node` - [x] generate chain-spec for `people-kusama` --------- Co-authored-by: Dónal Murray <donal.murray@parity.io>
Cumulus ☁️
This repository contains both the Cumulus SDK and also specific chains implemented on top of this SDK.
If you only want to run a Polkadot Parachain Node, check out our container section.
Cumulus SDK
A set of tools for writing Substrate-based Polkadot parachains. Refer to the included overview for architectural details, and the Connect to a relay chain how-to guide for a guided walk-through of using these tools.
It's easy to write blockchains using Substrate, and the overhead of writing parachains' distribution, p2p, database, and synchronization layers should be just as low. This project aims to make it easy to write parachains for Polkadot by leveraging the power of Substrate.
Cumulus clouds are shaped sort of like dots; together they form a system that is intricate, beautiful and functional.
Consensus
parachain-consensus
is a consensus engine for Substrate that follows a Polkadot relay
chain. This will run a Polkadot node internally,
and dictate to the client and synchronization algorithms which chain to follow,
finalize, and treat as best.
Collator
A Polkadot collator for the parachain is implemented by the
polkadot-parachain binary (previously called polkadot-collator).
You may run polkadot-parachain locally after building it or using one of the container option described
here.
Relay Chain Interaction
To operate a parachain node, a connection to the corresponding relay chain is necessary. This can be achieved in one of three ways:
- Run a full relay chain node within the parachain node (default)
- Connect to an external relay chain node via WebSocket RPC
- Run a light client for the relay chain
In-process Relay Chain Node
If an external relay chain node is not specified (default behavior), then a full relay chain node is spawned within the same process.
This node has all of the typical components of a regular Polkadot node and will have to fully sync with the relay chain to work.
Example command
polkadot-parachain \
--chain parachain-chainspec.json \
--tmp \
-- \
--chain relaychain-chainspec.json
External Relay Chain Node
An external relay chain node is connected via WebsSocket RPC by using the --relay-chain-rpc-urls command line
argument. This option accepts one or more space-separated WebSocket URLs to a full relay chain node. By default, only
the first URL will be used, with the rest as a backup in case the connection to the first node is lost.
Parachain nodes using this feature won't have to fully sync with the relay chain to work, so in general they will use fewer system resources.
Note: At this time, any parachain nodes using this feature will still spawn a significantly cut-down relay chain node in-process. Even though they lack the majority of normal Polkadot subsystems, they will still need to connect directly to the relay chain network.
Example command
polkadot-parachain \
--chain parachain-chainspec.json \
--tmp \
--relay-chain-rpc-urls \
"ws://relaychain-rpc-endpoint:9944" \
"ws://relaychain-rpc-endpoint-backup:9944" \
-- \
--chain relaychain-chainspec.json
Relay Chain Light Client
An internal relay chain light client provides a fast and lightweight approach for connecting to the relay chain network. It provides relay chain notifications and facilitates runtime calls.
To specify which chain the light client should connect to, users need to supply a relay chain chain-spec as part of the relay chain arguments.
Note: At this time, any parachain nodes using this feature will still spawn a significantly cut-down relay chain node in-process. Even though they lack the majority of normal Polkadot subsystems, they will still need to connect directly to the relay chain network.
Example command
polkadot-parachain \
--chain parachain-chainspec.json \
--tmp \
--relay-chain-light-client \
-- \
--chain relaychain-chainspec.json
Installation and Setup
Before building Cumulus SDK based nodes / runtimes prepare your environment by following Substrate installation instructions.
To launch a local network, you can use zombienet for quick setup and experimentation or follow the manual setup.
Zombienet
We use Zombienet to spin up networks for integration tests and local networks. Follow these installation steps to set it up on your machine. A simple network specification with two relay chain nodes and one collator is located at zombienet/examples/small_network.toml.
Which provider should I use?
Zombienet offers multiple providers to run networks. Choose the one that best fits your needs:
- Podman: Choose this if you want to spin up a network quick and easy.
- Native: Choose this if you want to develop and deploy your changes. Requires compilation of the binaries.
- Kubernetes: Choose this for advanced use-cases or running on cloud-infrastructure.
How to run
To run the example network, use the following commands:
# Podman provider
zombienet --provider podman spawn ./zombienet/examples/small_network.toml
# Native provider, assumes polkadot and polkadot-parachains binary in $PATH
zombienet --provider native spawn ./zombienet/examples/small_network.toml
Manual Setup
Launch the Relay Chain
# Clone
git clone https://github.com/paritytech/polkadot-sdk
# Compile Polkadot's required binaries
cargo build --release -p polkadot
# Generate a raw chain spec
./target/release/polkadot build-spec --chain rococo-local --disable-default-bootnode --raw > rococo-local-cfde.json
# Alice
./target/release/polkadot --chain rococo-local-cfde.json --alice --tmp
# Bob (In a separate terminal)
./target/release/polkadot --chain rococo-local-cfde.json --bob --tmp --port 30334
Launch the Parachain
# Compile
cargo build --release -p polkadot-parachain-bin
# Export genesis state
./target/release/polkadot-parachain export-genesis-state > genesis-state
# Export genesis wasm
./target/release/polkadot-parachain export-genesis-wasm > genesis-wasm
# Collator1
./target/release/polkadot-parachain --collator --alice --force-authoring \
--tmp --port 40335 --rpc-port 9946 -- --chain rococo-local-cfde.json --port 30335
# Collator2
./target/release/polkadot-parachain --collator --bob --force-authoring \
--tmp --port 40336 --rpc-port 9947 -- --chain rococo-local-cfde.json --port 30336
# Parachain Full Node 1
./target/release/polkadot-parachain --tmp --port 40337 --rpc-port 9948 -- \
--chain rococo-local-cfde.json --port 30337
Register the parachain
Asset Hub 🪙
This repository also contains the Asset Hub runtimes. Asset Hub is a system parachain providing an asset store for the Polkadot ecosystem.
Build & Launch a Node
To run an Asset Hub node, you will need to compile the polkadot-parachain binary:
cargo build --release --locked --bin polkadot-parachain
Once the executable is built, launch the parachain node via:
CHAIN=asset-hub-westend # or asset-hub-kusama
./target/release/polkadot-parachain --chain $CHAIN
Refer to the setup instructions to run a local network for development.
Contracts 📝
See the contracts-rococo readme for details.
Bridge-hub 📝
See the bridge-hubs readme for details.
Rococo 👑
Rococo is becoming a Community Parachain Testbed for parachain teams in the Polkadot ecosystem. It supports multiple parachains with the differentiation of long-term connections and recurring short-term connections, to see which parachains are currently connected and how long they will be connected for see here.
Rococo is an elaborate style of design and the name describes the painstaking effort that has gone into this project.
Build & Launch Rococo Collators
Collators are similar to validators in the relay chain. These nodes build the blocks that will eventually be included by the relay chain for a parachain.
To run a Rococo collator you will need to compile the following binary:
cargo build --release --locked --bin polkadot-parachain
Once the executable is built, launch collators for each parachain (repeat once each for chain tick, trick, track):
./target/release/polkadot-parachain --chain $CHAIN --validator
You can also build using a container.
Parachains
The network uses horizontal message passing (HRMP) to enable communication between parachains and the relay chain and, in turn, between parachains. This means that every message is sent to the relay chain, and from the relay chain to its destination parachain.
