Cardano-db-sync: ๋ณด์ƒ์€ ๋ฏธ๋“ฑ๋ก ์ง€๋ถ„ ์ฃผ์†Œ๋กœ ๋ถ„๋ฐฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2020๋…„ 12์›” 02์ผ  ยท  28์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: input-output-hk/cardano-db-sync

๋ฉ”์ธ ๋„ท, db-sync 6.0.1, ์ง€๋ถ„ ์ฃผ์†Œ stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86

๋“ฑ๋ก ๋‚ด์—ญ

SELECT stake_registration.addr_id, block.epoch_no, block.time
FROM stake_address
LEFT JOIN stake_registration ON stake_registration.addr_id = stake_address.id
LEFT JOIN tx ON tx.id = stake_registration.tx_id
LEFT JOIN block ON block.id = tx.block_id 
WHERE stake_address.view = 'stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86';

 addr_id | epoch_no |        time
---------+----------+---------------------
   38278 |      208 | 2020-08-01 07:45:51
   38278 |      233 | 2020-12-01 22:31:13
(2 rows)

๋“ฑ๋ก ์ทจ์†Œ ๋‚ด์—ญ

SELECT stake_deregistration.addr_id, block.epoch_no, block.time
FROM stake_address
LEFT JOIN stake_deregistration ON stake_deregistration.addr_id = stake_address.id
LEFT JOIN tx ON tx.id = stake_deregistration.tx_id
LEFT JOIN block ON block.id = tx.block_id 
WHERE stake_address.view = 'stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86';

 addr_id | epoch_no |        time
---------+----------+---------------------
   38278 |      232 | 2020-12-01 18:25:59
(1 row)

๋ณด์‹œ๋‹ค์‹œํ”ผ, ์ฃผ์†Œ๋Š” 232 ์—ํฌํฌ๊ฐ€ ๋๋‚  ๋•Œ ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ ์—ํฌํฌ 231์— ๋Œ€ํ•œ ๋ณด์ƒ์€์ด ์ฃผ์†Œ๋กœ ๋ถ„๋ฐฐ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

SELECT reward.*, block.epoch_no AS block_epoch_no, block.time
FROM reward
LEFT JOIN block ON block.id = reward.block_id 
WHERE reward.addr_id = 38278 AND reward.epoch_no = 231;

   id    | addr_id |  amount   | epoch_no | pool_id | block_id | block_epoch_no |        time
---------+---------+-----------+----------+---------+----------+----------------+---------------------
 1041508 |   38278 | 192969560 |      231 |     144 |  5023676 |            233 | 2020-12-01 21:44:51
(1 row)
bug priority high

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

PR # 469์—์„œ db-sync ๋ฒ„์ „ ์‚ฌ์šฉ. ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde ๋Œ€ํ•œ ๋ณด์ƒ์ด orphaned_rewards ํ…Œ์ด๋ธ”์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฝ์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw, orphaned_reward.epoch_no, orphaned_reward.amount
         from orphaned_reward inner join stake_address on stake_address.id = orphaned_reward.addr_id
         where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde'; 
                           hash_raw                           | epoch_no |  amount   
--------------------------------------------------------------+----------+-----------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |      231 | 192969560

๋˜ํ•œ ๋ณด์ƒ ํ…Œ์ด๋ธ”์—๋„ ์—†์Šต๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw as "stakeAddress", "totalReward".* from stake_address
    left outer join (SELECT addr_id, amount, epoch_no  FROM reward) as "totalReward"
     on stake_address.id = "totalReward".addr_id
     where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
                         stakeAddress                         | addr_id |  amount   | epoch_no 
--------------------------------------------------------------+---------+-----------+----------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162720747 |      211
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162485461 |      212
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167344099 |      213
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167043060 |      214
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 200722225 |      215
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 191413549 |      216
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 143111843 |      217
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147836812 |      218
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 154740829 |      219
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145433327 |      220
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165631299 |      221
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151825651 |      222
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 169141624 |      223
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165184716 |      224
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 148899668 |      225
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 157838234 |      226
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 223252352 |      227
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147889017 |      228
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151858721 |      229
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165782849 |      230
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 135711434 |      232
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145964545 |      233
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    100702 |      235
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    102078 |      236
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |        65 |      238
(25 rows)

๋ชจ๋“  28 ๋Œ“๊ธ€

: ํŽ˜์ด์Šค ํŒœ :

์ž ์‹œ ๋™์•ˆ ์ด๊ฒƒ์„๋ณด๊ณ  ๊ฐ‘์ž๊ธฐ ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๊ฐ€ @dmitrystas ๊ฐ€ ๋ณด์—ฌ์ค€ ๊ฒƒ์„ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ๊นจ๋‹ฌ์•˜์Šต๋‹ˆ๋‹ค. tx.id = stake_registration.tx_id ์— ๊ฐ€์ž… ํ•œ ๋‹ค์Œ ๊ฑฐ๋ž˜์—์„œ block.epoch_no ๋ฅผ ๊ฐ€์ ธ ์˜ค๋ฉด ์Šคํ…Œ์ดํฌ ๋“ฑ๋ก / ํ•ด์ฒด๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์‹œ๋Œ€๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์‹ค์ œ๋กœ ํ™œ์„ฑํ™” ๋œ ์‹œ๊ธฐ๋Š” ์–ป์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์Šคํ…Œ์ด ํ‚น๊ณผ ๊ด€๋ จ๋œ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์˜ ๊ฒฝ์šฐ N ์—ํฌํฌ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋™์ž‘ (๋“ฑ๋ก, ์Šคํ…Œ์ด ํ‚น ๊ธˆ์•ก ์ฆ๊ฐ€ ๋“ฑ)์ด N + 2 ํ™œ์„ฑํ™” ๋ฉ๋‹ˆ๋‹ค.

์ฆ‰, ์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋Š” ์‹ค์ œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

cexplorer=# SELECT stake_registration.addr_id, block.epoch_no + 2 as epoch_no, block.time FROM stake_address 
              INNER JOIN stake_registration ON stake_registration.addr_id = stake_address.id 
              INNER JOIN tx ON tx.id = stake_registration.tx_id INNER JOIN block ON block.id = tx.block_id
              WHERE stake_address.view = 'stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86';
addr_id | epoch_no |        time         
---------+----------+---------------------
   38266 |      210 | 2020-08-01 07:45:51
   38266 |      235 | 2020-12-01 22:31:13

