Cardano-db-sync: рдХреБрдЫ рд▓рд╡рд▓реЗрд╕ рджреНрд╡рд╛рд░рд╛ рдЗрдирд╛рдо рддрд╛рд▓рд┐рдХрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 12 рдирд╡ре░ 2020  ┬╖  12рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: input-output-hk/cardano-db-sync

рдореИрдВ рдХрд╛рд░реНрдбрд╛рдиреЛ-рд╕рдмрдорд┐рдЯ-рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЗрди-рджреЗрди рдирд╣реАрдВ рднреЗрдЬ рд╕рдХрд╛, рдЗрд╕рдореЗрдВ рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ "рд╡рд┐рджрдбреНрд░реЙрдЕрд▓реНрд╕рдиреЙрдЯрдЗрдирд░рд┐рд╡рд╛рд░реНрдбреНрд╕рдбреАрдИрдПрд▓рдЬреАрдПрд╕", рдЧрд▓рдд рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХрд╛ рдЕрд░реНрде рд╣реИ, рдпрд╛ рд╕рднреА рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ рд╕рднреА рднрд╛рдЧреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХреА, рдЬрд╣рд╛рдБ рдпрд╣ рдЧрд▓рдд рд╣реЛ рд╕рдХрддрд╛ рдерд╛ред рдЙрд╕рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдбреАрдмреА-рд╕рд┐рдВрдХ рдФрд░ рдпреЛрд░реЛрдИ рдПрдкреАрдЖрдИ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкрддреЗ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдХреАред рдпреЗ рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдмреЗрдореЗрд▓ рд╣реИрдВ (рд▓рд╡рд▓реЗрд╕ рдореЗрдВ):

image
рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдЗрд╕ SQL тАЛтАЛтАЛтАЛрд╕реЗ рдбреАрдмреА-рд╕рд┐рдВрдХ рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддреА рд╣реИ:
SELECT (SELECT COALESCE(SUM(rewards.amount), 0) FROM ( SELECT amount FROM reward WHERE addr_id=$1 UNION ALL SELECT amount FROM reserve WHERE addr_id=$1 ) rewards ) - ( SELECT COALESCE(SUM(amount), 0) FROM withdrawal WHERE addr_id=$1 ) AS "remainingRewards"
рдпреЛрд░реЛрдИ рдПрдкреА рд╕реЗ рдорд╛рдЗрдирд╕ рд░рд┐рд╡рд╛рд░реНрдбреНрд╕ред

@erikd рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдпреЛрд░реЛрдИ рдЗрд╕реЗ рдбреАрдмреА-рд╕рд┐рдВрдХ рд╕реЗ рднреА рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпреЗ рд╕рдВрднрд╡рддрдГ рджреЛ рдЧрд▓рдд рдорд╛рдиреЛрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВред рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ, рддреНрд░реБрдЯрд┐ рдбреАрдмреА-рд╕рд┐рдВрдХ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реЛрддреА рд╣реИ

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рд╣реИ, рдореИрдВ рдЗрд╕рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рд╕рднреА 12 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рд╣рдордиреЗ рдЗрд╕реЗ рдпреЛрд░реЛрдИ рдореЗрдВ рднреА рджреЗрдЦрд╛ рд╣реИ

рдХрд╛рд░реНрдбрд╛рдиреЛ-рдбреАрдмреА-рд╕рд┐рдВрдХ рдХреЗ 7 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдкрд░рд┐рдгрд╛рдо рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдореВрд▓реНрдп 30428426 рд╣реИ

backend#1 30428424
backend#2 30428424
backend#3 30428424
backend#4 30428423
backend#5 30428430
backend#6 30428424
backend#7 30428426

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдХреЗрд╡рд▓ 1/7 рдмреИрдХрдПрдВрдб рдХреЛ рд╕рд╣реА рдкрд░рд┐рдгрд╛рдо рдорд┐рд▓рд╛

