Construction conteneurs de l’indexeur Squid pour la ĞTest

Comme discuté lors de la visio dev du 1er août (Development talks - #71 by Moul), j’ai fusionné les branches gtest_custom et ci_gtest dans main, tagué le tout avec 0.3.0, ce qui a déclenché la CI.

L’image a bien été publiée dans le gitlab registry : registry.duniter.org/nodes/duniter-squid/squid:0.3.0. Vous pouvez utiliser le docker-compose.yml donné en exemple sur le dépôt : docker-compose.yml · main · nodes / duniter-squid · GitLab.

Avant de le lancer, il vous faut un nœud archive synchronisé sur la gtest, idéalement accessible localement, et dont vous indiquerez l’url dans RPC_ENDPOINT du .env.

J’ai fait un essai en local avec RPC_ENDPOINT=ws://duniter-archive:9944.

$ docker compose up -d  && docker compose logs -f processor

Je reproduis bien l’erreur

processor-1  | {"level":5,"time":1754217221271,"ns":"sqd:processor","err":{"stack":"TypeError: Cannot read properties of undefined (reading 'patch')

Ça provient de la ligne :

// Accomodate for versions of polkadot before and after 1.6.0:
const genesis: Genesis = genesisData.genesis.runtimeAndCode?.runtime || genesisData.genesis.runtimeGenesis.patch;

Avant le chemin dans les chainspecs était genesis.runtimeAndCode.runtime et depuis substrate 1.6.0 c’est genesis.runtimeGenesis.patch. Mais dans le fichier archive.zip téléchargé par le script download_genesis.sh, il n’y a que le fichier genesis.json utilisé en entrée de Duniter et pas le fichier gtest.json qui est le résultat de duniter build-spec --chain gtest_live 1> ./specs.json exécuté à l’étape build_specs de la CI de Duniter.

Le script download_genesis.sh était basé sur une ancienne version de la CI Duniter qui ne publiait pas les chainspecs. La modif de @Moul tentait de récupérer les raw chainspecs alors qu’il fallait les chainspecs au format json non raw.

J’ai donc changé le job ID vers 147770 qui a tout les fichiers dans les artefacts. C’est à mon avis les artefacts de ce job qui devraient figurer sur la page de release Releases · nodes / rust / Duniter v2S · GitLab. Mais je suis une fois de plus paumé parmi les centaine de milliers de jobs Duniter.

Cette fois-ci, on a un tag 0.3.1, et voici ce que ça donne :

$ docker compose down && docker compose up -d  && docker compose logs -f processor
[+] Running 4/4
 ✔ Container duniter-squid-hasura-squid-1  Removed                                                                                                                                                   10.3s 
 ✔ Container duniter-squid-processor-1     Removed                                                                                                                                                    0.0s 
 ✔ Container duniter-squid-db-1            Removed                                                                                                                                                    0.2s 
 ✔ Network duniter-squid_default           Removed                                                                                                                                                    0.1s 
[+] Running 16/16
 ✔ processor Pulled                                                                                                                                                                                  35.4s 
   ✔ 9824c27679d3 Already exists                                                                                                                                                                      0.0s 
   ✔ 8c59d92d6fc9 Already exists                                                                                                                                                                      0.0s 
   ✔ 54225bd60196 Already exists                                                                                                                                                                      0.0s 
   ✔ a9e48ad1219d Already exists                                                                                                                                                                      0.0s 
   ✔ a2ae4fd944fb Already exists                                                                                                                                                                      0.0s 
   ✔ 68b41d8ff00e Already exists                                                                                                                                                                      0.0s 
   ✔ 7105e8e13a10 Pull complete                                                                                                                                                                      31.8s 
   ✔ d300530caba2 Pull complete                                                                                                                                                                      31.8s 
   ✔ 9f4bf40e90cd Pull complete                                                                                                                                                                      31.8s 
   ✔ ce677361fabc Pull complete                                                                                                                                                                      31.9s 
   ✔ 2cfed348a327 Pull complete                                                                                                                                                                      34.1s 
   ✔ c39c4ac5e0e7 Pull complete                                                                                                                                                                      34.2s 
   ✔ 332167c96b7f Pull complete                                                                                                                                                                      34.2s 
   ✔ cd10f143fffd Pull complete                                                                                                                                                                      34.2s 
   ✔ 125042a53118 Pull complete                                                                                                                                                                      34.7s 
[+] Running 4/4
 ✔ Network duniter-squid_default           Created                                                                                                                                                    0.0s 
 ✔ Container duniter-squid-db-1            Healthy                                                                                                                                                    2.8s 
 ✔ Container duniter-squid-processor-1     Healthy                                                                                                                                                    8.5s 
 ✔ Container duniter-squid-hasura-squid-1  Started                                                                                                                                                    8.7s 
processor-1  | {"level":2,"time":1754219217133,"ns":"sqd:commands","msg":"MIGRATION:COPY-CUSTOM"}
processor-1  | {"level":2,"time":1754219217142,"ns":"sqd:commands","msg":"MIGRATION:APPLY"}
processor-1  | query: SELECT version()
processor-1  | query: SELECT * FROM current_schema()
processor-1  | query: SELECT * FROM "information_schema"."tables" WHERE "table_schema" = 'public' AND "table_name" = 'migrations'
processor-1  | query: SELECT * FROM "migrations" "migrations" ORDER BY "id" DESC
processor-1  | No migrations are pending
processor-1  | {"level":2,"time":1754219217631,"ns":"sqd:commands","msg":"PROCESS:PROD"}
processor-1  | {"level":2,"time":1754219218418,"ns":"sqd:processor","msg":"processing blocks from 0"}
processor-1  | {"level":2,"time":1754219218419,"ns":"sqd:processor","msg":"using chain RPC data source"}
processor-1  | {"level":2,"time":1754219218440,"ns":"sqd:processor","msg":"prometheus metrics are served at port 38971"}
processor-1  | {"level":2,"time":1754219218656,"ns":"sqd:processor:mapping","msg":"Using genesis files from ./input/gtest.json, ./input/genesis.json, ./input/block_hist.json, ./input/tx_hist.json, ./input/cert_hist.json"}
processor-1  | {"level":2,"time":1754219218809,"ns":"sqd:processor:mapping","msg":"Last v1 block is 844944"}
processor-1  | {"level":2,"time":1754219218810,"ns":"sqd:processor:mapping","msg":"Handling v1 block history"}
processor-1  | {"level":2,"time":1754219220857,"ns":"sqd:processor:mapping","msg":"-800000"}
processor-1  | {"level":2,"time":1754219222277,"ns":"sqd:processor:mapping","msg":"-700000"}
processor-1  | {"level":2,"time":1754219223869,"ns":"sqd:processor:mapping","msg":"-600000"}
processor-1  | {"level":2,"time":1754219225339,"ns":"sqd:processor:mapping","msg":"-500000"}
processor-1  | {"level":2,"time":1754219227017,"ns":"sqd:processor:mapping","msg":"-400000"}
processor-1  | {"level":2,"time":1754219228574,"ns":"sqd:processor:mapping","msg":"-300000"}
processor-1  | {"level":2,"time":1754219230132,"ns":"sqd:processor:mapping","msg":"-200000"}
processor-1  | {"level":2,"time":1754219231835,"ns":"sqd:processor:mapping","msg":"-100000"}
processor-1  | {"level":2,"time":1754219234872,"ns":"sqd:processor:mapping","msg":"Saving v1 block history"}
processor-1  | {"level":2,"time":1754219249115,"ns":"sqd:processor:mapping","msg":"Loading genesis file"}
processor-1  | {"level":2,"time":1754219251107,"ns":"sqd:processor:mapping","msg":"Saving data from genesis file"}
processor-1  | {"level":2,"time":1754219253368,"ns":"sqd:processor:mapping","msg":"Process cert history"}
processor-1  | cert not present in genesis but supposed to be expired after: { blockNumber: 642131, issuer: 8761, receiver: 5014, type: 'Creation' }
processor-1  | cert not present in genesis but supposed to be expired after: { blockNumber: 642141, issuer: 3343, receiver: 5864, type: 'Creation' }
processor-1  | cert not present in genesis but supposed to be expired after: { blockNumber: 642155, issuer: 6075, receiver: 6170, type: 'Creation' }
processor-1  | cert not present in genesis but supposed to be expired after: { blockNumber: 642159, issuer: 8591, receiver: 7387, type: 'Creation' }
processor-1  | cert not present in genesis but supposed to be expired after: {
processor-1  |   blockNumber: 642160,
processor-1  |   issuer: 12266,
processor-1  |   receiver: 9214,
processor-1  |   type: 'Creation'
processor-1  | }
processor-1  | cert not present in genesis but supposed to be expired after: {
processor-1  |   blockNumber: 642162,
processor-1  |   issuer: 4451,
processor-1  |   receiver: 13123,
processor-1  |   type: 'Creation'
processor-1  | }

...

processor-1  | cert not present in genesis but supposed to be expired after: {
processor-1  |   blockNumber: 656757,
processor-1  |   issuer: 7542,
processor-1  |   receiver: 13465,
processor-1  |   type: 'Creation'
processor-1  | }
processor-1  | {"level":2,"time":1754219256710,"ns":"sqd:processor:mapping","msg":"Saving certification history"}
processor-1  | {"level":2,"time":1754219259327,"ns":"sqd:processor:mapping","msg":"Loading transaction history"}
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | {"level":2,"time":1754219291440,"ns":"sqd:processor:mapping","msg":"There are 89685 wallets from genesis and 46359 additional wallets from tx history"}
processor-1  | {"level":2,"time":1754219291440,"ns":"sqd:processor:mapping","msg":"   (total 136044)"}
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | invalid pubkey 11111111111111111111111111111111111111111111
processor-1  | {"level":2,"time":1754219321641,"ns":"sqd:processor:mapping","msg":"Saving v1 transaction history and comments"}
processor-1  | {"level":2,"time":1754219330587,"ns":"sqd:processor:mapping","msg":"Flushing changes to storage, this can take a while..."}
processor-1  | {"level":2,"time":1754219330587,"ns":"sqd:processor:mapping","msg":"(about ~5 minutes for all g1 history and genesis data)"}

Donc ça a l’air de marcher.

Et non, ce n’était pas ça, mais l’utilisation du genesis raw au lieu du genesis.

6 Likes