๊ทธ๋ฆฌ๊ณ  ๋‘ ๋ฒˆ์งธ :

cexplorer=# SELECT stake_deregistration.addr_id, block.epoch_no + 2 as epoch_no, block.time FROM stake_address
              INNER JOIN stake_deregistration ON stake_deregistration.addr_id = stake_address.id
              INNER JOIN tx ON tx.id = stake_deregistration.tx_id INNER JOIN block ON block.id = tx.block_id
              WHERE stake_address.view = 'stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86';
 addr_id | epoch_no |        time         
---------+----------+---------------------
   38266 |      234 | 2020-12-01 18:25:59

@dmitrystas ๊ทธ ๋ชจ๋“  ๊ฒƒ์ด active_epoch_no ๋ฐ›๋Š” ์—ด stake_registration ๋ฐ stake_deregistration I์ด (๊ฐ€)์ด ๊ฐ™์€ ํ…Œ์ด๋ธ”์„ delegation ํ…Œ์ด๋ธ”์„?

@erikd ์•ˆ๋…•ํ•˜์„ธ์š”. ๊ทธ๊ฒƒ์€ ์›๋ž˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค https://github.com/Emurgo/yoroi-frontend/issues/1832#issue -754776885
์•„๋งˆ๋„ ์œ ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

Yoroi & Adalite๋Š” ์ž˜๋ชป๋œ 192 FAKE ADA ๋ณด์ƒ์„ ๋ณด์—ฌ ์ฃผ์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” 0์ž…๋‹ˆ๋‹ค. ๋งˆ์ง€๋ง‰ 2 ๊ฐœ์˜ ๋ณด์ƒ์€ adawallet.io๋ฅผ ํ†ตํ•ด ์ธ์ถœ๋ฉ๋‹ˆ๋‹ค (db-sync๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ).
image

๋‹จ๊ณ„๋ณ„ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช… :
1) ์—ํฌํฌ 232 . ๋‚˜๋Š” ๋ณด์ƒ์„ ์ฒ ํšŒํ•˜๊ณ  ๋™์‹œ์— ์Šคํ…Œ์ด ํ‚น ํ‚ค ๋ฅผ
2) ์—ํฌํฌ 233 . ํ‚ค๊ฐ€ ๋“ฑ๋ก ๋œ ๊ฒฝ์šฐ ๋จผ์ € ๋‚จ์€ ๋ณด์ƒ์„ ๋ฐ›์•„์•ผํ•˜๋Š”๋ฐ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ Yoroi๊ฐ€ 192ADA๋ฅผ ๋ฐ›์•˜๋‹ค๊ณ  ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ถœ๊ธˆ์„ ์‹œ๋„ํ•˜๋ฉด Yoroi๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. db-sync show reward 0ADA๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์ง€๊ฐ‘
3) ์—ํฌํฌ 233 . ๋‹ค์‹œ ๊ฐ™์€ ํ’€์— ์œ„์ž„ํ•ฉ๋‹ˆ๋‹ค. ํ‚ค๊ฐ€ ๋“ฑ๋ก๋˜์—ˆ์Šต๋‹ˆ๋‹ค . ์ง„์ •ํ•œ ๋ณด์ƒ 0. Yoroi ๋ณด์ƒ 192.
4) ์—ํฌํฌ 234 . ๋‚จ์€ ๋‘ ๋ฒˆ์งธ ๋ณด์ƒ 135ADA๋ฅผ๋ฐ›์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋ณด์ƒ ์ž”์•ก์€ 135ADA์ž…๋‹ˆ๋‹ค.
Yoroi๋Š” 327ADA (192 + 135)๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์š”๋กœ์ด๋ฅผ ํ†ตํ•ด ์–ด๋–ค ๋ณด์ƒ๋„ ์ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜๋ฅผ ๋ณด๋‚ด๋Š” ๋™์•ˆ ์„œ๋ฒ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
5) ์—ํฌํฌ 235 . ๋งˆ์ง€๋ง‰ ์„ธ ๋ฒˆ์งธ ๋ณด์ƒ ์ธ 145ADA๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ ๋ณด์ƒ ์ž”์•ก์€ 280ADA (135 + 145)์ž…๋‹ˆ๋‹ค.
Yoroi๋Š” 472ADA๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. (192 + 135 + 145) Yoroi๋ฅผ ํ†ตํ•ด ์–ด๋–ค ๋ณด์ƒ๋„ ์ธ์ถœ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜์„ ๋ณด๋‚ด๋Š” ๋™์•ˆ ์„œ๋ฒ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค.
6) ์—ํฌํฌ 235 . db-syns๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” adawallet.io๋ฅผ ํ†ตํ•ด ์›ํ™œํ•˜๊ฒŒ 280ADA๋ฅผ ์ธ์ถœํ•˜๊ณ  ์ •ํ™•ํ•œ ๋ณด์ƒ ์ž”์•ก์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค 280ADA
7) 280ADA์˜ ์‹ค์ œ ๋ณด์ƒ์ด ์ฒ ํšŒ ๋œ ํ›„์—๋„ (0ADA๋กœ ๋‚จ์•„ ์žˆ์Œ) Yoroi๋Š” ์—ฌ์ „ํžˆ ๋ณด์ƒ ์ž”์•ก 192ADA๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

Yoroi๋Š” ์—ฌ์ „ํžˆ ๋ณด์ƒ ์ž”์•ก 192ADA๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

์ ์–ด๋„ ๋‘ ๊ฐ€์ง€ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • db-sync ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
  • ์š”๋กœ์ด ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

๋‚˜๋Š” db-sync ๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, Yoroi์˜ ์ •๋ณด๊ฐ€ ์•„๋‹Œ SQL ์ฟผ๋ฆฌ๋กœ ๋ฌธ์ œ๊ฐ€ ํ‘œ์‹œ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86 ๊ฐ€ ์—ฌ๊ธฐ์„œ ๊ด€์‹ฌ์˜ ๋Œ€์ƒ์ด๋ฉ๋‹ˆ๊นŒ?

@erikd yes ์Šคํ…Œ์ดํฌ ํ‚ค๋Š” ์Šคํ…Œ์ดํฌ์ž…๋‹ˆ๋‹ค.
Yoroi๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Adalite.io ๋ฐ adastat.net์—๋„ ํ•ด๋‹น ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
Theese์—๋Š” ํ•ด๋‹น ๋ฒ„๊ทธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค : cardanoscan.io ๋ฐ adawallet.io

