Para habilitar um modelo de Block.forgedBy
-> StakePool
e StakePool.blocksForged
-> [Block]
Veja https://github.com/input-output-hk/cardano-ledger-specs/pull/1637
Isso não duplica a tabela slot_leader?
Sim, você pode obter o ID do pool através da tabela slot_leaders. No entanto, seria muito conveniente se pudéssemos ter o ID do pool na tabela líder do slot, em vez de parte do vkey. Atualmente, converto o vkey em um ID de pool da seguinte maneira e o armazeno em uma nova coluna na tabela líder de slot:
vkey = "5820"+p['hash'][2:]
h = hashlib.blake2b(digest_size=28)
h.update(binascii.unhexlify(p['hash'][2:]))
poolid = h.hexdigest()
Isso me permite fazer uma junção e construir blocos por pool com bastante facilidade.
@disassembler Sim, seria. Atualizei o título para estender a tabela de líderes com uma chave para ingressar facilmente
@papacarp obrigado por adicionar sua solução alternativa. Espero que você possa refatorar longe disso, pois a modificação do esquema das tabelas gerenciadas por cardano-db-sync
é desaconselhada por @erikd
Outras tabelas que precisam do mesmo relacionamento:
Comentários muito úteis
Sim, você pode obter o ID do pool através da tabela slot_leaders. No entanto, seria muito conveniente se pudéssemos ter o ID do pool na tabela líder do slot, em vez de parte do vkey. Atualmente, converto o vkey em um ID de pool da seguinte maneira e o armazeno em uma nova coluna na tabela líder de slot:
Isso me permite fazer uma junção e construir blocos por pool com bastante facilidade.