Tu pourrais … en supposant que toute fiche de pair publiée arrive bien jusqu’à toi. Ce qui expérimentalement est vrai, aujourd’hui. Mais il n’y a pas de garantie.
Et il y a aussi le cas de nœuds avec BMA (donc fiche de pair non vide), WS2P privé mais pas WS2P public.
Pour le moment, j’ai déjà ajouté les endpoints WS2P publiques, comme des lignes indépendantes de la vue réseau. J’exploite /network/ws2p/heads pour déterminer le numero bloc.
Reste inconnue la version de Duniter.
EDIT: Release de la version v0.17.4 de Cesium
Le meilleur endroit me semble être le message WS2P HEAD. En même temps que de propager son HEAD, qui est une méta-information, le nœud propagerait également son identifiant WS2P sur 8 caractères ainsi que le nom du logiciel et sa version.
Ce qui me permettrait aussi d’avoir une meilleur vue ici :
J’aurais alors 2 champs supplémentaires : WS2Pid et Software (nom + version).
Le seul problème c’est que le réseau Ğ1 a déjà commencé a se déployer avec la version 1.6.6 qui va refuser ces nouveaux messages. Ceci dit ce n’est pas très grave, il s’agit seulement d’un message informatif.
@cgeek d’ailleurs dans WS2P, est-ce que tu gère la version de duniter, dans la négociation d’ouverture de la WebSocket ?
EDIT: plutot la version de WS2P
Non, ceci dit on peut gérer une négociation différente en démarrant avec un message différent de CONNECT pour indiquer le protocole, car c’est le message initial.
2017-09-30T08:29:14+02:00 - info: Block resolution: 0 potential blocks after current#56730…
2017-09-30T08:38:03+02:00 - info: SIDE Block #56733-000007E2 added to the blockchain in 99 ms
2017-09-30T08:38:03+02:00 - info: Block resolution: 0 potential blocks after current#56730…
2017-09-30T08:38:03+02:00 - info: Fork resolution: 1 potential block(s) found…
2017-09-30T08:38:04+02:00 - info: Fork resolution: 1 potential suite(s) found…
2017-09-30T08:38:04+02:00 - info: Fork resolution: HEAD = block#56730
2017-09-30T08:38:04+02:00 - info: Fork resolution: suite 1/1 (-> #56733-000007) revert to fork point block#56729
2017-09-30T08:38:06+02:00 - info: Block #56730 added to the blockchain in 465 ms
2017-09-30T08:38:06+02:00 - info: Fork resolution: suite 1/1 added block#56730-000000B1C37C6C75CC681D8784BE6C29D87BFF744DDBBBE0231EE850F700793B
2017-09-30T08:38:06+02:00 - info: Block #56731 added to the blockchain in 236 ms
2017-09-30T08:38:06+02:00 - info: Fork resolution: suite 1/1 added block#56731-0000013EB5C2380EE403BB8D66E91987BFAD77183F7591DEF6F2F4F4FC18E448
2017-09-30T08:38:07+02:00 - info: Block #56732 added to the blockchain in 230 ms
2017-09-30T08:38:07+02:00 - info: Fork resolution: suite 1/1 added block#56732-00000638578AB1F24F698B49CD4B2793DD21777F591608A173C36CE18B4904E6
2017-09-30T08:38:07+02:00 - info: Block #56733 added to the blockchain in 278 ms
2017-09-30T08:38:07+02:00 - info: Fork resolution: suite 1/1 added block#56733-000007E239A33304A6BCBC19F0E566A99FF98F92AD05EBE8673C0D210B1AB153
2017-09-30T08:38:07+02:00 - info: Fork resolution: suite 1/1 reached HEAD + 3. Now rolling back.
2017-09-30T08:38:09+02:00 - info: Block #56730 added to the blockchain in 112 ms
2017-09-30T08:38:09+02:00 - info: Block #56730 added to the blockchain in 119 ms
2017-09-30T08:38:09+02:00 - info: Block #56731 added to the blockchain in 146 ms
2017-09-30T08:38:10+02:00 - info: Block #56732 added to the blockchain in 156 ms
2017-09-30T08:38:10+02:00 - info: Block #56733 added to the blockchain in 249 ms
2017-09-30T08:38:10+02:00 - error: Unhandled rejection: TypeError: res.clone is not a function
2017-09-30T08:38:10+02:00 - error: TypeError: res.clone is not a function
at Server. (/opt/duniter/server.js:293:66)
at next (native)
at /opt/duniter/server.js:7:71
at __awaiter (/opt/duniter/server.js:3:12)
at Server.emitDocument (/opt/duniter/server.js:292:16)
at BlockchainService.pipe.es.mapSync (/opt/duniter/server.js:169:26)
at Stream.write (/opt/duniter/node_modules/event-stream/index.js:204:20)
at Stream.stream.write (/opt/duniter/node_modules/through/index.js:26:11)
at BlockchainService.ondata (_stream_readable.js:555:20)
at emitOne (events.js:96:13)
at BlockchainService.emit (events.js:188:7)
at readableAddChunk (_stream_readable.js:176:18)
at BlockchainService.Readable.push (_stream_readable.js:134:10)
at BlockchainService. (/opt/duniter/app/service/BlockchainService.js:218:22)
at next (native)
at fulfilled (/opt/duniter/app/service/BlockchainService.js:4:58)
at process._tickCallback (internal/process/next_tick.js:109:7)
(Et est-ce que c’est le bon endroit pour indiquer des erreurs ? Ou tu préfères un ticket ?)
Ceux qui possèdent plusieurs nœuds calculateurs de blocs peuvent désormais s’assurer qu’ils calculeront chacun leur propre preuve à l’aide d’un préfixe de preuve. Utilisation : duniter config --prefix <valeur>. Le champ valeur doit être un entier compris entre 1 et 899.
Vous pouvez donc avoir jusqu’à 899 nœuds efficaces pour la preuve de travail.
Fonction développée par @elois .
Correctifs
Sécurité :
Il était possible de spammer indéfiniment un nœud via le document fiche de pair
WS2P : en cas d’envoi répété d’un même document refusé de la part d’une connexion, bannir celle-ci pendant 2 minutes
Je viens d’essayer d’installer la version 1.6.8 sur raspberry (raspbian, c’est une jessie), mais j’obtiens l’erreur suivante, quoi que je fasse, lorsque je lance duniter:
return process.dlopen(module, path._makeLong(filename));
^
Error: /usr/lib/arm-linux-gnueabihf/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /opt/duniter/node_modules/sqlite3/lib/binding/node-v48-linux-arm/node_sqlite3.node)
at Error (native)
at Object.Module._extensions..node (module.js:597:18)
Visiblement l’environnement dans lequel il a été buildé est différent car ça fonctionnait très bien avant. Des idées?
J’ai eu le même probleme avec l’installation du package car celui-ci n’est pas compatible avec Jessie. Les solutions qui fonctionnent sont l’installation à partir des sources ou de passer le Rapsberry Pi en Stretch.
Oui, ma carte SD ayant rendu l’âme j’ai dû réinstaller un Raspbian que se trouve être en dernière version, sur lequel je fais les build : Livrables ARM en attente : Raspberry PI 3 HS
Je vais downgrader pour la v1.6.9. En attendant, soit tu réinstalles ton Raspi en toute dernière Raspbian, soit tu attends la nouvelle version. Je te conseille cette dernière option, tu feras un parfait cobaye.