Cardano-db-sync: 보상 ν…Œμ΄λΈ”κ³Ό 블둝 ν…Œμ΄λΈ” κ°„μ˜ ν™€μˆ˜ 뢈일치

에 λ§Œλ“  2020λ…„ 11μ›” 02일  Β·  7μ½”λ©˜νŠΈ  Β·  좜처: input-output-hk/cardano-db-sync

이것은 #361κ³Ό 맀우 μœ μ‚¬ν•©λ‹ˆλ‹€.

λ©”μΈλ„·μ—μ„œ:

cexplorer=# select reward.* from pool_hash
              inner join reward on reward.pool_id = pool_hash.id
              where pool_hash.hash_raw = '\x964d8d35d91603e0dcfbc64891ee8ffeba0e503ca96bf627bc8bcb55' ; 
   id   | addr_id |    amount    | epoch_no | pool_id | block_id 
--------+---------+--------------+----------+---------+----------
 452424 |   92628 | 133076705980 |      222 |    1250 |  4832319
 508325 |   92628 | 126562664576 |      223 |    1250 |  4853643
(2 rows)

μ΄λŸ¬ν•œ 보상이 pool_id == 1250 에 μ˜ν•΄ νšλ“λ˜μ—ˆμŒμ„ μ•”μ‹œν•©λ‹ˆλ‹€.

ν•˜μ§€λ§Œ:

cexplorer=# select block.block_no, slot_leader.pool_hash_id
              from block inner join slot_leader on block.slot_leader_id = slot_leader.id
              where pool_hash_id = 1250 ;
 block_no | pool_hash_id 
----------+--------------
(0 rows)

이것이 #361μ—μ„œ ν•΄κ²°λœ 것과 μœ μ‚¬ν•œ 문제둜 인해 λ°œμƒν•˜λŠ” κ²ƒμœΌλ‘œ 판λͺ…λ˜λ©΄ 이λ₯Ό μ»€λ²„ν•˜κΈ° μœ„ν•œ 검증이 λ°˜λ“œμ‹œ ν•„μš”ν•©λ‹ˆλ‹€.

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

@erikd μ–΄μ œ μ œκ°€ λ§ν•œ λ‚΄μš©μ΄ ν‹€λ ΈμŠ΅λ‹ˆλ‹€. μ£„μ†‘ν•©λ‹ˆλ‹€. 였늘 사양과 κ΅¬ν˜„μ„ λͺ¨λ‘ ν™•μΈν–ˆμœΌλ©° λ‹€μŒκ³Ό 같이 λ™μ˜ν•˜κ³  μž‘λ™ν•©λ‹ˆλ‹€.

μŠ€ν…Œμ΄ν¬ ν’€ μΈμ¦μ„œμ˜ 보상 계정:

  • λ“±λ‘ν•΄μ•Όν•©λ‹ˆλ‹€
  • μœ„μž„ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€

λ˜ν•œ 두 개의 풀이 곡톡 보상 계정을 λ‚˜μ—΄ν•˜λŠ” 경우 ν•΄λ‹Ή 계정은 λ³΄μƒμ˜ 합계λ₯Ό μ–»μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  7 λŒ“κΈ€

이것은 #361κ³Ό λ‹€λ¦…λ‹ˆλ‹€. μœ„μ—μ„œ addr_id λ₯Ό 보면 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

cexplorer=# select * from delegation where addr_id = 92628 ;
 id | addr_id | cert_index | pool_hash_id | active_epoch_no | tx_id 
----+---------+------------+--------------+-----------------+-------
(0 rows)

즉, 이 addr_id λŠ” ν™•μΈν•˜κΈ° μ‰¬μš΄ ν’€ μ—…λ°μ΄νŠΈμ— λŒ€ν•œ 보상 μ£Όμ†Œμ—¬μ•Ό ν•©λ‹ˆλ‹€.

cexplorer=# select id, hash_id, pledge, margin, fixed_cost, active_epoch_no, reward_addr_id
              from pool_update where reward_addr_id = 92628 ;
  id  | hash_id | pledge | margin | fixed_cost | active_epoch_no | reward_addr_id 
------+---------+--------+--------+------------+-----------------+----------------
 4621 |    1245 |      0 |      1 |  340000000 |             218 |          92628
 4622 |    1246 |      0 |      1 |  340000000 |             218 |          92628
 4623 |    1247 |      0 |      1 |  340000000 |             218 |          92628
 4624 |    1248 |      0 |      1 |  340000000 |             218 |          92628
 4625 |    1249 |      0 |      1 |  340000000 |             218 |          92628
 4626 |    1250 |      0 |      1 |  340000000 |             218 |          92628
 5683 |    1245 |      0 |      1 |  340000000 |             224 |          92628
 5684 |    1246 |      0 |      1 |  340000000 |             224 |          92628
 5685 |    1247 |      0 |      1 |  340000000 |             224 |          92628
