Commit e79ba5fe88 introduced an off-by-one
error which caused CX-enabled header to be introduced one epoch later
than expected, i.e. at CrossTxEpoch + 1, where it should be
CrossTxEpoch. This was caused by a vague, confusing naming of
IsCrossTx(epoch) function of ChainConfig: The name did not clarify
whether it meant introduction of CX-enabled header and processing of
ingress receipts (which occurs at CrossTxEpoch) or acceptance of
cross-shard transactions (which occurs at CrossTxEpoch+1).
Introduce and use params.(*ChainConfig).HasCrossTxFields which handles
the former case.
Previously, only nodeconfig.GetShardConfig initialized this; calling
SetNetworkType before GetShardConfig resulted in GetShardConfig calls to
return empty network type.
* [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