* [core] Add tx-pool txn interface & update supporting components
* Add txn interface (`PoolTransaction`) for tx-pool
* Update tx_journal to handle pool's txn interface
* Update tx_list to handle pool's txn interface
* [staking] Satisfy `PoolTransaction` interface & move error sink types
* Implement `Protected`, `ToShardID`, `To`, `Data`, `Value` and `Size`
for `StakingTransaction` to satisfy `PoolTransaction` interface
* Refactor `Price` to `GasPrice` for `StakingTransaction` to
satisfy `PoolTransaction` interface
* Move error sink related components to transaction.go
* Expose `VerifyBLSKey` and `VerifyBLSKeys`
* [core] Generalize tx pool & refactor error sink logic
* Refactor txn logic to use `PoolTransaction` and `PoolTransactions`
* Add `txPoolErrorReporter` to handle reporting to plainTx and stakingTx
error sinks
* Remove old & unpayable txs error reports (to error sink) since errs
are already reported when adding the txs
* Fix known transaction error report when adding txn batches
* Add error sink reporting when failed to enqueue txs
* [node] Fix error sink & update tx pool interaction
* Integrate staking transaction in tx-pool
* Remove staking transaction error sink
* [hmy api] Integrate staking transactions from tx pool
* Remove looking at tx pool for `GetTransactionByHash`
* Add `PendingStakingTransactions` and update `PendingTransactions` to
only return plainTx
* [tests] Update all tests for tx pool txn interface & staking err sink
* Update transactions to `PoolTransaction` interface
* Remove `CommitTransactions` staking txn error sink
* Add basic staking txn tests to tx pool tests
* [node] Make all node broadcast staking tx and plain tx
* [core + staking] Separate staking msg check and put in tx pool
* Move `Validator` specific sanity check into its own method and
call said method in `ValidatorWrapper` sanity check
* Create staking msg verifiers and preprocessors in `staking_verifier.go`
* Remove staking msg verification on all staking msg applications
in `state_transition.go` and call new staking msg verifiers & preprocessors
* Add staking msg verification to tx pool
* Remove `ToShardID` from `PoolTransaction` interface and remove trivial
implementation of `ToShardID` in `StakingTransaction`
* [chain][network] Factor out block reward from internal chain to proper package
* [network] Fill out record intended for RPC
* [staking][network] NewUtilityMetricSnapshot
* Expose rewards to RPC API
* Change json field
* Fix lint
* Remove marshalling
* Remove import
* Optimize median raw stake, total stake, get stake methods
* Remove unnecessary methods and add thread safety
* Review feedback
* Remove lock/unlock
Co-authored-by: Edgar Aroutiounian <edgar.factorial@gmail.com>
* [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>
* [project] Rename specs to specifications b/c gcc thinks specs is a special file
* [rpc][node] Refactor failed stking txn buffer as container/ring, track failed plain txn as well
* [rpc] Expose RPC for staking, plain txn error sink
* [rpc][staking] Quick way to add an staking transaction error sink for rpc consumption
* [staking] Satisfy Travis
* [rpc][staking] Expose staking transaction errors using slice, protect mutex
* [staking][rpc] Use string name of Directive
* [staking][rpc] Change func signature in tests
* [staking][rpc] Protect read with lock
* [staking] Sign staking transaction with standalone staking-iterate CLI
* [staking] golint
* [staking] Fix for build, move transaction under staking/types
* [staking] Send RLP signed staking transaction, receive in RPC
* [staking] Organize staking packages, send over specific staking message
* [staking] Satisfy jenkins build in temp CLI staking-iterate
* [staking] Adjust naming of types
* [staking] Fold separate package into types as initial creation by RJ
# This is the 1st commit message:
Fix travis
# This is the commit message #2:
[cleanup] remove is_genesis flag
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #3:
[nodetype] add nodetype to replace is_explorer
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #4:
fix beacon sync channel blocking issue
# This is the commit message #5:
use lastMileMux to protect lastMileBlock queue to avoid potential blocking; use sleep instead of ticker
# This is the commit message #6:
Fix the beacon committee check
# This is the commit message #7:
[release] add release action to go_executable_build.sh
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #8:
[node.sh] add -d option
-d download only
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #9:
[node.sh] add -T node_type option
-T node_type support node type (validator/explorer)
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #10:
[node.sh] backward compatible with older harmony binary
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #11:
[node.sh] support -i shard_id option
-i shard_id specify shard_id, this is applicable only to
explorer node
Signed-off-by: Leo Chen <leo@harmony.one>
# This is the commit message #12:
Revisited api
# This is the commit message #13:
Fix rpc integration
# This is the commit message #14:
address some minor issues in comments and code
# This is the commit message #15:
addressed comments on others' buckets
# This is the commit message #16:
Add Global Access to OS Temp Directory Variable and Move DHT Files Into Temp Directory
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.