Cardano-db-sync: cardano-cli dan db-sync menunjukkan jumlah hadiah yang berbeda dari zaman 243

Dibuat pada 21 Jan 2021  ·  7Komentar  ·  Sumber: input-output-hk/cardano-db-sync

Mulai dari 243 epoch untuk beberapa alamat hadiah cardano-cli dan db-sync menunjukkan jumlah hadiah yang berbeda. Misalnya stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0

cardano-cli

$ cardano-cli query stake-address-info --cardano-mode --mainnet --allegra-era --address stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0
[
    {
        "address": "stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0",
        "delegation": "pool14ku0z9rx9yx34zl00jtxtpyv6ehytfl8fewztavx7qvju7nrtr8",
        "rewardAccountBalance": 13258955846
    }
]

dan sinkronisasi db

# SELECT SUM(reward.amount)
# FROM stake_address
# LEFT JOIN reward ON reward.addr_id = stake_address.id
# WHERE stake_address.view = 'stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0';
     sum
-------------
 13222415370
(1 row)

Perbedaannya adalah 36.540476 , yang kira-kira sama dengan jumlah hadiah suara.

mainnet, cardano-cli 1.24.2, cardano-db-sync 7.1.0

Komentar yang paling membantu

Saya pikir sebagian dari masalahnya adalah bahwa tabel bernama reward wajar diharapkan berisi semua hadiah, tetapi sebenarnya tidak demikian. Tabel ini hanya berisi hadiah staking. Mungkin diinginkan untuk mengganti nama tabel ini untuk mencerminkan hal itu.

Ini menjadi lebih membingungkan karena tabel withdrawal berisi semua penarikan dari akun hadiah.

Semua 7 komentar

Sepertinya hadiah voting ini ada di tabel 'perbendaharaan' sekarang

# SELECT treasury.amount
# FROM stake_address
# LEFT JOIN treasury ON treasury.addr_id = stake_address.id
# WHERE stake_address.view = 'stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0';
  amount
----------
 36540476
(1 row)

Sepertinya hadiah voting ini ada di tabel 'perbendaharaan' sekarang

~Ups, sepertinya itu salah.~ Ternyata tidak.

Kami perlu mengklarifikasi (dalam skema dan/atau dokumen terkait) bahwa ada lebih dari satu tabel peristiwa yang memengaruhi akun hadiah saldo:

  • hadiah kumpulan per-epoch
  • penarikan akun
  • acara MIR khusus. Acara MIR khusus berasal dari sertifikat MIR, tetapi dijadwalkan untuk batas blok.

Jadi orang yang menulis kueri untuk melacak saldo total perlu mengambil gabungan acara.

Sertifikat MIR telah digunakan untuk berbagai tujuan tingkat tinggi (tetapi tujuannya tentu saja tidak diposting di rantai), termasuk: hadiah karena ITN, pembayaran perbendaharaan untuk proyek yang menang, pembayaran perbendaharaan untuk mengambil bagian dalam Catalyst.

Saya pikir sebagian dari masalahnya adalah bahwa tabel bernama reward wajar diharapkan berisi semua hadiah, tetapi sebenarnya tidak demikian. Tabel ini hanya berisi hadiah staking. Mungkin diinginkan untuk mengganti nama tabel ini untuk mencerminkan hal itu.

Ini menjadi lebih membingungkan karena tabel withdrawal berisi semua penarikan dari akun hadiah.

Saya telah mencoba untuk menemukan pendekatan paling rapi untuk ini yang dapat saya temukan.

Pertama kita buat tampilan:

# create view reward_payment_view as
    select addr_id, amount, 'treasury' as source
    from treasury union select addr_id, amount, 'reward_epoch_' || epoch_no as source from reward ; 

kita dapat menanyakan tampilan ini sebagai:

# select stake_address.view, reward_payment_view.amount, reward_payment_view.source
    from reward_payment_view inner join stake_address on reward_payment_view.addr_id = stake_address.id
    where stake_address.view = 'stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0' ; 
                            view                             |   amount   |      source      
-------------------------------------------------------------+------------+------------------
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |   36540476 | treasury
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  373554942 | reward_epoch_226
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  381550960 | reward_epoch_222
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  394285344 | reward_epoch_225
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  394335813 | reward_epoch_223
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  437204214 | reward_epoch_236
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  442787046 | reward_epoch_233
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  450575175 | reward_epoch_238
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  463125272 | reward_epoch_228
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  481675128 | reward_epoch_224
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  495852458 | reward_epoch_227
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  571559879 | reward_epoch_234
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  599359585 | reward_epoch_232
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  612352961 | reward_epoch_237
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 |  658610556 | reward_epoch_231
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 1319746538 | reward_epoch_219
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 1342842199 | reward_epoch_218
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 1374758087 | reward_epoch_216
 stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0 | 2428239213 | reward_epoch_220
(19 rows)

Apakah itu view yang harus saya kirimkan sebelumnya dalam db-sync ?

@dmitrystas Bisakah ini ditutup sekarang?

Saya pikir begitu, terima kasih

Apakah halaman ini membantu?
0 / 5 - 0 peringkat