Pour contourner une partie du problème, je sers les chunks sur datajune, ce qui permet de les récupérer indépendamment de Duniter pour faire une synchronisation locale. Je mets à jour ces fichiers manuellement de temps en temps, vous pouvez les récupérer avec un script comme celui-ci [edit : fichier commenté ligne par ligne pour expliquer] :
#!/usr/bin/env bash
# url used to guess the current block. You can open it
# in a browser to see the result
DUNITER_URL="https://duniter.coinduf.eu/blockchain/current/"
# url used to download the chunks. You can open it in
# a browser to see the content of this folder
DATAJUNE_URL="https://files.datajune.coinduf.eu/chunks/"
# number of the first chunk to download.
# Change it to match your needs
START=0
# reads the current block and takes its number
CURRENT=$(curl -s $DUNITER_URL | jq -r ".number")
# divides current block number by the size of a chunk
END=$(expr $CURRENT / 250 - 1)
# prints a message telling which chunks are going to be downloaded
echo "copying chunks $START to $END"
# download the range of chunk files between START and END
curl -sSOJ ${DATAJUNE_URL}chunk_[$START-$END]-250.json
# prints a message telling it's finished
echo "done"
Cela peut également servir à des personnes qui souhaitent travailler sur les données de la blockchain sans nœud Duniter.
You are trying to download the chunks from START (190) to END (180). The current block (CURRENT) is deduced by request to DUNITER_URL which gives the END chunk. If you want to download from the first chunk, change START to 0. I thought this code was easy enough to read to be modified to match your needs but I should comment it a bit
Non.
J’ai pu sync à distance finalement donc pour moi c’est bon.
Je ne suis pas sûr que ce soit très utile de débuguer 1.9 de toute manière, je pense être le seul à m’en servir, à jamais … ^^
Ca m’étonne que personne ne s’en soit rendu compte depuis le temps, mais il y a une erreur ligne 15 du script, ce n’est pas un modulo mais bien une division qu’il faut faire.
END=$(expr $CURRENT % 250)
par
END=$(expr $CURRENT / 250 - 1)
Je sais d’où vient l’erreur, en Julia c’est ainsi:
x ÷ y integer divide x / y, truncated to an integer
Mais pas en bash (ni en python).
Je comprenais pas pourquoi il s’arrêtait à la tranche 225.
Un détail qui fait toute la différence ^^
Autre méthode moins élégante qui fonctionne tout aussi bien (plus besoin de la variable $CURRENT):
Sinon j’ai trouvé mon problème cité quelques messages plus haut, il faut tout simplement spécifier le chemin absolu du répertoire chunks, et non relatif…
Ok ok, merci à tous les trois pour vos retours, on va voir comment on va faire, c’est pour installer Duniter sur un petit server qu’on loue mais qui n’est pas très véloce, la sync ne va jamais au bout pour l’instant… je vais voir si @ji_emme se sent d’installer la version Docker.