بدءًا من حقبة 243 لبعض عناوين المكافآت تظهر cardano-cli و db-sync عددًا مختلفًا من المكافآت. على سبيل المثال share1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0
كاردانو- CLI
$ cardano-cli query stake-address-info --cardano-mode --mainnet --allegra-era --address stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0
[
{
"address": "stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0",
"delegation": "pool14ku0z9rx9yx34zl00jtxtpyv6ehytfl8fewztavx7qvju7nrtr8",
"rewardAccountBalance": 13258955846
}
]
و 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)
الفرق هو 36.540476 ₳ ، وهو ما يعادل تقريبًا مبلغ مكافأة التصويت.
mainnet ، كاردانو كلي 1.24.2 ، كاردانو ديسيبل مزامنة 7.1.0
يبدو أن مكافآت التصويت هذه موجودة في طاولة "الخزانة" الآن
# 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)
يبدو أن مكافآت التصويت هذه موجودة في طاولة "الخزانة" الآن
~ عفوًا ، يبدو أن هذا خطأ. ~ على ما يبدو لا.
نحتاج إلى توضيح بطريقة ما (في المخطط و / أو المستندات ذات الصلة) أن هناك أكثر من جدول واحد للأحداث التي تؤثر على حسابات مكافأة الرصيد:
لذا فإن الأشخاص الذين يكتبون استفسارات لتتبع الرصيد الإجمالي سيحتاجون إلى أخذ اتحاد الأحداث.
تم استخدام شهادات MIR لأغراض متنوعة عالية المستوى (ولكن لم يتم نشر الغرض بالطبع على السلسلة) ، بما في ذلك: المكافآت المستحقة لـ ITN ، ومدفوعات الخزانة للمشاريع الفائزة ، ومدفوعات الخزانة للمشاركة في Catalyst.
أعتقد أن جزءًا من المشكلة هو أن الجدول المسمى reward
يمكن توقعه بشكل معقول أن يحتوي على جميع المكافآت ، لكن هذا ليس هو الحال في الواقع. يحتوي هذا الجدول فقط على مكافآت Staking. قد يكون من المرغوب إعادة تسمية هذا الجدول ليعكس ذلك.
وقد أصبح هذا الأمر أكثر إرباكًا لأن جدول withdrawal
يحتوي على جميع عمليات السحب من حساب المكافآت.
لقد كنت أحاول التوصل إلى أفضل نهج يمكن أن أجده.
أولاً نقوم بإنشاء عرض:
# 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 ;
يمكننا الاستعلام عن هذا الرأي على النحو التالي:
# 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)
هل هذا view
يجب أن أشحنه محددًا مسبقًا بـ db-sync
؟
dmitrystas هل يمكن إغلاق هذا الآن؟
أعتقد ذلك ، شكرا
التعليق الأكثر فائدة
أعتقد أن جزءًا من المشكلة هو أن الجدول المسمى
reward
يمكن توقعه بشكل معقول أن يحتوي على جميع المكافآت ، لكن هذا ليس هو الحال في الواقع. يحتوي هذا الجدول فقط على مكافآت Staking. قد يكون من المرغوب إعادة تسمية هذا الجدول ليعكس ذلك.وقد أصبح هذا الأمر أكثر إرباكًا لأن جدول
withdrawal
يحتوي على جميع عمليات السحب من حساب المكافآت.