G1-test dans les choux ? État monnaie

J’ai peu être un correctif, mais je ne suis pas sûr que ça soit correct étant donné que ça me paraît trop simple en vu du niveau de difficulté que t’as donné à l’exercice.

Le correctif peut également être à l’endroit où est assigné la variable op de la certification, mais je n’ai pas trouvé cet endroit.

La synchronisation n’a pas engendré de segfault :

2019-05-02T00:00:23+02:00 - ^[[32minfo^[[39m: Block #362829 added to the blockchain in 28 ms
2019-05-02T00:00:23+02:00 - ^[[32minfo^[[39m: Block #362830 added to the blockchain in 18 ms
2019-05-02T00:00:23+02:00 - ^[[32minfo^[[39m: Block #362831 added to the blockchain in 19 ms
2019-05-02T00:00:23+02:00 - ^[[32minfo^[[39m: Block #362832 added to the blockchain in 44 ms
2019-05-02T00:00:24+02:00 - ^[[32minfo^[[39m: Block #362833 added to the blockchain in 36 ms
2019-05-02T00:00:24+02:00 - ^[[32minfo^[[39m: Block #362834 added to the blockchain in 28 ms
2019-05-02T00:00:24+02:00 - ^[[32minfo^[[39m: Block #362835 added to the blockchain in 21 ms

Je sais pas comment avoir tous les journaux de synchronisation (mon fichier contiens que la fin).

Et le correctif sous forme de patch :

diff --git a/app/lib/dal/fileDAL.ts b/app/lib/dal/fileDAL.ts
index ea1b1002..f14e8aa5 100644
--- a/app/lib/dal/fileDAL.ts
+++ b/app/lib/dal/fileDAL.ts
@@ -1072,10 +1072,11 @@ export class FileDAL {
     for (const entry of cindex) {                                                                                                 
       const from = await this.getWrittenIdtyByPubkeyForWotbID(entry.issuer);                                                      
       const to = await this.getWrittenIdtyByPubkeyForWotbID(entry.receiver);                                                      
       if (entry.op == CommonConstants.IDX_CREATE) {                                                                               
         // NewLogger().trace('addLink %s -> %s', from.wotb_id, to.wotb_id)                                                        
         wotb.addLink(from.wotb_id, to.wotb_id);                                                                                   
-      } else {
+      } else if (entry.op != CommonConstants.IDX_UPDATE) {
         // Update = removal                                                                                                       
         NewLogger().trace('removeLink %s -> %s', from.wotb_id, to.wotb_id)                                                        
         wotb.removeLink(from.wotb_id, to.wotb_id);                                                                                

Explication : donc supprimer le lien dans le cas où il ne s’agit pas d’une opération CREATE, ni d’UPDATE. Mais quelle opération reste-t-il pour supprimer le lien ?

Voilà pourquoi je pense, qu’il faut creuser un peu plus, car j’ai peut-être tout simplement cassé le voyant du tableau de bord pour ignorer le problème.

Oui et même ce code empêche la suppression des liens obsolètes dans wotb (car il n’existe que deux opérations pour op : CREATE et UPDATE, donc là le code wotb.removeLink devient mort), et donc introduit un nouveau bug de règle de distance lâche.

Sur la sortie standard elles y sont, mais pas dans le fichier de logs (encore un bug).

Dans ce cas, il faut créer IDX_DELETE et l’assigner à certification.op lorsque la certifciation doit expirer.

Pourtant le renvoi de port est bien configuré. Aaah satanée freebox.

Cette opération n’existe pas, le protocole est agnostique de toute suppression de donnée car il n’est aucunement nécessaire d’en avoir une pour que celui-ci fonctionne.

Je vais donner ce midi la solution que j’ai trouvée, si j’ai le temps.

edit : pas eu le temps :grimacing: mais le test avec verrou reproduisant le problème est codé. Je le nettoie ce soir puis je publie.

3 Likes

La version 1.7.18 a été buildée.

Je vais resynchroniser mon nœud sur g1-test.duniter.org, je vous invite ensuite à synchroniser sur le mien une fois l’accélération temporelle passée.

edit : done, par contre nous étions 6 issuers, donc mon nœud est bloqué s’il reste tout seul :slight_smile:

2 Likes

J’ai fait la mise a jours et viens de lancer une sync basée sur g1-test.cgeek.fr, dés qu’elle sera finie nom nœud devrait calculer de nouveau :slight_smile:

EDIT : ça y ai j’ai calculé un bloc. Ceux qui veulent peuvent se sync sur mon noeud : ts.gt.librelois.fr (port 443)

1 Like

Je suis aussi rentré dans la course. C’est reparti. :slight_smile:

2 Likes

La monnaie a rattrapé son retard.
Il y a des nœuds qui ont décroché :

silkaj -gt diffi
Current block: n°364367, generated on the 2019-05-03 09:12:26                                                                      
Generation of next block n°364368 possible by at least 2/2 members                                                                 
Common Proof-of-Work difficulty level: 59, hash starting with `000[0-4]*`                                                          
|    uid    |   match   |  Π diffi   |   Σ diffi |                                                                                 
|-----------+-----------+------------+-----------|                                                                                 
|    jyt    | 000[0-3]* | 4.9 × 10^4 |        60 |                                                                                 
| moul-test | 000[0-5]* | 4.1 × 10^4 |        58 |                                                                                 
                                                                                                                    
silkaj -gt blocks
Last 11 blocks from n°364357 to n°364367                                                                                           
|   block |       gentime       |     mediantime      |    hash    |    uid    |                                                   
|---------+---------------------+---------------------+------------+-----------|                                                   
|  364367 | 2019-05-03 09:12:26 | 2019-05-03 08:23:30 | 0000EF3EDD |    jyt    |                                                   
|  364366 | 2019-05-03 09:07:30 | 2019-05-03 08:19:10 | 0003599668 | moul-test |                                                   
|  364365 | 2019-05-03 09:07:20 | 2019-05-03 08:14:41 | 00005C4DED |    jyt    |                                                   
|  364364 | 2019-05-03 09:03:16 | 2019-05-03 08:10:10 | 0001F401CC |    jyt    |                                                   
|  364363 | 2019-05-03 09:00:58 | 2019-05-03 08:05:34 | 00010B24D0 |    jyt    |                                                   
|  364362 | 2019-05-03 08:59:58 | 2019-05-03 08:00:56 | 00010B62DA |    jyt    |                                                   
|  364361 | 2019-05-03 08:57:28 | 2019-05-03 07:56:25 | 00013681A7 |    jyt    |                                                   
|  364360 | 2019-05-03 08:56:51 | 2019-05-03 07:51:25 | 0001CD7535 | moul-test |                                                   
|  364359 | 2019-05-03 08:52:10 | 2019-05-03 07:46:24 | 0003E7A494 | moul-test |                                                   
|  364358 | 2019-05-03 08:40:22 | 2019-05-03 07:41:42 | 00008693FB |    jyt    |                                                   
|  364357 | 2019-05-03 08:40:17 | 2019-05-03 07:36:36 | 00014922E6 |    jyt    |                                                   

silkaj -gt blocks 500
Last 500 blocks from n°363868 to n°364367 from 3 issuers                                                                           
|     uid      |   blocks |   percent |                                                                                            
|--------------+----------+-----------|                                                                                            
|  moul-test   |      342 |      68.4 |                                                                                            
|     jyt      |      146 |      29.2 |                                                                                            
| scanlegentil |       12 |       2.4 |         
                                                                                   
silkaj -gt blocks 1000
Last 1000 blocks from n°363368 to n°364367 from 5 issuers                                                                          
|     uid      |   blocks |   percent |                                                                                            
|--------------+----------+-----------|                                                                                            
|  moul-test   |      645 |      64.5 |                                                                                            
|    cgeek     |      184 |      18.4 |                                                                                            
|     jyt      |      146 |      14.6 |                                                                                            
|    Elois     |       13 |       1.3 |                                                                                            
| scanlegentil |       12 |       1.2 |

En fait, cgeek a forké tout seul dans son coin. Donc, il y a deux monnaies de test plus réconciliables.

Et bah je vais vous rejoindre dans ce cas :wink:

edit : sauf si vos nœuds ne sont pas accessibles … une adresse ?

edit 2 : ah ! le nœud de @jytou semble dispo, je m’y colle.

@elois : au final j’ai raccroché le wagon formé par Moul et jytou. Peux-tu t’y resynchroniser aussi ?

@Moul : il semble que tu ne calcules plus de blocs sur cette branche, c’est voulu ?

Il me semble que mon nœud calcule toujours :

Current block: n°364442, generated on the 2019-05-03 13:54:50
Generation of next block n°364443 possible by at least 1/1 members
Common Proof-of-Work difficulty level: 54, hash starting with `000[0-9]*`
|    uid    |   match   |  Π diffi   |   Σ diffi |
|-----------+-----------+------------+-----------|
| moul-test | 000[0-9]* | 2.5 × 10^4 |        54 |

2019-05-03T14:29:43+02:00 - info: Done: #364443, 0002CE452C6D1265CA3BE24A5FD865869CB53F30C6EB71E77FFC031FC00BD07D in 2091.95s (~105
36 tests, ~5.04 tests/s, using 4 cores, CPU 5%)                                                                                                                                                                              

Il a du fourcher par rapport à celui de jytou.

Bon, je rejoins la branche, jytou cgeek sur g1-test.duniter.org.

2 Likes

C’est fait :slight_smile:

1 Like

C’est parfait, la ĞTest tourne :slight_smile:

2 Likes

Pour info : deux nœuds sont bloqués dans la résolution de fork au bloc#366173 :

Il y a eu un fork à ce moment-là (2 blocs trouvés à la même seconde par des nœuds différents) :

  • b#366173-0000765B
  • b#366173-0001105E

Suite à quoi les 2 nœuds sus-mentionnés sont tombés sur l’erreur suivante lors de la résolution de fork :

Fork resolution: suite 1/1 REFUSED block#366177: ruleIssuerIsMember

Voilà. Si quelqu’un veut bien investiguer en plus, notamment au regard de cette erreur, cela m’aiderait beaucoup :slight_smile:

J’ai vu ce bug récemment, et à présent je vois plusieurs blocs de nombre qui s’incrémente refusé par mon nœud via cette règle.

2019-05-07T09:21:18+02:00 - info: SIDE Block #366665-0001D8D0 added to the blockchain in 1 ms
2019-05-07T09:21:18+02:00 - info: Block resolution: 1 potential blocks after current#366664...
2019-05-07T09:21:18+02:00 - error:  Error: ruleIssuerIsMember
    at Function.checkBlock (/home/gtest/duniter/app/lib/blockchain/DuniterBlockchain.js:72:19)                                     
    at <anonymous>                                                                                                                 
    at process._tickCallback (internal/process/next_tick.js:189:7)                                                                 
[…]
2019-05-07T09:23:04+02:00 - info: Block resolution: 1 potential blocks after current#366664...
2019-05-07T09:23:04+02:00 - info: [5B8iMAzq] ⬇ PEER 5B8iMAzq 366635-0
2019-05-07T09:23:04+02:00 - error:  Error: ruleIssuerIsMember
    at Function.checkBlock (/home/gtest/duniter/app/lib/blockchain/DuniterBlockchain.js:72:19)                                     
    at <anonymous>                                                                                                                 
    at process._tickCallback (internal/process/next_tick.js:189:7)                                                                 
2019-05-07T09:23:04+02:00 - info: Block resolution: 1 potential blocks after current#366664...
2019-05-07T09:23:04+02:00 - error:  Error: ruleIssuerIsMember
    at Function.checkBlock (/home/gtest/duniter/app/lib/blockchain/DuniterBlockchain.js:72:19)                                     
    at <anonymous>                                                                                                                 
    at process._tickCallback (internal/process/next_tick.js:189:7)                                                                 

Ça me fait vraiment penser à ce bug https://git.duniter.org/nodes/typescript/duniter/issues/1353

L’erreur est toujours la même : le nœud n’arrive pas à passer au bloc#366665.

Quant au bug 1353, oui c’est possiblement lié.

g1-test.duniter.org est bloqué à une heure de ce matin 9 mai.

Chaîne bloquée

Current block: n°404406, generated on the 2019-07-16 17:38:25
Generation of next block n°404407 possible by at least 3/4 members
Common Proof-of-Work difficulty level: 58, hash starting with `000[0-5]*`
|    uid    |     match     |  Π diffi   |   Σ diffi |
|-----------+---------------+------------+-----------|
|    jyt    | 0000000[0-7]* | 2.1 × 10^9 |       120 |
|  Elois-2  |   000[0-4]*   | 4.5 × 10^4 |        59 |
| moul-test |   000[0-5]*   | 4.1 × 10^4 |        58 |
|   cgeek   |   000[0-5]*   | 4.1 × 10^4 |        58 |
  • du point de vue des journaux :
2019-07-18T08:50:04+02:00 - error:  Error: ruleNumber
    at Function.checkBlock (/home/gtest/duniter/app/lib/blockchain/DuniterBlockchain.js:62:19)                                     
    at process._tickCallback (internal/process/next_tick.js:68:7)                                                                  
2019-07-18T08:50:04+02:00 - info: Fork resolution: 101 potential block(s) found...
2019-07-18T08:50:04+02:00 - info: Fork resolution: block #404408-0004233A is known as incorrect. Skipping.
2019-07-18T08:50:04+02:00 - info: Fork resolution: block #404408-0004233A is known as incorrect. Skipping.
2019-07-18T08:50:04+02:00 - info: Blocks were not applied.
2019-07-18T08:50:04+02:00 - info: Block resolution: 1 potential blocks after current#404406...
2019-07-18T08:50:04+02:00 - error:  Error: ruleNumber
    at Function.checkBlock (/home/gtest/duniter/app/lib/blockchain/DuniterBlockchain.js:62:19)                                     
    at process._tickCallback (internal/process/next_tick.js:68:7)                                                                  
2019-07-18T08:50:04+02:00 - info: Fork resolution: 101 potential block(s) found...
2019-07-18T08:50:04+02:00 - info: Fork resolution: block #404408-0004233A is known as incorrect. Skipping.
2019-07-18T08:50:04+02:00 - info: Fork resolution: block #404408-0004233A is known as incorrect. Skipping.