* [chain][network] Factor out block reward from internal chain to proper package
* [network] Fill out record intended for RPC
* [staking][network] NewUtilityMetricSnapshot
* [rpc] Merge squash from remote flicker-harmony/pr_rewards
Co-authored-by: flicker-harmony <52401354+flicker-harmony@users.noreply.github.com>
* [availability] Add function setting Validator as Inactive=true if meets threshold
* [availability] Set Validators that did not meet signing threshold to inactive
* [availability] Wrap Setting invalid validator only if new epoch forthcoming
* [availability] Return right error value
* [staking] Add Active field to EditValidator staking txn
* [availability] Add validator snapshot type, thread throughout codebase
* [availability] Adjust check availability on a per epoch basis
* [availability] Address PR comments, simplify collection of validators
* [availability] Fold ValidatorSnapshot into ValidatorWrapper
* [blockchain] Move update of validator list to after availability removal of validator
* [availability] Move availability signing counts to Wrapper, out of Stats
* [availability] Record epoch on each validator update as well
* [availability] Remove update validator stats in writeblockwithstate, update validator signing in proposal of new block to get correct state written
* [availability] Mutate state for validators signing in finalize
* [availability] Set unavailable validators in finalize
* [consensus] Remove error level for non-error log
* [node] No point to broadcast crosslink if we are not in cross link time yet
* [availability] Remove moved blocksigners function
* [core] Give more context in failure
* [availability] Provide set as filter for which validators to track on signing increase and set inactivity
* [blockchain] Write snapshot of validator as is
* Fix format in staking transaction (#2127)
* [availability] Move increment of validator signing counter to before shard state proposal
* [availability] Kick out inactive validators right before new shard state proposal
* [availability] Keep logic of getting shard members as was
* [state-transition] Attach Epoch number to create validator txn
Co-authored-by: flicker-harmony <52401354+flicker-harmony@users.noreply.github.com>
* [votepower] Allow negative diff, explicit check sum to one
* [votepower] Handle error value from compute in test
* [votepower] Change log as suggested in PR comment
* [votepower] Check sum of voting power is 1 only when have at least one staked validator
* [reward] Add reward Schedule table from spreadsheet
* [reward][schedule] Make denom a function of time block rather than fixed 12.6 billion
* [reward] Fix latent mistaken because of .UnixNano usage, header uses seconds
* [reward] Add Accumulator of rewards in DB
* [reward] Update Accumulator after checking all block rewards to state
* [reward] Address PR comments #1
* [reward] Make fresh base 18 block reward always
* [reward] Remove dead method on fakeChainReader
* [committee] Adjust logging of prev,next committee on each usage of updateconsensusinformation
* [reward] Set block accumulator only once to 0 when flip to staking epoch
* [reward] Separate out condition to write block reward to 0 once past staking epoch (fix mistake)
* [reward] lint
* [reward] Initial write of reward accumulator needs lower-level first usage
* [reward] Give block reward stake adjustment in right denomination
* [reward] Calculate current % staked of all active validators, put down total tokens & target % stake
* [reward] Dynamic adjust of block-reward as economics report suggests
* [reward] Use shardstate to know if last block
* [reward] Log out dynamic adjustment, note about case if blockreward becomes negative
* [staking][reward] Give out block reward for cross links
* [staking][reward] Wrap reward logic based on epoch
* [votepower] Factor out votepower b/c need to compute elsewhere as well
* [reward][votepower] Award beaconchain committee members their percent due
* [reward] Only reward non-harmony slots
* [reward] Factor out only signers by commit bitmap
* [reward][votepower] Fix leftover merge based naming changes, fix nil pointer map
* [reward] Handle cross link payment succicently
* [reward] Remove unnecessary helper
* [reward] Handle legacy case of one-node-one-vote block reward (pre-staking)
* [reward] Incorrect log of reward
* [reward] Adjust back to big.Int for legacy rewarding
* [reward] Add +1 for i nonce
* [reward] Abandon formula for nonce, sizes not reliable, easier to do explicit bucketing
* [reward] Remove Prints, fix mistake on using wrong header
* [quorum] Adjust log print out for IsQuorumAchieved
* [reward] Redundant check in code path that only runs in >= staking-epoch
* [reward] Fix mistake on staked block undoing effect of voting power-sharing
* [reward] Factor out interface for block-reward
* [reward] Use factored out block rewarder which is actually same object as quorum.Decider
* [quorum] Fix type error because of silly internal/common.Address vs common.Address of ethereum
* [testing] Somehow this port being in tandem with previously used one fixes a build timing issue
* [staking] Factor some project errors into values core/pkg. Thread stking Txs through Finalize
* [staking] Incorporate Chao code from PR 1700
* [staking] Remove dead staking code, create const values, factor out dec from staking
* [staking] Remove voting power for now till discussion, factor out more error values
Also introduce NewHeader and NewHeaderWith functions. The latter is
friendlier for create-and-initialize expressions, and can be used
in place of the old &Header{field: value, ...} syntax.