* reduce shard of testnet to 2
* remove harmony inner nodes in shard2 and shard3
* check shardID in VerifyCrossLink
* get NumShards by epoch instead of hardcodeed shards
* add Localnet in NewGenesisSpec
* do mayTestnetShardReduction in the block before the last block
* fix localnet epoch calculation
* not use old committee if shard reduction happens
* fix preLastBlock calculation
* do testnet shard reduction when propose new blocks
* enable 2s block period at epoch 0
* call IntermediateRoot once in the end
* skip inactive&baned validators when testnet shard reduction happens
* update ShardReductionEpoch to epoch 486
* [testnet] ninety percent voting power
to keep the network stable
* [testnet] 90% voting power at epoch 399
* fix: replace `testchain` with `testnetchain`
* Revert "Increase voting power of harmony nodes in testnet to 0.7 (#4200)"
This reverts commit 20edef740b.
* RESET TESTNET
* fix vrf testcase
* reduce number of nodes required for reseting testnet
* use only harmony nodes before staking epoch
* increase voting power of harmony nodes in testnet to 0.7
* decrease QuorumThreshold to 0.6 of testnet
* decrease QuorumThreshold of testnet to 51%
* change IsQuorumAchievedByMask
* HIP18: support allowlist
* sort allowlist by default order
* fix and add unit test
* simplified calculation of index of leader
* restore code of NthNextHmy()
* rename MaxLimit to MaxLimitPerShard and add comments
* init allowlist of testnet
* update allowlist
* change HIP18 epoch to TBD
* set HIP18 of testnet to 75840
* rename _BLS() to BLS()
* update comment
* add version of allowlist variable
* recover the travis_rpc_checker script
* update HIP18 epoch
* Add 3s block time and change of block reward
* fixes
* add new blocks per epoch for testnet
* remove unused code
* fix 2s changing logic
* enable 2s at epoch 73000 at testnet
* fix signers share computation to use only non-harmony nodes (#3008)
* Add LastEpochInCommittee at prestaking epoch too (#3014)
* write validator stats at the end of prestaking epoch (#3021)
* write validator stats at the end of prestaking epoch
* also need to write block reward accumulator
* [build] enable static build by default (#2885)
scripts/go_executable_build.sh -s (static build, default)
scripts/go_executable_build.sh -S (non-static build)
Signed-off-by: Leo Chen <leo@harmony.one>
* Code formatting fix based on `staticcheck` (#3023)
* fix some static check issues
* more fixes according to staticcheck
* add nil check on getHeader
* Add more log info
* [rpc] Revert change to v2 GetBalance RPC (#3037)
* Cherrypick crosslink related fixes from t3 to master. (#3045)
* Optimize crosslink verification logic and add more cache (#3032)
* make crosslink broadcast smarter and more efficient (#3036)
* adjust catch up speed to be a sane number
* Fix crosslink broadcast condition (#3041)
* Tx pool error report fix & local build fix (#3046)
* [tx_list] Add transaction after you can fetch tx cost
* [tx_pool] Add error sink reports for removed tx
* Correct log levels for known transactions
* Remove redundant hash to `enqueue` and `add` signatures
* Update tests for signature changes
* [build] Fix local build for MacOs
* [tx_pool] Correct typo & logging level for known tx
* [config] Create Testnet config
* [node.sh] update testnet network config
* [config] correct testnet config
* [main] Enable beacon sync for explorer nodes (#3059)
* [apr] should not use snapshot from last epoch, use current epoch snapshot (#3051)
* use snapshot total delegation instead of current total delegation
* should not use snapshot from last epoch, use current epoch snapshot (#3049)
Co-authored-by: Rongjian Lan <rongjian.lan@gmail.com>
Co-authored-by: Rongjian Lan <rongjian.lan@gmail.com>
* cherrypick log level change
* [rpc] Add active status back to Validator information
[validator] Fix typo for ValidatorRPCEnhanced
[Makefile] Change make exe to build non-static by default
* [network] Added caching to node server (#3048)
* [network] Added caching to node server
* [network] renamed two singleflight.Group
* [network] added two error handling
* [network] added forget logic for single flight
* [network] changed single flight to lru cache solution
* [network] adjusted the cache size
* [network] changed cache size to 10000
* Transaction api improvements (#3057)
* [node] Add option to broadcast invalid tx (on by default)
* update main args to take in broadcast invalid tx
* update node.sh for new broadcast invalid tx option
* [rpc] Do not submit transaction if tx has been finalized
* Support legacy behavior and not return errors on tx submission
* [main] make broadcasting invalid tx default false
* [node] Fix formatting
* Add timeouts for the explorer HTTP service
* [test] State trans unit test (#3043)
* completing create-validator tests
generalizing create validator tests, started with edit validator tests
one round completed before major refactor
* [test] finished coding test TestCheckDuplicateFields
* [test] finished debug TestCheckDuplicateFields
* [test] Added TestDescription_EnsureLength
* [test] added test in validator_test.go TestUpdateDescription
* [test] Added test TestComputed_String
* [test] refactored TestValidatorSanityCheck and added some message in error message returned from sanity check
* [test] removed test index for debugging
* [test] Added test TestValidatorWrapper_SanityCheck. Added value check for TestMarshalUnmarshalValidator. Fixed rlp usage defect in UnmarshalValidator
* [test] added test TestVerifyBLSKeys
* [test] added test TestContainsHarmonyBLSKeys
* [test] added test TestCreateValidatorFromNewMsg
* [test] fixed some tests errors
* [test] added test TestUpdateValidatorFromEditMsg, last editted the test file, finished testing validator_test.go
* [staking] added numeric.Dec.Copy method
* [staking] added CommissionRates.Copy
* [staking] add nil case handle to copy method and related test case
* [test] added nil case for commissionRates.Copy test
* [staking] finished CreateValidator.Copy and related test case
* [staking] added EditValidator.Copy method and related test case
* [test] added zero test cases for Copy method
* [staking] implemented Delegate.Copy and related unit test case
* [staking] added Undelegate.Copy and CollectReward.Copy method. Implemented corresponding test cases
* [test] added two more simple unit tests
* [test] solving the merge conflict with deep copy fix
* [test] added schedule for sharding
* [test] refactored double_sign_test.go
* [test] comment out all test cases for now.
* [test] added record Copy method for testing
* [test] added the first test case in TestVerify
* [test] finished test TestVerify
* [test] Added test TestVerify, TestApplySlashRate, TestSetDifference
* [test] half through TestDelegatorSlashApply
* [test] fix the problem cause by unsafe usage of big.Int
* [staking] added the copy methods to validatorWrapper
* [test] added test cases for copy method for staking/validatorWrapper
* [test] added test case TestApply
* [test] added test case TestRate
* [test] fix the golint errors
* [test] removed commented out unit test code
* [test] remote the empty line in imports
* [test] moved copy methods to stake_testing module
* [test] removed usage of interface stateDB
* [test] removed empty lines in imports
* [test] fixed golint package name issues
* [test] removed a todo when writing code
* [test] moved record.Copy to staking/slash/test
* [test] add some changes
* [test] added prototypes in staketest module
* [test] fix the golint issue in staketest
* [test] make prototype more beautiful
* [test] refactored test TestCheckDuplicateFields
* [test] add createValidator test data
* [test] added positive test case for VerifyAndCreateValidatorFromMsg
* [test] added create validator test
* [test] added the positive test case for TestVerifyAndEditValidatorFromMsg
* [test] added the tests case TestVerifyAndEditValidatorFromMsg
* [test] fix one of the error is not triggered as expected
* [test] more changes in test
* [test] fix the positive test data for TestVerifyAndDelegateFromMsg
* [test] Fixed two comment golint errors
* [test] added delegate tests
* [test] added a make function. WIP
* [test] added undelegate positive test
* [test] added negative test cases for undelegate
* [test] added positive test. not passed. Need to add assert method in test suites
* [test] added equal function to check Validator Equality
* [test] added equals for staketest
* [test] replaced deep equal with new equal methods:
* [test] removed unused codes
* [test] Finishing touch
* [test] fix comment golint issue
* [test] removed dead code in staking_verifier_test.go
Co-authored-by: Ganesha Upadhyaya <ganeshrvce@gmail.com>
* changed the sync port to dns port in flag
* [network] Limit client sync connection (#3071)
* [network] limit client connected peers
* Changed signature and added tests
* Set secure permissions on generated blskey pass file in node.sh
* Fix spellin gtypo in node.sh
* fix latest param handling in api v1
* added comment for the isGreaterThanLatestBlockNum check
* fix a nil pointer crash due to previous revert
Signed-off-by: Leo Chen <leo@harmony.one>
* fix nil pointer crash
Signed-off-by: Leo Chen <leo@harmony.one>
* fix nil pointer of block
Signed-off-by: Leo Chen <leo@harmony.one>
* [rpc] add viewID and epoch to RPCMarshalBlock (#3009)
* [rpc] add viewID and epoch to RPCMarshalBlock
* add apt-get update
* Do not rollback current block on failed block sync (#3101)
Co-authored-by: Ganesha Upadhyaya <ganeshrvce@gmail.com>
Co-authored-by: Rongjian Lan <rongjian.lan@gmail.com>
Co-authored-by: Jacky Wang <jackyw.se@gmail.com>
Co-authored-by: Janet Liang <56005637+janet-harmony@users.noreply.github.com>
Co-authored-by: Daniel Van Der Maden <dvandermaden0@berkeley.edu>
Co-authored-by: Janet Liang <janet@harmony.one>
Co-authored-by: Sebastian Johnsson <sebastian.johnsson@gmail.com>
Co-authored-by: hsiung <hsiung@pinterest.com>
Co-authored-by: Dennis Won <jhwon0820@gmail.com>
Co-authored-by: Yishuang Chen <34232522+ivorytowerdds@users.noreply.github.com>
* [test] added schedule for sharding
* [test] refactored double_sign_test.go
* [test] comment out all test cases for now.
* [test] added record Copy method for testing
* [test] added the first test case in TestVerify
* [test] finished test TestVerify
* [test] Added test TestVerify, TestApplySlashRate, TestSetDifference
* [test] half through TestDelegatorSlashApply
* [test] fix the problem cause by unsafe usage of big.Int
* [staking] added the copy methods to validatorWrapper
* [test] added test cases for copy method for staking/validatorWrapper
* [test] added test case TestApply
* [test] added test case TestRate
* [test] fix the golint errors
* [test] removed commented out unit test code
* [test] remote the empty line in imports
* [test] moved copy methods to stake_testing module
* [test] removed usage of interface stateDB
* [test] removed empty lines in imports
* [test] fixed golint package name issues
* [test] removed a todo when writing code
* [test] moved record.Copy to staking/slash/test
* [types] Add TransactionErrorSink to report failed txs
[node] Create ErrorSink handler for unique error msgs
Implemented with a LRU cache.
[node] Rename ErrorSink to TransactionErrorSink
* Rename RPCTransactionError to TransactionError
[node] Make tx error sink not return err on Add & Remove
[node] Make tx errorSink Contains check take string as tx hash param
[errorsink] Move tx error sink into errorsink pkg
[errorsink] Rename Errors and Count methods
[errorsink] Rename NewTransactionErrorSink to NewTransactionSink
[types] Move error sink to core/types
* Rename NewTransactionSink to NewTransactionErrorSink
* [types] Fix log msg for unfound errors
* [types] Rename TransactionError to TransactionErrorReport
* [core] Remove RPCTransactionError & refactor tx_pool to use TxErrorSink
* [staking] Remove RPCTransactionError
* [node] Refactor tx_pool init to use new TxErrorSink
* [main] Construct transaction error sink before initing the node
* [node] Refactor error sink reporting at RPC layer
* [rpc] Refactor returned type of ErrorSink RPCs to 1 type
* [core] Remove tx from TxErrorSink on Add to tx_pool
* [types] Make NewTransactionErrorSink not return err
* [node] Make node.New create error sink
* [cmd] Revert to origin main.go
* [core] Add TxErrorSink unit test & fix bad ErrExcessiveBLSKeys in tests
* [testnet config] Change testnet config to allow for 5*4 external keys
* [cmd] Revert main.go to original node instantiation
* [rpc] Add GetPoolStats rpc to fetch pending and queued tx counts