>>> block = Block.from_signed_raw(received_block["raw"] + "aZusVDRJA8akPse/sv4uK8ekUuvTGj1OoKYVdMQQ/3+VMaDJ02I795GBBaLgjypZFEKYlPMssJ
Mn/X+F/pxgAw==")
Traceback (most recent call last):
File "/home/moul/duniterpy/duniterpy/documents/document.py", line 68, in parse_field
raise AttributeError
AttributeError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/moul/.local/lib/python3.7/site-packages/aioconsole/execute.py", line 95, in aexec
result, new_local = yield from coro
File "<aexec>", line 2, in __corofn
File "/home/moul/duniterpy/duniterpy/documents/block.py", line 405, in from_signed_raw
signature = Block.parse_field("Signature", lines[n])
File "/home/moul/duniterpy/duniterpy/documents/document.py", line 71, in parse_field
raise MalformedDocumentError(field_name)
duniterpy.documents.document.MalformedDocumentError: Could not parse field Signature
Possible
Il est aussi possible que je ne l’utilise pas correctement.
Autrement, ça ne m’étonnerait pas de découvrir à nouveau des bugs. J’en ai trouvé pas mal depuis que je l’utilise.
@Moul@vit je viens de vérifier le code et duniterpy ne sais vérifier que les documents utilisateurs + la fiche de peer, il ne sais pas vérifier le document bloc car ce dernier a une particularité : c’est le seul document dont on ne signe pas le format raw mais la partie InnerHash: BC.FE\nNonce: 012..348\n (le format raw sert justement a obtenir le inner hash)
Pour tester coté Duniterpy sans avoir de dev a faire, il vous suffit de rédiger un TU qui appelle directement la méthode verify de l’objet libnacl.sign.Verifier
@Moul forcément ça ne peut pas fonctionner tu a rajouté un espace devant Nonce, j’ai pourtant pris soin de ne pas insérer cet espace dans mes précédents post
Ok, top ! Merci pour la typo.
Du coup le bloc #15144 a une signature valide avec la bonne signature que t’as donné plus haut et a une signature invalide avec la signature présente dans le bloc.
Et, sur le bloc #15145, ça passe nickel !
@Moul@vit, maintenant que nous somme passé au protocole v12 sur la G1, l’un de vous peut-il fournir la liste définitive des blocs invalides sur la blockchain G1 ? (Et aussi refournir la liste pour la G1-test, je crois que Moul l’avais posté, mais je ne sais plus dans quel sujet.)
Ça rend la commande verify obsolète avant même qu’elle ne soit sortie. Bon, elle apporte une bonne expérience au projet en termes de test ainsi qu’une base de code pour télécharger toute la chaîne et y faire de potentielles autres études et analyses de la chaîne de blocs en masse.