Cardano-db-sync: Fügen Sie nullable slot_leader.pool_hash_id hinzu

Erstellt am 19. Juli 2020  ·  4Kommentare  ·  Quelle: input-output-hk/cardano-db-sync

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

enhancement

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:

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.

Alle 4 Kommentare

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

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen