ĞDev3 smiths

You can build it for the target you want. If your default target is x86_64 linux, cargo build --release is enough for x86_64 linux with glibc version greater or equal to yours.

If you want portability with older glibc, it’s complicated. The easiest is still to build on an oldstable or oldoldstable Debian.

If you want cross-compiling, I don’t remember the options but it’s definitely possible. (may be complicated due to wasm) You’ll find tutorials out there. (or the thread about compiling on x86_64 for arm)

1 Like

Thanks for your answer, we might want to provide packages for debian, arch, fedora… So that we build with the latest available glibc on these systems. @tuxmain did you use a docker image or a custom binary? Do you want to join the smiths? Currently we only have two. As soon as we fix the docker image we can ask smiths-GDev to start forging blocks.

There are rust tools for building packages for Debian and Arch, i think we’ve been using at least one of them in Dunitrust’s CI.

Yes i’ll restart my node tonight, this afternoon it’s the algebra exam :grimacing: :face_with_head_bandage:

2 Likes

Wish you good focus! I would love to do this kind of maths exams again :hugs:

1 Like

Synchronizing!

I’ll go online when it’s all good.

The precedent years subjects are here, good luck! :stuck_out_tongue: (go to “licence 3 – structures algébriques 2”)

1 Like

@smiths-GDev you now have the duniter/duniter-v2s:sha-f442e6eb docker image with the good bootnodes and the good genesis. I did not tested, but you can :wink:

Here is an example of docker-compose.yml file to start a rpc and a validator node

# This is a docker template for running a gdev5 mirror and smith
# You should write a .env file aside with the environment variables:
#
# --- .env ---
# SERVER_DOMAIN=gdev.example.com
# PEER_ID=12D3KooWL7J8B2pUfgH2xhm8kpB88CiSNsSNHcWJJ6NdNffSg5ty
# VALIDATOR_PEER_ID=12D3KooWNyFo34PSHcg4cNd3d3MRs3dm1w3hQqo3QuFptd3DXW6H
# ------------
#
# The peer id has to be replaced withe the output of the following command
#
# Generate node.key and peer id
# >>> PEER_ID >>>
# docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:sha-f442e6eb key generate-node-key --file /var/lib/duniter/node.key
# >>> VALIDATOR_PEER_ID >>>
# docker run --rm -it --entrypoint duniter -v $PWD:/var/lib/duniter/ duniter/duniter-v2s:sha-f442e6eb key generate-node-key --file /var/lib/duniter/node.key
# <<<<<<<<<<<<<<<>>>>>>>>>>

version: "3.4"

services:
  
  # ===== RPC =====
  duniter-rpc:
    image: duniter/duniter-v2s:sha-f442e6eb
    restart: unless-stopped
    ports:
      # telemetry
      - 9615:9615
      # rpc
      - 9933:9933
      # rpc-ws
      - 9944:9944
      # p2p
      - 30333:30333
    volumes:
      - ./duniter-rpc/:/var/lib/duniter/
    environment:
      - DUNITER_CHAIN_NAME=gdev
    command:
      - "--node-key-file=/var/lib/duniter/node.key"
      - "--public-addr"
      - "/dns/${SERVER_DOMAIN?SERVER_DOMAIN should be set}/tcp/30333/p2p/${PEER_ID?PEER_ID should be set}"
      - "--rpc-cors=all"
      - "--pruning=14400"
      - "--name"
      - "hugo-trentesaux-rpc"

  # ===== VALIDATOR =====
  duniter-validator:
    image: duniter/duniter-v2s:sha-f442e6eb
    restart: unless-stopped
    ports:
      # telemetry
      - 9616:9615
      # rpc
      - 9934:9933
      # rpc-ws
      - 9945:9944
      # p2p
      - 30334:30333
    volumes:
      - ./duniter-validator/:/var/lib/duniter/
    environment:
      - DUNITER_CHAIN_NAME=gdev
    command:
      - "--node-key-file=/var/lib/duniter/node.key"
      - "--rpc-cors=all"
      - "--rpc-methods=Unsafe"
      - "--validator"
      - "--pruning=14400"
      - "--name"
      - "hugo-trentesaux-validator"
  • read and apply the documentation at the head of the file
  • note that I did not tested it, there might be errors
  • change the --name option with your name so that we can more easily debug the network
  • depending on your docker installation, there might be access rights issues
  • I do not provide nginx config, there is one in Duniter documentation

You should have everything needed to start a node. Please do not go online yet, you still have to rotate your session keys as mentioned in the documentation (that could be improved).

4 Likes

Je confirme que ça marche impeccable chez moi en RPC :slight_smile:

You don’t need nodekey for RPC (right?).
--public-addr is also optionnal.

Pour l’instant voici les nœuds sur le réseau :

image

Svp choisissez des noms parlants pour que ce soit plus facile de vous contacter.

Polux c’est tuxmain non ?
Ou 1000i100, en tout cas il est à Bordeaux ^^

Polux c’est bien le nom de mon serveur (en référence à la BD Nestor & Polux et parce que c’est un Raspberry).

Je peux le renommer tuxmain-polux-smith.

2 Likes

@tuxmain ton noeud smith est tombé sans avoir go offline visiblement, 1/3 de perte, réseau en panic…

@all qui veut coder un outil de monitoring pour faciliter le monotoring de tout ça ? Je peux aider mais j’ai pas le temps avec Ğecko et le reste malheuresement …

Je peux vous aider en vous disans comment utiliser polkadot.js pour ce faire, et quels valeurs de storage écouter.

Prévoir un système de notification par email en fonction de certains état du storage ou certs events émis par duniter.

