Technical committee: Check runtime upgrade hash compliance

Comment vérifier que ce hash blake correspond bien au runtime de la preimage de la proposal ?

Je trouve que la doc actuellement fournit dans le repo pas très satisfaisante. Je n’ai jamais compris comment comparer les hash d’uun runtime d’une proposual avec le hash d’un runtime compilé, malgré toutes les tentatives que j’ai pu trouver dans la doc du repo et les postes du forum lors des différents runtime upgrade.
Ou alors je n’ai pas compris quelque chose, auquel cas dites le moi.
Ce tuto est une proposition de procédure ne nécessitant pas une confiance aveugle à la release du gitlab.
Vous pouvez la challenger et si elle vous conviens, je propose d’en faire une doc en anglais dans le repo duniter (et le wiki).

La solution la plus simple que j’ai trouvée, que vous soyez sur Linux ou mac :

1 . Ouvrez un fichier texte et mettez-y ce mini script :

WASM_BYTES=0x42...

echo $WASM_BYTES | xxd -r -p | python3 -c "import sys, hashlib; print('0x' + hashlib.blake2b(sys.stdin.buffer.read(), digest_size=32).hexdigest())"

2 . Remplacez simplement la valeur de WASM_BYTES par le code: Bytes du runtime wasm que vous trouverez directement sur la preimage.

2a.

2b.
:warning: Vérifiez ici que le hash de la preimage correspond bien au code: Bytes de la preimage référencée dans la proposal.

2c. Cliquez sur le lien du system.setCode de la preimage pour voir le runtime associé.

2d. Copiez le code: Bytes de ce runtime, c’est votre WASM_BYTES.

Vous pouvez simplement sélectionner toute la partie visible du bytes hexa ici et le copier, ça va copier tout le byte en entier (attention plusieurs Mo)

3 . Checkout la branche duniter-v2s du network associé à la proposal (par exemple network/gtest-1110), compilez le runtime gtest et vérifiez que le hash blake généré correspond bien à celui sorti par le script.

cargo xtask release runtime build gtest
cat release/srtool_output_gtest.json | grep blake2_256 | jq -r '.runtimes.compressed.blake2_256'

Félicitation, vous êtes sûr à 100% que le code que vous lisez depuis cette branche git correspond bien au runtime proposé au vote.

2 Likes