Calculate the block reward based on the network’s consensus version, determined by the given block height.
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.
Calculate the coinbase reward based on the network’s consensus version, determined by the given block height.
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 coinbase target for the given block timestamps and target.
Calculate the minimum proof target for the given 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.