Suite à Oracle de distance sur la ĞDev - #9 by cgeek
Je vais configurer mon noeud forgeron pour le calcul de la distance. J’ai choisi de tout mettre dans un seul compose
plutôt que d’avoir deux services indépendants, mais ce n’est pas forcément une bonne idée. J’aimerais discuter avec @Pini pour voir s’il ne vaudrait pas mieux garder un compose
simplissime pour le validateur et de connecter l’oracle de distance simplement en utilisant le bon volume et le bon réseau. Cela permettrait d’éviter l’interruption de service sur le validateur uniquement pour mettre à jour l’oracle de distance (par exemple pour changer le niveau de logs).
Quoi qu’il en soit voici les étapes que j’ai suivies :
1. go offline pour l’interruption (s’y prendre 2h à l’avance)
gcli smith go-offline
transaction submitted to the network, waiting 6 seconds...
smith went offline MemberGoOffline(344)
- visible au bloc 577928
Peut être retrouvé avec
query MyQuery {
calls(limit: 10, orderBy: block_height_DESC, where: {pallet_containsInsensitive: "authority"}) {
id
pallet
name
block {
height
}
}
}
2. modification du docker-compose
Avant
services:
duniter-smith:
image: duniter/duniter-v2s-gdev:latest
restart: unless-stopped
ports:
- 127.0.0.1:9615:9615
- 127.0.0.1:9933:9933
- 127.0.0.1:9944:9944
- 30333:30333
volumes:
- data-smith:/var/lib/duniter/
environment:
- DUNITER_CHAIN_NAME=gdev
- DUNITER_NODE_NAME=HugoTrentesaux-smith
- DUNITER_VALIDATOR=true
- DUNITER_PRUNING_PROFILE=light
- DUNITER_PUBLIC_ADDR=/dns/gdev.trentesaux.fr/tcp/30333
- DUNITER_LISTEN_ADDR=/ip4/0.0.0.0/tcp/30333
volumes:
data-smith:
Après
services:
duniter-smith:
image: duniter/duniter-v2s-gdev:latest
restart: unless-stopped
ports:
- 127.0.0.1:9615:9615
- 127.0.0.1:9933:9933
- 127.0.0.1:9944:9944
- 30333:30333
volumes:
- data-smith:/var/lib/duniter/
environment:
- DUNITER_CHAIN_NAME=gdev
- DUNITER_NODE_NAME=HugoTrentesaux-smith
- DUNITER_VALIDATOR=true
- DUNITER_PRUNING_PROFILE=light
- DUNITER_PUBLIC_ADDR=/dns/gdev.trentesaux.fr/tcp/30333
- DUNITER_LISTEN_ADDR=/ip4/0.0.0.0/tcp/30333
distance-oracle:
image: duniter/duniter-v2s-gdev:latest
entrypoint: docker-distance-entrypoint
environment:
ORACLE_RPC_URL: "ws://duniter-smith:9944"
ORACLE_RESULT_DIR: "/var/lib/duniter/chains/gdev/distance/"
ORACLE_EXECUTION_INTERVAL: "1800"
ORACLE_MAX_DEPTH: "5"
ORACLE_LOG_LEVEL: "debug"
volumes:
- data-smith:/var/lib/duniter
volumes:
data-smith:
3. redémarrage du service (échec)
docker compose down
docker compose pull
docker compose up -d
Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: exec: "docker-distance-entrypoint": executable file not found in $PATH: unknown
J’ai aussi essayé de supprimer le volume au cas où qqc aurait changé dedans :
docker compose down -v
docker compose up -d
# même erreur
(attention, si vous faites ça vous perdez vos session keys à moins de réinjecter les mêmes et vous changez de peerid, donc c’est pas très pratique)