Le plus petit noeud DUniter au monde! (pour l'instant)


#1

J’ai pu faire tourné duniter sur un OrangePI zero, machine SBC équivalent au Raspberr PI zero W en tout points, sauf qu’il est içi question de 4 x 1.2Ghz alors que le RPI n’a qu’ 1 x 1Ghz, et une forme carré de 4.7cm (5cm avec l’usb et RJ45)

Après quelques galères avec l’OS, car mauvaise surprise OrangePi ne produit pas d’OS, il faut se débrouiller à tout installer à partir d’une des images vierge de Debian ou Ubuntu… Mais j’ai fini par trouver la distribution DietPI qui est compatible avec de nombreuses mini-machines à l’instar de armbian. J’ai préféré DietPi pour sa capacité à automatiser les MAJ système et installer ce que l’on souhaite au 1er boot.

J’ai donc pu arrivé jusqu’à faire la synchronisation de la BC avec duniter sync [...] et lancer le noeud qui semble bien télécharger les derniers blocs créés.
Il semble par contre que le noeud ne calcule pas de nouveau bloc (configuré pourtant avec ma clé membre).
Mais comme c’est mon 1er noeud dans un réseau domestique, et qui plus est utilisant WS2P, je ne sais pas si tout est configuré comme il faut (j’ai plein d’erreur/warning WS2P dans les logs).

Du coup, pourriez vous m’aider à faire quelques checks de base sur ma configuration histoire de pointer le problème pliz?


[Idée] Clé déléguée au calcul de blocs
#2

Tu accès à l’UI ou tu passes par la ligne de commande ?

Selon le cas, vérifie que ta clé publique est bien la bonne dans “Settings > Crypto” (UI) ou bien dans “~/.config/duniter/duniter_default/keyring.yml” (terminal).

:warning: Attention ! Ne copies-colles pas le contenu de ce fichier ici ! (je sais que tu sais, mais sois prudent quand même).

Au cas où, redémarre ton nœud.


#3

Pas d’accés à l’UI, l’OS est headless, et le param --webmhost 192.168.X.X ne semble pas fonctionner, alors que les ports son bien redirigés sur ma Freebox. Par contre je ne suis pas sûr de savoir tous les ports à ouvrir…
(INFO: J’ai suivi le tutoriel de CitizenZ )

J’ai entré ma passphrase et mot de pass à l’aide de la commande duniter wizard key avant de faire la synchro, donc normalement le noeud n’a jamais eu d’autre config.

Oui alors là de suite, je suis en train de refaire tout le process d’install de l’OS et duniter car j’ai changé de carte SD. Donc dès que ça tourne à nouveau je vous fourni des logs !! :wink:


#4

Est-ce que je peux lancer le noeud sans faire la synchro BC ? Histoire de configurer correctement la connectivité P2P déjà? Parce que bon, c’est pas une machine véloce malgrès les 4 coeurs et la synchro l’autre jour à mis environ 4h !!


#5

Autres questions subsidiaire:
Quelle est la version la plus haute de node qui fait fonctionner duniter? Car DietPi installe la latest et je me retrouve avec Node.js v9.1.0 ! Par précaution, j’ai installé nvm et downgradé en node v6 pour cette derniére install aujourd’hui. Est-ce qu’un Node.js trop récent poserait problème?

Cette mini-machine n’est pas 64bit, est-ce grave pour les algorithmes de crypto?

@stephane Je n’ai pas encore de radiateur à mettre sur le proc. Tu dis dans un autre sujet que tu adjoint toujours un dissipateur thermique sur les PIs. Est-ce que je risque vraiment de griller quelque chose à faire tourner duniter avec parcimonie le temps d’un acheter un? Viens-tu aux RML10? Dans ce cas si tu as un dissipateur en RAB je te l’y achéterai volontié, en Ḡ1 …


#6

Ok, j’arrive à avoir l’UI sur un autre poste maintenant. Ce paramétre webmhost n’est pas documenté(?) et il n’est pas clair du tout! J’ai cru au départ qu’il fallait entrer l’IP du poste que se connectera à l’UI (autoriser qu’une seule IP distante à s’y connecter) alors qu’en fait ce n’est pas du tout ça! Il faut entrer l’IP du noeud duniter, et ensuite quoi? c’est accessible par n’importe quel poste? Grosse faille de sécu en plus d’être inutile de configurer quelque chose de naturel: le noeud devrait déjà répondre sur le port de l’UI sans config particuliére (sauf que ce comportement est bloqué). Je ne comprends pas bien la portée de ce param?? Entrer une IP connu pour le noeud, alors que n’importe quelle autre IP ne fonctionnera pas. Pourquoi pas avoir fait juste un flag --lan-access=Y simplement?

Sans réponse, je lance la synchro… On se reparle dans 4h :rowing_man: :sweat_smile:


#7

Je viens de lire le tuto et de détecter un comportement dangereux : il ne faut pas ouvrir le port 9220 sur la box, cela donnerait un accès public à l’interface d’administration, et il y a moyen de se faire piquer sa clé privée.

Oui mais une faute de frappe et la clé devient incorrecte. Vérifie le contenu du fichier keyring.yml, c’est le plus sûr.

Non malheureusement !

NodeJS 8.

Par défaut la WebUI ne s’expose que sur localhost, pour des raisons de sécurité évidentes. D’où la possibilité de la rendre disponible sur le réseau local, par exemple pour une utilisation via YunoHost ou autre.

Parce que c’est dangereux justement, une machine peut avoir plusieurs interfaces réseau et ce flag autoriserait tout accès réseau local sans qu’on s’en rende compte (j’oublie souvent que j’ai 2 interfaces réseau local par exemple, dont une wifi : or avec les récentes découvertes de faille WPA, on voit ce que pourrait donner une telle option).

Ceci dit tu peux développer l’option si tu veux, personnellement je n’encouragerait pas son utilisation.


#8

Corrigé!

Oui oui vérifié !!

Arf dommage, y’en a pour un moment 15h53 > 16h13 = 9%

Pour moi c’est le comportement actuel! Je ne parlais pas de créer cette faille de sécu, mais de renommer le paramétre pour qu’il soit plus clair sur ce qu’il fait réellement… Là pour moi, je ne suis qu’en wifi, et j’accéde à l’UI par n’importe quelle IP !
Il me semblerai plus sûr d’avoir un paramétre qui n’autorise qu’une seule IP du réseau local à accéder à l’UI…


#9

Ah oui, bon, pourquoi pas. Ceci dit on a déjà de la documentation indiquant l’utilité de cette option. Et étant donné que l’on a déjà des utilisateurs de cette commande, bon, je pense qu’on ne va pas la changer.

Ceci dit, on pourrait imaginer de choisir un mot de passe initial pour accéder à la WebUI, afin qu’elle se protège elle-même. Mais j’ai voulu aller au plus simple à l’époque car je n’avais pas le temps (c’est toujours le cas) de faire mieux. Mais avis aux amateurs pour réaliser ce développement :slight_smile:


#10

Tiens-nous au courant quand ce petit processeur aura trouvé un bloc ! :wink:


#11

La course à la décroissance de puissance de calcul ! J’aime :smiley:


#12

Alors la synchro s’est fini hier soir 00H12, donc 15h53 > 00h12 = 8H19 !!!
Beaucoup plus long que la 1ere fois (4H) , celà peut venir de la carte SD qui est plus lente ou bien Node.js 6 qui est plus lent que Node.js 9…
Qu’est-ce qu’il se passe en fait pendant cette synchro? Car le Download à mis environ 20 min, et le “apply” 8H … Surtout qu’une fois fini, dans les logs on vois que ce n’est toujours pas fini, le noeud passe en revu toutes les idedntités/certifications comme si il les rajoutait en DB… Du coup je me demande bien ce que peut faire le noeud pendant ce “apply” ?
Le tout à 76°C le proc… Petite bète ! Du coup je l’ai laissé se reposer cette nuit…

Donc voilà, duniter v1.6.14 installé, synchronisé… ou presque, j’ai environ 100 blocs de retard !? Est-ce que le noeud va rattraper son retard tout seul?
J’apparais bien sur Cesium, mais pas avec le même numéro de bloc que dans l’UI.

Questions:

  • Le réglage CPU dans l’UI > settings > CPU n’est pas encore implémenté c’est ça? Car j’ai mes 4 coeur à 80% - 100% tout le temps peu importe le réglage…

  • Est-ce normal d’avoir what 1000 processus duniter? Y compris “duniter logs” qui n’est ouvert qu’une seule fois :


#13

Ok, le noeud a bien rattrapé le retard de block, il est maintenant au même block que les autres.
Il n’apparaît pas toujours dans Cesium, et quand il apparait c’est avec un mauvais numéro de bloc (70834) par rapport à l’UI qui elle indique le dernier bloc (70978)
Il ne calcule toujours pas bloc. Comment on fait pour connaitre sa difficulé propre? Le noeud étant très peu puissant, je devrait avec une difficulté faible c’est bien ça? (tout l’intérêt du test sur cette machine)


#14

J’ai pas mal d’erreur/warning concernant WS2P :

2017-11-20T14:09:04+00:00 - info: Block resolution: 0 potential blocks after current#70978...
2017-11-20T14:09:13+00:00 - info: WS2P: Could not connect to peer 3AF7bhGQ using `WS2P g1.duniter.org 20903: WS2P connection timeout`
2017-11-20T14:09:13+00:00 - error: Unhandled rejection: WS2P connection timeout
2017-11-20T14:09:13+00:00 - error: WS2P connection timeout
2017-11-20T14:09:17+00:00 - info: WS2P: Could not connect to peer HmH5beJq using `WS2P g1.le-sou.org 10091: WS2P connection timeout`
2017-11-20T14:09:17+00:00 - error: Unhandled rejection: WS2P connection timeout
2017-11-20T14:09:17+00:00 - error: WS2P connection timeout
2017-11-20T14:09:17+00:00 - info: WS2P: Could not connect to peer G2RE9nUM using `WS2P g1.imirhil.fr 53011: WS2P connection timeout`
2017-11-20T14:09:17+00:00 - error: Unhandled rejection: WS2P connection timeout
2017-11-20T14:09:17+00:00 - error: WS2P connection timeout
2017-11-20T14:09:18+00:00 - info: WS2P: Could not connect to peer Be1eVp7e using `WS2P 88.161.154.41 20900: WS2P connection timeout`
2017-11-20T14:09:18+00:00 - error: Unhandled rejection: WS2P connection timeout
2017-11-20T14:09:18+00:00 - error: WS2P connection timeout
...
2017-11-20T14:09:46+00:00 - info: WS2P pnSrZARn2gL5T5BLFGvLWFdWQ4RSLpQf8tJvBrK1GGE: new incoming connection from 51.15.70.117:37564!
2017-11-20T14:09:57+00:00 - error: WS2P >>> >>> WS ERROR: REJECTED_PUBKEY_OR_INCORRECT_ASK_SIGNATURE_FROM_REMOTE
...
2017-11-20T14:03:00+00:00 - warn: WS2P OUT => Document detected 2 times: {"version":10,"currency":"g1","status":"UP","statusTS":1511172839,"hash":"734A08F25D4DF858253DC77190C6A0DE6546C2A28C326C2D52787E4A5D999174","first_down":null,"last_try":null,"pubkey":"pnSrZARn2gL5T5BLFGvLWFdWQ4RSLpQf8tJvBrK1GGE","block":"70947-000003050C37858B22C348B659C073F96216399CDFB42FA0AB0A12B421875FBF","signature":"I0oRH281MF/+ELWyo3JDoUg27X/+yHuD6F0yXBLek+/iIH6EE3ihmVQR8EYc+uhHMSCy2jivF1s2aGEMSyKECA==","endpoints":["WS2P 56835b7d 78.237.23.205 20900","BASIC_MERKLED_API 78.237.23.205 10901"],"raw":"Version: 10\nType: Peer\nCurrency: g1\nPublicKey: pnSrZARn2gL5T5BLFGvLWFdWQ4RSLpQf8tJvBrK1GGE\nBlock: 70947-000003050C37858B22C348B659C073F96216399CDFB42FA0AB0A12B421875FBF\nEndpoints:\nWS2P 56835b7d 78.237.23.205 20900\nBASIC_MERKLED_API 78.237.23.205 10901\n"}
2017-11-20T14:03:00+00:00 - warn: WS2P OUT => Document detected 2 times: {"version":10,"currency":"g1","status":"UP","statusTS":1511172839,"hash":"734A08F25D4DF858253DC77190C6A0DE6546C2A28C326C2D52787E4A5D999174","first_down":null,"last_try":null,"pubkey":"pnSrZARn2gL5T5BLFGvLWFdWQ4RSLpQf8tJvBrK1GGE","block":"70947-000003050C37858B22C348B659C073F96216399CDFB42FA0AB0A12B421875FBF","signature":"I0oRH281MF/+ELWyo3JDoUg27X/+yHuD6F0yXBLek+/iIH6EE3ihmVQR8EYc+uhHMSCy2jivF1s2aGEMSyKECA==","endpoints":["WS2P 56835b7d 78.237.23.205 20900","BASIC_MERKLED_API 78.237.23.205 10901"],"raw":"Version: 10\nType: Peer\nCurrency: g1\nPublicKey: pnSrZARn2gL5T5BLFGvLWFdWQ4RSLpQf8tJvBrK1GGE\nBlock: 70947-000003050C37858B22C348B659C073F96216399CDFB42FA0AB0A12B421875FBF\nEndpoints:\nWS2P 56835b7d 78.237.23.205 20900\nBASIC_MERKLED_API 78.237.23.205 10901\n"}

Est-ce que ces logs signifie que le noeud à pu calculer un block, mais pas le diffuser sur le réseau??

2017-11-20T14:13:27+00:00 - info: Matched 3 zeros 000A924786FA6F7541AA576EA30197EE3D0547653F18926F2A5DF72BA27DC421 with Nonce = 10300000000571 for block#70980 by pnSrZA
2017-11-20T14:13:36+00:00 - info: ✔ PEER 5dzkzedB
2017-11-20T14:13:39+00:00 - info: WS2P: Could not connect to peer D3krfq6J using `WS2P 77.152.31.154 20900: WS2P connection timeout`
2017-11-20T14:13:39+00:00 - error: Unhandled rejection: WS2P connection timeout
2017-11-20T14:13:39+00:00 - error: WS2P connection timeout
2017-11-20T14:13:51+00:00 - info: WS2P: Could not connect to peer 5dzkzedB using `WS2P 88.164.245.189 20900: WS2P connection timeout`
2017-11-20T14:13:51+00:00 - error: Unhandled rejection: WS2P connection timeout
2017-11-20T14:13:51+00:00 - error: WS2P connection timeout

#15

Pour les 3 zéros trouvés, ce n’est pas suffisant pour calculer un bloc à l’heure actuelle (il en faut au moins 5). Le message est juste là pour dire qu’il y a de l’activité et qu’il cherche effectivement à calculer des blocs.
Sinon tu as installé la toute dernière version 1.6.14 ?


Question sur la "scalability" de duniter
#16

D’ac! C’est déjà pas mal pour cette mini-machine à 7€ …


:face_with_monocle:


#17

Peux-tu donner l’adresse ou la trouver à 7€?


#18

Aliexpress ! OrangePi ne vend que sur cette plateforme…
https://www.aliexpress.com/store/1553371?spm=2114.10010108.0.0.1e8a318e90B0XK


#19

Merci.
Est-ce une copie utilisant des composants qui ne passent pas le contrôle qualité?


#20

Qu’est ce qui est vrai? Qu’est ce qui est une copie? Du raspberry PI aux iphone 8 tout est fabriqué en chine alors bon…
Tu me parle d’une copie de quoi? Là ce sont des cartes OrangePI , pas RaspberryPI donc je ne vois pas de quoi tu parle! C’est un design original de la société dérrière OrangePI (Shenzhen Xunlong Software CO.,Limited) qui produisent des mini-machine de type RaspberryPI qui sont de l’Open-hardware! Il n’y pas de notion de copie ou d’original… N’importe qui peut produire des RaspberryPI ou en modifier la conception pour créer une autre carte…

La question à poser est plutôt: mais comment arrivent-ils à de tels prix??
J’ai pu lire que OrangePI vend ces cartes prix coûtant et ne fait pas de bénéfice, car ils sont sponsorisé par le gouvernent chinois …