diff --git a/README.md b/README.md index 017486377d873755d06d0e713fadd1ba444f65c5..fbaee87c9797d1abc2c63dbe8edef02a9c991592 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 ed881978d5cf27eee36a402853a3f05c79503ddf..c2c295b61a815e34773e25a0e4d00e503aa7cc2f 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 e9f3b57bc7f00faab6e308bedd33b9e5e952bf01..0a3c07bb4cc19b474f2988ebc9739f8bc4f2c7e9 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 0e3ecccd63a46aafc011493a18b4a4550c0e1a81..4ea4a2210324cf7da66e16713434465d828976c1 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 d29f3d29d0293c094d43b583771416c0ceb5549c..5a671923ab2056d1c91fbe7c94ece98fde460ed1 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