Essai : PoW sur une machine 16 cœurs

@Moul a fait un test de preuve-de-travail utilisant une machine puissante louée sur Internet, hier, dotée de 8 cœurs et proposait de le faire sur une machine encore plus puissante.

Avec les offres de serveurs à la demande, et ma curiosité étant piquée, je me lance dans le test.

Installation

Machine

Il s’agit donc simplement d’une machine à 16 cœurs, ce qui permet de paralléliser le calcul de la preuve.

Configuration

J’ai placé les CPU à 100% d’utilisation. Toutefois pour que Duniter profite pleinement des 16 cœurs, il faut le débrider dans un des fichiers de constantes :

vim /opt/duniter/app/modules/prover/lib/constants.js
CORES_MAXIMUM_USE_IN_PARALLEL: 16

Exécution

Je lance Duniter avec l’option --keyprompt pour éviter que ma clé ne traîne sur le disque d’un serveur qui ne m’appartient pas.

Observations

J’ai pu observer les 16 cœurs tourner parfaitement :

Vitesse moyenne : 166 signature+hash / seconde / cœur, soit 2656 essais de preuve par seconde.

Preuve 1 - Bloc #56282

Difficulté 90 (88 de base + 2 de handicap)
Durée : 34" (0'34")

Cette preuve a été trouvée immédiatement (au sens de non-interrompue par un autre nœud du réseau).

J’étais face à environ 11 nœuds. Au terme de cette preuve, j’ai été exclu pendant 6 blocs par le mécanisme de rotation d’écriture. Ce qui à raison de 5 minutes par bloc en moyenne équivaut à une exclusion de 30 minutes pendant lesquelles les 16 cœurs de la machine se tournent les pouces.

Preuve 2 - Bloc #56289

Difficulté 91 (88 de base + 3 de handicap)
Durée : 512" (8'32")

Cette preuve a été trouvée immédiatement.

Preuve 3 - Bloc #56298

Difficulté 91 (88 de base + 3 de handicap)
Durée : 407" (6'47")

Cette preuve n’a pas été trouvée immédiatement, mon nœud s’est fait doublé 2 fois avant de réussir cette preuve. Je suis d’ailleurs passé par une difficulté de 92 à ce moment-là, puis mon handicap est redescendu à 91, niveau auquel j’ai fini par trouver la preuve.

À noter qu’un nouvel auteur a fait son apparition à ce moment là, jardin il me semble.

Preuve 4 - Bloc #56314

Difficulté 92 (88 de base + 4 de handicap)
Durée : 121" (2'01")

Cette preuve n’a pas été trouvée immédiatement, mon nœud s’est fait doublé 9 fois :open_mouth: avant de réussir cette preuve. La difficulté de départ était de 92, mais @Alan_Schmitt est rentré dans la fenêtre de fork et a fait monter mon handicap de 1 unité (donc 93) pendant 6 blocs. C’est donc 16 blocs après mon dernier bloc que j’ai réussi à nouveau une preuve. On est loin de la fenêtre d’exclusion de 6 blocs ici …

Preuve 5 - Bloc #56327

Difficulté 91 (88 de base + 3 de handicap)
Durée : ------

Cette preuve n’a pas été trouvée immédiatement, mon nœud s’est fait doublé 7 fois pour finalement se faire damer le pion par mon autre nœud, une petite machine à 4 cœurs et paramétrée à 55% d’utilisation CPU pour la preuve.

Preuve 6 - Bloc #56335

Difficulté 90 (87 de base + 3 de handicap)
Durée : 15" (0'15")

Cette preuve n’a pas été trouvée immédiatement, mon nœud s’est fait doublé 1 fois.

Preuve 7 - Bloc #56345

Difficulté 90 (87 de base + 3 de handicap)
Durée : 575" (9'35")

Cette preuve n’a pas été trouvée immédiatement, mon nœud s’est fait doublé 3 fois.

Preuve 8 - Bloc #56353

Difficulté 89 (86 de base + 3 de handicap)
Durée : 279" (4'39")

Cette preuve n’a pas été trouvée immédiatement, mon nœud s’est fait doublé 1 fois.

Preuve 9 - Bloc #56360

Difficulté 90 (86 de base + 4 de handicap)
Durée : 223" (3'43")

Cette preuve a été trouvée immédiatement.

Preuve 10 - Bloc #56367

Difficulté 90 (86 de base + 4 de handicap)
Durée : 190" (3'10")

Cette preuve a été trouvée immédiatement.

Tracé complet

