νμ μ¬μ© μ€μ§ν ν 보μ¦κΈμ΄ 보μ κ³μ μ λμ°©ν΄μΌ ν©λλ€. cardano-cliμμλ λ³Ό μ μμ§λ§ λ°μ΄ν°λ² μ΄μ€μμλ μ°Ύμ μ μμ΅λλ€.
cardano-cli shelley query stake-address-info \
> --mainnet \
> --address stake1uywjy7h05jmhx9y3wzy94td6xz4txynuccgam0zfn800v8qq33z29
[
{
"address": "stake1uywjy7h05jmhx9y3wzy94td6xz4txynuccgam0zfn800v8qq33z29",
"delegation": "pool1qnrqc7zpwye2r9wtkayh2dryvfqs7unp99f2039duljrsaffq5c",
"rewardAccountBalance": 500009820
}
]
νμ§λ§ '보μ' ν μ΄λΈμ μ€ν μ΄ν¬ μ£Όμ λ³κ²½κ³Ό λμΌνμ§ μμ΅λλ€... μ΄λ κ² νλ©΄ μλ₯Ό λ€μ΄ ITN 보μ(νμ¬ 'μμ½' ν μ΄λΈ)κ³Ό κ°μ λ€λ₯Έ κ²λ μ΄ ν μ΄λΈμ μ μ₯ν΄μΌ ν©λλ€.
보μκ³Ό ν¨κ» μ΄λ¬ν μκΈμ μ»λ μ μΌν λ€λ₯Έ λ°©λ²μ μ΄ μ§λΆ μ£Όμμ μ°κ²°λ νμ΄ μ£Όμ΄μ§ μλμ λ§λ£λμλμ§ μ¬λΆλ₯Ό ν ν΄μ§ ν μ΄λΈμ 쿼리νκ³ ν΄λΉ κ°μ΄ μμ§ λ§λ£λμ§ μμ κ²½μ° λ³΄μμ νλμ½λ©λ 500000000 κ°μ μΆκ°νλ κ²μ λλ€. μΆκΈ, μΆκΈμ΄ κ·Έ μμ κΉμ§ 보μλ³΄λ€ λμ§ μμ κ²½μ° λ€μ κ³μ°ν΄μΌ νλ λ±μ λ°©μμ μ λ§ ν¬λ°ν΄ 보μ λλ€.
κ·Έλ¬λ λλ μ¬μ ν μ΄λ¬ν νλ μ½λ©λ κ° λ± μμ΄ dbμ λ λͺ μμ μΌλ‘ λͺ μλμ΄μΌ νλ€κ³ μκ°ν©λλ€. μλ§λ λ€λ₯Έ ν μ΄λΈ? μλλ©΄ λ κ°λ¨ν κ΄κ³?
pool_retirement ν μ΄λΈμμ μ΄ 500 ADAλ₯Ό κ°μ Έμ€κΈ°λ‘ μ ννκ³ νμ μ¬λ¬ μμ μκ° μλ κ²½μ° μ΄ 500 ADAκ° λ³΄μμ λ°μ μ€ν μ΄ν¬ μ£Όμλ₯Ό μ΄λ»κ² μ μ μμ΅λκΉ?
ν μμ μκ° μ¬λ¬ λͺ μΈ κ²½μ° μ΄ 500 ADAκ° λ³΄μμ λ°μ μ€ν μ΄ν¬ μ£Όμλ₯Ό μ΄λ»κ² μ μ μμ΅λκΉ?
보μ¦κΈμ μμ μ μ£Όμκ° μλ 보μ μ£Όμ(νμ νμ λν κ²)λ‘ λ°νλ©λλ€.
보μ¦κΈμ μμ μ μ£Όμκ° μλ 보μ μ£Όμ(νμ νμ λν κ²)λ‘ λ°νλ©λλ€.
κ·Έκ²μ μλ―Έκ° μμ΅λλ€ κ°μ¬ν©λλ€!
κ·Έλ¬λ©΄ μν΄ νμ μμΉκΈμ pool_update ν μ΄λΈμ μ μΈλ νμ 보μ μ£Όμλ‘ λ°νλ κ²μ λλ€. λ§μ΅λκΉ?
λλ λλ₯Ό νΌλμ€λ½κ²νλ νμ¬ μκ° μκΈ° λλ¬Έμ 묻μ΅λλ€.
SELECT SUM(amount) as reward, NULL as withdrawal
FROM reward
LEFT JOIN stake_address sa on reward.addr_id = sa.id
WHERE sa.view = 'stake1u9rqg96sdsdrqshpx0x77jna40ws90drts2wks7vuy63dpqj6txws'
UNION
SELECT NULL, SUM(amount)
FROM withdrawal
LEFT JOIN tx ON withdrawal.tx_id = tx.id
LEFT JOIN block ON tx.block_id = block.id
LEFT JOIN stake_address sa on withdrawal.addr_id = sa.id
WHERE sa.view = 'stake1u9rqg96sdsdrqshpx0x77jna40ws90drts2wks7vuy63dpqj6txws';
μ΄ μΏΌλ¦¬λ μμ μ€ν μ΄ν¬ μ£Όμμ μ΄ λ³΄μκ³Ό μ΄ μΈμΆμ μ 곡ν©λλ€. κ·Έ μ°¨μ΄λ μ νν 500000000 lovelaceμ λλ€. λ¬Όλ‘ μ°μ°μ μΌμΉμΌ μλ μμ§λ§ λΉμ·ν λ€λ₯Έ μκ° μκΈ° λλ¬Έμ μμνκΈ° λ§€μ° μ΄λ ΅μ΅λλ€. λ°λΌμ μ΄κ²μ΄ λ°νλ ν 보μ¦κΈμ΄λΌκ³ κ°μ νκ³ μ΄ μ€ν μ΄ν¬ μ£Όμλ pool_update ν μ΄λΈμ 보μ μ£Όμλ‘ λ°μν΄μΌ ν©λλ€. λ§μ΅λκΉ?
SELECT pool_retire.hash_id, sa.view FROM pool_retire
LEFT JOIN pool_update pu ON pool_retire.hash_id = pu.hash_id
LEFT JOIN stake_address sa on sa.id = pu.hash_id
WHERE sa.view = 'stake1u9rqg96sdsdrqshpx0x77jna40ws90drts2wks7vuy63dpqj6txws'
κ·Έλ¬λ μ΄ μΏΌλ¦¬λ κ²°κ³Όλ‘ μ΄μ΄μ§μ§ μμ΅λλ€. λ΄κ° μ μ μμλ κ²μ μ€ν μ΄ν¬ μ£Όμκ° μν΄ν ν(pool_hash_id = 8)μ 곡λ μμ μλΌλ κ²μ λλ€.
μ΄ 500 ADAκ° μ΄λμμ μλμ§ μ΄λ»κ² μ μ μλμ§ κΆκΈν©λλ€. μ΄ λ³΄μ¦κΈμ΄ ITNκ³Ό κ΄λ ¨λ μ μμ΅λκΉ?
κ·Έλ¬λ©΄ μν΄ νμ μμΉκΈμ pool_update ν μ΄λΈμ μ μΈλ νμ 보μ μ£Όμλ‘ λ°νλ κ²μ λλ€. λ§μ΅λκΉ?
μ€λ₯Έμͺ½
κ·Έλ¬λ μ΄ μΏΌλ¦¬λ κ²°κ³Όλ₯Ό κ°μ Έμ€μ§ μμ΅λλ€.
sa.id != pu.hash_id -> sa.id = pu.reward_addr_id
μ΄ 500 ADAκ° μ΄λμμ μλμ§ μ΄λ»κ² μ μ μλμ§ κΆκΈν©λλ€. μ΄ λ³΄μ¦κΈμ΄ ITNκ³Ό κ΄λ ¨λ μ μμ΅λκΉ?
κ±°μ νμ€νμ§ μμ΅λλ€.
μ΄ λ¬Έμ μ λν΄ μ°λ¦¬λ μ΄λμ μμ΅λκΉ? μ½κ° μλ€κ° μλ§μλ κ² κ°μ΅λλ€. μ΄μ λν νμ¬ μν©μ μλ € μ£Όμκ² μ΅λκΉ?
λ¬Όλ‘ , λ¬Έμ λ κ½€ λ§μ΄ νμ΄μ¬νΉλμμ΅λλ€. λ°λΌμ λ¬Έμ μ λν΄ μ무 κ²λ λ³κ²½λμ§ μμμ΅λλ€. νμ μν΄ν ν 보μ μ£Όμλ‘ λ°νλμ΄μΌ νλ 보μ¦κΈμ DBμ λͺ μμ μΌλ‘ μ΄λμλ μμ΅λλ€(μ: 500 ADAλ epoch 245μ λμ°©νμ΅λλ€). κ·Έλ¬λ μμ μ μ£Όμκ° μ°Ύκ³ μλ 보μ μ£ΌμμΈ νμΈμ§ ν μν΄ ν μ΄λΈμ νμΈν λ€μ μ΄ μ νν μν΄μμ μ΄ κΈμ‘μ΄ μΈμΆλμ§ μμ κ²½μ° μ¬μ©μμ 보μμ νλμ½λ©λ κ° '500'μ μλμΌλ‘ μΆκ°ν΄μΌ ν©λλ€. μμ§. κ·Έκ²μ λμκ² μ λ§ μ±κ°μ μΌμ΄λ©° λλ κ·Έκ²μ΄ 보μ ν μ΄λΈμ΄λ λ€λ₯Έ κ³³μΌλ‘ κ° μ μλμ§ μ¬λΆλ₯Ό μ μνμ§λ§ λͺ μ μ μΌλ‘μμ΅λλ€.
νμ μν΄ν ν 보μ μ£Όμλ‘ λ°νλμ΄μΌ νλ 보μ¦κΈμ DBμ λͺ μμ μΌλ‘ μ΄λμλ μμ΅λλ€.
μ κ° μ‘°μ¬ν μμ λ©μΈλ· μ£Όμκ° μμ΅λκΉ?
e11d227aefa4b773149170885aadba30aab3127cc611ddbc4999def61c /take1uywjy7h05jmhx9y3wzy94td6xz4txynuccgam0zfn800v8qq33z
보μ¦κΈ νλΆμ λν΄ μ€ν΄κ° μμΌμ κ°μ? 보μ¦κΈ νλΆμ reward
ν
μ΄λΈμ΄ μλλΌ tx
ν
μ΄λΈμ μμ΅λλ€. κ·ΈλΌ μ°Ύμλ΄
μλ€.
κ΄μ¬μλ μ£Όμ:
cexplorer=# select id, view, registered_tx_id from stake_address
where view = 'stake1uywjy7h05jmhx9y3wzy94td6xz4txynuccgam0zfn800v8qq33z29' ;
id | view | registered_tx_id
------+-------------------------------------------------------------+------------------
2820 | stake1uywjy7h05jmhx9y3wzy94td6xz4txynuccgam0zfn800v8qq33z29 | 2420601
id
νλλ db-sync
μΈμ€ν΄μ€μμ λ€λ₯Ό μ μμ§λ§ id
λ μ΄ νμμ μ μ©ν©λλ€.
μ½κ° 볡μ‘νμ§λ§ λ€μμ μ¬μ©νμ¬ νλΆμ νμΈν μ μμ΅λλ€.
cexplorer=# select stake_deregistration.id, stake_deregistration.addr_id, stake_deregistration.tx_id,
tx.deposit, block.epoch_no from stake_deregistration
inner join tx on tx.id = stake_deregistration.tx_id
inner join block on block.id = tx.block_id
where stake_deregistration.addr_id = 2820 ;
id | addr_id | tx_id | deposit | epoch_no
-----+---------+---------+----------+----------
730 | 2820 | 2842157 | -2000000 | 223
λ§μ°¬κ°μ§λ‘ λ±λ‘μ λ€μμ μ¬μ©νλ κ²μ²λΌ λ³΄μΌ μ μμ΅λλ€.
cexplorer=# select stake_registration.id, stake_registration.addr_id, stake_registration.tx_id, tx.deposit,
block.epoch_no from stake_registration inner join tx on tx.id = stake_registration.tx_id
inner join block on block.id = tx.block_id
where stake_registration.addr_id = 2820 ;
id | addr_id | tx_id | deposit | epoch_no
-------+---------+---------+---------+----------
1649 | 2820 | 2421547 | 2000000 | 208
86926 | 2820 | 2842177 | 2000000 | 223
(2 rows)
μ΄ μ€ν μ΄ν¬ μ£Όμκ° λ€μκ³Ό κ°λ€κ³ κ°μ ν©λλ€.
κ·Έκ² λ€ λ§μ΄ λλμ?
μ€ν μ΄ν¬ λ±λ‘μλ μ΄μΉμ λ§μ§λ§ ν μν΄μ λν΄ μ΄μΌκΈ°ν κ²μ λλ€. κ·Έλ¦¬κ³ ν μμ μμ 보μ μ£Όμλ‘ λ°νλμ΄μΌ νλ 500 ADA.
λλ κ·Έκ²μ΄ 보μ μ£Όμλ‘ λμ κ°μ§ μλλ€κ³ μκ°ν©λλ€. νμ΄ μ¬μ© μ€μ§λ μκ° μμ΅λκΉ?
λ°μ΄ν°λ² μ΄μ€ μ΄λκ°μ λνλ κ²μ΄λΌλ κ΄κ³ λλ μ¬μ€μ μ€μ λ‘ νμ¬ λ²μ μ λ²κ·Έκ° μλλΌ κΈ°λ₯μ λν λμ μμ²μ λλ€. μ¬μ© μ€μ§λ νμ μ: pool134dws3tyc7kphwl6gks26cm6l390554lns9lyatm3gkxs6dwj2z. λ΄κ° μ μ λ³΄λΈ μ£Όμλ κ·Έ μμ μ
@erikd
μμ₯ μ¬μμμ :
21νμ΄μ§
μ€ν μ΄ν¬ ν ν΄μ§κΈ νλΆμ μΈμ¦μκ° μμ½λ κ²½μ°κ° μλλΌ λ°νλλ€λ μ μ κΈ°μ΅νμμμ€.
μ²λΆμ΄ μ²λ¦¬λμ§λ§ μ²λΆμ΄ μμ λ μν¬ν¬ κ²½κ³μ μμ΅λλ€.
40νμ΄μ§
β’ poolRefunds ν¨μλ λΆλ°°λμ΄μΌ νλ μ΄ νλΆμ‘μ κ³μ°νλ λ° μ¬μ©λ©λλ€.
μν΄ν μμ μΈ μ€ν μ΄ν¬ νμ κ²½μ°. μ΄ κ³μ°μ κ³μ°μ΄ μνλ λ Epoch κ²½κ³ μ¬λ‘―μ ν΄λΉνλ μ¬λ‘― λ²νΈλ₯Ό μ¬μ©ν©λλ€. λ°ν
mapμ ν μ΄μμ ν΄μν€λ₯Ό νλΆμ 맀ννλ©°, μ΄λ κΆκ·Ήμ μΌλ‘
λ±λ‘λ 보μ κ³μ .
@xdzurman μ£μ‘ν©λλ€.
κ΄κ³ λλ κ·Έκ²μ΄ λ°μ΄ν°λ² μ΄μ€ μ΄λκ°μ λνλ κ²μ΄λΌλ μ¬μ€μ μ€μ λ‘ κΈ°λ₯μ λν λμ μμ²μ λλ€.
κΈ°λ₯ μμ²μ΄ μ νν 무μμΈκ°μ?
@erikd ν μμΉκΈ(500 ADA)μ νμ΄ νκΈ°λ ν λ°μ΄ν°λ² μ΄μ€ μ΄λκ°μ λ£μ΅λλ€. νμ¬λ μμ μ΄ μν 보μ μ£Όμμ λͺ μμ μΌλ‘ μ°κ²°ν μ μμ΅λλ€.
https://github.com/input-output-hk/cardano-db-sync/issues/474 λ₯Ό μν΄ μ΄κ²μ
κ°μ₯ μ μ©ν λκΈ
@erikd
μμ₯ μ¬μμμ :
21νμ΄μ§
40νμ΄μ§