(9 rows)

μ΄λŠ” 이 μ£Όμ†Œκ°€ μ—¬λŸ¬ λ‹€λ₯Έ 풀에 λŒ€ν•œ 보상 μ£Όμ†Œμž„μ„ μ˜λ―Έν•©λ‹ˆλ‹€. 이것이 λ¬Έμ œμ—¬μ•Ό ν•©λ‹ˆλ‹€.

이것은 κΉŒλ‹€ λ‘­μŠ΅λ‹ˆλ‹€. λ‚΄ λ¨Έλ¦Ώμ†μ—λŠ” 단일 stake_address κ°€ 단일 ν’€μ—λ§Œ μœ„μž„ν•  수 μžˆλ‹€λŠ” 가정이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€. 그것이 μ‚¬μ‹€μ΄μ§€λ§Œ 단일 stake_address λŠ” λ‘˜ μ΄μƒμ˜ 풀에 λŒ€ν•œ 보상 μ£Όμ†Œλ‘œ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‹€μ œλ‘œλŠ” 그보닀 더 λ³΅μž‘ν•©λ‹ˆλ‹€. stake_address κ°€ 두 개의 풀에 λŒ€ν•œ 보상 μ£Όμ†Œλ‘œ μ‚¬μš©λ˜λŠ” 경우 보상 κΈˆμ•‘μ€ 각 풀에 λŒ€ν•œ λ³΄μƒμ˜ 합이 λ©λ‹ˆλ‹€. λ‚΄κ°€ ν˜„μž¬ 가지고 μžˆλŠ” 것을 κ°μ•ˆν•  λ•Œ 이 달걀이 μŠ€ν¬λž¨λΈ” ν•΄μ œλ  수 μžˆλŠ”μ§€ ν™•μ‹ ν•  수 μ—†μŠ΅λ‹ˆλ‹€.

이것은 κΉŒλ‹€λ‘­κΈ°λ§Œ ν•œ 것이 μ•„λ‹ˆλΌ μ™„μ „ν•œ 벌레 ν†΅μ‘°λ¦Όμž…λ‹ˆλ‹€.

@JaredCorduanκ³Ό IOHK λ‚΄λΆ€ Slackμ—μ„œ μ±„νŒ…ν•œ ν›„ db-sync 의 온체인 데이터 μ²˜λ¦¬κ°€ μ™„μ „νžˆ μ •ν™•ν•˜μ§€ μ•Šκ³  일뢀 SPOκ°€ 풀을 μ˜¬λ°”λ₯΄κ²Œ μ„€μ •ν•˜μ§€ μ•Šμ•˜μ„ 수 μžˆμŒμ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.

첫째, ν’€ μžμ²΄κ°€ μŠ€ν…Œμ΄ν¬ μ£Όμ†Œλ‘œ λ“±λ‘λœ 적이 μ—†λŠ” μŠ€ν…Œμ΄ν¬/보상 μ£Όμ†Œλ‘œ λ“±λ‘λœ 경우 Shelley λ””μžμΈ 사양 의 μ„Ήμ…˜ 3.3.4 λ˜λŠ” 3번 ν•­λͺ©μ— 따라:

보상 μ£Όμ†Œκ°€ λ“±λ‘λ˜μ§€ μ•Šμ€ 경우 μŠ€ν…Œμ΄ν¬ ν’€ μš΄μ˜μžλŠ” 보상을 받을 수 μ—†μŠ΅λ‹ˆλ‹€. 이 경우, 그듀이 λ°›μ•„μ•Ό ν•  λͺ¨λ“  보상은 λŒ€μ‹  μ˜ˆλΉ„κΈˆμœΌλ‘œ λ‹€μ‹œ λ³΄λ‚΄μ§‘λ‹ˆλ‹€(κ·ΈλŸ¬λ‚˜ μŠ€ν…Œμ΄ν¬ ν’€ ꡬ성원은 μ—¬μ „νžˆ β€‹β€‹μΌλ°˜μ μΈ 보상을 λ°›μŠ΅λ‹ˆλ‹€).

