Um ein Modell von Block.forgedBy
-> StakePool
und StakePool.blocksForged
-> [Block]
zu aktivieren
Siehe https://github.com/input-output-hk/cardano-ledger-specs/pull/1637
Wird dadurch nicht die Tabelle slot_leader dupliziert?
Ja, Sie können die Pool-ID über die Tabelle slot_leaders abrufen. Es wäre jedoch sehr praktisch, wenn wir die Pool-ID in der Slot-Leader-Tabelle haben könnten und nicht als Teil des vkey. Ich konvertiere derzeit den vkey wie folgt in eine Pool-ID und speichere ihn in einer neuen Spalte in der Slot-Leader-Tabelle:
vkey = "5820"+p['hash'][2:]
h = hashlib.blake2b(digest_size=28)
h.update(binascii.unhexlify(p['hash'][2:]))
poolid = h.hexdigest()
Auf diese Weise kann ich ziemlich einfach einen Join durchführen und Blöcke pro Pool aufbauen.
@disassembler Ja, das würde es. Ich habe den Titel aktualisiert, um die Leaders-Tabelle um einen Schlüssel für den einfachen Beitritt zu erweitern
@papacarp Vielen Dank für das Hinzufügen Ihrer Problemumgehung. Hoffentlich können Sie davon umgestalten, da @erikd davon abrät , das Schema der von cardano-db-sync
verwalteten Tabellen zu ändern
Hilfreichster Kommentar
Ja, Sie können die Pool-ID über die Tabelle slot_leaders abrufen. Es wäre jedoch sehr praktisch, wenn wir die Pool-ID in der Slot-Leader-Tabelle haben könnten und nicht als Teil des vkey. Ich konvertiere derzeit den vkey wie folgt in eine Pool-ID und speichere ihn in einer neuen Spalte in der Slot-Leader-Tabelle:
Auf diese Weise kann ich ziemlich einfach einen Join durchführen und Blöcke pro Pool aufbauen.