# Release new image with ĞDev5 chainspecs

**URL:** https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723
**Category:** ĞDev
**Tags:** bootnodes
**Created:** [7 March 2023 17:42 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723 "2023-03-07T17:42:48Z")
**Posts on this page:** 20
**Page:** 2

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [7 March 2023 21:18 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/21 "2023-03-07T21:18:12Z")

</div>

> [@HugoTrentesaux](#):
>
> I just asked the question [here](https://substrate.stackexchange.com/questions/7512/should-i-set-validator-or-rpc-nodes-in-chainspec-bootnodes)

By the way, I just got an answer ^^

---

<div class="post-metadata">

### Author: ![poka](https://forum.duniter.org/user_avatar/forum.duniter.org/poka/32/6827_2.png) [@poka](https://forum.duniter.org/u/poka)
#### Post date: [7 March 2023 21:19 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/22 "2023-03-07T21:19:59Z")

</div>

Well, we could shoot each other for a long time…

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [7 March 2023 21:20 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/23 "2023-03-07T21:20:57Z")

</div>

My `--public-addr` is:  
`/dns/gdev.polux.re/tcp/30333/p2p/12D3KooWQ9dAZWSNQLLb3WG1gtNYhqhu7BUpaCXpUACvCFeoq8Ff`  
(I changed `txmn.tk` into `polux.re` but the old domain is still working)

However in RPC localPeerId and localListenAddresses I have:  
`12D3KooWJmjLNArKNerjUgVyEQmHuZgNTBe2mQb6vjmuGR635Vuh`

I don’t know which one is right.

---

<div class="post-metadata">

### Author: ![Pini](https://forum.duniter.org/user_avatar/forum.duniter.org/pini/32/6819_2.png) [@Pini](https://forum.duniter.org/u/Pini)
#### Post date: [7 March 2023 21:22 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/24 "2023-03-07T21:22:47Z")

</div>

> [@tuxmain](#):
>
> I don’t know which one is right.

The latter as I understand it. Where does the former peer ID come from?

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [7 March 2023 21:33 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/25 "2023-03-07T21:33:05Z")

</div>

The former comes from the `--public-addr` command-line option. (I don’t remember how I generated it) But maybe it’s not read or maybe the peer id is dummy and the real one is generated independently.

---

<div class="post-metadata">

### Author: ![Pini](https://forum.duniter.org/user_avatar/forum.duniter.org/pini/32/6819_2.png) [@Pini](https://forum.duniter.org/u/Pini)
#### Post date: [7 March 2023 21:35 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/26 "2023-03-07T21:35:46Z")

</div>

> [@tuxmain](#):
>
> The former comes from the `--public-addr` command-line option.

You shouldn’t set it this way. Use the address part before `/p2p` only. See : [ĞDev5 smiths - #26 by Pini](https://forum.duniter.org/t/gdev5-smiths/10234/26)

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [8 March 2023 07:47 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/27 "2023-03-08T07:47:54Z")

</div>

> [@HugoTrentesaux](#):
>
> @moul, I see you have a DNS entry:
> 
> ```auto
> gdev.moul.re. 3550	IN	A	51.68.188.165
> 
> ```
> 
> do you have a bootnode to share with us?

I have to fix my setup. Will you update the bootnodes into ĞDev5 or into ĞDev6?

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [8 March 2023 11:46 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/28 "2023-03-08T11:46:34Z")

</div>

> [@HugoTrentesaux](#):
>
> ```auto
> "/dns/gdev.cgeek.fr/tcp/30333/p2p/12D3KooWDoEt6m6fBVg3YcgFH8TtsRQTJGmyVMGU3fKkRoM1hWrT",
> 
> ```

OK for me, this key is being used as gdev-rpc right now, but I can change my node to a validator anyway.

However, I’m not sure of the `tcp/30333` part. I should be in the same configuration as @Pini.

edit : confirmed, please use:

```auto
"/dns/gdev.cgeek.fr/tcp/443/wss/p2p/12D3KooWCxdtN2uUBF7YfQ76C9fr3BFhm2UGrF3QkpqQgQJtXun8/p2p/12D3KooWDoEt6m6fBVg3YcgFH8TtsRQTJGmyVMGU3fKkRoM1hWrT",

```

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [8 March 2023 12:15 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/29 "2023-03-08T12:15:24Z")

</div>

It may be good to have at least one non-validator bootnode with a big bus factor, i.e. hosted by Axiom-Team. It would make less urgent to update the bootnode list as people change domain names or peer ids or crash their personal server.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [8 March 2023 14:57 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/30 "2023-03-08T14:57:59Z")

</div>

> [@cgeek](#):
>
> `"/dns/gdev.cgeek.fr/tcp/443/wss/p2p/12D3KooWCxdtN2uUBF7YfQ76C9fr3BFhm2UGrF3QkpqQgQJtXun8/p2p/12D3KooWDoEt6m6fBVg3YcgFH8TtsRQTJGmyVMGU3fKkRoM1hWrT",`

Do not set manually the protocol and the peerId, it’s added automatically by Duniter2. @pini documented it his table: [Duniter | Configure your node (Docker)](https://duniter.org/wiki/duniter-v2/configure-docker/#environment-variables) (`DUNITER_PUBLIC_ADDR`)

> Note: the `p2p/<peer_id>` part of the address shouldn’t be set in this variable. It is automatically added by Duniter.

> [@tuxmain](#):
>
> bus factor

I do not see why three different servers managed by A, B, C would have a higher bus factor than a single server managed by A&B&C.

---

<div class="post-metadata">

### Author: ![tuxmain](https://forum.duniter.org/user_avatar/forum.duniter.org/tuxmain/32/6423_2.png) [@tuxmain](https://forum.duniter.org/u/tuxmain)
#### Post date: [8 March 2023 16:26 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/31 "2023-03-08T16:26:12Z")

</div>

> [@HugoTrentesaux](#):
>
> I do not see why three different servers managed by A, B, C would have a higher bus factor than a single server managed by A&B&C.

I’m not saying we should replace, but add.

Nodes hosted by individuals may fluctuate randomly and we’ll have to update the bootnodes list quite often. If during a few years we forgot to update it, all the bootnodes will be down with a non-negligible probability (maybe they just changed their port or domain).

So I propose a fallback server with a canonical address which is guaranteed to never change and does not depend on individuals only. Like `gdev.duniter.org` or `gdev.axiom-team.fr`.

It should also have RPC disabled to avoid becoming the _de facto_ default node for clients.

Edit: This node may be the same used by the indexer, if the indexer is hosted by Axiom.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [8 March 2023 17:56 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/32 "2023-03-08T17:56:08Z")

</div>

> [@tuxmain](#):
>
> all the bootnodes will be down

When all the bootnodes are down, someone starting a node can add another with `--botnodes` argument. What you suggest will be relevant for Ğ1 network, but for ĞDev and ĞTest, I don’t see the problem to stick to individual nodes only.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [9 March 2023 14:25 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/33 "2023-03-09T14:25:21Z")

</div>

> [@Pini](#):
>
> EDIT: here is my validator node endpoint, just in case we end up prefering validator nodes as boot nodes.
> 
> ```auto
> /dns/gdev-smith.pini.fr/tcp/443/wss/p2p/12D3KooWCEVBrLK9g8unsHLj8wWzobbwArDZMM
> 
> ```

This won’t work imho, `gdev-smith.pini.fr` do not have its WS/RPC APIs exposed, or if you do you must avoid `--rpc-methods=Unsafe` usage (for security reasons), in which case you can’t administrate your validator node.

> [@poka](#):
>
> For me, set the node idty of a validator does not particularly expose it to anything.

It does if RPC/WS APIs are exposed with `--rpc-methods=Unsafe` option. Otherwise, indeed, there is no particular security issue with P2P port.

> [@HugoTrentesaux](#):
>
> Do not set manually the protocol and the peerId, it’s added automatically by Duniter2.

What makes you think I manually added it? I was just giving you my bootnode URL.

---

<div class="post-metadata">

### Author: ![Pini](https://forum.duniter.org/user_avatar/forum.duniter.org/pini/32/6819_2.png) [@Pini](https://forum.duniter.org/u/Pini)
#### Post date: [9 March 2023 14:31 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/34 "2023-03-09T14:31:23Z")

</div>

> [@cgeek](#):
>
> This won’t work imho, `gdev-smith.pini.fr` do not have its WS/RPC APIs exposed, or if you do you must avoid `--rpc-methods=Unsafe` usage (for security reasons), in which case you can’t administrate your validator node.

This is the P2P endpoint which is bound to the port 30333 of my smith instance. Nothing related to the RPC API.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [9 March 2023 14:35 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/35 "2023-03-09T14:35:21Z")

</div>

> [@Pini](#):
>
> `wss`

What is the `wss` meant for then?

Also, I’m curious to know how you handle this mapping.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [9 March 2023 15:58 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/36 "2023-03-09T15:58:38Z")

</div>

The CI released a new docker image `duniter/duniter-v2s:sha-a160bedd` (it’s ok to keep commit hash for now in order to find easily on which branch we are dealing with).

Only bootnode issue:

```auto
💔 The bootnode you want to connect to at `/dns/gdev.polux.re/tcp/30333/p2p/12D3KooWQ9dAZWSNQLLb3WG1gtNYhqhu7BUpaCXpUACvCFeoq8Ff` provided a different peer ID `12D3KooWJmjLNArKNerjUgVyEQmHuZgNTBe2mQb6vjmuGR635Vuh` than the one you expect `12D3KooWQ9dAZWSNQLLb3WG1gtNYhqhu7BUpaCXpUACvCFeoq8Ff`

```

PS : I updated my archive node and because I am not good at docker and renamed my service, I also lost my volume and changed my peerId 😅

> [@tuxmain](#):
>
> I don’t know which one is right.

Now you know 😝  
(will be changed later)

> [@cgeek](#):
>
> What makes you think I manually added it?

Because the pattern `p2p/<nodeId>` appears twice in the address I quoted. I think the second one was set by Duniter2 and the first one was set manually. But maybe there is a bug that appends this twice with different peerId? 🤔 [edit: it’s a “copy-paste” bug 😹]

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [9 March 2023 16:39 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/37 "2023-03-09T16:39:41Z")

</div>

> [@HugoTrentesaux](#):
>
> Because the pattern `p2p/<nodeId>` appears twice in the address I quoted.

My mistake, I wrongly copy/pasted on the forum I think.

---

<div class="post-metadata">

### Author: ![Pini](https://forum.duniter.org/user_avatar/forum.duniter.org/pini/32/6819_2.png) [@Pini](https://forum.duniter.org/u/Pini)
#### Post date: [9 March 2023 16:46 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/38 "2023-03-09T16:46:38Z")

</div>

> [@cgeek](#):
>
> What is the `wss` meant for then?

See duniter command line help (`duniter --help`) and [libp2p addressing documentation](https://github.com/libp2p/specs/blob/master/addressing/README.md):

```auto
      --public-addr <PUBLIC_ADDR>...
          The public address that other nodes will use to connect to it. This can be used if there's a proxy in front of this node

      --listen-addr <LISTEN_ADDR>...
          Listen on this multiaddress.
          
          By default: If `--validator` is passed: `/ip4/0.0.0.0/tcp/<port>` and `/ip6/[::]/tcp/<port>`. Otherwise: `/ip4/0.0.0.0/tcp/<port>/ws` and `/ip6/[::]/tcp/<port>/ws`.

```

As I understand it you can force libp2p to listen on a web socket instead of TCP. This way you can setup your node behind a web reverse proxy, which is how I did.

> [@cgeek](#):
>
> Also, I’m curious to know how you handle this mapping.

I’m using a [personal fork of nginx-proxy](https://github.com/pini-gh/nginx-proxy) (\*) which allows to map multiple ports of the same docker container. Here is the related configuration:

```auto
      - VIRTUAL_HOST=gdev.pini.fr
      - VIRTUAL_PORT=30333,9933:/http,9944:/ws

```

and

```auto
      - VIRTUAL_HOST=gdev-smith.pini.fr
      - VIRTUAL_PORT=30333,9944:/ws

```

For my smith node I expose the WS/RPC interface as well, but its access is protected with a certificate. This avoids the setting of an SSH tunnel when I want to deal with it.

(\*) There is ongoing work on upstream nginx-proxy to implement a similar feature, so hopefully my fork won’t be needed anymore at some point in the future.

---

<div class="post-metadata">

### Author: ![Pini](https://forum.duniter.org/user_avatar/forum.duniter.org/pini/32/6819_2.png) [@Pini](https://forum.duniter.org/u/Pini)
#### Post date: [10 March 2023 09:45 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/39 "2023-03-10T09:45:49Z")

</div>

> [@HugoTrentesaux](#):
>
> The CI released a new docker image `duniter/duniter-v2s:sha-a160bedd` (it’s ok to keep commit hash for now in order to find easily on which branch we are dealing with).

I’d be in favor of releasing `duniter/duniter-v2s:latest` as well so that:

- current image would be easily identifiable
- the image documentation would be pushed to dockerhub by the CI

Thois would greatly help wannabe smiths.

> [@HugoTrentesaux](#):
>
> Only bootnode issue:

I’ve just updated my mirror node with your image and I see one more bootnode issue 😅:

```auto
2023-03-10 09:35:26 💔 The bootnode you want to connect to at `/dns/gdev.coinduf.eu/tcp/30333/p2p/12D3KooWMCrfuSXdGvokGCjbuN9KZvq9N7WWBoPat91gG1PU4w2b` provided a different peer ID `12D3KooWAVY7T3eqGxyjCPbKfMKrkT55XR6BuBxpW5sEEJYAJu3n` than the one you expect `12D3KooWMCrfuSXdGvokGCjbuN9KZvq9N7WWBoPat91gG1PU4w2b`.
2023-03-10 09:35:26 💔 The bootnode you want to connect to at `/dns/gdev.polux.re/tcp/30333/p2p/12D3KooWQ9dAZWSNQLLb3WG1gtNYhqhu7BUpaCXpUACvCFeoq8Ff` provided a different peer ID `12D3KooWJmjLNArKNerjUgVyEQmHuZgNTBe2mQb6vjmuGR635Vuh` than the one you expect `12D3KooWQ9dAZWSNQLLb3WG1gtNYhqhu7BUpaCXpUACvCFeoq8Ff`.

```

EDIT: These error messages keep showing in the logs. This goes in favor of having few but resilient bootnodes.

---

<div class="post-metadata">

### Author: ![HugoTrentesaux](https://forum.duniter.org/user_avatar/forum.duniter.org/hugotrentesaux/32/6396_2.png) [@HugoTrentesaux](https://forum.duniter.org/u/HugoTrentesaux)
#### Post date: [10 March 2023 10:15 UTC](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723/40 "2023-03-10T10:15:32Z")

</div>

> [@Pini](#):
>
> I’d be in favor of releasing `duniter/duniter-v2s:latest`

Ok, then I should use a release tag if I want to use the CI. I’m doing it.

> [@Pini](#):
>
> I see one more bootnode issue

Yes, I did see it immediately after updating my archive node:

> [@HugoTrentesaux](#):
>
> PS : I updated my archive node and because I am not good at docker and renamed my service, I also lost my volume and changed my peerId 😅

[edit] you can use `duniter/duniter-v2s:latest`

[Previous page](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723.md?page=1)

[Next page](https://forum.duniter.org/t/release-new-image-with-gdev5-chainspecs/10723.md?page=3)