์ผ๋ถ€ ์˜จ๋ผ์ธ ์ง€๊ฐ‘์—๋Š”์ด ๋ฒ„๊ทธ๊ฐ€ ์žˆ๊ณ  ๋‹ค๋ฅธ ์ง€๊ฐ‘์—๋Š” ๋ฒ„๊ทธ๊ฐ€์—†๊ณ ์ด ๋ชจ๋“  ๊ฒƒ์ด db-sync ์— ์˜์กดํ•œ๋‹ค๋ฉด ๋ฌธ์ œ๋Š” db-sync ์—์žˆ์„ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋‚ฎ์Šต๋‹ˆ๋‹ค.

@erikd ํ•˜์ง€๋งŒ adawallet.io๋Š” db-sync๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์˜ฌ๋ฐ”๋ฅธ ๋ณด์ƒ ์ž”์•ก (0ADA)์„ ๋ณด์—ฌ ์ฃผ๋ฏ€๋กœ ๋งˆ์ง€๋ง‰ ๋ณด์ƒ์„ ์ธ์ถœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ์ด๊ฒƒ์€ ์ด๊ฒƒ์ด db-sync ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹ˆ๋ผ Yoroi ๋ฒ„๊ทธ์ž„์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

์ถœ์• ๊ตฝ๊ธฐ์—์„œ๋„์ด ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ํ™•์‹คํžˆ cardano-db-sync ๋ฒ„๊ทธ์ด๋ฉฐ Yoroi๋ฟ๋งŒ ์•„๋‹ˆ๋ผ cardano-db-sync์˜ ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ฐฉ์‹์„ ๊ณ ๋ คํ•  ๋•Œ Yoroi ๋ฒ„๊ทธ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. cardanoscan๊ณผ adawallet์€ ๋ชจ๋‘ cardano-db-sync๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์˜ํ–ฅ์„๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

cardano-db-sync๊ฐ€๋ณด๊ณ ํ•˜๋Š” ๋‚ด์šฉ

@IlyaSofronov์—์„œ ์ œ๊ณต ํ•œ ์ฃผ์†Œ์— ๋Œ€ํ•œ ๋ณด์ƒ ๋‚ด์—ญ์„ ์ œ๊ณตํ•˜๋Š” SQL ์ฟผ๋ฆฌ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

select stake_address.hash_raw as "stakeAddress"
      , "totalReward".*

from stake_address

left outer join (
  SELECT addr_id, amount, epoch_no
  FROM reward
) as "totalReward" on stake_address.id = "totalReward".addr_id

where encode(stake_address.hash_raw, 'hex') = 'e1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde'

๋‹ค์Œ ๊ฒฐ๊ณผ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค

 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162720747 |      211
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162485461 |      212
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167344099 |      213
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167043060 |      214
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 200722225 |      215
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 191413549 |      216
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 143111843 |      217
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147836812 |      218
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 154740829 |      219
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145433327 |      220
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165631299 |      221
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151825651 |      222
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 169141624 |      223
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165184716 |      224
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 148899668 |      225
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 157838234 |      226
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 223252352 |      227
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147889017 |      228
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151858721 |      229
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165782849 |      230
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 192969560 |      231
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 135711434 |      232
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145964545 |      233
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    100702 |      235
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    102078 |      236

์ฐธ๊ณ  :์ด ํ–‰์˜ ํ•ฉ๊ณ„๋Š” 3,765,004,402์ž…๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ์˜ ํ˜„์žฌ (์ž˜๋ชป๋œ) ์ƒํƒœ

{
    "remainingAmount": "193172340",
    "rewards": "3765004402",
    "withdrawals": "3571832062",
}

๋ฐฑ์—”๋“œ๊ฐ€ rewards ๊ฐ’์— ๋Œ€ํ•œ db-sync ํ–‰์˜ ํ•ฉ๊ณ„๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (์ด ๋ฌธ์ œ๊ฐ€ ๋‚˜์ค‘์— ๋ฐœ์ƒํ•œ ์ด์œ ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค).

์ด ๋ฒ„๊ทธ์˜ ์˜ํ–ฅ์„๋ฐ›์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ ์žˆ๋Š” cardanoscan์˜ ๊ฐ’์„ ํ•ฉ์‚ฐ ํ•˜์—ฌ withdrawals ๊ธˆ์•ก์ด ์ •ํ™•ํ•œ์ง€ ํ™•์ธํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

remainingAmount ์€ (๋Š”) rewards - withdrawals

์ง€๊ฐ‘ ๋“ฑ๋ก ๋‚ด์—ญ

์ด ์Šคํ…Œ์ด ํ‚น ํ‚ค์˜ ๋‚ด์—ญ์„ ๋ณด๋ฉด ๋‹ค์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Epoch 232์— ๋“ฑ๋ก ์ทจ์†Œ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์—ํฌํฌ 233์— ์žฌ ๋“ฑ๋ก ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์นด๋ฅด ๋‹ค๋…ธ ๋…ธ๋“œ์˜ ํ˜„์žฌ ์ƒํƒœ

๋‚ด cardano-node ์ธ์Šคํ„ด์Šค์— ๋”ฐ๋ฅด๋ฉด ์ด๊ฒƒ์€ ์Šคํ…Œ์ด ํ‚น ์ฃผ์†Œ ๋‚ด์˜ ํ˜„์žฌ ๊ฐ’์ž…๋‹ˆ๋‹ค.

[
    {
        "address": "stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86",
        "delegation": "pool1kkfkdces5mdcyc9dn2hgg3463jggjvw3h89nejjarkz25uavaqu",
        "rewardAccountBalance": 202780
    }
]

๋”ฐ๋ผ์„œ ๋…ธ๋“œ์— ๋”ฐ๋ผ ์ง€๊ฐ‘์˜ ์ž”์•ก์ด epoch 235 + epoch 236 (100702 + 102078 = 202780)์ž„์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ๋ฌด์—‡์ด ๋ฌธ์ œ์ž…๋‹ˆ๊นŒ?

cardanoscan ์„ ๋ณด๋ฉด ์ง€๊ฐ‘์˜ ์ „์ฒด ์ถœ๊ธˆ ๋‚ด์—ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ธ์ถœ์— ํ•ด๋‹นํ•˜๋Š” ๋‚ด์šฉ์„ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