λ‘˜μ§Έ, 두 개 μ΄μƒμ˜ 풀이 λ™μΌν•œ μŠ€ν…Œμ΄ν¬/보상 μ£Όμ†Œλ‘œ λ“±λ‘λ˜κ³  두 개 μ΄μƒμ˜ 풀이 보상을 λ°›μœΌλ©΄ 첫 번째("첫 번째"λŠ” μ–΄λ–»κ²Œ κ²°μ •λ˜λ‚˜μš”?) 풀에 λŒ€ν•œ λ³΄μƒλ§Œ ν•΄λ‹Ή μ£Όμ†Œλ‘œ μ΄λ™ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” λͺ¨λ‘ λ‹€μŒμœΌλ‘œ μ΄λ™ν•©λ‹ˆλ‹€. μ€€λΉ„κΈˆ/재고. 아직 이에 λŒ€ν•œ μ μ ˆν•œ λ¬Έμ„œλ₯Ό 찾지 λͺ»ν–ˆμŠ΅λ‹ˆλ‹€.

@erikd μ–΄μ œ μ œκ°€ λ§ν•œ λ‚΄μš©μ΄ ν‹€λ ΈμŠ΅λ‹ˆλ‹€. μ£„μ†‘ν•©λ‹ˆλ‹€. 였늘 사양과 κ΅¬ν˜„μ„ λͺ¨λ‘ ν™•μΈν–ˆμœΌλ©° λ‹€μŒκ³Ό 같이 λ™μ˜ν•˜κ³  μž‘λ™ν•©λ‹ˆλ‹€.

μŠ€ν…Œμ΄ν¬ ν’€ μΈμ¦μ„œμ˜ 보상 계정:

  • λ“±λ‘ν•΄μ•Όν•©λ‹ˆλ‹€
  • μœ„μž„ν•  ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€

λ˜ν•œ 두 개의 풀이 곡톡 보상 계정을 λ‚˜μ—΄ν•˜λŠ” 경우 ν•΄λ‹Ή 계정은 λ³΄μƒμ˜ 합계λ₯Ό μ–»μŠ΅λ‹ˆλ‹€.

ν˜„μž¬ 이 λ¬Έμ œμ— λŒ€ν•œ μˆ˜μ • 사항이 ν•˜μœ„ μˆ˜μ€€ λΌμ΄λΈŒλŸ¬λ¦¬μ— μžˆλŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. @JaredCorduan 이 쑰사 μ€‘μž…λ‹ˆλ‹€.

μ—¬κΈ°μ„œ 무슨 일이 μΌμ–΄λ‚˜κ³  μžˆλŠ”μ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μ—¬λŸ¬κ°€μ§€κ°€ λ°”λ€Œμ—ˆλ‹€.

> select * from pool_hash
      where pool_hash.hash_raw = '\x964d8d35d91603e0dcfbc64891ee8ffeba0e503ca96bf627bc8bcb55' ;
  id  |                          hash_raw                          |                           view                           
------+------------------------------------------------------------+----------------------------------------------------------
 4626 | \x964d8d35d91603e0dcfbc64891ee8ffeba0e503ca96bf627bc8bcb55 | pool1jexc6dwezcp7ph8mceyfrm50l6aqu5pu494lvfau309422t9c6z

ν•˜μ§€λ§Œ:

> select reward.* from pool_hash
      inner join reward on reward.pool_id = pool_hash.id
      where pool_hash.hash_raw = '\x964d8d35d91603e0dcfbc64891ee8ffeba0e503ca96bf627bc8bcb55' ;
 id | addr_id | amount | epoch_no | pool_id | block_id | type 
----+---------+--------+----------+---------+----------+------
(0 rows)

이 μΏΌλ¦¬λŠ” f7ee30a245131255f816d6952ef6f0b938e61b94 컀밋 μ‹œ master λ₯Ό μ‹€ν–‰ν•˜λŠ” λ°μ΄ν„°λ² μ΄μŠ€μ— λŒ€ν•΄ μ‹€ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μ•„, ν•˜μ§€λ§Œ 보상 ν…Œμ΄λΈ”(0개 ν•­λͺ©μ„ λ°˜ν™˜ν•¨)의 μΏΌλ¦¬λŠ” μ •ν™•ν•©λ‹ˆλ‹€.

> select block.block_no, slot_leader.pool_hash_id
              from block inner join slot_leader on block.slot_leader_id = slot_leader.id
              where pool_hash_id = 4626 ;
 block_no | pool_hash_id 
----------+--------------
(0 rows)

λ”°λΌμ„œ μ΄μƒν•œ λΆˆμΌμΉ˜κ°€ 사라지고 이 티켓을 닫을 수 μžˆμŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