рд╣рдордиреЗ рдбрдмрд▓-рдЪреЗрдХ рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпреЗ рдЧрд▓рдд рдорд╛рди SQL рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕реНрдЯреИрдХ рдХреЗ рд╣рдорд╛рд░реЗ рд╣рд┐рд╕реНрд╕реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ

@SebastienGllmt рдХреНрдпрд╛? рдЕрд▓рдЧ-рдЕрд▓рдЧ db-sync рдЙрджрд╛рд╣рд░рдг рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджреЗрддреЗ рд╣реИрдВ ??? рдХреНрдпрд╛ рд╡реЗ рд╕рднреА рдПрдХ рд╣реА рд╕рдВрд╕реНрдХрд░рдг рдЪрд▓рд╛ рд░рд╣реЗ рд╣реИрдВ?

@xdzurman рдХреНрдпрд╛ рдЖрдк рдЙрд╕ SQL тАЛтАЛтАЛтАЛрдХреНрд╡реЗрд░реА рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рдкрд╛рдПрдВрдЧреЗ? рддреАрди рдХреЙрд▓рдо, рдЗрдирд╛рдо, рд░рд┐рдЬрд░реНрд╡ рдФрд░ рдЕрдВрддрд░ рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреНрд╡реЗрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд▓рдд рд╣реИред рдкреБрд░рд╕реНрдХрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ (рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдирд╣реАрдВ рд╣реИ):

cexplorer=# select * from reward ; 
 id | addr_id | amount | epoch_no | pool_id | block_id 
----+---------+--------+----------+---------+----------
(0 rows)

рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирд╛рдо рд░рд╛рд╢рд┐ рд╣реЛрддреА рд╣реИ (рдпрд╛рдиреА рдпреБрдЧ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ) рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдЦреЛрдЬреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ reserve рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред

@erikd рдпрд╣ рд╡рд╣ рдХреНрд╡реЗрд░реА рд╣реИ рдЬрд┐рд╕реЗ рд╣рдордиреЗ 7 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдмреИрдХрдПрдВрдб рдкрд░ рдЪрд▓рд╛рдпрд╛, рдЬрд┐рд╕рдиреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкрд░рд┐рдгрд╛рдо рджрд┐рдПред рд╡реЗ рдХрд╛рд░реНрдбрд╛рдиреЛ-рдбреАрдмреА-рд╕рд┐рдВрдХ рдХреЗ рд╕рдорд╛рди рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рд╕рдорд╛рди рдиреЛрдб рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдВ

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

  from stake_address

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

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

рдЗрд╕ SQL тАЛтАЛтАЛтАЛрдХреНрд╡реЗрд░реА рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдиреЗ рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рдкреБрд░рд╕реНрдХрд╛рд░ рдЕрд░реНрдЬрд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИред

рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдХреНрд╡реЗрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЧрд▓рдд рд╣реИред рдкреБрд░рд╕реНрдХрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреА рд╣реИ (рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рдордиреНрд╡рдпрд┐рдд рдирд╣реАрдВ рд╣реИ):

cexplorer=# select * from reward ; 
 id | addr_id | amount | epoch_no | pool_id | block_id 
----+---------+--------+----------+---------+----------
(0 rows)

рдЗрд╕рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдпреБрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдирд╛рдо рд░рд╛рд╢рд┐ рд╣реЛрддреА рд╣реИ (рдпрд╛рдиреА рдпреБрдЧ рдХреЗ рд▓рд┐рдП рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕реНрдиреИрдкрд╢реЙрдЯ) рдФрд░ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдЦреЛрдЬреЗ рдмрд┐рдирд╛, рдореБрдЭреЗ рдпрд╣ рднреА рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ reserve рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреНрдпрд╛ рд╣реИред
image

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ - рд░рд┐рдЬрд░реНрд╡ рдореЗрдВ рдЖрдИрдЯреАрдПрди рдкреБрд░рд╕реНрдХрд╛рд░ рд╣реИрдВред рдкреБрд░рд╕реНрдХрд╛рд░ рддрд╛рд▓рд┐рдХрд╛ рдЙрд╕ рдпреБрдЧ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреА рд╣реИред рддреЛ рд╢реЗрд╖ рдкреБрд░рд╕реНрдХрд╛рд░ рд╕рднреА рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдХрд╛ рдпреЛрдЧ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдкреБрд░рд╕реНрдХрд╛рд░реЛрдВ рдореЗрдВ рд╕реЗ рдирд┐рдХрд╛рд╕реА рдШрдЯрд╛ рд╣реИред