| Epoch ์ฒ ํšŒ | ์ธ์ถœ ๊ธˆ์•ก | db-sync epoch ํ–‰ ํฌํ•จ |
| ----------------- | ------------------ | ------------ ----------------- |
| 228 | 2601.373144 | 211, 212, ..., 225, 226 |
| 230 | 371.141369 | 227, 228 |
| 232 | 317.641570 | 229, 230 |
| 234 | 135.711434 | 232 |
| 235 | 145.964545 | 233 |

๊ทธ๋Ÿฌ๋‚˜ cardano-db-sync (192969560)์˜ epoch 231์€ ์ด๋“ค ์ค‘ ์–ด๋Š ๊ฒƒ๋„ ํฌํ•จ๋˜์ง€ ์•Š์Œ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!

๋ฌผ๋ก  ๋ฐฑ์—”๋“œ ์‘๋‹ต "remainingAmount": "193172340", ๋ฅผ๋ณด๊ณ  ์ž˜๋ชป ํฌํ•จ ๋œ epoch 231์„ ์ œ๊ฑฐํ•˜๋ฉด 193172340 - 192969560 = 202780 ์ด๋Š” ํ’€ ๋…ธ๋“œ์—์„œ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฐ๊ณผ์ž…๋‹ˆ๋‹ค!

๊ฒฐ๋ก 

๋‚ด ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด cardano-db-sync๊ฐ€ ๋ณด์ƒ ๋‚ด์—ญ ๊ฒฐ๊ณผ์— 231 ํ–‰์„ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ ์ฟผ๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์—ˆ๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ์˜ ํ˜„์žฌ (์ž˜๋ชป๋œ) ์ƒํƒœ

๋‹จ์ผ ์†Œ์Šค์—์„œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ์–ป๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.

cexplorer=# select sum (amount) from stake_address
        left outer join (SELECT addr_id, amount, epoch_no 
        FROM reward) as "totalReward" on stake_address.id = "totalReward".addr_id
        where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
    sum     
------------
 3765004402

๊ณผ:

cexplorer=# select sum (amount) from withdrawal where addr_id = 38266;
    sum     
------------
 3571832062

๋‘˜ ๋‹ค ๋‹น์‹ ์˜ ์ˆ˜์น˜์™€ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ 3571832062 + 192969560 + 202780 - 3765004402 ์—ฌ๊ธฐ์„œ 3571832062 ๋Š” ์ธ์ถœ ํ•ฉ๊ณ„์ด๊ณ  3765004402 ๋Š” ๋ณด์ƒ ํ•ฉ๊ณ„์ž…๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. 202780 ๋Š” ์ธ์ถœ ํ›„ ๋ณด์ƒ ์ž”์•ก์— ๋Œ€ํ•œ ์ˆ˜์น˜์ด๊ณ  192969560 ๋Š” 231 ์—ํฌํฌ์— ๋Œ€ํ•œ ๋ณด์ƒ์ž…๋‹ˆ๋‹ค.

cexplorer=# select stake_address.view as "stakeAddress", "totalReward".* from stake_address
     left outer join (SELECT addr_id, amount, epoch_no  FROM reward) as "totalReward"
     on stake_address.id = "totalReward".addr_id
     where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde'
     and epoch_no = 231 ;
                        stakeAddress                         | addr_id |  amount   | epoch_no 
-------------------------------------------------------------+---------+-----------+----------
 stake1u838ke609j09ezrgj5nwnplvc7g3cq62pa2n9z0x6w3clhsagtp86 |   38266 | 192969560 |      231

๊ทธ๋ ‡๋‹ค๋ฉด ๊ทธ ๋ณด์ƒ์€ 231 ( db-sync ๋‹จ์ˆœํžˆ ์›์žฅ ์ƒํƒœ์—์„œ ๊บผ๋‚ด ์ถ”๊ฐ€ ์ฒ˜๋ฆฌ์—†์ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž… ํ•จ)๊ฐ€ ๋งž์Šต๋‹ˆ๊นŒ? ํ•ด๋‹น ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์Šคํ…Œ์ดํฌ ๋“ฑ๋ก ๋‚ด์—ญ์„ ์‚ดํŽด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw, stake_registration.tx_id, block.epoch_no
    as tx_epoch_no, (block.epoch_no + 2) as active_epoch_no
    from stake_registration inner join stake_address on stake_registration.addr_id = stake_address.id 
    inner join tx on tx.id = stake_registration.tx_id inner join block on tx.block_id = block.id
    where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
                           hash_raw                           |  tx_id  | tx_epoch_no | active_epoch_no 
--------------------------------------------------------------+---------+-------------+-----------------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde | 2449294 |         208 |             210
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde | 3103705 |         233 |             235
(2 rows)

cexplorer=# select stake_address.hash_raw, stake_deregistration.tx_id, block.epoch_no
    as tx_epoch_no, (block.epoch_no + 2) as active_epoch_no from stake_deregistration
    inner join stake_address on stake_deregistration.addr_id = stake_address.id
    inner join tx on tx.id = stake_deregistration.tx_id inner join block
    on tx.block_id = block.id
    where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
                           hash_raw                           |  tx_id  | tx_epoch_no | active_epoch_no 
--------------------------------------------------------------+---------+-------------+-----------------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde | 3101670 |         232 |             234

๋“ฑ๋ก ๋ฐ ๋“ฑ๋ก ์ทจ์†Œ ๋ชจ๋‘์— ๋Œ€ํ•ด tx_id (๋“ฑ๋ก / ํ•ด์ œ๋ฅผ ํฌํ•จํ•˜๋Š” tx์˜ ID), tx_epoch_no (tx๊ฐ€ ํฌํ•จ ๋œ epoch) ๋ฐ active_epoch_no (๋“ฑ๋ก / ํ•ด์ฒด๊ฐ€ ํ™œ์„ฑํ™”๋˜๋Š” ์‹œ๋Œ€).

