Consommation CPU

Bonjour,

Petite question de noob.

Je voudrais bien savoir à quoi sert l’énergie dépensée par le CPU du noeud. Si j’ai bien compris, le système n’est pas une simple compétition de vitesse. Et il n’y a pas un fort intérêt pécunier à valider des transactions. Donc les noeuds pourraient se mettre d’accord pour ne pas gaspiller de l’énergie en calcul CPU inutile?

Par exemple, mon noeud pourrait se mettre à calculer uniquement quand il pense qu’il peut gagner (difficulté basse)?

Mon noeud est hébergé à coté d’autres services sur la même machine. Je ne peux pas utiliser une grosse partie du CPU sans impacter la réactivité des autres services (qui sont plutot en mode burst quand les requetes arrivent)

Est ce que ca ferait sens de mettre calcul de duniter en priorité basse plutot que baisser son taux d’utilisation du CPU ? (paquet debian)

L’article sur la preuve de travail de Duniter devrait répondre à certaines de tes questions si tu ne l’as pas déjà lu.

Il me semble qu’il y a un sens à faire les 2. :slight_smile:

Donc de ce que je comprends c’est qu’on pousse le CPU de mon noeud à dépenser de l’energie pour rien afin de l’écarter des noeuds qui peuvent créer le prochain bloc. C’est une technique qui fait sens mais je me demande si du coup mon noeud s’adapterait en mode “fair play” ? Je vois qu’on m’a donné un handicap de fou. Donc c’est qu’on veut que je laisse la place à d’autres noeuds moins rapides. A ce moment j’arrete de calculer pour rien et j’attends que la difficulté redescende pour reprendre. Peut être que c’est déjà implémenté, je demande.

Oui, dès que ton nœud a trouvé un bloc, il s’arrête de calculer tant que la difficulté est trop grande pour lui.

Pour l’instant, il me semble que ce n’est pas la PoW qui consomme le plus de CPU… (chez moi Duniter montait souvent à 100% quand la PoW était à 15%)

J’ai essayé de mettre Nice=0 dans le service systemd de duniter mais ca ne fonctionne pas. Je ne vois pas de changement dans la priorité du processus dans htop. Une idée?

Nice ne change que la priorité, si du temps CPU est disponible il le prendra, même avec la prio la plus faible.

Essaye avec cpulimit :

cpulimit -l <limite en %> -p <pid duniter>

Et dans l’unit systemd, t’as essayé?

Pour mettre cpulimit avec systemd tout ce que je vois c’est créer une unit systemd pour cpulimit qui démarre après celle de duniter…
Du coup pour récupérer le pid du duniter c’est $(pidof duniter) ou $(pidof node).