Calculate the V1 block reward, given the total supply, block time, coinbase reward, and transaction fees.
R_staking = floor((0.05 * S) / H_Y1) + CR / 3 + TX_F.
S = Total supply.
H_Y1 = Expected block height at year 1.
CR = Coinbase reward.
TX_F = Transaction fees.
Calculate the V2 block reward, given the total supply, block interval, coinbase reward, and transaction fees.
R_staking = floor((0.05 * S) * clamp(I, MIN_BI, MAX_BI) / S_Y) + CR / 3 + TX_F.
S = Total supply.
I = Seconds elapsed since last block.
S_Y = Seconds in a year (31536000).
CR = Coinbase reward.
TX_F = Transaction fees.
MIN_BI = Minimum block interval.
MAX_BI = Maximum block interval.
Calculates the V1 coinbase reward for a given block.
R_coinbase = R_anchor(H) * min(P, C_R) / C
R_anchor = Anchor reward at block height.
H = Current block height.
P = Combined proof target.
C_R = Remaining coinbase target.
C = Coinbase target.
Calculates the V2 coinbase reward for a given block.
R_coinbase = R_anchor(H) * min(P, C_R) / C
R_anchor = Anchor reward at block height.
H = Current block height.
P = Combined proof target.
C_R = Remaining coinbase target.
C = Coinbase target.
Calculate the puzzle reward, given the coinbase reward.
The puzzle reward is 2/3 of the total coinbase reward and paid out to the provers. The other 1/3 of
the coinbase reward is included in the block reward and paid out to stakers.
This function calculates the next targets for the given attributes:
latest_cumulative_proof_target: The latest cumulative proof target.
combined_proof_target: The combined proof target of solutions in the block.
latest_coinbase_target: The latest coinbase target.
last_coinbase_target: The coinbase target for the last coinbase.
last_coinbase_timestamp: The timestamp for the last coinbase.
next_timestamp: The timestamp for the next block.