Cardano-db-sync: 添加可为空的 slot_leader.pool_hash_id

创建于 2020-07-19  ·  4评论  ·  资料来源: input-output-hk/cardano-db-sync

启用Block.forgedBy -> StakePoolStakePool.blocksForged -> [Block]的模型
https://github.com/input-output-hk/cardano-ledger-specs/pull/1637

enhancement

最有用的评论

是的,您可以通过 slot_leaders 表获取池 ID。 但是,如果我们可以在槽领导表中而不是 vkey 的一部分中拥有池 id,那将非常方便。 我目前将 vkey 转换为池 id,如下所示,并将其存储在 slot leader 表的新列中:

vkey = "5820"+p['hash'][2:]
h = hashlib.blake2b(digest_size=28)
h.update(binascii.unhexlify(p['hash'][2:]))
poolid = h.hexdigest()

这使我可以很容易地进行连接并为每个池构建块。

所有4条评论

这不会重复 slot_leader 表吗?

是的,您可以通过 slot_leaders 表获取池 ID。 但是,如果我们可以在槽领导表中而不是 vkey 的一部分中拥有池 id,那将非常方便。 我目前将 vkey 转换为池 id,如下所示,并将其存储在 slot leader 表的新列中:

vkey = "5820"+p['hash'][2:]
h = hashlib.blake2b(digest_size=28)
h.update(binascii.unhexlify(p['hash'][2:]))
poolid = h.hexdigest()

这使我可以很容易地进行连接并为每个池构建块。

@disassembler是的,它会的。 我已经更新了标题以使用密钥扩展领导者表,以便轻松加入

@papacarp感谢您添加解决方法。 希望您可以摆脱这种重构,因为@erikd建议不要修改由cardano-db-sync管理的表的架构

此页面是否有帮助?
0 / 5 - 0 等级