From 9133b48b8e7f5dadf058252430adc7e9b2a177b2 Mon Sep 17 00:00:00 2001 From: librelois <c@elo.tf> Date: Mon, 6 Jun 2022 20:12:35 +0200 Subject: [PATCH] doc(docker): rework docker documentation --- README.md | 2 +- docker/compose/gdev-mirror.docker-compose.yml | 2 +- .../compose/gdev-validator.docker-compose.yml | 34 ++++++++----------- docs/user/{mirror.md => rpc.md} | 14 +++++--- docs/user/smith.md | 15 +++++--- 5 files changed, 36 insertions(+), 31 deletions(-) rename docs/user/{mirror.md => rpc.md} (75%) diff --git a/README.md b/README.md index 017486377..fbaee87c9 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Minimal command to deploy a **temporary** mirror peer: docker run -it -p9944:9944 -e DUNITER_CHAIN_NAME=gdev duniter/duniter-v2s:v0.1.0 --tmp --execution=Wasm ``` -To go further, read [How to deploy a permanent mirror node on ÄžDev network](./docs/user/mirror.md). +To go further, read [How to deploy a permanent mirror node on ÄžDev network](./docs/user/rpc.md). ### Create your local blockchain diff --git a/docker/compose/gdev-mirror.docker-compose.yml b/docker/compose/gdev-mirror.docker-compose.yml index ed881978d..c2c295b61 100644 --- a/docker/compose/gdev-mirror.docker-compose.yml +++ b/docker/compose/gdev-mirror.docker-compose.yml @@ -28,7 +28,7 @@ services: # # The PEER_ID should be replaced by the output of this command: # docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node.key - - "/dns/SERVER_DOMAIN/tcp/30333/p2p/PEER_ID" + - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}" - "--rpc-cors" - "all" diff --git a/docker/compose/gdev-validator.docker-compose.yml b/docker/compose/gdev-validator.docker-compose.yml index e9f3b57bc..0a3c07bb4 100644 --- a/docker/compose/gdev-validator.docker-compose.yml +++ b/docker/compose/gdev-validator.docker-compose.yml @@ -14,22 +14,20 @@ services: # p2p - 30333:30333 volumes: - - ./duniter-rpc/:/var/lib/duniter/ + - ./node.key:/etc/duniter/validator-node.key + - duniter-rpc-data:/var/lib/duniter/ environment: - DUNITER_CHAIN_NAME=gdev command: - - "--execution" - - "Wasm" - - "--node-key-file" - - "/var/lib/duniter/node-key" + - "--execution=Wasm" + - "--node-key-file=/var/lib/duniter/node.key" - "--public-addr" - # SERVER_IP should be replaced by the public IP of your server + # SERVER_DOMAIN should be replaced by a domain name that point on your server # # The PEER_ID should be replaced by the output of this command: # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node-key.txt - - "/ip4/SERVER_IP/tcp/30333/p2p/PEER_ID" - - "--rpc-cors" - - "all" + - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}" + - "--rpc-cors=all" duniter-validator: image: duniter/duniter-v2s:v0.1.0 @@ -44,21 +42,19 @@ services: # p2p - 30334:30333 volumes: - - ./duniter-validator/:/var/lib/duniter/ + - ./node.key:/etc/duniter/validator-node.key + - duniter-validator-data:/var/lib/duniter/ environment: - DUNITER_CHAIN_NAME=gdev command: - - "--execution" - - "Wasm" - - "--node-key-file" - - "/var/lib/duniter/node-key" + - "--execution=Wasm" + - "--node-key-file=/var/lib/duniter/node.key" - "--public-addr" - # SERVER_IP should be replaced by the public IP of your server + # SERVER_DOMAIN should be replaced by a domain name that point on your server # # The PEER_ID should be replaced by the output of this command: - # docker run --rm -it --entrypoint duniter -v $PWD/duniter-validator/:/var/lib/duniter/ duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node-key.txt - - "/ip4/SERVER_IP/tcp/30334/p2p/PEER_ID" + # docker run --rm -it --entrypoint -v $PWD/duniter-rpc/:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node-key.txt + - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${VALIDATOR_PEER_ID?VALIDATOR_PEER_ID should be set}" + - "--rpc-cors=all" - "--rpc-methods=Unsafe" - "--validator" - - "--rpc-cors" - - "all" diff --git a/docs/user/mirror.md b/docs/user/rpc.md similarity index 75% rename from docs/user/mirror.md rename to docs/user/rpc.md index 0e3ecccd6..4ea4a2210 100644 --- a/docs/user/mirror.md +++ b/docs/user/rpc.md @@ -1,15 +1,19 @@ -# How to deploy a permanent mirror node on ÄžDev network +# How to deploy a permanent rpc node on ÄžDev network ## Publish a node ### Duniter part + - Add this docker-compose on your server : -[docker/compose/gdev-mirror.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-mirror.docker-compose.yml) -- Edit lines 26: `"/dns/SERVER_DOMAIN/tcp/30333/p2p/PEER_ID"` - with your domain name an the PEER_ID you get using te command in comment. +[docker/compose/gdev-rpc.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-rpc.docker-compose.yml) +- Create a `.env` file that defime environment variables `SERVER_DOMAIN` and `PEER_ID`: + - `SERVER_DOMAIN`:Â a domain name that point on your server + - `PEER_ID`: Your node peer id, shoud be generated with this command:Â `docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/node.key` - If you have write access errors run in docker-compose.yml folder : `chmod o+rwX -R .` - `docker-compose up -d` to start your node + ### Reverse-proxy part (with Nginx) + In `/etc/nginx/sites-enabled/gdev.YOUR_DOMAIN` put (you can probably do simpler) : ``` server { @@ -55,7 +59,7 @@ and replace `YOUR_DOMAIN` by your domain each time. if you don't already have a wildcard certificate. - `service nginx reload` -Your node is now online as a mirror node. It's fully capable for wallet use. +Your node is now online as a rpc node. It's fully capable for wallet use. To go further, read [How to become a (black)smith](./smith.md) diff --git a/docs/user/smith.md b/docs/user/smith.md index d29f3d29d..5a671923a 100644 --- a/docs/user/smith.md +++ b/docs/user/smith.md @@ -3,14 +3,19 @@ ## Publish a node ### Duniter part + - Add this docker-compose on your server : [docker/compose/gdev-validator.docker-compose.yml](https://git.duniter.org/nodes/rust/duniter-v2s/-/blob/master/docker/compose/gdev-validator.docker-compose.yml) -- Edit lines 26 and 51 : `/ip4/SERVER_IP/tcp/30333/p2p/PEER_ID` - with your IP or domain an the PEER_ID you get using te command in comment. +- Create a `.env` file that define environment variables `SERVER_DOMAIN`, `PEER_ID` and `VALIDATOR_PEER_ID`: + - `SERVER_DOMAIN`:Â a domain name that point on your server + - `PEER_ID`: Your rpc node peer id, shoud be generated with this command:Â `docker run --rm -it --entrypoint -v $PWD:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/rpc-node.key` + - `VALIDATOR_PEER_ID`: Your validator node peer id, shoud be generated with this command:Â `docker run --rm -it --entrypoint -v $PWD:/var/lib/duniter/ duniter duniter/duniter-v2s:v0.1.0 key generate-node-key --file /var/lib/duniter/validator-node.key` Note: duniter-rpc PEER_ID and duniter-validator PEER_ID isn't the same. - If you have write access errors run in docker-compose.yml folder : `chmod o+rwX -R .` - `docker-compose up -d` to start your node + ### Reverse-proxy part (with Nginx) + In `/etc/nginx/sites-enabled/gdev.YOUR_DOMAIN` put (you can probably do simpler) : ``` server { @@ -56,9 +61,10 @@ and replace `YOUR_DOMAIN` by your domain each time. if you don't already have a wildcard certificate. - `service nginx reload` -Your node is now online as a mirror node. It's fully capable for wallet use. +Your node is now online as a rpc node. It's fully capable for wallet use. ## Join the Smith WoT + - add polkadot webextension to be able to authentificate with your account. - Go to [any node with polkadotjs ui](https://gdev.1000i100.fr/dev-ui/?rpc=wss://gdev.1000i100.fr/ws) - Ask to join Smith WoT (you need to already be in the main WoT) @@ -70,8 +76,6 @@ Your node is now online as a mirror node. It's fully capable for wallet use. When you have at least 3 certifications, your'in ! - - ## Validate blocks (blacksmith work) - Generate and publish your session keys @@ -85,6 +89,7 @@ When you have at least 3 certifications, your'in ! - In the UI : developer > extrinsics > YOUR_SMITH_ACCOUNT > authorityMembers > goOnline() If you're not able to monitor, reboot, act on your node, goOffline() to avoid penality to the blockchain and to you. + ## Upgrade your node with minimal interruption 1. Modify docker image tag on your compose file -- GitLab