mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-25 00:05:46 +00:00
Add information about the parity container image (#2783)
This commit is contained in:
+6
-33
@@ -5,6 +5,8 @@
|
|||||||
This repository contains both the Cumulus SDK and also specific chains implemented
|
This repository contains both the Cumulus SDK and also specific chains implemented
|
||||||
on top of this SDK.
|
on top of this SDK.
|
||||||
|
|
||||||
|
If you only want to run a **Polkadot Parachain Node**, check out our [container section](./docs/container.md).
|
||||||
|
|
||||||
## Cumulus SDK
|
## Cumulus SDK
|
||||||
|
|
||||||
A set of tools for writing [Substrate](https://substrate.io/)-based
|
A set of tools for writing [Substrate](https://substrate.io/)-based
|
||||||
@@ -37,6 +39,8 @@ and treat as best.
|
|||||||
A Polkadot [collator](https://wiki.polkadot.network/docs/en/learn-collator) for the parachain is
|
A Polkadot [collator](https://wiki.polkadot.network/docs/en/learn-collator) for the parachain is
|
||||||
implemented by the `polkadot-parachain` binary (previously called `polkadot-collator`).
|
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](./docs/container.md).
|
||||||
|
|
||||||
### Relay Chain Interaction
|
### Relay Chain Interaction
|
||||||
To operate a parachain node, a connection to the corresponding relay chain is necessary. This can be
|
To operate a parachain node, a connection to the corresponding relay chain is necessary. This can be
|
||||||
achieved in one of two ways:
|
achieved in one of two ways:
|
||||||
@@ -220,19 +224,6 @@ To run a Rococo collator you will need to compile the following binary:
|
|||||||
cargo build --release --locked --bin polkadot-parachain
|
cargo build --release --locked --bin polkadot-parachain
|
||||||
```
|
```
|
||||||
|
|
||||||
Otherwise you can compile it with
|
|
||||||
[Parity CI docker image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-linux):
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run --rm -it -w /shellhere/cumulus \
|
|
||||||
-v $(pwd):/shellhere/cumulus \
|
|
||||||
paritytech/ci-linux:production cargo build --release --locked --bin polkadot-parachain
|
|
||||||
sudo chown -R $(id -u):$(id -g) target/
|
|
||||||
```
|
|
||||||
|
|
||||||
If you want to reproduce other steps of CI process you can use the following
|
|
||||||
[guide](https://github.com/paritytech/scripts#gitlab-ci-for-building-docker-images).
|
|
||||||
|
|
||||||
Once the executable is built, launch collators for each parachain (repeat once each for chain
|
Once the executable is built, launch collators for each parachain (repeat once each for chain
|
||||||
`tick`, `trick`, `track`):
|
`tick`, `trick`, `track`):
|
||||||
|
|
||||||
@@ -240,6 +231,8 @@ Once the executable is built, launch collators for each parachain (repeat once e
|
|||||||
./target/release/polkadot-parachain --chain $CHAIN --validator
|
./target/release/polkadot-parachain --chain $CHAIN --validator
|
||||||
```
|
```
|
||||||
|
|
||||||
|
You can also build [using a container](./docs/container.md).
|
||||||
|
|
||||||
### Parachains
|
### Parachains
|
||||||
|
|
||||||
* [Asset Hub](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-statemint-rpc.polkadot.io#/explorer)
|
* [Asset Hub](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-statemint-rpc.polkadot.io#/explorer)
|
||||||
@@ -249,23 +242,3 @@ Once the executable is built, launch collators for each parachain (repeat once e
|
|||||||
The network uses horizontal message passing (HRMP) to enable communication between parachains and
|
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
|
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.
|
chain, and from the relay chain to its destination parachain.
|
||||||
|
|
||||||
### Containerize
|
|
||||||
|
|
||||||
After building `polkadot-parachain` with cargo or with Parity CI image as documented in [this chapter](#build--launch-rococo-collators),
|
|
||||||
the following will allow producing a new docker image where the compiled binary is injected:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
./docker/scripts/build-injected-image.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
Alternatively, you can build an image with a builder pattern:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker build --tag $OWNER/$IMAGE_NAME --file ./docker/polkadot-parachain_builder.Containerfile .
|
|
||||||
|
|
||||||
You may then run your new container:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
docker run --rm -it $OWNER/$IMAGE_NAME --collator --tmp --chain /specs/westmint.json
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -0,0 +1,60 @@
|
|||||||
|
## Using Containers
|
||||||
|
|
||||||
|
Using containers via **Podman** or **Docker** brings benefit, whether it is to build a container image or
|
||||||
|
run a node while keeping a minimum footprint on your local system.
|
||||||
|
|
||||||
|
This document mentions using `podman` or `docker`. Those are usually interchangeable and it is encouraged using preferably **Podman**. If you have podman installed and want to use all the commands mentioned below, you can simply create an alias with `alias docker=podman`.
|
||||||
|
|
||||||
|
There are a few options to build a node within a container and inject a binary inside an image.
|
||||||
|
|
||||||
|
### Parity built container image
|
||||||
|
|
||||||
|
Parity builds and publishes a container image that can be found as `docker.io/parity/polkadot-parachain`.
|
||||||
|
|
||||||
|
### Parity CI image
|
||||||
|
|
||||||
|
Parity maintains and uses internally a generic "CI" image that can be used as a base to build binaries: [Parity CI container image](https://github.com/paritytech/scripts/tree/master/dockerfiles/ci-linux):
|
||||||
|
|
||||||
|
The command below allows building a Linux binary without having to even install Rust or any dependency locally:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --rm -it \
|
||||||
|
-w /shellhere/cumulus \
|
||||||
|
-v $(pwd):/shellhere/cumulus \
|
||||||
|
paritytech/ci-linux:production
|
||||||
|
cargo build --release --locked --bin polkadot-parachain
|
||||||
|
sudo chown -R $(id -u):$(id -g) target/
|
||||||
|
```
|
||||||
|
|
||||||
|
If you want to reproduce other steps of CI process you can use the following
|
||||||
|
[guide](https://github.com/paritytech/scripts#gitlab-ci-for-building-docker-images).
|
||||||
|
|
||||||
|
### Injected image
|
||||||
|
|
||||||
|
Injecting a binary inside a base image is the quickest option to get a working container image. This only works if you were able to build a Linux binary, either locally, or using a container as described above.
|
||||||
|
|
||||||
|
After building a Linux binary ()`polkadot-parachain`) with cargo or with Parity CI image as documented above, the following command allows producing a new container image where the compiled binary is injected:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
./docker/scripts/build-injected-image.sh
|
||||||
|
```
|
||||||
|
|
||||||
|
### Container build
|
||||||
|
|
||||||
|
Alternatively, you can build an image with a builder pattern. This options takes a while but offers a simple method for anyone to get a working container image without requiring any of the Rust toolchain installed locally.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker build \
|
||||||
|
--tag $OWNER/$IMAGE_NAME \
|
||||||
|
--file ./docker/polkadot-parachain_builder.Containerfile .
|
||||||
|
```
|
||||||
|
|
||||||
|
You may then run your new container:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --rm -it \
|
||||||
|
$OWNER/$IMAGE_NAME \
|
||||||
|
--collator --tmp \
|
||||||
|
--execution wasm \
|
||||||
|
--chain /specs/westmint.json
|
||||||
|
```
|
||||||
Reference in New Issue
Block a user