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
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:
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
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.