ํ™œ์„ฑํ™” ๋œ ์—ํฌํฌ ๋ฒˆํ˜ธ๋ฅผ ๋ณด๋ฉด ์Šคํ…Œ์ดํฌ ๋“ฑ๋ก์ด ์—ํฌํฌ [210 .. 233] ๋ฐ [235 ..] ์— ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€์ด ์ฃผ์†Œ์— ๋Œ€ํ•œ ์‹ค์ œ ๋ณด์ƒ๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw as "stakeAddress", "totalReward".* from stake_address
    left outer join (SELECT addr_id, amount, epoch_no  FROM reward) as "totalReward"
     on stake_address.id = "totalReward".addr_id
     where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
                         stakeAddress                         | addr_id |  amount   | epoch_no 
--------------------------------------------------------------+---------+-----------+----------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162720747 |      211
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162485461 |      212
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167344099 |      213
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167043060 |      214
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 200722225 |      215
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 191413549 |      216
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 143111843 |      217
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147836812 |      218
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 154740829 |      219
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145433327 |      220
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165631299 |      221
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151825651 |      222
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 169141624 |      223
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165184716 |      224
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 148899668 |      225
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 157838234 |      226
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 223252352 |      227
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147889017 |      228
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151858721 |      229
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165782849 |      230
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 192969560 |      231
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 135711434 |      232
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145964545 |      233
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    100702 |      235
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    102078 |      236
(25 rows)

์ฆ‰, 234 ์ œ์™ธํ•œ ๋ชจ๋“  ์„ธ๋Œ€์— ๋Œ€ํ•œ ๋ณด์ƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ ๋‚˜๋Š” ๋‹น์‹ ์˜ ๊ฒฐ๋ก ์„ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

๋‚ด ์กฐ์‚ฌ์— ๋”ฐ๋ฅด๋ฉด cardano-db-sync๊ฐ€ ๋ณด์ƒ ๋‚ด์—ญ ๊ฒฐ๊ณผ์— 231 ํ–‰์„ ํฌํ•จํ•ด์„œ๋Š” ์•ˆ๋˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ•ด๋‹น ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ์—๋Š” 231 ์—ํฌํฌ์— ๋Œ€ํ•œ ๋ณด์ƒ์ด ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค .

๋˜ํ•œ ๊ท€ํ•˜์˜ ์˜๊ฒฌ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ์˜ ํ˜„์žฌ (์ž˜๋ชป๋œ) ์ƒํƒœ
{
"remainingAmount": "193172340",
"๋ณด์ƒ": "3765004402",
"์ถœ๊ธˆ": "3571832062",
}

์‹ค์ œ๋กœ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์ƒ ๊ฐ€์น˜์™€ ์ธ์ถœ ๊ฐ€์น˜์˜ ์ฐจ์ด๋Š” ํ˜„์žฌ ์ธ์ถœ๋˜์ง€ ์•Š์€ ๋ณด์ƒ ์ž”์•ก์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์ƒ ๊ฐ€์น˜์™€ ์ธ์ถœ ๊ฐ€์น˜์˜ ์ฐจ์ด๋Š” ํ˜„์žฌ ์ธ์ถœ๋˜์ง€ ์•Š์€ ๋ณด์ƒ ์ž”์•ก์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ๋…ธ๋“œ๊ฐ€ ์ •์ƒ์œผ๋กœ ๋Œ์•„ ์•Œ๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ฒฝ์šฐ๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค 202780 ๊ณ„์ •์— ๋Œ€ํ•œ ๋ณด์ƒ์˜ ๊ท ํ˜• ๋“ฑ์ด ์•„๋‹Œ 193172340

์ฆ‰, 234๋ฅผ ์ œ์™ธํ•œ ๋ชจ๋“  ์‹œ๋Œ€์— ๋Œ€ํ•œ ๋ณด์ƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‘ ์‹œ๋Œ€๊ฐ€ ๋ˆ„๋ฝ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  1. ์ง€๋ถ„ ํ‚ค๊ฐ€ ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์ƒ์ด ์˜ˆ๋น„๊ธˆ์œผ๋กœ ๋‹ค์‹œ ์ „์†ก ๋œ ์‹œ๋Œ€
  2. ํ‚ค ๋“ฑ๋ก ์ทจ์†Œ ์‹œ์ ๊ณผ ์žฌ ๋“ฑ๋ก ์‹œ์  ์‚ฌ์ด์˜ 1 ์„ธ๋Œ€ ๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์‹œ๋Œ€

๋ˆ„๋ฝ ๋œ 234 epoch๋Š” (2)์— ํ•ด๋‹นํ•˜๊ณ  231์€ (1)์— ํ•ด๋‹นํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. (1)

๋‘ ์‹œ๋Œ€๊ฐ€ ๋ˆ„๋ฝ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

์™œ? ์ด ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ์— ๋Œ€ํ•œ ์šด์˜์— ๋”ฐ๋ฅด๋ฉด :

| ์šด์˜ | tx_epoch_no | active_epoch_no |
| ------------------- | --------------------- | ------- --------- |
| ๋“ฑ๋ก | 208 | 210 |
| deregistraion | 232 | 234 |
| ๋“ฑ๋ก | 233 | 235 |

๋‹จ์ผ ์—ํฌํฌ ( 234 )์— ๋Œ€ํ•ด์„œ๋งŒ ๋“ฑ๋ก์ด ์ทจ์†Œ๋˜์—ˆ์œผ๋ฉฐ ํ•ด๋‹น ์—ํฌํฌ์— ๋Œ€ํ•œ ๋ณด์ƒ์„๋ฐ›์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

๋ณด์ƒ์ด์—†๋Š” ๋‘ ์‹œ๋Œ€๊ฐ€์žˆ๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๋‚˜๋Š” ๋‹น์‹ ์ด ์–ธ๊ธ‰ ํ•œ ๋‘ ๊ฐ€์ง€ ์‚ฌ๋ก€๊ฐ€ ์‹ค์ œ๋กœ ๋™์ผํ•œ ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜๋ฏ€๋กœ ๋ณด์ƒ ์—†์ด๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์‹œ๋Œ€ ๋งŒ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

Slack์˜ @SebastienGllmt ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋งํ–ˆ์Šต๋‹ˆ๋‹ค.

๋“ฑ๋ก ์ทจ์†Œ๋Š” 2 epoch๊ฐ€ ์•„๋‹ˆ๋ผ ์ฆ‰์‹œ ์ˆ˜ํ–‰๋œ๋‹ค๋Š” ์ ์—์„œ ํŠน๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

