Crate snarkvm_ledger_block

Source

Re-exports§

Modules§

Structs§

Constants§

Functions§

  • 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.