рд╣рдордиреЗ рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ рдХреА рдЦреЛрдЬ рдХреАред 137 рдкреНрд░рддрд┐рдирд┐рдзрд┐рдпреЛрдВ рдиреЗ рдареАрдХ 500 рдПрдбреАрдП рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рд╣реИред рддрд╛рд▓рд┐рдХрд╛ рдирд┐рдХрд╛рд╕реА рдореЗрдВ рдбреАрдмреА-рд╕рд┐рдВрдХ рдбреАрдмреА рдХреЗ рдЕрдВрджрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдХреБрдЫ рдХреЛ рдЙрд╕рдХреЗ рдмрд╛рдж рдПрдХ рдирдХрд╛рд░рд╛рддреНрдордХ рд╕рдВрддреБрд▓рди рдорд┐рд▓рд╛ред рдпрд╛ рддреЛ рдпрд╣ рдЗрд╕ рдореБрджреНрджреЗ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИ рдпрд╛ рд╣рдо рдЕрдкрдиреА рдУрд░ рд╕реЗ рдХреБрдЫ рдЧрд▓рдд рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

рдПрдХ рдиреЗ 500 рдПрдбреАрдП рд╡рд╛рдкрд╕ рд▓реЗ рд▓рд┐рдпрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдбреАрдмреА-рд╕рд┐рдВрдХ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреЗрд╡рд▓ 200 рдПрдбреАрдП рдорд┐рд▓рд╛ рд╣реИред рдореЗрд░рд╛ рдЙрджрд╛рд╣рд░рдг 214 рдкрд░ рдпрд╛ рдЙрд╕рдХреЗ рдмрд╛рдж рдпреБрдЧ рдХреЗ рд▓рд┐рдП рд╣реИ

рдХреНрдпрд╛ https://github.com/input-output-hk/cardano-db-sync/pull/413 рдЗрд╕реЗ рднреА рдареАрдХ рдХрд░рддрд╛ рд╣реИ?

@mmahut рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИред #413 рдкрд░ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдмрдЧ рдЖрд╕рд╛рдиреА рд╕реЗ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдХрд╛рд░рдг рднреА рдмрди рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдореБрджреНрджреЗ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред @xdzurman ?

@mmahut рдпрд╣ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рд╣реИ? рдореБрдЭреЗ рдЗрд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЙрджрд╛рд╣рд░рдг рд╣реЛрдирд╛ рдЖрд╕рд╛рди рдкреНрд░рдЬрдирди рдорд╛рдорд▓рд╛ рдирд╣реАрдВ рд╣реИред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВрдиреЗ рдЗрд╕реЗ рд╕рдордп рд╕реЗ рдкрд╣рд▓реЗ рдХреЙрд▓ рдХрд┐рдпрд╛ рдерд╛ред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рд╣реЛ рдЧрдИ рд╣реИ, рдореИрдВ рдЗрд╕рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдХреБрдЫ рджрд┐рдиреЛрдВ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реВрдВрдЧрд╛ред

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рднреА рдареАрдХ рд▓рдЧ рд░рд╣рд╛ рд╣реИ, рдЕрднреА рдХреЗ рд▓рд┐рдП рдмрдВрдж рд╣реЛ рд░рд╣рд╛ рд╣реИред рдпрджрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдЖрддреА рд╣реИ рддреЛ рдмреЗрдЭрд┐рдЭрдХ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓реЗрдВред

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

reliablestaking picture reliablestaking  ┬╖  31рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

erikd picture erikd  ┬╖  7рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

xdzurman picture xdzurman  ┬╖  18рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

rcmorano picture rcmorano  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

erikd picture erikd  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