๋“ฑ๋ก ์ทจ์†Œ๊ฐ€ ์ฆ‰์‹œ ์ง„ํ–‰๋˜๋ฉด tx_epoch_no == 232 ํ–ˆ์œผ๋ฏ€๋กœ 231์— ๋Œ€ํ•œ ๋ณด์ƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ epochs [231..234] ๋Œ€ํ•œ ๋ณด์ƒ์ด ๋ชจ๋‘ ์†์‹ค๋ฉ๋‹ˆ๋‹ค.

@JaredCorduan ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

@SebastienGllmt ์˜ ์„ค๋ช…์€ ์›์žฅ ๊ทœ์น™๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ…Œ์ดํฌ ์ž๊ฒฉ ์ฆ๋ช…์ด ๋“ฑ๋ก ์ทจ์†Œ๋˜๋Š” ๊ฒƒ์€ ๋‹ค์†Œ ์ฒ ํ•™์  ์ธ "์–ธ์ œ"์ด์ง€๋งŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก ์ทจ์†Œ๋Š” ์ฆ‰์‹œ ์ด๋ฃจ์–ด ์ง€์ง€๋งŒ ๋ณด์ƒ์€ ์ง€์—ฐ๋ฉ๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช…์ด e ์—ํฌํฌ์—์„œ ๋“ฑ๋ก ์ทจ์†Œ๋˜๋ฉด e / e+1 ๊ฒฝ๊ณ„ ( e-2 / e -1 ๊ฒฝ๊ณ„์—์„œ ์ฐ์€ ์Šค๋ƒ… ์ƒท์—์„œ ๋ฐœ์ƒ)์—์„œ ๋ณด์ƒ์„ ๋ฐ›๊ฒŒ๋˜๋ฉฐ ๋˜ํ•œ ์— ๋Œ€ํ•œ ๋ณด์ƒ์„๋ฐ›์„ e+1 / e+2 ๊ฒฝ๊ณ„ (์— ์ฐ์€ ์Šค๋ƒ… ์ƒท์—์„œ ๋‚˜์˜ค๋Š” e-1 / e ๊ฒฝ๊ณ„).

๋ช…๋ช…๋ฒ•๊ณผ ์•ฝ๊ฐ„์˜ ํ˜ผ๋™์ด์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

dbs-ync ์˜ POV์—์„œ : :

  • tx_epoch_no : ๋“ฑ๋ก / ํ•ด์ฒด ์ธ์ฆ์„œ์˜ ๊ฑฐ๋ž˜๋ฅผ ํฌํ•จํ•˜๋Š” ์‹œ๋Œ€.
  • active_epoch_no : ๊ธฐ๋ณธ์ ์œผ๋กœ tx_epoch_no + 2 , ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ ๋ณ€๊ฒฝ์ด ํ™œ์„ฑํ™”๋˜๋Š” ์‹œ๋Œ€.
  • epoch_no reward ํ…Œ์ด๋ธ”์˜ epoch_no : ๋ณด์ƒ์ด ํš๋“ ๋œ ์‹ค์ œ ์‹œ๋Œ€.

์Šคํ…Œ์ดํฌ ์ž๊ฒฉ ์ฆ๋ช…์ด epoch 232 ํŠธ๋žœ์žญ์…˜์˜ ๋“ฑ๋ก ์ทจ์†Œ ์ธ์ฆ์„œ์—์žˆ๋Š” ๊ฒฝ์šฐ 232/233 ๊ฒฝ๊ณ„์—์„œ ์ฐ์€ ์Šค๋ƒ… ์ƒท์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” 235/236 ๊ฒฝ๊ณ„์—์„œ ์ „๋‹ฌ๋˜๋Š” ๋ณด์ƒ ์—…๋ฐ์ดํŠธ์˜ ์ผ๋ถ€๊ฐ€ ์•„๋‹˜์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. @erikd ์˜ ์šฉ์–ด๋กœ๋Š” 234 ๊ฐœ์˜ ๋ณด์ƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, (์žฌ) ๋“ฑ๋ก ์ธ์ฆ์„œ๊ฐ€ 233๊ธฐ์— ๊ฑฐ๋ž˜์— ๋“ค์–ด๊ฐ”๋‹ค๋ฉด ๋†“์น  _only_ ๋ณด์ƒ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"์–ธ์ œ ๋“ฑ๋ก ์ทจ์†Œ", "๋ณด์ƒ", "ํ™œ์„ฑํ™”์‹œ๊ธฐ"๋“ฑ๊ณผ ๊ฐ™์€ ํ•ญ๋ชฉ์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ํ˜ผ๋ž€ ์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋‚ด๊ฐ€ ๋™์˜ํ•˜๋Š” ์‚ฌ๋žŒ์ด ๋ˆ„๊ตฌ์ธ์ง€ ๋ช…ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. :)

ํ˜ผ๋ž€์Šค๋Ÿฌ์›Œ ๋ณด์ด๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ์ƒํ–ˆ๋˜ ๋‘ ๊ฐœ์˜ ๋ˆ„๋ฝ ๋œ epoch (db-sync 231 ๋ฐ db-sync 234)๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ์ง„์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

ํ˜ผ๋ž€์€ 231์ด ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ˆ„๋ฝ๋˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์›์žฅ ์ƒํƒœ๊ฐ€ ์‚ฌ์šฉ์ž ๋Œ€์‹  ์˜ˆ๋น„๊ธˆ์— ๋ฐฐํฌ ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์›์žฅ ์ƒํƒœ ๊ด€์ ์—์„œ ๋ณด์ƒ์ด ์กด์žฌํ•˜์ง€๋งŒ (์˜ˆ๋น„๊ธˆ์— ๋ถ„๋ฐฐ ๋จ) ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ 231์€ ํฌํ•จ๋˜์ง€ ์•Š์•„์•ผํ•ฉ๋‹ˆ๋‹ค.

image

๋‘ ๊ฐ€์ง€ ์˜ˆ์ƒ ๋ˆ„๋ฝ ๋œ epoch (db-sync 231 ๋ฐ db-sync 234)๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ์ง„์„ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ db-sync ๋ณด๊ณ  ํ•œ ์‹ค์ œ ๋ณด์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw as "stakeAddress", "totalReward".* from stake_address
    left outer join (SELECT addr_id, amount, epoch_no  FROM reward) as "totalReward"
     on stake_address.id = "totalReward".addr_id
     where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
                         stakeAddress                         | addr_id |  amount   | epoch_no 
