Чтобы включить модель Block.forgedBy
-> StakePool
и StakePool.blocksForged
-> [Block]
См. https://github.com/input-output-hk/cardano-ledger-specs/pull/1637 .
Разве это не дублирует таблицу slot_leader?
Да, вы можете получить идентификатор пула через таблицу slot_leaders. Однако было бы очень удобно, если бы мы могли иметь идентификатор пула в таблице лидеров слотов, а не часть vkey. В настоящее время я конвертирую vkey в идентификатор пула следующим образом и сохраняю его в новом столбце в таблице лидеров слотов:
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
.
Самый полезный комментарий
Да, вы можете получить идентификатор пула через таблицу slot_leaders. Однако было бы очень удобно, если бы мы могли иметь идентификатор пула в таблице лидеров слотов, а не часть vkey. В настоящее время я конвертирую vkey в идентификатор пула следующим образом и сохраняю его в новом столбце в таблице лидеров слотов:
Это позволяет мне довольно легко выполнять соединение и создавать блоки для каждого пула.