Author

Topic: demande d'aide sur code cryptonote - peer - seed (Read 176 times)

jr. member
Activity: 67
Merit: 3
February 11, 2018, 06:17:11 PM
#3
Bonjour,

Merci pour la longue réponse. J'ai posté sur github et eu quelques réponses.
Le code de cryptonote est un cauchemar à compiler, j'ai finit par arriver mais avec beaucoup de recherches. Des bugs, pas de support ou très peu et un ensemble daté qui n'a pas évolué.
Figé sur ubuntu trusty sur lequel il a fallu que j'installe boost 1.55 et cmake qui refusait de trouver les libs threads (la aussi galère pour patcher cmake et virer le bug).
J'ai donc pu synchroniser deux nodes sur deux instances virtualbox +  un daemon et le wallet sur une 3eme.
Le miner ne veut pas fonctionner, il faut le faire depuis le wallet ou le multithread fonctionne mais pas sur le miner.
Bref je laisse tomber.
J'aimerais pouvoir trouver un projet à forker mais basé sur un langage autre que c++ ou java.
Je pense à Cardano par exemple, parce que tant qu'à me relancer en programmation j'aimerais essayer un nouveau langage, récent , sans pointeurs et davantage intégré à la techno blockchain.

++
F2b
hero member
Activity: 2135
Merit: 926
Bon je vais tenter de t'aider un peu. Je suis loin de connaître tout ça en profondeur mais j'avais également tenté un fork de coin cryptonote (que j'ai viré juste après l'avoir fait fonctionner, c'était juste pour tester).

Première question : quand tu dis que tes "serveurs" sont sur une VM, c'est-à-dire que ton Ubuntu et tes deux serveurs tournent, d'un point de vue matériel, tous les trois sur le même PC ? C'est peut-être possible de faire fonctionner ça comme ça, j'en sais rien, mais franchement, je pense que ce serait plus simple avec plusieurs PCs (tu peux tenter de virer un des deux serveurs, normalement je crois que ça fonctionne quand même). Ca permettra d'avoir des IP différentes, même si c'est qu'en local, c'est déjà ça (pour bien faire, tu leur alloue chacun (PC et "serveur") une IP locale fixe).

Les seed nodes qui sont hard-codés dans cryptonoteconfig.h, c'est cool, mais du coup ça risque de pas te servir en local, je m'explique :
C'est fait pour que quelqu'un qui installe le client puisse, au démarrage, synchroniser toute la blockchain automatiquement sans avoir à paramétrer quoi que ce soit, car la connection au premier pair se fait toute seule (et ensuite la liste des pairs se synchronise aussi, etc.). Du coup, l'adresse doit être ton IP externe (si elle est fixe, sinon une adresse dyndns devrait faire l'affaire).
Si toi tu testes tout en local, ce seed node hardcodé ne va pas se connecter comme il faut puisque le client va envoyer une requête à ton IP externe au lieu de l'IP interne (locale) du périphérique qui sert de seed node.
En d'autres termes, les seed nodes hardcodés, c'est bien quand c'est via internet, mais en réseau local, va falloir utiliser une config manuelle (de mémoire, paramètre --seed-node ou un truc du genre, ou peut-être --p2p-bind-ip je sais plus).

Si j'ai bien compris ta question tu voulais aussi savoir quoi lancer sur les serveurs. Tu vas voir, c'est pas compliqué. T'es prêt ?
... et ben il suffit de lancer le daemon. Et de synchroniser la blockchain. Et c'est tout.
En fait, un seed node, c'est juste un full node (un noeud possédant toute la blockchain) qui est en principe toujours connecté.

Bon, je vais juste rajouter une chose : ça paraît simple pour les seed nodes, mais il faut qu'ils soient bien synchronisés ensemble. Oui, c'est logique, mais faut y faire gaffe, je me souviens avoir eu pas mal de galères avec ça quand j'ai testé. Je reste à disposition si ça foire de ce côté là, bien que mes souvenirs soient... assez vagues. (PS : je parle de seed nodes au pluriel, mais ça peut très bien être ton PC Ubuntu et un autre PC "serveur", normalement c'est suffisant)

Bon courage !

EDIT : Evidemment il faut miner avec l'un des noeuds pour que de nouveaux blocks s'ajoutent, et en plus c'est un bon moyen de voir si l'autre noeud se synchronise ou pas.
jr. member
Activity: 67
Merit: 3
J'ai cloné le git de cryptonote sur mon ubuntu windows 10 (bash , upgradé en 16.04)
Après quelques galères de compilation j'ai les binaires fonctionnels
coinxxxd , le daemon
simplewalletd
 connectivity tool
j'ai deux serveurs supplémentaires ubuntu montés sur virtualbox. Mon problème maintenant c'est de comprendre comment synchroniser le wallet avec des noeuds réseaux et miner et configurer l'ensemble.
J'ai donc en gros 3 serveurs. Je ne sais pas trop ce qu'il faut lancer en parallèle ni comment
A priori il faut un rpc pour le wallet. Si je lance le daemond sur la meême session que le wallet celui ci trouve le rpc, ok mais si je fais un start_mining il y a une erreur.
D'autre part le daemon cherche des nodes. Ces nodes fonctionnent aussi à partir du daemon mais avec une ligne de commande et des paramètres mais lesquels, adress ip/ port etc..
Dans le code sous src et le fichier cryptonoteconfig.h il y a la déclaration préalable de deux seeds:
108 const std::initializer_list SEED_NODES = {
109   //"your_seed_ip1.com:8080",
110   //"your_seed_ip2.com:8080",
111 };
J'y avais mis deux adresses pensant les associer à l'ip des mes serveurs mais quoi lancer dessus qui correspondent aux seed nodes?

Si quelqu'un peut m'éclairer avec une config:
serveur 1 ubuntu : wallet et daemon rpc?
serveur 2 : seed node => ligne de commande
serveur 3 : idem

merci par avance
Jump to: