Cardano-db-sync: cardano-cli 和 db-sync 显示了与 243 纪元不同的奖励数量

创建于 2021-01-21  ·  7评论  ·  资料来源: input-output-hk/cardano-db-sync

对于某些奖励地址,从 243 epoch 开始,cardano-cli 和 db-sync 显示不同数量的奖励。 例如,stake1u9z07jwyrlyh57dsvhmmdlt555vpvwdrky0ykf4le4k7zuc3pvuy0

卡尔达诺-cli

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

和数据库同步

# 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 ₳ ,约等于投票奖励金额。

主网、cardano-cli 1.24.2、cardano-db-sync 7.1.0

最有用的评论

我认为问题的一部分是名为reward可以合理地预期包含所有奖励,但实际上并非如此。 此表包含 Staking 奖励。 可能需要重命名此表以反映这一点。

这更令人困惑,因为withdrawal表包含所有从奖励账户中提取的款项。

所有7条评论

看起来这些投票奖励现在在“金库”表中

# 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 事件。 特殊的 MIR 事件来自 MIR 证书,但被安排在块边界上。

因此,人们编写查询来跟踪总余额将需要采取事件的联合。

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现在可以关闭了吗?

我觉得是,谢谢

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

reliablestaking picture reliablestaking  ·  31评论

kzka90 picture kzka90  ·  3评论

dmitrystas picture dmitrystas  ·  28评论

refi93 picture refi93  ·  15评论

johnalotoski picture johnalotoski  ·  15评论