--------------------------------------------------------------+---------+-----------+----------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162720747 |      211
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162485461 |      212
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167344099 |      213
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167043060 |      214
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 200722225 |      215
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 191413549 |      216
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 143111843 |      217
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147836812 |      218
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 154740829 |      219
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145433327 |      220
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165631299 |      221
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151825651 |      222
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 169141624 |      223
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165184716 |      224
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 148899668 |      225
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 157838234 |      226
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 223252352 |      227
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147889017 |      228
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151858721 |      229
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165782849 |      230
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 192969560 |      231
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 135711434 |      232
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145964545 |      233
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    100702 |      235
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    102078 |      236
(25 rows)

๊ทธ๋ฆฌ๊ณ  234 ์‹œ๋Œ€์—๋งŒ ๋ณด์ƒ์ด ์—†์Šต๋‹ˆ๋‹ค. db-sync ๋Š” ์›์žฅ ์ƒํƒœ์—์„œ์ด ํ…Œ์ด๋ธ”์˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์˜ค๊ณ  db-sync ์ถ”๊ฐ€ํ•˜๋Š” ์œ ์ผํ•œ ๊ฒƒ์€ epoch_no ์—ด์ž…๋‹ˆ๋‹ค.

๋‹ค์ด์–ด๊ทธ๋žจ์ด์ด ํ‘œ์™€ ์ผ์น˜ํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋‹ค์ด์–ด๊ทธ๋žจ์ด ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. node (ํŠนํžˆ ์ฃผ์†Œ ๋ณด์ƒ ์ž”์•ก ๊ณ„์‚ฐ)์—๋„ ๋ฒ„๊ทธ๊ฐ€์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์ง€๊ธˆ์€ ๋‹จ์ผ ๋ณ€์ˆ˜ ( db-sync ) ๋งŒ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์˜ ๋‹ค์ด์–ด๊ทธ๋žจ์—์„œ ๋‹น์‹ ์€ ์—ํฌํฌ 233์— ๋Œ€ํ•ด "๋ณด์ƒ ์ „๋‹ฌ"์„ ์ง€์šฐ๊ณ , Jared์™€ ์ €๋Š” ๊ทธ๊ฒƒ์ด ํ‹€ ๋ ธ์œผ๋ฉฐ ๋ณด์ƒ์ด ์ „๋‹ฌ๋˜์–ด์•ผํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์Šฌ).

@SebastienGllmt ๋งํ•œ๋‹ค :

ํ˜ผ๋ž€์€ 231์ด ๊ธฐ์ˆ ์ ์œผ๋กœ ๋ˆ„๋ฝ๋˜์ง€ ์•Š์•˜์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์—์„œ ๋น„๋กฏ๋œ ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์›์žฅ ์ƒํƒœ๊ฐ€ ์‚ฌ์šฉ์ž ๋Œ€์‹  ์˜ˆ๋น„๊ธˆ์— ๋ฐฐํฌ ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ rewards ํ…Œ์ด๋ธ”์€ ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ๋กœ ๋ถ„๋ฐฐ๋˜๋Š” ๋ณด์ƒ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์˜ˆ๋น„๊ธˆ์— ๋ถ„๋ฐฐ ๋œ ๊ฒฝ์šฐ์ด ํ…Œ์ด๋ธ”์— ์—†์Šต๋‹ˆ๋‹ค. db-sync ๋Š”์ด ๋ณด์ƒ ์ •๋ณด๋ฅผ ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ์—์„œ ๋ณด์ƒ ๊ธˆ์•ก์— ๋Œ€ํ•œ ๋งต์œผ๋กœ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด์ œ ์›์žฅ ์ƒํƒœ ์ž์ฒด๊ฐ€ ์ž˜๋ชป๋˜์—ˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์›์žฅ ์ƒํƒœ์—์„œ ๋งต์„ ๊ฒ€์ƒ‰ ํ•œ ํ›„์—๋Š” ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์—ฌ์ง€๊ฐ€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งํ–ˆ์„ ๋•Œ ๋‚˜๋Š” ํ‹€๋ ธ๋‹ค.

๋˜ํ•œ (์žฌ) ๋“ฑ๋ก ์ธ์ฆ์„œ๊ฐ€ 233 ๋…„์— ๊ฑฐ๋ž˜์— ๋“ค์–ด๊ฐ”๋‹ค๋ฉด ์ด๊ฒƒ์ด ๋†“์น  ์œ ์ผํ•œ ๋ณด์ƒ ์—…๋ฐ์ดํŠธ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ @SebastienGllmt ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด

๋‘ ์‹œ๋Œ€๊ฐ€ ๋ˆ„๋ฝ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

  1. ์ง€๋ถ„ ํ‚ค๊ฐ€ ๋“ฑ๋ก๋˜์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์ƒ์ด ์˜ˆ๋น„๊ธˆ์œผ๋กœ ๋‹ค์‹œ ์ „์†ก ๋œ ์‹œ๋Œ€
  2. ํ‚ค ๋“ฑ๋ก ์ทจ์†Œ ์‹œ์ ๊ณผ ์žฌ ๋“ฑ๋ก ์‹œ์  ์‚ฌ์ด์˜ 1 ์„ธ๋Œ€ ๊ฐ„๊ฒฉ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์‹œ๋Œ€

232/233 epoch ๊ฒฝ๊ณ„์— ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์Šคํ…Œ์ดํฌ ์ž๊ฒฉ ์ฆ๋ช…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • 232/233 ๊ฒฝ๊ณ„์— ์ ์šฉ๋˜๋Š” ์—…๋ฐ์ดํŠธ๋กœ๋ถ€ํ„ฐ ๋ณด์ƒ์„๋ฐ›์ง€ ๋ชปํ•˜๋ฉฐ
  • 232/233 ๊ฒฝ๊ณ„์—์„œ ์ดฌ์˜ ํ•œ ์ง€๋ถ„ ๋ถ„๋ฐฐ ์Šค๋ƒ… ์ƒท์—๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (235/236 ๊ฒฝ๊ณ„์—์„œ ๋ณด์ƒ์„๋ฐ›์ง€ ๋ชปํ•จ).

