# Bloc résolution: Zéro bloc potentiel après bloc zéro

**URL:** https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559
**Category:** Self-hosting
**Tags:** guilder-test
**Created:** [11 April 2018 12:21 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559 "2018-04-11T12:21:53Z")
**Posts on this page:** 20
**Page:** 1

<div class="post-metadata">

### Author: ![Folaht](https://forum.duniter.org/user_avatar/forum.duniter.org/folaht/32/38_2.png) [@Folaht](https://forum.duniter.org/u/Folaht)
#### Post date: [11 April 2018 12:21 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/1 "2018-04-11T12:21:53Z")

</div>

[traduit avec DeepL](https://www.deepl.com/translator)

J’ai créé le bloc zéro:

```auto
admin@Gildurklaus:/var/lib/duniter/.config/duniter/duniter_default$ sudo sqlite3 duniter.db
SQLite version 3.8.7.1 2014-10-29 13:59:56
Enter ".help" for usage hints.
sqlite> INSERT INTO block VALUES (0, "", "cf4c4fcad8be6f362ef5e307fd5894df022a00cb8fcb95a6bd7efd5812c24b72", "", "guilder-test", "4FE3bGwDNwsjLzAKF7f87NCEnwgKqTipH4tgK8HuXEwR", "0.000054218:86400:100:0:300000:604800:604800:0.9:35136000:3:20:960:10:0.6666666666666666:1489675722:1489675722:2629800", NULL, NULL, 10, 1, 0, NULL, 1523173253, NULL, 0, 1523173253, 0, 0, 0, '[]', '[]', '[]', '[]', '[]', '[]', '[]', '[]', NULL, NULL, 0, 0, 0, 0);
sqlite> 

```

Et lancé Duniter:

```auto
admin@Gildurklaus:/var/lib/duniter/.config/duniter/duniter_default$ sudo su -c "/bin/bash /usr/bin/duniter direct_start --home /var/lib/duniter/.config/duniter --mdb duniter_default" -s/bin/sh duniter
2018-04-11T04:51:16+02:00 - debug: Plugging file system...
2018-04-11T04:51:17+02:00 - debug: Loading conf...
2018-04-11T04:51:17+02:00 - debug: Configuration saved.
2018-04-11T04:51:17+02:00 - debug: Opening SQLite database "/var/lib/duniter/.config/duniter/duniter_default/duniter.db"...
2018-04-11T04:51:17+02:00 - debug: Upgrade database...
2018-04-11T04:51:17+02:00 - info: Block resolution: 0 potential blocks after current#0...
2018-04-11T04:51:17+02:00 - info: >> Server starting...
2018-04-11T04:51:17+02:00 - info: NodeJS version: v9.4.0
2018-04-11T04:51:17+02:00 - info: Node version: 1.6.22
2018-04-11T04:51:17+02:00 - info: Node pubkey: 4FE3bGwDNwsjLzAKF7f87NCEnwgKqTipH4tgK8HuXEwR
2018-04-11T04:51:18+02:00 - info: Duniter server listening on http://[2001:983:8610:1:8a:4ff:fec2:a55a]:10901
2018-04-11T04:51:18+02:00 - warn: Local node is not a member. Waiting to be a member before computing a block.
2018-04-11T04:51:18+02:00 - info: Sibling endpoints:
2018-04-11T04:51:18+02:00 - info: BMA access: 2001:983:8610:1:8a:4ff:fec2:a55a:10901
2018-04-11T04:51:18+02:00 - debug: Generating server's peering entry based on block#0...
2018-04-11T04:51:18+02:00 - error: httpCode=400, ucode=2023, message=Peer document already known
2018-04-11T04:51:18+02:00 - info: Next peering signal in 31 min
2018-04-11T04:51:19+02:00 - info: >> Server ready!
2018-04-11T04:51:19+02:00 - info: Block resolution: 0 potential blocks after current#0...

```

Ai-je créé le bloc zéro correctement ?  
Comment créer le bloc suivant ?

---

<div class="post-metadata">

### Author: ![Moul](https://forum.duniter.org/user_avatar/forum.duniter.org/moul/32/9145_2.png) [@Moul](https://forum.duniter.org/u/Moul)
#### Post date: [11 April 2018 12:28 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/2 "2018-04-11T12:28:43Z")

</div>

> [@Folaht](#):
>
> Local node is not a member. Waiting to be a member before computing a block.

You need requirements to be a member at block n°0: certifications from other identities and a membership document.  
Also, your node should contains your member’s credentials to generate next block.

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [11 April 2018 15:11 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/3 "2018-04-11T15:11:34Z")

</div>

Si tu arrive à lancer techniquement une nouvelle monnaie avec duniter, je serais très très intéressé que du document ce que tu as fait 😉

---

<div class="post-metadata">

### Author: ![Folaht](https://forum.duniter.org/user_avatar/forum.duniter.org/folaht/32/38_2.png) [@Folaht](https://forum.duniter.org/u/Folaht)
#### Post date: [19 April 2018 06:22 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/4 "2018-04-19T06:22:46Z")

</div>

Avec l’information actuelle, je ne sais pas si cela sera possible.  
Je ne sais même pas comment `BLOCK_UID` est généré.  
Le document dit: `BLOCK_ID-HASH`, mais oui, hash de quoi ?

[mise-à-jour]

SHA1 Hash de référence temporelle, mais de quoi ?  
Je me rapproche déjà. 🙂

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [20 April 2018 07:11 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/5 "2018-04-20T07:11:33Z")

</div>

C’est le hash des données du bloc.

---

<div class="post-metadata">

### Author: ![Folaht](https://forum.duniter.org/user_avatar/forum.duniter.org/folaht/32/38_2.png) [@Folaht](https://forum.duniter.org/u/Folaht)
#### Post date: [20 April 2018 08:55 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/6 "2018-04-20T08:55:08Z")

</div>

> [@nanocryk](#):
>
> C’est le hash des données du bloc.

Comment cela est-il possible si le document de bloc contient le `BLOCK_UID` ?

Je soupçonne que je dois crypter “0”, “Time : 0\n”, “MedianTime : 0\n” avec SHA1.  
Peut-être découvrira-t-il assez vite en essayant les données `VALID_ROOT` et  
`E3B0C44298FC1C149AFBF4C8996FB92427AE41E4649B934CA495991B7852B855`  
…  
Eh? Ça fait 64 caractères.  
Le blochash dans le document d’identité en a 40, SHA1, mais joiners et identities dans `VALID_ROOT` utilisent SHA256.  
Je m’embrouille.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [20 April 2018 11:27 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/7 "2018-04-20T11:27:45Z")

</div>

> [@Folaht](#):
>
> Comment cela est-il possible si le document de bloc contient le BLOCK\_UID ?

Le document de block ne contient pas son propre `BLOCK_UID`, mais contient par contre celui de son prédécesseur.

---

<div class="post-metadata">

### Author: ![Folaht](https://forum.duniter.org/user_avatar/forum.duniter.org/folaht/32/38_2.png) [@Folaht](https://forum.duniter.org/u/Folaht)
#### Post date: [23 April 2018 09:05 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/8 "2018-04-23T09:05:01Z")

</div>

> [@nanocryk](#):
>
> Le document de block … contient par contre celui de son prédécesseur.

Le document de bloc zéro n’a pas de prédécesseur.

---

<div class="post-metadata">

### Author: ![Inso](https://forum.duniter.org/user_avatar/forum.duniter.org/inso/32/1229_2.png) [@Inso](https://forum.duniter.org/u/Inso)
#### Post date: [23 April 2018 09:21 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/9 "2018-04-23T09:21:57Z")

</div>

> [@Folaht](#):
>
> Le document de bloc zéro n’a pas de prédécesseur.

Il faut inscrire le hash d’une chaine vide comme prédédecesseur 🙂

---

<div class="post-metadata">

### Author: ![Galuel](https://forum.duniter.org/user_avatar/forum.duniter.org/galuel/32/577_2.png) [@Galuel](https://forum.duniter.org/u/Galuel)
#### Post date: [23 April 2018 11:13 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/10 "2018-04-23T11:13:11Z")

</div>

> [@Inso](#):
>
> Il faut inscrire le hash d’une chaine vide comme prédédecesseur 🙂

Ce qui signifie bien qu’il existe un prédécesseur au zéro, c’est bien le vide ! Il faut revoir tout le fondement des nombres entiers.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [23 April 2018 11:27 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/11 "2018-04-23T11:27:27Z")

</div>

Bien tenté, mais il semble que non : [https://g1.duniter.org/blockchain/block/0](https://g1.duniter.org/blockchain/block/0)

Par contre les documents (identité, certification, adhésion) ont bien l’empreinte dont tu parles. Elle est par ailleurs indiquée dans le protocole.

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [23 April 2018 23:26 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/12 "2018-04-23T23:26:07Z")

</div>

[https://g1.duniter.org/blockchain/block/0](https://g1.duniter.org/blockchain/block/0)

| sujet | base | donnée |
| --- | --- | --- |
| issuer | b58 | “2ny7YAdmzReQxAayyJZsyVYwYhVyax2thKcGknmQy5nQ” |
| signature | b64 | “49OD/8pj0bU0Lg6HB4p+5TOcRbgtj8Ubxmhen4IbOXM+g33V/I56GfF+QbD9U138Ek04E9o0lSjaDIVI/BrkCw==” |
| hash | b16 | “000003D02B95D3296A4F06DBAC51775C4336A4DC09D0E958DC40033BE7E20F3D” |

Pourquoi tant de haine ? 3 lignes, 3 bases différentes

---

<div class="post-metadata">

### Author: ![elois](https://forum.duniter.org/user_avatar/forum.duniter.org/elois/32/1541_2.png) [@elois](https://forum.duniter.org/u/elois)
#### Post date: [24 April 2018 00:02 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/13 "2018-04-24T00:02:59Z")

</div>

> [@1000i100](#):
>
> Pourquoi tant de haine ? 3 lignes, 3 bases différentes

C’est écris dans le protocole, on s’y habitue vite, c’est toujours la meme base pour chaque type de données 😉

Les hashs sont toujours en base 16, les clés publiques toujours en base58 et les signatures toujours en base 64 ^^

Quand aux choix , on pourrait effectivement passer aussi les hashs en base 64, pour les clés en base58 c’est une base qui a été étudiée pour que ce soit saisisable par un humain, donc qui exclue les caractères qui se ressembles trop (0 et O, I et l, etc)

---

<div class="post-metadata">

### Author: ![1000i100](https://forum.duniter.org/user_avatar/forum.duniter.org/1000i100/32/825_2.png) [@1000i100](https://forum.duniter.org/u/1000i100)
#### Post date: [24 April 2018 03:13 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/14 "2018-04-24T03:13:48Z")

</div>

> [@elois](#):
>
> C’est écris dans le protocole, on s’y habitue vite

Je conçois qu’on s’y habitue… mais ça ne change pas mon sentiment…

Maintenant que j’ai compris l’intérêt de la base58, j’aurais tendance à mettre tout en b58, voir en b55, mais pas b16/hex !

```auto
const b58Alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
const disambiguishAlphabet = '23456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghjkmnpqrstuvwxyz'; // retiré 1 i o -> b55

```

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [24 April 2018 07:43 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/15 "2018-04-24T07:43:56Z")

</div>

> [@1000i100](#):
>
> Maintenant que j’ai compris l’intérêt de la base58, j’aurais tendance à mettre tout en b58, voir en b55, mais pas b16/hex !

Il est utile de mettre en base58/55 uniquement les informations qui sont manipulés directements par les utilisateurs, soit les clés publiques. Les hashs ou les signatures ne sont jamais manipulés. Vu que les documents sont au format texte, utiliser la base58 au lieu de la base64 prend plus de place. Quand aux hashs en base16, les caractères sont directements utilisés pour la preuve de travail.

Enfin, vu que les documents sont signés dans ce format texte, il n’est pas pas possible de changer les formats des documents, les signatures n’étant alors plus valides.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [24 April 2018 10:19 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/16 "2018-04-24T10:19:42Z")

</div>

Je n’aurais pas mieux répondu. 🙂

En tous les cas, il n’y aura plus d’encodage quand les documents passeront au format binaire, sauf pour de l’affichage qui sera laissé à l’appréciation des clients.

---

<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: [24 April 2018 11:01 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/17 "2018-04-24T11:01:55Z")

</div>

Little indian or big indian ?

---

<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: [24 April 2018 11:07 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/18 "2018-04-24T11:07:45Z")

</div>

Bon, je chipote. Mais il y a toujours un encodage. 32, 64, 128 bits, etc… Il y a des standards pour éviter de s’emmêler les pinceaux, mais ils sont arbitraires.

---

<div class="post-metadata">

### Author: ![cgeek](https://forum.duniter.org/user_avatar/forum.duniter.org/cgeek/32/279_2.png) [@cgeek](https://forum.duniter.org/u/cgeek)
#### Post date: [24 April 2018 11:13 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/19 "2018-04-24T11:13:37Z")

</div>

A priori big-endian, pour des raisons de simplicité.

J’aimerais notamment suivre les conseils de @nanocryk a propos du padding qui me semble intéressant et pas trop cher à gérer. Et si vous avez d’autres conseils je suis preneur.

---

<div class="post-metadata">

### Author: ![nanocryk](https://forum.duniter.org/user_avatar/forum.duniter.org/nanocryk/32/4599_2.png) [@nanocryk](https://forum.duniter.org/u/nanocryk)
#### Post date: [24 April 2018 11:31 UTC](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559/20 "2018-04-24T11:31:04Z")

</div>

> [@cgeek](#):
>
> sauf pour de l’affichage qui sera laissé à l’appréciation des clients.

En faisait attention à ce que les différents logiciels soit compatibles entre eux 😉 Si chaque logiciel à sa façon de formater une clé publique sans gérer celle des autres, ça pose des problèmes.

[Next page](https://forum.duniter.org/t/bloc-resolution-zero-bloc-potentiel-apres-bloc-zero/4559.md?page=2)