Nécessite donc avant tout un front JS avec polkadot.js.
Pour le back daemon qui alerte en fonction de certains états du storage, l’indexer peut le faire il suffit d’ajouter ce qu’il faut en module TS.

1 Like

Mon serveur est down depuis que je suis parti (à 700km), je ne comprends pas pourquoi. Je pourrai le relancer le 2 janvier au soir.

Gcli peut servir d’outil de monitoring, on peut déjà servir en web statique la sortie de sa sous-commande expire.

Le code de Gcli peut aussi être repris pour en faire un serveur centralisé avec envoi de mail ou message sur le forum.

2 Likes

Le bonne procédure dans notre cas précaire serait que le comité tech vote un go offline pour toi.
Mais je ne le ferais pas car j’ai la flemme, il nous faut impérativement des outils pratiques et à nous pour faire tous ça.

Je ne sais pas si le réseau se stabilisera là après un go offline effectué maintenant.

Je pensais que j’aurais été exclu automatiquement au bout d’un certain nombre de blocs manqués… je viens de goOffline, pour l’instant à part quelques blocs manquant tout va bien. On verra dans les prochaines sessions.

1 Like

Je crois que je vais finir par orienter gecko web vers ça tout de suite en fait …

Faire toute l’UX et l’architecture pour pouvoir

  • certifier des nouveaux smiths
  • monitorer la wot smith basiquement
  • voir les votes techs en cours
  • voter si on est logué avec wallet du comite tech
  • monitorer un peu ça

C’est un gros taf, mais je crois que c’est notre priorité.
Je peux dès maintenant faire ça de manière 100% fonctionnel en flutter web, il suffira de switcher les calls RPC vers G1Companion² quand il sera prêt.

Je préviens que l’UX ne sera pas très belle et juste orienté “faciliter la vie des smiths et tech comitee”
faut pas s’attendre à gecko mobile quoi, on s’en fou ici pour le moment, faut juste que ça marche sans avoir à ce cas*** les couilles sur polkadotjs UI …

Je dirais 10j de taf normal pour se faire.

Vous en pensez quoi ? d’autres voudraient le faire à ma place autrement ?

c’est un projet cool ça ne me dérange pas de le faire, ni de laisser d’autres le faire. @cgeek ? @Paidge ? @1000i100 ?
J’aimerais juste que ce soit fait avant Février, on en a besoin.


@tuxmain tu voudra bien t’occuper de ce backoffice mails monit avec gcli² ? (en janvier quoi je veux dire quoi lol)

Sinon je pense qu’on s’en chargera avec @ManUtopiK en TS, mais on a tous trop de truc à faire pour si peu de monde …

1 Like

Il y a polkawatch.io qui propose d’envoyer un SMS (mais c’est que pour certaines chaînes, et je n’ai pas trouvé la source).

Pour faire au plus simple, je veux bien faire un bête service qui vérifie toutes les X minutes auprès d’un nœud archive ou d’un indexeur, pour toutes les X dernières sessions terminées, si tous les validateurs ont écrit plus de X blocs, et envoie un mail à son propriétaire sinon, avec des adresses mail hardcodées dans la config. On verra après pour un truc plus intelligent (que les forgerons puissent enregistrer leur mail eux-mêmes).

Il faudra faire les offences aussi, pour goOffline automatiquement les absents. (je crois que @HugoTrentesaux voulait le faire)

D’abord j’aimerais finir la mise à jour substrate 0.9.26 → 0.9.32, il y a énormément de trucs à changer et c’est très long de trouver quoi. (et à chaque fois que je crois avoir fini, bam ! une nouvelle fournée d’erreurs)

3 Likes

ah oui j’avais pas pensé à ça … à la Cs+ ou peu importe mais ouai.

Ce serait cool à l’occaz de se faire une visio “upgrade substrate” avec toi et ceux qui veulent (moi ça m’intéresse, juste comme spectateur d’un screencast commenté en visio).

1 Like

On pourra faire une revue commentée des changements j’imagine. Déjà j’ai (empiriquement) fait une documentation très générique sur le processus de mise à jour. En gros une fois les formalités faites, il faut traiter les erreurs une par une en fouillant dans le code de Polkadot et de Substrate.

3 Likes

Non, on n’a pas implémenté la gestion des offences, donc il n’y a pas de goOffline automatique pour l’instant.

Ou sudo, j’aurais pu le faire si j’avais vu à temps.

C’est une bonne idée de faire de Ğecko web un gros terrain d’expérimentation où on fait vite et sale les fonctionnalités dont on a besoin rapidement. Une sorte de couteau suisse.

Je le pense aussi, il faut qu’on augmente le nombre de forgerons impliqués dans le développement de Duniter. Ça va pas qu’on soit les seuls “beta testeurs” des fonctionnalités forgerons qui sont très nouvelles pour nous.

Il faut que ça soit fait, je ne sais toujours pas quelle est la meilleure stratégie entre le faire moi-même maintenant et trouver des sous pour faire bosser plus de monde sur le projet, et dans ce cas je suis plus utile en coordination qu’en développement spécifique.

Ça peut valoir le coup d’en parler sur le forum polkadot, et je pourrai demander à Julien Éluard de jeter un œil sur ces questions de mise à jour de substrate.

2 Likes

En ce moment, j’ai ma vie personnelle et professionnelle qui m’accapare mon temps de cerveau disponible. Mais si y’a besoin d’aide pour améliorer des interfaces web, je veux bien. Par contre, je n’ai jamais travailler avec Flutter :stuck_out_tongue:

3 Likes