2017-09-28T11:48:54+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56282 2ny7YA
2017-09-28T11:49:28+02:00 - info: Done: #56282, 0000049F701F49FFDD342B69C343CD4FF09C9E867C5E0548D8C8C5BED46EAD5A in 34.11s (5351 tests, ~156.89 tests/s)
2017-09-28T11:49:28+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-5]!
2017-09-28T12:09:17+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-4]... (CPU usage set to 100%) for block#56289 2ny7YA
2017-09-28T12:17:49+02:00 - info: Done: #56289, 000003BC9EB85C4337BC900A4AF21324E06CA62087E7C8922711DEBFDD12002B in 512.12s (85217 tests, ~166.40 tests/s)
2017-09-28T12:17:49+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-4]!
2017-09-28T12:33:51+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56296 2ny7YA
2017-09-28T12:36:43+02:00 - info: GIVEN proof-of-work for block#56296 with 5 leading zeros followed by [0-5]! stop PoW for 2ny7YA
2017-09-28T12:36:51+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56297 2ny7YA
2017-09-28T12:38:33+02:00 - info: GIVEN proof-of-work for block#56297 with 5 leading zeros followed by [0-5]! stop PoW for 2ny7YA
2017-09-28T12:38:41+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-4]... (CPU usage set to 100%) for block#56298 2ny7YA
2017-09-28T12:45:28+02:00 - info: Done: #56298, 000003F9D8D2E5A7E831958294554C69C86627886032EF6326C61BDF86DE3149 in 407.23s (67822 tests, ~166.55 tests/s)
2017-09-28T12:45:28+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-4]!
2017-09-28T13:30:15+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56305 2ny7YA
2017-09-28T13:30:55+02:00 - info: GIVEN proof-of-work for block#56305 with 5 leading zeros followed by [0-3]! stop PoW for 2ny7YA
2017-09-28T13:31:02+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56306 2ny7YA
2017-09-28T13:36:48+02:00 - info: GIVEN proof-of-work for block#56306 with 5 leading zeros followed by [0-3]! stop PoW for 2ny7YA
2017-09-28T13:36:55+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56307 2ny7YA
2017-09-28T13:38:49+02:00 - info: GIVEN proof-of-work for block#56307 with 5 leading zeros followed by [0-3]! stop PoW for 2ny7YA
2017-09-28T13:38:56+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-2]... (CPU usage set to 100%) for block#56308 2ny7YA
2017-09-28T13:41:47+02:00 - info: GIVEN proof-of-work for block#56308 with 5 leading zeros followed by [0-2]! stop PoW for 2ny7YA
2017-09-28T13:41:54+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-2]... (CPU usage set to 100%) for block#56309 2ny7YA
2017-09-28T13:41:56+02:00 - info: GIVEN proof-of-work for block#56309 with 5 leading zeros followed by [0-2]! stop PoW for 2ny7YA
2017-09-28T13:42:03+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-2]... (CPU usage set to 100%) for block#56310 2ny7YA
2017-09-28T13:54:26+02:00 - info: GIVEN proof-of-work for block#56310 with 5 leading zeros followed by [0-2]! stop PoW for 2ny7YA
2017-09-28T13:54:33+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-2]... (CPU usage set to 100%) for block#56311 2ny7YA
2017-09-28T13:54:45+02:00 - info: GIVEN proof-of-work for block#56311 with 5 leading zeros followed by [0-2]! stop PoW for 2ny7YA
2017-09-28T13:54:51+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-2]... (CPU usage set to 100%) for block#56312 2ny7YA
2017-09-28T13:55:51+02:00 - info: GIVEN proof-of-work for block#56312 with 5 leading zeros followed by [0-2]! stop PoW for 2ny7YA
2017-09-28T13:55:58+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-2]... (CPU usage set to 100%) for block#56313 2ny7YA
2017-09-28T13:57:58+02:00 - info: GIVEN proof-of-work for block#56313 with 5 leading zeros followed by [0-2]! stop PoW for 2ny7YA
2017-09-28T13:58:05+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56314 2ny7YA
2017-09-28T14:00:07+02:00 - info: Done: #56314, 00000308D91405F727F72C7D3BC99D1AECEB2112D9676446094E8AAF3461CD66 in 121.87s (20278 tests, ~166.39 tests/s)
2017-09-28T14:00:07+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-3]!

