Pour activer un modèle de Block.forgedBy
-> StakePool
et StakePool.blocksForged
-> [Block]
Voir https://github.com/input-output-hk/cardano-ledger-specs/pull/1637
Cela ne duplique-t-il pas la table slot_leader ?
Oui, vous pouvez accéder à l'identifiant du pool via la table slot_leaders. Cependant, ce serait très pratique si nous pouvions avoir l'identifiant du pool dans la table des leaders des emplacements plutôt qu'une partie de la vkey. Je convertis actuellement le vkey en un identifiant de pool comme suit et le stocke dans une nouvelle colonne de la table des leaders des emplacements :
vkey = "5820"+p['hash'][2:]
h = hashlib.blake2b(digest_size=28)
h.update(binascii.unhexlify(p['hash'][2:]))
poolid = h.hexdigest()
Cela me permet de faire une jointure et de créer assez facilement des blocs par pool.
@disassembleur Oui, ce serait le cas. J'ai mis à jour le titre pour étendre la table des leaders avec une clé pour rejoindre facilement
@papacarp merci d'avoir ajouté votre solution de contournement. J'espère que vous pourrez refactoriser loin de cela, car la modification du schéma des tables gérées par cardano-db-sync
est déconseillée par @erikd
Commentaire le plus utile
Oui, vous pouvez accéder à l'identifiant du pool via la table slot_leaders. Cependant, ce serait très pratique si nous pouvions avoir l'identifiant du pool dans la table des leaders des emplacements plutôt qu'une partie de la vkey. Je convertis actuellement le vkey en un identifiant de pool comme suit et le stocke dans une nouvelle colonne de la table des leaders des emplacements :
Cela me permet de faire une jointure et de créer assez facilement des blocs par pool.