๋‚˜๋Š” db-sync๊ฐ€ 232/233 ๊ฒฝ๊ณ„ (์‹ค์ œ๋กœ๋Š” @SebastienGllmt ์˜ ์ถ”์ธก ์ผ ๊ณต์‹ ์‚ฌ์–‘์˜ Figure 51: Reward Update Application ์ฐธ์กฐ). db-sync๊ฐ€ ๋“ฑ๋ก๋˜์ง€ ์•Š์€ ์ž๊ฒฉ ์ฆ๋ช…์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œ„์˜ @SebastienGllmt ์˜ ์‚ฌ์ง„์€ ๋ฉ‹์ ธ ๋ณด์ด์ง€๋งŒ ์‹ค์ œ๋กœ ํ™”์‚ดํ‘œ๋Š” ๋ธ”๋ก ์ƒ์„ฑ ๋‹จ๊ณ„๋ฅผ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ์‹œ๋Œ€์— ๊ฑธ์ณ ์žˆ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, 230/231 ๊ฒฝ๊ณ„์—์„œ ์ฐ์€ ์Šค๋ƒ… ์ƒท์˜ ๋ณด์ƒ์€ 233/234 ๊ฒฝ๊ณ„๊นŒ์ง€ ์‹ค์ œ๋กœ ๋‚˜๋ˆ ์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ด์— ๋Œ€ํ•œ ์„ค๋ช…์ด ์žˆ์Šต๋‹ˆ๋‹ค. db-sync ๋Š” legder-state๋ฅผ ์œ ์ง€ํ•˜๊ณ  epoch ๋ณด์ƒ์„ Map StakeAddress Coin ๊ฐ€์ ธ ์™€์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ•ด๋‹น ๋งต์—๋Š” ์œ ํšจํ•˜์ง€ ์•Š์€ StakeAddress ํ•ญ๋ชฉ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, legder-state๋Š” ์ด๋Ÿฌํ•œ ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜์—ฌ ์ ๋ฆฝ๊ธˆ์— ๋Œ€ํ•œ ๋ณด์ƒ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ…์€ ๋˜ํ•œ ์›์žฅ ์ƒํƒœ์—์„œ ์œ ํšจํ•œ StakeAddress ์ง‘ํ•ฉ์„ ๊ฐ€์ ธ์˜จ ๋‹ค์Œ ์œ ํšจํ•œ StakeAddress es ์ง‘ํ•ฉ์—์„œ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ํ•ญ๋ชฉ์„ ์‚ญ์ œํ•˜์—ฌ Map ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด 'ํŒฌํ…€'๋ณด์ƒ์ด 'nondistributed_rewards'๋˜๋Š” ์ด์™€ ๋น„์Šทํ•œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์— ๋ฐฐ์น˜๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ’€ ์ˆ˜์ต์„ฑ์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

@dmitrystas :

์ด 'ํŒฌํ…€'๋ณด์ƒ์ด 'nondistributed_rewards'๋˜๋Š” ์ด์™€ ๋น„์Šทํ•œ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”์— ๋ฐฐ์น˜๋˜๋ฉด ์ข‹์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ’€ ์ˆ˜์ต์„ฑ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚˜๋Š” (์˜ˆ๋น„๋กœ ๋Œ์•„๊ฐ€)์ด ์œ ๋ณด ๋ณด์ƒ์ด ๊ณ„์‚ฐ ์„ค๋ฌธ ์กฐ์‚ฌ ์ˆ˜์ต์„ฑ์— ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋‚œ ํ™•์‹  ์ตœ์„ ํ•˜๊ฑฐ๋‚˜ ๊ณ„์‚ฐํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐ ๋  ์ˆ˜ ์žˆ์Œ์„ ์•Œ ์ˆ˜์žˆ๋‹ค.

์ด ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ‹ฐ์ผ“์„ ํŠน๋ณ„ํžˆ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.

์ข‹์•„, ์‚ฝ์ž…ํ•˜๊ธฐ ์ „์— ๋ณด์ƒ ๋ชฉ๋ก์—์„œ ์ž˜๋ชป๋œ ๋ณด์ƒ์„ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ์†”๋ฃจ์…˜์ด ์žˆ์œผ๋ฉฐ ์‹ค์ œ๋กœ ํ•ด๋‹น ์ฃผ์†Œ์— ๋Œ€ํ•œ ๋ณด์ƒ์ด 231 ์žˆ์Šต๋‹ˆ๋‹ค.

์ด์ œ ์ด๋Ÿฌํ•œ "์ž˜๋ชป๋œ"๋ณด์ƒ์„ ๋ณ„๋„์˜ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ˆ˜์ •ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

PR # 469์—์„œ db-sync ๋ฒ„์ „ ์‚ฌ์šฉ. ์Šคํ…Œ์ดํฌ ์ฃผ์†Œ \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde ๋Œ€ํ•œ ๋ณด์ƒ์ด orphaned_rewards ํ…Œ์ด๋ธ”์— ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฝ์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw, orphaned_reward.epoch_no, orphaned_reward.amount
         from orphaned_reward inner join stake_address on stake_address.id = orphaned_reward.addr_id
         where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde'; 
                           hash_raw                           | epoch_no |  amount   
--------------------------------------------------------------+----------+-----------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |      231 | 192969560

๋˜ํ•œ ๋ณด์ƒ ํ…Œ์ด๋ธ”์—๋„ ์—†์Šต๋‹ˆ๋‹ค.

cexplorer=# select stake_address.hash_raw as "stakeAddress", "totalReward".* from stake_address
    left outer join (SELECT addr_id, amount, epoch_no  FROM reward) as "totalReward"
     on stake_address.id = "totalReward".addr_id
     where stake_address.hash_raw = '\xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde' ;
                         stakeAddress                         | addr_id |  amount   | epoch_no 
--------------------------------------------------------------+---------+-----------+----------
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162720747 |      211
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 162485461 |      212
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167344099 |      213
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 167043060 |      214
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 200722225 |      215
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 191413549 |      216
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 143111843 |      217
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147836812 |      218
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 154740829 |      219
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145433327 |      220
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165631299 |      221
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151825651 |      222
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 169141624 |      223
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165184716 |      224
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 148899668 |      225
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 157838234 |      226
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 223252352 |      227
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 147889017 |      228
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 151858721 |      229
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 165782849 |      230
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 135711434 |      232
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 | 145964545 |      233
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    100702 |      235
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |    102078 |      236
 \xe1e27b674f2c9e5c88689526e987ecc7911c034a0f553289e6d3a38fde |   38266 |        65 |      238
(25 rows)
์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