2017-09-28T15:10:32+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56321 2ny7YA
2017-09-28T15:10:51+02:00 - info: GIVEN proof-of-work for block#56321 with 5 leading zeros followed by [0-5]! stop PoW for 2ny7YA
2017-09-28T15:10:58+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56322 2ny7YA
2017-09-28T15:19:42+02:00 - info: GIVEN proof-of-work for block#56322 with 5 leading zeros followed by [0-3]! stop PoW for 2ny7YA
2017-09-28T15:19:51+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56323 2ny7YA
2017-09-28T15:23:03+02:00 - info: GIVEN proof-of-work for block#56323 with 5 leading zeros followed by [0-3]! stop PoW for 2ny7YA
2017-09-28T15:23:11+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-3]... (CPU usage set to 100%) for block#56324 2ny7YA
2017-09-28T15:28:33+02:00 - info: GIVEN proof-of-work for block#56324 with 5 leading zeros followed by [0-3]! stop PoW for 2ny7YA
2017-09-28T15:28:41+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-4]... (CPU usage set to 100%) for block#56325 2ny7YA
2017-09-28T15:43:42+02:00 - info: GIVEN proof-of-work for block#56325 with 5 leading zeros followed by [0-4]! stop PoW for 2ny7YA
2017-09-28T15:43:49+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-4]... (CPU usage set to 100%) for block#56326 2ny7YA
2017-09-28T15:51:32+02:00 - info: GIVEN proof-of-work for block#56326 with 5 leading zeros followed by [0-4]! stop PoW for 2ny7YA
2017-09-28T15:51:40+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-4]... (CPU usage set to 100%) for block#56327 2ny7YA
2017-09-28T15:59:18+02:00 - info: GIVEN proof-of-work for block#56327 with 5 leading zeros followed by [0-4]! stop PoW for 2ny7YA <-- Trouvée par un autre nœud à moi, 4 cœurs à 55% 
CPU où tourne également un nœud G1-Test et plein d'autres services
2017-09-28T16:23:31+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56334 2ny7YA
2017-09-28T16:24:38+02:00 - info: GIVEN proof-of-work for block#56334 with 5 leading zeros followed by [0-5]! stop PoW for 2ny7YA
2017-09-28T16:24:46+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56335 2ny7YA
2017-09-28T16:25:01+02:00 - info: Done: #56335, 000004F875C1E7151F34361222DC33AC284570181D49A6751BDAB213033559C6 in 15.81s (2619 tests, ~165.67 tests/s)
2017-09-28T16:25:01+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-5]!
2017-09-28T16:42:52+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56342 2ny7YA
2017-09-28T16:44:43+02:00 - info: GIVEN proof-of-work for block#56342 with 5 leading zeros followed by [0-5]! stop PoW for 2ny7YA
2017-09-28T16:44:51+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56343 2ny7YA
2017-09-28T16:54:23+02:00 - info: GIVEN proof-of-work for block#56343 with 5 leading zeros followed by [0-5]! stop PoW for 2ny7YA
2017-09-28T16:54:30+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-6]... (CPU usage set to 100%) for block#56344 2ny7YA
2017-09-28T16:59:22+02:00 - info: GIVEN proof-of-work for block#56344 with 5 leading zeros followed by [0-6]! stop PoW for 2ny7YA
2017-09-28T16:59:30+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-6]... (CPU usage set to 100%) for block#56345 2ny7YA
2017-09-28T17:09:05+02:00 - info: Done: #56345, 000000C72FB50B0FAA39E644BBF65B92C668B9590B9CADB21781E8D245305991 in 575.02s (95593 tests, ~166.24 tests/s)
2017-09-28T17:09:05+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-6]!
2017-09-28T17:35:11+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-6]... (CPU usage set to 100%) for block#56352 2ny7YA
2017-09-28T17:39:06+02:00 - info: GIVEN proof-of-work for block#56352 with 5 leading zeros followed by [0-6]! stop PoW for 2ny7YA
2017-09-28T17:39:13+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-6]... (CPU usage set to 100%) for block#56353 2ny7YA
2017-09-28T17:43:52+02:00 - info: Done: #56353, 0000007306B37AE18E913A92E23607F4F1257D1B93821B39431D78E02B7BAC69 in 279.10s (46429 tests, ~166.35 tests/s)
2017-09-28T17:43:52+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-6]!
2017-09-28T18:26:18+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56360 2ny7YA
2017-09-28T18:30:01+02:00 - info: Done: #56360, 000002C946E1EDCD5228B5514E3C6D9ACB94CFD545F1741284E44A077FE5EBFF in 223.09s (37315 tests, ~167.26 tests/s)
2017-09-28T18:30:01+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-5]!
2017-09-28T18:52:21+02:00 - info: Generating proof-of-work with 5 leading zeros followed by [0-5]... (CPU usage set to 100%) for block#56367 2ny7YA
2017-09-28T18:55:31+02:00 - info: Done: #56367, 000001FA7A0423F919E665E4A5D70460034AFF836667512D5156836B354307B5 in 190.70s (31692 tests, ~166.19 tests/s)
2017-09-28T18:55:31+02:00 - info: FOUND proof-of-work with 5 leading zeros followed by [0-5]!

Commentaires

C’était un test sur 7h d’affilée, il faut tenir compte de la largeur de cet échantillon avant d’en tirer des conclusions et il me semble que le test devrait être fait sur plusieurs jours voire une semaine pour être davantage révélateur.

Néanmoins je note que mon nœud a beau avoir 16 cœurs, il s’est assez honteusement fait doubler et de nombreuses fois par d’autres nœuds, notamment ARM.

On voit également le côté aléatoire de la preuve, avec une résolution parfois très rapide (15"), parfois bien plus lente (9’35").

En tous les cas, on voit là que cette importante puissance de calcul (relativement à une machine de bureau moyenne ou un nœud ARM) n’a pas vraiment fait chavirer le réseau, on pourrait même dire qu’il n’a rien senti car la difficulté commune a même diminué au cours de la journée.

Bref, c’était ma petite expérience du jour :slight_smile:

13 J'aimes

jardin : j’ai un i5 4 coeurs 33%

I also have same proc and a close configuration.
That explain why we are close on the blocks window.