ĞDev5 smiths

Comment je rotate mes sessions_ keys de A à Z avec ğcli svp, avec astuce pour rendre accessible le noeud smith à distance ?

Et avec l’astuce pour le SSL gcli je n’ai plus la commande…

Est-ce qu’on a un début de doc quelque part qui ne traite que de ça ?

Je viens d’ajouter ces commandes au readme :

ssh -L 9944:localhost:9944 duniter@gdev.example.tld

# puis dans un autre terminal
gcli update-keys
# puis seulement si offline
gcli --secret "my secret phrase" go-online

Par contre je n’arrive plus à le faire marcher en wss.

Edit: malgré le fait que ton nœud soit dans mes bootnodes, j’ai l’impression que mon nœud est isolé. c’est bon j’avais le mauvais port.

While there are three active smiths (@tuxmain, @HugoTrentesaux, and me) the blockchain seems stuck at block 917920 :
Capture d’écran de 2023-02-17 16-29-46
What can we do about that?

I’m at 937800, it runs fine. You can try to restart your node.

When my node was stuck (even after restart) it worked with the additional argument --sync Warp. (I don’t know why…)

What are the meanings of “finalized” and “best” on Polkadot.js?

1 Like

We have a @elois talk here about it: Rencontre technique à Bordeaux du 11 au 13 novembre 2022 - #26 by 1000i100 (rush published by 1000i100).

They are still to be cut and uploaded to make viewing them easier. I’ll do.

Is that related to finalized blocks?

My node is not stuck: it produces valid blocks. The problem is that the finalized blocks counter is stuck at 917920 whatever gdev node I connect to with PolkadotJS.

1 Like

Hello all !

I would like to try and install DuniterV2 to be GDev smith on a shared host (Infomaniak) where I cannot install Docker.
I installed successfully Rust (to test if it was possible) but I don’t know how to install Duniter without Docker.
Any existing doc or advices (I never used Rust) ?

Thanks !

Jonathan

1 Like

Hello,

You can either compile Duniter (the instructions are in the repository) or use my builds.

I’m using this systemd service file: (I’ll add it to the docs for dockerless installs)

[Unit]
Description=DuniterV2 gdev
After=network.target
RequiresMountsFor=/home/pi

[Service]
Restart=on-failure
User=pi
Group=pi
ExecStart=/usr/bin/duniter --node-key-file /home/pi/.config/duniter-gdev/validator-node.key --public-addr /dns/gdev.txmn.tk/tcp/30333/p2p/12D3KooWQ9dAZWSNQLLb3WG1gtNYhqhu7BUpaCXpUACvCFeoq8Ff --rpc-cors all --chain /home/pi/gdev5-raw.json --rpc-methods unsafe --pruning 1024 --validator --name tuxmain-polux-smith-gdev --no-telemetry --sync Warp
#StandardOutput=null

[Install]
WantedBy=multi-user.target

This is the command for a validator (no public RPC) node. See in the docker files to find the commands for a public RPC node. A same node should not be both validator and public RPC, but you can run the two on the same server.

2 Likes

What does RPC mean ?

Remote Procedure Call

The RPC API is the API for communicating with the node from a wallet or other client tool.

1 Like

I updated the smith documentation. I did this fast without checking everything. Can someone do some proofreading?

https://duniter.org/wiki/duniter-v2/become-smith/

1 Like

Here is what I’ve found (but I’m far from being a reference in english writing):

Having a unique digital identity entail you can only have one smith identity.

entails

his/her, he/she

their, they

Otherwise you will be unable to add block and generate BABE offences.

Otherwise you will be unable to add block and will generate BABE offenses.

1 Like

The website’s documentation has been updated with @Pini’s docker readme. In particular, you have a table with environment variables available at:

https://duniter.org/wiki/duniter-v2/configure-docker/#environment-variables

1 Like

Hello, je viens de publier 2 nœuds : 1 rpc et 1 validateur, visibles en Télémetrie et en cours de synchro. Néanmoins je suis un peu dubitatif sur leur rôle respectif.

En termes de conf, la grosse différence c’est que mon nœud validateur possède, outre une node.key différente, des options de lancement en plus :

--rpc-methods=Unsafe
--validator

L’option --validator coule de source.
Mais pour --rpc-methods=Unsafe, là j’ai du mal.

Ne serait-ce pas plutôt au nœud mirroir (le RPC) justement d’exposer l’API RPC (et ne PAS le faire pour le validateur), et de surcroît concernant les méthodes Unsafe ?

Je n’ai pas encore eu le temps de creuser ces notions, peut-être que tout ceci s’explique.

1 Like

C’est bien normal : les méthodes “unsafe” sont celles à ne pas exposer publiquement (par exemple tu t’y connectes avec un pont ssh ou un vpn). Ce sont les méthodes RPC qui permettent de générer des session keys par exemple, donc uniquement pour un forgeron. De plus, le nœud forgeron doit idéalement être sur une machine qui lui garantit d’avoir toujours les ressources nécessaire pour au moins égaliser la machine de référence.

Pour le nœud RPC, c’est le seul qui doit exposer publiquement une API RPC (donc sans les méthodes unsafe qu’il ne faut pas exposer publiquement), et tu peux en plus le configurer pour être un nœud archive, c’est-à-dire stocker tous les états depuis le début (et pas uniquement les blocs = transitions d’état). Les deux communiquent via la lib p2p, et c’est la seule interface avec le monde extérieur pour un nœud validateur.

2 Likes

D’ailleurs, cette consigne vaut pour le nœud miroir, mais pour le nœud validateur, il faut n’écouter que sur localhost, sauf pour le port p2p. (d’après ce que j’ai compris)

1 Like

C’est ce point qui n’est pas clair, d’ailleurs @Pini a tiqué aussi (et précisément tu cites ce message juste ensuite).

Je viens de retirer l’exposition RPC, mais comment exposer le port 30333 ? (ou 30334 dans le post initial)

Je ne constate aucun transfert de port via UPnP pour de l’IPv4 derrière ma box, donc je ne vois pas bien comment mon nœud validateur peut être contacté publiquement.

Alors certes il tourne, il va certainement contacter les nœuds validateurs accessibles publiquement. Mais le mien, à mon avis, est inaccessible.

1 Like

Ça, je ne sais pas comment fonctionne libp2p, je crois que c’est @Pini qui a le plus creusé la question en bossant sur l’entrypoint docker (cf DUNITER_PUBLIC_ADDR and DUNITER_LISTEN_ADDR in Duniter | Configure your node (Docker)).

Mais peut-être que si tu es en mesure d’initier la connexion sans être capable de recevoir une connexion entrante ça suffit (et ce serait logique finalement, question sécurité et surface d’attaque). Si c’est bien ça, le nœud validateur ne doit rien exposer du tout, mais juste avoir des bootnodes vers des noeuds RPC pour la découverte du réseau. Il faut se renseigner.