Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore(consensus): stabilize consensus algorithm (#284)
* fix: fix the most of the compile errors * chore: update import section * fix: regenerate remote_client.go mock, some fixes by feedback * fix: remove unused global variables * fix: some fixes for 0.35 backport * fix: some fixes for 0.35 backport * fix(evidence): fix all failed tests in evidence package * fix(store): fix unit tests for internal/store package * fix(blocksync): fix unit tests for internal/blocksync package * fix(p2p): remove redundant sleep from TestMConnTransport_Listen * fix(blocksync): fic blocksync/v2 test * fix(rpc): allow reading "request_quorum_info" param for rpc "validators" handler * fix(state): fix internal/state package * fix(state): fix internal/statesync package * fix(test): fix internal/test/factory package * fix(privval): some fixes for unit tests * fix(privval): fix tests TestPrivvalVectors, TestStateSyncVectors * fix(consensus): fix consensus logic and tests * fix: remove generating AppHash from genesis * fix: remove debug printing * fix(mempool): fix TestSerialReap * fix(rpc): fix TestBroadcastEvidence_DuplicateVoteEvidence * fix: cycle dependency in "types" package * fix(types): modify and remove some test in types package * refactor: remove unnecessary type conversion, update comment docs * fix: light client package * refactor: improve validator-set generator * fix: some modification to ber able to run unit tests * fix: increase MaxHeaderBytes till 646 bytes * fix: TestTxFilter unit test at tx_filter_test.go * fix: TestGCFifo, TestGCRandom, reduce a size of elements to 100 * fix: e2e generator, remove UnmixedP2P and Legacy test cases * refactor: remove a few unused variables and functions, clean up the code * fix: modify building of a docker image for e2e, update dashcore.toml * refactor: modification after PR feedback * fix: some modifications to fix e2e test * wip * fix: revert Client.getLightBlock fom upstream to be able to handle "deadline exceeded" properly * chore: clearing code from temporary debug logs * refactor: reduce timeout for requesting node status from e2e runner * fix: update LastStateID and LastCoreChainLockedBlockHeight during state synchronization * fix: add a task for compiling tests to main tasks in e2e Makefile * fix: modify dashcore.toml * fix: modify a light client to use default height as 0 * fix: update code style * chore: revert logging to upstream version * refactor: increased timeout from 20 sec to 30 sec due to sometimes node needs a bit more time to sync * refactor: revert Client.compareNewHeaderWithWitness to upstream version * fix: remove redeclared imported package * fix: RPCStateProvider uses "truest-height" as initial height for downloading * refactor: sync dashcore.toml with ci.toml * fix(node): change TestMaxProposalBlockSize test to support tenderdash values and behaviour * fix(ci): modify coverage.yml * fix: modify app/app/test.sh after backport v0.35 * fix: update coverage.yml git workflow * fix: make changes to fix lint issues using the golangci-lint report form * fix: make changes to fix lint issues using the golangci-lint report form * wip * Fix compiling of tenderdash for arm architecture (#257) * fix: remove bls-signatures from deps of build-linux task * fix: add "post setup go" task to replace installed go version in /bin directory * fix: add sudo to install tenderdash * chore(backport): revert changes * chore: replace default go version in /bin on go 1.17 * fix: use a copy of "Precommit" fo fix a race condition * chore: remove condition at "post-setup go 1.17" * chore: revert to previous version * chore: reduce timeout to 20 sec for waiting for nodes * chore: increased wait-for-height timeout to 1 min * chore: update dashcore.toml * chore: remove duplicated debug log entry * chore: modify of counting validators for e2e testnet * chore: fix minor lint issue * chore: modyfy rotate.toml * chore: update e2e.yml CI settings * chore: change log level for e2e * refactor: change an approach of updating a node keys and proTxHash (for validator) * chore: update dashcore.toml and rotate.toml * refactor: update preparing testnet settings for e2e * refactor: declare Validator interface, add implementation of this interface for PubKey, refactor public key validation in validateValidatorUpdates function * chore: fix a couple of lint issues and remove redundant debug printing * chore: add missed code to control the proof block creation algorithm. * refactor: change a type of node proTxHash from pointer * feat: define NodeInfoRepository and implement it in PeerManager to be able to store NodeInfo * fix: p2p/switch_test.go * chore: change names of field and options function related to node-info repository * fix: decode peer-state into json byte slice manually to prevent data race * fix: extend MockPV synchronization for several exportable methods * chore: modify after merge * chore: update timeouts and entrypoint for running e2e tests * fix: modify and fix e2e implementation * fix: some stabilization changes for light client implementation * refactor: implement a validation of public key as a part of a key itself, that is used in block execution process * fix: some modifications for statesync * fix: update NodeInfo.ProTxHash for validator node during node initialization * refactor: add "ProTxHashValidate" function * refactor: add proTxHash field into PeerInfo protobuf * refactor: add proTxHash in peerInfo * refactor: move the code that routerDashDialer is not responsible into PeerManager * refactor: define DashDialerOptions struct to be able to provide NodeAddress and ProTxHash, change a signature of the method ConnectAsync in DashDialer * chore: update doc blocks for DashDialer(s) * refactor: support ProTxHash in p2ptest * refactor: improve HexByte.ShortString, if the length is not enough then return an empty string * refactor: revert DashDialer and ValidatorConnExecutor to initial version * feat: retrieve proTxHash from NodeInfo struct after handshake, add proTxHash to PeerUpdate and PeerState * fix: check peer-info for existence before to retrieve proTxHash for persisting * refactor: remove all references to NodeInfoRepository * chore: remove a couple of redundant methods after the merge * chore: fix typo * chore: temporary disable tcp NodeID resolver as it breaks running ValidatorConnExecutor component * chore: disable updating-connections for genesis/init-chain validators * fix(consensus): Decrease memory used by debug logs * refactor: enhance performance of getLogFields func * chore(consensus): further optimization of logging mem usage * fix: modify after merge * fix(dash/quorum): tendermint stops when remote validator node id lookup fails * fix(p2p): remove noisy logs from p2p package In DEBUG log level, we did create tons of P2P logs that severely affects performance and disk usage. * fix: peer proTxHash is empty in PeerState * chore: remove redundant log file * fix: vote channel size too small for commit messages * fix: deadlock in PeerState * fix(consensus): fix race condition in processPeerUpdate * fix(dash/qorum): don't try to connect to myself * fix(p2p): proTxHash not updated for incoming connections * build(e2e): enable deadlock detection in e2e tests * refactor(consensus): improve logging * test(e2e): enable debug logs in dashcore * chore: try to fix commit exchange (WIP) * fix(types): support zero ValidatorAddress * test(p2p): fix p2p network tests * fix(consensus): fix race conditions and deadlocks * feat(sync): add lock timeout to deadlock detection library * fix(reactor): panic fixed * chore(sync): mutex debugging helper * chore(types): Improve logging of validator sets * chore(sync): set lock timeout to 30s * refactor(dashcore): use Logger in dash core rpc client * refactor(logging): log label "peer" instead of "peer_id" * chore(statesync): logging improvements * refactor(statesync): publish a commit event after successful sync operation * fix(consensus): deep copy proTxHash in peer events * fix(consensus): nodeID and proTxHash mismatch in consensus tests * fix(sync): revert deadlock logic changes * refactor(consensus): cleanup reactor gossip logic * fix: detected and fix data race of reading validator's proTxHash for logging * fix(consensus): don't panic on invalid vote * fix(consensus): don't process votes when not a validator * fix(p2p): dash dialer concurrent map access * fix(e2e): e2e test of manifest generation * refactor(e2e): add a feature to wait for a mockcoreserver is ready * fix(consensus): detect and fix data race during update "round state" of a peer in gossipDataRoutine * fix(typo): modify of an error log * fix(consensus): the test TestReactorInvalidBlockChainLock has wrong order of clean up functions * refactor(bits-array): fix potential deadlock in bit_array.go * fix(consensus): don't try to send commit for height 0 * chore(types): improve logging * chore(consensus): improve logging * test(types): add proposal verification test for hardcoded proposal * test(consensus): enable prevoting NIL in TestReactorValidatorSetChanges * refactor(privval): remove some unused functions from file pv * chore(p2p): apply peer review feedback * refactor(statesync): publish a commit event after successful sync operation (#289) * refactor(bits-array): fix potential deadlock in bit_array.go (#294) * fix(ci): broken arm build (#295) * fix(ci): update apt cache before install deps * chore: remove a few files that were committed by accident * chore: rollback error initializing * chore: rollback one line function * chore(consensus): apply code review feedback Co-authored-by: shotonoff <[email protected]> Co-authored-by: Dmitrii Golubev <[email protected]> Co-authored-by: Dmitrii Golubev <[email protected]>
- Loading branch information