# Synchronisation difficile / récupérer les chunks

**URL:** https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766
**Category:** Duniter-v1
**Created:** [16 October 2021 12:27 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766 "2021-10-16T12:27:41Z")
**Posts on this page:** 20
**Page:** 1

<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: [16 October 2021 12:27 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/1 "2021-10-16T12:27:41Z")

</div>

Il semble que la synchronisation de Duniter pose souvent problème :

- [Durée de synchronisation](https://forum.duniter.org/t/duree-de-synchronisation/5285)
- [Synchronisation lente](https://forum.duniter.org/t/synchronisation-lente/7528)

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] :

```bash
#!/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.

* * *

> [@poka](#):
>
> Autre méthode moins élégante qui fonctionne tout aussi bien (plus besoin de la variable $CURRENT):
> 
> ```auto
> END=$(curl -sSJ https://files.datajune.coinduf.eu/chunks/ | grep ".json" | awk -F 'chunk_' '{ print $2 }' | awk -F- '{ print $1 }' | sort -V | tail -n1)
> 
> ```

---

<div class="post-metadata">

### Author: ![arbocenc](https://forum.duniter.org/user_avatar/forum.duniter.org/arbocenc/32/7068_2.png) [@arbocenc](https://forum.duniter.org/u/arbocenc)
#### Post date: [30 November 2021 12:53 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/2 "2021-11-30T12:53:29Z")

</div>

On debian 9 you should change line 1 to:

```auto
#!/bin/bash

```

And install **jq** package:

`apt-get install jq`

---

<div class="post-metadata">

### Author: ![arbocenc](https://forum.duniter.org/user_avatar/forum.duniter.org/arbocenc/32/7068_2.png) [@arbocenc](https://forum.duniter.org/u/arbocenc)
#### Post date: [30 November 2021 12:57 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/3 "2021-11-30T12:57:06Z")

</div>

I get this error:

```auto
copying blocks 190 to 180
curl: (3) [globbing] bad range in column 50
done

```

---

<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: [30 November 2021 17:27 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/4 "2021-11-30T17:27:32Z")

</div>

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 😃

---

<div class="post-metadata">

### Author: ![vit](https://forum.duniter.org/user_avatar/forum.duniter.org/vit/32/2775_2.png) [@vit](https://forum.duniter.org/u/vit)
#### Post date: [1 December 2021 09:00 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/5 "2021-12-01T09:00:08Z")

</div>

> [@HugoTrentesaux](#):
>
> `#!/usr/bin/bash`

Tu devrais utiliser la commande générique `/usr/bin/env` qui fonctionne où que soit placé `bash` :

```
#!/usr/bin/env bash

```

English : If you have problem with `bash` path, use the above `env` command.

Elle peut s’utiliser pour n’importe quel commande comme `python` par exemple :

```
#!/usr/bin/env python

```

En espérant que `env` soit bien dans `/usr/bin` dans toutes les distros… 😉

---

<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: [5 December 2021 04:02 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/6 "2021-12-05T04:02:25Z")

</div>

Tu peux rappeler comment on fait une sync locale ?  
Je pensais faire ainsi auparavant mais ça ne semble plus fonctionner:

`./target/release/duniter sync ../chunks/`

`Status: CANNOT_CONNECT_TO_REMOTE_FOR_SYNC`

---

<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 January 2022 19:21 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/7 "2022-01-10T19:21:01Z")

</div>

J’ai déplacé datajune. Les données sont maintenant séparées du site et sont sur [https://files.datajune.coinduf.eu/chunks/](https://files.datajune.coinduf.eu/chunks/)

@poka tu utilises quelle version de Duniter ? Moi ça marche avec la 1.7. Mais tu utilises sûrement une pré-version de la 1.9. À voir…

---

<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: [10 January 2022 19:27 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/8 "2022-01-10T19:27:45Z")

</div>

Et oui je suis en 1.9-dev, c’est peut être ça je ne sais pas.

---

<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 January 2022 19:32 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/9 "2022-01-10T19:32:16Z")

</div>

Le `--help` ne t’aide pas ?

---

<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: [10 January 2022 19:33 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/10 "2022-01-10T19:33:45Z")

</div>

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 … ^^

---

<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: [18 January 2022 11:03 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/11 "2022-01-18T11:03:13Z")

</div>

Petit update : j’ai maintenant automatisé Datajune qui met à jour les données quotidiennement

![image](https://forum.duniter.org/uploads/default/original/2X/0/0477caad4e05784d286d55eca8b0cc01a8b884b2.png)

(il en va de même pour toutes les données qui en découlent, par exemple les plots du nombre membre [https://files.datajune.coinduf.eu/plots/members.png](https://files.datajune.coinduf.eu/plots/members.png))

---

<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: [23 April 2022 00:49 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/12 "2022-04-23T00:49:39Z")

</div>

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.

```auto
END=$(expr $CURRENT % 250)

```

par

```auto
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):

```auto
END=$(curl -sSJ https://files.datajune.coinduf.eu/chunks/ | grep ".json" | awk -F 'chunk_' '{ print $2 }' | awk -F- '{ print $1 }' | sort -V | tail -n1)

```

* * *

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…

---

<div class="post-metadata">

### Author: ![fdrubigny](https://forum.duniter.org/user_avatar/forum.duniter.org/fdrubigny/32/8678_2.png) [@fdrubigny](https://forum.duniter.org/u/fdrubigny)
#### Post date: [19 December 2022 17:09 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/13 "2022-12-19T17:09:35Z")

</div>

Salut !  
Du coup, une fois que l’on a récupéré les chunks, c’est quoi la commande pour faire une synchronisation locale SVP ? 🙂  
Merci pour vos retours.

---

<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: [19 December 2022 17:17 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/14 "2022-12-19T17:17:47Z")

</div>

Je sais plus, je crois qu’il faut donner le chemin absolu vers les données commençant par un `/`

Sur Dunitrust il y avait une option `--localsync` mais je pense qu’elle n’est pas sur Duniter.

---

<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: [19 December 2022 23:00 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/15 "2022-12-19T23:00:08Z")

</div>

> [@poka](#):
>
> Tu peux rappeler comment on fait une sync locale ?  
> Je pensais faire ainsi auparavant mais ça ne semble plus fonctionner:
> 
> `./target/release/duniter sync ../chunks/`
> 
> `Status: CANNOT_CONNECT_TO_REMOTE_FOR_SYNC`

> [@fdrubigny](#):
>
> Du coup, une fois que l’on a récupéré les chunks, c’est quoi la commande pour faire une synchronisation locale SVP ? 🙂

en fait de mémoire j’avais résolu ce problème simplement en faisant `mv ../chunks/ .` puis `./target/release/duniter sync chunks/`

quelque chose comme ça, une histoire de path, pas besoin d’options particulières pour la sync locale.

mais je pense qu’il vaut mieux concentrer nos énergies sur duniter 1.9 en mode docker: [Dockerisation duniter 1.9 - #39 by aya](https://forum.duniter.org/t/dockerisation-duniter-1-9/10083/39)

Il est possible que des choses fonctionnent mieux qu’en 1.8 car l’oxydation à progressé en 1.9, ce n’est pas juste GVA.

Et puis Docker, c’est la vie.

---

<div class="post-metadata">

### Author: ![gerard94](https://forum.duniter.org/user_avatar/forum.duniter.org/gerard94/32/58_2.png) [@gerard94](https://forum.duniter.org/u/gerard94)
#### Post date: [20 December 2022 00:13 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/16 "2022-12-20T00:13:19Z")

</div>

Oui, c’est bien ça.

---

<div class="post-metadata">

### Author: ![fdrubigny](https://forum.duniter.org/user_avatar/forum.duniter.org/fdrubigny/32/8678_2.png) [@fdrubigny](https://forum.duniter.org/u/fdrubigny)
#### Post date: [20 December 2022 08:44 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/17 "2022-12-20T08:44:28Z")

</div>

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.

---

<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: [20 December 2022 12:07 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/18 "2022-12-20T12:07:28Z")

</div>

Il est aussi possible de copier directement le dossier duniter\_default d’un autre nœud déjà synchro.

---

<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: [20 December 2022 12:25 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/19 "2022-12-20T12:25:54Z")

</div>

ah bah oui encore mieux ça pour dépanner

---

<div class="post-metadata">

### Author: ![fdrubigny](https://forum.duniter.org/user_avatar/forum.duniter.org/fdrubigny/32/8678_2.png) [@fdrubigny](https://forum.duniter.org/u/fdrubigny)
#### Post date: [20 December 2022 12:46 UTC](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766/20 "2022-12-20T12:46:15Z")

</div>

Merci ! C’est une bonne idée également 🙂

[Next page](https://forum.duniter.org/t/synchronisation-difficile-recuperer-les-chunks/8766.md?page=2)
