diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9bc0ec948..4b4167294 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,7 @@ jobs: - uses: actions/setup-go@v3.5.0 with: go-version: "1.19" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: technote-space/get-diff-action@v6 with: PATTERNS: | @@ -55,7 +55,7 @@ jobs: - uses: actions/setup-go@v3.5.0 with: go-version: "1.19" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: technote-space/get-diff-action@v6 with: PATTERNS: | @@ -80,7 +80,7 @@ jobs: - uses: actions/setup-go@v3.5.0 with: go-version: "1.19" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: technote-space/get-diff-action@v6 with: PATTERNS: | diff --git a/.github/workflows/check-generated.yml b/.github/workflows/check-generated.yml index f0bfd723d..d5523b6f9 100644 --- a/.github/workflows/check-generated.yml +++ b/.github/workflows/check-generated.yml @@ -25,13 +25,13 @@ jobs: with: go-version: "1.19" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: "Check generated mocks" run: | set -euo pipefail - readonly MOCKERY=2.23.1 # N.B. no leading "v" + readonly MOCKERY=2.33.2 # N.B. no leading "v" curl -sL "https://github.com/vektra/mockery/releases/download/v${MOCKERY}/mockery_${MOCKERY}_Linux_x86_64.tar.gz" | tar -C /usr/local/bin -xzf - make mockery 2>/dev/null @@ -51,7 +51,7 @@ jobs: with: go-version: "1.19" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: fetch-depth: 1 # we need a .git directory to run git diff diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index e6c15eebe..aff9dc0f6 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -7,7 +7,7 @@ on: inputs: tag: type: string - description: 'Docker tag' + description: "Docker tag" required: false release: types: @@ -17,7 +17,7 @@ jobs: build: runs-on: ubuntu-22.04 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - name: Set up QEMU uses: docker/setup-qemu-action@master @@ -48,7 +48,7 @@ jobs: with: result-encoding: string script: | - if (github.ref_type == 'tag' && !contains(github.ref_name,'-dev')) { + if ('${{ github.ref_type }}' == 'tag' && ! '${{ github.ref_name }}'.includes('-dev')) { return 'tenderdash,stable' } return 'tenderdash,dev,deadlock' diff --git a/.github/workflows/docs-deployment.yml b/.github/workflows/docs-deployment.yml index 082484dd5..64dba8c76 100644 --- a/.github/workflows/docs-deployment.yml +++ b/.github/workflows/docs-deployment.yml @@ -28,7 +28,7 @@ jobs: - name: Install generator dependencies run: | apk add --no-cache make bash git npm - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: # We need to fetch full history so the backport branches for previous # versions will be available for the build. @@ -49,7 +49,7 @@ jobs: permissions: contents: write steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: actions/download-artifact@v3 with: name: build-output diff --git a/.github/workflows/e2e.yml b/.github/workflows/e2e.yml index aa4670f50..15afabe99 100644 --- a/.github/workflows/e2e.yml +++ b/.github/workflows/e2e.yml @@ -33,7 +33,7 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2.4.1 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: true - uses: technote-space/get-diff-action@v6 diff --git a/.github/workflows/jepsen.yml b/.github/workflows/jepsen.yml index 04e599564..5a947f928 100644 --- a/.github/workflows/jepsen.yml +++ b/.github/workflows/jepsen.yml @@ -46,7 +46,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout the Jepsen repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: repository: 'tendermint/jepsen' diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0affc7a51..846eef16b 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -25,7 +25,7 @@ jobs: CGO_LDFLAGS: "-L/usr/local/lib -ldashbls -lrelic_s -lmimalloc-secure -lgmp" CGO_CXXFLAGS: "-I/usr/local/include" steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 with: submodules: true - uses: actions/setup-go@v3.5.0 diff --git a/.github/workflows/markdown-links.yml b/.github/workflows/markdown-links.yml index 82a8b11c1..d8e6ac6e7 100644 --- a/.github/workflows/markdown-links.yml +++ b/.github/workflows/markdown-links.yml @@ -15,7 +15,7 @@ jobs: markdown-link-check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: technote-space/get-diff-action@v6 with: PATTERNS: | diff --git a/.github/workflows/markdown-linter.yml b/.github/workflows/markdown-linter.yml index 37324acad..6f28587ae 100644 --- a/.github/workflows/markdown-linter.yml +++ b/.github/workflows/markdown-linter.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout Code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install dependencies run: sudo apt-get update && sudo apt-get install -y libpcap-dev - name: Lint Code Base diff --git a/.github/workflows/proto-lint.yml b/.github/workflows/proto-lint.yml index 271decc37..65b894272 100644 --- a/.github/workflows/proto-lint.yml +++ b/.github/workflows/proto-lint.yml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest timeout-minutes: 5 steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: bufbuild/buf-setup-action@v1.14.0 - uses: bufbuild/buf-lint-action@v1 with: diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b90ab8ba2..0992fad38 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index aa7578b6f..5d98b88e3 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -19,7 +19,7 @@ jobs: - uses: actions/setup-go@v3.5.0 with: go-version: "1.19" - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: technote-space/get-diff-action@v6 with: PATTERNS: | diff --git a/CHANGELOG.md b/CHANGELOG.md index c1232d777..596afdac0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,22 +1,193 @@ +## [0.13.0] - 2023-09-13 + +### Bug Fixes + +- PrepareProposal should not be called during replay (#678) + +### Features + +- Implement statesync spec for the new approach (#663) +- Add wait for masternode-status "ready" (#659) + +### Miscellaneous Tasks + +- Merge changes from 'v0.11.3' into v0.12 +- Update changelog and version to 0.13.0-dev.2 (#664) +- Improve logs (#679) +- Update mocks and .proto files after merge 12 to 13 + +### Refactor + +- Implement statesync peer manager (#648) +- Migrate peer-manager on generic store (#666) +- Change go module to dashpay/tenderdash (#670) + +### Build + +- Bump actions/checkout from 3 to 4 (#676) +- Regenerate mocks + +## [0.11.3] - 2023-06-29 + +### Bug Fixes + +- [**breaking**] Remove unused SIGNED_MSG_TYPE_COMMIT (#638) +- [**breaking**] Use millisecond resolution of block time (#650) +- Prod image high cpu load due to deadlock detection (#652) + +### Miscellaneous Tasks + +- Update changelog and version to 0.13.0-dev.1 (#651) +- Update changelog and version to 0.11.3 + ## [0.12.0] - 2023-05-23 -### ABCI++ +### Features -- Update new protos to use enum instead of bool (#8158) +- Add ability to write logs in a file (#632) -### ADR +### Miscellaneous Tasks -- Protocol Buffers Management (#8029) +- Catch up the changes from master into v0.11 dev (#629) + +### Backport + +- Catch up with the latest commits from v0.11 to v0.12 (#631) +- Catch up the changes from v0.11 to v0.12 (#636) + +## [0.11.1] - 2023-05-02 + +### Bug Fixes + +- [**breaking**] ProcessProposal should get CoreChainLockedHeight from block (#625) +- Update quorum params (#626) + +### Miscellaneous Tasks + +- Update changelog and version to 0.11.1 (#627) + +### Testing + +- Sign_bytes tests synchronized with rs-tenderdash-abci (#623) + +### Build + +- Bump github/super-linter from 4 to 5 (#624) + +## [0.11.0] - 2023-04-04 + +### Bug Fixes + +- ProcessProposal executed twice for a block (#516) +- Proposer-based timestamp broken during backport (#523) +- Improve wal replay mechanism (#510) +- Decrease log verbosity by logging send/recv logs on trace level (#533) +- Ensure process proposal was called on commit processing (#534) +- Ensure process proposal runs on complete proposal (#538) +- Peer notifications should be async to avoid deadlock in PeerUp (#509) +- Improve flaky TestWALRoundsSkipper (#539) +- Flaky TestReactor_Backfill test (#549) +- [**breaking**] Quorum type set to 0 during replay at genesis (#570) +- Seed doesn't respond to pex requests (#574) +- Docker tag is invalid for empty input.tag (#580) +- Docker tag is invalid for empty input.tag (#580) (#585) +- Signature verification (#584) +- Replace tenderdash init single with validator (#599) +- Broken error handling in ValueOp (VSA-2022-100) (#601) +- Broken error handling in ValueOp (VSA-2022-100) (#601) +- Nil voteset panics in rest handler (#609) +- Nil voteset panics in rest handler (#609) (#612) + +### Documentation + +- Improve protobuf documentation (#604) + +### Features + +- Upgrade bls library to version 1 (#224) +- Seed connectivity tuning options (max-incoming-connection-time,incoming-connection-window) (#532) +- [**breaking**] Verify next consensus params between nodes (#550) +- Add quorum hash to RequestPrepare/ProcessProposal (#553) +- Derive node key from bip39 mnemonic (#562) +- Conversion of PEM-encoded ED25519 node keys (#564) +- Use dashd-go 0.24.0 to support LLMQ type 6 (LLMQType_25_67) (#610) + +### Miscellaneous Tasks + +- [**breaking**] Rename genesis.json quorum fields (#515) +- [**breaking**] Remove Snapshot.core_chain_locked_height (#527) +- Update changelog and version to 0.10.0-dev.6 (#526) +- Update changelog and version to 0.11.0-dev.1 (#530) +- Update changelog and version to 0.10.0-dev.7 (#536) +- Update bls library (#535) +- Update changelog and version to 0.10.0-dev.9 (#579) +- Update changelog and version to 0.11.0-dev.2 (#583) +- Update changelog and version to 0.11.0-dev.3 (#586) +- Bump up dashd-go version to v0.23.6 (#587) +- Update changelog and version to 0.10.0-dev.10 (#588) +- Update changelog and version to 0.10.0-dev.11 (#591) +- Update changelog and version to 0.11.0-dev.4 (#593) +- Add quote to CGO variables in Makefile (#597) +- Update changelog and version to 0.12.0-dev.1 (#608) +- Update changelog and version to 0.12.0-dev.2 (#613) +- Update changelog and version to 0.11.0 + +### Refactor + +- Use logger for log printing (#545) +- Blocksync.bpRequester should stop procedure if block was received (#546) +- [**breaking**] Cleanup protobuf definitions and reorganize fields (#552) +- Replace peerID on proTxHash for peer catchup rounds in HeightVoteSet component (#559) +- Sync node and seed implementation (#576) +- Use llmq.Validate function to validate llmq type (#590) +- Introduce p2p proto Envelope as a wrapper for p2p messages (#598) +- Consensus state to fix deadlock (#491) + +### Testing + +- Fix Index out of bounds on "runner logs" (#537) +- Update test vectors for BLS +- Refactor genesis doc generation (#573) +- Fix TestMakeHTTPDialerURL (#605) + +### Backport + +- Catch up on the latest changes from v0.10 (#528) +- Catch up the recent changes from v0.10 to v0.11 (#589) +- V0.10 to v0.11 (#596) +- Use dashd-go 0.24.0 to support LLMQ type 6 (LLMQType_25_67) (#610) (#611) + +### Build + +- Bump actions/setup-go from 3.3.1 to 3.4.0 (#524) +- Bump bufbuild/buf-setup-action from 1.9.0 to 1.10.0 (#525) +- CGO paths to BLS deps are incorrect (#531) +- Improve release script (#522) +- Bump goreleaser/goreleaser-action from 3 to 4 (#544) +- Bump actions/stale from 6 to 7 (#543) +- Bump actions/setup-go from 3.4.0 to 3.5.0 (#542) +- Bump bufbuild/buf-setup-action from 1.10.0 to 1.11.0 (#541) +- Use ubuntu 20.04 in github workflows (#547) +- Enable deadlock detection on -dev docker images (#540) +- Bump bufbuild/buf-setup-action from 1.11.0 to 1.12.0 (#556) +- Bump docker/build-push-action from 3.1.0 to 3.3.0 (#555) +- Use version 1.2.5 of BLS lib in Docker (#557) +- Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 (#560) +- Add abcidump to release image (#563) +- Bump bufbuild/buf-setup-action from 1.12.0 to 1.13.1 (#566) +- Bump docker/setup-buildx-action from 2.2.1 to 2.4.0 (#567) +- Improve docker image build caching (#571) +- Refactor e2e docker image build process (#575) +- Bump docker/build-push-action from 3.3.0 to 4.0.0 (#568) +- Bump docker/setup-buildx-action from 2.4.0 to 2.4.1 (#572) +- Bump bufbuild/buf-setup-action from 1.13.1 to 1.14.0 (#577) +- Move e2e-manual.yml logic to e2e.yml (#578) +- Fix broken github actions and regenerate some code (#615) + +## [0.8.0] - 2022-12-07 ### Bug Fixes -- Backport e2e tests (#248) -- Remove option c form linux build (#305) -- Cannot read properties of undefined -- Network stuck due to outdated proposal block (#327) -- Don't process WAL logs for old rounds (#331) -- Network stuck due to outdated proposal block (#327) -- Don't process WAL logs for old rounds (#331) - Use thread-safely way to get pro-tx-hash from peer-state (#344) - Slightly modify a way of interacting with p2p channels in consensus reactor (#357) - Remove select block to don't block sending a witness response (#336) @@ -97,41 +268,11 @@ - Catchup round number is not correct (#507) - Commits received during state sync are lost (#513) - Statesync stops the node when light block request fails (#514) -- ProcessProposal executed twice for a block (#516) -- Proposer-based timestamp broken during backport (#523) -- Improve wal replay mechanism (#510) -- Decrease log verbosity by logging send/recv logs on trace level (#533) -- Ensure process proposal was called on commit processing (#534) -- Ensure process proposal runs on complete proposal (#538) -- Peer notifications should be async to avoid deadlock in PeerUp (#509) -- Improve flaky TestWALRoundsSkipper (#539) -- Flaky TestReactor_Backfill test (#549) -- [**breaking**] Quorum type set to 0 during replay at genesis (#570) -- Seed doesn't respond to pex requests (#574) -- Docker tag is invalid for empty input.tag (#580) -- Docker tag is invalid for empty input.tag (#580) (#585) -- Signature verification (#584) -- Replace tenderdash init single with validator (#599) -- Broken error handling in ValueOp (VSA-2022-100) (#601) -- Broken error handling in ValueOp (VSA-2022-100) (#601) -- Nil voteset panics in rest handler (#609) -- Nil voteset panics in rest handler (#609) (#612) -- [**breaking**] ProcessProposal should get CoreChainLockedHeight from block (#625) - -### Docs - -- Abci++ typo (#8147) ### Documentation -- Add an overview of the proposer-based timestamps algorithm (#8058) -- PBTS synchrony issues runbook (#8129) -- Go tutorial fixed for 0.35.0 version (#7329) (#7330) (#7331) -- Update go ws code snippets (#7486) (#7487) -- Remove spec section from v0.35 docs (#7899) - Abcidump documentation - Same-block execution docs and protobuf cleanup (#454) -- Improve protobuf documentation (#604) ### Features @@ -147,28 +288,9 @@ - Add core_chain_lock_update to RequestProcessProposal (#492) - [**breaking**] Include state id in block signature (#478) - [**breaking**] Put full block in RequestFinalizeBlock (#505) -- Upgrade bls library to version 1 (#224) -- Seed connectivity tuning options (max-incoming-connection-time,incoming-connection-window) (#532) -- [**breaking**] Verify next consensus params between nodes (#550) -- Add quorum hash to RequestPrepare/ProcessProposal (#553) -- Derive node key from bip39 mnemonic (#562) -- Conversion of PEM-encoded ED25519 node keys (#564) -- Use dashd-go 0.24.0 to support LLMQ type 6 (LLMQType_25_67) (#610) ### Miscellaneous Tasks -- Stabilize consensus algorithm (#284) -- Temporarily disable ARM build which is broken -- Backport Tendermint 0.35.1 to Tenderdash 0.8 (#309) -- Update CI e2e action workflow (#319) -- Change dockerhub build target -- Inspect context -- Bump golang version -- Remove debug -- Use gha cache from docker -- Revert dev changes -- Remove obsolete cache step -- Update changelog and version to 0.7.1 - If the tenderdash source code is not tracked by git then cloning "develop_0.1" branch as fallback scenario to build a project (#356) - If the tenderdash source code is not tracked by git then cloning "develop_0.1" branch as fallback scenario to build a project (#355) - Update changelog and version to 0.8.0-dev.2 (#333) @@ -217,23 +339,6 @@ - Fix build - Fix abcidump after backport - Update changelog and version to 0.8.0 -- [**breaking**] Rename genesis.json quorum fields (#515) -- [**breaking**] Remove Snapshot.core_chain_locked_height (#527) -- Update changelog and version to 0.10.0-dev.6 (#526) -- Update changelog and version to 0.11.0-dev.1 (#530) -- Update changelog and version to 0.10.0-dev.7 (#536) -- Update bls library (#535) -- Update changelog and version to 0.10.0-dev.9 (#579) -- Update changelog and version to 0.11.0-dev.2 (#583) -- Update changelog and version to 0.11.0-dev.3 (#586) -- Bump up dashd-go version to v0.23.6 (#587) -- Update changelog and version to 0.10.0-dev.10 (#588) -- Update changelog and version to 0.10.0-dev.11 (#591) -- Update changelog and version to 0.11.0-dev.4 (#593) -- Add quote to CGO variables in Makefile (#597) -- Update changelog and version to 0.12.0-dev.1 (#608) -- Update changelog and version to 0.12.0-dev.2 (#613) -- Update changelog and version to 0.11.0 ### PBTS @@ -241,15 +346,6 @@ ### Refactor -- Replace several functions with an identical body (processStateCh,processDataCh,processVoteCh,processVoteSetBitsCh) on one function processMsgCh (#296) -- [**breaking**] Replace is-masternode config with mode=validator (#308) -- Add MustPubKeyToProto helper function (#311) -- Implementing LLMQ generator (#310) -- Move bls CI code to a separate action and improve ARM build (#314) -- Persistent kvstore abci (#313) -- Improve statesync.backfill (#316) -- Small improvement in test four add four minus one genesis validators (#318) -- Consolidate redundant code (#322) - Single vote-extension field was modified on multiple ones. support default and threshold-recover types of extensions - Simplify priv validator initialization code - Add a centralized way for recovering threshold signatures, add a way of creating sign ids, refactor code to use one way of making sign data and recovering signs @@ -277,39 +373,9 @@ - Provide a current block commit with request finalize block request (#501) - Make all genesis-doc fields (except chain_id) optional (#506) - Optimize initialize priv-validator (#512) -- Use logger for log printing (#545) -- Blocksync.bpRequester should stop procedure if block was received (#546) -- [**breaking**] Cleanup protobuf definitions and reorganize fields (#552) -- Replace peerID on proTxHash for peer catchup rounds in HeightVoteSet component (#559) -- Sync node and seed implementation (#576) -- Use llmq.Validate function to validate llmq type (#590) -- Introduce p2p proto Envelope as a wrapper for p2p messages (#598) -- Consensus state to fix deadlock (#491) ### Security -- Bump actions/checkout from 2.4.0 to 3 (#8076) -- Bump docker/login-action from 1.13.0 to 1.14.1 (#8075) -- Bump golangci/golangci-lint-action from 2.5.2 to 3.1.0 (#8074) -- Bump google.golang.org/grpc from 1.44.0 to 1.45.0 (#8104) -- Bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#8109) -- Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#8131) -- Bump gaurav-nelson/github-action-markdown-link-check from 1.0.13 to 1.0.14 (#8166) -- Bump docker/build-push-action from 2.9.0 to 2.10.0 (#8167) -- Bump github.com/golangci/golangci-lint from 1.44.2 to 1.45.0 (#8169) -- Bump github.com/golangci/golangci-lint from 1.45.0 to 1.45.2 (#8192) -- Bump github.com/adlio/schema from 1.2.3 to 1.3.0 (#8201) -- Bump github.com/vektra/mockery/v2 from 2.10.0 to 2.10.1 (#8226) -- Bump github.com/vektra/mockery/v2 from 2.10.1 to 2.10.2 (#8246) -- Bump github.com/vektra/mockery/v2 from 2.10.2 to 2.10.4 (#8250) -- Bump github.com/BurntSushi/toml from 1.0.0 to 1.1.0 (#8251) -- Bump github.com/lib/pq from 1.10.4 to 1.10.5 (#8283) -- Bump codecov/codecov-action from 2.1.0 to 3.0.0 (#8306) -- Bump actions/setup-go from 2 to 3 (#8305) -- Bump actions/stale from 4 to 5 (#8304) -- Bump actions/download-artifact from 2 to 3 (#8302) -- Bump actions/upload-artifact from 2 to 3 (#8303) -- Bump github.com/creachadair/tomledit from 0.0.11 to 0.0.13 (#8307) - Bump github.com/vektra/mockery/v2 from 2.10.4 to 2.10.6 (#8346) - Bump github.com/spf13/viper from 1.10.1 to 1.11.0 (#8344) - Bump github.com/creachadair/atomicfile from 0.2.4 to 0.2.5 (#8365) @@ -331,12 +397,6 @@ ### Testing -- Logger cleanup (#8153) -- KeepInvalidTxsInCache test is invalid -- Fix validator conn executor test backport -- Update mockery mocks -- Fix test test_abci_cli -- Update oss-fuzz build script to match reality (#8296) - Convert to Go 1.18 native fuzzing (#8359) - Remove debug logging statement (#8385) - Use correct home path in TestRootConfig @@ -346,15 +406,9 @@ - Test parser - Replace hardcoded input data - Skip broken PBTS tests (#500) -- Fix Index out of bounds on "runner logs" (#537) -- Update test vectors for BLS -- Refactor genesis doc generation (#573) -- Fix TestMakeHTTPDialerURL (#605) -- Sign_bytes tests synchronized with rs-tenderdash-abci (#623) ### Abci -- Synchronize FinalizeBlock with the updated specification (#7983) - Avoid having untracked requests in the channel (#8382) - Streamline grpc application construction (#8383) - Application type should take contexts (#8388) @@ -365,61 +419,23 @@ ### Abci++ -- Synchronize PrepareProposal with the newest version of the spec (#8094) -- Remove app_signed_updates (#8128) -- Remove CheckTx call from PrepareProposal flow (#8176) -- Correct max-size check to only operate on added and unmodified (#8242) -- Only include meaningful header fields in data passed-through to application (#8216) - Sync implementation and spec for vote extensions (#8141) - Remove intermediate protos (#8414) - Vote extension cleanup (#8402) -### Autofile - -- Reduce minor panic and docs changes (#8122) -- Remove vestigal close mechanism (#8150) - ### Backport -- Add basic metrics to the indexer package. (#7250) (#7252) - V0.7.1 into v0.8-dev (#361) - Upgrade logging to v0.8 - Update for new logging - Tendermint v0.36 (#446) -- Catch up on the latest changes from v0.10 (#528) -- Catch up the recent changes from v0.10 to v0.11 (#589) -- V0.10 to v0.11 (#596) -- Use dashd-go 0.24.0 to support LLMQ type 6 (LLMQType_25_67) (#610) (#611) -- Catch up with the latest commits from v0.11 to v0.12 (#631) -- Catch up the changes from v0.11 to v0.12 (#636) ### Blocksync -- Drop redundant shutdown mechanisms (#8136) -- Remove intermediate channel (#8140) - Honor contexts supplied to BlockPool (#8447) ### Build -- Bump docker/login-action from 1.13.0 to 1.14.1 -- Bump golangci/golangci-lint-action from 2.5.2 to 3.1.0 -- Bump google.golang.org/grpc from 1.41.0 to 1.42.0 (#7218) -- Bump github.com/lib/pq from 1.10.3 to 1.10.4 -- Bump github.com/tendermint/tm-db from 0.6.4 to 0.6.6 (#7285) -- Bump minimist from 1.2.5 to 1.2.6 in /docs (#8196) -- Bump bufbuild/buf-setup-action from 1.1.0 to 1.3.0 (#8199) -- Bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#7435) -- Bump github.com/adlio/schema from 1.2.2 to 1.2.3 (#7436) -- Bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (#7457) -- Bump github.com/rs/zerolog from 1.26.0 to 1.26.1 (#7467) -- Downgrade tm-db from v0.6.7 to v0.6.6 -- Use Go 1.18 to fix issue building curve25519-voi -- Bump bufbuild/buf-setup-action from 1.3.0 to 1.3.1 (#8245) -- Provide base branch to make as variable (#321) -- Implement full release workflow in the release script (#332) -- Use go install instead of go get. (#8299) -- Implement full release workflow in the release script (#332) (#345) -- Implement full release workflow in the release script (#332) (#345) - Bump async from 2.6.3 to 2.6.4 in /docs (#8357) - Bump github.com/vektra/mockery/v2 from 2.11.0 to 2.12.0 (#8393) - Bump docker/build-push-action from 2.9.0 to 3.0.0 @@ -444,90 +460,22 @@ - Fix missing dependencies in lint and tests - Fix superlinter yaml issues - Improve release script for v0.8 (#520) -- Bump actions/setup-go from 3.3.1 to 3.4.0 (#524) -- Bump bufbuild/buf-setup-action from 1.9.0 to 1.10.0 (#525) -- CGO paths to BLS deps are incorrect (#531) -- Improve release script (#522) -- Bump goreleaser/goreleaser-action from 3 to 4 (#544) -- Bump actions/stale from 6 to 7 (#543) -- Bump actions/setup-go from 3.4.0 to 3.5.0 (#542) -- Bump bufbuild/buf-setup-action from 1.10.0 to 1.11.0 (#541) -- Use ubuntu 20.04 in github workflows (#547) -- Enable deadlock detection on -dev docker images (#540) -- Bump bufbuild/buf-setup-action from 1.11.0 to 1.12.0 (#556) -- Bump docker/build-push-action from 3.1.0 to 3.3.0 (#555) -- Use version 1.2.5 of BLS lib in Docker (#557) -- Bump golangci/golangci-lint-action from 3.3.1 to 3.4.0 (#560) -- Add abcidump to release image (#563) -- Bump bufbuild/buf-setup-action from 1.12.0 to 1.13.1 (#566) -- Bump docker/setup-buildx-action from 2.2.1 to 2.4.0 (#567) -- Improve docker image build caching (#571) -- Refactor e2e docker image build process (#575) -- Bump docker/build-push-action from 3.3.0 to 4.0.0 (#568) -- Bump docker/setup-buildx-action from 2.4.0 to 2.4.1 (#572) -- Bump bufbuild/buf-setup-action from 1.13.1 to 1.14.0 (#577) -- Move e2e-manual.yml logic to e2e.yml (#578) -- Fix broken github actions and regenerate some code (#615) - -### Ci - -- Move test execution to makefile (#7372) (#7374) -- Update mergify for tenderdash 0.8 -- Cleanup build/test targets (backport #7393) (#7395) -- Skip docker image builds during PRs (#7397) (#7398) -- Fix super-linter configuration settings (backport #7708) (#7710) -- Fixes for arm builds ### Cleanup -- Remove commented code (#8123) - Unused parameters (#8372) - Pin get-diff-action uses to major version only, not minor/patch (#8368) -### Cli - -- Add graceful catches to SIGINT (#8308) -- Simplify resetting commands (#8312) - -### Cmd - -- Make reset more safe (#8081) -- Cosmetic changes for errors and print statements (#7377) (#7408) -- Add integration test for rollback functionality (backport #7315) (#7369) - ### Config -- Add a Deprecation annotation to P2PConfig.Seeds. (#7496) (#7497) -- Default indexer configuration to null (#8222) - Minor template infrastructure (#8411) ### Confix -- Clean up and document transformations (#8301) -- Remove mempool.version in v0.36 (#8334) - Convert tx-index.indexer from string to array (#8342) ### Consensus -- Improve wal test cleanup (#8059) -- Fix TestInvalidState race and reporting (#8071) -- Ensure the node terminates on consensus failure (#8111) -- Avoid extra close channel (#8144) -- Avoid persistent kvstore in tests (#8148) -- Avoid race in accessing channel (#8149) -- Skip channel close during shutdown (#8155) -- Change lock handling in reactor and handleMsg for RoundState (forward-port #7994 #7992) (#8139) -- Reduce size of test fixtures and logging rate (#8172) -- Avoid panic during shutdown (#8170) -- Cleanup tempfile explictly (#8184) -- Add leaktest check to replay tests (#8185) -- Update state machine to use the new consensus params (#8181) -- Add some more checks to vote counting (#7253) (#7262) -- Timeout params in toml used as overrides (#8186) -- Additional timing metrics (backport #7849) (#7875) -- Remove string indented function (#8257) -- Avoid panics during handshake (#8266) -- Add nil check to gossip routine (#8288) - Reduce size of validator set changes test (#8442) ### Crypto @@ -535,148 +483,357 @@ - Remove unused code (#8412) - Cleanup tmhash package (#8434) -### E2e - -- Stabilize validator update form (#7340) (#7351) -- Clarify apphash reporting (#7348) (#7352) -- Generate keys for more stable load (#7344) (#7353) -- App hash test cleanup (0.35 backport) (#7350) -- Fix hashing for app + Fix logic of TestApp_Hash (#8229) - ### Eventbus - Publish without contexts (#8369) -### Events - -- Remove service aspects of event switch (#8146) -- Remove unused event code (#8313) - -### Evidence - -- Manage and initialize state objects more clearly in the pool (#8080) -- Remove source of non-determinism from test (#7266) (#7268) - ### Fuzz - Don't panic on expected errors (#8423) -### Internal/libs/protoio - -- Optimize MarshalDelimited by plain byteslice allocations+sync.Pool (#7325) (#7426) - -### Internal/proxy - -- Add initial set of abci metrics backport (#7342) - ### Keymigrate -- Fix decoding of block-hash row keys (#8294) - Fix conversion of transaction hash keys (#8352) -### Libs/clist - -- Remove unused surface area (#8134) - -### Libs/events - -- Remove unneccessary unsubscription code (#8135) - -### Libs/log - -- Remove Must constructor (#8120) - -### Light - -- Remove untracked close channel (#8228) - -### Lint - -- Remove lll check (#7346) (#7357) -- Bump linter version in ci (#8234) - -### Mempool - -- Test harness should expose application (#8143) -- Reduce size of test (#8152) - -### Migration - -- Remove stale seen commits (#8205) - ### Node -- Excise node handle within rpc env (#8063) -- Nodes should fetch state on startup (#8062) -- Pass eventbus at construction time (#8084) -- Cleanup evidence db (#8119) -- Always sync with the application at startup (#8159) -- Remove channel and peer update initialization from construction (#8238) -- Reorder service construction (#8262) -- Move handshake out of constructor (#8264) - Use signals rather than ephemeral contexts (#8376) - Cleanup setup for indexer and evidence components (#8378) - Start rpc service after reactors (#8426) -### Node+statesync - -- Normalize initialization (#8275) - ### P2p -- Update polling interval calculation for PEX requests (#8106) -- Remove unnecessary panic handling in PEX reactor (#8110) -- Adjust max non-persistent peer score (#8137) -- Reduce peer score for dial failures (backport #7265) (#7271) -- Plumb rudamentary service discovery to rectors and update statesync (backport #8030) (#8036) -- Update shim to transfer information about peers (#8047) -- Inject nodeinfo into router (#8261) - Fix setting in con-tracker (#8370) - Remove support for multiple transports and endpoints (#8420) - Use nodeinfo less often (#8427) - Avoid using p2p.Channel internals (#8444) -### P2p+flowrate - -- Rate control refactor (#7828) - ### Privval/grpc - Normalize signature (#8441) -### Proto +### Rpc -- Update proto generation to use buf (#7975) +- Reformat method signatures and use a context (#8377) +- Fix byte string decoding for URL parameters (#8431) -### Proxy +## [0.7.1] - 2022-04-14 -- Collapse triforcated abci.Client (#8067) +### ABCI++ -### Pubsub +- Update new protos to use enum instead of bool (#8158) -- Report a non-nil error when shutting down. (#7310) -- [minor] remove unused stub method (#8316) +### ADR -### Readme +- Protocol Buffers Management (#8029) -- Add vocdoni (#8117) +### Bug Fixes -### Rfc +- Backport e2e tests (#248) +- Remove option c form linux build (#305) +- Cannot read properties of undefined +- Network stuck due to outdated proposal block (#327) +- Don't process WAL logs for old rounds (#331) +- Network stuck due to outdated proposal block (#327) +- Don't process WAL logs for old rounds (#331) -- RFC 015 ABCI++ Tx Mutation (#8033) +### Docs -### Rollback +- Abci++ typo (#8147) -- Cleanup second node during test (#8175) +### Documentation -### Rpc +- Add an overview of the proposer-based timestamps algorithm (#8058) +- PBTS synchrony issues runbook (#8129) +- Go tutorial fixed for 0.35.0 version (#7329) (#7330) (#7331) +- Update go ws code snippets (#7486) (#7487) +- Remove spec section from v0.35 docs (#7899) -- Backport experimental buffer size control parameters from #7230 (tm v0.35.x) (#7276) -- Implement header and header_by_hash queries (backport #7270) (#7367) -- Add more nil checks in the status end point (#8287) -- Avoid leaking threads (#8328) -- Reformat method signatures and use a context (#8377) -- Fix byte string decoding for URL parameters (#8431) +### Miscellaneous Tasks + +- Stabilize consensus algorithm (#284) +- Temporarily disable ARM build which is broken +- Backport Tendermint 0.35.1 to Tenderdash 0.8 (#309) +- Update CI e2e action workflow (#319) +- Change dockerhub build target +- Inspect context +- Bump golang version +- Remove debug +- Use gha cache from docker +- Revert dev changes +- Remove obsolete cache step +- Update changelog and version to 0.7.1 + +### Refactor + +- Replace several functions with an identical body (processStateCh,processDataCh,processVoteCh,processVoteSetBitsCh) on one function processMsgCh (#296) +- [**breaking**] Replace is-masternode config with mode=validator (#308) +- Add MustPubKeyToProto helper function (#311) +- Implementing LLMQ generator (#310) +- Move bls CI code to a separate action and improve ARM build (#314) +- Persistent kvstore abci (#313) +- Improve statesync.backfill (#316) +- Small improvement in test four add four minus one genesis validators (#318) +- Consolidate redundant code (#322) + +### Security + +- Bump actions/checkout from 2.4.0 to 3 (#8076) +- Bump docker/login-action from 1.13.0 to 1.14.1 (#8075) +- Bump golangci/golangci-lint-action from 2.5.2 to 3.1.0 (#8074) +- Bump google.golang.org/grpc from 1.44.0 to 1.45.0 (#8104) +- Bump github.com/spf13/cobra from 1.3.0 to 1.4.0 (#8109) +- Bump github.com/stretchr/testify from 1.7.0 to 1.7.1 (#8131) +- Bump gaurav-nelson/github-action-markdown-link-check from 1.0.13 to 1.0.14 (#8166) +- Bump docker/build-push-action from 2.9.0 to 2.10.0 (#8167) +- Bump github.com/golangci/golangci-lint from 1.44.2 to 1.45.0 (#8169) +- Bump github.com/golangci/golangci-lint from 1.45.0 to 1.45.2 (#8192) +- Bump github.com/adlio/schema from 1.2.3 to 1.3.0 (#8201) +- Bump github.com/vektra/mockery/v2 from 2.10.0 to 2.10.1 (#8226) +- Bump github.com/vektra/mockery/v2 from 2.10.1 to 2.10.2 (#8246) +- Bump github.com/vektra/mockery/v2 from 2.10.2 to 2.10.4 (#8250) +- Bump github.com/BurntSushi/toml from 1.0.0 to 1.1.0 (#8251) +- Bump github.com/lib/pq from 1.10.4 to 1.10.5 (#8283) +- Bump codecov/codecov-action from 2.1.0 to 3.0.0 (#8306) +- Bump actions/setup-go from 2 to 3 (#8305) +- Bump actions/stale from 4 to 5 (#8304) +- Bump actions/download-artifact from 2 to 3 (#8302) +- Bump actions/upload-artifact from 2 to 3 (#8303) +- Bump github.com/creachadair/tomledit from 0.0.11 to 0.0.13 (#8307) + +### Testing + +- Logger cleanup (#8153) +- KeepInvalidTxsInCache test is invalid +- Fix validator conn executor test backport +- Update mockery mocks +- Fix test test_abci_cli +- Update oss-fuzz build script to match reality (#8296) + +### Abci + +- Synchronize FinalizeBlock with the updated specification (#7983) + +### Abci++ + +- Synchronize PrepareProposal with the newest version of the spec (#8094) +- Remove app_signed_updates (#8128) +- Remove CheckTx call from PrepareProposal flow (#8176) +- Correct max-size check to only operate on added and unmodified (#8242) +- Only include meaningful header fields in data passed-through to application (#8216) + +### Autofile + +- Reduce minor panic and docs changes (#8122) +- Remove vestigal close mechanism (#8150) + +### Backport + +- Add basic metrics to the indexer package. (#7250) (#7252) + +### Blocksync + +- Drop redundant shutdown mechanisms (#8136) +- Remove intermediate channel (#8140) + +### Build + +- Bump docker/login-action from 1.13.0 to 1.14.1 +- Bump golangci/golangci-lint-action from 2.5.2 to 3.1.0 +- Bump google.golang.org/grpc from 1.41.0 to 1.42.0 (#7218) +- Bump github.com/lib/pq from 1.10.3 to 1.10.4 +- Bump github.com/tendermint/tm-db from 0.6.4 to 0.6.6 (#7285) +- Bump minimist from 1.2.5 to 1.2.6 in /docs (#8196) +- Bump bufbuild/buf-setup-action from 1.1.0 to 1.3.0 (#8199) +- Bump github.com/spf13/viper from 1.9.0 to 1.10.0 (#7435) +- Bump github.com/adlio/schema from 1.2.2 to 1.2.3 (#7436) +- Bump github.com/spf13/cobra from 1.2.1 to 1.3.0 (#7457) +- Bump github.com/rs/zerolog from 1.26.0 to 1.26.1 (#7467) +- Downgrade tm-db from v0.6.7 to v0.6.6 +- Use Go 1.18 to fix issue building curve25519-voi +- Bump bufbuild/buf-setup-action from 1.3.0 to 1.3.1 (#8245) +- Provide base branch to make as variable (#321) +- Implement full release workflow in the release script (#332) +- Use go install instead of go get. (#8299) +- Implement full release workflow in the release script (#332) (#345) +- Implement full release workflow in the release script (#332) (#345) + +### Ci + +- Move test execution to makefile (#7372) (#7374) +- Update mergify for tenderdash 0.8 +- Cleanup build/test targets (backport #7393) (#7395) +- Skip docker image builds during PRs (#7397) (#7398) +- Fix super-linter configuration settings (backport #7708) (#7710) +- Fixes for arm builds + +### Cleanup + +- Remove commented code (#8123) + +### Cli + +- Add graceful catches to SIGINT (#8308) +- Simplify resetting commands (#8312) + +### Cmd + +- Make reset more safe (#8081) +- Cosmetic changes for errors and print statements (#7377) (#7408) +- Add integration test for rollback functionality (backport #7315) (#7369) + +### Config + +- Add a Deprecation annotation to P2PConfig.Seeds. (#7496) (#7497) +- Default indexer configuration to null (#8222) + +### Confix + +- Clean up and document transformations (#8301) +- Remove mempool.version in v0.36 (#8334) + +### Consensus + +- Improve wal test cleanup (#8059) +- Fix TestInvalidState race and reporting (#8071) +- Ensure the node terminates on consensus failure (#8111) +- Avoid extra close channel (#8144) +- Avoid persistent kvstore in tests (#8148) +- Avoid race in accessing channel (#8149) +- Skip channel close during shutdown (#8155) +- Change lock handling in reactor and handleMsg for RoundState (forward-port #7994 #7992) (#8139) +- Reduce size of test fixtures and logging rate (#8172) +- Avoid panic during shutdown (#8170) +- Cleanup tempfile explictly (#8184) +- Add leaktest check to replay tests (#8185) +- Update state machine to use the new consensus params (#8181) +- Add some more checks to vote counting (#7253) (#7262) +- Timeout params in toml used as overrides (#8186) +- Additional timing metrics (backport #7849) (#7875) +- Remove string indented function (#8257) +- Avoid panics during handshake (#8266) +- Add nil check to gossip routine (#8288) + +### E2e + +- Stabilize validator update form (#7340) (#7351) +- Clarify apphash reporting (#7348) (#7352) +- Generate keys for more stable load (#7344) (#7353) +- App hash test cleanup (0.35 backport) (#7350) +- Fix hashing for app + Fix logic of TestApp_Hash (#8229) + +### Events + +- Remove service aspects of event switch (#8146) +- Remove unused event code (#8313) + +### Evidence + +- Manage and initialize state objects more clearly in the pool (#8080) +- Remove source of non-determinism from test (#7266) (#7268) + +### Internal/libs/protoio + +- Optimize MarshalDelimited by plain byteslice allocations+sync.Pool (#7325) (#7426) + +### Internal/proxy + +- Add initial set of abci metrics backport (#7342) + +### Keymigrate + +- Fix decoding of block-hash row keys (#8294) + +### Libs/clist + +- Remove unused surface area (#8134) + +### Libs/events + +- Remove unneccessary unsubscription code (#8135) + +### Libs/log + +- Remove Must constructor (#8120) + +### Light + +- Remove untracked close channel (#8228) + +### Lint + +- Remove lll check (#7346) (#7357) +- Bump linter version in ci (#8234) + +### Mempool + +- Test harness should expose application (#8143) +- Reduce size of test (#8152) + +### Migration + +- Remove stale seen commits (#8205) + +### Node + +- Excise node handle within rpc env (#8063) +- Nodes should fetch state on startup (#8062) +- Pass eventbus at construction time (#8084) +- Cleanup evidence db (#8119) +- Always sync with the application at startup (#8159) +- Remove channel and peer update initialization from construction (#8238) +- Reorder service construction (#8262) +- Move handshake out of constructor (#8264) + +### Node+statesync + +- Normalize initialization (#8275) + +### P2p + +- Update polling interval calculation for PEX requests (#8106) +- Remove unnecessary panic handling in PEX reactor (#8110) +- Adjust max non-persistent peer score (#8137) +- Reduce peer score for dial failures (backport #7265) (#7271) +- Plumb rudamentary service discovery to rectors and update statesync (backport #8030) (#8036) +- Update shim to transfer information about peers (#8047) +- Inject nodeinfo into router (#8261) + +### P2p+flowrate + +- Rate control refactor (#7828) + +### Proto + +- Update proto generation to use buf (#7975) + +### Proxy + +- Collapse triforcated abci.Client (#8067) + +### Pubsub + +- Report a non-nil error when shutting down. (#7310) +- [minor] remove unused stub method (#8316) + +### Readme + +- Add vocdoni (#8117) + +### Rfc + +- RFC 015 ABCI++ Tx Mutation (#8033) + +### Rollback + +- Cleanup second node during test (#8175) + +### Rpc + +- Backport experimental buffer size control parameters from #7230 (tm v0.35.x) (#7276) +- Implement header and header_by_hash queries (backport #7270) (#7367) +- Add more nil checks in the status end point (#8287) +- Avoid leaking threads (#8328) ### Scmigrate @@ -752,7 +909,6 @@ ### Miscellaneous Tasks -- Update changelog and version to 0.7.0 - Update unit tests after backport fo tendermint v0.35 (#245) - Backport Tenderdash 0.7 to 0.8 (#246) - Fix e2e tests and protxhash population (#273) @@ -859,7 +1015,6 @@ ### Consensus -- Use buffered channel in TestStateFullRound1 (#7668) - Remove unused closer construct (#7734) - Delay start of peer routines (#7753) - Delay start of peer routines (backport of #7753) (#7760) @@ -971,10 +1126,6 @@ - Changed evidence message to contain evidence, not a list… (#394) -### Params - -- Increase default synchrony params (#7704) - ### Proto - Merge the proposer-based timestamps parameters (#393) @@ -1058,6 +1209,20 @@ - Emit events + metrics on evidence validation (#7802) +## [0.7.0] - 2022-01-27 + +### Miscellaneous Tasks + +- Update changelog and version to 0.7.0 + +### Consensus + +- Use buffered channel in TestStateFullRound1 (#7668) + +### Params + +- Increase default synchrony params (#7704) + ## [0.35.1] - 2022-01-26 ### ABCI++ @@ -5186,7 +5351,7 @@ - Only run when applicable (#4752) - Check git diff on each job (#4770) - Checkout code before git diff check (#4779) -- Add paths +- Add paths - Bump the timeout for test_coverage (#4864) - Migrate localnet to github actions (#4878) - Add timeouts (#4912) @@ -5469,7 +5634,7 @@ ### Swagger -- Remove duplicate blockID +- Remove duplicate blockID - Define version (#4952) ### Template @@ -8169,176 +8334,62 @@ - Return error on cached txs - Assert -> require in test -### P2p/trust - -- Split into multiple files and improve function order -- Lock on Copy() - -### Rpc - -- Make time human readable. closes #926 - -### Shame - -- Forgot to add new code pkg - -### Types - -- Use data.Bytes directly in type.proto via gogo/protobuf. wow -- Consolidate some file -- Add note about ReadMessage having no cap -- RequestBeginBlock includes absent and byzantine validators -- Drop uint64 from protobuf.go -- IsOK() -- Int32 with gogo int -- Fix for broken customtype int in gogo -- Add MarshalJSON funcs for Response types with a Code -- Add UnmarshalJSON funcs for Response types - -## [0.12.1] - 2017-11-28 - -### Documentation - -- Fix links, closes #860 - -### PubKeyFromBytes - -- Return zero value PubKey on error - -### Security - -- Use bytes.Equal for key comparison - -### WIP - -- Begin parallel refactoring with go-wire Write methods and MConnection - -### Blockchain - -- Add comment in AddPeer. closes #666 - -### Certifiers - -- Test uses WaitForHeight - -### Clist - -- Reduce numTimes in test - -### Consensus - -- Ensure prs.ProposalBlockParts is initialized. fixes #810 -- Fix for initializing block parts during catchup -- Make mempool_test deterministic -- Fix LastCommit log -- Crank timeout in timeoutWaitGroup - -### Consensus/WAL - -- Benchmark WALDecode across data sizes - -### Db - -- Sort keys for memdb iterator - -### Errcheck - -- PR comment fixes - -### Lint - -- Apply deadcode/unused - -### Linter - -- Address deadcode, implement incremental lint testing -- Sort through each kind and address small fixes - -### Linting - -- Replace megacheck with metalinter -- Apply 'gofmt -s -w' throughout -- Apply misspell -- Apply errcheck part1 -- Apply errcheck part2 -- Moar fixes -- Few more fixes - -### Node - -- Clean makeNodeInfo - -### P2p - -- Update readme, some minor things -- Some fixes re @odeke-em issues #813,#816,#817 -- Comment on the wg.Add before go saveRoutine() -- Peer should respect errors from SetDeadline -- Use fake net.Pipe since only >=Go1.10 implements SetDeadline -- NetPipe for bucketsNew/Old -- Simplify PickAddress -- AddAddress returns error. more defensive PickAddress -- Add non-terminating test -- Fix addToOldBucket -- Some comments - -### P2p/connetion - -- Remove panics, test error cases - -### P2p/pex - -- Simplify ensurePeers - -### Rpc - -- Wait for rpc servers to be available in tests -- Fix tests - -### Rpc/lib/server - -- Add handlers tests -- Update with @melekes and @ebuchman feedback -- Separate out Notifications test -- Minor changes to test - -### Rpc/lib/types - -- RPCResponse.Result is not a pointer - -### Rpc/wsevents +### P2p/trust -- Small cleanup +- Split into multiple files and improve function order +- Lock on Copy() -### Server +### Rpc -- Minor refactor +- Make time human readable. closes #926 -### State +### Shame -- Return to-be-used function +- Forgot to add new code pkg ### Types -- Add gas and fee fields to CheckTx - -### WsConnection - -- Call onDisconnect +- Use data.Bytes directly in type.proto via gogo/protobuf. wow +- Consolidate some file +- Add note about ReadMessage having no cap +- RequestBeginBlock includes absent and byzantine validators +- Drop uint64 from protobuf.go +- IsOK() +- Int32 with gogo int +- Fix for broken customtype int in gogo +- Add MarshalJSON funcs for Response types with a Code +- Add UnmarshalJSON funcs for Response types -## [0.12.0] - 2017-10-28 +## [0.12.1] - 2017-11-28 ### Documentation +- Give index a Tools section +- Update and clean up adr +- Use README.rst to be pulled from tendermint +- Re-add the images +- Add original README's from tools repo +- Convert from md to rst +- Update index.rst +- Move images in from tools repo +- Harmonize headers for tools docs +- Add kubes docs to mintnet doc, from tools +- Add original tm-bench/monitor files +- Organize tm-bench/monitor description +- Pull from tools on build +- Finish pull from tools +- Organize the directory, #656 +- Add software.json from website (ecosystem) +- Rename file +- Add and re-format the ecosystem from website +- Pull from tools' master branch +- Using ABCI-CLI +- Remove last section from ecosystem +- Organize install a bit better +- Add ABCI implementations +- Added passchain to the ecosystem.rst in the applications section; +- Fix build warnings +- Add stratumn - Add py-tendermint to abci-servers - Remove mention of type byte - Add info about tm-migrate @@ -8347,6 +8398,7 @@ - Smaller logo (200px) - Comb through step by step - Fixup abci guide +- Fix links, closes #860 ### GroupReader#Read @@ -8354,119 +8406,126 @@ ### Makefile +- Remove redundant lint - Fix linter -### Testing +### PubKeyFromBytes -- Add simple client/server test with no addr prefix -- Update for abci-cli consolidation. shell formatting +- Return zero value PubKey on error -### Blockchain/pool +### Security -- Some comments and small changes +- Use bytes.Equal for key comparison -### Blockchain/store +### Testing -- Comment about panics +- Add simple client/server test with no addr prefix +- Update for abci-cli consolidation. shell formatting -### Cli +### WIP -- Clean up error handling -- Use cobra's new ExactArgs() feature +- Begin parallel refactoring with go-wire Write methods and MConnection -### Cmn +### [docs -- Kill +- Typo fix] remove misplaced "the" +- Typo fix] add missing "have" -### Consensus +### Adr -- Kill process on app error +- Add 005 consensus params -### Console +### All -- Fix output, closes #93 -- Fix tests +- No more anonymous imports -### Dummy +### Autofile -- Verify pubkey is go-crypto encoded in DeliverTx. closes #51 +- Ensure file is open in Sync -### Glide +### Blockchain -- More external deps locked to versions +- Fixing reactor tests +- Add comment in AddPeer. closes #666 -### Keys +### Blockchain/pool -- Transactions.go -> types.go +- Some comments and small changes -### Linting +### Blockchain/reactor -- A few fixes +- RespondWithNoResponseMessage for missing height -### Rpc +### Blockchain/store -- Use /iavl repo in test (#713) +- Comment about panics -### Rpc/client +### Certifiers -- Use compile time assertions instead of methods +- Test uses WaitForHeight -### Rpc/lib/client +### Changelog -- Add jitter for exponential backoff of WSClient -- Jitter test updates and only to-be run on releases +- Add genesis amount->power -### Server +### Circle -- Use cmn.ProtocolAndAddress +- Add metalinter to test -### SocketClient +### Cli -- Fix and test for StopForError deadlock +- Clean up error handling +- Use cobra's new ExactArgs() feature -### Types +### Clist -- ConsensusParams test + document the ranges/limits -- ConsensusParams: add feedback from @ebuchman and @melekes -- Unexpose valset.To/FromBytes +- Reduce numTimes in test -## [0.11.1] - 2017-10-10 +### Cmd -### Documentation +- Dont wait for genesis. closes #562 -- Add ABCI implementations -- Added passchain to the ecosystem.rst in the applications section; -- Fix build warnings -- Add stratumn +### Cmn -### [docs +- Kill -- Typo fix] remove misplaced "the" -- Typo fix] add missing "have" +### Common -### All +- Fingerprint comment +- WriteFileAtomic use tempfile in current dir -- No more anonymous imports +### Consensus -### Autofile +- Remove support for replay by #HEIGHT. closes #567 +- Use filepath for windows compatibility, closes #595 +- Kill process on app error +- Ensure prs.ProposalBlockParts is initialized. fixes #810 +- Fix for initializing block parts during catchup +- Make mempool_test deterministic +- Fix LastCommit log +- Crank timeout in timeoutWaitGroup -- Ensure file is open in Sync +### Consensus/WAL -### Blockchain +- Benchmark WALDecode across data sizes -- Fixing reactor tests +### Console -### Blockchain/reactor +- Fix output, closes #93 +- Fix tests -- RespondWithNoResponseMessage for missing height +### Db -### Changelog +- Fix MemDB.Close +- Sort keys for memdb iterator -- Add genesis amount->power +### Dummy -### Db +- Verify pubkey is go-crypto encoded in DeliverTx. closes #51 -- Fix MemDB.Close +### Errcheck + +- PR comment fixes ### Example @@ -8475,126 +8534,144 @@ ### Glide - Update for autofile fix +- More external deps locked to versions + +### Keys + +- Transactions.go -> types.go + +### Lint + +- Couple more fixes +- Apply deadcode/unused ### Linter - Couple fixes - Add metalinter to Makefile & apply some fixes - Last fixes & add to circle +- Address deadcode, implement incremental lint testing +- Sort through each kind and address small fixes ### Linting +- Cover the basics +- Catch some errors +- Add to Makefile & do some fixes +- Next round of fixes - Fixup some stuffs - Little more fixes +- A few fixes +- Replace megacheck with metalinter +- Apply 'gofmt -s -w' throughout +- Apply misspell +- Apply errcheck part1 +- Apply errcheck part2 +- Moar fixes +- Few more fixes ### Makefile - Remove megacheck -### Rpc - -- Fix client websocket timeout (#687) -- Subscribe on reconnection (#689) - -### Rpc/lib - -- Remove dead files, closes #710 - -### Types/heartbeat - -- Test all Heartbeat functions +### Metalinter -### Upnp +- Add linter to Makefile like tendermint -- Keep a link +### Node -## [0.11.0] - 2017-09-22 +- NewNode takes DBProvider and GenDocProvider +- Clean makeNodeInfo -### Documentation +### P2p -- Give index a Tools section -- Update and clean up adr -- Use README.rst to be pulled from tendermint -- Re-add the images -- Add original README's from tools repo -- Convert from md to rst -- Update index.rst -- Move images in from tools repo -- Harmonize headers for tools docs -- Add kubes docs to mintnet doc, from tools -- Add original tm-bench/monitor files -- Organize tm-bench/monitor description -- Pull from tools on build -- Finish pull from tools -- Organize the directory, #656 -- Add software.json from website (ecosystem) -- Rename file -- Add and re-format the ecosystem from website -- Pull from tools' master branch -- Using ABCI-CLI -- Remove last section from ecosystem -- Organize install a bit better +- Fully test PeerSet, more docs, parallelize PeerSet tests +- Minor comment fixes +- Delete unused and untested *IPRangeCount functions +- Sw.AddPeer -> sw.addPeer +- Allow listener with no external connection +- Update readme, some minor things +- Some fixes re @odeke-em issues #813,#816,#817 +- Comment on the wg.Add before go saveRoutine() +- Peer should respect errors from SetDeadline +- Use fake net.Pipe since only >=Go1.10 implements SetDeadline +- NetPipe for bucketsNew/Old +- Simplify PickAddress +- AddAddress returns error. more defensive PickAddress +- Add non-terminating test +- Fix addToOldBucket +- Some comments -### Adr +### P2p/connetion -- Add 005 consensus params +- Remove panics, test error cases -### Circle +### P2p/pex -- Add metalinter to test +- Simplify ensurePeers -### Cmd +### Readme -- Dont wait for genesis. closes #562 +- Re-organize & update docs links -### Common +### Rpc -- Fingerprint comment -- WriteFileAtomic use tempfile in current dir +- Fix client websocket timeout (#687) +- Subscribe on reconnection (#689) +- Use /iavl repo in test (#713) +- Wait for rpc servers to be available in tests +- Fix tests -### Consensus +### Rpc/client -- Remove support for replay by #HEIGHT. closes #567 -- Use filepath for windows compatibility, closes #595 +- Use compile time assertions instead of methods -### Lint +### Rpc/lib -- Couple more fixes +- Remove dead files, closes #710 -### Linting +### Rpc/lib/client -- Cover the basics -- Catch some errors -- Add to Makefile & do some fixes -- Next round of fixes +- Add jitter for exponential backoff of WSClient +- Jitter test updates and only to-be run on releases -### Metalinter +### Rpc/lib/server -- Add linter to Makefile like tendermint +- Add handlers tests +- Update with @melekes and @ebuchman feedback +- Separate out Notifications test +- Minor changes to test -### Node +### Rpc/lib/types -- NewNode takes DBProvider and GenDocProvider +- RPCResponse.Result is not a pointer -### P2p +### Rpc/wsevents -- Fully test PeerSet, more docs, parallelize PeerSet tests -- Minor comment fixes -- Delete unused and untested *IPRangeCount functions -- Sw.AddPeer -> sw.addPeer -- Allow listener with no external connection +- Small cleanup -### Readme +### Server -- Re-organize & update docs links +- Use cmn.ProtocolAndAddress +- Minor refactor + +### SocketClient + +- Fix and test for StopForError deadlock ### State - Minor comment fixes +- Return to-be-used function ### Types @@ -8602,6 +8679,22 @@ - PrivVal.Sign returns an error - More . -> cmn - Comments +- ConsensusParams test + document the ranges/limits +- ConsensusParams: add feedback from @ebuchman and @melekes +- Unexpose valset.To/FromBytes +- Add gas and fee fields to CheckTx + +### Types/heartbeat + +- Test all Heartbeat functions + +### Upnp + +- Keep a link + +### WsConnection + +- Call onDisconnect ## [0.10.4] - 2017-09-05 @@ -8958,6 +9051,10 @@ - DumpConsensusState, not DialSeeds. Cleanup +### Connect2Switches + +- Panic on err + ### Makefile - Add gmt and lint @@ -8970,6 +9067,20 @@ ### Testing +- RandConsensusNet takes more args +- Crank circle timeouts +- Automate building consensus/test_data +- Circle artifacts +- Dont start cs until all peers connected +- Shorten timeouts +- Remove codecov patch threshold +- Kill and restart all nodes +- Use PROXY_APP=persistent_dummy +- Use fail-test failure indices +- More unique container names +- Set log_level=info +- Always rebuild grpc_client +- Split up test/net/test.sh - Unexport internal function. - Update docker to 1.7.4 - Dont use log files on circle @@ -8994,12 +9105,25 @@ - JTMSP -> jABCI +### Blockchain + +- Thread safe store.Height() + ### Cleanup - Replace common.Exit with log.Crit or log.Fatal ### Consensus +- Wal.Flush() and cleanup replay tests +- TimeoutTicker, skip TimeoutCommit on HasAll +- Mv timeoutRoutine into TimeoutTicker +- No internal vars in reactor.String() +- Sync wal.writeHeight +- Remove crankTimeoutPropose from tests +- Be more explicit when we need to write height after handshake +- Let time.Timer handle non-positive durations +- Check HasAll when TwoThirdsMajority - Nice error msg if ApplyBlock fails - Handshake replay test using wal - More handshake replay tests @@ -9011,6 +9135,7 @@ ### Glide +- Update go-wire - Use versions where applicable ### Lint @@ -9032,58 +9157,6 @@ - /commit - Fix SeenCommit condition -### State - -- Remove StateIntermediate - -### Types - -- Use mtx on PartSet.String() -- ValSet LastProposer->Proposer and Proposer()->GetProposer() - -## [0.8.0] - 2017-01-13 - -### Connect2Switches - -- Panic on err - -### Testing - -- RandConsensusNet takes more args -- Crank circle timeouts -- Automate building consensus/test_data -- Circle artifacts -- Dont start cs until all peers connected -- Shorten timeouts -- Remove codecov patch threshold -- Kill and restart all nodes -- Use PROXY_APP=persistent_dummy -- Use fail-test failure indices -- More unique container names -- Set log_level=info -- Always rebuild grpc_client -- Split up test/net/test.sh - -### Blockchain - -- Thread safe store.Height() - -### Consensus - -- Wal.Flush() and cleanup replay tests -- TimeoutTicker, skip TimeoutCommit on HasAll -- Mv timeoutRoutine into TimeoutTicker -- No internal vars in reactor.String() -- Sync wal.writeHeight -- Remove crankTimeoutPropose from tests -- Be more explicit when we need to write height after handshake -- Let time.Timer handle non-positive durations -- Check HasAll when TwoThirdsMajority - -### Glide - -- Update go-wire - ### Shame - Version bump 0.7.4 @@ -9091,6 +9164,7 @@ ### State - AppHashIsStale -> IntermediateState +- Remove StateIntermediate ### Tmsp @@ -9101,6 +9175,8 @@ - Benchmark WriteSignBytes - Canonical_json.go - SignatureEd25519 -> Signature +- Use mtx on PartSet.String() +- ValSet LastProposer->Proposer and Proposer()->GetProposer() ## [0.7.4] - 2016-12-14 @@ -9199,48 +9275,7 @@ - Bump 0.7.3 -## [0.7.1] - 2016-09-11 - -### Testing - -- Refactor bash; test fastsync (failing) -- Name client conts so we dont need to rm them because circle -- Test dummy using rpc query -- Add xxd dep to dockerfile -- More verbosity -- Add killall to dockerfile. cleanup - -### Client - -- Safe error handling - -### Config - -- All urls use tcp:// or unix:// prefix -- Filter_peers defaults to false -- Reduce timeouts during test - -### Consensus - -- Add note about replay test -- No sign err in replay; fix a race - -### Proxy - -- Typed app conns -- NewAppConns takes a NewTMSPClient func -- Wrap NewTMSPClient in ClientCreator -- Nil -> nilapp - -### Throttle_timer - -- Fix race, use mtx instead of atomic - -### Types - -- PrivVal.LastSignature. closes #247 - -## [0.7.0] - 2016-08-07 +## [0.7.2] - 2016-09-11 ### Documentation @@ -9259,6 +9294,12 @@ - Cleanup - Dont run cloud test on push to master - README.md +- Refactor bash; test fastsync (failing) +- Name client conts so we dont need to rm them because circle +- Test dummy using rpc query +- Add xxd dep to dockerfile +- More verbosity +- Add killall to dockerfile. cleanup ### Binary @@ -9277,6 +9318,7 @@ - ResultsCh chan json.RawMessage, ErrorsCh - Wsc.String() +- Safe error handling ### Config @@ -9285,6 +9327,9 @@ - Cswal_light, mempool_broadcast, mempool_reap - Toggle authenticated encryption - Disable_data_hash (for testing) +- All urls use tcp:// or unix:// prefix +- Filter_peers defaults to false +- Reduce timeouts during test ### Consensus @@ -9303,6 +9348,8 @@ - Hvs.Reset(height, valSet) - Increase mempool_test timeout - Don't print shared vars in cs.String() +- Add note about replay test +- No sign err in replay; fix a race ### Daemon @@ -9334,6 +9381,13 @@ - Broadcast spawns goroutine to Send on each peer and times out after 10 seconds. Closes #7 - Fix switch test for Broadcast returning success channel +### Proxy + +- Typed app conns +- NewAppConns takes a NewTMSPClient func +- Wrap NewTMSPClient in ClientCreator +- Nil -> nilapp + ### Rpc - Add status and net info @@ -9395,6 +9449,14 @@ - Fix GetStorage on blockcache with unknown account - FireEvents flag on ExecTx and fixes for GetAccount +### Throttle_timer + +- Fix race, use mtx instead of atomic + +### Types + +- PrivVal.LastSignature. closes #247 + ### Vm - Check errors early to avoid infinite loop diff --git a/abci/client/client.go b/abci/client/client.go index 329b00aa5..c5afa771e 100644 --- a/abci/client/client.go +++ b/abci/client/client.go @@ -6,9 +6,9 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) const ( diff --git a/abci/client/grpc_client.go b/abci/client/grpc_client.go index 459dfaf9a..91e848f7b 100644 --- a/abci/client/grpc_client.go +++ b/abci/client/grpc_client.go @@ -11,10 +11,10 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/libs/service" ) // A gRPC client. diff --git a/abci/client/local_client.go b/abci/client/local_client.go index 1002c64e8..ecaa2e830 100644 --- a/abci/client/local_client.go +++ b/abci/client/local_client.go @@ -3,9 +3,9 @@ package abciclient import ( "context" - types "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + types "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) // NOTE: use defer to unlock mutex because Application might panic (e.g., in diff --git a/abci/client/mocks/client.go b/abci/client/mocks/client.go index 8d77c50c4..984e97ef7 100644 --- a/abci/client/mocks/client.go +++ b/abci/client/mocks/client.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + types "github.com/dashpay/tenderdash/abci/types" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/abci/types" ) // Client is an autogenerated mock type for the Client type @@ -439,13 +439,12 @@ func (_m *Client) Wait() { _m.Called() } -type mockConstructorTestingTNewClient interface { +// NewClient creates a new instance of Client. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewClient creates a new instance of Client. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewClient(t mockConstructorTestingTNewClient) *Client { +}) *Client { mock := &Client{} mock.Mock.Test(t) diff --git a/abci/client/socket_client.go b/abci/client/socket_client.go index 3867845e8..26adc2318 100644 --- a/abci/client/socket_client.go +++ b/abci/client/socket_client.go @@ -12,10 +12,10 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/libs/service" ) // This is goroutine-safe, but users should beware that the application in diff --git a/abci/cmd/abci-cli/abci-cli.go b/abci/cmd/abci-cli/abci-cli.go index f5c0f62e9..6680a8aef 100644 --- a/abci/cmd/abci-cli/abci-cli.go +++ b/abci/cmd/abci-cli/abci-cli.go @@ -15,17 +15,16 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/version" - - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/code" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/abci/server" - servertest "github.com/tendermint/tendermint/abci/tests/server" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/proto/tendermint/crypto" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/code" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/abci/server" + servertest "github.com/dashpay/tenderdash/abci/tests/server" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/proto/tendermint/crypto" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/version" ) // client is a global variable so it can be reused by the console diff --git a/abci/example/counter/counter.go b/abci/example/counter/counter.go index a2b56bb40..293e828f6 100644 --- a/abci/example/counter/counter.go +++ b/abci/example/counter/counter.go @@ -5,10 +5,10 @@ import ( "encoding/binary" "fmt" - "github.com/tendermint/tendermint/abci/example/code" - "github.com/tendermint/tendermint/abci/types" - tmcrypto "github.com/tendermint/tendermint/crypto" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/code" + "github.com/dashpay/tenderdash/abci/types" + tmcrypto "github.com/dashpay/tenderdash/crypto" + tmtypes "github.com/dashpay/tenderdash/types" ) type Application struct { diff --git a/abci/example/example_test.go b/abci/example/example_test.go index 54b650652..d1f38df68 100644 --- a/abci/example/example_test.go +++ b/abci/example/example_test.go @@ -14,14 +14,13 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials/insecure" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/code" - "github.com/tendermint/tendermint/abci/example/kvstore" - abciserver "github.com/tendermint/tendermint/abci/server" - "github.com/tendermint/tendermint/abci/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/code" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abciserver "github.com/dashpay/tenderdash/abci/server" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" ) func init() { diff --git a/abci/example/kvstore/config.go b/abci/example/kvstore/config.go index abd56d751..4edebf81a 100644 --- a/abci/example/kvstore/config.go +++ b/abci/example/kvstore/config.go @@ -10,10 +10,10 @@ import ( "github.com/gogo/protobuf/proto" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/encoding" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/encoding" ) // Config allows for the setting of high level parameters for running the e2e Application diff --git a/abci/example/kvstore/helpers_test.go b/abci/example/kvstore/helpers_test.go index fe3ec1c82..6fe1208a7 100644 --- a/abci/example/kvstore/helpers_test.go +++ b/abci/example/kvstore/helpers_test.go @@ -1,10 +1,10 @@ package kvstore import ( - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/llmq" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/llmq" + tmtypes "github.com/dashpay/tenderdash/types" ) // RandValidatorSetUpdate returns a list of cnt validators for initializing diff --git a/abci/example/kvstore/kvstore.go b/abci/example/kvstore/kvstore.go index e9b6fbe48..41e9c2e52 100644 --- a/abci/example/kvstore/kvstore.go +++ b/abci/example/kvstore/kvstore.go @@ -16,15 +16,15 @@ import ( "github.com/gogo/protobuf/proto" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/abci/example/code" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/abci/example/code" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + types1 "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) const ProtocolVersion uint64 = 0x12345678 @@ -493,7 +493,7 @@ func (app *Application) LoadSnapshotChunk(_ context.Context, req *abci.RequestLo app.mu.Lock() defer app.mu.Unlock() - chunk, err := app.snapshots.LoadChunk(req.Height, req.Format, req.Chunk) + chunk, err := app.snapshots.LoadChunk(req.Height, req.Version, req.ChunkId) if err != nil { return &abci.ResponseLoadSnapshotChunk{}, err } @@ -523,7 +523,11 @@ func (app *Application) ApplySnapshotChunk(_ context.Context, req *abci.RequestA if app.offerSnapshot == nil { return &abci.ResponseApplySnapshotChunk{}, fmt.Errorf("no restore in progress") } - app.offerSnapshot.addChunk(int(req.Index), req.Chunk) + + resp := &abci.ResponseApplySnapshotChunk{ + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + NextChunks: app.offerSnapshot.addChunk(req.ChunkId, req.Chunk), + } if app.offerSnapshot.isFull() { chunks := app.offerSnapshot.bytes() @@ -538,11 +542,10 @@ func (app *Application) ApplySnapshotChunk(_ context.Context, req *abci.RequestA "snapshot_height", app.offerSnapshot.snapshot.Height, "snapshot_apphash", app.offerSnapshot.appHash, ) + resp.Result = abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT app.offerSnapshot = nil } - resp := &abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT} - app.logger.Debug("ApplySnapshotChunk", "resp", resp) return resp, nil } @@ -556,7 +559,9 @@ func (app *Application) createSnapshot() error { if err != nil { return fmt.Errorf("create snapshot: %w", err) } - app.logger.Info("created state sync snapshot", "height", height, "apphash", app.LastCommittedState.GetAppHash()) + app.logger.Info("created state sync snapshot", + "height", height, + "apphash", app.LastCommittedState.GetAppHash()) err = app.snapshots.Prune(maxSnapshotCount) if err != nil { return fmt.Errorf("prune snapshots: %w", err) diff --git a/abci/example/kvstore/kvstore_test.go b/abci/example/kvstore/kvstore_test.go index 14a36d4a3..0041c0e4f 100644 --- a/abci/example/kvstore/kvstore_test.go +++ b/abci/example/kvstore/kvstore_test.go @@ -12,17 +12,17 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/code" - abciserver "github.com/tendermint/tendermint/abci/server" - "github.com/tendermint/tendermint/abci/types" - tmcrypto "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/code" + abciserver "github.com/dashpay/tenderdash/abci/server" + "github.com/dashpay/tenderdash/abci/types" + tmcrypto "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + tmtypes "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) const ( @@ -493,24 +493,20 @@ func TestSnapshots(t *testing.T) { }) require.NoError(t, err) assert.Equal(t, types.ResponseOfferSnapshot_ACCEPT, respOffer.Result) + loaded, err := app.LoadSnapshotChunk(ctx, &types.RequestLoadSnapshotChunk{ + Height: recentSnapshot.Height, + ChunkId: recentSnapshot.Hash, + Version: recentSnapshot.Version, + }) + require.NoError(t, err) - for chunk := uint32(0); chunk < recentSnapshot.Chunks; chunk++ { - loaded, err := app.LoadSnapshotChunk(ctx, &types.RequestLoadSnapshotChunk{ - Height: recentSnapshot.Height, - Chunk: chunk, - Format: recentSnapshot.Format, - }) - require.NoError(t, err) - - applied, err := dstApp.ApplySnapshotChunk(ctx, &types.RequestApplySnapshotChunk{ - Index: chunk, - Chunk: loaded.Chunk, - Sender: "app", - }) - require.NoError(t, err) - assert.Equal(t, types.ResponseApplySnapshotChunk_ACCEPT, applied.Result) - } - + applied, err := dstApp.ApplySnapshotChunk(ctx, &types.RequestApplySnapshotChunk{ + ChunkId: recentSnapshot.Hash, + Chunk: loaded.Chunk, + Sender: "app", + }) + require.NoError(t, err) + assert.Equal(t, types.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT, applied.Result) infoResp, err := dstApp.Info(ctx, &types.RequestInfo{}) require.NoError(t, err) assertRespInfo(t, int64(recentSnapshot.Height), appHashes[snapshotHeight], *infoResp) diff --git a/abci/example/kvstore/snapshots.go b/abci/example/kvstore/snapshots.go index 919f640d1..13eb2ebb2 100644 --- a/abci/example/kvstore/snapshots.go +++ b/abci/example/kvstore/snapshots.go @@ -3,18 +3,19 @@ package kvstore import ( "bytes" + "encoding/hex" "encoding/json" "errors" "fmt" - "math" "os" "path/filepath" sync "github.com/sasha-s/go-deadlock" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/ds" ) const ( @@ -27,11 +28,17 @@ const ( // SnapshotStore stores state sync snapshots. Snapshots are stored simply as // JSON files, and chunks are generated on-the-fly by splitting the JSON data // into fixed-size chunks. -type SnapshotStore struct { - sync.RWMutex - dir string - metadata []abci.Snapshot -} +type ( + SnapshotStore struct { + sync.RWMutex + dir string + metadata []abci.Snapshot + } + chunkItem struct { + Data []byte `json:"data"` + NextChunkIDs [][]byte `json:"nextChunkIDs"` + } +) // NewSnapshotStore creates a new snapshot store. func NewSnapshotStore(dir string) (*SnapshotStore, error) { @@ -49,7 +56,7 @@ func NewSnapshotStore(dir string) (*SnapshotStore, error) { // called internally on construction. func (s *SnapshotStore) loadMetadata() error { file := filepath.Join(s.dir, "metadata.json") - metadata := []abci.Snapshot{} + var metadata []abci.Snapshot bz, err := os.ReadFile(file) switch { @@ -96,10 +103,9 @@ func (s *SnapshotStore) Create(state State) (abci.Snapshot, error) { } height := state.GetHeight() snapshot := abci.Snapshot{ - Height: uint64(height), - Format: 1, - Hash: crypto.Checksum(bz), - Chunks: byteChunks(bz), + Height: uint64(height), + Version: 1, + Hash: crypto.Checksum(bz), } err = os.WriteFile(filepath.Join(s.dir, fmt.Sprintf("%v.json", height)), bz, 0644) if err != nil { @@ -152,16 +158,18 @@ func (s *SnapshotStore) List() ([]*abci.Snapshot, error) { } // LoadChunk loads a snapshot chunk. -func (s *SnapshotStore) LoadChunk(height uint64, format uint32, chunk uint32) ([]byte, error) { +func (s *SnapshotStore) LoadChunk(height uint64, version uint32, chunkID []byte) ([]byte, error) { s.RLock() defer s.RUnlock() for _, snapshot := range s.metadata { - if snapshot.Height == height && snapshot.Format == format { - bz, err := os.ReadFile(filepath.Join(s.dir, fmt.Sprintf("%v.json", height))) + if snapshot.Height == height && snapshot.Version == version { + bz, err := os.ReadFile(filepath.Join(s.dir, fmt.Sprintf("%d.json", height))) if err != nil { return nil, err } - return byteChunk(bz, chunk), nil + chunks := makeChunks(bz, snapshotChunkSize) + item := makeChunkItem(chunks, chunkID) + return json.Marshal(item) } } return nil, nil @@ -170,54 +178,79 @@ func (s *SnapshotStore) LoadChunk(height uint64, format uint32, chunk uint32) ([ type offerSnapshot struct { snapshot *abci.Snapshot appHash tmbytes.HexBytes - chunks [][]byte - chunkCnt int + chunks *ds.OrderedMap[string, []byte] } func newOfferSnapshot(snapshot *abci.Snapshot, appHash tmbytes.HexBytes) *offerSnapshot { return &offerSnapshot{ snapshot: snapshot, appHash: appHash, - chunks: make([][]byte, snapshot.Chunks), - chunkCnt: 0, + chunks: ds.NewOrderedMap[string, []byte](), } } -func (s *offerSnapshot) addChunk(index int, chunk []byte) { - if s.chunks[index] != nil { - return +func (s *offerSnapshot) addChunk(chunkID tmbytes.HexBytes, data []byte) [][]byte { + chunkIDStr := chunkID.String() + if s.chunks.Has(chunkIDStr) { + return nil } - s.chunks[index] = chunk - s.chunkCnt++ + var item chunkItem + err := json.Unmarshal(data, &item) + if err != nil { + panic("failed to decode a chunk data: " + err.Error()) + } + s.chunks.Put(chunkIDStr, item.Data) + return item.NextChunkIDs } func (s *offerSnapshot) isFull() bool { - return s.chunkCnt == int(s.snapshot.Chunks) + return bytes.Equal(crypto.Checksum(s.bytes()), s.snapshot.Hash) } func (s *offerSnapshot) bytes() []byte { + chunks := s.chunks.Values() buf := bytes.NewBuffer(nil) - for _, chunk := range s.chunks { + for _, chunk := range chunks { buf.Write(chunk) } return buf.Bytes() } -// byteChunk returns the chunk at a given index from the full byte slice. -func byteChunk(bz []byte, index uint32) []byte { - start := int(index * snapshotChunkSize) - end := int((index + 1) * snapshotChunkSize) - switch { - case start >= len(bz): - return nil - case end >= len(bz): - return bz[start:] - default: - return bz[start:end] +// makeChunkItem returns the chunk at a given index from the full byte slice. +func makeChunkItem(chunks *ds.OrderedMap[string, []byte], chunkID []byte) chunkItem { + chunkIDStr := hex.EncodeToString(chunkID) + val, ok := chunks.Get(chunkIDStr) + if !ok { + panic("chunk not found") } + chunkIDs := chunks.Keys() + ci := chunkItem{Data: val} + i := 0 + for ; i < len(chunkIDs) && chunkIDs[i] != chunkIDStr; i++ { + } + if i+1 < len(chunkIDs) { + data, err := hex.DecodeString(chunkIDs[i+1]) + if err != nil { + panic(err) + } + ci.NextChunkIDs = [][]byte{data} + } + return ci } -// byteChunks calculates the number of chunks in the byte slice. -func byteChunks(bz []byte) uint32 { - return uint32(math.Ceil(float64(len(bz)) / snapshotChunkSize)) +func makeChunks(bz []byte, chunkSize int) *ds.OrderedMap[string, []byte] { + chunks := ds.NewOrderedMap[string, []byte]() + totalHash := hex.EncodeToString(crypto.Checksum(bz)) + key := totalHash + for i := 0; i < len(bz); i += chunkSize { + j := i + chunkSize + if j > len(bz) { + j = len(bz) + } + if i > 1 { + key = hex.EncodeToString(crypto.Checksum(bz[i:j])) + } + chunks.Put(key, append([]byte(nil), bz[i:j]...)) + } + return chunks } diff --git a/abci/example/kvstore/snapshots_test.go b/abci/example/kvstore/snapshots_test.go new file mode 100644 index 000000000..2b75b9b39 --- /dev/null +++ b/abci/example/kvstore/snapshots_test.go @@ -0,0 +1,37 @@ +package kvstore + +import ( + "encoding/hex" + "math/rand" + "testing" + + "github.com/stretchr/testify/require" +) + +func TestChunkItem(t *testing.T) { + const size = 64 + chunks := makeChunks(makeBytes(1032), size) + keys := chunks.Keys() + values := chunks.Values() + for i, key := range keys { + chunkID, err := hex.DecodeString(key) + require.NoError(t, err) + item := makeChunkItem(chunks, chunkID) + require.Equal(t, values[i], item.Data) + if i+1 < len(keys) { + nextChunkID, err := hex.DecodeString(keys[i+1]) + require.NoError(t, err) + require.Equal(t, [][]byte{nextChunkID}, item.NextChunkIDs) + } else { + require.Nil(t, item.NextChunkIDs) + } + } +} + +func makeBytes(size int) []byte { + bz := make([]byte, size) + for i := 0; i < size; i++ { + bz[i] = byte(rand.Int63n(256)) + } + return bz +} diff --git a/abci/example/kvstore/state.go b/abci/example/kvstore/state.go index 0c32913c5..fc4b2321c 100644 --- a/abci/example/kvstore/state.go +++ b/abci/example/kvstore/state.go @@ -8,10 +8,10 @@ import ( dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - types1 "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + types1 "github.com/dashpay/tenderdash/types" ) // State represents kvstore app state at some height. diff --git a/abci/example/kvstore/state_test.go b/abci/example/kvstore/state_test.go index 452db3717..e2ba12102 100644 --- a/abci/example/kvstore/state_test.go +++ b/abci/example/kvstore/state_test.go @@ -8,8 +8,8 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) func TestStateMarshalUnmarshal(t *testing.T) { diff --git a/abci/example/kvstore/tx.go b/abci/example/kvstore/tx.go index 12743afbb..53a4b1987 100644 --- a/abci/example/kvstore/tx.go +++ b/abci/example/kvstore/tx.go @@ -5,9 +5,9 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/abci/example/code" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/code" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/types" ) // PrepareTxsFunc prepares transactions, possibly adding and/or removing some of them diff --git a/abci/example/kvstore/verify.go b/abci/example/kvstore/verify.go index 6ddad0002..5e81aa18a 100644 --- a/abci/example/kvstore/verify.go +++ b/abci/example/kvstore/verify.go @@ -6,11 +6,11 @@ import ( "github.com/dashpay/dashd-go/btcjson" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto/encoding" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto/encoding" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + types1 "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func (app *Application) verifyBlockCommit(qsd types.QuorumSignData, commit abci.CommitInfo) error { diff --git a/abci/example/kvstore/verify_test.go b/abci/example/kvstore/verify_test.go index 88b37268d..cb381a9fc 100644 --- a/abci/example/kvstore/verify_test.go +++ b/abci/example/kvstore/verify_test.go @@ -9,13 +9,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestVerifyBlockCommit(t *testing.T) { diff --git a/abci/server/grpc_server.go b/abci/server/grpc_server.go index 9aab08fd4..00821a843 100644 --- a/abci/server/grpc_server.go +++ b/abci/server/grpc_server.go @@ -6,10 +6,10 @@ import ( "google.golang.org/grpc" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/libs/service" ) type GRPCServer struct { diff --git a/abci/server/server.go b/abci/server/server.go index 0e731d404..738c2c25c 100644 --- a/abci/server/server.go +++ b/abci/server/server.go @@ -10,9 +10,9 @@ package server import ( "fmt" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) func NewServer(logger log.Logger, protoAddr, transport string, app types.Application) (service.Service, error) { diff --git a/abci/server/socket_server.go b/abci/server/socket_server.go index 4bd6aa799..ac40a604b 100644 --- a/abci/server/socket_server.go +++ b/abci/server/socket_server.go @@ -11,10 +11,10 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/libs/service" ) // var maxNumberConnections = 2 diff --git a/abci/tests/benchmarks/parallel/parallel.go b/abci/tests/benchmarks/parallel/parallel.go index fe213313d..9fd6ca813 100644 --- a/abci/tests/benchmarks/parallel/parallel.go +++ b/abci/tests/benchmarks/parallel/parallel.go @@ -5,8 +5,8 @@ import ( "fmt" "log" - "github.com/tendermint/tendermint/abci/types" - tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/dashpay/tenderdash/abci/types" + tmnet "github.com/dashpay/tenderdash/libs/net" ) func main() { diff --git a/abci/tests/benchmarks/simple/simple.go b/abci/tests/benchmarks/simple/simple.go index b18eaa580..c7edf1231 100644 --- a/abci/tests/benchmarks/simple/simple.go +++ b/abci/tests/benchmarks/simple/simple.go @@ -7,8 +7,8 @@ import ( "log" "reflect" - "github.com/tendermint/tendermint/abci/types" - tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/dashpay/tenderdash/abci/types" + tmnet "github.com/dashpay/tenderdash/libs/net" ) func main() { diff --git a/abci/tests/client_server_test.go b/abci/tests/client_server_test.go index 15c1db2ec..f95c124e5 100644 --- a/abci/tests/client_server_test.go +++ b/abci/tests/client_server_test.go @@ -8,10 +8,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abciclientent "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abciserver "github.com/tendermint/tendermint/abci/server" - "github.com/tendermint/tendermint/libs/log" + abciclientent "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abciserver "github.com/dashpay/tenderdash/abci/server" + "github.com/dashpay/tenderdash/libs/log" ) func TestClientServerNoAddrPrefix(t *testing.T) { diff --git a/abci/tests/server/client.go b/abci/tests/server/client.go index f3a40c242..162f1a000 100644 --- a/abci/tests/server/client.go +++ b/abci/tests/server/client.go @@ -6,11 +6,11 @@ import ( "errors" "fmt" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/llmq" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/llmq" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func InitChain(ctx context.Context, client abciclient.Client) error { diff --git a/abci/types/application.go b/abci/types/application.go index f42f185eb..19b52612f 100644 --- a/abci/types/application.go +++ b/abci/types/application.go @@ -3,14 +3,28 @@ package types import ( "context" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) +// StateSyncer is an interface that handles the state sync protocol +type StateSyncer interface { + // ListSnapshots returns list available snapshots + ListSnapshots(context.Context, *RequestListSnapshots) (*ResponseListSnapshots, error) + // OfferSnapshot accepts or rejects an offered snapshot to the state synchronization + OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) + // LoadSnapshotChunk loads a chunk of snapshot + LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) + // ApplySnapshotChunk applies a chunk of snapshot + ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) +} + // Application is an interface that enables any finite, deterministic state machine // to be driven by a blockchain-based replication engine via the ABCI. // //go:generate ../../scripts/mockery_generate.sh Application type Application interface { + StateSyncer + // Info/Query Connection Info(context.Context, *RequestInfo) (*ResponseInfo, error) // Return application info Query(context.Context, *RequestQuery) (*ResponseQuery, error) // Query for state @@ -28,12 +42,6 @@ type Application interface { VerifyVoteExtension(context.Context, *RequestVerifyVoteExtension) (*ResponseVerifyVoteExtension, error) // Deliver the decided block with its txs to the Application FinalizeBlock(context.Context, *RequestFinalizeBlock) (*ResponseFinalizeBlock, error) - - // State Sync Connection - ListSnapshots(context.Context, *RequestListSnapshots) (*ResponseListSnapshots, error) // List available snapshots - OfferSnapshot(context.Context, *RequestOfferSnapshot) (*ResponseOfferSnapshot, error) // Offer a snapshot to the application - LoadSnapshotChunk(context.Context, *RequestLoadSnapshotChunk) (*ResponseLoadSnapshotChunk, error) // Load a snapshot chunk - ApplySnapshotChunk(context.Context, *RequestApplySnapshotChunk) (*ResponseApplySnapshotChunk, error) // Apply a shapshot chunk } //------------------------------------------------------- diff --git a/abci/types/messages.go b/abci/types/messages.go index bfcd392b3..4a749fc83 100644 --- a/abci/types/messages.go +++ b/abci/types/messages.go @@ -5,7 +5,7 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/internal/libs/protoio" + "github.com/dashpay/tenderdash/internal/libs/protoio" ) const ( diff --git a/abci/types/messages_test.go b/abci/types/messages_test.go index 404d55222..7e79f1d35 100644 --- a/abci/types/messages_test.go +++ b/abci/types/messages_test.go @@ -9,7 +9,7 @@ import ( "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/assert" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestMarshalJSON(t *testing.T) { diff --git a/abci/types/mocks/application.go b/abci/types/mocks/application.go index be32ed8e1..e7767821d 100644 --- a/abci/types/mocks/application.go +++ b/abci/types/mocks/application.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + types "github.com/dashpay/tenderdash/abci/types" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/abci/types" ) // Application is an autogenerated mock type for the Application type @@ -352,13 +352,12 @@ func (_m *Application) VerifyVoteExtension(_a0 context.Context, _a1 *types.Reque return r0, r1 } -type mockConstructorTestingTNewApplication interface { +// NewApplication creates a new instance of Application. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewApplication(t interface { mock.TestingT Cleanup(func()) -} - -// NewApplication creates a new instance of Application. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewApplication(t mockConstructorTestingTNewApplication) *Application { +}) *Application { mock := &Application{} mock.Mock.Test(t) diff --git a/abci/types/types.go b/abci/types/types.go index f3e26886b..3d8290259 100644 --- a/abci/types/types.go +++ b/abci/types/types.go @@ -7,12 +7,12 @@ import ( "github.com/gogo/protobuf/jsonpb" - "github.com/tendermint/tendermint/crypto" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/internal/jsontypes" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/abci/types/types.pb.go b/abci/types/types.pb.go index e1f6c277c..5b4fd87a4 100644 --- a/abci/types/types.pb.go +++ b/abci/types/types.pb.go @@ -6,13 +6,13 @@ package types import ( context "context" fmt "fmt" + crypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + types1 "github.com/dashpay/tenderdash/proto/tendermint/types" + version "github.com/dashpay/tenderdash/proto/tendermint/version" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" _ "github.com/gogo/protobuf/types" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" - version "github.com/tendermint/tendermint/proto/tendermint/version" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" @@ -130,12 +130,13 @@ func (ResponseOfferSnapshot_Result) EnumDescriptor() ([]byte, []int) { type ResponseApplySnapshotChunk_Result int32 const ( - ResponseApplySnapshotChunk_UNKNOWN ResponseApplySnapshotChunk_Result = 0 - ResponseApplySnapshotChunk_ACCEPT ResponseApplySnapshotChunk_Result = 1 - ResponseApplySnapshotChunk_ABORT ResponseApplySnapshotChunk_Result = 2 - ResponseApplySnapshotChunk_RETRY ResponseApplySnapshotChunk_Result = 3 - ResponseApplySnapshotChunk_RETRY_SNAPSHOT ResponseApplySnapshotChunk_Result = 4 - ResponseApplySnapshotChunk_REJECT_SNAPSHOT ResponseApplySnapshotChunk_Result = 5 + ResponseApplySnapshotChunk_UNKNOWN ResponseApplySnapshotChunk_Result = 0 + ResponseApplySnapshotChunk_ACCEPT ResponseApplySnapshotChunk_Result = 1 + ResponseApplySnapshotChunk_ABORT ResponseApplySnapshotChunk_Result = 2 + ResponseApplySnapshotChunk_RETRY ResponseApplySnapshotChunk_Result = 3 + ResponseApplySnapshotChunk_RETRY_SNAPSHOT ResponseApplySnapshotChunk_Result = 4 + ResponseApplySnapshotChunk_REJECT_SNAPSHOT ResponseApplySnapshotChunk_Result = 5 + ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT ResponseApplySnapshotChunk_Result = 6 ) var ResponseApplySnapshotChunk_Result_name = map[int32]string{ @@ -145,15 +146,17 @@ var ResponseApplySnapshotChunk_Result_name = map[int32]string{ 3: "RETRY", 4: "RETRY_SNAPSHOT", 5: "REJECT_SNAPSHOT", + 6: "COMPLETE_SNAPSHOT", } var ResponseApplySnapshotChunk_Result_value = map[string]int32{ - "UNKNOWN": 0, - "ACCEPT": 1, - "ABORT": 2, - "RETRY": 3, - "RETRY_SNAPSHOT": 4, - "REJECT_SNAPSHOT": 5, + "UNKNOWN": 0, + "ACCEPT": 1, + "ABORT": 2, + "RETRY": 3, + "RETRY_SNAPSHOT": 4, + "REJECT_SNAPSHOT": 5, + "COMPLETE_SNAPSHOT": 6, } func (x ResponseApplySnapshotChunk_Result) String() string { @@ -1024,9 +1027,9 @@ func (m *RequestOfferSnapshot) GetAppHash() []byte { // Used during state sync to retrieve snapshot chunks from peers. type RequestLoadSnapshotChunk struct { - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` - Chunk uint32 `protobuf:"varint,3,opt,name=chunk,proto3" json:"chunk,omitempty"` + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + ChunkId []byte `protobuf:"bytes,3,opt,name=chunk_id,json=chunkId,proto3" json:"chunk_id,omitempty"` } func (m *RequestLoadSnapshotChunk) Reset() { *m = RequestLoadSnapshotChunk{} } @@ -1069,18 +1072,18 @@ func (m *RequestLoadSnapshotChunk) GetHeight() uint64 { return 0 } -func (m *RequestLoadSnapshotChunk) GetFormat() uint32 { +func (m *RequestLoadSnapshotChunk) GetVersion() uint32 { if m != nil { - return m.Format + return m.Version } return 0 } -func (m *RequestLoadSnapshotChunk) GetChunk() uint32 { +func (m *RequestLoadSnapshotChunk) GetChunkId() []byte { if m != nil { - return m.Chunk + return m.ChunkId } - return 0 + return nil } // Applies a snapshot chunk. @@ -1096,9 +1099,9 @@ func (m *RequestLoadSnapshotChunk) GetChunk() uint32 { // it will reject the snapshot and try a different one via OfferSnapshot. The application should be prepared to reset // and accept it or abort as appropriate. type RequestApplySnapshotChunk struct { - Index uint32 `protobuf:"varint,1,opt,name=index,proto3" json:"index,omitempty"` - Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"` - Sender string `protobuf:"bytes,3,opt,name=sender,proto3" json:"sender,omitempty"` + ChunkId []byte `protobuf:"bytes,1,opt,name=chunk_id,json=chunkId,proto3" json:"chunk_id,omitempty"` + Chunk []byte `protobuf:"bytes,2,opt,name=chunk,proto3" json:"chunk,omitempty"` + Sender string `protobuf:"bytes,3,opt,name=sender,proto3" json:"sender,omitempty"` } func (m *RequestApplySnapshotChunk) Reset() { *m = RequestApplySnapshotChunk{} } @@ -1134,11 +1137,11 @@ func (m *RequestApplySnapshotChunk) XXX_DiscardUnknown() { var xxx_messageInfo_RequestApplySnapshotChunk proto.InternalMessageInfo -func (m *RequestApplySnapshotChunk) GetIndex() uint32 { +func (m *RequestApplySnapshotChunk) GetChunkId() []byte { if m != nil { - return m.Index + return m.ChunkId } - return 0 + return nil } func (m *RequestApplySnapshotChunk) GetChunk() []byte { @@ -1444,6 +1447,7 @@ type RequestProcessProposal struct { // List of information about validators that acted incorrectly. Misbehavior []Misbehavior `protobuf:"bytes,3,rep,name=misbehavior,proto3" json:"misbehavior"` // The block header's hash of the proposed block. + // It is computed as a Merkle tree from the header fields. Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` // The height of the proposed block. Height int64 `protobuf:"varint,5,opt,name=height,proto3" json:"height,omitempty"` @@ -2819,11 +2823,13 @@ type ResponseApplySnapshotChunk struct { Result ResponseApplySnapshotChunk_Result `protobuf:"varint,1,opt,name=result,proto3,enum=tendermint.abci.ResponseApplySnapshotChunk_Result" json:"result,omitempty"` // Refetch and reapply the given chunks, regardless of `result`. // Only the listed chunks will be refetched, and reapplied in sequential order. - RefetchChunks []uint32 `protobuf:"varint,2,rep,packed,name=refetch_chunks,json=refetchChunks,proto3" json:"refetch_chunks,omitempty"` + RefetchChunks [][]byte `protobuf:"bytes,2,rep,name=refetch_chunks,json=refetchChunks,proto3" json:"refetch_chunks,omitempty"` // Reject the given P2P senders, regardless of `Result`. Any chunks already applied will not be refetched // unless explicitly requested, but queued chunks from these senders will be discarded, and new chunks // or other snapshots rejected. RejectSenders []string `protobuf:"bytes,3,rep,name=reject_senders,json=rejectSenders,proto3" json:"reject_senders,omitempty"` + // Next chunks provides the list of chunks that should be requested next, if any. + NextChunks [][]byte `protobuf:"bytes,4,rep,name=next_chunks,json=nextChunks,proto3" json:"next_chunks,omitempty"` } func (m *ResponseApplySnapshotChunk) Reset() { *m = ResponseApplySnapshotChunk{} } @@ -2866,7 +2872,7 @@ func (m *ResponseApplySnapshotChunk) GetResult() ResponseApplySnapshotChunk_Resu return ResponseApplySnapshotChunk_UNKNOWN } -func (m *ResponseApplySnapshotChunk) GetRefetchChunks() []uint32 { +func (m *ResponseApplySnapshotChunk) GetRefetchChunks() [][]byte { if m != nil { return m.RefetchChunks } @@ -2880,6 +2886,13 @@ func (m *ResponseApplySnapshotChunk) GetRejectSenders() []string { return nil } +func (m *ResponseApplySnapshotChunk) GetNextChunks() [][]byte { + if m != nil { + return m.NextChunks + } + return nil +} + type ResponsePrepareProposal struct { // Possibly modified list of transactions that have been picked as part of the proposed block. TxRecords []*TxRecord `protobuf:"bytes,1,rep,name=tx_records,json=txRecords,proto3" json:"tx_records,omitempty"` @@ -4134,8 +4147,7 @@ func (m *Misbehavior) GetTotalVotingPower() int64 { type Snapshot struct { Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` - Chunks uint32 `protobuf:"varint,3,opt,name=chunks,proto3" json:"chunks,omitempty"` + Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` Metadata []byte `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` } @@ -4180,16 +4192,9 @@ func (m *Snapshot) GetHeight() uint64 { return 0 } -func (m *Snapshot) GetFormat() uint32 { - if m != nil { - return m.Format - } - return 0 -} - -func (m *Snapshot) GetChunks() uint32 { +func (m *Snapshot) GetVersion() uint32 { if m != nil { - return m.Chunks + return m.Version } return 0 } @@ -4270,233 +4275,234 @@ func init() { func init() { proto.RegisterFile("tendermint/abci/types.proto", fileDescriptor_252557cfdd89a31a) } var fileDescriptor_252557cfdd89a31a = []byte{ - // 3604 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5b, 0x4d, 0x70, 0x1b, 0xc7, - 0xb1, 0xc6, 0xe2, 0x1f, 0x8d, 0xbf, 0xe5, 0x90, 0x92, 0x20, 0x48, 0x22, 0xe9, 0xd5, 0xb3, 0x25, - 0xcb, 0x36, 0x69, 0x4b, 0xcf, 0x96, 0xfd, 0xec, 0xf7, 0x5e, 0x81, 0x20, 0xf4, 0x48, 0x89, 0x22, - 0xe9, 0x25, 0x48, 0x97, 0x9f, 0x63, 0xaf, 0x97, 0xc0, 0x90, 0x58, 0x0b, 0xc0, 0xae, 0x77, 0x17, - 0x34, 0xe8, 0x63, 0x12, 0xe7, 0xe0, 0x93, 0x6f, 0xc9, 0xc5, 0xc7, 0x1c, 0x73, 0xc9, 0x29, 0x95, - 0x43, 0x52, 0xb9, 0x39, 0x95, 0x8b, 0x8f, 0xb9, 0x44, 0x71, 0xc9, 0x97, 0x54, 0x6e, 0x39, 0xe5, - 0x96, 0x4a, 0xcd, 0xcf, 0xfe, 0x01, 0xbb, 0xf8, 0xb1, 0x5c, 0x95, 0xca, 0x0d, 0xd3, 0xd3, 0xdd, - 0x3b, 0xd3, 0xd3, 0xd3, 0xdd, 0xf3, 0xcd, 0x00, 0xae, 0xd8, 0xb8, 0xdf, 0xc6, 0x66, 0x4f, 0xeb, - 0xdb, 0xeb, 0xea, 0x71, 0x4b, 0x5b, 0xb7, 0xcf, 0x0d, 0x6c, 0xad, 0x19, 0xa6, 0x6e, 0xeb, 0xa8, - 0xec, 0x75, 0xae, 0x91, 0xce, 0xea, 0x35, 0x1f, 0x77, 0xcb, 0x3c, 0x37, 0x6c, 0x7d, 0xdd, 0x30, - 0x75, 0xfd, 0x84, 0xf1, 0x57, 0xfd, 0xca, 0xa8, 0x9e, 0xf5, 0xb6, 0x6a, 0x75, 0x78, 0xe7, 0xd5, - 0xb1, 0xce, 0xe3, 0xae, 0xde, 0x7a, 0x14, 0xd9, 0xeb, 0x1b, 0x48, 0xa0, 0x97, 0x7f, 0xf7, 0x11, - 0x3e, 0x77, 0x7a, 0xaf, 0x8d, 0xc9, 0x1a, 0xaa, 0xa9, 0xf6, 0x9c, 0xee, 0x65, 0x5f, 0xf7, 0x19, - 0x36, 0x2d, 0x4d, 0xef, 0x07, 0x94, 0xaf, 0x9c, 0xea, 0xfa, 0x69, 0x17, 0xaf, 0xd3, 0xd6, 0xf1, - 0xe0, 0x64, 0xdd, 0xd6, 0x7a, 0xd8, 0xb2, 0xd5, 0x9e, 0xc1, 0x19, 0x96, 0x4e, 0xf5, 0x53, 0x9d, - 0xfe, 0x5c, 0x27, 0xbf, 0x18, 0x55, 0xfa, 0x2c, 0x07, 0x19, 0x19, 0x7f, 0x3c, 0xc0, 0x96, 0x8d, - 0x6e, 0x43, 0x12, 0xb7, 0x3a, 0x7a, 0x45, 0x58, 0x15, 0x6e, 0xe6, 0x6f, 0x5f, 0x5d, 0x1b, 0xb1, - 0xdb, 0x1a, 0xe7, 0x6b, 0xb4, 0x3a, 0xfa, 0x56, 0x4c, 0xa6, 0xbc, 0xe8, 0x55, 0x48, 0x9d, 0x74, - 0x07, 0x56, 0xa7, 0x12, 0xa7, 0x42, 0xd7, 0xa2, 0x84, 0xee, 0x11, 0xa6, 0xad, 0x98, 0xcc, 0xb8, - 0xc9, 0xa7, 0xb4, 0xfe, 0x89, 0x5e, 0x49, 0x4c, 0xfe, 0xd4, 0x76, 0xff, 0x84, 0x7e, 0x8a, 0xf0, - 0xa2, 0x0d, 0x00, 0xad, 0xaf, 0xd9, 0x4a, 0xab, 0xa3, 0x6a, 0xfd, 0x4a, 0x92, 0x4a, 0x3e, 0x13, - 0x2d, 0xa9, 0xd9, 0x75, 0xc2, 0xb8, 0x15, 0x93, 0x73, 0x9a, 0xd3, 0x20, 0xc3, 0xfd, 0x78, 0x80, - 0xcd, 0xf3, 0x4a, 0x6a, 0xf2, 0x70, 0xdf, 0x26, 0x4c, 0x64, 0xb8, 0x94, 0x1b, 0xbd, 0x05, 0xd9, - 0x56, 0x07, 0xb7, 0x1e, 0x29, 0xf6, 0xb0, 0x92, 0xa1, 0x92, 0x2b, 0x51, 0x92, 0x75, 0xc2, 0xd7, - 0x1c, 0x6e, 0xc5, 0xe4, 0x4c, 0x8b, 0xfd, 0x44, 0xbb, 0x50, 0xea, 0x6a, 0x96, 0xad, 0x58, 0x7d, - 0xd5, 0xb0, 0x3a, 0xba, 0x6d, 0x55, 0xf2, 0x54, 0xc7, 0xb3, 0x51, 0x3a, 0x76, 0x34, 0xcb, 0x3e, - 0x70, 0x98, 0xb7, 0x62, 0x72, 0xb1, 0xeb, 0x27, 0x10, 0x7d, 0xfa, 0xc9, 0x09, 0x36, 0x5d, 0x85, - 0x95, 0xc2, 0x64, 0x7d, 0x7b, 0x84, 0xdb, 0x91, 0x27, 0xfa, 0x74, 0x3f, 0x01, 0xbd, 0x07, 0x8b, - 0x5d, 0x5d, 0x6d, 0xbb, 0xea, 0x94, 0x56, 0x67, 0xd0, 0x7f, 0x54, 0x29, 0x52, 0xa5, 0xcf, 0x47, - 0x0e, 0x52, 0x57, 0xdb, 0x8e, 0x8a, 0x3a, 0x11, 0xd8, 0x8a, 0xc9, 0x0b, 0xdd, 0x51, 0x22, 0xfa, - 0x00, 0x96, 0x54, 0xc3, 0xe8, 0x9e, 0x8f, 0x6a, 0x2f, 0x51, 0xed, 0xb7, 0xa2, 0xb4, 0xd7, 0x88, - 0xcc, 0xa8, 0x7a, 0xa4, 0x8e, 0x51, 0x51, 0x13, 0x44, 0xc3, 0xc4, 0x86, 0x6a, 0x62, 0xc5, 0x30, - 0x75, 0x43, 0xb7, 0xd4, 0x6e, 0xa5, 0x4c, 0x75, 0xdf, 0x88, 0xd2, 0xbd, 0xcf, 0xf8, 0xf7, 0x39, - 0xfb, 0x56, 0x4c, 0x2e, 0x1b, 0x41, 0x12, 0xd3, 0xaa, 0xb7, 0xb0, 0x65, 0x79, 0x5a, 0xc5, 0x69, - 0x5a, 0x29, 0x7f, 0x50, 0x6b, 0x80, 0x84, 0x1a, 0x90, 0xc7, 0x43, 0x22, 0xae, 0x9c, 0xe9, 0x36, - 0xae, 0x2c, 0x50, 0x85, 0x52, 0xe4, 0x3e, 0xa3, 0xac, 0x47, 0xba, 0x8d, 0xb7, 0x62, 0x32, 0x60, - 0xb7, 0x85, 0x54, 0xb8, 0x70, 0x86, 0x4d, 0xed, 0xe4, 0x9c, 0xaa, 0x51, 0x68, 0x0f, 0x89, 0x07, - 0x15, 0x44, 0x15, 0xbe, 0x10, 0xa5, 0xf0, 0x88, 0x0a, 0x11, 0x15, 0x0d, 0x47, 0x64, 0x2b, 0x26, - 0x2f, 0x9e, 0x8d, 0x93, 0x89, 0x8b, 0x9d, 0x68, 0x7d, 0xb5, 0xab, 0x7d, 0x8a, 0x15, 0x1a, 0xe0, - 0x2a, 0x8b, 0x93, 0x5d, 0xec, 0x1e, 0xe7, 0xde, 0x20, 0xcc, 0xc4, 0xc5, 0x4e, 0xfc, 0x84, 0x8d, - 0x0c, 0xa4, 0xce, 0xd4, 0xee, 0x00, 0xdf, 0x4f, 0x66, 0xd3, 0x62, 0xe6, 0x7e, 0x32, 0x9b, 0x15, - 0x73, 0xf7, 0x93, 0xd9, 0x9c, 0x08, 0xf7, 0x93, 0x59, 0x10, 0xf3, 0xd2, 0x0d, 0xc8, 0xfb, 0xc2, - 0x0b, 0xaa, 0x40, 0xa6, 0x87, 0x2d, 0x4b, 0x3d, 0xc5, 0x34, 0x1a, 0xe5, 0x64, 0xa7, 0x29, 0x95, - 0xa0, 0xe0, 0x0f, 0x29, 0xd2, 0x17, 0x82, 0x2b, 0x49, 0xa2, 0x05, 0x91, 0xe4, 0xe1, 0xd1, 0x91, - 0xe4, 0x4d, 0x74, 0x1d, 0x8a, 0x74, 0x2a, 0x8a, 0xd3, 0x4f, 0x42, 0x56, 0x52, 0x2e, 0x50, 0xe2, - 0x11, 0x67, 0x5a, 0x81, 0xbc, 0x71, 0xdb, 0x70, 0x59, 0x12, 0x94, 0x05, 0x8c, 0xdb, 0x86, 0xc3, - 0xf0, 0x0c, 0x14, 0xc8, 0xbc, 0x5d, 0x8e, 0x24, 0xfd, 0x48, 0x9e, 0xd0, 0x38, 0x8b, 0xf4, 0xe3, - 0x04, 0x88, 0xa3, 0x61, 0x08, 0xbd, 0x0e, 0x49, 0x12, 0x91, 0x79, 0x70, 0xad, 0xae, 0xb1, 0x70, - 0xbd, 0xe6, 0x84, 0xeb, 0xb5, 0xa6, 0x13, 0xae, 0x37, 0xb2, 0x5f, 0x3d, 0x5e, 0x89, 0x7d, 0xf1, - 0xe7, 0x15, 0x41, 0xa6, 0x12, 0xe8, 0x32, 0x09, 0x3e, 0xaa, 0xd6, 0x57, 0xb4, 0x36, 0x1d, 0x72, - 0x8e, 0x44, 0x16, 0x55, 0xeb, 0x6f, 0xb7, 0xd1, 0x0e, 0x88, 0x2d, 0xbd, 0x6f, 0xe1, 0xbe, 0x35, - 0xb0, 0x14, 0x96, 0x2e, 0x78, 0x48, 0x0d, 0x04, 0x46, 0x96, 0x27, 0xea, 0x0e, 0xe7, 0x3e, 0x65, - 0x94, 0xcb, 0xad, 0x20, 0x01, 0xed, 0x42, 0xf1, 0x4c, 0xed, 0x6a, 0x6d, 0xd5, 0xd6, 0x4d, 0xc5, - 0xc2, 0x36, 0x8f, 0xb1, 0xd7, 0xc7, 0xd6, 0xfc, 0xc8, 0xe1, 0x3a, 0xc0, 0xf6, 0xa1, 0xd1, 0x56, - 0x6d, 0xbc, 0x91, 0xfc, 0xea, 0xf1, 0x8a, 0x20, 0x17, 0xce, 0x7c, 0x3d, 0xe8, 0x39, 0x28, 0xab, - 0x86, 0xa1, 0x58, 0xb6, 0x6a, 0x63, 0xe5, 0xf8, 0xdc, 0xc6, 0x16, 0x0d, 0xbb, 0x05, 0xb9, 0xa8, - 0x1a, 0xc6, 0x01, 0xa1, 0x6e, 0x10, 0x22, 0x7a, 0x16, 0x4a, 0x24, 0x42, 0x6b, 0x6a, 0x57, 0xe9, - 0x60, 0xed, 0xb4, 0x63, 0x57, 0xd2, 0xab, 0xc2, 0xcd, 0x84, 0x5c, 0xe4, 0xd4, 0x2d, 0x4a, 0x44, - 0x6b, 0xb0, 0xe8, 0xb0, 0xb5, 0x74, 0x13, 0x3b, 0xbc, 0x24, 0x1e, 0x17, 0xe5, 0x05, 0xde, 0x55, - 0xd7, 0x4d, 0xcc, 0xf8, 0xa5, 0xb6, 0xeb, 0x29, 0x34, 0x9a, 0x23, 0x04, 0xc9, 0xb6, 0x6a, 0xab, - 0x74, 0x05, 0x0a, 0x32, 0xfd, 0x4d, 0x68, 0x86, 0x6a, 0x77, 0xb8, 0x5d, 0xe9, 0x6f, 0x74, 0x11, - 0xd2, 0x5c, 0x75, 0x82, 0x0e, 0x83, 0xb7, 0xd0, 0x12, 0xa4, 0x0c, 0x53, 0x3f, 0xc3, 0xd4, 0x2c, - 0x59, 0x99, 0x35, 0x24, 0x19, 0x4a, 0xc1, 0xc8, 0x8f, 0x4a, 0x10, 0xb7, 0x87, 0xfc, 0x2b, 0x71, - 0x7b, 0x88, 0x5e, 0x86, 0x24, 0x59, 0x00, 0xfa, 0x8d, 0x52, 0x48, 0xae, 0xe3, 0x72, 0xcd, 0x73, - 0x03, 0xcb, 0x94, 0x53, 0xba, 0x08, 0x4b, 0x61, 0x99, 0x40, 0xea, 0xb8, 0xf4, 0x40, 0x44, 0x47, - 0xaf, 0x42, 0xd6, 0x4d, 0x05, 0xcc, 0xbf, 0x2e, 0x8f, 0x7d, 0xc5, 0x61, 0x96, 0x5d, 0x56, 0xe2, - 0x58, 0x64, 0x7d, 0x3a, 0x2a, 0x4f, 0xdf, 0x05, 0x39, 0xa3, 0x1a, 0xc6, 0x96, 0x6a, 0x75, 0xa4, - 0x0f, 0xa1, 0x12, 0x15, 0xe6, 0x7d, 0xf6, 0x11, 0xe8, 0xee, 0x70, 0xec, 0x73, 0x11, 0xd2, 0x27, - 0xba, 0xd9, 0x53, 0x6d, 0xaa, 0xac, 0x28, 0xf3, 0x16, 0xb1, 0x1b, 0x0b, 0xf9, 0x09, 0x4a, 0x66, - 0x0d, 0x49, 0x81, 0xcb, 0x91, 0xa1, 0x9e, 0x88, 0x68, 0xfd, 0x36, 0x66, 0x56, 0x2c, 0xca, 0xac, - 0xe1, 0x29, 0x62, 0x83, 0x65, 0x0d, 0xf2, 0x59, 0x8b, 0xce, 0x95, 0xea, 0xcf, 0xc9, 0xbc, 0x25, - 0xfd, 0x2d, 0x09, 0x17, 0xc3, 0x03, 0x3e, 0x5a, 0x85, 0x42, 0x4f, 0x1d, 0x2a, 0xf6, 0x90, 0x7b, - 0xa5, 0x40, 0xd7, 0x19, 0x7a, 0xea, 0xb0, 0x39, 0x64, 0x2e, 0x29, 0x42, 0xc2, 0x1e, 0x5a, 0x95, - 0xf8, 0x6a, 0xe2, 0x66, 0x41, 0x26, 0x3f, 0xd1, 0x43, 0x58, 0xe8, 0xea, 0x2d, 0xb5, 0xab, 0x74, - 0x55, 0xcb, 0x56, 0x5a, 0x7a, 0xaf, 0xa7, 0xd9, 0x7c, 0xaf, 0x5d, 0x19, 0x5f, 0x52, 0xda, 0x4d, - 0xe2, 0x11, 0xdd, 0x18, 0x31, 0xb9, 0x4c, 0x65, 0x77, 0x54, 0xcb, 0x66, 0x5d, 0x68, 0x13, 0xf2, - 0x3d, 0xcd, 0x3a, 0xc6, 0x1d, 0xf5, 0x4c, 0xd3, 0xcd, 0x4a, 0x72, 0x35, 0x11, 0x5a, 0x07, 0x3d, - 0xf4, 0x78, 0xb8, 0x26, 0xbf, 0x98, 0x6f, 0x29, 0x52, 0x01, 0x57, 0x75, 0x82, 0x4d, 0x7a, 0xee, - 0x60, 0xf3, 0x32, 0x2c, 0xf5, 0xf1, 0xd0, 0x56, 0xdc, 0x8d, 0x6c, 0x31, 0xff, 0xc8, 0x50, 0x93, - 0x23, 0xd2, 0xe7, 0xee, 0x7e, 0x8b, 0xb8, 0x0a, 0x59, 0x15, 0x53, 0x1f, 0xf4, 0xdb, 0x95, 0xec, - 0xaa, 0x70, 0x33, 0x25, 0xb3, 0x06, 0xba, 0x0b, 0x15, 0xba, 0x49, 0x59, 0xe4, 0x22, 0x11, 0x16, - 0xb7, 0x9d, 0x1d, 0x9b, 0xa3, 0x8b, 0x7a, 0x81, 0xf4, 0xd3, 0xd8, 0xb8, 0x43, 0x7b, 0xf9, 0x2e, - 0x5f, 0x87, 0x25, 0x96, 0x71, 0xb1, 0x49, 0x52, 0x2f, 0x59, 0x24, 0x3a, 0x00, 0xa0, 0x03, 0x58, - 0x70, 0xfa, 0xf6, 0x4d, 0xbd, 0x39, 0xa4, 0xdf, 0x7f, 0xd9, 0x15, 0x68, 0x2b, 0xc4, 0x9d, 0x9d, - 0xc0, 0x9c, 0xa7, 0xce, 0x89, 0x9c, 0xbe, 0x9a, 0xe1, 0x86, 0xf0, 0xbb, 0x5e, 0x8a, 0x28, 0x8c, - 0x97, 0x81, 0xbc, 0xcb, 0x0b, 0x97, 0x5e, 0x06, 0x59, 0x81, 0xfc, 0xc7, 0x03, 0xdd, 0x1c, 0xf4, - 0xd8, 0x90, 0x8a, 0x74, 0x48, 0xc0, 0x48, 0x74, 0xdb, 0xfc, 0x36, 0xe5, 0xf3, 0xb9, 0x60, 0xee, - 0xe7, 0x1e, 0x25, 0x78, 0x1e, 0x75, 0xe0, 0x1b, 0xb8, 0xdf, 0xa9, 0xe2, 0xb3, 0x3a, 0x95, 0x3b, - 0xb7, 0x68, 0xbf, 0x4a, 0x7c, 0x37, 0xbf, 0x42, 0x90, 0xa4, 0x33, 0x4c, 0xb2, 0x50, 0x49, 0x7e, - 0x47, 0xfa, 0x9a, 0xbb, 0xfe, 0x69, 0xff, 0xfa, 0x3b, 0x1e, 0x98, 0xf9, 0xde, 0x3c, 0x30, 0x1b, - 0xe9, 0x81, 0xdf, 0xd9, 0xd7, 0x9a, 0x70, 0x71, 0x44, 0x50, 0x19, 0xd0, 0x74, 0x46, 0xbd, 0x6d, - 0xa4, 0xc8, 0x77, 0x92, 0xa8, 0x4f, 0x91, 0xbc, 0x18, 0xd0, 0xcb, 0x52, 0x61, 0xa4, 0x07, 0xe7, - 0xe7, 0xf5, 0xe0, 0xc2, 0x2c, 0x1e, 0x5c, 0x7c, 0x1a, 0x0f, 0x2e, 0x8d, 0x79, 0xf0, 0x21, 0x2c, - 0x8c, 0x95, 0x9f, 0xae, 0x3b, 0x08, 0xa1, 0xee, 0x10, 0x0f, 0x77, 0x87, 0x84, 0xcf, 0x1d, 0xa4, - 0x6f, 0x04, 0xa8, 0x46, 0x57, 0xa1, 0xa1, 0x1f, 0x78, 0x05, 0x2e, 0x78, 0xd5, 0x88, 0xdf, 0x8e, - 0x2c, 0xfa, 0x23, 0xb7, 0xd3, 0x33, 0xe4, 0x84, 0xcc, 0xcd, 0xc6, 0x94, 0xf4, 0xbb, 0xe8, 0x43, - 0x28, 0x07, 0xeb, 0x67, 0x52, 0x9e, 0x90, 0xed, 0xf2, 0x1f, 0x63, 0xdb, 0xc5, 0xb3, 0x85, 0x3b, - 0x66, 0xb9, 0x74, 0xe6, 0x6f, 0x5a, 0xd2, 0x1f, 0xe2, 0x6e, 0x76, 0x0e, 0x14, 0xc3, 0xe8, 0x0d, - 0x48, 0xf3, 0x9d, 0x2d, 0xcc, 0xba, 0xb3, 0xb9, 0xc0, 0xe8, 0x6e, 0x8e, 0x3f, 0xdd, 0x6e, 0x4e, - 0x84, 0x2e, 0x5f, 0x32, 0xdc, 0x54, 0x29, 0xbf, 0xa9, 0x5e, 0x82, 0x14, 0x3b, 0x05, 0xb0, 0x84, - 0x72, 0x69, 0x7c, 0x5f, 0xd0, 0xa9, 0xca, 0x8c, 0x0b, 0xd5, 0x20, 0xcb, 0x2a, 0x6d, 0xad, 0xcd, - 0x03, 0xc0, 0xe5, 0x08, 0x89, 0xed, 0xcd, 0x8d, 0xfc, 0x93, 0xc7, 0x2b, 0x19, 0xde, 0x90, 0x33, - 0x54, 0x6e, 0xbb, 0x2d, 0xfd, 0x2e, 0x07, 0x59, 0x19, 0x5b, 0x06, 0x71, 0x61, 0xb4, 0x01, 0x39, - 0x3c, 0x6c, 0x61, 0xc3, 0x76, 0xaa, 0xfa, 0xf0, 0x53, 0x13, 0xe3, 0x6e, 0x38, 0x9c, 0xe4, 0xe4, - 0xef, 0x8a, 0xa1, 0x3b, 0x1c, 0xdc, 0x88, 0xc6, 0x29, 0xb8, 0xb8, 0x1f, 0xdd, 0x78, 0xcd, 0x41, - 0x37, 0x58, 0xa2, 0x5f, 0x8e, 0x94, 0x1a, 0x81, 0x37, 0xee, 0x70, 0x78, 0x23, 0x39, 0xe5, 0x63, - 0x01, 0x7c, 0xa3, 0x1e, 0xc0, 0x37, 0x52, 0x53, 0xa6, 0x19, 0x01, 0x70, 0xbc, 0xe6, 0x00, 0x1c, - 0xe9, 0x29, 0x23, 0x1e, 0x41, 0x38, 0xfe, 0x7b, 0x0c, 0xe1, 0x58, 0x8d, 0x14, 0x0d, 0x81, 0x38, - 0xf6, 0xc6, 0x20, 0x8e, 0x2c, 0x55, 0xf2, 0x5c, 0xa4, 0x92, 0x29, 0x18, 0xc7, 0xde, 0x18, 0xc6, - 0x91, 0x9b, 0xa2, 0x70, 0x0a, 0xc8, 0xf1, 0x83, 0x70, 0x90, 0x03, 0x22, 0x61, 0x08, 0x3e, 0xcc, - 0xd9, 0x50, 0x0e, 0x25, 0x02, 0xe5, 0xc8, 0x47, 0x9e, 0xc8, 0x99, 0xfa, 0x99, 0x61, 0x8e, 0xc3, - 0x10, 0x98, 0x83, 0x15, 0x2f, 0x37, 0x23, 0x95, 0xcf, 0x80, 0x73, 0x1c, 0x86, 0xe0, 0x1c, 0xc5, - 0xa9, 0x6a, 0xa7, 0x02, 0x1d, 0xf7, 0x82, 0x40, 0x47, 0x29, 0xe2, 0x1c, 0xe9, 0x6d, 0xd9, 0x08, - 0xa4, 0xe3, 0x38, 0x0a, 0xe9, 0x60, 0x08, 0xcf, 0x8b, 0x91, 0x1a, 0xe7, 0x80, 0x3a, 0xf6, 0xc6, - 0xa0, 0x0e, 0x71, 0x8a, 0xa7, 0xcd, 0x88, 0x75, 0x48, 0xcf, 0x93, 0x5c, 0x3a, 0x12, 0x94, 0x48, - 0x80, 0xc5, 0xa6, 0xa9, 0x9b, 0x1c, 0x9d, 0x60, 0x0d, 0xe9, 0x26, 0x39, 0xab, 0x7a, 0x01, 0x68, - 0x02, 0xfe, 0x51, 0x86, 0x62, 0x20, 0xe8, 0x48, 0xbf, 0x12, 0x3c, 0x59, 0x8a, 0x80, 0xf8, 0xcf, - 0xb9, 0x39, 0x7e, 0xce, 0xf5, 0xa1, 0x22, 0xf1, 0x20, 0x2a, 0xb2, 0x02, 0x79, 0x7f, 0xcd, 0xc1, - 0x01, 0x0f, 0xd5, 0xab, 0x35, 0x6e, 0xc1, 0x02, 0xad, 0x4e, 0x59, 0x44, 0x0f, 0x24, 0x8d, 0x32, - 0xe9, 0x60, 0x56, 0x60, 0xd9, 0xe3, 0x25, 0x58, 0xf4, 0xf1, 0xba, 0x87, 0x4b, 0x76, 0xea, 0x17, - 0x5d, 0xee, 0x1a, 0x3f, 0x65, 0xfe, 0x25, 0xee, 0x59, 0xc8, 0x43, 0x4a, 0xc2, 0x40, 0x0d, 0xe1, - 0x3b, 0x83, 0x1a, 0xd1, 0x87, 0x5c, 0xf4, 0x1e, 0x2c, 0x05, 0xf0, 0x0e, 0xa7, 0xf8, 0x4b, 0xcc, - 0x07, 0x7b, 0xc4, 0x7c, 0xb5, 0x88, 0xdb, 0x83, 0xde, 0x87, 0x2b, 0xb4, 0x8c, 0x8d, 0x28, 0x30, - 0x93, 0xb3, 0x15, 0x98, 0x97, 0x88, 0x8e, 0x7a, 0x48, 0x91, 0x19, 0x01, 0x86, 0xa4, 0xa2, 0xc0, - 0x90, 0xbf, 0x0b, 0x9e, 0xdf, 0xb8, 0x70, 0x48, 0x4b, 0x6f, 0x63, 0x7e, 0xc4, 0xa6, 0xbf, 0xc9, - 0x21, 0xa5, 0xab, 0x9f, 0x72, 0x17, 0x21, 0x3f, 0x09, 0x97, 0x0b, 0xd4, 0xe7, 0x78, 0xa2, 0x72, - 0x4f, 0xe7, 0xcc, 0x0b, 0xf8, 0xe9, 0x5c, 0x84, 0xc4, 0x23, 0x7c, 0xce, 0xd7, 0x9a, 0xfc, 0x24, - 0x7c, 0x74, 0x23, 0xd0, 0x5c, 0x54, 0x90, 0x59, 0x03, 0xbd, 0x0e, 0x39, 0x7a, 0xdb, 0xa2, 0xe8, - 0x86, 0xc5, 0x53, 0x4d, 0xa0, 0x22, 0x62, 0x37, 0x23, 0x6b, 0xfb, 0x84, 0x67, 0xcf, 0xb0, 0xe4, - 0xac, 0xc1, 0x7f, 0xf9, 0x6a, 0x96, 0x6c, 0xa0, 0x66, 0xb9, 0x0a, 0x39, 0x32, 0x7a, 0xcb, 0x50, - 0x5b, 0x98, 0xa6, 0x89, 0x9c, 0xec, 0x11, 0xa4, 0xdf, 0x08, 0x50, 0x1e, 0xc9, 0x5c, 0xa1, 0x73, - 0x77, 0xb6, 0x4d, 0x3c, 0x08, 0x0f, 0x8d, 0xcd, 0xfe, 0x1a, 0xc0, 0xa9, 0x6a, 0x29, 0x9f, 0xa8, - 0x7d, 0x1b, 0xb7, 0xb9, 0x09, 0x72, 0xa7, 0xaa, 0xf5, 0x0e, 0x25, 0x04, 0x07, 0x93, 0x1a, 0x19, - 0x8c, 0x0f, 0xac, 0x48, 0xfb, 0xc1, 0x0a, 0x54, 0x85, 0xac, 0x61, 0x6a, 0xba, 0xa9, 0xd9, 0xe7, - 0xd4, 0x26, 0x09, 0xd9, 0x6d, 0x4b, 0xfb, 0x70, 0x21, 0x34, 0x69, 0xa2, 0xbb, 0x90, 0xf3, 0xf2, - 0xad, 0x40, 0x6b, 0xc3, 0x09, 0xb8, 0x8f, 0xc7, 0x4b, 0x4c, 0x72, 0x21, 0x34, 0x6d, 0xa2, 0x06, - 0xa4, 0x4d, 0x6c, 0x0d, 0xba, 0xac, 0x56, 0x2d, 0xdd, 0x7e, 0x69, 0xb6, 0x74, 0x4b, 0xa8, 0x83, - 0xae, 0x2d, 0x73, 0x61, 0xe9, 0x03, 0x48, 0x33, 0x0a, 0xca, 0x43, 0xe6, 0x70, 0xf7, 0xc1, 0xee, - 0xde, 0x3b, 0xbb, 0x62, 0x0c, 0x01, 0xa4, 0x6b, 0xf5, 0x7a, 0x63, 0xbf, 0x29, 0x0a, 0x28, 0x07, - 0xa9, 0xda, 0xc6, 0x9e, 0xdc, 0x14, 0xe3, 0x84, 0x2c, 0x37, 0xee, 0x37, 0xea, 0x4d, 0x31, 0x81, - 0x16, 0xa0, 0xc8, 0x7e, 0x2b, 0xf7, 0xf6, 0xe4, 0x87, 0xb5, 0xa6, 0x98, 0xf4, 0x91, 0x0e, 0x1a, - 0xbb, 0x9b, 0x0d, 0x59, 0x4c, 0x49, 0xaf, 0xc0, 0xe5, 0xc8, 0x04, 0xed, 0xc1, 0x44, 0x82, 0x0f, - 0x26, 0x92, 0x7e, 0x16, 0x27, 0x27, 0x90, 0xa8, 0xac, 0x8b, 0xee, 0x8f, 0x4c, 0xfc, 0xf6, 0x1c, - 0x29, 0x7b, 0x64, 0xf6, 0xe8, 0x59, 0x28, 0x99, 0xf8, 0x04, 0xdb, 0xad, 0x0e, 0xab, 0x02, 0x18, - 0x8e, 0x54, 0x94, 0x8b, 0x9c, 0x4a, 0x85, 0x2c, 0xc6, 0xf6, 0x11, 0x6e, 0xd9, 0x0a, 0x73, 0x02, - 0x8b, 0x9e, 0xd6, 0x73, 0x84, 0x8d, 0x50, 0x0f, 0x18, 0x51, 0xfa, 0x70, 0x2e, 0x5b, 0xe6, 0x20, - 0x25, 0x37, 0x9a, 0xf2, 0xbb, 0x62, 0x02, 0x21, 0x28, 0xd1, 0x9f, 0xca, 0xc1, 0x6e, 0x6d, 0xff, - 0x60, 0x6b, 0x8f, 0xd8, 0x72, 0x11, 0xca, 0x8e, 0x2d, 0x1d, 0x62, 0x4a, 0xfa, 0x75, 0x02, 0x2e, - 0x45, 0xd4, 0x0c, 0xe8, 0x75, 0x00, 0x7b, 0xa8, 0x98, 0xb8, 0xa5, 0x9b, 0xed, 0x68, 0x27, 0x6b, - 0x0e, 0x65, 0xca, 0x21, 0xe7, 0x6c, 0xfe, 0x6b, 0x62, 0xe0, 0x7d, 0x8b, 0x2b, 0x25, 0xb3, 0xb2, - 0x38, 0x46, 0x71, 0x2d, 0xe4, 0xd0, 0x85, 0x5b, 0x44, 0x31, 0xb5, 0x2d, 0x55, 0x4c, 0xf9, 0xd1, - 0xbb, 0x70, 0x69, 0x24, 0x3f, 0xf0, 0xa0, 0x6a, 0x85, 0x5d, 0x0a, 0x86, 0xa7, 0x89, 0x0b, 0xc1, - 0x34, 0xc1, 0x82, 0xaa, 0x35, 0x01, 0x10, 0x48, 0x3d, 0x05, 0x20, 0x10, 0x95, 0x67, 0xd2, 0xf3, - 0xc2, 0xeb, 0x21, 0x79, 0x46, 0xfa, 0x65, 0x60, 0xf1, 0x82, 0x65, 0xd8, 0x1e, 0xa4, 0x2d, 0x5b, - 0xb5, 0x07, 0x16, 0x77, 0xea, 0xbb, 0xb3, 0xd6, 0x74, 0x6b, 0xce, 0x8f, 0x03, 0x2a, 0x2e, 0x73, - 0x35, 0xff, 0x96, 0x6b, 0x1a, 0x65, 0xfd, 0xd4, 0xf7, 0x61, 0xfd, 0x57, 0xa1, 0x14, 0x34, 0x55, - 0xf4, 0x26, 0xf5, 0xa2, 0x5c, 0x5c, 0xea, 0xc2, 0x62, 0x08, 0xa4, 0x80, 0xee, 0xf2, 0x9b, 0x02, - 0xb6, 0x5a, 0xd7, 0xc7, 0xa7, 0x1c, 0x60, 0xf7, 0x2e, 0x0c, 0x48, 0xd2, 0xf1, 0x6a, 0x63, 0xb6, - 0x30, 0x1e, 0x41, 0x6a, 0x01, 0x1a, 0xaf, 0xb4, 0xc3, 0xe0, 0x0f, 0xe1, 0x29, 0xe0, 0x8f, 0x9f, - 0x0b, 0x70, 0x65, 0x42, 0xf5, 0x8d, 0xde, 0x1e, 0xf1, 0xc5, 0x37, 0xe6, 0xa9, 0xdd, 0xd7, 0x18, - 0x2d, 0xe8, 0x8d, 0xd2, 0x1d, 0x28, 0xf8, 0xe9, 0xb3, 0x99, 0xfe, 0x27, 0xbe, 0xdc, 0x17, 0xc4, - 0x69, 0xb6, 0x20, 0x8d, 0xcf, 0x70, 0xdf, 0xcd, 0xa5, 0x17, 0xc7, 0xed, 0x40, 0xba, 0x37, 0x2a, - 0xa4, 0xe6, 0xfb, 0xeb, 0xe3, 0x15, 0x91, 0x71, 0xbf, 0xa8, 0xf7, 0x34, 0x1b, 0xf7, 0x0c, 0xfb, - 0x5c, 0xe6, 0xf2, 0xe8, 0x3a, 0x14, 0x4d, 0x6c, 0x93, 0x10, 0x12, 0x80, 0xc8, 0x0a, 0x8c, 0xc8, - 0x2b, 0xb2, 0xdf, 0x0b, 0x00, 0x1e, 0xf0, 0xe3, 0x01, 0x2f, 0x82, 0x1f, 0x78, 0x19, 0xc1, 0xeb, - 0xe2, 0xa3, 0x78, 0x1d, 0xba, 0x01, 0x65, 0x56, 0x6c, 0x5b, 0xda, 0x69, 0x5f, 0xb5, 0x07, 0x26, - 0xe6, 0x30, 0x4f, 0x89, 0x92, 0x0f, 0x1c, 0x2a, 0x7a, 0x0f, 0x2e, 0xdb, 0x1d, 0x13, 0x5b, 0x1d, - 0xbd, 0xdb, 0x56, 0x46, 0x17, 0x9e, 0x5d, 0x3f, 0xac, 0x4c, 0x71, 0x38, 0xf9, 0x92, 0xab, 0xe1, - 0x28, 0xb8, 0xf8, 0x9f, 0x42, 0x8a, 0xda, 0x86, 0x14, 0x4c, 0xae, 0x07, 0xe7, 0xb8, 0x73, 0xbe, - 0x0f, 0xa0, 0xda, 0xb6, 0xa9, 0x1d, 0x0f, 0xc8, 0x76, 0x8e, 0x8f, 0x7f, 0xca, 0xb3, 0x6d, 0xcd, - 0xe1, 0xdb, 0xb8, 0xca, 0x8d, 0xbc, 0xe4, 0x89, 0xfa, 0x0c, 0xed, 0x53, 0x28, 0xed, 0x42, 0x29, - 0x28, 0xeb, 0x54, 0xa2, 0x6c, 0x0c, 0xc1, 0x4a, 0x94, 0x55, 0xb6, 0xbc, 0x12, 0x75, 0xeb, 0xd8, - 0x04, 0xbb, 0xd0, 0xa3, 0x0d, 0xe9, 0x1f, 0x02, 0x14, 0xfc, 0x61, 0x6a, 0xe6, 0x62, 0x91, 0x17, - 0xcf, 0x89, 0xf1, 0xe2, 0x39, 0x19, 0x59, 0x3e, 0xa6, 0x46, 0xcb, 0xc7, 0xcb, 0x90, 0x25, 0xdd, - 0x03, 0x0b, 0xb7, 0xf9, 0x2d, 0x68, 0xe6, 0x54, 0xb5, 0x0e, 0x2d, 0xdc, 0xf6, 0xf9, 0x67, 0xe6, - 0x29, 0xfd, 0x33, 0x50, 0xa3, 0x66, 0x47, 0x0b, 0xe6, 0xcf, 0x04, 0xc8, 0xba, 0x93, 0x0f, 0x5e, - 0xf6, 0x05, 0x70, 0x42, 0x66, 0xbb, 0xb8, 0xff, 0x86, 0x8e, 0x5d, 0x7d, 0x26, 0xdc, 0xab, 0xcf, - 0x37, 0xdd, 0xaa, 0x2a, 0x0a, 0x09, 0xf3, 0x5b, 0xda, 0x01, 0x3f, 0x79, 0x11, 0xf9, 0x53, 0x3e, - 0x0e, 0x52, 0x4e, 0xa0, 0xff, 0x82, 0xb4, 0xda, 0x72, 0xf1, 0xbf, 0x52, 0x08, 0x30, 0xe6, 0xb0, - 0xae, 0x35, 0x87, 0x35, 0xca, 0x29, 0x73, 0x09, 0x3e, 0xaa, 0xb8, 0x33, 0x2a, 0xe9, 0x7f, 0x89, - 0x5e, 0xc6, 0x13, 0x8c, 0x19, 0x25, 0x80, 0xc3, 0xdd, 0x87, 0x7b, 0x9b, 0xdb, 0xf7, 0xb6, 0x1b, - 0x9b, 0xbc, 0xae, 0xda, 0xdc, 0x6c, 0x6c, 0x8a, 0x71, 0xc2, 0x27, 0x37, 0x1e, 0xee, 0x1d, 0x35, - 0x36, 0xc5, 0x84, 0x54, 0x83, 0x9c, 0x9b, 0x25, 0xe8, 0xb5, 0xb0, 0xfe, 0x09, 0x36, 0xb9, 0x81, - 0x58, 0x03, 0x2d, 0x43, 0x7e, 0x1c, 0xb3, 0x26, 0x07, 0x1f, 0x06, 0x55, 0x4b, 0xbf, 0x10, 0xa0, - 0xec, 0xea, 0xe0, 0x75, 0xc2, 0x9b, 0x90, 0x31, 0x06, 0xc7, 0x8a, 0xe3, 0xbb, 0x23, 0x48, 0xaf, - 0x73, 0x2e, 0x1a, 0x1c, 0x77, 0xb5, 0xd6, 0x03, 0x7c, 0xce, 0xb3, 0x52, 0xda, 0x18, 0x1c, 0x3f, - 0x60, 0x2e, 0xce, 0x86, 0x11, 0x9f, 0x30, 0x8c, 0xc4, 0xc8, 0x30, 0xd0, 0x0d, 0x28, 0xf4, 0xf5, - 0x36, 0x56, 0xd4, 0x76, 0xdb, 0xc4, 0x16, 0x4b, 0xb6, 0x39, 0xae, 0x39, 0x4f, 0x7a, 0x6a, 0xac, - 0x43, 0xfa, 0x46, 0x00, 0x34, 0x9e, 0x19, 0xd1, 0x01, 0x2c, 0x78, 0xc9, 0xd5, 0xc9, 0xd8, 0x2c, - 0x7c, 0xae, 0x46, 0x67, 0xd6, 0xc0, 0xe1, 0x59, 0x3c, 0x0b, 0x92, 0x49, 0x15, 0xb6, 0xe4, 0x85, - 0x2a, 0x83, 0xce, 0x97, 0x1a, 0x25, 0x3e, 0xa3, 0x51, 0x62, 0x32, 0x72, 0xe5, 0xdd, 0x9e, 0xd1, - 0x50, 0x9a, 0x18, 0xbb, 0xfa, 0x30, 0xa0, 0xd2, 0x1c, 0x13, 0xe3, 0xf3, 0x8c, 0x1a, 0x92, 0xf0, - 0x34, 0x43, 0x92, 0xee, 0x80, 0xf8, 0xb6, 0xfb, 0x7d, 0xfe, 0xa5, 0x91, 0x61, 0x0a, 0x63, 0xc3, - 0x3c, 0x83, 0x2c, 0x89, 0xbe, 0x34, 0x69, 0xfc, 0x0f, 0xe4, 0x5c, 0xeb, 0xb9, 0x2f, 0x4b, 0x22, - 0xcd, 0xce, 0x47, 0xe2, 0x89, 0xa0, 0x5b, 0xb0, 0x40, 0xf2, 0x86, 0x73, 0x01, 0xc9, 0xe0, 0xaf, - 0x38, 0x8d, 0x86, 0x65, 0xd6, 0xb1, 0xe3, 0x60, 0x36, 0x24, 0xc1, 0x8b, 0xac, 0x10, 0xc0, 0xed, - 0x7f, 0xc5, 0x00, 0xc8, 0x79, 0x69, 0x04, 0x05, 0x64, 0x6b, 0x58, 0x0c, 0x54, 0x22, 0xd2, 0x8f, - 0xe2, 0x90, 0xf7, 0x5d, 0x88, 0xa0, 0xff, 0x0c, 0x14, 0x55, 0xab, 0x93, 0x2e, 0x4f, 0x7c, 0x15, - 0x55, 0x60, 0x62, 0xf1, 0xf9, 0x27, 0x16, 0x75, 0x15, 0xe5, 0xdc, 0x8b, 0x26, 0xe7, 0xbe, 0x17, - 0x7d, 0x11, 0x90, 0xad, 0xdb, 0x6a, 0x97, 0x24, 0x6f, 0xad, 0x7f, 0xaa, 0xb0, 0xdd, 0xce, 0x12, - 0x88, 0x48, 0x7b, 0x8e, 0x68, 0xc7, 0x3e, 0xa1, 0x4b, 0x3f, 0x14, 0x20, 0xeb, 0x9e, 0xea, 0xe7, - 0x7d, 0xb1, 0x71, 0x11, 0xd2, 0xfc, 0xe0, 0xca, 0x9e, 0x6c, 0xf0, 0x56, 0xe8, 0xb5, 0x70, 0x15, - 0xb2, 0x3d, 0x6c, 0xab, 0x34, 0x1b, 0x32, 0xec, 0xc7, 0x6d, 0xdf, 0x7a, 0x03, 0xf2, 0xbe, 0xc7, - 0x2d, 0x24, 0x41, 0xee, 0x36, 0xde, 0x11, 0x63, 0xd5, 0xcc, 0xe7, 0x5f, 0xae, 0x26, 0x76, 0xf1, - 0x27, 0xa8, 0x42, 0xa2, 0x6a, 0x7d, 0xab, 0x51, 0x7f, 0x20, 0x0a, 0xd5, 0xfc, 0xe7, 0x5f, 0xae, - 0x66, 0x64, 0x4c, 0xaf, 0x14, 0x6e, 0x3d, 0x80, 0xf2, 0xc8, 0xc2, 0x04, 0x43, 0x35, 0x82, 0xd2, - 0xe6, 0xe1, 0xfe, 0xce, 0x76, 0xbd, 0xd6, 0x6c, 0x28, 0x47, 0x7b, 0xcd, 0x86, 0x28, 0xa0, 0x4b, - 0xb0, 0xb8, 0xb3, 0xfd, 0x7f, 0x5b, 0x4d, 0xa5, 0xbe, 0xb3, 0xdd, 0xd8, 0x6d, 0x2a, 0xb5, 0x66, - 0xb3, 0x56, 0x7f, 0x20, 0xc6, 0x6f, 0xff, 0x09, 0xa0, 0x5c, 0xdb, 0xa8, 0x6f, 0x93, 0xa3, 0xbb, - 0xd6, 0x52, 0x69, 0xe0, 0xaf, 0x43, 0x92, 0x22, 0xad, 0x13, 0x9f, 0xb9, 0x56, 0x27, 0xdf, 0x13, - 0xa1, 0x7b, 0x90, 0xa2, 0x20, 0x2c, 0x9a, 0xfc, 0xee, 0xb5, 0x3a, 0xe5, 0xe2, 0x88, 0x0c, 0x86, - 0x6e, 0xa7, 0x89, 0x0f, 0x61, 0xab, 0x93, 0xef, 0x91, 0xd0, 0x0e, 0x64, 0x1c, 0x7c, 0x6b, 0xda, - 0xeb, 0xd4, 0xea, 0xd4, 0xcb, 0x1d, 0x32, 0x35, 0x86, 0x13, 0x4e, 0x7e, 0x23, 0x5b, 0x9d, 0x72, - 0xc3, 0x84, 0x64, 0xc8, 0x79, 0xd0, 0xee, 0xf4, 0xe7, 0xba, 0xd5, 0x19, 0x6e, 0xbc, 0xd0, 0x07, - 0x50, 0x0c, 0x22, 0x61, 0xb3, 0xbd, 0xa4, 0xad, 0xce, 0x78, 0x1b, 0x45, 0xf4, 0x07, 0x61, 0xb1, - 0xd9, 0x5e, 0xd6, 0x56, 0x67, 0xbc, 0x9c, 0x42, 0x1f, 0xc1, 0xc2, 0x38, 0x6c, 0x35, 0xfb, 0x43, - 0xdb, 0xea, 0x1c, 0xd7, 0x55, 0xa8, 0x07, 0x28, 0x04, 0xee, 0x9a, 0xe3, 0xdd, 0x6d, 0x75, 0x9e, - 0xdb, 0x2b, 0xd4, 0x86, 0xf2, 0x28, 0x84, 0x34, 0xeb, 0x3b, 0xdc, 0xea, 0xcc, 0x37, 0x59, 0xec, - 0x2b, 0x41, 0xac, 0x63, 0xd6, 0x77, 0xb9, 0xd5, 0x99, 0x2f, 0xb6, 0xd0, 0x21, 0x80, 0xef, 0xbc, - 0x3c, 0xc3, 0x3b, 0xdd, 0xea, 0x2c, 0x57, 0x5c, 0xc8, 0x80, 0xc5, 0xb0, 0x03, 0xf2, 0x3c, 0xcf, - 0x76, 0xab, 0x73, 0xdd, 0x7c, 0x11, 0x7f, 0x0e, 0x1e, 0x75, 0x67, 0x7b, 0xc6, 0x5b, 0x9d, 0xf1, - 0x0a, 0x6c, 0xa3, 0xf1, 0xd5, 0x93, 0x65, 0xe1, 0xeb, 0x27, 0xcb, 0xc2, 0x37, 0x4f, 0x96, 0x85, - 0x2f, 0xbe, 0x5d, 0x8e, 0x7d, 0xfd, 0xed, 0x72, 0xec, 0x8f, 0xdf, 0x2e, 0xc7, 0xfe, 0xff, 0x85, - 0x53, 0xcd, 0xee, 0x0c, 0x8e, 0xd7, 0x5a, 0x7a, 0x6f, 0xdd, 0xff, 0xff, 0x86, 0xb0, 0xbf, 0x6b, - 0x1c, 0xa7, 0x69, 0x16, 0xbc, 0xf3, 0xcf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, 0x68, 0x23, 0xdd, - 0xce, 0x31, 0x00, 0x00, + // 3618 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x5b, 0x3d, 0x70, 0x1b, 0xd7, + 0xf1, 0xc7, 0xe1, 0x1b, 0x8b, 0x4f, 0x3e, 0x52, 0x12, 0x04, 0x49, 0x24, 0x7d, 0xfa, 0xdb, 0x92, + 0xf5, 0xb7, 0x49, 0x5b, 0x8a, 0x2d, 0x3b, 0x76, 0x92, 0x01, 0x41, 0x28, 0xa0, 0x44, 0x91, 0xf4, + 0x11, 0xa4, 0xc7, 0x71, 0xec, 0x9b, 0x23, 0xf0, 0x08, 0x9c, 0x05, 0xe0, 0xce, 0x77, 0x07, 0x0a, + 0x74, 0x9b, 0x38, 0x85, 0x2b, 0x77, 0xa9, 0x5c, 0xa6, 0x4c, 0x93, 0x2a, 0x93, 0x22, 0x99, 0x74, + 0xce, 0xa4, 0x71, 0x99, 0x26, 0x8a, 0x47, 0x6e, 0x32, 0xe9, 0x52, 0xa5, 0xcb, 0x64, 0xde, 0xc7, + 0x7d, 0x02, 0x87, 0x0f, 0xcb, 0x33, 0x99, 0x74, 0x78, 0xfb, 0x76, 0xf7, 0xde, 0xc7, 0xbe, 0xdd, + 0x7d, 0xbf, 0x7d, 0x80, 0x2b, 0x16, 0x1e, 0xb4, 0xb1, 0xd1, 0x57, 0x07, 0xd6, 0xa6, 0x72, 0xd2, + 0x52, 0x37, 0xad, 0x73, 0x1d, 0x9b, 0x1b, 0xba, 0xa1, 0x59, 0x1a, 0x2a, 0xba, 0x9d, 0x1b, 0xa4, + 0xb3, 0x72, 0xcd, 0xc3, 0xdd, 0x32, 0xce, 0x75, 0x4b, 0xdb, 0xd4, 0x0d, 0x4d, 0x3b, 0x65, 0xfc, + 0x15, 0xaf, 0x32, 0xaa, 0x67, 0xb3, 0xad, 0x98, 0x5d, 0xde, 0x79, 0x75, 0xac, 0xf3, 0xa4, 0xa7, + 0xb5, 0x1e, 0x85, 0xf6, 0x7a, 0x06, 0xe2, 0xeb, 0xe5, 0xdf, 0x7d, 0x84, 0xcf, 0xed, 0xde, 0x6b, + 0x63, 0xb2, 0xba, 0x62, 0x28, 0x7d, 0xbb, 0x7b, 0xd5, 0xd3, 0x7d, 0x86, 0x0d, 0x53, 0xd5, 0x06, + 0x3e, 0xe5, 0x6b, 0x1d, 0x4d, 0xeb, 0xf4, 0xf0, 0x26, 0x6d, 0x9d, 0x0c, 0x4f, 0x37, 0x2d, 0xb5, + 0x8f, 0x4d, 0x4b, 0xe9, 0xeb, 0x9c, 0x61, 0xa5, 0xa3, 0x75, 0x34, 0xfa, 0x73, 0x93, 0xfc, 0x62, + 0x54, 0xf1, 0xd3, 0x0c, 0xa4, 0x24, 0xfc, 0xf1, 0x10, 0x9b, 0x16, 0xba, 0x0d, 0x71, 0xdc, 0xea, + 0x6a, 0x65, 0x61, 0x5d, 0xb8, 0x99, 0xbd, 0x7d, 0x75, 0x23, 0xb0, 0x6e, 0x1b, 0x9c, 0xaf, 0xde, + 0xea, 0x6a, 0x8d, 0x88, 0x44, 0x79, 0xd1, 0x6b, 0x90, 0x38, 0xed, 0x0d, 0xcd, 0x6e, 0x39, 0x4a, + 0x85, 0xae, 0x85, 0x09, 0xdd, 0x23, 0x4c, 0x8d, 0x88, 0xc4, 0xb8, 0xc9, 0xa7, 0xd4, 0xc1, 0xa9, + 0x56, 0x8e, 0x4d, 0xff, 0xd4, 0xce, 0xe0, 0x94, 0x7e, 0x8a, 0xf0, 0xa2, 0x2d, 0x00, 0x75, 0xa0, + 0x5a, 0x72, 0xab, 0xab, 0xa8, 0x83, 0x72, 0x9c, 0x4a, 0x3e, 0x17, 0x2e, 0xa9, 0x5a, 0x35, 0xc2, + 0xd8, 0x88, 0x48, 0x19, 0xd5, 0x6e, 0x90, 0xe1, 0x7e, 0x3c, 0xc4, 0xc6, 0x79, 0x39, 0x31, 0x7d, + 0xb8, 0xef, 0x10, 0x26, 0x32, 0x5c, 0xca, 0x8d, 0xde, 0x86, 0x74, 0xab, 0x8b, 0x5b, 0x8f, 0x64, + 0x6b, 0x54, 0x4e, 0x51, 0xc9, 0xb5, 0x30, 0xc9, 0x1a, 0xe1, 0x6b, 0x8e, 0x1a, 0x11, 0x29, 0xd5, + 0x62, 0x3f, 0xd1, 0x1e, 0x14, 0x7a, 0xaa, 0x69, 0xc9, 0xe6, 0x40, 0xd1, 0xcd, 0xae, 0x66, 0x99, + 0xe5, 0x2c, 0xd5, 0xf1, 0x7c, 0x98, 0x8e, 0x5d, 0xd5, 0xb4, 0x0e, 0x6d, 0xe6, 0x46, 0x44, 0xca, + 0xf7, 0xbc, 0x04, 0xa2, 0x4f, 0x3b, 0x3d, 0xc5, 0x86, 0xa3, 0xb0, 0x9c, 0x9b, 0xae, 0x6f, 0x9f, + 0x70, 0xdb, 0xf2, 0x44, 0x9f, 0xe6, 0x25, 0xa0, 0xf7, 0x61, 0xb9, 0xa7, 0x29, 0x6d, 0x47, 0x9d, + 0xdc, 0xea, 0x0e, 0x07, 0x8f, 0xca, 0x79, 0xaa, 0xf4, 0xc5, 0xd0, 0x41, 0x6a, 0x4a, 0xdb, 0x56, + 0x51, 0x23, 0x02, 0x8d, 0x88, 0xb4, 0xd4, 0x0b, 0x12, 0xd1, 0x87, 0xb0, 0xa2, 0xe8, 0x7a, 0xef, + 0x3c, 0xa8, 0xbd, 0x40, 0xb5, 0xdf, 0x0a, 0xd3, 0x5e, 0x25, 0x32, 0x41, 0xf5, 0x48, 0x19, 0xa3, + 0xa2, 0x26, 0x94, 0x74, 0x03, 0xeb, 0x8a, 0x81, 0x65, 0xdd, 0xd0, 0x74, 0xcd, 0x54, 0x7a, 0xe5, + 0x22, 0xd5, 0x7d, 0x23, 0x4c, 0xf7, 0x01, 0xe3, 0x3f, 0xe0, 0xec, 0x8d, 0x88, 0x54, 0xd4, 0xfd, + 0x24, 0xa6, 0x55, 0x6b, 0x61, 0xd3, 0x74, 0xb5, 0x96, 0x66, 0x69, 0xa5, 0xfc, 0x7e, 0xad, 0x3e, + 0x12, 0xaa, 0x43, 0x16, 0x8f, 0x88, 0xb8, 0x7c, 0xa6, 0x59, 0xb8, 0xbc, 0x44, 0x15, 0x8a, 0xa1, + 0xe7, 0x8c, 0xb2, 0x1e, 0x6b, 0x16, 0x6e, 0x44, 0x24, 0xc0, 0x4e, 0x0b, 0x29, 0x70, 0xe1, 0x0c, + 0x1b, 0xea, 0xe9, 0x39, 0x55, 0x23, 0xd3, 0x1e, 0xe2, 0x0f, 0xca, 0x88, 0x2a, 0xfc, 0xff, 0x30, + 0x85, 0xc7, 0x54, 0x88, 0xa8, 0xa8, 0xdb, 0x22, 0x8d, 0x88, 0xb4, 0x7c, 0x36, 0x4e, 0x26, 0x26, + 0x76, 0xaa, 0x0e, 0x94, 0x9e, 0xfa, 0x09, 0x96, 0xa9, 0x83, 0x2b, 0x2f, 0x4f, 0x37, 0xb1, 0x7b, + 0x9c, 0x7b, 0x8b, 0x30, 0x13, 0x13, 0x3b, 0xf5, 0x12, 0xb6, 0x52, 0x90, 0x38, 0x53, 0x7a, 0x43, + 0x7c, 0x3f, 0x9e, 0x4e, 0x96, 0x52, 0xf7, 0xe3, 0xe9, 0x74, 0x29, 0x73, 0x3f, 0x9e, 0xce, 0x94, + 0xe0, 0x7e, 0x3c, 0x0d, 0xa5, 0xac, 0x78, 0x03, 0xb2, 0x1e, 0xf7, 0x82, 0xca, 0x90, 0xea, 0x63, + 0xd3, 0x54, 0x3a, 0x98, 0x7a, 0xa3, 0x8c, 0x64, 0x37, 0xc5, 0x02, 0xe4, 0xbc, 0x2e, 0x45, 0xfc, + 0x5c, 0x70, 0x24, 0x89, 0xb7, 0x20, 0x92, 0xdc, 0x3d, 0xda, 0x92, 0xbc, 0x89, 0xae, 0x43, 0x9e, + 0x4e, 0x45, 0xb6, 0xfb, 0x89, 0xcb, 0x8a, 0x4b, 0x39, 0x4a, 0x3c, 0xe6, 0x4c, 0x6b, 0x90, 0xd5, + 0x6f, 0xeb, 0x0e, 0x4b, 0x8c, 0xb2, 0x80, 0x7e, 0x5b, 0xb7, 0x19, 0x9e, 0x83, 0x1c, 0x99, 0xb7, + 0xc3, 0x11, 0xa7, 0x1f, 0xc9, 0x12, 0x1a, 0x67, 0x11, 0x7f, 0x1e, 0x83, 0x52, 0xd0, 0x0d, 0xa1, + 0x37, 0x20, 0x4e, 0x3c, 0x32, 0x77, 0xae, 0x95, 0x0d, 0xe6, 0xae, 0x37, 0x6c, 0x77, 0xbd, 0xd1, + 0xb4, 0xdd, 0xf5, 0x56, 0xfa, 0xcb, 0x27, 0x6b, 0x91, 0xcf, 0xff, 0xb6, 0x26, 0x48, 0x54, 0x02, + 0x5d, 0x26, 0xce, 0x47, 0x51, 0x07, 0xb2, 0xda, 0xa6, 0x43, 0xce, 0x10, 0xcf, 0xa2, 0xa8, 0x83, + 0x9d, 0x36, 0xda, 0x85, 0x52, 0x4b, 0x1b, 0x98, 0x78, 0x60, 0x0e, 0x4d, 0x99, 0x85, 0x0b, 0xee, + 0x52, 0x7d, 0x8e, 0x91, 0xc5, 0x89, 0x9a, 0xcd, 0x79, 0x40, 0x19, 0xa5, 0x62, 0xcb, 0x4f, 0x40, + 0x7b, 0x90, 0x3f, 0x53, 0x7a, 0x6a, 0x5b, 0xb1, 0x34, 0x43, 0x36, 0xb1, 0xc5, 0x7d, 0xec, 0xf5, + 0xb1, 0x3d, 0x3f, 0xb6, 0xb9, 0x0e, 0xb1, 0x75, 0xa4, 0xb7, 0x15, 0x0b, 0x6f, 0xc5, 0xbf, 0x7c, + 0xb2, 0x26, 0x48, 0xb9, 0x33, 0x4f, 0x0f, 0x7a, 0x01, 0x8a, 0x8a, 0xae, 0xcb, 0xa6, 0xa5, 0x58, + 0x58, 0x3e, 0x39, 0xb7, 0xb0, 0x49, 0xdd, 0x6e, 0x4e, 0xca, 0x2b, 0xba, 0x7e, 0x48, 0xa8, 0x5b, + 0x84, 0x88, 0x9e, 0x87, 0x02, 0xf1, 0xd0, 0xaa, 0xd2, 0x93, 0xbb, 0x58, 0xed, 0x74, 0xad, 0x72, + 0x72, 0x5d, 0xb8, 0x19, 0x93, 0xf2, 0x9c, 0xda, 0xa0, 0x44, 0xb4, 0x01, 0xcb, 0x36, 0x5b, 0x4b, + 0x33, 0xb0, 0xcd, 0x4b, 0xfc, 0x71, 0x5e, 0x5a, 0xe2, 0x5d, 0x35, 0xcd, 0xc0, 0x8c, 0x5f, 0x6c, + 0x3b, 0x96, 0x42, 0xbd, 0x39, 0x42, 0x10, 0x6f, 0x2b, 0x96, 0x42, 0x77, 0x20, 0x27, 0xd1, 0xdf, + 0x84, 0xa6, 0x2b, 0x56, 0x97, 0xaf, 0x2b, 0xfd, 0x8d, 0x2e, 0x42, 0x92, 0xab, 0x8e, 0xd1, 0x61, + 0xf0, 0x16, 0x5a, 0x81, 0x84, 0x6e, 0x68, 0x67, 0x98, 0x2e, 0x4b, 0x5a, 0x62, 0x0d, 0x51, 0x82, + 0x82, 0xdf, 0xf3, 0xa3, 0x02, 0x44, 0xad, 0x11, 0xff, 0x4a, 0xd4, 0x1a, 0xa1, 0x57, 0x20, 0x4e, + 0x36, 0x80, 0x7e, 0xa3, 0x30, 0x21, 0xd6, 0x71, 0xb9, 0xe6, 0xb9, 0x8e, 0x25, 0xca, 0x29, 0x5e, + 0x84, 0x95, 0x49, 0x91, 0x40, 0xec, 0x3a, 0x74, 0x9f, 0x47, 0x47, 0xaf, 0x41, 0xda, 0x09, 0x05, + 0xcc, 0xbe, 0x2e, 0x8f, 0x7d, 0xc5, 0x66, 0x96, 0x1c, 0x56, 0x62, 0x58, 0x64, 0x7f, 0xba, 0x0a, + 0x0f, 0xdf, 0x39, 0x29, 0xa5, 0xe8, 0x7a, 0x43, 0x31, 0xbb, 0x62, 0x07, 0xca, 0x61, 0x6e, 0xde, + 0xb3, 0x3e, 0x02, 0x3d, 0x1d, 0xf6, 0xfa, 0x78, 0x4e, 0x5e, 0x94, 0xee, 0x89, 0x73, 0xf2, 0xa8, + 0x05, 0x0f, 0x07, 0x8f, 0x88, 0x05, 0xc7, 0xd8, 0x87, 0x68, 0x7b, 0xa7, 0x2d, 0xb6, 0xe1, 0x72, + 0xa8, 0xc7, 0xf7, 0xc9, 0x09, 0x3e, 0x39, 0xb2, 0x19, 0x2c, 0x8e, 0xb0, 0x81, 0xb3, 0x06, 0x19, + 0x9a, 0x49, 0xe7, 0x4d, 0x3f, 0x93, 0x91, 0x78, 0x4b, 0xfc, 0x67, 0x1c, 0x2e, 0x4e, 0x76, 0xfe, + 0x68, 0x1d, 0x72, 0x7d, 0x65, 0x24, 0x5b, 0x23, 0x6e, 0xa1, 0x02, 0xdd, 0x73, 0xe8, 0x2b, 0xa3, + 0xe6, 0x88, 0x99, 0x67, 0x09, 0x62, 0xd6, 0xc8, 0x2c, 0x47, 0xd7, 0x63, 0x37, 0x73, 0x12, 0xf9, + 0x89, 0x1e, 0xc2, 0x52, 0x4f, 0x6b, 0x29, 0x3d, 0xb9, 0xa7, 0x98, 0x96, 0xdc, 0xd2, 0xfa, 0x7d, + 0xd5, 0xe2, 0xe7, 0xee, 0xca, 0xf8, 0xf6, 0xd2, 0x6e, 0xe2, 0x9b, 0xe8, 0x21, 0x89, 0x48, 0x45, + 0x2a, 0xbb, 0xab, 0x98, 0x16, 0xeb, 0x42, 0xdb, 0x90, 0xed, 0xab, 0xe6, 0x09, 0xee, 0x2a, 0x67, + 0xaa, 0x66, 0x94, 0xe3, 0xeb, 0xb1, 0x89, 0x39, 0xd1, 0x43, 0x97, 0x87, 0x6b, 0xf2, 0x8a, 0x79, + 0xb6, 0x25, 0xe1, 0x33, 0x5b, 0xdb, 0xf1, 0x24, 0x17, 0x76, 0x3c, 0xaf, 0xc0, 0xca, 0x00, 0x8f, + 0x2c, 0xd9, 0x39, 0xd4, 0x26, 0xb3, 0x95, 0x14, 0x5d, 0x72, 0x44, 0xfa, 0x1c, 0x4f, 0x60, 0x12, + 0xb3, 0x21, 0xbb, 0x62, 0x68, 0xc3, 0x41, 0xbb, 0x9c, 0x5e, 0x17, 0x6e, 0x26, 0x24, 0xd6, 0x40, + 0x77, 0xa1, 0x4c, 0x0f, 0x2c, 0xf3, 0x62, 0xc4, 0xdb, 0xe2, 0xb6, 0x7d, 0x7a, 0x33, 0xd4, 0x52, + 0x2e, 0x90, 0x7e, 0xea, 0x27, 0x77, 0x69, 0x2f, 0x3f, 0xf1, 0x9b, 0xb0, 0xc2, 0xa2, 0x2f, 0x36, + 0x48, 0x18, 0x26, 0x9b, 0x44, 0x07, 0x00, 0x74, 0x00, 0x4b, 0x76, 0xdf, 0x81, 0xa1, 0x35, 0x47, + 0xf4, 0xfb, 0xaf, 0x38, 0x02, 0x6d, 0x99, 0x98, 0xb6, 0x6d, 0x8f, 0x59, 0x6a, 0xa8, 0xc8, 0xee, + 0xab, 0xea, 0x8e, 0x3b, 0xbf, 0xeb, 0x1a, 0x6d, 0x6e, 0x3c, 0x25, 0xe4, 0x5d, 0xae, 0xeb, 0x74, + 0x6d, 0x7a, 0x0d, 0xb2, 0x1f, 0x0f, 0x35, 0x63, 0xd8, 0x67, 0x43, 0xca, 0xd3, 0x21, 0x01, 0x23, + 0xd1, 0x23, 0xf4, 0x87, 0x84, 0xc7, 0xe6, 0xfc, 0x79, 0x00, 0xb7, 0x28, 0xc1, 0xb5, 0xa8, 0x43, + 0xcf, 0xc0, 0xbd, 0x46, 0x15, 0x9d, 0xd7, 0xa8, 0x9c, 0xb9, 0x85, 0xdb, 0x55, 0xec, 0xdb, 0xd9, + 0x15, 0x82, 0x38, 0x9d, 0x61, 0x9c, 0xb9, 0x4d, 0xf2, 0x3b, 0xd4, 0xd6, 0x9c, 0xfd, 0x4f, 0x7a, + 0xf7, 0xdf, 0xb6, 0xc0, 0xd4, 0x77, 0x66, 0x81, 0xe9, 0x50, 0x0b, 0xfc, 0xd6, 0xb6, 0xd6, 0x84, + 0x8b, 0x01, 0x41, 0x79, 0x48, 0x43, 0x1b, 0xb5, 0xb6, 0x40, 0xc2, 0x6f, 0x07, 0x54, 0x8f, 0x22, + 0x69, 0xd9, 0xa7, 0x97, 0x85, 0xc5, 0x50, 0x0b, 0xce, 0x2e, 0x6a, 0xc1, 0xb9, 0x79, 0x2c, 0x38, + 0xff, 0x2c, 0x16, 0x5c, 0x18, 0xb3, 0xe0, 0x23, 0x58, 0x1a, 0x4b, 0x45, 0x1d, 0x73, 0x10, 0x26, + 0x9a, 0x43, 0x74, 0xb2, 0x39, 0xc4, 0x3c, 0xe6, 0x20, 0x7e, 0x2d, 0x40, 0x25, 0x3c, 0x23, 0x9d, + 0xf8, 0x81, 0x57, 0xe1, 0x82, 0x9b, 0x99, 0x78, 0xd7, 0x91, 0x79, 0x7f, 0xe4, 0x74, 0xba, 0x0b, + 0x39, 0x25, 0x8a, 0xb3, 0x31, 0xc5, 0xbd, 0x26, 0xfa, 0x10, 0x8a, 0xfe, 0x5c, 0x9a, 0xa4, 0x2a, + 0xe4, 0xb8, 0xfc, 0xdf, 0xd8, 0x71, 0x71, 0xd7, 0xc2, 0x19, 0xb3, 0x54, 0x38, 0xf3, 0x36, 0x4d, + 0xf1, 0xcf, 0x51, 0x27, 0x52, 0xfb, 0x12, 0x63, 0xf4, 0x26, 0x24, 0xf9, 0xc9, 0x16, 0xe6, 0x3d, + 0xd9, 0x5c, 0x20, 0x78, 0x9a, 0xa3, 0xcf, 0x76, 0x9a, 0x63, 0x13, 0xb7, 0x2f, 0x3e, 0x79, 0xa9, + 0x12, 0xde, 0xa5, 0x7a, 0x19, 0x12, 0xec, 0x46, 0xc0, 0x02, 0xca, 0xa5, 0xf1, 0x73, 0x41, 0xa7, + 0x2a, 0x31, 0x2e, 0x54, 0x85, 0x34, 0xcb, 0xba, 0xd5, 0x36, 0x77, 0x00, 0x97, 0x43, 0x24, 0x76, + 0xb6, 0xb7, 0xb2, 0x4f, 0x9f, 0xac, 0xa5, 0x78, 0x43, 0x4a, 0x51, 0xb9, 0x9d, 0xb6, 0xf8, 0xc7, + 0x0c, 0xa4, 0x25, 0x6c, 0xea, 0xc4, 0x84, 0xd1, 0x16, 0x64, 0xf0, 0xa8, 0x85, 0x75, 0xcb, 0xce, + 0xf0, 0x27, 0xdf, 0xa0, 0x18, 0x77, 0xdd, 0xe6, 0x6c, 0x44, 0x24, 0x57, 0x0c, 0xdd, 0xe1, 0x40, + 0x47, 0x38, 0x66, 0xc1, 0xc5, 0xbd, 0x48, 0xc7, 0xeb, 0x36, 0xd2, 0xc1, 0x02, 0xfd, 0x6a, 0xa8, + 0x54, 0x00, 0xea, 0xb8, 0xc3, 0xa1, 0x8e, 0xf8, 0x8c, 0x8f, 0xf9, 0xb0, 0x8e, 0x9a, 0x0f, 0xeb, + 0x48, 0xcc, 0x98, 0x66, 0x08, 0xd8, 0xf1, 0xba, 0x0d, 0x76, 0x24, 0x67, 0x8c, 0x38, 0x80, 0x76, + 0xfc, 0x60, 0x0c, 0xed, 0x58, 0x0f, 0x15, 0x9d, 0x00, 0x77, 0xec, 0x8f, 0xc1, 0x1d, 0x69, 0xaa, + 0xe4, 0x85, 0x50, 0x25, 0x33, 0xf0, 0x8e, 0xfd, 0x31, 0xbc, 0x23, 0x33, 0x43, 0xe1, 0x0c, 0xc0, + 0xe3, 0xa7, 0x93, 0x01, 0x0f, 0x08, 0x85, 0x24, 0xf8, 0x30, 0xe7, 0x43, 0x3c, 0xe4, 0x10, 0xc4, + 0x23, 0x1b, 0x7a, 0x3b, 0x67, 0xea, 0xe7, 0x86, 0x3c, 0x8e, 0x26, 0x40, 0x1e, 0x2c, 0x79, 0xb9, + 0x19, 0xaa, 0x7c, 0x0e, 0xcc, 0xe3, 0x68, 0x02, 0xe6, 0x91, 0x9f, 0xa9, 0x76, 0x26, 0xe8, 0x71, + 0xcf, 0x0f, 0x7a, 0x14, 0x42, 0xee, 0x94, 0xee, 0x91, 0x0d, 0x41, 0x3d, 0x4e, 0xc2, 0x50, 0x0f, + 0x86, 0xf6, 0xbc, 0x14, 0xaa, 0x71, 0x01, 0xd8, 0x63, 0x7f, 0x0c, 0xf6, 0x28, 0xcd, 0xb0, 0xb4, + 0x39, 0x71, 0x0f, 0xf1, 0x45, 0x12, 0x4b, 0x03, 0x4e, 0x89, 0x38, 0x58, 0x6c, 0x18, 0x9a, 0xc1, + 0x91, 0x0a, 0xd6, 0x10, 0x6f, 0x92, 0x7b, 0xab, 0xeb, 0x80, 0xa6, 0x60, 0x21, 0x45, 0xc8, 0xfb, + 0x9c, 0x8e, 0xf8, 0x5b, 0xc1, 0x95, 0xa5, 0x68, 0x88, 0xf7, 0xce, 0x9b, 0xe1, 0x77, 0xde, 0xc0, + 0x3d, 0x2d, 0xe3, 0xcb, 0x08, 0xbc, 0x39, 0x07, 0x07, 0x3f, 0x14, 0x37, 0xd7, 0xb8, 0x05, 0x4b, + 0x34, 0x3b, 0x65, 0x1e, 0xdd, 0x17, 0x34, 0x8a, 0xa4, 0x83, 0xad, 0x02, 0x8b, 0x1e, 0x2f, 0xc3, + 0xb2, 0x87, 0xd7, 0xb9, 0x68, 0x32, 0x04, 0xa0, 0xe4, 0x70, 0x57, 0xf9, 0x8d, 0xf3, 0xef, 0x51, + 0x77, 0x85, 0x5c, 0xd4, 0x64, 0x12, 0xc0, 0x21, 0x7c, 0x6b, 0x80, 0x23, 0xfc, 0xc2, 0x8b, 0xde, + 0x87, 0x15, 0x1f, 0xf6, 0x61, 0x27, 0x7f, 0xb1, 0xc5, 0x20, 0x90, 0x88, 0x27, 0x17, 0x71, 0x7a, + 0xd0, 0x07, 0x70, 0x85, 0xa6, 0xb1, 0x21, 0x09, 0x66, 0x7c, 0xbe, 0x04, 0xf3, 0x12, 0xd1, 0x51, + 0x9b, 0x90, 0x64, 0x86, 0x00, 0x23, 0x89, 0x30, 0x60, 0xe4, 0x5f, 0x82, 0x6b, 0x37, 0x0e, 0x34, + 0xd2, 0xd2, 0xda, 0xcc, 0xbe, 0xf2, 0x12, 0xfd, 0x4d, 0x2e, 0x29, 0x3d, 0xad, 0xc3, 0x4d, 0x84, + 0xfc, 0x24, 0x5c, 0x0e, 0x68, 0x9f, 0xe1, 0x81, 0x6a, 0x05, 0x12, 0xea, 0xa0, 0x8d, 0x47, 0xdc, + 0x0a, 0x58, 0x83, 0xc8, 0x3e, 0xc2, 0xe7, 0x7c, 0xaf, 0xc9, 0x4f, 0xc2, 0x47, 0x0f, 0x02, 0x8d, + 0x45, 0x39, 0x89, 0x35, 0xd0, 0x1b, 0x90, 0xa1, 0x95, 0x17, 0x59, 0xd3, 0x4d, 0x1e, 0x6a, 0x7c, + 0x19, 0x11, 0xab, 0x92, 0x6c, 0x1c, 0x10, 0x9e, 0x7d, 0xdd, 0x94, 0xd2, 0x3a, 0xff, 0xe5, 0xc9, + 0x59, 0xd2, 0xbe, 0x9c, 0xe5, 0x2a, 0x64, 0xc8, 0xe8, 0x4d, 0x5d, 0x69, 0x61, 0x1a, 0x26, 0x32, + 0x92, 0x4b, 0x10, 0x7f, 0x2f, 0x40, 0x31, 0x10, 0xb9, 0x26, 0xce, 0xdd, 0x3e, 0x36, 0x51, 0x3f, + 0x54, 0x34, 0x36, 0xfb, 0x6b, 0x00, 0x1d, 0xc5, 0x94, 0x1f, 0x2b, 0x03, 0x0b, 0xb7, 0xf9, 0x12, + 0x64, 0x3a, 0x8a, 0xf9, 0x2e, 0x25, 0xf8, 0x07, 0x93, 0x08, 0x0c, 0xc6, 0x03, 0x56, 0x24, 0xbd, + 0x60, 0x05, 0xaa, 0x40, 0x5a, 0x37, 0x54, 0xcd, 0x50, 0xad, 0x73, 0xba, 0x26, 0x31, 0xc9, 0x69, + 0x8b, 0x07, 0x70, 0x61, 0x62, 0xd0, 0x44, 0x77, 0x21, 0xe3, 0xc6, 0x5b, 0x81, 0xe6, 0x86, 0x53, + 0x30, 0x20, 0x97, 0x97, 0x2c, 0xc9, 0x85, 0x89, 0x61, 0x13, 0xd5, 0x21, 0x69, 0x60, 0x73, 0xd8, + 0x63, 0xb9, 0x6a, 0xe1, 0xf6, 0xcb, 0xf3, 0x85, 0x5b, 0x42, 0x1d, 0xf6, 0x2c, 0x89, 0x0b, 0x8b, + 0x1f, 0x42, 0x92, 0x51, 0x50, 0x16, 0x52, 0x47, 0x7b, 0x0f, 0xf6, 0xf6, 0xdf, 0xdd, 0x2b, 0x45, + 0x10, 0x40, 0xb2, 0x5a, 0xab, 0xd5, 0x0f, 0x9a, 0x25, 0x01, 0x65, 0x20, 0x51, 0xdd, 0xda, 0x97, + 0x9a, 0xa5, 0x28, 0x21, 0x4b, 0xf5, 0xfb, 0xf5, 0x5a, 0xb3, 0x14, 0x43, 0x4b, 0x90, 0x67, 0xbf, + 0xe5, 0x7b, 0xfb, 0xd2, 0xc3, 0x6a, 0xb3, 0x14, 0xf7, 0x90, 0x0e, 0xeb, 0x7b, 0xdb, 0x75, 0xa9, + 0x94, 0x10, 0x5f, 0x85, 0xcb, 0xa1, 0x01, 0xda, 0x85, 0x89, 0x04, 0x0f, 0x4c, 0x24, 0x7e, 0x15, + 0x25, 0x37, 0x90, 0xb0, 0xa8, 0x8b, 0xee, 0x07, 0x26, 0x7e, 0x7b, 0x81, 0x90, 0x1d, 0x98, 0x3d, + 0x7a, 0x1e, 0x0a, 0x06, 0x3e, 0xc5, 0x56, 0xab, 0xcb, 0xb2, 0x00, 0x1b, 0x47, 0xca, 0x73, 0x2a, + 0x15, 0x32, 0x19, 0xdb, 0x47, 0xb8, 0x65, 0xc9, 0xcc, 0x08, 0x4c, 0x7a, 0x5b, 0xcf, 0x10, 0x36, + 0x42, 0x3d, 0x64, 0x44, 0xe2, 0xa0, 0x99, 0x23, 0x61, 0xaa, 0xe2, 0x54, 0x15, 0x50, 0xbf, 0x40, + 0x29, 0xe2, 0xe3, 0x85, 0x16, 0x3b, 0x03, 0x09, 0xa9, 0xde, 0x94, 0xde, 0x2b, 0xc5, 0x10, 0x82, + 0x02, 0xfd, 0x29, 0x1f, 0xee, 0x55, 0x0f, 0x0e, 0x1b, 0xfb, 0x64, 0xb1, 0x97, 0xa1, 0x68, 0x2f, + 0xb6, 0x4d, 0x4c, 0xa0, 0x0b, 0xb0, 0x54, 0xdb, 0x7f, 0x78, 0xb0, 0x5b, 0x6f, 0xd6, 0x5d, 0x72, + 0x52, 0xfc, 0x5d, 0x0c, 0x2e, 0x85, 0xe4, 0x1a, 0xe8, 0x0d, 0x00, 0x6b, 0x24, 0x1b, 0xb8, 0xa5, + 0x19, 0xed, 0x70, 0xe3, 0x6c, 0x8e, 0x24, 0xca, 0x21, 0x65, 0x2c, 0xfe, 0x6b, 0xaa, 0xc3, 0x7e, + 0x9b, 0x2b, 0x25, 0x93, 0x35, 0x39, 0xb6, 0x71, 0x6d, 0xc2, 0x65, 0x0d, 0xb7, 0x88, 0x62, 0xba, + 0x27, 0x54, 0x31, 0xe5, 0x47, 0xef, 0xc1, 0xa5, 0x40, 0x5c, 0xe1, 0xce, 0xd8, 0x9c, 0x54, 0x58, + 0x9c, 0x1c, 0x5e, 0x2e, 0xf8, 0xc3, 0x0b, 0x73, 0xc6, 0xe6, 0x14, 0x20, 0x21, 0xf1, 0x0c, 0x40, + 0x42, 0x58, 0x7c, 0x4a, 0x2e, 0x0a, 0xd1, 0x4f, 0x88, 0x4f, 0xe2, 0x6f, 0x7c, 0x9b, 0xe7, 0x4f, + 0xdf, 0xf6, 0x21, 0x69, 0x5a, 0x8a, 0x35, 0x34, 0xf9, 0x61, 0xb8, 0x3b, 0x6f, 0x2e, 0xb8, 0x61, + 0xff, 0x38, 0xa4, 0xe2, 0x12, 0x57, 0xf3, 0x3f, 0xb9, 0xa7, 0x61, 0xab, 0x9f, 0xf8, 0x2e, 0x56, + 0xff, 0x35, 0x28, 0xf8, 0x97, 0x2a, 0xfc, 0xec, 0xba, 0xde, 0x31, 0x2a, 0xf6, 0x60, 0x79, 0x02, + 0x14, 0x81, 0xee, 0xf2, 0x6a, 0x03, 0xdb, 0xad, 0xeb, 0xe3, 0x53, 0xf6, 0xb1, 0xbb, 0x45, 0x07, + 0x12, 0xac, 0xdc, 0x9c, 0x9a, 0x6d, 0x8c, 0x4b, 0x10, 0x5b, 0x80, 0xc6, 0x33, 0xf4, 0x49, 0xb0, + 0x89, 0xf0, 0x0c, 0xb0, 0xc9, 0xaf, 0x04, 0xb8, 0x32, 0x25, 0x6b, 0x47, 0xef, 0x04, 0x6c, 0xf1, + 0xcd, 0x45, 0x72, 0xfe, 0x0d, 0x46, 0xf3, 0x5b, 0xa3, 0x78, 0x07, 0x72, 0x5e, 0xfa, 0x7c, 0x4b, + 0xff, 0x0b, 0x4f, 0xcc, 0xf4, 0xe3, 0x3b, 0x0d, 0x48, 0xe2, 0x33, 0x3c, 0x70, 0x62, 0xf0, 0xc5, + 0xf1, 0x75, 0x20, 0xdd, 0x5b, 0x65, 0x92, 0x2b, 0xfe, 0xe3, 0xc9, 0x5a, 0x89, 0x71, 0xbf, 0xa4, + 0xf5, 0x55, 0x0b, 0xf7, 0x75, 0xeb, 0x5c, 0xe2, 0xf2, 0xe8, 0x3a, 0xe4, 0x0d, 0x6c, 0x11, 0x17, + 0xe2, 0x83, 0xd6, 0x72, 0x8c, 0xc8, 0x33, 0xb9, 0x3f, 0x09, 0x00, 0x2e, 0x60, 0xe4, 0x02, 0x36, + 0x82, 0x17, 0xb0, 0x09, 0xe0, 0x7c, 0xd1, 0x20, 0xce, 0x87, 0x6e, 0x40, 0x91, 0x25, 0xe9, 0xa6, + 0xda, 0x19, 0x28, 0xd6, 0xd0, 0xc0, 0x1c, 0x1e, 0x2a, 0x50, 0xf2, 0xa1, 0x4d, 0x45, 0xef, 0xc3, + 0x65, 0xab, 0x6b, 0x60, 0xb3, 0xab, 0xf5, 0xda, 0x72, 0x70, 0xe3, 0x59, 0xd9, 0x62, 0x6d, 0x86, + 0xc1, 0x49, 0x97, 0x1c, 0x0d, 0xc7, 0xfe, 0xcd, 0xff, 0x04, 0x12, 0x74, 0x6d, 0x48, 0xa2, 0xe5, + 0x58, 0x70, 0x86, 0x1b, 0xe7, 0x07, 0x00, 0x8a, 0x65, 0x19, 0xea, 0xc9, 0x90, 0x1c, 0xe7, 0xe8, + 0xf8, 0xa7, 0xdc, 0xb5, 0xad, 0xda, 0x7c, 0x5b, 0x57, 0xf9, 0x22, 0xaf, 0xb8, 0xa2, 0x9e, 0x85, + 0xf6, 0x28, 0x14, 0xf7, 0xa0, 0xe0, 0x97, 0xb5, 0x33, 0x58, 0x36, 0x06, 0x7f, 0x06, 0xcb, 0x32, + 0x62, 0x9e, 0xc1, 0x3a, 0xf9, 0x6f, 0x8c, 0x15, 0x05, 0x69, 0x43, 0xfc, 0xb7, 0x00, 0x39, 0xaf, + 0x9b, 0x9a, 0x3b, 0xc9, 0xe4, 0x49, 0x77, 0x6c, 0x3c, 0xe9, 0x8e, 0x87, 0xa6, 0x9d, 0x89, 0x60, + 0xda, 0x79, 0x19, 0xd2, 0xa4, 0x7b, 0x68, 0xe2, 0x36, 0xaf, 0xa4, 0xa6, 0x3a, 0x8a, 0x79, 0x64, + 0xe2, 0xb6, 0xc7, 0x3e, 0x53, 0xcf, 0x68, 0x9f, 0xbe, 0xdc, 0x36, 0x1d, 0x4c, 0xb4, 0x3f, 0x15, + 0x20, 0xed, 0x4c, 0xde, 0x5f, 0x30, 0xf4, 0xe1, 0x8b, 0x6c, 0xed, 0x58, 0xb9, 0x90, 0xdf, 0x1d, + 0x58, 0xf9, 0x34, 0xe6, 0x94, 0x4f, 0xdf, 0x72, 0xb2, 0xb1, 0x30, 0x04, 0xcd, 0xbb, 0xd2, 0x36, + 0x68, 0xca, 0x93, 0xcf, 0x5f, 0xf2, 0x71, 0x90, 0x74, 0x02, 0x7d, 0x1f, 0x92, 0x4a, 0xcb, 0xc1, + 0x0d, 0x0b, 0x13, 0x00, 0x35, 0x9b, 0x75, 0xa3, 0x39, 0xaa, 0x52, 0x4e, 0x89, 0x4b, 0xf0, 0x51, + 0x45, 0xed, 0x51, 0x89, 0x3f, 0x22, 0x7a, 0x19, 0x8f, 0xdf, 0x67, 0x14, 0x00, 0x8e, 0xf6, 0x1e, + 0xee, 0x6f, 0xef, 0xdc, 0xdb, 0xa9, 0x6f, 0xf3, 0x74, 0x6b, 0x7b, 0xbb, 0xbe, 0x5d, 0x8a, 0x12, + 0x3e, 0xa9, 0xfe, 0x70, 0xff, 0xb8, 0xbe, 0x5d, 0x8a, 0x89, 0x55, 0xc8, 0x38, 0x51, 0x82, 0x96, + 0x96, 0xb5, 0xc7, 0xd8, 0xe0, 0x0b, 0xc4, 0x1a, 0x68, 0x15, 0xb2, 0xe3, 0x58, 0x37, 0xb9, 0x30, + 0x31, 0x88, 0x5b, 0xfc, 0xb5, 0x00, 0x45, 0x47, 0x07, 0xcf, 0x13, 0xde, 0x82, 0x94, 0x3e, 0x3c, + 0x91, 0x6d, 0xdb, 0x0d, 0x20, 0xc4, 0xf6, 0x7d, 0x6a, 0x78, 0xd2, 0x53, 0x5b, 0x0f, 0xf0, 0x39, + 0x8f, 0x4a, 0x49, 0x7d, 0x78, 0xf2, 0x80, 0x99, 0x38, 0x1b, 0x46, 0x74, 0xca, 0x30, 0x62, 0x81, + 0x61, 0xa0, 0x1b, 0x90, 0x1b, 0x68, 0x6d, 0x2c, 0x2b, 0xed, 0xb6, 0x81, 0x4d, 0x16, 0x6c, 0x33, + 0x5c, 0x73, 0x96, 0xf4, 0x54, 0x59, 0x87, 0xf8, 0xb5, 0x00, 0x68, 0x3c, 0x32, 0xa2, 0x43, 0x58, + 0x72, 0x83, 0xab, 0x1d, 0xb1, 0x99, 0xfb, 0x5c, 0x0f, 0x8f, 0xac, 0xbe, 0x4b, 0x77, 0xe9, 0xcc, + 0x4f, 0x26, 0x59, 0xd8, 0x8a, 0xeb, 0xaa, 0x74, 0x3a, 0x5f, 0xba, 0x28, 0xd1, 0x39, 0x17, 0x25, + 0x22, 0x21, 0x47, 0xde, 0xe9, 0x09, 0xba, 0xd2, 0xd8, 0x58, 0xc9, 0x44, 0x87, 0x72, 0x73, 0x4c, + 0x8c, 0xcf, 0x33, 0x6c, 0x48, 0xc2, 0xb3, 0x0c, 0x49, 0xbc, 0x03, 0xa5, 0x77, 0x9c, 0xef, 0xf3, + 0x2f, 0x05, 0x86, 0x29, 0x8c, 0x0d, 0xf3, 0x0c, 0xd2, 0xc4, 0xfb, 0xd2, 0xa0, 0xf1, 0x43, 0xc8, + 0x38, 0xab, 0xe7, 0xbc, 0x4e, 0x09, 0x5d, 0x76, 0x3e, 0x12, 0x57, 0x04, 0xdd, 0x82, 0x25, 0x12, + 0x37, 0xec, 0xc2, 0x25, 0x83, 0xcd, 0xa2, 0xd4, 0x1b, 0x16, 0x59, 0xc7, 0xae, 0x8d, 0xf5, 0x90, + 0x00, 0x5f, 0x62, 0x89, 0x00, 0x6e, 0xff, 0x37, 0x06, 0x40, 0xee, 0x59, 0x01, 0xf4, 0x90, 0xed, + 0x61, 0xde, 0x97, 0x89, 0x88, 0x3f, 0x8b, 0x42, 0xd6, 0x53, 0x48, 0x41, 0xdf, 0xf3, 0x25, 0x55, + 0xeb, 0xd3, 0x8a, 0x2e, 0x9e, 0x8c, 0xca, 0x37, 0xb1, 0xe8, 0xe2, 0x13, 0x0b, 0x2b, 0x61, 0xd9, + 0xf5, 0xd4, 0xf8, 0xc2, 0xf5, 0xd4, 0x97, 0x00, 0x59, 0x9a, 0xa5, 0xf4, 0x48, 0xf0, 0x56, 0x07, + 0x1d, 0x99, 0x9d, 0x76, 0x16, 0x40, 0x4a, 0xb4, 0xe7, 0x98, 0x76, 0x1c, 0x10, 0xba, 0xd8, 0x83, + 0xb4, 0x03, 0x06, 0x2c, 0xfe, 0xe8, 0x63, 0x52, 0xdd, 0xb8, 0x02, 0xe9, 0x3e, 0xb6, 0x14, 0x1a, + 0xf6, 0x18, 0x38, 0xe4, 0xb4, 0x6f, 0xbd, 0x09, 0x59, 0xcf, 0x4b, 0x18, 0x12, 0x09, 0xf7, 0xea, + 0xef, 0x96, 0x22, 0x95, 0xd4, 0x67, 0x5f, 0xac, 0xc7, 0xf6, 0xf0, 0x63, 0xf2, 0x29, 0xa9, 0x5e, + 0x6b, 0xd4, 0x6b, 0x0f, 0x4a, 0x42, 0x25, 0xfb, 0xd9, 0x17, 0xeb, 0x29, 0x09, 0xd3, 0x9a, 0xc3, + 0xad, 0x07, 0x50, 0x0c, 0xec, 0x80, 0xdf, 0x27, 0x23, 0x28, 0x6c, 0x1f, 0x1d, 0xec, 0xee, 0xd4, + 0xaa, 0xcd, 0xba, 0x7c, 0xbc, 0xdf, 0xac, 0x97, 0x04, 0x74, 0x09, 0x96, 0x77, 0x77, 0x7e, 0xdc, + 0x68, 0xca, 0xb5, 0xdd, 0x9d, 0xfa, 0x5e, 0x53, 0xae, 0x36, 0x9b, 0xd5, 0xda, 0x83, 0x52, 0xf4, + 0xf6, 0x5f, 0x01, 0x8a, 0xd5, 0xad, 0xda, 0x0e, 0xb9, 0xdb, 0xab, 0x2d, 0x85, 0x7a, 0xf8, 0x1a, + 0xc4, 0x29, 0x14, 0x3b, 0xf5, 0x4d, 0x6c, 0x65, 0x7a, 0x21, 0x09, 0xdd, 0x83, 0x04, 0x45, 0x69, + 0xd1, 0xf4, 0x47, 0xb2, 0x95, 0x19, 0x95, 0x25, 0x32, 0x18, 0x7a, 0x6e, 0xa6, 0xbe, 0x9a, 0xad, + 0x4c, 0x2f, 0x34, 0xa1, 0x5d, 0x48, 0xd9, 0x00, 0xd8, 0xac, 0xa7, 0xac, 0x95, 0x99, 0xd5, 0x1f, + 0x32, 0x35, 0x06, 0x24, 0x4e, 0x7f, 0x50, 0x5b, 0x99, 0x51, 0x82, 0x42, 0x12, 0x64, 0x5c, 0xec, + 0x77, 0xf6, 0xdb, 0xde, 0xca, 0x1c, 0x25, 0x31, 0xf4, 0x21, 0xe4, 0xfd, 0x50, 0xd9, 0x7c, 0xcf, + 0x6e, 0x2b, 0x73, 0x96, 0xab, 0x88, 0x7e, 0x3f, 0x6e, 0x36, 0xdf, 0x33, 0xdc, 0xca, 0x9c, 0xd5, + 0x2b, 0xf4, 0x11, 0x2c, 0x8d, 0xe3, 0x5a, 0xf3, 0xbf, 0xca, 0xad, 0x2c, 0x50, 0xcf, 0x42, 0x7d, + 0x40, 0x13, 0xf0, 0xb0, 0x05, 0x1e, 0xe9, 0x56, 0x16, 0x29, 0x6f, 0xa1, 0x36, 0x14, 0x83, 0x58, + 0xd1, 0xbc, 0x8f, 0x76, 0x2b, 0x73, 0x97, 0xba, 0xd8, 0x57, 0xfc, 0xa0, 0xc6, 0xbc, 0x8f, 0x78, + 0x2b, 0x73, 0x57, 0xbe, 0xd0, 0x11, 0x80, 0xe7, 0x62, 0x3c, 0xc7, 0xa3, 0xde, 0xca, 0x3c, 0x35, + 0x30, 0xa4, 0xc3, 0xf2, 0xa4, 0x9b, 0xf0, 0x22, 0x6f, 0x7c, 0x2b, 0x0b, 0x95, 0xc6, 0x88, 0x3d, + 0xfb, 0xef, 0xb4, 0xf3, 0xbd, 0xf9, 0xad, 0xcc, 0x59, 0x23, 0xdb, 0xda, 0xfa, 0xf2, 0xe9, 0xaa, + 0xf0, 0xd5, 0xd3, 0x55, 0xe1, 0xeb, 0xa7, 0xab, 0xc2, 0xe7, 0xdf, 0xac, 0x46, 0xbe, 0xfa, 0x66, + 0x35, 0xf2, 0x97, 0x6f, 0x56, 0x23, 0x3f, 0xb9, 0xd9, 0x51, 0xad, 0xee, 0xf0, 0x64, 0xa3, 0xa5, + 0xf5, 0xe9, 0x5f, 0x2e, 0x74, 0xe5, 0x7c, 0x93, 0xe9, 0x24, 0x2d, 0xcf, 0x1f, 0x3b, 0x4e, 0x92, + 0x34, 0xd6, 0xdd, 0xf9, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc7, 0x2e, 0x77, 0x7c, 0xf8, 0x31, + 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -5791,13 +5797,15 @@ func (m *RequestLoadSnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, error _ = i var l int _ = l - if m.Chunk != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Chunk)) + if len(m.ChunkId) > 0 { + i -= len(m.ChunkId) + copy(dAtA[i:], m.ChunkId) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ChunkId))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if m.Format != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + if m.Version != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Version)) i-- dAtA[i] = 0x10 } @@ -5843,10 +5851,12 @@ func (m *RequestApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, erro i-- dAtA[i] = 0x12 } - if m.Index != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Index)) + if len(m.ChunkId) > 0 { + i -= len(m.ChunkId) + copy(dAtA[i:], m.ChunkId) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ChunkId))) i-- - dAtA[i] = 0x8 + dAtA[i] = 0xa } return len(dAtA) - i, nil } @@ -7140,6 +7150,15 @@ func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err _ = i var l int _ = l + if len(m.NextChunks) > 0 { + for iNdEx := len(m.NextChunks) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.NextChunks[iNdEx]) + copy(dAtA[i:], m.NextChunks[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.NextChunks[iNdEx]))) + i-- + dAtA[i] = 0x22 + } + } if len(m.RejectSenders) > 0 { for iNdEx := len(m.RejectSenders) - 1; iNdEx >= 0; iNdEx-- { i -= len(m.RejectSenders[iNdEx]) @@ -7150,22 +7169,13 @@ func (m *ResponseApplySnapshotChunk) MarshalToSizedBuffer(dAtA []byte) (int, err } } if len(m.RefetchChunks) > 0 { - dAtA51 := make([]byte, len(m.RefetchChunks)*10) - var j50 int - for _, num := range m.RefetchChunks { - for num >= 1<<7 { - dAtA51[j50] = uint8(uint64(num)&0x7f | 0x80) - num >>= 7 - j50++ - } - dAtA51[j50] = uint8(num) - j50++ - } - i -= j50 - copy(dAtA[i:], dAtA51[:j50]) - i = encodeVarintTypes(dAtA, i, uint64(j50)) - i-- - dAtA[i] = 0x12 + for iNdEx := len(m.RefetchChunks) - 1; iNdEx >= 0; iNdEx-- { + i -= len(m.RefetchChunks[iNdEx]) + copy(dAtA[i:], m.RefetchChunks[iNdEx]) + i = encodeVarintTypes(dAtA, i, uint64(len(m.RefetchChunks[iNdEx]))) + i-- + dAtA[i] = 0x12 + } } if m.Result != 0 { i = encodeVarintTypes(dAtA, i, uint64(m.Result)) @@ -8120,12 +8130,12 @@ func (m *Misbehavior) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x28 } - n63, err63 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) - if err63 != nil { - return 0, err63 + n61, err61 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err61 != nil { + return 0, err61 } - i -= n63 - i = encodeVarintTypes(dAtA, i, uint64(n63)) + i -= n61 + i = encodeVarintTypes(dAtA, i, uint64(n61)) i-- dAtA[i] = 0x22 if m.Height != 0 { @@ -8185,13 +8195,8 @@ func (m *Snapshot) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.Chunks != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Chunks)) - i-- - dAtA[i] = 0x18 - } - if m.Format != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + if m.Version != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Version)) i-- dAtA[i] = 0x10 } @@ -8558,11 +8563,12 @@ func (m *RequestLoadSnapshotChunk) Size() (n int) { if m.Height != 0 { n += 1 + sovTypes(uint64(m.Height)) } - if m.Format != 0 { - n += 1 + sovTypes(uint64(m.Format)) + if m.Version != 0 { + n += 1 + sovTypes(uint64(m.Version)) } - if m.Chunk != 0 { - n += 1 + sovTypes(uint64(m.Chunk)) + l = len(m.ChunkId) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) } return n } @@ -8573,8 +8579,9 @@ func (m *RequestApplySnapshotChunk) Size() (n int) { } var l int _ = l - if m.Index != 0 { - n += 1 + sovTypes(uint64(m.Index)) + l = len(m.ChunkId) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) } l = len(m.Chunk) if l > 0 { @@ -9205,11 +9212,10 @@ func (m *ResponseApplySnapshotChunk) Size() (n int) { n += 1 + sovTypes(uint64(m.Result)) } if len(m.RefetchChunks) > 0 { - l = 0 - for _, e := range m.RefetchChunks { - l += sovTypes(uint64(e)) + for _, b := range m.RefetchChunks { + l = len(b) + n += 1 + l + sovTypes(uint64(l)) } - n += 1 + sovTypes(uint64(l)) + l } if len(m.RejectSenders) > 0 { for _, s := range m.RejectSenders { @@ -9217,6 +9223,12 @@ func (m *ResponseApplySnapshotChunk) Size() (n int) { n += 1 + l + sovTypes(uint64(l)) } } + if len(m.NextChunks) > 0 { + for _, b := range m.NextChunks { + l = len(b) + n += 1 + l + sovTypes(uint64(l)) + } + } return n } @@ -9638,11 +9650,8 @@ func (m *Snapshot) Size() (n int) { if m.Height != 0 { n += 1 + sovTypes(uint64(m.Height)) } - if m.Format != 0 { - n += 1 + sovTypes(uint64(m.Format)) - } - if m.Chunks != 0 { - n += 1 + sovTypes(uint64(m.Chunks)) + if m.Version != 0 { + n += 1 + sovTypes(uint64(m.Version)) } l = len(m.Hash) if l > 0 { @@ -11257,9 +11266,9 @@ func (m *RequestLoadSnapshotChunk) Unmarshal(dAtA []byte) error { } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } - m.Format = 0 + m.Version = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -11269,16 +11278,16 @@ func (m *RequestLoadSnapshotChunk) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Format |= uint32(b&0x7F) << shift + m.Version |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChunkId", wireType) } - m.Chunk = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -11288,11 +11297,26 @@ func (m *RequestLoadSnapshotChunk) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Chunk |= uint32(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChunkId = append(m.ChunkId[:0], dAtA[iNdEx:postIndex]...) + if m.ChunkId == nil { + m.ChunkId = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -11344,10 +11368,10 @@ func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error { } switch fieldNum { case 1: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChunkId", wireType) } - m.Index = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -11357,11 +11381,26 @@ func (m *RequestApplySnapshotChunk) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Index |= uint32(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChunkId = append(m.ChunkId[:0], dAtA[iNdEx:postIndex]...) + if m.ChunkId == nil { + m.ChunkId = []byte{} + } + iNdEx = postIndex case 2: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) @@ -14951,81 +14990,37 @@ func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error { } } case 2: - if wireType == 0 { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.RefetchChunks = append(m.RefetchChunks, v) - } else if wireType == 2 { - var packedLen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - packedLen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if packedLen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + packedLen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field RefetchChunks", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { return io.ErrUnexpectedEOF } - var elementCount int - var count int - for _, integer := range dAtA[iNdEx:postIndex] { - if integer < 128 { - count++ - } - } - elementCount = count - if elementCount != 0 && len(m.RefetchChunks) == 0 { - m.RefetchChunks = make([]uint32, 0, elementCount) - } - for iNdEx < postIndex { - var v uint32 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - v |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - m.RefetchChunks = append(m.RefetchChunks, v) - } - } else { - return fmt.Errorf("proto: wrong wireType = %d for field RefetchChunks", wireType) + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF } + m.RefetchChunks = append(m.RefetchChunks, make([]byte, postIndex-iNdEx)) + copy(m.RefetchChunks[len(m.RefetchChunks)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex case 3: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field RejectSenders", wireType) @@ -15058,6 +15053,38 @@ func (m *ResponseApplySnapshotChunk) Unmarshal(dAtA []byte) error { } m.RejectSenders = append(m.RejectSenders, string(dAtA[iNdEx:postIndex])) iNdEx = postIndex + case 4: + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field NextChunks", wireType) + } + var byteLen int + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowTypes + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + byteLen |= int(b&0x7F) << shift + if b < 0x80 { + break + } + } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.NextChunks = append(m.NextChunks, make([]byte, postIndex-iNdEx)) + copy(m.NextChunks[len(m.NextChunks)-1], dAtA[iNdEx:postIndex]) + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -17912,28 +17939,9 @@ func (m *Snapshot) Unmarshal(dAtA []byte) error { } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) - } - m.Format = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Format |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Chunks", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } - m.Chunks = 0 + m.Version = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -17943,7 +17951,7 @@ func (m *Snapshot) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Chunks |= uint32(b&0x7F) << shift + m.Version |= uint32(b&0x7F) << shift if b < 0x80 { break } diff --git a/abci/types/types_test.go b/abci/types/types_test.go index bd8695d4f..b55ffe8be 100644 --- a/abci/types/types_test.go +++ b/abci/types/types_test.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/types" ) func TestHashAndProveResults(t *testing.T) { diff --git a/abci/types/validator_set_update.go b/abci/types/validator_set_update.go index dfb56fc87..dbdcc9c3c 100644 --- a/abci/types/validator_set_update.go +++ b/abci/types/validator_set_update.go @@ -1,9 +1,9 @@ package types import ( - "github.com/tendermint/tendermint/crypto" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/dash/llmq" + "github.com/dashpay/tenderdash/crypto" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/dash/llmq" ) // QuorumOptionFunc is an option function for quorum config diff --git a/cmd/abcidump/cmd/capture.go b/cmd/abcidump/cmd/capture.go index c1ab558d3..f05d359ef 100644 --- a/cmd/abcidump/cmd/capture.go +++ b/cmd/abcidump/cmd/capture.go @@ -11,8 +11,8 @@ import ( "github.com/google/gopacket/pcap" "github.com/spf13/cobra" - "github.com/tendermint/tendermint/cmd/abcidump/parser" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/cmd/abcidump/parser" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) const ( diff --git a/cmd/abcidump/cmd/cbor_test.go b/cmd/abcidump/cmd/cbor_test.go index 3200c50e9..1e9f2fad8 100644 --- a/cmd/abcidump/cmd/cbor_test.go +++ b/cmd/abcidump/cmd/cbor_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) func TestCborBase64(t *testing.T) { diff --git a/cmd/abcidump/cmd/parse.go b/cmd/abcidump/cmd/parse.go index 2505ef61c..7739a7967 100644 --- a/cmd/abcidump/cmd/parse.go +++ b/cmd/abcidump/cmd/parse.go @@ -11,7 +11,7 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/cmd/abcidump/parser" + "github.com/dashpay/tenderdash/cmd/abcidump/parser" ) const ( diff --git a/cmd/abcidump/cmd/parse_test.go b/cmd/abcidump/cmd/parse_test.go index aaf25ca43..9e5ee5e83 100644 --- a/cmd/abcidump/cmd/parse_test.go +++ b/cmd/abcidump/cmd/parse_test.go @@ -11,10 +11,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/types" - - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/log" ) func TestParse(t *testing.T) { diff --git a/cmd/abcidump/cmd/rootcmd.go b/cmd/abcidump/cmd/rootcmd.go index 90ea6f0ab..872400a0c 100644 --- a/cmd/abcidump/cmd/rootcmd.go +++ b/cmd/abcidump/cmd/rootcmd.go @@ -5,7 +5,7 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) var logger log.Logger diff --git a/cmd/abcidump/main.go b/cmd/abcidump/main.go index 2347e7ba7..2e60a40b2 100644 --- a/cmd/abcidump/main.go +++ b/cmd/abcidump/main.go @@ -4,7 +4,7 @@ import ( "fmt" "os" - "github.com/tendermint/tendermint/cmd/abcidump/cmd" + "github.com/dashpay/tenderdash/cmd/abcidump/cmd" ) func main() { diff --git a/cmd/abcidump/parser/parser.go b/cmd/abcidump/parser/parser.go index 3de891a2c..e29e8b15e 100644 --- a/cmd/abcidump/parser/parser.go +++ b/cmd/abcidump/parser/parser.go @@ -7,7 +7,7 @@ import ( "github.com/gogo/protobuf/jsonpb" "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/abci/types" + "github.com/dashpay/tenderdash/abci/types" ) // Parser reads protobuf data from In, parses it and writes to Out in JSON format diff --git a/cmd/abcidump/parser/parser_test.go b/cmd/abcidump/parser/parser_test.go index 36f29eee7..871a63ecb 100644 --- a/cmd/abcidump/parser/parser_test.go +++ b/cmd/abcidump/parser/parser_test.go @@ -8,7 +8,7 @@ import ( "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/types" + "github.com/dashpay/tenderdash/abci/types" ) func TestParser(t *testing.T) { diff --git a/cmd/abcidump/parser/types.go b/cmd/abcidump/parser/types.go index 6d84aa65c..15fb4447f 100644 --- a/cmd/abcidump/parser/types.go +++ b/cmd/abcidump/parser/types.go @@ -7,8 +7,8 @@ import ( "github.com/gogo/protobuf/proto" - protoAbci "github.com/tendermint/tendermint/abci/types" - protoP2p "github.com/tendermint/tendermint/proto/tendermint/p2p" + protoAbci "github.com/dashpay/tenderdash/abci/types" + protoP2p "github.com/dashpay/tenderdash/proto/tendermint/p2p" ) // ensure we have some dependencies compiled in diff --git a/cmd/priv_val_server/main.go b/cmd/priv_val_server/main.go index 901422145..086683026 100644 --- a/cmd/priv_val_server/main.go +++ b/cmd/priv_val_server/main.go @@ -19,11 +19,11 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/privval" - grpcprivval "github.com/tendermint/tendermint/privval/grpc" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/privval" + grpcprivval "github.com/dashpay/tenderdash/privval/grpc" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" ) var ( diff --git a/cmd/tenderdash/commands/compact.go b/cmd/tenderdash/commands/compact.go index 56f499847..93903f3da 100644 --- a/cmd/tenderdash/commands/compact.go +++ b/cmd/tenderdash/commands/compact.go @@ -11,8 +11,8 @@ import ( "github.com/syndtr/goleveldb/leveldb/opt" "github.com/syndtr/goleveldb/leveldb/util" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" ) func MakeCompactDBCommand(cfg *config.Config, logger log.Logger) *cobra.Command { @@ -20,8 +20,8 @@ func MakeCompactDBCommand(cfg *config.Config, logger log.Logger) *cobra.Command Use: "experimental-compact-goleveldb", Short: "force compacts the tendermint storage engine (only GoLevelDB supported)", Long: ` -This is a temporary utility command that performs a force compaction on the state -and blockstores to reduce disk space for a pruning node. This should only be run +This is a temporary utility command that performs a force compaction on the state +and blockstores to reduce disk space for a pruning node. This should only be run once the node has stopped. This command will likely be omitted in the future after the planned refactor to the storage engine. diff --git a/cmd/tenderdash/commands/debug/debug.go b/cmd/tenderdash/commands/debug/debug.go index 7fd5b030f..284dc7776 100644 --- a/cmd/tenderdash/commands/debug/debug.go +++ b/cmd/tenderdash/commands/debug/debug.go @@ -3,7 +3,7 @@ package debug import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) const ( diff --git a/cmd/tenderdash/commands/debug/dump.go b/cmd/tenderdash/commands/debug/dump.go index d84f6e10a..4797b33b4 100644 --- a/cmd/tenderdash/commands/debug/dump.go +++ b/cmd/tenderdash/commands/debug/dump.go @@ -11,10 +11,10 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/cli" + "github.com/dashpay/tenderdash/libs/log" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" ) func getDumpCmd(logger log.Logger) *cobra.Command { diff --git a/cmd/tenderdash/commands/debug/kill.go b/cmd/tenderdash/commands/debug/kill.go index 7755817a6..c137475a9 100644 --- a/cmd/tenderdash/commands/debug/kill.go +++ b/cmd/tenderdash/commands/debug/kill.go @@ -13,10 +13,10 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/cli" + "github.com/dashpay/tenderdash/libs/log" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" ) func getKillCmd(logger log.Logger) *cobra.Command { diff --git a/cmd/tenderdash/commands/debug/util.go b/cmd/tenderdash/commands/debug/util.go index 24626207f..4bc169b4f 100644 --- a/cmd/tenderdash/commands/debug/util.go +++ b/cmd/tenderdash/commands/debug/util.go @@ -9,8 +9,8 @@ import ( "path" "path/filepath" - "github.com/tendermint/tendermint/config" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" + "github.com/dashpay/tenderdash/config" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" ) // dumpStatus gets node status state dump from the Tendermint RPC and writes it diff --git a/cmd/tenderdash/commands/gen_node_key.go b/cmd/tenderdash/commands/gen_node_key.go index dbd22d19c..314166205 100644 --- a/cmd/tenderdash/commands/gen_node_key.go +++ b/cmd/tenderdash/commands/gen_node_key.go @@ -14,10 +14,10 @@ import ( "github.com/tyler-smith/go-bip39" "golang.org/x/term" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) const ( @@ -39,7 +39,7 @@ func MakeGenNodeKeyCommand(*config.Config, log.Logger) *cobra.Command { cmd := &cobra.Command{ Use: "gen-node-key", Short: "Generate a new node key for this node and print its ID", - Long: `Generate a new node key for this node and print its ID. + Long: `Generate a new node key for this node and print its ID. Note that the key is not saved to disk. Node key can be generated randomly (default) or derived from BIP39 mnemonic phrase. diff --git a/cmd/tenderdash/commands/gen_node_key_test.go b/cmd/tenderdash/commands/gen_node_key_test.go index 7ad8e9998..196b280a7 100644 --- a/cmd/tenderdash/commands/gen_node_key_test.go +++ b/cmd/tenderdash/commands/gen_node_key_test.go @@ -6,9 +6,9 @@ import ( "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) func TestGenNodeKeyFromPem(t *testing.T) { diff --git a/cmd/tenderdash/commands/gen_validator.go b/cmd/tenderdash/commands/gen_validator.go index bbe09e912..23214e38b 100644 --- a/cmd/tenderdash/commands/gen_validator.go +++ b/cmd/tenderdash/commands/gen_validator.go @@ -6,7 +6,7 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/privval" + "github.com/dashpay/tenderdash/privval" ) // MakeGenValidatorCommand allows the generation of a keypair for a diff --git a/cmd/tenderdash/commands/init.go b/cmd/tenderdash/commands/init.go index ce94f7b95..9cd4b2864 100644 --- a/cmd/tenderdash/commands/init.go +++ b/cmd/tenderdash/commands/init.go @@ -4,17 +4,17 @@ import ( "context" "errors" "fmt" - "time" "github.com/dashpay/dashd-go/btcjson" "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/types" ) type nodeConfig struct { @@ -103,7 +103,7 @@ func initFilesWithConfig(ctx context.Context, conf nodeConfig, logger log.Logger genDoc := types.GenesisDoc{ ChainID: fmt.Sprintf("test-chain-%v", tmrand.Str(6)), - GenesisTime: time.Now(), + GenesisTime: tmtime.Now(), ConsensusParams: types.DefaultConsensusParams(), QuorumType: btcjson.LLMQType(conf.quorumType), InitialCoreChainLockedHeight: conf.coreChainLockedHeight, diff --git a/cmd/tenderdash/commands/inspect.go b/cmd/tenderdash/commands/inspect.go index 9c12ef5cf..84bbb1e18 100644 --- a/cmd/tenderdash/commands/inspect.go +++ b/cmd/tenderdash/commands/inspect.go @@ -6,9 +6,9 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/inspect" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/inspect" + "github.com/dashpay/tenderdash/libs/log" ) // InspectCmd constructs the command to start an inspect server. diff --git a/cmd/tenderdash/commands/key_migrate.go b/cmd/tenderdash/commands/key_migrate.go index 88b9dfe71..cf20d76a0 100644 --- a/cmd/tenderdash/commands/key_migrate.go +++ b/cmd/tenderdash/commands/key_migrate.go @@ -6,10 +6,10 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/scripts/keymigrate" - "github.com/tendermint/tendermint/scripts/scmigrate" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/scripts/keymigrate" + "github.com/dashpay/tenderdash/scripts/scmigrate" ) func MakeKeyMigrateCommand(conf *config.Config, logger log.Logger) *cobra.Command { diff --git a/cmd/tenderdash/commands/light.go b/cmd/tenderdash/commands/light.go index 9ebff8e27..acbe7ac21 100644 --- a/cmd/tenderdash/commands/light.go +++ b/cmd/tenderdash/commands/light.go @@ -14,14 +14,14 @@ import ( "github.com/spf13/cobra" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/config" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - lproxy "github.com/tendermint/tendermint/light/proxy" - lrpc "github.com/tendermint/tendermint/light/rpc" - dbs "github.com/tendermint/tendermint/light/store/db" - rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/config" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + lproxy "github.com/dashpay/tenderdash/light/proxy" + lrpc "github.com/dashpay/tenderdash/light/rpc" + dbs "github.com/dashpay/tenderdash/light/store/db" + rpcserver "github.com/dashpay/tenderdash/rpc/jsonrpc/server" ) // LightCmd constructs the base command called when invoked without any subcommands. diff --git a/cmd/tenderdash/commands/reindex_event.go b/cmd/tenderdash/commands/reindex_event.go index 797819449..961a60e63 100644 --- a/cmd/tenderdash/commands/reindex_event.go +++ b/cmd/tenderdash/commands/reindex_event.go @@ -9,18 +9,18 @@ import ( "github.com/spf13/cobra" dbm "github.com/tendermint/tm-db" - abcitypes "github.com/tendermint/tendermint/abci/types" - tmcfg "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/libs/progressbar" - "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/indexer/sink/kv" - "github.com/tendermint/tendermint/internal/state/indexer/sink/psql" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + abcitypes "github.com/dashpay/tenderdash/abci/types" + tmcfg "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/libs/progressbar" + "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/kv" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/psql" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/os" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/cmd/tenderdash/commands/reindex_event_test.go b/cmd/tenderdash/commands/reindex_event_test.go index e88d4fb00..37f58d952 100644 --- a/cmd/tenderdash/commands/reindex_event_test.go +++ b/cmd/tenderdash/commands/reindex_event_test.go @@ -10,13 +10,13 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abcitypes "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/proto/tendermint/state" - "github.com/tendermint/tendermint/types" + abcitypes "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/proto/tendermint/state" + "github.com/dashpay/tenderdash/types" _ "github.com/lib/pq" // for the psql sink ) diff --git a/cmd/tenderdash/commands/replay.go b/cmd/tenderdash/commands/replay.go index fb6f19e55..57059ae97 100644 --- a/cmd/tenderdash/commands/replay.go +++ b/cmd/tenderdash/commands/replay.go @@ -3,9 +3,9 @@ package commands import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/libs/log" ) // MakeReplayCommand constructs a command to replay messages from the WAL into consensus. diff --git a/cmd/tenderdash/commands/reset.go b/cmd/tenderdash/commands/reset.go index 38beffb62..a8c491dcf 100644 --- a/cmd/tenderdash/commands/reset.go +++ b/cmd/tenderdash/commands/reset.go @@ -6,11 +6,11 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/types" ) // MakeResetCommand constructs a command that removes the database of diff --git a/cmd/tenderdash/commands/reset_test.go b/cmd/tenderdash/commands/reset_test.go index fd3963e88..673afd772 100644 --- a/cmd/tenderdash/commands/reset_test.go +++ b/cmd/tenderdash/commands/reset_test.go @@ -7,10 +7,10 @@ import ( "github.com/stretchr/testify/require" - cfg "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/types" + cfg "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/types" ) func Test_ResetAll(t *testing.T) { diff --git a/cmd/tenderdash/commands/rollback.go b/cmd/tenderdash/commands/rollback.go index a60434178..1dd88ccb6 100644 --- a/cmd/tenderdash/commands/rollback.go +++ b/cmd/tenderdash/commands/rollback.go @@ -5,8 +5,8 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/state" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/state" ) func MakeRollbackStateCommand(conf *config.Config) *cobra.Command { diff --git a/cmd/tenderdash/commands/rollback_test.go b/cmd/tenderdash/commands/rollback_test.go index 55817cc9c..00294a403 100644 --- a/cmd/tenderdash/commands/rollback_test.go +++ b/cmd/tenderdash/commands/rollback_test.go @@ -7,12 +7,12 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/cmd/tenderdash/commands" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/rpc/client/local" - rpctest "github.com/tendermint/tendermint/rpc/test" - e2e "github.com/tendermint/tendermint/test/e2e/app" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/cmd/tenderdash/commands" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/rpc/client/local" + rpctest "github.com/dashpay/tenderdash/rpc/test" + e2e "github.com/dashpay/tenderdash/test/e2e/app" ) func TestRollbackIntegration(t *testing.T) { diff --git a/cmd/tenderdash/commands/root.go b/cmd/tenderdash/commands/root.go index fdee638bc..2c2b2bff8 100644 --- a/cmd/tenderdash/commands/root.go +++ b/cmd/tenderdash/commands/root.go @@ -9,9 +9,9 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/cli" + "github.com/dashpay/tenderdash/libs/log" ) const ctxTimeout = 4 * time.Second diff --git a/cmd/tenderdash/commands/root_test.go b/cmd/tenderdash/commands/root_test.go index a4f4fb08d..f3719220c 100644 --- a/cmd/tenderdash/commands/root_test.go +++ b/cmd/tenderdash/commands/root_test.go @@ -12,10 +12,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - cfg "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" + cfg "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/cli" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" ) // writeConfigVals writes a toml file with the given values. diff --git a/cmd/tenderdash/commands/run_node.go b/cmd/tenderdash/commands/run_node.go index d5a47e84a..8abe55755 100644 --- a/cmd/tenderdash/commands/run_node.go +++ b/cmd/tenderdash/commands/run_node.go @@ -11,8 +11,8 @@ import ( "github.com/spf13/cobra" - cfg "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" + cfg "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" ) var ( diff --git a/cmd/tenderdash/commands/show_node_id.go b/cmd/tenderdash/commands/show_node_id.go index ffc6c4d5e..d9e381d1b 100644 --- a/cmd/tenderdash/commands/show_node_id.go +++ b/cmd/tenderdash/commands/show_node_id.go @@ -5,7 +5,7 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" + "github.com/dashpay/tenderdash/config" ) // MakeShowNodeIDCommand constructs a command to dump the node ID to stdout. diff --git a/cmd/tenderdash/commands/show_validator.go b/cmd/tenderdash/commands/show_validator.go index 548b2a3c5..67a2be4cb 100644 --- a/cmd/tenderdash/commands/show_validator.go +++ b/cmd/tenderdash/commands/show_validator.go @@ -6,14 +6,14 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - tmos "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/privval" - tmgrpc "github.com/tendermint/tendermint/privval/grpc" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/jsontypes" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + tmos "github.com/dashpay/tenderdash/libs/os" + "github.com/dashpay/tenderdash/privval" + tmgrpc "github.com/dashpay/tenderdash/privval/grpc" ) // MakeShowValidatorCommand constructs a command to show the validator info. diff --git a/cmd/tenderdash/commands/testnet.go b/cmd/tenderdash/commands/testnet.go index 8b1dbaeba..3906f740d 100644 --- a/cmd/tenderdash/commands/testnet.go +++ b/cmd/tenderdash/commands/testnet.go @@ -8,18 +8,17 @@ import ( "path/filepath" "strings" - "github.com/tendermint/tendermint/crypto" - "github.com/spf13/cobra" "github.com/spf13/viper" - cfg "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/types" + cfg "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/cmd/tenderdash/commands/version.go b/cmd/tenderdash/commands/version.go index 4927ea134..71c504b00 100644 --- a/cmd/tenderdash/commands/version.go +++ b/cmd/tenderdash/commands/version.go @@ -6,7 +6,7 @@ import ( "github.com/sasha-s/go-deadlock" "github.com/spf13/cobra" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/version" ) // VersionCmd ... diff --git a/cmd/tenderdash/main.go b/cmd/tenderdash/main.go index fb879c344..6ab26dc62 100644 --- a/cmd/tenderdash/main.go +++ b/cmd/tenderdash/main.go @@ -6,12 +6,12 @@ import ( "io" "os" - "github.com/tendermint/tendermint/cmd/tenderdash/commands" - "github.com/tendermint/tendermint/cmd/tenderdash/commands/debug" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/cli" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/node" + "github.com/dashpay/tenderdash/cmd/tenderdash/commands" + "github.com/dashpay/tenderdash/cmd/tenderdash/commands/debug" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/cli" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/node" ) func main() { diff --git a/config/config.go b/config/config.go index 103f50bfc..985236ace 100644 --- a/config/config.go +++ b/config/config.go @@ -13,10 +13,10 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + "github.com/dashpay/tenderdash/types" ) const ( @@ -911,7 +911,7 @@ type StateSyncConfig struct { ChunkRequestTimeout time.Duration `mapstructure:"chunk-request-timeout"` // The number of concurrent chunk and block fetchers to run (default: 4). - Fetchers int32 `mapstructure:"fetchers"` + Fetchers int `mapstructure:"fetchers"` } func (cfg *StateSyncConfig) TrustHashBytes() []byte { diff --git a/config/db.go b/config/db.go index bbc286944..19874b1da 100644 --- a/config/db.go +++ b/config/db.go @@ -5,8 +5,8 @@ import ( dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) // ServiceProvider takes a config and a logger and returns a ready to go Node. diff --git a/config/toml.go b/config/toml.go index 954ec3752..d3e7aa2ec 100644 --- a/config/toml.go +++ b/config/toml.go @@ -9,9 +9,9 @@ import ( "strings" "text/template" - "github.com/tendermint/tendermint/internal/test/factory" - tmos "github.com/tendermint/tendermint/libs/os" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/internal/test/factory" + tmos "github.com/dashpay/tenderdash/libs/os" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) // defaultDirPerm is the default permissions used when creating directories. @@ -641,7 +641,7 @@ func writeFile(filePath string, contents []byte, mode os.FileMode) error { } const testGenesisFmt = `{ - "genesis_time": "2018-10-10T08:20:13.695936996Z", + "genesis_time": "2018-10-10T08:20:13.695Z", "chain_id": "%s", "initial_height": "1", "initial_core_chain_locked_height": 1, diff --git a/crypto/batch/batch.go b/crypto/batch/batch.go index 465aeffef..cdbf535bb 100644 --- a/crypto/batch/batch.go +++ b/crypto/batch/batch.go @@ -1,8 +1,8 @@ package batch import ( - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" ) // CreateBatchVerifier checks if a key type implements the batch verifier interface. diff --git a/crypto/bls12381/bench_test.go b/crypto/bls12381/bench_test.go index 4544aa537..46fbf0809 100644 --- a/crypto/bls12381/bench_test.go +++ b/crypto/bls12381/bench_test.go @@ -4,8 +4,8 @@ import ( "io" "testing" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/internal/benchmarking" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/internal/benchmarking" ) func BenchmarkKeyGeneration(b *testing.B) { diff --git a/crypto/bls12381/bls12381.go b/crypto/bls12381/bls12381.go index b09cd837c..f9bb042dd 100644 --- a/crypto/bls12381/bls12381.go +++ b/crypto/bls12381/bls12381.go @@ -10,10 +10,10 @@ import ( "io" bls "github.com/dashpay/bls-signatures/go-bindings" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) //------------------------------------- diff --git a/crypto/bls12381/bls12381_test.go b/crypto/bls12381/bls12381_test.go index 14d9eae58..8a05069ba 100644 --- a/crypto/bls12381/bls12381_test.go +++ b/crypto/bls12381/bls12381_test.go @@ -9,8 +9,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) func TestSignAndValidateBLS12381(t *testing.T) { diff --git a/crypto/crypto.go b/crypto/crypto.go index c7631cd93..48a51193b 100644 --- a/crypto/crypto.go +++ b/crypto/crypto.go @@ -9,8 +9,8 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/internal/jsontypes" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) const ( @@ -205,7 +205,7 @@ type HexStringer interface { } // BatchVerifier If a new key type implements batch verification, -// the key type must be registered in github.com/tendermint/tendermint/crypto/batch +// the key type must be registered in github.com/dashpay/tenderdash/crypto/batch type BatchVerifier interface { // Add appends an entry into the BatchVerifier. Add(key PubKey, message, signature []byte) error diff --git a/crypto/ed25519/bench_test.go b/crypto/ed25519/bench_test.go index 49fcd1504..ece351875 100644 --- a/crypto/ed25519/bench_test.go +++ b/crypto/ed25519/bench_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/internal/benchmarking" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/internal/benchmarking" ) func BenchmarkKeyGeneration(b *testing.B) { diff --git a/crypto/ed25519/ed25519.go b/crypto/ed25519/ed25519.go index d865a3850..9e45e9897 100644 --- a/crypto/ed25519/ed25519.go +++ b/crypto/ed25519/ed25519.go @@ -15,8 +15,8 @@ import ( "github.com/oasisprotocol/curve25519-voi/primitives/ed25519" "github.com/oasisprotocol/curve25519-voi/primitives/ed25519/extra/cache" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/jsontypes" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/jsontypes" ) //------------------------------------- diff --git a/crypto/ed25519/ed25519_test.go b/crypto/ed25519/ed25519_test.go index 4aa107dcb..a854059cc 100644 --- a/crypto/ed25519/ed25519_test.go +++ b/crypto/ed25519/ed25519_test.go @@ -10,9 +10,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) func TestSignAndValidateEd25519(t *testing.T) { diff --git a/crypto/encoding/codec.go b/crypto/encoding/codec.go index 8ca540ecd..9d6cabd86 100644 --- a/crypto/encoding/codec.go +++ b/crypto/encoding/codec.go @@ -3,13 +3,12 @@ package encoding import ( "fmt" - "github.com/tendermint/tendermint/crypto/bls12381" - - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/crypto/secp256k1" - "github.com/tendermint/tendermint/internal/jsontypes" - cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/secp256k1" + "github.com/dashpay/tenderdash/internal/jsontypes" + cryptoproto "github.com/dashpay/tenderdash/proto/tendermint/crypto" ) func init() { diff --git a/crypto/internal/benchmarking/bench.go b/crypto/internal/benchmarking/bench.go index aae0720f5..37e6f2338 100644 --- a/crypto/internal/benchmarking/bench.go +++ b/crypto/internal/benchmarking/bench.go @@ -4,7 +4,7 @@ import ( "io" "testing" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) // The code in this file is adapted from agl/ed25519. diff --git a/crypto/merkle/hash.go b/crypto/merkle/hash.go index 0bb5448d7..42deb46b7 100644 --- a/crypto/merkle/hash.go +++ b/crypto/merkle/hash.go @@ -3,7 +3,7 @@ package merkle import ( "hash" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) // TODO: make these have a large predefined capacity diff --git a/crypto/merkle/proof.go b/crypto/merkle/proof.go index 226e24b9d..8dce4774b 100644 --- a/crypto/merkle/proof.go +++ b/crypto/merkle/proof.go @@ -5,8 +5,8 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/crypto" - tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" + tmcrypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" ) const ( diff --git a/crypto/merkle/proof_op.go b/crypto/merkle/proof_op.go index 038037cf5..bbdfe756b 100644 --- a/crypto/merkle/proof_op.go +++ b/crypto/merkle/proof_op.go @@ -5,7 +5,7 @@ import ( "errors" "fmt" - tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" + tmcrypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" ) //---------------------------------------- diff --git a/crypto/merkle/proof_test.go b/crypto/merkle/proof_test.go index 02866de93..5c6cddccf 100644 --- a/crypto/merkle/proof_test.go +++ b/crypto/merkle/proof_test.go @@ -10,8 +10,8 @@ import ( "github.com/stretchr/testify/require" goanimo "github.com/tendermint/go-amino" - "github.com/tendermint/tendermint/crypto" - tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" + tmcrypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" ) const ProofOpDomino = "test:domino" diff --git a/crypto/merkle/proof_value.go b/crypto/merkle/proof_value.go index 2379b8858..1d1aca2b8 100644 --- a/crypto/merkle/proof_value.go +++ b/crypto/merkle/proof_value.go @@ -5,7 +5,7 @@ import ( "crypto/sha256" "fmt" - tmcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" + tmcrypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" ) const ProofOpValue = "simple:v" diff --git a/crypto/merkle/rfc6962_test.go b/crypto/merkle/rfc6962_test.go index 443656c17..4e9dbaf4e 100644 --- a/crypto/merkle/rfc6962_test.go +++ b/crypto/merkle/rfc6962_test.go @@ -20,7 +20,7 @@ import ( "encoding/hex" "testing" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) func TestRFC6962Hasher(t *testing.T) { diff --git a/crypto/merkle/tree_test.go b/crypto/merkle/tree_test.go index 72b260178..384749c6a 100644 --- a/crypto/merkle/tree_test.go +++ b/crypto/merkle/tree_test.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - ctest "github.com/tendermint/tendermint/internal/libs/test" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/crypto" + ctest "github.com/dashpay/tenderdash/internal/libs/test" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) type testItem []byte diff --git a/crypto/random_test.go b/crypto/random_test.go index 34f7372fe..67b6af3f3 100644 --- a/crypto/random_test.go +++ b/crypto/random_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) // the purpose of this test is primarily to ensure that the randomness diff --git a/crypto/secp256k1/secp256k1.go b/crypto/secp256k1/secp256k1.go index 165547202..1827a126f 100644 --- a/crypto/secp256k1/secp256k1.go +++ b/crypto/secp256k1/secp256k1.go @@ -13,8 +13,8 @@ import ( secp256k1 "github.com/btcsuite/btcd/btcec" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/jsontypes" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/jsontypes" // necessary for Bitcoin address format "golang.org/x/crypto/ripemd160" //nolint:staticcheck diff --git a/crypto/secp256k1/secp256k1_test.go b/crypto/secp256k1/secp256k1_test.go index 6cd53704c..0ee45013f 100644 --- a/crypto/secp256k1/secp256k1_test.go +++ b/crypto/secp256k1/secp256k1_test.go @@ -10,8 +10,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/secp256k1" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/secp256k1" ) type keyData struct { diff --git a/dash/context.go b/dash/context.go index 7547a29ba..370a65136 100644 --- a/dash/context.go +++ b/dash/context.go @@ -4,7 +4,7 @@ import ( "context" "errors" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) type contextKey string diff --git a/dash/core/client.go b/dash/core/client.go index b3cd0f051..9752be717 100644 --- a/dash/core/client.go +++ b/dash/core/client.go @@ -1,18 +1,23 @@ +//go:generate ../../scripts/mockery_generate.sh Client + package core import ( "fmt" + "time" "github.com/dashpay/dashd-go/btcjson" rpc "github.com/dashpay/dashd-go/rpcclient" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" ) const ModuleName = "rpcclient" +var sleep = time.Sleep + // QuorumVerifier represents subset of priv validator features that // allows verification of threshold signatures. type QuorumVerifier interface { @@ -220,3 +225,26 @@ func (rpcClient *RPCClient) QuorumVerify( return resp, err } + +// WaitForMNReady waits until the masternode is ready +func WaitForMNReady(client Client, retryTimeout time.Duration) error { + for { + result, err := client.MasternodeStatus() + if err != nil { + return fmt.Errorf("failed to get masternode status: %w", err) + } + switch result.State { + case btcjson.MNStatusStateReady: + return nil + case btcjson.MNStatusStateWaitingForProtx: + sleep(retryTimeout) + case btcjson.MNStatusStatePoseBanned, + btcjson.MNStatusStateRemoved, + btcjson.MNStatusStateOperatorKeyChanged, + btcjson.MNStatusStateProtxIpChanged, + btcjson.MNStatusStateError, + btcjson.MNStatusStateUnknown: + return fmt.Errorf("unexpected masternode state %s", result.State) + } + } +} diff --git a/dash/core/client_test.go b/dash/core/client_test.go new file mode 100644 index 000000000..9768a9b41 --- /dev/null +++ b/dash/core/client_test.go @@ -0,0 +1,94 @@ +package core + +import ( + "errors" + "fmt" + "testing" + "time" + + "github.com/dashpay/dashd-go/btcjson" + "github.com/stretchr/testify/require" + + "github.com/dashpay/tenderdash/dash/core/mocks" +) + +func TestWaitForMNReady(t *testing.T) { + retryTimeout := 1 * time.Millisecond + sleep = func(d time.Duration) { + require.Equal(t, d, retryTimeout) + } + defer func() { sleep = time.Sleep }() + testCases := []struct { + states []btcjson.MNStatusState + wantErr string + }{ + { + states: []btcjson.MNStatusState{btcjson.MNStatusStateReady}, + }, + { + states: []btcjson.MNStatusState{ + btcjson.MNStatusStateWaitingForProtx, + btcjson.MNStatusStateReady, + }, + }, + { + states: []btcjson.MNStatusState{ + btcjson.MNStatusStateWaitingForProtx, + btcjson.MNStatusStateWaitingForProtx, + btcjson.MNStatusStateWaitingForProtx, + btcjson.MNStatusStateReady, + }, + }, + { + states: []btcjson.MNStatusState{btcjson.MNStatusStatePoseBanned}, + wantErr: string(btcjson.MNStatusStatePoseBanned), + }, + { + states: []btcjson.MNStatusState{btcjson.MNStatusStateRemoved}, + wantErr: string(btcjson.MNStatusStateRemoved), + }, + { + states: []btcjson.MNStatusState{btcjson.MNStatusStateOperatorKeyChanged}, + wantErr: string(btcjson.MNStatusStateOperatorKeyChanged), + }, + { + states: []btcjson.MNStatusState{btcjson.MNStatusStateProtxIpChanged}, + wantErr: string(btcjson.MNStatusStateProtxIpChanged), + }, + { + states: []btcjson.MNStatusState{btcjson.MNStatusStateError}, + wantErr: string(btcjson.MNStatusStateError), + }, + { + states: []btcjson.MNStatusState{btcjson.MNStatusStateUnknown}, + wantErr: string(btcjson.MNStatusStateUnknown), + }, + } + for i, tc := range testCases { + t.Run(fmt.Sprintf("%d", i), func(t *testing.T) { + client := mocks.NewClient(t) + for _, state := range tc.states { + client. + On("MasternodeStatus"). + Once(). + Return(&btcjson.MasternodeStatusResult{State: state}, nil) + } + err := WaitForMNReady(client, 1*time.Millisecond) + if tc.wantErr != "" { + require.ErrorContains(t, err, tc.wantErr) + } else { + require.NoError(t, err) + } + }) + } +} + +func TestWaitForMNReadyError(t *testing.T) { + err := errors.New("some error") + client := mocks.NewClient(t) + client. + On("MasternodeStatus"). + Once(). + Return(nil, err) + require.ErrorContains(t, WaitForMNReady(client, 1), err.Error()) +} diff --git a/dash/core/mock.go b/dash/core/mock.go index 0adb1c809..e396f646a 100644 --- a/dash/core/mock.go +++ b/dash/core/mock.go @@ -8,9 +8,9 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // MockClient is an implementation of a mock core-server diff --git a/dash/core/mocks/client.go b/dash/core/mocks/client.go new file mode 100644 index 000000000..8f5b8e7ba --- /dev/null +++ b/dash/core/mocks/client.go @@ -0,0 +1,211 @@ +// Code generated by mockery. DO NOT EDIT. + +package mocks + +import ( + btcjson "github.com/dashpay/dashd-go/btcjson" + bytes "github.com/dashpay/tenderdash/libs/bytes" + + mock "github.com/stretchr/testify/mock" +) + +// Client is an autogenerated mock type for the Client type +type Client struct { + mock.Mock +} + +// Close provides a mock function with given fields: +func (_m *Client) Close() error { + ret := _m.Called() + + var r0 error + if rf, ok := ret.Get(0).(func() error); ok { + r0 = rf() + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// GetNetworkInfo provides a mock function with given fields: +func (_m *Client) GetNetworkInfo() (*btcjson.GetNetworkInfoResult, error) { + ret := _m.Called() + + var r0 *btcjson.GetNetworkInfoResult + var r1 error + if rf, ok := ret.Get(0).(func() (*btcjson.GetNetworkInfoResult, error)); ok { + return rf() + } + if rf, ok := ret.Get(0).(func() *btcjson.GetNetworkInfoResult); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*btcjson.GetNetworkInfoResult) + } + } + + if rf, ok := ret.Get(1).(func() error); ok { + r1 = rf() + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MasternodeListJSON provides a mock function with given fields: filter +func (_m *Client) MasternodeListJSON(filter string) (map[string]btcjson.MasternodelistResultJSON, error) { + ret := _m.Called(filter) + + var r0 map[string]btcjson.MasternodelistResultJSON + var r1 error + if rf, ok := ret.Get(0).(func(string) (map[string]btcjson.MasternodelistResultJSON, error)); ok { + return rf(filter) + } + if rf, ok := ret.Get(0).(func(string) map[string]btcjson.MasternodelistResultJSON); ok { + r0 = rf(filter) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(map[string]btcjson.MasternodelistResultJSON) + } + } + + if rf, ok := ret.Get(1).(func(string) error); ok { + r1 = rf(filter) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// MasternodeStatus provides a mock function with given fields: +func (_m *Client) MasternodeStatus() (*btcjson.MasternodeStatusResult, error) { + ret := _m.Called() + + var r0 *btcjson.MasternodeStatusResult + var r1 error + if rf, ok := ret.Get(0).(func() (*btcjson.MasternodeStatusResult, error)); ok { + return rf() + } + if rf, ok := ret.Get(0).(func() *btcjson.MasternodeStatusResult); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*btcjson.MasternodeStatusResult) + } + } + + if rf, ok := ret.Get(1).(func() error); ok { + r1 = rf() + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// Ping provides a mock function with given fields: +func (_m *Client) Ping() error { + ret := _m.Called() + + var r0 error + if rf, ok := ret.Get(0).(func() error); ok { + r0 = rf() + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// QuorumInfo provides a mock function with given fields: quorumType, quorumHash +func (_m *Client) QuorumInfo(quorumType btcjson.LLMQType, quorumHash bytes.HexBytes) (*btcjson.QuorumInfoResult, error) { + ret := _m.Called(quorumType, quorumHash) + + var r0 *btcjson.QuorumInfoResult + var r1 error + if rf, ok := ret.Get(0).(func(btcjson.LLMQType, bytes.HexBytes) (*btcjson.QuorumInfoResult, error)); ok { + return rf(quorumType, quorumHash) + } + if rf, ok := ret.Get(0).(func(btcjson.LLMQType, bytes.HexBytes) *btcjson.QuorumInfoResult); ok { + r0 = rf(quorumType, quorumHash) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*btcjson.QuorumInfoResult) + } + } + + if rf, ok := ret.Get(1).(func(btcjson.LLMQType, bytes.HexBytes) error); ok { + r1 = rf(quorumType, quorumHash) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// QuorumSign provides a mock function with given fields: quorumType, requestID, messageHash, quorumHash +func (_m *Client) QuorumSign(quorumType btcjson.LLMQType, requestID bytes.HexBytes, messageHash bytes.HexBytes, quorumHash bytes.HexBytes) (*btcjson.QuorumSignResult, error) { + ret := _m.Called(quorumType, requestID, messageHash, quorumHash) + + var r0 *btcjson.QuorumSignResult + var r1 error + if rf, ok := ret.Get(0).(func(btcjson.LLMQType, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes) (*btcjson.QuorumSignResult, error)); ok { + return rf(quorumType, requestID, messageHash, quorumHash) + } + if rf, ok := ret.Get(0).(func(btcjson.LLMQType, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes) *btcjson.QuorumSignResult); ok { + r0 = rf(quorumType, requestID, messageHash, quorumHash) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*btcjson.QuorumSignResult) + } + } + + if rf, ok := ret.Get(1).(func(btcjson.LLMQType, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes) error); ok { + r1 = rf(quorumType, requestID, messageHash, quorumHash) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// QuorumVerify provides a mock function with given fields: quorumType, requestID, messageHash, signature, quorumHash +func (_m *Client) QuorumVerify(quorumType btcjson.LLMQType, requestID bytes.HexBytes, messageHash bytes.HexBytes, signature bytes.HexBytes, quorumHash bytes.HexBytes) (bool, error) { + ret := _m.Called(quorumType, requestID, messageHash, signature, quorumHash) + + var r0 bool + var r1 error + if rf, ok := ret.Get(0).(func(btcjson.LLMQType, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes) (bool, error)); ok { + return rf(quorumType, requestID, messageHash, signature, quorumHash) + } + if rf, ok := ret.Get(0).(func(btcjson.LLMQType, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes) bool); ok { + r0 = rf(quorumType, requestID, messageHash, signature, quorumHash) + } else { + r0 = ret.Get(0).(bool) + } + + if rf, ok := ret.Get(1).(func(btcjson.LLMQType, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes, bytes.HexBytes) error); ok { + r1 = rf(quorumType, requestID, messageHash, signature, quorumHash) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// NewClient creates a new instance of Client. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewClient(t interface { + mock.TestingT + Cleanup(func()) +}) *Client { + mock := &Client{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/dash/llmq/iter.go b/dash/llmq/iter.go index 042387975..e94d5d23a 100644 --- a/dash/llmq/iter.go +++ b/dash/llmq/iter.go @@ -1,6 +1,6 @@ package llmq -import "github.com/tendermint/tendermint/crypto" +import "github.com/dashpay/tenderdash/crypto" // Iter creates and returns LLMQ iterator func (l *Data) Iter() *Iter { diff --git a/dash/llmq/llmq.go b/dash/llmq/llmq.go index 13fb0813a..19ee0ec23 100644 --- a/dash/llmq/llmq.go +++ b/dash/llmq/llmq.go @@ -11,8 +11,8 @@ import ( bls "github.com/dashpay/bls-signatures/go-bindings" "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" ) var ( diff --git a/dash/llmq/llmq_test.go b/dash/llmq/llmq_test.go index c84c7f5e8..25827eea1 100644 --- a/dash/llmq/llmq_test.go +++ b/dash/llmq/llmq_test.go @@ -9,8 +9,9 @@ import ( bls "github.com/dashpay/bls-signatures/go-bindings" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" + + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" ) const defaultSeedSource = 999 diff --git a/dash/quorum/mock/dash_dialer.go b/dash/quorum/mock/dash_dialer.go index 4c8ca2d49..9a94ea73b 100644 --- a/dash/quorum/mock/dash_dialer.go +++ b/dash/quorum/mock/dash_dialer.go @@ -6,8 +6,8 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/dash/quorum/mock/test_helpers.go b/dash/quorum/mock/test_helpers.go index ee9e2aab0..0710d32ab 100644 --- a/dash/quorum/mock/test_helpers.go +++ b/dash/quorum/mock/test_helpers.go @@ -6,10 +6,10 @@ import ( "fmt" "math" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // NewNodeAddress generates a string that is accepted as validator address. diff --git a/dash/quorum/nodeid_resolver.go b/dash/quorum/nodeid_resolver.go index e9ad71445..a86954e90 100644 --- a/dash/quorum/nodeid_resolver.go +++ b/dash/quorum/nodeid_resolver.go @@ -5,9 +5,9 @@ import ( "net" "time" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/conn" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/conn" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/dash/quorum/nodeid_resolver_test.go b/dash/quorum/nodeid_resolver_test.go index 49d1d9a64..287d93f07 100644 --- a/dash/quorum/nodeid_resolver_test.go +++ b/dash/quorum/nodeid_resolver_test.go @@ -7,8 +7,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/types" + + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/types" ) // TestNewValidator checks if new validator can be created with some validator address, and then the address can be diff --git a/dash/quorum/selectpeers/dip6.go b/dash/quorum/selectpeers/dip6.go index 2999bc732..01a0b8ff1 100644 --- a/dash/quorum/selectpeers/dip6.go +++ b/dash/quorum/selectpeers/dip6.go @@ -6,8 +6,8 @@ import ( "fmt" "math" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // minValidators is a minimum number of validators needed in order to execute the selection diff --git a/dash/quorum/selectpeers/dip6_test.go b/dash/quorum/selectpeers/dip6_test.go index 791ae2605..2491eb3e0 100644 --- a/dash/quorum/selectpeers/dip6_test.go +++ b/dash/quorum/selectpeers/dip6_test.go @@ -5,9 +5,10 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/dash/quorum/mock" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + + "github.com/dashpay/tenderdash/dash/quorum/mock" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/dash/quorum/selectpeers/sortable_validator.go b/dash/quorum/selectpeers/sortable_validator.go index 35ff19f8f..602a91830 100644 --- a/dash/quorum/selectpeers/sortable_validator.go +++ b/dash/quorum/selectpeers/sortable_validator.go @@ -3,9 +3,9 @@ package selectpeers import ( "bytes" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // sortableValidator is a `types.Validator` which can generate SortKey(), as specified in DIP-6 diff --git a/dash/quorum/selectpeers/sortable_validator_test.go b/dash/quorum/selectpeers/sortable_validator_test.go index 943154b50..108d6134c 100644 --- a/dash/quorum/selectpeers/sortable_validator_test.go +++ b/dash/quorum/selectpeers/sortable_validator_test.go @@ -4,10 +4,11 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/quorum/mock" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/quorum/mock" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // Test_sortableValidator_SortKey checks if the sortableValidatorList.Index() works correctly diff --git a/dash/quorum/selectpeers/sorted_validator_list.go b/dash/quorum/selectpeers/sorted_validator_list.go index 5bdfb6a8b..09455d3f1 100644 --- a/dash/quorum/selectpeers/sorted_validator_list.go +++ b/dash/quorum/selectpeers/sorted_validator_list.go @@ -4,8 +4,8 @@ import ( "bytes" "sort" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // sortedValidatorList is a list of sortableValidators that are sorted by `sortableValidator.SortKey()` diff --git a/dash/quorum/selectpeers/sorted_validator_list_test.go b/dash/quorum/selectpeers/sorted_validator_list_test.go index 36e90d6e5..972efc557 100644 --- a/dash/quorum/selectpeers/sorted_validator_list_test.go +++ b/dash/quorum/selectpeers/sorted_validator_list_test.go @@ -4,7 +4,8 @@ import ( "testing" "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/dash/quorum/mock" + + "github.com/dashpay/tenderdash/dash/quorum/mock" ) // Test_sortableValidatorList_Index checks if the sortableValidatorList.Index() works correctly diff --git a/dash/quorum/selectpeers/validatorselector.go b/dash/quorum/selectpeers/validatorselector.go index a0887d039..f83f19eab 100644 --- a/dash/quorum/selectpeers/validatorselector.go +++ b/dash/quorum/selectpeers/validatorselector.go @@ -1,6 +1,6 @@ package selectpeers -import "github.com/tendermint/tendermint/types" +import "github.com/dashpay/tenderdash/types" // ValidatorSelector represents an algorithm that chooses some validators from provided list type ValidatorSelector interface { diff --git a/dash/quorum/utils.go b/dash/quorum/utils.go index 35cee87d8..21f7a46ee 100644 --- a/dash/quorum/utils.go +++ b/dash/quorum/utils.go @@ -1,8 +1,8 @@ package quorum import ( - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/types" ) // nodeAddress converts ValidatorAddress to a NodeAddress object diff --git a/dash/quorum/validator_conn_executor.go b/dash/quorum/validator_conn_executor.go index 4c54a4393..ffad0b475 100644 --- a/dash/quorum/validator_conn_executor.go +++ b/dash/quorum/validator_conn_executor.go @@ -10,15 +10,15 @@ import ( "github.com/hashicorp/go-multierror" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/quorum/selectpeers" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/p2p" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/quorum/selectpeers" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/p2p" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/dash/quorum/validator_conn_executor_test.go b/dash/quorum/validator_conn_executor_test.go index 296646654..e5fb35705 100644 --- a/dash/quorum/validator_conn_executor_test.go +++ b/dash/quorum/validator_conn_executor_test.go @@ -11,23 +11,23 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/dash/quorum/mock" - "github.com/tendermint/tendermint/dash/quorum/selectpeers" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool/mocks" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/dash/quorum/mock" + "github.com/dashpay/tenderdash/dash/quorum/selectpeers" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool/mocks" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/dash/quorum/validator_map.go b/dash/quorum/validator_map.go index ca9d1da40..5ca682980 100644 --- a/dash/quorum/validator_map.go +++ b/dash/quorum/validator_map.go @@ -4,7 +4,7 @@ import ( "sort" "strings" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // validatorMapIndexType represents data that is used to index `validatorMap` elements diff --git a/dash/quorum/validator_map_test.go b/dash/quorum/validator_map_test.go index 76c196b8d..38a3debc4 100644 --- a/dash/quorum/validator_map_test.go +++ b/dash/quorum/validator_map_test.go @@ -3,9 +3,9 @@ package quorum import ( "testing" + "github.com/dashpay/tenderdash/dash/quorum/mock" + "github.com/dashpay/tenderdash/types" "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/dash/quorum/mock" - "github.com/tendermint/tendermint/types" ) func Test_validatorMap_String(t *testing.T) { diff --git a/docs/tendermint-core/using-tendermint.md b/docs/tendermint-core/using-tendermint.md index f4ee50c04..7627519eb 100644 --- a/docs/tendermint-core/using-tendermint.md +++ b/docs/tendermint-core/using-tendermint.md @@ -87,7 +87,7 @@ definition](https://github.com/tenderdash/tenderdash/blob/master/types/genesis.g ```json { - "genesis_time": "2020-04-21T11:17:42.341227868Z", + "genesis_time": "2020-04-21T11:17:42.341Z", "chain_id": "test-chain-ROp9KF", "initial_height": "0", "initial_core_chain_locked_height": 1, diff --git a/go.mod b/go.mod index 0fcaebb7f..e74beaf56 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/tendermint/tendermint +module github.com/dashpay/tenderdash go 1.19 @@ -9,7 +9,7 @@ require ( github.com/btcsuite/btcutil v1.0.3-0.20201208143702-a53e38424cce github.com/containerd/continuity v0.3.0 // indirect github.com/dashpay/bls-signatures/go-bindings v0.0.0-20230207105415-06df92693ac8 - github.com/dashpay/dashd-go v0.24.0 + github.com/dashpay/dashd-go v0.24.1 github.com/dashpay/dashd-go/btcec/v2 v2.1.0 // indirect github.com/fortytw2/leaktest v1.3.0 github.com/fxamacker/cbor/v2 v2.4.0 @@ -18,7 +18,7 @@ require ( github.com/gogo/protobuf v1.3.2 github.com/golang/protobuf v1.5.2 github.com/golang/snappy v0.0.4 // indirect - github.com/golangci/golangci-lint v1.47.2 + github.com/golangci/golangci-lint v1.48.0 github.com/google/btree v1.1.2 // indirect github.com/google/gopacket v1.1.19 github.com/google/orderedcode v0.0.1 @@ -33,26 +33,26 @@ require ( github.com/ory/dockertest v3.3.5+incompatible github.com/prometheus/client_golang v1.13.0 github.com/rs/cors v1.8.2 - github.com/rs/zerolog v1.27.0 + github.com/rs/zerolog v1.29.0 github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa - github.com/spf13/cobra v1.5.0 - github.com/spf13/viper v1.13.0 - github.com/stretchr/testify v1.8.0 + github.com/spf13/cobra v1.6.1 + github.com/spf13/viper v1.15.0 + github.com/stretchr/testify v1.8.2 github.com/tendermint/tm-db v0.6.6 golang.org/x/crypto v0.1.0 - golang.org/x/net v0.1.0 - golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 - google.golang.org/grpc v1.49.0 + golang.org/x/net v0.8.0 + golang.org/x/sync v0.1.0 + google.golang.org/grpc v1.52.0 pgregory.net/rapid v0.4.8 ) require ( - github.com/bufbuild/buf v1.4.0 + github.com/bufbuild/buf v1.7.0 github.com/creachadair/atomicfile v0.2.6 github.com/creachadair/taskgroup v0.3.2 github.com/go-pkgz/jrpc v0.2.0 - github.com/google/go-cmp v0.5.8 - github.com/vektra/mockery/v2 v2.14.0 + github.com/google/go-cmp v0.5.9 + github.com/vektra/mockery/v2 v2.33.2 gotest.tools v2.2.0+incompatible ) @@ -60,19 +60,38 @@ require ( github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd // indirect github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 // indirect + github.com/bufbuild/connect-go v0.2.0 // indirect + github.com/chigopher/pathlib v0.15.0 // indirect + github.com/containerd/containerd v1.6.6 // indirect + github.com/containerd/typeurl v1.0.2 // indirect github.com/dashpay/dashd-go/btcutil v1.2.0 // indirect github.com/decred/dcrd/dcrec/secp256k1/v4 v4.1.0 // indirect github.com/didip/tollbooth/v6 v6.0.1 // indirect github.com/didip/tollbooth_chi v0.0.0-20200524181329-8b84cd7183d9 // indirect + github.com/docker/distribution v2.8.1+incompatible // indirect + github.com/docker/docker v20.10.17+incompatible // indirect + github.com/go-chi/chi/v5 v5.0.7 // indirect github.com/go-chi/render v1.0.1 // indirect + github.com/go-logr/logr v1.2.3 // indirect + github.com/go-logr/stdr v1.2.2 // indirect github.com/go-pkgz/expirable-cache v0.0.3 // indirect github.com/go-pkgz/rest v1.5.0 // indirect github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b // indirect - github.com/pelletier/go-toml/v2 v2.0.5 // indirect + github.com/iancoleman/strcase v0.2.0 // indirect + github.com/jinzhu/copier v0.3.5 // indirect + github.com/moby/buildkit v0.10.3 // indirect + github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 // indirect + github.com/morikuni/aec v1.0.0 // indirect + github.com/pelletier/go-toml/v2 v2.0.6 // indirect github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 // indirect + github.com/sashamelentyev/usestdlibvars v1.8.0 // indirect github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c // indirect - golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac // indirect - google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b // indirect + github.com/tendermint/tendermint v0.34.21 // indirect + go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.33.0 // indirect + go.opentelemetry.io/otel v1.8.0 // indirect + go.opentelemetry.io/otel/trace v1.8.0 // indirect + golang.org/x/time v0.1.0 // indirect + google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef // indirect ) require ( @@ -82,13 +101,13 @@ require ( github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/DataDog/zstd v1.4.1 // indirect github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 // indirect - github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 // indirect + github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 // indirect github.com/Masterminds/semver v1.5.0 // indirect github.com/Microsoft/go-winio v0.5.2 // indirect github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/OpenPeeDeeP/depguard v1.1.0 // indirect github.com/alexkohler/prealloc v1.0.0 // indirect - github.com/alingse/asasalint v0.0.10 // indirect + github.com/alingse/asasalint v0.0.11 // indirect github.com/ashanbrown/forbidigo v1.3.0 // indirect github.com/ashanbrown/makezero v1.1.1 // indirect github.com/beorn7/perks v1.0.1 // indirect @@ -104,7 +123,7 @@ require ( github.com/charithe/durationcheck v0.0.9 // indirect github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 // indirect github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect - github.com/daixiang0/gci v0.4.3 // indirect + github.com/daixiang0/gci v0.6.2 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/denis-tingaikin/go-header v0.4.3 // indirect github.com/dgraph-io/badger/v2 v2.2007.2 // indirect @@ -115,11 +134,10 @@ require ( github.com/dustin/go-humanize v1.0.0 // indirect github.com/esimonov/ifshort v1.0.4 // indirect github.com/ettle/strcase v0.1.1 // indirect - github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 // indirect github.com/fatih/color v1.13.0 // indirect github.com/fatih/structtag v1.2.0 // indirect github.com/firefart/nonamedreturns v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.5.4 // indirect + github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/fzipp/gocyclo v0.6.0 // indirect github.com/go-critic/go-critic v0.6.3 // indirect github.com/go-toolsmith/astcast v1.0.0 // indirect @@ -141,29 +159,28 @@ require ( github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 // indirect github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca // indirect github.com/golangci/misspell v0.3.5 // indirect - github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2 // indirect + github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 // indirect github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 // indirect github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 // indirect github.com/gostaticanalysis/analysisutil v0.7.1 // indirect github.com/gostaticanalysis/comment v1.4.2 // indirect github.com/gostaticanalysis/forcetypeassert v0.1.0 // indirect github.com/gostaticanalysis/nilerr v0.1.1 // indirect - github.com/gotestyourself/gotestyourself v2.2.0+incompatible // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 github.com/hashicorp/go-version v1.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/hexops/gotextdiff v1.0.3 // indirect - github.com/inconshreveable/mousetrap v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a // indirect github.com/jgautheron/goconst v1.5.1 // indirect github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f // indirect - github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753 // indirect + github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b // indirect github.com/jingyugao/rowserrcheck v1.1.1 // indirect github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af // indirect github.com/jmhodges/levigo v1.0.0 // indirect github.com/julz/importas v0.1.0 // indirect - github.com/kisielk/errcheck v1.6.1 // indirect + github.com/kisielk/errcheck v1.6.2 // indirect github.com/kisielk/gotool v1.0.0 // indirect github.com/klauspost/compress v1.15.10 // indirect github.com/klauspost/pgzip v1.2.5 // indirect @@ -174,11 +191,11 @@ require ( github.com/ldez/tagliatelle v0.3.1 // indirect github.com/leonklingele/grouper v1.1.0 // indirect github.com/lufeee/execinquery v1.2.1 // indirect - github.com/magiconair/properties v1.8.6 // indirect + github.com/magiconair/properties v1.8.7 // indirect github.com/maratori/testpackage v1.1.0 // indirect github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 // indirect - github.com/mattn/go-colorable v0.1.12 // indirect - github.com/mattn/go-isatty v0.0.16 // indirect + github.com/mattn/go-colorable v0.1.13 // indirect + github.com/mattn/go-isatty v0.0.17 // indirect github.com/mattn/go-runewidth v0.0.9 // indirect github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 // indirect github.com/mbilski/exhaustivestruct v1.2.0 // indirect @@ -192,9 +209,8 @@ require ( github.com/nishanths/predeclared v0.2.2 // indirect github.com/olekukonko/tablewriter v0.0.5 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/image-spec v1.0.2 // indirect + github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 // indirect github.com/opencontainers/runc v1.1.3 // indirect - github.com/pelletier/go-toml v1.9.5 // indirect github.com/phayes/checkstyle v0.0.0-20170904204023-bfd46e6a821d // indirect github.com/pkg/browser v0.0.0-20210911075715-681adbf594b8 // indirect github.com/pkg/errors v0.9.1 // indirect @@ -209,25 +225,25 @@ require ( github.com/quasilyte/regex/syntax v0.0.0-20200407221936-30656e2c4a95 // indirect github.com/quasilyte/stdinfo v0.0.0-20220114132959-f7386bf02567 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/ryancurrah/gomodguard v1.2.3 // indirect + github.com/ryancurrah/gomodguard v1.2.4 // indirect github.com/ryanrolds/sqlclosecheck v0.3.0 // indirect github.com/sanposhiho/wastedassign/v2 v2.0.6 // indirect github.com/securego/gosec/v2 v2.12.0 // indirect github.com/shazow/go-diff v0.0.0-20160112020656-b6b7b6733b8c // indirect - github.com/sirupsen/logrus v1.8.1 // indirect + github.com/sirupsen/logrus v1.9.0 // indirect github.com/sivchari/containedctx v1.0.2 // indirect - github.com/sivchari/nosnakecase v1.5.0 // indirect + github.com/sivchari/nosnakecase v1.7.0 // indirect github.com/sivchari/tenv v1.7.0 // indirect github.com/sonatard/noctx v0.0.1 // indirect github.com/sourcegraph/go-diff v0.6.1 // indirect - github.com/spf13/afero v1.8.2 // indirect + github.com/spf13/afero v1.9.3 // indirect github.com/spf13/cast v1.5.0 // indirect github.com/spf13/jwalterweatherman v1.1.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/ssgreg/nlreturn/v2 v2.2.1 // indirect github.com/stbenjam/no-sprintf-host-port v0.1.1 // indirect - github.com/stretchr/objx v0.4.0 // indirect - github.com/subosito/gotenv v1.4.1 // indirect + github.com/stretchr/objx v0.5.0 // indirect + github.com/subosito/gotenv v1.4.2 // indirect github.com/sylvia7788/contextcheck v1.0.4 // indirect github.com/tdakkota/asciicheck v0.1.1 // indirect github.com/tetafro/godot v1.4.11 // indirect @@ -240,23 +256,23 @@ require ( github.com/x448/float16 v0.8.4 // indirect github.com/yagipy/maintidx v1.0.0 // indirect github.com/yeya24/promlinter v0.2.0 // indirect - gitlab.com/bosi/decorder v0.2.2 // indirect + gitlab.com/bosi/decorder v0.2.3 // indirect go.etcd.io/bbolt v1.3.6 // indirect - go.opencensus.io v0.23.0 // indirect + go.opencensus.io v0.24.0 // indirect go.uber.org/atomic v1.10.0 // indirect go.uber.org/multierr v1.8.0 // indirect go.uber.org/zap v1.23.0 // indirect golang.org/x/exp/typeparams v0.0.0-20220613132600-b0d781184e0d // indirect - golang.org/x/mod v0.6.0 // indirect - golang.org/x/sys v0.1.0 // indirect - golang.org/x/term v0.1.0 - golang.org/x/text v0.4.0 // indirect - golang.org/x/tools v0.2.0 // indirect + golang.org/x/mod v0.9.0 // indirect + golang.org/x/sys v0.6.0 // indirect + golang.org/x/term v0.6.0 + golang.org/x/text v0.8.0 // indirect + golang.org/x/tools v0.7.0 // indirect google.golang.org/protobuf v1.28.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - honnef.co/go/tools v0.3.2 // indirect + honnef.co/go/tools v0.3.3 // indirect mvdan.cc/gofumpt v0.3.1 // indirect mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed // indirect mvdan.cc/lint v0.0.0-20170908181259-adc824a0674b // indirect @@ -273,5 +289,3 @@ require ( github.com/tyler-smith/go-bip39 v1.1.0 golang.org/x/exp v0.0.0-20230213192124-5e25df0256eb ) - -replace github.com/tendermint/tendermint => ./ diff --git a/go.sum b/go.sum index a8a10a935..535782197 100644 --- a/go.sum +++ b/go.sum @@ -21,12 +21,15 @@ cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHOb cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= +cloud.google.com/go v0.105.0 h1:DNtEKRBAAzeS4KyIory52wWHuClNaXJ5x1F7xa4q+5Y= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/compute v1.14.0 h1:hfm2+FfxVmnRlh6LpB7cg1ZNU+5edAHmW679JePztk0= +cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= @@ -59,8 +62,8 @@ github.com/DataDog/zstd v1.4.1 h1:3oxKN3wbHibqx897utPC2LTQU4J+IHWWJO+glkAkpFM= github.com/DataDog/zstd v1.4.1/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24 h1:sHglBQTwgx+rWPdisA5ynNEsoARbiCBOyGcJM4/OzsM= github.com/Djarvur/go-err113 v0.0.0-20210108212216-aea10b59be24/go.mod h1:4UJr5HIiMZrwgkSPdsjy2uOQExX/WEILpIrO9UPGuXs= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0 h1:V9xVvhKbLt7unNEGAruK1xXglyc668Pq3Xx0MNTNqpo= -github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.0/go.mod h1:n/vLeA7V+QY84iYAGwMkkUUp9ooeuftMEvaDrSVch+Q= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2 h1:DGdS4FlsdM6OkluXOhgkvwx05ZjD3Idm9WqtYnOmSuY= +github.com/GaijinEntertainment/go-exhaustruct/v2 v2.2.2/go.mod h1:xj0D2jwLdp6tOKLheyZCsfL0nz8DaicmJxSwj3VcHtY= github.com/Masterminds/goutils v1.1.0/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= @@ -86,8 +89,8 @@ github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRF github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alexkohler/prealloc v1.0.0 h1:Hbq0/3fJPQhNkN0dR95AVrr6R7tou91y0uHG5pOcUuw= github.com/alexkohler/prealloc v1.0.0/go.mod h1:VetnK3dIgFBBKmg0YnD9F9x6Icjd+9cvfHR56wJVlKE= -github.com/alingse/asasalint v0.0.10 h1:qqGPDTV0ff0tWHN/nnIlSdjlU/EwRPaUY4SfpE1rnms= -github.com/alingse/asasalint v0.0.10/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= +github.com/alingse/asasalint v0.0.11 h1:SFwnQXJ49Kx/1GghOFz1XGqHYKp21Kq1nHad/0WQRnw= +github.com/alingse/asasalint v0.0.11/go.mod h1:nCaoMhw7a9kSJObvQyVzNTPBDbNpdocqrSP7t/cW5+I= github.com/antihax/optional v0.0.0-20180407024304-ca021399b1a6/go.mod h1:V8iCPQYkqmusNa815XgQio277wI47sdRh1dUOLdyC6Q= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/aokoli/goutils v1.0.1/go.mod h1:SijmP0QR8LtwsmDs8Yii5Z/S4trXFGFC2oO5g9DP+DQ= @@ -131,8 +134,10 @@ github.com/btcsuite/snappy-go v0.0.0-20151229074030-0bdef8d06723/go.mod h1:8woku github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc= github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY= github.com/btcsuite/winsvc v1.0.0/go.mod h1:jsenWakMcC0zFBFurPLEAyrnc/teJEM1O46fmI40EZs= -github.com/bufbuild/buf v1.4.0 h1:GqE3a8CMmcFvWPzuY3Mahf9Kf3S9XgZ/ORpfYFzO+90= -github.com/bufbuild/buf v1.4.0/go.mod h1:mwHG7klTHnX+rM/ym8LXGl7vYpVmnwT96xWoRB4H5QI= +github.com/bufbuild/buf v1.7.0 h1:uWRjhIXcrWkzIkA5TqXGyJbF51VW54QJsQZ3nwaes5Q= +github.com/bufbuild/buf v1.7.0/go.mod h1:Go40fMAF46PnPLC7jJgTQhAI95pmC0+VtxFKVC0qLq0= +github.com/bufbuild/connect-go v0.2.0 h1:WuMI/jLiJIhysHWvLWlxRozV67mGjCOUuDSl/lkDVic= +github.com/bufbuild/connect-go v0.2.0/go.mod h1:4efZ2eXFENwd4p7tuLaL9m0qtTsCOzuBvrohvRGevDM= github.com/butuzov/ireturn v0.1.1 h1:QvrO2QF2+/Cx1WA/vETCIYBKtRjc30vesdoPUNo1EbY= github.com/butuzov/ireturn v0.1.1/go.mod h1:Wh6Zl3IMtTpaIKbmwzqi6olnM9ptYQxxVacMsOEFPoc= github.com/cenkalti/backoff v2.2.1+incompatible h1:tNowT99t7UNflLxfYYSlKYsBpXdEet03Pg2g16Swow4= @@ -149,6 +154,8 @@ github.com/charithe/durationcheck v0.0.9/go.mod h1:SSbRIBVfMjCi/kEB6K65XEA83D6pr github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4 h1:tFXjAxje9thrTF4h57Ckik+scJjTWdwAtZqZPtOT48M= github.com/chavacava/garif v0.0.0-20220316182200-5cad0b5181d4/go.mod h1:W8EnPSQ8Nv4fUjc/v1/8tHFqhuOJXnRub0dTfuAQktU= github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= +github.com/chigopher/pathlib v0.15.0 h1:1pg96WL3iC1/YyWV4UJSl3E0GBf4B+h5amBtsbAAieY= +github.com/chigopher/pathlib v0.15.0/go.mod h1:3+YPPV21mU9vyw8Mjp+F33CyCfE6iOzinpiqBcccv7I= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= @@ -163,8 +170,12 @@ github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWH github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/containerd/containerd v1.6.6 h1:xJNPhbrmz8xAMDNoVjHy9YHtWwEQNS+CDkcIRh7t8Y0= +github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0= github.com/containerd/continuity v0.3.0 h1:nisirsYROK15TAMVukJOUyGJjz4BNQJBVsNvAXZJ/eg= github.com/containerd/continuity v0.3.0/go.mod h1:wJEAIwKOm/pBZuBd0JmeTvnLquTB1Ag8espWhkykbPM= +github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= +github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= @@ -188,13 +199,15 @@ github.com/creachadair/tomledit v0.0.23 h1:ohYJjMsxwzj4dDzKaBWFbWH5J+3LO/8CYnlVY github.com/creachadair/tomledit v0.0.23/go.mod h1:cIu/4x5L855oSRejIqr+WRFh+mv9g4fWLiUFaApYn/Y= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/creack/pty v1.1.11 h1:07n33Z8lZxZ2qwegKbObQohDhXDQxiMMz1NOUGYlesw= +github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= -github.com/daixiang0/gci v0.4.3 h1:wf7x0xRjQqTlA2dzHTI0A/xPyp7VcBatBG9nwGatwbQ= -github.com/daixiang0/gci v0.4.3/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= +github.com/daixiang0/gci v0.6.2 h1:TXCP5RqjE/UupXO+p33MEhqdv7QxjKGw5MVkt9ATiMs= +github.com/daixiang0/gci v0.6.2/go.mod h1:EpVfrztufwVgQRXjnX4zuNinEpLj5OmMjtu/+MB0V0c= github.com/dashpay/bls-signatures/go-bindings v0.0.0-20230207105415-06df92693ac8 h1:v4K3CiDoFY1gjcWL/scRcwzyjBwh8TVG3ek8cWolK1g= github.com/dashpay/bls-signatures/go-bindings v0.0.0-20230207105415-06df92693ac8/go.mod h1:auvGS60NBZ+a21aCCQh366PdsjDvHinsCvl28VrYPu4= -github.com/dashpay/dashd-go v0.24.0 h1:doC8GW2/ygu5JPCvYHQLx6TNza0TPcCR5rXUUS9CxY8= -github.com/dashpay/dashd-go v0.24.0/go.mod h1:4yuk/laGME2RnQRTdqTbw87PhT+42hE1anLCnpkgls8= +github.com/dashpay/dashd-go v0.24.1 h1:w+F5pDt+fqud4QQM/O9sAJihbQ3oswO8DKOmDS/pcNw= +github.com/dashpay/dashd-go v0.24.1/go.mod h1:4yuk/laGME2RnQRTdqTbw87PhT+42hE1anLCnpkgls8= github.com/dashpay/dashd-go/btcec/v2 v2.1.0 h1:fXwlLf5H+TtgHxjGMU74NesKzk6NisjKMPF04pBcygk= github.com/dashpay/dashd-go/btcec/v2 v2.1.0/go.mod h1:1i8XtxdOmvK6mYEUCneVXTzFbrCUw3wq1u91j8gvsns= github.com/dashpay/dashd-go/btcutil v1.2.0 h1:YMq7L0V0au5bbphIhpsBBc+nfOZqU+gJ4pkgRZB7Eiw= @@ -223,7 +236,10 @@ github.com/didip/tollbooth/v6 v6.0.1/go.mod h1:j2pKs+JQ5PvU/K4jFnrnwntrmfUbYLJE5 github.com/didip/tollbooth_chi v0.0.0-20200524181329-8b84cd7183d9 h1:gTh8fKuI/yLqQtZEPlDX3ZGsiTPZIe0ADHsxXSbwO1I= github.com/didip/tollbooth_chi v0.0.0-20200524181329-8b84cd7183d9/go.mod h1:YWyIfq3y4ArRfWZ9XksmuusP+7Mad+T0iFZ0kv0XG/M= github.com/docker/cli v20.10.17+incompatible h1:eO2KS7ZFeov5UJeaDmIs1NFEDRf32PaqRpvoEkKBy5M= +github.com/docker/distribution v2.8.1+incompatible h1:Q50tZOPR6T/hjNsyc9g8/syEs6bk8XXApsHjKukMl68= +github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= github.com/docker/docker v20.10.17+incompatible h1:JYCuMrWaVNophQTOrMMoSwudOVEfcegoZZrleKc1xwE= +github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= @@ -247,7 +263,6 @@ github.com/ettle/strcase v0.1.1 h1:htFueZyVeE1XNnMEfbqp5r67qAN/4r6ya1ysq8Q+Zcw= github.com/ettle/strcase v0.1.1/go.mod h1:hzDLsPC7/lwKyBOywSHEP89nt2pDgdy+No1NBA9o9VY= github.com/facebookgo/ensure v0.0.0-20200202191622-63f1cf65ac4c h1:8ISkoahWXwZR41ois5lSJBSVw4D0OV19Ht/JSTzvSv0= github.com/facebookgo/stack v0.0.0-20160209184415-751773369052 h1:JWuenKqqX8nojtoVVWjGfOF9635RETekkoH6Cc9SX0A= -github.com/facebookgo/stack v0.0.0-20160209184415-751773369052/go.mod h1:UbMTZqLaRiH3MsBH8va0n7s1pQYcu3uTb8G4tygF4Zg= github.com/facebookgo/subset v0.0.0-20200203212716-c811ad88dec4 h1:7HZCaLC5+BZpmbhCOZJ293Lz68O7PYrF2EzeiFMwCLk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.10.0/go.mod h1:ELkj/draVOlAH/xkhN6mQ50Qd0MPOk5AAr3maGEBuJM= @@ -260,11 +275,11 @@ github.com/firefart/nonamedreturns v1.0.4/go.mod h1:TDhe/tjI1BXo48CmYbUduTV7BdIg github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= -github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= +github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI= -github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= github.com/fullstorydev/grpcurl v1.6.0/go.mod h1:ZQ+ayqbKMJNhzLmbpCiurTVlaK2M/3nqZCxaQ2Ze/sM= github.com/fxamacker/cbor/v2 v2.4.0 h1:ri0ArlOR+5XunOP8CRUowT0pSJOwhW098ZCUyskZD88= github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= @@ -274,6 +289,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME github.com/go-chi/chi v4.1.1+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= github.com/go-chi/chi v4.1.2+incompatible h1:fGFk2Gmi/YKXk0OmGfBh0WgmN3XB8lVnEyNz34tQRec= github.com/go-chi/chi v4.1.2+incompatible/go.mod h1:eB3wogJHnLi3x/kFX2A+IbTBlXxmMeXJVKy9tTv1XzQ= +github.com/go-chi/chi/v5 v5.0.7 h1:rDTPXLDHGATaeHvVlLcR4Qe0zftYethFucbjVQ1PxU8= +github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8= github.com/go-chi/render v1.0.1 h1:4/5tis2cKaNdnv9zFLfXzcquC9HbeZgCnxGnKrltBS8= github.com/go-chi/render v1.0.1/go.mod h1:pq4Rr7HbnsdaeHagklXub+p6Wd16Af5l9koip1OvJns= github.com/go-critic/go-critic v0.6.3 h1:abibh5XYBTASawfTQ0rA7dVtQT+6KzpGqb/J+DxRDaw= @@ -291,6 +308,11 @@ github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9 github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-pkgz/expirable-cache v0.0.3 h1:rTh6qNPp78z0bQE6HDhXBHUwqnV9i09Vm6dksJLXQDc= github.com/go-pkgz/expirable-cache v0.0.3/go.mod h1:+IauqN00R2FqNRLCLA+X5YljQJrwB179PfiAoMPlTlQ= github.com/go-pkgz/jrpc v0.2.0 h1:CLy/eZyekjraVrxZV18N2R1mYLMJ/nWrgdfyIOGPY/E= @@ -383,16 +405,16 @@ github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe h1:6RGUuS7EGotKx6 github.com/golangci/go-misc v0.0.0-20220329215616-d24fe342adfe/go.mod h1:gjqyPShc/m8pEMpk0a3SeagVb0kaqvhscv+i9jI5ZhQ= github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a h1:iR3fYXUjHCR97qWS8ch1y9zPNsgXThGwjKPrYfqMPks= github.com/golangci/gofmt v0.0.0-20190930125516-244bba706f1a/go.mod h1:9qCChq59u/eW8im404Q2WWTrnBUQKjpNYKMbU4M7EFU= -github.com/golangci/golangci-lint v1.47.2 h1:qvMDVv49Hrx3PSEXZ0bD/yhwSbhsOihQjFYCKieegIw= -github.com/golangci/golangci-lint v1.47.2/go.mod h1:lpS2pjBZtRyXewUcOY7yUL3K4KfpoWz072yRN8AuhHg= +github.com/golangci/golangci-lint v1.48.0 h1:hRiBNk9iRqdAKMa06ntfEiLyza1/3IE9rHLNJaek4a8= +github.com/golangci/golangci-lint v1.48.0/go.mod h1:5N+oxduCho+7yuccW69upg/O7cxjfR/d+IQeiNxGmKM= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0 h1:MfyDlzVjl1hoaPzPD4Gpb/QgoRfSBR0jdhwGyAWwMSA= github.com/golangci/lint-1 v0.0.0-20191013205115-297bf364a8e0/go.mod h1:66R6K6P6VWk9I95jvqGxkqJxVWGFy9XlDwLwVz1RCFg= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca h1:kNY3/svz5T29MYHubXix4aDDuE3RWHkPvopM/EDv/MA= github.com/golangci/maligned v0.0.0-20180506175553-b1d89398deca/go.mod h1:tvlJhZqDe4LMs4ZHD0oMUlt9G2LWuDGoisJTBzLMV9o= github.com/golangci/misspell v0.3.5 h1:pLzmVdl3VxTOncgzHcvLOKirdvcx/TydsClUQXTehjo= github.com/golangci/misspell v0.3.5/go.mod h1:dEbvlSfYbMQDtrpRMQU675gSDLDNa8sCPPChZ7PhiVA= -github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2 h1:SgM7GDZTxtTTQPU84heOxy34iG5Du7F2jcoZnvp+fXI= -github.com/golangci/revgrep v0.0.0-20210930125155-c22e5001d4f2/go.mod h1:LK+zW4MpyytAWQRz0M4xnzEk50lSvqDQKfx304apFkY= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6 h1:DIPQnGy2Gv2FSA4B/hh8Q7xx3B7AIDk3DAMeHclH1vQ= +github.com/golangci/revgrep v0.0.0-20220804021717-745bb2f7c2e6/go.mod h1:0AKcRCkMoKvUvlf89F6O7H2LYdhr1zBh736mBItOdRs= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4 h1:zwtduBRr5SSWhqsYNgcuWO2kFlpdOZbP0+yRjmvPGys= github.com/golangci/unconvert v0.0.0-20180507085042-28b1c447d1f4/go.mod h1:Izgrg8RkN3rCIMLGE9CyYmU9pY2Jer6DgANEnZ/L/cQ= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -413,11 +435,11 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v0.0.0-20170612174753-24818f796faf/go.mod h1:HP5RmnzzSNb993RKQDq4+1A4ia9nllfqcQFTQJedwGI= -github.com/google/gofuzz v1.0.0 h1:A8PeW59pxE9IoFRqBp37U+mSNaQoZ46F1f0f863XSXw= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= @@ -475,7 +497,6 @@ github.com/gostaticanalysis/nilerr v0.1.1/go.mod h1:wZYb6YI5YAxxq0i1+VJbY0s2YONW github.com/gostaticanalysis/testutil v0.3.1-0.20210208050101-bfb5c8eec0e4/go.mod h1:D+FIZ+7OahH3ePw/izIEeH5I06eKs1IKI4Xr64/Am3M= github.com/gostaticanalysis/testutil v0.4.0 h1:nhdCmubdmDF6VEatUNjgUZBJKWRqugoISdUv3PPQgHY= github.com/gotestyourself/gotestyourself v2.2.0+incompatible h1:AQwinXlbQR2HvPjQZOmDhRqsv5mZf+Jb1RnSLxcqZcI= -github.com/gotestyourself/gotestyourself v2.2.0+incompatible/go.mod h1:zZKM6oeNM8k+FRljX1mnzVYeS8wiGgQyvST1/GafPbY= github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-middleware v1.2.2/go.mod h1:EaizFBKfUKtMIF5iaDEhniwNedqGo9FuLFzppDr3uwI= @@ -504,13 +525,17 @@ github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSo github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= github.com/huandu/xstrings v1.0.0/go.mod h1:4qWG/gcEcfX4z/mBDHJ++3ReCw9ibxbsNJbcucJdbSo= github.com/huandu/xstrings v1.2.0/go.mod h1:DvyZB1rfVYsBIigL8HwpZgxHwXozlTgGqn63UyNX5k4= +github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0= +github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/imdario/mergo v0.3.4/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a h1:d4+I1YEKVmWZrgkt6jpXBnLgV2ZjO0YxEtLDdfIZfH4= github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a/go.mod h1:Zi/ZFkEqFHTm7qkjyNJjaWH4LQA9LQhGJyF0lTYGpxw= github.com/jessevdk/go-flags v0.0.0-20141203071132-1679536dcc89/go.mod h1:4FA24M0QyGHXBuZZK/XkWh8h0e1EYbRYJSGM75WSRxI= @@ -523,10 +548,12 @@ github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f h1:BNuUg9k2EiJm github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f/go.mod h1:qr2b5kx4HbFS7/g4uYO5qv9ei8303JMsC7ESbYiqr2Q= github.com/jhump/protoreflect v1.6.1/go.mod h1:RZQ/lnuN+zqeRVpQigTwO6o0AJUkxbnSnpuG7toUTG4= github.com/jhump/protoreflect v1.11.0/go.mod h1:U7aMIjN0NWq9swDP7xDdoMfRHb35uiuTd3Z9nFXJf5E= -github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753 h1:uFlcJKZPLQd7rmOY/RrvBuUaYmAFnlFHKLivhO6cOy8= -github.com/jhump/protoreflect v1.12.1-0.20220417024638-438db461d753/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= +github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b h1:izTof8BKh/nE1wrKOrloNA5q4odOarjf+Xpe+4qow98= +github.com/jhump/protoreflect v1.12.1-0.20220721211354-060cc04fc18b/go.mod h1:JytZfP5d0r8pVNLZvai7U/MCuTWITgrI4tTg7puQFKI= github.com/jingyugao/rowserrcheck v1.1.1 h1:zibz55j/MJtLsjP1OF4bSdgXxwL1b+Vn7Tjzq7gFzUs= github.com/jingyugao/rowserrcheck v1.1.1/go.mod h1:4yvlZSDb3IyDTUZJUmpZfm2Hwok+Dtp+nu2qOq+er9c= +github.com/jinzhu/copier v0.3.5 h1:GlvfUwHk62RokgqVNvYsku0TATCF7bAHVwEXoBh3iJg= +github.com/jinzhu/copier v0.3.5/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af h1:KA9BjwUk7KlCh6S9EAGWBt1oExIUv9WyNCiRz5amv48= github.com/jirfag/go-printf-func-name v0.0.0-20200119135958-7558a9eaa5af/go.mod h1:HEWGJkRDzjJY2sqdDwxccsGicWEf9BQOZsq2tV+xzM0= github.com/jmespath/go-jmespath v0.0.0-20180206201540-c2b33e8439af/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= @@ -557,8 +584,8 @@ github.com/k0kubun/colorstring v0.0.0-20150214042306-9440f1994b88/go.mod h1:3w7q github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/errcheck v1.6.1 h1:cErYo+J4SmEjdXZrVXGwLJCE2sB06s23LpkcyWNrT+s= -github.com/kisielk/errcheck v1.6.1/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= +github.com/kisielk/errcheck v1.6.2 h1:uGQ9xI8/pgc9iOoCe7kWQgRE6SBTrCGmTSf0LrEtY7c= +github.com/kisielk/errcheck v1.6.2/go.mod h1:nXw/i/MfnvRHqXa7XXmQMUB0oNFGuBrNI8d8NLy0LPw= github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4= @@ -602,8 +629,8 @@ github.com/libp2p/go-buffer-pool v0.1.0/go.mod h1:N+vh8gMqimBzdKkSMVuydVDq+UV5QT github.com/lufeee/execinquery v1.2.1 h1:hf0Ems4SHcUGBxpGN7Jz78z1ppVkP/837ZlETPCEtOM= github.com/lufeee/execinquery v1.2.1/go.mod h1:EC7DrEKView09ocscGHC+apXMIaorh4xqSxS/dy8SbM= github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= -github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= -github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= +github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= +github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= github.com/maratori/testpackage v1.1.0 h1:GJY4wlzQhuBusMF1oahQCBtUV/AQ/k69IZ68vxaac2Q= github.com/maratori/testpackage v1.1.0/go.mod h1:PeAhzU8qkCwdGEMTEupsHJNlQu2gZopMC6RjbhmHeDc= github.com/matoous/godox v0.0.0-20210227103229-6504466cf951 h1:pWxk9e//NbPwfxat7RXkts09K+dEBJWakUWwICVqYbA= @@ -614,15 +641,17 @@ github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaO github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.8/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= -github.com/mattn/go-colorable v0.1.12 h1:jF+Du6AlPIjs2BiUiQlKOX0rt3SujHxPnksPKZbaA40= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= +github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= -github.com/mattn/go-isatty v0.0.16 h1:bq3VjFmv/sOjHtdEhmkEV4x1AJtvUvOJ2PFAZ5+peKQ= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.4/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= @@ -649,8 +678,11 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.1/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/buildkit v0.10.3 h1:/dGykD8FW+H4p++q5+KqKEo6gAkYKyBQHdawdjVwVAU= +github.com/moby/buildkit v0.10.3/go.mod h1:jxeOuly98l9gWHai0Ojrbnczrk/rf+o9/JqNhY+UCSo= github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6 h1:dcztxKSvZ4Id8iPpHERQBbIJfabdt4wUm5qy3wOL2Zc= +github.com/moby/term v0.0.0-20210619224110-3f7ff695adc6/go.mod h1:E2VnQOmVuvZB6UYnnDB0qG5Nq/1tD9acaOpo6xmt0Kw= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= @@ -659,6 +691,8 @@ github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjY github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8= github.com/moricho/tparallel v0.2.1 h1:95FytivzT6rYzdJLdtfn6m1bfFJylOJK41+lgv/EHf4= github.com/moricho/tparallel v0.2.1/go.mod h1:fXEIZxG2vdfl0ZF8b42f5a78EhjjD5mX8qUplsoSU4k= +github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/mozilla/scribe v0.0.0-20180711195314-fb71baf557c1/go.mod h1:FIczTrinKo8VaLxe6PWTPEXRXDIHz2QAwiaBaP5/4a8= github.com/mozilla/tls-observatory v0.0.0-20210609171429-7bc42856d2e5/go.mod h1:FUqVoUPHSEdDR0MnFM3Dh8AU0pZHLXUD127SAJGER/s= github.com/mroth/weightedrand v0.4.1 h1:rHcbUBopmi/3x4nnrvwGJBhX9d0vk+KgoLUZeDP6YyI= @@ -709,8 +743,8 @@ github.com/onsi/gomega v1.19.0 h1:4ieX6qQjPP/BfC3mpsAtIGGlxTWPeA3Inl/7DtXw1tw= github.com/onsi/gomega v1.19.0/go.mod h1:LY+I3pBVzYsTBU1AnDwOSxaYi9WoWiqgwooUqq9yPro= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= -github.com/opencontainers/image-spec v1.0.2 h1:9yCKha/T5XdGtO0q9Q9a6T5NUCsTn/DrBg0D7ufOcFM= -github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799 h1:rc3tiVYb5z54aKaDfakKn0dDjIyPpTtszkjuMzyt7ec= +github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= github.com/opencontainers/runc v1.1.3 h1:vIXrkId+0/J2Ymu2m7VjGvbSlAId9XNRPhn2p4b+d8w= github.com/opencontainers/runc v1.1.3/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= @@ -726,10 +760,8 @@ github.com/otiai10/curr v1.0.0/go.mod h1:LskTG5wDwr8Rs+nNQ+1LlxRjAtTZZjtJW4rMXl6 github.com/otiai10/mint v1.3.0/go.mod h1:F5AjcsTsWUqX+Na9fpHb52P8pcRX2CI6A3ctIT91xUo= github.com/otiai10/mint v1.3.1/go.mod h1:/yxELlJQ0ufhjUwhshSj+wFjZ78CnZ48/1wtmBH1OTc= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= -github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pelletier/go-toml/v2 v2.0.5 h1:ipoSadvV8oGUjnUbMub59IDPPwfxF694nG/jwbMiyQg= -github.com/pelletier/go-toml/v2 v2.0.5/go.mod h1:OMHamSCAODeSsVrwwvcJOaoN0LIUIaFVNZzmWyNfXas= +github.com/pelletier/go-toml/v2 v2.0.6 h1:nrzqCb7j9cDFj2coyLNLaZuJTLjWjlaz6nvTvIwycIU= +github.com/pelletier/go-toml/v2 v2.0.6/go.mod h1:eumQOmlWiOPt5WriQQqoM5y18pDHwha2N+QD+EUNTek= github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5 h1:q2e307iGHPdTGp0hoxKjt1H5pDo6utceo3dQVK3I5XQ= github.com/petermattis/goid v0.0.0-20180202154549-b0b1615b78e5/go.mod h1:jvVRKCrJTQWu0XVbaOlby/2lO20uSCHEMzzplHXte1o= @@ -796,21 +828,23 @@ github.com/rogpeppe/go-internal v1.8.1 h1:geMPLpDpQOgVyCg5z5GoRwLHepNdb71NXb67XF github.com/rs/cors v1.7.0/go.mod h1:gFx+x8UowdsKA9AchylcLynDq+nNFfI8FkUZdN/jGCU= github.com/rs/cors v1.8.2 h1:KCooALfAYGs415Cwu5ABvv9n9509fSiG5SQJn/AQo4U= github.com/rs/cors v1.8.2/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xid v1.3.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.27.0 h1:1T7qCieN22GVc8S4Q2yuexzBb1EqjbgjSH9RohbMjKs= -github.com/rs/zerolog v1.27.0/go.mod h1:7frBqO0oezxmnO7GF86FY++uy8I0Tk/If5ni1G9Qc0U= +github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.29.0 h1:Zes4hju04hjbvkVkOhdl2HpZa+0PmVwigmo8XoORE5w= +github.com/rs/zerolog v1.29.0/go.mod h1:NILgTygv/Uej1ra5XxGf82ZFSLk58MFGAUS2o6usyD0= github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryancurrah/gomodguard v1.2.3 h1:ww2fsjqocGCAFamzvv/b8IsRduuHHeK2MHTcTxZTQX8= -github.com/ryancurrah/gomodguard v1.2.3/go.mod h1:rYbA/4Tg5c54mV1sv4sQTP5WOPBcoLtnBZ7/TEhXAbg= +github.com/ryancurrah/gomodguard v1.2.4 h1:CpMSDKan0LtNGGhPrvupAoLeObRFjND8/tU1rEOtBp4= +github.com/ryancurrah/gomodguard v1.2.4/go.mod h1:+Kem4VjWwvFpUJRJSwa16s1tBJe+vbv02+naTow2f6M= github.com/ryanrolds/sqlclosecheck v0.3.0 h1:AZx+Bixh8zdUBxUA1NxbxVAS78vTPq4rCb8OUZI9xFw= github.com/ryanrolds/sqlclosecheck v0.3.0/go.mod h1:1gREqxyTGR3lVtpngyFo3hZAgk0KCtEdgEkHwDbigdA= github.com/sanposhiho/wastedassign/v2 v2.0.6 h1:+6/hQIHKNJAUixEj6EmOngGIisyeI+T3335lYTyxRoA= github.com/sanposhiho/wastedassign/v2 v2.0.6/go.mod h1:KyZ0MWTwxxBmfwn33zh3k1dmsbF2ud9pAAGfoLfjhtI= github.com/sasha-s/go-deadlock v0.3.1 h1:sqv7fDNShgjcaxkO0JNcOAlr8B9+cV5Ey/OB71efZx0= github.com/sasha-s/go-deadlock v0.3.1/go.mod h1:F73l+cr82YSh10GxyRI6qZiCgK64VaZjwesgfQ1/iLM= +github.com/sashamelentyev/usestdlibvars v1.8.0 h1:QnWP9IOEuRyYKH+IG0LlQIjuJlc0rfdo4K3/Zh3WRMw= +github.com/sashamelentyev/usestdlibvars v1.8.0/go.mod h1:BFt7b5mSVHaaa26ZupiNRV2ODViQBxZZVhtAxAJRrjs= github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/securego/gosec/v2 v2.12.0 h1:CQWdW7ATFpvLSohMVsajscfyHJ5rsGmEXmsNcsDNmAg= github.com/securego/gosec/v2 v2.12.0/go.mod h1:iTpT+eKTw59bSgklBHlSnH5O2tNygHMDxfvMubA4i7I= @@ -824,12 +858,13 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= +github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/sivchari/containedctx v1.0.2 h1:0hLQKpgC53OVF1VT7CeoFHk9YKstur1XOgfYIc1yrHI= github.com/sivchari/containedctx v1.0.2/go.mod h1:PwZOeqm4/DLoJOqMSIJs3aKqXRX4YO+uXww087KZ7Bw= -github.com/sivchari/nosnakecase v1.5.0 h1:ZBvAu1H3uteN0KQ0IsLpIFOwYgPEhKLyv2ahrVkub6M= -github.com/sivchari/nosnakecase v1.5.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= +github.com/sivchari/nosnakecase v1.7.0 h1:7QkpWIRMe8x25gckkFd2A5Pi6Ymo0qgr4JrhGt95do8= +github.com/sivchari/nosnakecase v1.7.0/go.mod h1:CwDzrzPea40/GB6uynrNLiorAlgFRvRbFSgJx2Gs+QY= github.com/sivchari/tenv v1.7.0 h1:d4laZMBK6jpe5PWepxlV9S+LC0yXqvYHiq8E6ceoVVE= github.com/sivchari/tenv v1.7.0/go.mod h1:64yStXKSOxDfX47NlhVwND4dHwfZDdbp2Lyl018Icvg= github.com/snikch/goodman v0.0.0-20171125024755-10e37e294daa h1:YJfZp12Z3AFhSBeXOlv4BO55RMwPn2NoQeDsrdWnBtY= @@ -843,15 +878,15 @@ github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasO github.com/spaolacci/murmur3 v1.1.0 h1:7c1g84S4BPRrfL5Xrdp6fOJ206sU9y293DDHaoy0bLI= github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= -github.com/spf13/afero v1.8.2 h1:xehSyVa0YnHWsJ49JFljMpg1HX19V6NDZ1fkm1Xznbo= -github.com/spf13/afero v1.8.2/go.mod h1:CtAatgMJh6bJEIs48Ay/FOnkljP3WeGUG0MC1RfAqwo= +github.com/spf13/afero v1.9.3 h1:41FoI0fD7OR7mGcKE/aOiLkGreyf8ifIOQmJANWogMk= +github.com/spf13/afero v1.9.3/go.mod h1:iUV7ddyEEZPO5gA3zD4fJt6iStLlL+Lg4m2cihcDf8Y= github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cast v1.5.0 h1:rj3WzYc11XZaIZMPKmwP96zkFEnnAmV8s6XbB2aY32w= github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= -github.com/spf13/cobra v1.5.0 h1:X+jTBEBqF0bHN+9cSMgmfuvv2VHJ9ezmFNf9Y/XstYU= -github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/cobra v1.6.1 h1:o94oiPyS4KD1mPy2fmcYYHHfCxLqYjJOhGsCHFZtEzA= +github.com/spf13/cobra v1.6.1/go.mod h1:IOw/AERYS7UzyrGinqmz6HLUo219MORXGxhbaJUqzrY= github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= @@ -860,16 +895,17 @@ github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnIn github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= -github.com/spf13/viper v1.13.0 h1:BWSJ/M+f+3nmdz9bxB+bWX28kkALN2ok11D0rSo8EJU= -github.com/spf13/viper v1.13.0/go.mod h1:Icm2xNL3/8uyh/wFuB1jI7TiTNKp8632Nwegu+zgdYw= +github.com/spf13/viper v1.15.0 h1:js3yy885G8xwJa6iOISGFwd+qlUo5AvyXb7CiihdtiU= +github.com/spf13/viper v1.15.0/go.mod h1:fFcTBJxvhhzSJiZy8n+PeW6t8l+KeT/uTARa0jHOQLA= github.com/ssgreg/nlreturn/v2 v2.2.1 h1:X4XDI7jstt3ySqGU86YGAURbxw3oTDPK9sPEi6YEwQ0= github.com/ssgreg/nlreturn/v2 v2.2.1/go.mod h1:E/iiPB78hV7Szg2YfRgyIrk1AD6JVMTRkkxBiELzh2I= github.com/stbenjam/no-sprintf-host-port v0.1.1 h1:tYugd/yrm1O0dV+ThCbaKZh195Dfm07ysF0U6JQXczc= github.com/stbenjam/no-sprintf-host-port v0.1.1/go.mod h1:TLhvtIvONRzdmkFiio4O8LHsN9N74I+PhRquPsxpL0I= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0 h1:M2gUjqZET1qApGOWNSnZ49BAIMX4F/1plDv3+l31EJ4= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0 h1:1zr/of2m5FGMsad5YfcqgdqdWrIhu+EBEJRhR1U7z/c= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v0.0.0-20170130113145-4d4bfba8f1d1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.1.4/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= @@ -880,10 +916,12 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= -github.com/stretchr/testify v1.8.0 h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/subosito/gotenv v1.4.1 h1:jyEFiXpy21Wm81FBN71l9VoMMV8H8jG+qIK3GCpY6Qs= -github.com/subosito/gotenv v1.4.1/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= +github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= github.com/sylvia7788/contextcheck v1.0.4 h1:MsiVqROAdr0efZc/fOCt0c235qm9XJqHtWwM+2h2B04= github.com/sylvia7788/contextcheck v1.0.4/go.mod h1:vuPKJMQ7MQ91ZTqfdyreNKwZjyUg6KO+IebVyQDedZQ= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= @@ -895,6 +933,8 @@ github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c h1:g+WoO5jjkqGAzH github.com/tecbot/gorocksdb v0.0.0-20191217155057-f0fad39f321c/go.mod h1:ahpPrc7HpcfEWDQRZEmnXMzHY03mLDYMCxeDzy46i+8= github.com/tendermint/go-amino v0.16.0 h1:GyhmgQKvqF82e2oZeuMSp9JTN0N09emoSZlb2lyGa2E= github.com/tendermint/go-amino v0.16.0/go.mod h1:TQU0M1i/ImAo+tYpZi73AU3V/dKeCoMC9Sphe2ZwGME= +github.com/tendermint/tendermint v0.34.21 h1:UiGGnBFHVrZhoQVQ7EfwSOLuCtarqCSsRf8VrklqB7s= +github.com/tendermint/tendermint v0.34.21/go.mod h1:XDvfg6U7grcFTDx7VkzxnhazQ/bspGJAn4DZ6DcLLjQ= github.com/tendermint/tm-db v0.6.6 h1:EzhaOfR0bdKyATqcd5PNeyeq8r+V4bRPHBfyFdD9kGM= github.com/tendermint/tm-db v0.6.6/go.mod h1:wP8d49A85B7/erz/r4YbKssKw6ylsO/hKtFk7E1aWZI= github.com/tenntenn/modver v1.0.1 h1:2klLppGhDgzJrScMpkj9Ujy3rXPUspSjAcev9tSEBgA= @@ -924,8 +964,8 @@ github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijb github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/uudashr/gocognit v1.0.6 h1:2Cgi6MweCsdB6kpcVQp7EW4U23iBFQWfTXiWlyp842Y= github.com/uudashr/gocognit v1.0.6/go.mod h1:nAIUuVBnYU7pcninia3BHOvQkpQCeO76Uscky5BOwcY= -github.com/vektra/mockery/v2 v2.14.0 h1:KZ1p5Hrn8tiY+LErRMr14HHle6khxo+JKOXLBW/yfqs= -github.com/vektra/mockery/v2 v2.14.0/go.mod h1:bnD1T8tExSgPD1ripLkDbr60JA9VtQeu12P3wgLZd7M= +github.com/vektra/mockery/v2 v2.33.2 h1:znIUwQ3FxnA5jvPy8irYBoiIqMZhuOJhoPOJYNoTJqU= +github.com/vektra/mockery/v2 v2.33.2/go.mod h1:9lREs4VEeQiUS3rizYQx1saxHu2JiIhThP0q9+fDegM= github.com/viki-org/dnscache v0.0.0-20130720023526-c70c1f23c5d8/go.mod h1:dniwbG03GafCjFohMDmz6Zc6oCuiqgH6tGNyXTkHzXE= github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= @@ -950,8 +990,8 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -gitlab.com/bosi/decorder v0.2.2 h1:LRfb3lP6mZWjUzpMOCLTVjcnl/SqZWBWmKNqQvMocQs= -gitlab.com/bosi/decorder v0.2.2/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= +gitlab.com/bosi/decorder v0.2.3 h1:gX4/RgK16ijY8V+BRQHAySfQAb354T7/xQpDB2n10P0= +gitlab.com/bosi/decorder v0.2.3/go.mod h1:9K1RB5+VPNQYtXtTDAzd2OEftsZb1oV0IrJrzChSdGE= go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/bbolt v1.3.6 h1:/ecaJf0sk1l4l6V4awd65v2C3ILy7MSj+s/x1ADCIMU= @@ -964,8 +1004,14 @@ go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0 h1:gqCw0LfLxScz8irSi8exQc7fyQ0fKQU/qnC/X8+V/1M= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.33.0 h1:z6rnla1Asjzn0FrhohzIbDi4bxbtc6EMmQ7f5ZPn+pA= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.33.0/go.mod h1:y/SlJpJQPd2UzfBCj0E9Flk9FDCtTyqUmaCB41qFrWI= +go.opentelemetry.io/otel v1.8.0 h1:zcvBFizPbpa1q7FehvFiHbQwGzmPILebO0tyqIR5Djg= +go.opentelemetry.io/otel v1.8.0/go.mod h1:2pkj+iMj0o03Y+cW6/m8Y4WkRdYN3AvCXCnzRMp9yvM= +go.opentelemetry.io/otel/trace v1.8.0 h1:cSy0DF9eGI5WIfNwZ1q2iUyGj00tGzP24dE1lOlHrfY= +go.opentelemetry.io/otel/trace v1.8.0/go.mod h1:0Bt3PXY8w+3pheS3hQUt+wow8b1ojPaTBoTCh2zIFI4= go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= @@ -1044,8 +1090,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.6.0 h1:b9gGHsz9/HhJ3HF5DHQytPpuwocVTChQJK3AvoLRD5I= -golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= +golang.org/x/mod v0.9.0 h1:KENHtAZL2y3NLMYZeHY9DW8HW8V+kQyJsY/V9JlKvCs= +golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -1095,8 +1141,8 @@ golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= -golang.org/x/net v0.1.0 h1:hZ/3BUoy5aId7sCpA/Tc5lt8DkFgdVS2onTpJsZ/fl0= -golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -1108,6 +1154,7 @@ golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -1120,8 +1167,8 @@ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o= +golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -1200,16 +1247,17 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220319134239-a9b59b0215f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220328115105-d36c6a25d886/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220702020025-31831981b65f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.1.0 h1:g6Z6vPFA9dYBAF7DWcH6sCcOntplXsDKcliusYijMlw= -golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -1218,15 +1266,15 @@ golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.4.0 h1:BrVqGRd7+k1DiOgtnFvAkoQEWQvBc25ouMJM6429SFg= -golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= +golang.org/x/text v0.8.0 h1:57P1ETyNKtuIjB4SRd15iJxuhj8Gc416Y78H3qgMh68= +golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac h1:7zkz7BUtwNFFqcowJ+RIgu2MaV/MapERkDIy+mwPyjs= -golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.1.0 h1:xYY+Bajn2a7VBmTM5GikTmnK8ZuX8YgnQCqZpbBNtmA= +golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -1245,6 +1293,7 @@ golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBn golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20190910044552-dd2b5c81c578/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -1318,8 +1367,8 @@ golang.org/x/tools v0.1.9-0.20211228192929-ee1ca4ffc4da/go.mod h1:nABZi5QlRsZVlz golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E= golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4= -golang.org/x/tools v0.2.0 h1:G6AHpWxTMGY1KyEYoAQ5WTtIekUUvDNjan3ugu60JvE= -golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= +golang.org/x/tools v0.7.0 h1:W4OVu8VVOaIO0yzWMNdepAulS7YfoS3Zabrm8DOXXU4= +golang.org/x/tools v0.7.0/go.mod h1:4pg6aUX35JBAogB10C9AtvVL+qowtN4pT3CGSQex14s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1351,6 +1400,7 @@ google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww google.golang.org/appengine v1.6.2/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20170818010345-ee236bd376b0/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= @@ -1396,8 +1446,8 @@ google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b h1:SfSkJugek6xm7lWywqth4r2iTrYLpD8lOj1nMIIhMNM= -google.golang.org/genproto v0.0.0-20220725144611-272f38e5d71b/go.mod h1:iHe1svFLAZg9VWz891+QbRMwUv9O/1Ww+/mngYeThbc= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef h1:uQ2vjV/sHTsWSqdKeLqmwitzgvjMl7o4IdtHwUDXSJY= +google.golang.org/genproto v0.0.0-20221227171554-f9683d7f8bef/go.mod h1:RGgjbofJ8xD9Sq1VVhDM1Vok1vRONV+rg+CjzG4SZKM= google.golang.org/grpc v1.8.0/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -1422,8 +1472,8 @@ google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAG google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= -google.golang.org/grpc v1.49.0 h1:WTLtQzmQori5FUH25Pq4WT22oCsv8USpQ+F6rqtsmxw= -google.golang.org/grpc v1.49.0/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.52.0 h1:kd48UiU7EHsV4rnLyOJRuP/Il/UHE7gdDAQ+SZI7nZk= +google.golang.org/grpc v1.52.0/go.mod h1:pu6fVzoFb+NBYNAvQL08ic+lvB2IojljRYuun5vorUY= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= @@ -1475,6 +1525,8 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gotest.tools v2.2.0+incompatible h1:VsBPFP1AI068pPrMxtb/S8Zkgf9xEmTLJjfM+P5UIEo= gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3 h1:4AuOwCGf4lLR9u3YOe2awrHygurzhO/HeQ6laiA6Sx0= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= @@ -1482,8 +1534,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.3.2 h1:ytYb4rOqyp1TSa2EPvNVwtPQJctSELKaMyLfqNP4+34= -honnef.co/go/tools v0.3.2/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= +honnef.co/go/tools v0.3.3 h1:oDx7VAwstgpYpb3wv0oxiZlxY+foCpRAwY7Vk6XpAgA= +honnef.co/go/tools v0.3.3/go.mod h1:jzwdWgg7Jdq75wlfblQxO4neNaFFSvgc1tD5Wv8U0Yw= mvdan.cc/gofumpt v0.3.1 h1:avhhrOmv0IuvQVK7fvwV91oFSGAk5/6Po8GXTzICeu8= mvdan.cc/gofumpt v0.3.1/go.mod h1:w3ymliuxvzVx8DAutBnVyDqYb1Niy/yCJt/lk821YCE= mvdan.cc/interfacer v0.0.0-20180901003855-c20040233aed h1:WX1yoOaKQfddO/mLzdV4wptyWgoH/6hwLs7QHTixo0I= diff --git a/internal/blocksync/applier.go b/internal/blocksync/applier.go index 528efd8d5..1fe63d0de 100644 --- a/internal/blocksync/applier.go +++ b/internal/blocksync/applier.go @@ -6,10 +6,10 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/consensus" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/consensus" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type ( diff --git a/internal/blocksync/applier_test.go b/internal/blocksync/applier_test.go index 382a76f4d..a7f57b832 100644 --- a/internal/blocksync/applier_test.go +++ b/internal/blocksync/applier_test.go @@ -9,11 +9,11 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/state/mocks" - statefactory "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/test/factory" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/state/mocks" + statefactory "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/types" ) func TestBlockApplierApply(t *testing.T) { diff --git a/internal/blocksync/block_fetch_job.go b/internal/blocksync/block_fetch_job.go index 7c9a45559..9701f151d 100644 --- a/internal/blocksync/block_fetch_job.go +++ b/internal/blocksync/block_fetch_job.go @@ -6,10 +6,10 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/workerpool" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/workerpool" + "github.com/dashpay/tenderdash/types" ) type ( @@ -96,7 +96,7 @@ func (p *jobGenerator) nextJob(ctx context.Context) (*workerpool.Job, error) { if err != nil { return nil, err } - p.peerStore.PeerUpdate(peer.peerID, ResetMonitor(), AddNumPending(1)) + p.peerStore.Update(peer.peerID, ResetMonitor(), AddNumPending(1)) return workerpool.NewJob(blockFetchJobHandler(p.client, peer, height)), nil } diff --git a/internal/blocksync/block_fetch_job_test.go b/internal/blocksync/block_fetch_job_test.go index 123293ebd..16af32b27 100644 --- a/internal/blocksync/block_fetch_job_test.go +++ b/internal/blocksync/block_fetch_job_test.go @@ -10,16 +10,16 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/internal/p2p/client/mocks" - statefactory "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/test/factory" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/promise" - "github.com/tendermint/tendermint/libs/workerpool" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/internal/p2p/client/mocks" + statefactory "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/promise" + "github.com/dashpay/tenderdash/libs/workerpool" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/types" ) type BlockFetchJobTestSuite struct { @@ -102,7 +102,7 @@ func (suite *BlockFetchJobTestSuite) TestJobGeneratorNextJob() { logger := log.NewNopLogger() peerStore := NewInMemPeerStore() - peerStore.Put(suite.peer) + peerStore.Put(suite.peer.peerID, suite.peer) jobGen := newJobGenerator(5, logger, suite.client, peerStore) job, err := jobGen.nextJob(ctx) @@ -136,7 +136,7 @@ func (suite *BlockFetchJobTestSuite) TestGeneratorNextJobWaitForPeerAndPushBackH }() nextJobCh <- struct{}{} jobGen.pushBack(9) - peerStore.Put(suite.peer) + peerStore.Put(suite.peer.peerID, suite.peer) nextJobCh <- struct{}{} heightCheck := mock.MatchedBy(func(height int64) bool { return suite.Contains([]int64{5, 9}, height) diff --git a/internal/blocksync/mocks/block_client.go b/internal/blocksync/mocks/block_client.go index 9f4ef98e5..bdf95bee0 100644 --- a/internal/blocksync/mocks/block_client.go +++ b/internal/blocksync/mocks/block_client.go @@ -5,13 +5,11 @@ package mocks import ( context "context" - blocksync "github.com/tendermint/tendermint/proto/tendermint/blocksync" - mock "github.com/stretchr/testify/mock" - promise "github.com/tendermint/tendermint/libs/promise" - - types "github.com/tendermint/tendermint/types" + promise "github.com/dashpay/tenderdash/libs/promise" + blocksync "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + types "github.com/dashpay/tenderdash/types" ) // BlockClient is an autogenerated mock type for the BlockClient type diff --git a/internal/blocksync/msgs.go b/internal/blocksync/msgs.go index 9613dd2ba..d54174cc9 100644 --- a/internal/blocksync/msgs.go +++ b/internal/blocksync/msgs.go @@ -1,8 +1,8 @@ package blocksync import ( - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/blocksync/p2p_msg_handler.go b/internal/blocksync/p2p_msg_handler.go index eac2a603e..babb5966d 100644 --- a/internal/blocksync/p2p_msg_handler.go +++ b/internal/blocksync/p2p_msg_handler.go @@ -6,11 +6,11 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" ) type ( diff --git a/internal/blocksync/p2p_msg_handler_test.go b/internal/blocksync/p2p_msg_handler_test.go index 993a1ab5c..2e85d1c1e 100644 --- a/internal/blocksync/p2p_msg_handler_test.go +++ b/internal/blocksync/p2p_msg_handler_test.go @@ -10,15 +10,15 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - p2pmocks "github.com/tendermint/tendermint/internal/p2p/mocks" - "github.com/tendermint/tendermint/internal/state/mocks" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/libs/log" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + p2pmocks "github.com/dashpay/tenderdash/internal/p2p/mocks" + "github.com/dashpay/tenderdash/internal/state/mocks" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/libs/log" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/types" ) type BlockP2PMessageHandlerTestSuite struct { diff --git a/internal/blocksync/peer_store.go b/internal/blocksync/peer_store.go index 750352ffc..2ec26cbb1 100644 --- a/internal/blocksync/peer_store.go +++ b/internal/blocksync/peer_store.go @@ -7,20 +7,16 @@ import ( "golang.org/x/exp/constraints" - "github.com/tendermint/tendermint/internal/libs/flowrate" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/libs/flowrate" + "github.com/dashpay/tenderdash/libs/store" + "github.com/dashpay/tenderdash/types" ) type ( - // PeerQueryFunc is a function type for peer specification function - PeerQueryFunc func(peer PeerData) bool - // PeerUpdateFunc is a function type for peer update functions - PeerUpdateFunc func(peer *PeerData) // InMemPeerStore in-memory peer store InMemPeerStore struct { mtx sync.RWMutex - peerIDx map[types.NodeID]int - peers []*PeerData + store store.Store[types.NodeID, PeerData] maxHeight int64 } // PeerData uses to keep peer related data like base height and the current height etc @@ -41,56 +37,49 @@ const ( // NewInMemPeerStore creates a new in-memory peer store func NewInMemPeerStore(peers ...PeerData) *InMemPeerStore { mem := &InMemPeerStore{ - peerIDx: make(map[types.NodeID]int), + store: store.NewInMemStore[types.NodeID, PeerData](), } for _, peer := range peers { - mem.Put(peer) + mem.Put(peer.peerID, peer) } return mem } // Get returns peer's data and true if the peer is found otherwise empty structure and false func (p *InMemPeerStore) Get(peerID types.NodeID) (PeerData, bool) { - p.mtx.RLock() - defer p.mtx.RUnlock() - peer, found := p.get(peerID) - if found { - return *peer, true - } - return PeerData{}, false + return p.store.Get(peerID) } -// GetAndRemove combines Get operation and Remove in one call -func (p *InMemPeerStore) GetAndRemove(peerID types.NodeID) (PeerData, bool) { +// GetAndDelete combines Get operation and Delete in one call +func (p *InMemPeerStore) GetAndDelete(peerID types.NodeID) (PeerData, bool) { p.mtx.Lock() defer p.mtx.Unlock() - peer, found := p.get(peerID) - if found { - p.remove(peerID) - return *peer, true + peer, found := p.store.GetAndDelete(peerID) + if found && peer.height == p.maxHeight { + p.updateMaxHeight() } - return PeerData{}, found + return peer, found } // Put adds the peer data to the store if the peer does not exist, otherwise update the current value -func (p *InMemPeerStore) Put(newPeer PeerData) { +func (p *InMemPeerStore) Put(peerID types.NodeID, newPeer PeerData) { + p.store.Put(peerID, newPeer) p.mtx.Lock() defer p.mtx.Unlock() - _, ok := p.get(newPeer.peerID) - if !ok { - p.peers = append(p.peers, &newPeer) - p.peerIDx[newPeer.peerID] = len(p.peers) - 1 - p.maxHeight = max(p.maxHeight, newPeer.height) - return - } - p.update(newPeer) + p.maxHeight = max(p.maxHeight, newPeer.height) } -// Remove removes the peer data from the store -func (p *InMemPeerStore) Remove(peerID types.NodeID) { +// Delete deletes the peer data from the store +func (p *InMemPeerStore) Delete(peerID types.NodeID) { p.mtx.Lock() defer p.mtx.Unlock() - p.remove(peerID) + peer, found := p.store.GetAndDelete(peerID) + if !found { + return + } + if peer.height == p.maxHeight { + p.updateMaxHeight() + } } // MaxHeight looks at all the peers in the store to get the maximum peer height. @@ -100,24 +89,21 @@ func (p *InMemPeerStore) MaxHeight() int64 { return p.maxHeight } -// PeerUpdate applies update functions to the peer if it exists -func (p *InMemPeerStore) PeerUpdate(peerID types.NodeID, updates ...PeerUpdateFunc) { - p.mtx.Lock() - defer p.mtx.Unlock() - peer, found := p.get(peerID) +// Update applies update functions to the peer if it exists +func (p *InMemPeerStore) Update(peerID types.NodeID, updates ...store.UpdateFunc[types.NodeID, PeerData]) { + p.store.Update(peerID, updates...) + peer, found := p.store.Get(peerID) if !found { return } - for _, update := range updates { - update(peer) - } + p.mtx.Lock() + defer p.mtx.Unlock() + p.maxHeight = max(p.maxHeight, peer.height) } // Query finds and returns the copy of peers by specification conditions -func (p *InMemPeerStore) Query(spec PeerQueryFunc, limit int) []*PeerData { - p.mtx.RLock() - defer p.mtx.RUnlock() - return p.query(spec, limit) +func (p *InMemPeerStore) Query(spec store.QueryFunc[types.NodeID, PeerData], limit int) []PeerData { + return p.store.Query(spec, limit) } // FindPeer finds a peer for the request @@ -126,7 +112,7 @@ func (p *InMemPeerStore) Query(spec PeerQueryFunc, limit int) []*PeerData { // 2. the height must be between two values base and height // otherwise return the empty peer data and false func (p *InMemPeerStore) FindPeer(height int64) (PeerData, bool) { - spec := andX( + spec := store.AndX( peerNumPendingCond(maxPendingRequestsPerPeer, "<"), heightBetweenPeerHeightRange(height), ignoreTimedOutPeers(minRecvRate), @@ -135,12 +121,12 @@ func (p *InMemPeerStore) FindPeer(height int64) (PeerData, bool) { if len(peers) == 0 { return PeerData{}, false } - return *peers[0], true + return peers[0], true } // FindTimedoutPeers finds and returns the timed out peers -func (p *InMemPeerStore) FindTimedoutPeers() []*PeerData { - return p.Query(andX( +func (p *InMemPeerStore) FindTimedoutPeers() []PeerData { + return p.Query(store.AndX( peerNumPendingCond(0, ">"), transferRateNotZeroAndLessMinRate(minRecvRate), ), 0) @@ -148,88 +134,29 @@ func (p *InMemPeerStore) FindTimedoutPeers() []*PeerData { // All returns all stored peers in the store func (p *InMemPeerStore) All() []PeerData { - p.mtx.RLock() - defer p.mtx.RUnlock() - ret := make([]PeerData, len(p.peers)) - for i, peer := range p.peers { - ret[i] = *peer - } - return ret + return p.store.All() } // Len returns the count of all stored peers func (p *InMemPeerStore) Len() int { - p.mtx.RLock() - defer p.mtx.RUnlock() - return len(p.peers) + return p.store.Len() } // IsZero returns true if the store doesn't have a peer yet otherwise false func (p *InMemPeerStore) IsZero() bool { - return p.Len() == 0 -} - -func (p *InMemPeerStore) get(peerID types.NodeID) (*PeerData, bool) { - i, ok := p.peerIDx[peerID] - if !ok { - return nil, false - } - return p.peers[i], true -} - -func (p *InMemPeerStore) update(peer PeerData) { - i, ok := p.peerIDx[peer.peerID] - if !ok { - return - } - p.peers[i].height = peer.height - p.peers[i].base = peer.base - p.maxHeight = max(p.maxHeight, peer.height) -} - -func (p *InMemPeerStore) remove(peerID types.NodeID) { - i, ok := p.peerIDx[peerID] - if !ok { - return - } - peer := p.peers[i] - right := p.peers[i+1:] - for j, peer := range right { - p.peerIDx[peer.peerID] = i + j - } - left := p.peers[0:i] - p.peers = append(left, right...) - delete(p.peerIDx, peerID) - if peer.height == p.maxHeight { - p.updateMaxHeight() - } -} - -func (p *InMemPeerStore) query(spec PeerQueryFunc, limit int) []*PeerData { - var res []*PeerData - for _, i := range p.peerIDx { - peer := p.peers[i] - if spec(*peer) { - c := *peer - res = append(res, &c) - if limit > 0 && limit == len(res) { - return res - } - } - } - return res + return p.store.IsZero() } func (p *InMemPeerStore) updateMaxHeight() { p.maxHeight = 0 - for _, peer := range p.peers { + for _, peer := range p.store.All() { p.maxHeight = max(p.maxHeight, peer.height) } } // TODO with fixed worker pool size this condition is not needed anymore -func peerNumPendingCond(val int32, op string) PeerQueryFunc { - return func(peer PeerData) bool { +func peerNumPendingCond(val int32, op string) store.QueryFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer PeerData) bool { switch op { case "<": return peer.numPending < val @@ -240,21 +167,21 @@ func peerNumPendingCond(val int32, op string) PeerQueryFunc { } } -func heightBetweenPeerHeightRange(height int64) PeerQueryFunc { - return func(peer PeerData) bool { +func heightBetweenPeerHeightRange(height int64) store.QueryFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer PeerData) bool { return height >= peer.base && height <= peer.height } } -func transferRateNotZeroAndLessMinRate(minRate int64) PeerQueryFunc { - return func(peer PeerData) bool { +func transferRateNotZeroAndLessMinRate(minRate int64) store.QueryFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer PeerData) bool { curRate := peer.recvMonitor.CurrentTransferRate() return curRate != 0 && curRate < minRate } } -func ignoreTimedOutPeers(minRate int64) PeerQueryFunc { - return func(peer PeerData) bool { +func ignoreTimedOutPeers(minRate int64) store.QueryFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer PeerData) bool { curRate := peer.recvMonitor.CurrentTransferRate() if curRate == 0 { return true @@ -263,17 +190,6 @@ func ignoreTimedOutPeers(minRate int64) PeerQueryFunc { } } -func andX(specs ...PeerQueryFunc) PeerQueryFunc { - return func(peer PeerData) bool { - for _, spec := range specs { - if !spec(peer) { - return false - } - } - return true - } -} - func newPeerData(peerID types.NodeID, base, height int64) PeerData { startAt := time.Now() return PeerData{ @@ -292,15 +208,15 @@ func newPeerMonitor(at time.Time) *flowrate.Monitor { } // AddNumPending adds a value to the numPending field -func AddNumPending(val int32) PeerUpdateFunc { - return func(peer *PeerData) { +func AddNumPending(val int32) store.UpdateFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer *PeerData) { peer.numPending += val } } // UpdateMonitor adds a block size value to the peer monitor if numPending is greater than zero -func UpdateMonitor(recvSize int) PeerUpdateFunc { - return func(peer *PeerData) { +func UpdateMonitor(recvSize int) store.UpdateFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer *PeerData) { if peer.numPending > 0 { peer.recvMonitor.Update(recvSize) } @@ -308,8 +224,8 @@ func UpdateMonitor(recvSize int) PeerUpdateFunc { } // ResetMonitor replaces a peer monitor on a new one if numPending is zero -func ResetMonitor() PeerUpdateFunc { - return func(peer *PeerData) { +func ResetMonitor() store.UpdateFunc[types.NodeID, PeerData] { + return func(peerID types.NodeID, peer *PeerData) { if peer.numPending == 0 { peer.recvMonitor = newPeerMonitor(peer.startAt) } diff --git a/internal/blocksync/peer_store_test.go b/internal/blocksync/peer_store_test.go index d662ce9a0..a954b604c 100644 --- a/internal/blocksync/peer_store_test.go +++ b/internal/blocksync/peer_store_test.go @@ -8,8 +8,8 @@ import ( "github.com/jonboulle/clockwork" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/libs/flowrate" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/libs/flowrate" + "github.com/dashpay/tenderdash/types" ) func TestInMemPeerStoreBasicOperations(t *testing.T) { @@ -20,20 +20,20 @@ func TestInMemPeerStoreBasicOperations(t *testing.T) { require.False(t, found) // add a peer to store - inmem.Put(peer) + inmem.Put(peer.peerID, peer) foundPeer, found := inmem.Get(peerID) require.True(t, found) require.Equal(t, peer, foundPeer) // update a peer data updatedPeer := newPeerData(peerID, 100, 200) - inmem.Put(updatedPeer) + inmem.Put(updatedPeer.peerID, updatedPeer) foundPeer, found = inmem.Get(peerID) require.True(t, found) require.Equal(t, updatedPeer.height, foundPeer.height) require.Equal(t, updatedPeer.base, foundPeer.base) - inmem.PeerUpdate(peerID, AddNumPending(1)) + inmem.Update(peerID, AddNumPending(1)) require.Equal(t, int32(0), foundPeer.numPending) foundPeer, found = inmem.Get(peerID) require.True(t, found) @@ -42,7 +42,7 @@ func TestInMemPeerStoreBasicOperations(t *testing.T) { require.Equal(t, 1, inmem.Len()) require.False(t, inmem.IsZero()) - inmem.Remove(peerID) + inmem.Delete(peerID) require.Equal(t, 0, inmem.Len()) require.True(t, inmem.IsZero()) } diff --git a/internal/blocksync/reactor.go b/internal/blocksync/reactor.go index afb51c3fb..822550f16 100644 --- a/internal/blocksync/reactor.go +++ b/internal/blocksync/reactor.go @@ -7,17 +7,17 @@ import ( "sync/atomic" "time" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/types" ) var _ service.Service = (*Reactor)(nil) diff --git a/internal/blocksync/reactor_test.go b/internal/blocksync/reactor_test.go index 6054fecbb..a882b2e2a 100644 --- a/internal/blocksync/reactor_test.go +++ b/internal/blocksync/reactor_test.go @@ -12,22 +12,22 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/internal/eventbus" - mpmocks "github.com/tendermint/tendermint/internal/mempool/mocks" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/internal/p2p/p2ptest" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - sf "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/internal/eventbus" + mpmocks "github.com/dashpay/tenderdash/internal/mempool/mocks" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/internal/p2p/p2ptest" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + sf "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type reactorTestSuite struct { diff --git a/internal/blocksync/synchronizer.go b/internal/blocksync/synchronizer.go index 442bcbb27..f035fd56b 100644 --- a/internal/blocksync/synchronizer.go +++ b/internal/blocksync/synchronizer.go @@ -10,13 +10,13 @@ import ( "github.com/jonboulle/clockwork" sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/libs/workerpool" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/libs/workerpool" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/types" ) /* @@ -188,7 +188,7 @@ func (s *Synchronizer) consumeJobResult(ctx context.Context) { return } resp := res.Value.(*BlockResponse) - s.peerStore.PeerUpdate(resp.PeerID, AddNumPending(-1), UpdateMonitor(resp.Block.Size())) + s.peerStore.Update(resp.PeerID, AddNumPending(-1), UpdateMonitor(resp.Block.Size())) err = s.addBlock(*resp) if err != nil { s.logger.Error("cannot add a block to the pending list", @@ -266,7 +266,7 @@ func (s *Synchronizer) LastAdvance() time.Time { // AddPeer adds the peer's alleged blockchain base and height func (s *Synchronizer) AddPeer(peer PeerData) { - s.peerStore.Put(peer) + s.peerStore.Put(peer.peerID, peer) } // RemovePeer removes the peer with peerID from the synchronizer. If there's no peer @@ -283,7 +283,7 @@ func (s *Synchronizer) removePeer(peerID types.NodeID) { s.jobGen.pushBack(resp.Block.Height) } } - s.peerStore.Remove(peerID) + s.peerStore.Delete(peerID) } func (s *Synchronizer) applyBlock(ctx context.Context) error { diff --git a/internal/blocksync/synchronizer_test.go b/internal/blocksync/synchronizer_test.go index b4fb65351..8c9c544c1 100644 --- a/internal/blocksync/synchronizer_test.go +++ b/internal/blocksync/synchronizer_test.go @@ -14,18 +14,18 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/internal/p2p" - clientmocks "github.com/tendermint/tendermint/internal/p2p/client/mocks" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - statefactory "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/promise" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/libs/workerpool" - "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/internal/p2p" + clientmocks "github.com/dashpay/tenderdash/internal/p2p/client/mocks" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + statefactory "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/promise" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/libs/workerpool" + "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) type SynchronizerTestSuite struct { diff --git a/internal/consensus/block_executor.go b/internal/consensus/block_executor.go index 762586afa..c2beffcb4 100644 --- a/internal/consensus/block_executor.go +++ b/internal/consensus/block_executor.go @@ -6,11 +6,12 @@ import ( "fmt" sync "github.com/sasha-s/go-deadlock" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type blockExecutor struct { @@ -64,7 +65,7 @@ func (c *blockExecutor) ensureProcess(ctx context.Context, rs *cstypes.RoundStat block := rs.ProposalBlock crs := rs.CurrentRoundState if crs.Params.Source != sm.ProcessProposalSource || !crs.MatchesBlock(block.Header, round) { - c.logger.Debug("CurrentRoundState is outdated", "crs", crs) + c.logger.Debug("CurrentRoundState is outdated, executing ProcessProposal", "crs", crs) uncommittedState, err := c.blockExec.ProcessProposal(ctx, block, round, c.committedState, true) if err != nil { return fmt.Errorf("ProcessProposal abci method: %w", err) diff --git a/internal/consensus/block_executor_test.go b/internal/consensus/block_executor_test.go index 2e89c565e..842d0495c 100644 --- a/internal/consensus/block_executor_test.go +++ b/internal/consensus/block_executor_test.go @@ -10,14 +10,14 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/crypto" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - smmocks "github.com/tendermint/tendermint/internal/state/mocks" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/types/mocks" + "github.com/dashpay/tenderdash/crypto" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + smmocks "github.com/dashpay/tenderdash/internal/state/mocks" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/types/mocks" ) type BockExecutorTestSuite struct { diff --git a/internal/consensus/byzantine_test.go b/internal/consensus/byzantine_test.go index 62e211d6c..79ec408e0 100644 --- a/internal/consensus/byzantine_test.go +++ b/internal/consensus/byzantine_test.go @@ -13,21 +13,21 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/evidence" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/p2p" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/evidence" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/p2p" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // Byzantine node sends two different prevotes (nil and blockID) to the same diff --git a/internal/consensus/common_test.go b/internal/consensus/common_test.go index 15ed677fa..807dbea5d 100644 --- a/internal/consensus/common_test.go +++ b/internal/consensus/common_test.go @@ -19,27 +19,27 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/dash/llmq" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/dash/llmq" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/consensus/core_chainlock_test.go b/internal/consensus/core_chainlock_test.go index 80d485e2f..227d40bf5 100644 --- a/internal/consensus/core_chainlock_test.go +++ b/internal/consensus/core_chainlock_test.go @@ -13,12 +13,12 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/counter" - abci "github.com/tendermint/tendermint/abci/types" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/counter" + abci "github.com/dashpay/tenderdash/abci/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) func TestValidProposalChainLocks(t *testing.T) { diff --git a/internal/consensus/event_publisher.go b/internal/consensus/event_publisher.go index 6356185ee..01984346c 100644 --- a/internal/consensus/event_publisher.go +++ b/internal/consensus/event_publisher.go @@ -1,11 +1,11 @@ package consensus import ( - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) // EventPublisher is event message sender to event-bus and event-switch @@ -34,7 +34,7 @@ func (p *EventPublisher) PublishValidBlockEvent(rs cstypes.RoundState) { // PublishCommitEvent ... func (p *EventPublisher) PublishCommitEvent(commit *types.Commit) error { - p.logger.Debug("publish commit event", "commit", commit) + p.logger.Trace("publish commit event", "commit", commit) if err := p.eventBus.PublishEventCommit(types.EventDataCommit{Commit: commit}); err != nil { return err } diff --git a/internal/consensus/gossip_handlers.go b/internal/consensus/gossip_handlers.go index 49c7db205..d9bddb8c8 100644 --- a/internal/consensus/gossip_handlers.go +++ b/internal/consensus/gossip_handlers.go @@ -3,9 +3,9 @@ package consensus import ( "context" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" ) func queryMaj23GossipHandler(ps *PeerState, gossiper Gossiper) gossipHandlerFunc { diff --git a/internal/consensus/gossip_handlers_test.go b/internal/consensus/gossip_handlers_test.go index 5983e2895..efacd7367 100644 --- a/internal/consensus/gossip_handlers_test.go +++ b/internal/consensus/gossip_handlers_test.go @@ -9,15 +9,15 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/consensus/mocks" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - statemocks "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/consensus/mocks" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + statemocks "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" ) type GossipHandlerTestSuite struct { diff --git a/internal/consensus/gossip_msg_sender.go b/internal/consensus/gossip_msg_sender.go index 3e6ee648f..21a544a92 100644 --- a/internal/consensus/gossip_msg_sender.go +++ b/internal/consensus/gossip_msg_sender.go @@ -7,11 +7,11 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/consensus/gossip_msg_sender_test.go b/internal/consensus/gossip_msg_sender_test.go index 9e7d6f0e3..15684d952 100644 --- a/internal/consensus/gossip_msg_sender_test.go +++ b/internal/consensus/gossip_msg_sender_test.go @@ -8,12 +8,12 @@ import ( "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/mocks" - "github.com/tendermint/tendermint/libs/log" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/mocks" + "github.com/dashpay/tenderdash/libs/log" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestP2PMsgSender_Send(t *testing.T) { diff --git a/internal/consensus/gossip_peer_worker.go b/internal/consensus/gossip_peer_worker.go index 524b16dd1..ca9e8c79c 100644 --- a/internal/consensus/gossip_peer_worker.go +++ b/internal/consensus/gossip_peer_worker.go @@ -7,7 +7,7 @@ import ( "github.com/jonboulle/clockwork" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) type gossipHandlerFunc func(ctx context.Context, appState StateData) @@ -86,7 +86,7 @@ func (g *peerGossipWorker) Stop() { if !g.running.Swap(false) { return } - g.logger.Debug("peer gossip worker stopping") + g.logger.Trace("peer gossip worker stopping") close(g.stopCh) g.Wait() } @@ -94,7 +94,7 @@ func (g *peerGossipWorker) Stop() { func (g *peerGossipWorker) Wait() { for _, hd := range g.handlers { <-hd.stoppedCh - g.logger.Debug("peer gossip worker stopped") + g.logger.Trace("peer gossip worker stopped") } } @@ -107,11 +107,11 @@ func (g *peerGossipWorker) runHandler(ctx context.Context, hd gossipHandler) { select { case <-timer.Chan(): case <-g.stopCh: - g.logger.Debug("peer gossip worker got stop signal") + g.logger.Trace("peer gossip worker got stop signal") close(hd.stoppedCh) return case <-ctx.Done(): - g.logger.Debug("peer gossip worker got stop signal via context.Done") + g.logger.Trace("peer gossip worker got stop signal via context.Done") close(hd.stoppedCh) return } diff --git a/internal/consensus/gossip_peer_worker_test.go b/internal/consensus/gossip_peer_worker_test.go index 95b744c4f..23edd6b80 100644 --- a/internal/consensus/gossip_peer_worker_test.go +++ b/internal/consensus/gossip_peer_worker_test.go @@ -9,8 +9,8 @@ import ( "github.com/jonboulle/clockwork" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" ) func TestPeerGossipWorker(t *testing.T) { diff --git a/internal/consensus/gossiper.go b/internal/consensus/gossiper.go index 8e14bb302..4a3dc5991 100644 --- a/internal/consensus/gossiper.go +++ b/internal/consensus/gossiper.go @@ -9,12 +9,12 @@ import ( "github.com/gogo/protobuf/proto" "github.com/hashicorp/go-multierror" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // Gossiper is the interface that wraps the methods needed to gossip a state between connected peers @@ -98,7 +98,7 @@ func (g *msgGossiper) GossipVoteSetMaj23( "round", prs.Round, }) for _, msg := range msgs { - logger.Debug("syncing vote set +2/3 message") + logger.Trace("syncing vote set +2/3 message") err := g.msgSender.send(ctx, msg) if err != nil { logger.Error("failed to syncing vote set +2/3 message to the peer", "error", err) @@ -121,7 +121,7 @@ func (g *msgGossiper) GossipProposalBlockParts( "round", prs.Round, "part_index", index, }) - logger.Debug("syncing proposal block part to the peer") + logger.Trace("syncing proposal block part to the peer") part := rs.ProposalBlockParts.GetPart(index) // NOTE: A peer might have received a different proposal message, so this Proposal msg will be rejected! err := g.syncProposalBlockPart(ctx, part, rs.Height, rs.Round) @@ -137,7 +137,7 @@ func (g *msgGossiper) GossipProposal(ctx context.Context, rs cstypes.RoundState, "round", prs.Round, }) // Proposal: share the proposal metadata with peer. - logger.Debug("syncing proposal") + logger.Trace("syncing proposal") err := g.sync(ctx, rs.Proposal.ToProto(), updatePeerProposal(g.ps, rs.Proposal)) if err != nil { logger.Error("failed to sync proposal to the peer", "error", err) @@ -156,7 +156,7 @@ func (g *msgGossiper) GossipProposal(ctx context.Context, rs cstypes.RoundState, ProposalPolRound: rs.Proposal.POLRound, ProposalPol: *pPolProto, } - logger.Debug("syncing proposal POL") + logger.Trace("syncing proposal POL") err = g.sync(ctx, propPOLMsg, nil) if err != nil { logger.Error("failed to sync proposal POL to the peer", "error", err) @@ -245,7 +245,7 @@ func (g *msgGossiper) GossipVote(ctx context.Context, rs cstypes.RoundState, prs "vote_round", vote.Round, "proto_vote_size", protoVote.Size(), }) - logger.Debug("syncing vote message") + logger.Trace("syncing vote message") err := g.sync(ctx, protoVote, updatePeerVote(g.ps, vote)) if err != nil { logger.Error("failed to sync vote message to the peer", "error", err) diff --git a/internal/consensus/gossiper_test.go b/internal/consensus/gossiper_test.go index 00bcb0fe4..09d0cd934 100644 --- a/internal/consensus/gossiper_test.go +++ b/internal/consensus/gossiper_test.go @@ -10,17 +10,17 @@ import ( "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/crypto" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/p2p" - p2pmocks "github.com/tendermint/tendermint/internal/p2p/mocks" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/p2p" + p2pmocks "github.com/dashpay/tenderdash/internal/p2p/mocks" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type GossiperSuiteTest struct { diff --git a/internal/consensus/helper_test.go b/internal/consensus/helper_test.go index 135e4a037..7864364a4 100644 --- a/internal/consensus/helper_test.go +++ b/internal/consensus/helper_test.go @@ -7,21 +7,21 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type nodeGen struct { diff --git a/internal/consensus/invalid_test.go b/internal/consensus/invalid_test.go index 5ec265c65..679bbedde 100644 --- a/internal/consensus/invalid_test.go +++ b/internal/consensus/invalid_test.go @@ -11,14 +11,14 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestReactorInvalidPrecommit(t *testing.T) { diff --git a/internal/consensus/mempool_test.go b/internal/consensus/mempool_test.go index e3af7caf4..a3f75e729 100644 --- a/internal/consensus/mempool_test.go +++ b/internal/consensus/mempool_test.go @@ -13,16 +13,16 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/abci/example/code" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/mempool" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/code" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/mempool" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // for testing diff --git a/internal/consensus/metrics.go b/internal/consensus/metrics.go index bdf0eb412..2ffe67920 100644 --- a/internal/consensus/metrics.go +++ b/internal/consensus/metrics.go @@ -6,9 +6,9 @@ import ( "github.com/go-kit/kit/metrics" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/consensus/mock_test.go b/internal/consensus/mock_test.go index a5dd87f9d..3857e9506 100644 --- a/internal/consensus/mock_test.go +++ b/internal/consensus/mock_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/mock" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type mockConstructorTesting interface { diff --git a/internal/consensus/mocks/fast_sync_reactor.go b/internal/consensus/mocks/fast_sync_reactor.go index 06886de27..ea4907e26 100644 --- a/internal/consensus/mocks/fast_sync_reactor.go +++ b/internal/consensus/mocks/fast_sync_reactor.go @@ -5,7 +5,7 @@ package mocks import ( mock "github.com/stretchr/testify/mock" - state "github.com/tendermint/tendermint/internal/state" + state "github.com/dashpay/tenderdash/internal/state" time "time" ) diff --git a/internal/consensus/mocks/gossiper.go b/internal/consensus/mocks/gossiper.go index f9c69f975..b2f91225a 100644 --- a/internal/consensus/mocks/gossiper.go +++ b/internal/consensus/mocks/gossiper.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + types "github.com/dashpay/tenderdash/internal/consensus/types" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/internal/consensus/types" ) // Gossiper is an autogenerated mock type for the Gossiper type @@ -44,13 +44,12 @@ func (_m *Gossiper) GossipVoteSetMaj23(ctx context.Context, rs types.RoundState, _m.Called(ctx, rs, prs) } -type mockConstructorTestingTNewGossiper interface { +// NewGossiper creates a new instance of Gossiper. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewGossiper(t interface { mock.TestingT Cleanup(func()) -} - -// NewGossiper creates a new instance of Gossiper. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewGossiper(t mockConstructorTestingTNewGossiper) *Gossiper { +}) *Gossiper { mock := &Gossiper{} mock.Mock.Test(t) diff --git a/internal/consensus/msg_handlers.go b/internal/consensus/msg_handlers.go index b4473bfc7..8477e812b 100644 --- a/internal/consensus/msg_handlers.go +++ b/internal/consensus/msg_handlers.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" ) type msgInfoDispatcher struct { @@ -90,7 +90,7 @@ func blockPartMessageHandler(ctrl *Controller) msgHandlerFunc { FromReplay: envelope.fromReplay, }, stateData) if err != nil && msg.Round != stateData.Round { - logger.Debug("received block part from wrong round") + logger.Trace("received block part from wrong round") return nil } return err @@ -170,7 +170,7 @@ func loggingMiddleware(logger log.Logger) msgMiddlewareFunc { loggerWithArgs.Error("failed to process message", "error", err) return nil } - loggerWithArgs.Debug("message processed successfully") + loggerWithArgs.Trace("message processed successfully") return nil } } diff --git a/internal/consensus/msg_queue.go b/internal/consensus/msg_queue.go index dfc9a3fc4..7fe524e78 100644 --- a/internal/consensus/msg_queue.go +++ b/internal/consensus/msg_queue.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/types" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/types" ) type msgEnvelope struct { diff --git a/internal/consensus/msg_queue_test.go b/internal/consensus/msg_queue_test.go index d0bafa575..0507e10c3 100644 --- a/internal/consensus/msg_queue_test.go +++ b/internal/consensus/msg_queue_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestChanQueue(t *testing.T) { diff --git a/internal/consensus/msgs.go b/internal/consensus/msgs.go index b69af6d4c..bde6a8135 100644 --- a/internal/consensus/msgs.go +++ b/internal/consensus/msgs.go @@ -6,13 +6,13 @@ import ( "github.com/gogo/protobuf/proto" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/libs/bits" - tmmath "github.com/tendermint/tendermint/libs/math" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/jsontypes" + "github.com/dashpay/tenderdash/libs/bits" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // Message defines an interface that the consensus domain types implement. When diff --git a/internal/consensus/msgs_test.go b/internal/consensus/msgs_test.go index e68b15e3c..73b5a1ded 100644 --- a/internal/consensus/msgs_test.go +++ b/internal/consensus/msgs_test.go @@ -12,17 +12,17 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/bits" - "github.com/tendermint/tendermint/libs/bytes" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmtime "github.com/tendermint/tendermint/libs/time" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/bits" + "github.com/dashpay/tenderdash/libs/bytes" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestMsgToProto(t *testing.T) { diff --git a/internal/consensus/pbts_test.go b/internal/consensus/pbts_test.go index 161859358..203fc32f4 100644 --- a/internal/consensus/pbts_test.go +++ b/internal/consensus/pbts_test.go @@ -11,15 +11,15 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/eventbus" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( @@ -413,20 +413,20 @@ func TestProposerWaitTime(t *testing.T) { }{ { name: "block time greater than local time", - previousBlockTime: genesisTime.Add(5 * time.Nanosecond), - localTime: genesisTime.Add(1 * time.Nanosecond), - expectedWait: 4 * time.Nanosecond, + previousBlockTime: genesisTime.Add(5 * time.Millisecond), + localTime: genesisTime.Add(1 * time.Millisecond), + expectedWait: 4 * time.Millisecond, }, { name: "local time greater than block time", - previousBlockTime: genesisTime.Add(1 * time.Nanosecond), - localTime: genesisTime.Add(5 * time.Nanosecond), + previousBlockTime: genesisTime.Add(1 * time.Millisecond), + localTime: genesisTime.Add(5 * time.Millisecond), expectedWait: 0, }, { name: "both times equal", - previousBlockTime: genesisTime.Add(5 * time.Nanosecond), - localTime: genesisTime.Add(5 * time.Nanosecond), + previousBlockTime: genesisTime.Add(5 * time.Millisecond), + localTime: genesisTime.Add(5 * time.Millisecond), expectedWait: 0, }, } diff --git a/internal/consensus/peer_state.go b/internal/consensus/peer_state.go index 1847c57f3..607fc3be8 100644 --- a/internal/consensus/peer_state.go +++ b/internal/consensus/peer_state.go @@ -11,12 +11,11 @@ import ( "github.com/rs/zerolog" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/bits" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/bits" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( @@ -428,7 +427,7 @@ func (ps *PeerState) SetHasVote(vote *types.Vote) error { // setHasVote will return an error when the index exceeds the bitArray length func (ps *PeerState) setHasVote(height int64, round int32, voteType tmproto.SignedMsgType, index int32) error { - ps.logger.Debug( + ps.logger.Trace( "peerState setHasVote", "peer", ps.peerID, "height", height, @@ -467,7 +466,7 @@ func (ps *PeerState) SetHasCommit(commit *types.Commit) { } func (ps *PeerState) setHasCommit(height int64, round int32) { - ps.logger.Debug( + ps.logger.Trace( "setHasCommit", "height", height, "round", round, @@ -498,7 +497,7 @@ func (ps *PeerState) ApplyNewRoundStepMessage(msg *NewRoundStepMessage) { psRound = ps.PRS.Round psCatchupCommitRound = ps.PRS.CatchupCommitRound psCatchupCommit = ps.PRS.CatchupCommit - startTime = tmtime.Now().Add(-1 * time.Duration(msg.SecondsSinceStartTime) * time.Second) + startTime = time.Now().Add(-1 * time.Duration(msg.SecondsSinceStartTime) * time.Second) ) ps.PRS.Height = msg.Height diff --git a/internal/consensus/peer_state_test.go b/internal/consensus/peer_state_test.go index 97be569ff..9c4b6fdcb 100644 --- a/internal/consensus/peer_state_test.go +++ b/internal/consensus/peer_state_test.go @@ -5,9 +5,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func peerStateSetup(h, r, v int) *PeerState { diff --git a/internal/consensus/proposal_updater.go b/internal/consensus/proposal_updater.go index 3950fbbf0..d2c376453 100644 --- a/internal/consensus/proposal_updater.go +++ b/internal/consensus/proposal_updater.go @@ -1,8 +1,8 @@ package consensus import ( - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type proposalUpdater struct { @@ -16,7 +16,7 @@ func (u *proposalUpdater) updateStateData(stateData *StateData, blockID types.Bl return nil } // If we don't have the block being committed, set up to get it. - u.logger.Info( + u.logger.Debug( "commit is for a block we do not know about; set ProposalBlock=nil", "proposal", stateData.ProposalBlock.Hash(), "commit", blockID.Hash, diff --git a/internal/consensus/reactor.go b/internal/consensus/reactor.go index b99a2281c..bd789bfee 100644 --- a/internal/consensus/reactor.go +++ b/internal/consensus/reactor.go @@ -11,18 +11,18 @@ import ( "github.com/gogo/protobuf/proto" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/internal/p2p" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/bits" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/internal/p2p" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/bits" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( @@ -166,7 +166,7 @@ type channelBundle struct { // messages on that p2p channel accordingly. The caller must be sure to execute // OnStop to ensure the outbound p2p Channels are closed. func (r *Reactor) OnStart(ctx context.Context) error { - r.logger.Debug("consensus wait sync", "wait_sync", r.WaitSync()) + r.logger.Trace("consensus wait sync", "wait_sync", r.WaitSync()) peerUpdates := r.peerEvents(ctx, "consensus") @@ -393,10 +393,10 @@ func (r *Reactor) broadcast(ctx context.Context, channel p2p.Channel, msg proto. // logResult creates a log that depends on value of err func (r *Reactor) logResult(err error, logger log.Logger, message string, keyvals ...interface{}) bool { if err != nil { - logger.Debug(message+" error", append(keyvals, "error", err)) + logger.Error(message+" error", append(keyvals, "error", err)) return false } - logger.Debug(message+" success", keyvals...) + logger.Trace(message+" success", keyvals...) return true } @@ -406,7 +406,7 @@ func (r *Reactor) logResult(err error, logger log.Logger, message string, keyval // the peer. During peer removal, we remove the peer for our set of peers and // signal to all spawned goroutines to gracefully exit in a non-blocking manner. func (r *Reactor) processPeerUpdate(ctx context.Context, peerUpdate p2p.PeerUpdate, chans channelBundle) { - r.logger.Debug("received peer update", "peer", peerUpdate.NodeID, "status", peerUpdate.Status, + r.logger.Trace("received peer update", "peer", peerUpdate.NodeID, "status", peerUpdate.Status, "peer_proTxHash", peerUpdate.ProTxHash.ShortString()) switch peerUpdate.Status { @@ -547,7 +547,7 @@ func (r *Reactor) handleStateMessage(ctx context.Context, envelope *p2p.Envelope case *tmcons.HasVote: if err := ps.ApplyHasVoteMessage(msgI.(*HasVoteMessage)); err != nil { - r.logger.Error("applying HasVote message", "msg", msg, "err", err) + r.logger.Error("applying HasVote message failed", "msg", msg, "err", err) return err } case *tmcons.VoteSetMaj23: @@ -619,11 +619,11 @@ func (r *Reactor) handleDataMessage(ctx context.Context, envelope *p2p.Envelope, } if r.WaitSync() { - logger.Info("ignoring message received during sync", "msg", tmstrings.LazySprintf("%T", msgI)) + logger.Debug("ignoring message received during sync", "msg", tmstrings.LazySprintf("%T", msgI)) return nil } - logger.Debug("data channel processing", "msg", envelope.Message, "type", fmt.Sprintf("%T", envelope.Message)) + logger.Trace("data channel processing", "msg", envelope.Message, "type", fmt.Sprintf("%T", envelope.Message)) switch msg := envelope.Message.(type) { case *tmcons.Proposal: @@ -660,11 +660,11 @@ func (r *Reactor) handleVoteMessage(ctx context.Context, envelope *p2p.Envelope, } if r.WaitSync() { - logger.Info("ignoring message received during sync", "msg", msgI) + logger.Debug("ignoring message received during sync", "msg", msgI) return nil } - logger.Debug("vote channel processing", "msg", envelope.Message, "type", fmt.Sprintf("%T", envelope.Message)) + logger.Trace("vote channel processing", "msg", envelope.Message, "type", fmt.Sprintf("%T", envelope.Message)) switch msg := envelope.Message.(type) { case *tmcons.Commit: @@ -715,7 +715,7 @@ func (r *Reactor) handleVoteSetBitsMessage(ctx context.Context, envelope *p2p.En } if r.WaitSync() { - logger.Info("ignoring message received during sync", "msg", msgI) + logger.Debug("ignoring message received during sync", "msg", msgI) return nil } @@ -779,8 +779,6 @@ func (r *Reactor) handleMessage(ctx context.Context, envelope *p2p.Envelope, cha return err } - //r.logger.Debug("received message", "ch_id", envelope.ChannelID, "message", msgI, "peer", envelope.From) - switch envelope.ChannelID { case StateChannel: err = r.handleStateMessage(ctx, envelope, msg, chans.voteSet) @@ -835,7 +833,7 @@ func (r *Reactor) processPeerUpdates(ctx context.Context, peerUpdates *p2p.PeerU func (r *Reactor) peerStatsRoutine(ctx context.Context, peerUpdates *p2p.PeerUpdates) { for { if !r.IsRunning() { - r.logger.Info("stopping peerStatsRoutine") + r.logger.Trace("stopping peerStatsRoutine") return } @@ -843,7 +841,8 @@ func (r *Reactor) peerStatsRoutine(ctx context.Context, peerUpdates *p2p.PeerUpd case msg := <-r.state.statsMsgQueue.ch: ps, ok := r.GetPeerState(msg.PeerID) if !ok || ps == nil { - r.logger.Debug("attempt to update stats for non-existent peer", "peer", msg.PeerID) + // it's quite common to happen when a peer is removed + r.logger.Trace("attempt to update stats for non-existent peer", "peer", msg.PeerID) continue } diff --git a/internal/consensus/reactor_test.go b/internal/consensus/reactor_test.go index 3f10ad602..fde234c87 100644 --- a/internal/consensus/reactor_test.go +++ b/internal/consensus/reactor_test.go @@ -15,25 +15,25 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/dash/llmq" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/p2ptest" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - statemocks "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/dash/llmq" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/p2ptest" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + statemocks "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/consensus/replay.go b/internal/consensus/replay.go index 4f45b8cbe..d0b769b42 100644 --- a/internal/consensus/replay.go +++ b/internal/consensus/replay.go @@ -10,13 +10,13 @@ import ( "reflect" "time" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) var crc32c = crc32.MakeTable(crc32.Castagnoli) @@ -49,7 +49,7 @@ func (cs *State) readReplayMessage(ctx context.Context, msg *TimedWALMessage, ne // for logging switch m := msg.Msg.(type) { case types.EventDataRoundState: - cs.logger.Info("Replay: New Step", "height", m.Height, "round", m.Round, "step", m.Step) + cs.logger.Trace("Replay: New Step", "height", m.Height, "round", m.Round, "step", m.Step) // these are playback checks if newStepSub != nil { ctxto, cancel := context.WithTimeout(ctx, 2*time.Second) @@ -78,18 +78,18 @@ func (cs *State) readReplayMessage(ctx context.Context, msg *TimedWALMessage, ne stateData.Votes.SetRound(p.Round) stateData.Round = p.Round } - cs.logger.Info("Replay: Proposal", "height", p.Height, "round", p.Round, "cs.Round", stateData.Round, + cs.logger.Trace("Replay: Proposal", "height", p.Height, "round", p.Round, "cs.Round", stateData.Round, "header", p.BlockID.PartSetHeader, "pol", p.POLRound, "peer", peerID) case *BlockPartMessage: - cs.logger.Info("Replay: BlockPart", "height", msg.Height, "round", msg.Round, "peer", peerID) + cs.logger.Trace("Replay: BlockPart", "height", msg.Height, "round", msg.Round, "peer", peerID) case *VoteMessage: v := msg.Vote - cs.logger.Info("Replay: Vote", "height", v.Height, "round", v.Round, "type", v.Type, + cs.logger.Trace("Replay: Vote", "height", v.Height, "round", v.Round, "type", v.Type, "blockID", v.BlockID, "peer", peerID) } _ = cs.msgDispatcher.dispatch(ctx, &stateData, m, msgFromReplay()) case timeoutInfo: - cs.logger.Info("Replay: Timeout", "height", m.Height, "round", m.Round, "step", m.Step, "dur", m.Duration) + cs.logger.Trace("Replay: Timeout", "height", m.Height, "round", m.Round, "step", m.Step, "dur", m.Duration) cs.handleTimeout(ctx, m, &stateData) default: return fmt.Errorf("replay: Unknown TimedWALMessage type: %v", reflect.TypeOf(msg.Msg)) diff --git a/internal/consensus/replay_file.go b/internal/consensus/replay_file.go index eacf22081..0c13b4dd2 100644 --- a/internal/consensus/replay_file.go +++ b/internal/consensus/replay_file.go @@ -12,14 +12,14 @@ import ( dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/proxy" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/proxy" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/consensus/replay_stubs.go b/internal/consensus/replay_stubs.go index d2188a438..e02fc9e72 100644 --- a/internal/consensus/replay_stubs.go +++ b/internal/consensus/replay_stubs.go @@ -3,14 +3,14 @@ package consensus import ( "context" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/libs/clist" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/libs/log" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/libs/clist" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/libs/log" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + "github.com/dashpay/tenderdash/types" ) //----------------------------------------------------------------------------- diff --git a/internal/consensus/replay_test.go b/internal/consensus/replay_test.go index ceb4480f6..a82fe6673 100644 --- a/internal/consensus/replay_test.go +++ b/internal/consensus/replay_test.go @@ -19,25 +19,25 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - sf "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/store" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + sf "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/store" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // These tests ensure we can always recover from failure at any part of the consensus process. diff --git a/internal/consensus/replayer.go b/internal/consensus/replayer.go index 5e796a2b2..6cb6e3c64 100644 --- a/internal/consensus/replayer.go +++ b/internal/consensus/replayer.go @@ -4,15 +4,15 @@ import ( "context" "fmt" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/internal/eventbus" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/internal/eventbus" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // NewReplayBlockExecutor returns a new instance of state.BlockExecutor configured for BlockReplayer @@ -272,7 +272,7 @@ func (r *BlockReplayer) replayBlock( state sm.State, height int64, ) (sm.CurrentRoundState, *abci.ResponseFinalizeBlock, error) { - r.logger.Info("Applying block", "height", height) + r.logger.Info("Replay: applying block", "height", height) // Extra check to ensure the app was not changed in a way it shouldn't have. ucState, err := r.blockExec.ProcessProposal(ctx, block, commit.Round, state, false) if err != nil { @@ -337,8 +337,8 @@ func (r *BlockReplayer) execInitChain(ctx context.Context, rs *replayState, stat } quorumType := state.Validators.QuorumType - if quorumType.Validate() != nil { - r.logger.Debug("state quorum type: %w", err) + if err := quorumType.Validate(); err != nil { + r.logger.Error("state quorum type validation failed: %w", err) quorumType = r.genDoc.QuorumType } diff --git a/internal/consensus/replayer_test.go b/internal/consensus/replayer_test.go index 0606c3b0e..06605849a 100644 --- a/internal/consensus/replayer_test.go +++ b/internal/consensus/replayer_test.go @@ -8,17 +8,17 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmtypes "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmtypes "github.com/dashpay/tenderdash/types" ) func TestBlockReplayerReplay(t *testing.T) { diff --git a/internal/consensus/round_scheduler.go b/internal/consensus/round_scheduler.go index 984c24530..a6df0c936 100644 --- a/internal/consensus/round_scheduler.go +++ b/internal/consensus/round_scheduler.go @@ -3,8 +3,8 @@ package consensus import ( "time" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - tmtime "github.com/tendermint/tendermint/libs/time" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + tmtime "github.com/dashpay/tenderdash/libs/time" ) type roundScheduler struct { @@ -15,7 +15,6 @@ type roundScheduler struct { // ScheduleRound0 enterNewRoundCommand(height, 0) at StartTime func (b *roundScheduler) ScheduleRound0(rs cstypes.RoundState) { - // b.logger.Info("scheduleRound0", "now", tmtime.Now(), "startTime", b.StartTime) sleepDuration := rs.StartTime.Sub(tmtime.Now()) b.ScheduleTimeout(sleepDuration, rs.Height, 0, cstypes.RoundStepNewHeight) } diff --git a/internal/consensus/state.go b/internal/consensus/state.go index 0fa433b01..91af6fac3 100644 --- a/internal/consensus/state.go +++ b/internal/consensus/state.go @@ -11,18 +11,18 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/config" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/internal/libs/autofile" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/libs/service" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/jsontypes" + "github.com/dashpay/tenderdash/internal/libs/autofile" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + "github.com/dashpay/tenderdash/libs/service" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/types" ) // consensus events @@ -459,7 +459,7 @@ func (cs *State) OnStart(ctx context.Context) error { return err } - cs.logger.Debug("backed up WAL file", "src", cs.config.WalFile(), "dst", corruptedFile) + cs.logger.Info("backed up WAL file", "src", cs.config.WalFile(), "dst", corruptedFile) // 3) try to repair (WAL file will be overwritten!) if err := repairWalFile(corruptedFile, cs.config.WalFile()); err != nil { @@ -722,7 +722,7 @@ func (cs *State) handleTimeout( ti timeoutInfo, stateData *StateData, ) { - cs.logger.Debug("received tock", "timeout", ti.Duration, "height", ti.Height, "round", ti.Round, "step", ti.Step) + cs.logger.Trace("received tock", "timeout", ti.Duration, "height", ti.Height, "round", ti.Round, "step", ti.Step) // timeouts must be for current height, round, step if ti.Height != stateData.Height || ti.Round < stateData.Round || (ti.Round == stateData.Round && ti.Step < stateData.Step) { @@ -801,7 +801,7 @@ func (cs *State) CreateProposalBlock(ctx context.Context) (*types.Block, error) // PublishCommitEvent ... func (cs *State) PublishCommitEvent(commit *types.Commit) error { - cs.logger.Debug("publish commit event", "commit", commit) + cs.logger.Trace("publish commit event", "commit", commit) if err := cs.eventBus.PublishEventCommit(types.EventDataCommit{Commit: commit}); err != nil { return err } diff --git a/internal/consensus/state_add_commit.go b/internal/consensus/state_add_commit.go index fb5180009..17981f909 100644 --- a/internal/consensus/state_add_commit.go +++ b/internal/consensus/state_add_commit.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/types" ) type AddCommitEvent struct { diff --git a/internal/consensus/state_add_prop_block.go b/internal/consensus/state_add_prop_block.go index 945282ec0..bf2b5d437 100644 --- a/internal/consensus/state_add_prop_block.go +++ b/internal/consensus/state_add_prop_block.go @@ -8,11 +8,11 @@ import ( "github.com/gogo/protobuf/proto" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type AddProposalBlockPartEvent struct { @@ -75,7 +75,7 @@ func (c *AddProposalBlockPartAction) addProposalBlockPart( peerID types.NodeID, ) (bool, error) { height, round, part := msg.Height, msg.Round, msg.Part - c.logger.Info( + c.logger.Trace( "addProposalBlockPart", "height", stateData.Height, "round", stateData.Round, @@ -158,20 +158,13 @@ func (c *AddProposalBlockPartAction) addProposalBlockPart( } // NOTE: it's possible to receive complete proposal blocks for future rounds without having the proposal - c.logger.Info( - "received complete proposal block", - "height", stateData.ProposalBlock.Height, - "hash", stateData.ProposalBlock.Hash(), - "round_height", stateData.RoundState.GetHeight(), - ) - - c.eventPublisher.PublishCompleteProposalEvent(stateData.CompleteProposalEvent()) if stateData.Commit != nil { - c.logger.Info("Proposal block fully received", "proposal", stateData.ProposalBlock) - c.logger.Info("Commit already present", "commit", stateData.Commit) - c.logger.Debug("adding commit after complete proposal", - "height", stateData.ProposalBlock.Height, + c.logger.Info("received complete proposal block and commit", + "proposal", stateData.ProposalBlock, + "commit", stateData.Commit, + "height", stateData.RoundState.Height, + "round", stateData.RoundState.Round, "hash", stateData.ProposalBlock.Hash(), ) // We received a commit before the block @@ -179,7 +172,16 @@ func (c *AddProposalBlockPartAction) addProposalBlockPart( return added, ctrl.Dispatch(ctx, &AddCommitEvent{Commit: stateData.Commit}, stateData) } - return added, nil + c.logger.Info( + "received complete proposal block", + "height", stateData.RoundState.Height, + "round", stateData.RoundState.Round, + "proposal_height", stateData.ProposalBlock.Height, + "hash", stateData.ProposalBlock.Hash(), + "round_height", stateData.RoundState.GetHeight(), + ) + + c.eventPublisher.PublishCompleteProposalEvent(stateData.CompleteProposalEvent()) } return added, nil @@ -231,7 +233,9 @@ func (c *ProposalCompletedAction) Execute(ctx context.Context, stateEvent StateE // Move onto the next step // We should allow old blocks if we are recovering from replay c.logger.Debug("entering prevote after complete proposal", - "height", stateData.ProposalBlock.Height, + "height", stateData.RoundState.Height, + "round", stateData.RoundState.Round, + "proposal_height", stateData.ProposalBlock.Height, "hash", stateData.ProposalBlock.Hash(), ) err := stateEvent.Ctrl.Dispatch(ctx, &EnterPrevoteEvent{ diff --git a/internal/consensus/state_add_vote.go b/internal/consensus/state_add_vote.go index c7e55ab0a..0644beb51 100644 --- a/internal/consensus/state_add_vote.go +++ b/internal/consensus/state_add_vote.go @@ -4,13 +4,13 @@ import ( "context" "errors" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type ( @@ -110,7 +110,7 @@ func addVoteToLastPrecommitMw(ep *EventPublisher, ctrl *Controller) AddVoteMiddl logger := log.FromCtxOrNop(ctx) if stateData.Step != cstypes.RoundStepNewHeight { // Late precommit at prior height is ignored - logger.Debug("precommit vote came in after commit timeout and has been ignored") + logger.Trace("precommit vote came in after commit timeout and has been ignored") return false, nil } if stateData.LastPrecommits == nil { @@ -122,7 +122,7 @@ func addVoteToLastPrecommitMw(ep *EventPublisher, ctrl *Controller) AddVoteMiddl logger.Debug("vote not added to last precommits", logKeyValsWithError(nil, err)...) return false, nil } - logger.Debug("added vote to last precommits", "last_precommits", stateData.LastPrecommits) + logger.Trace("added vote to last precommits", "last_precommits", stateData.LastPrecommits) err = ep.PublishVoteEvent(vote) if err != nil { @@ -341,7 +341,7 @@ func addVoteErrorMw(evpool evidencePool, logger log.Logger, privVal privValidato return added, err } if errors.Is(err, types.ErrVoteNonDeterministicSignature) { - logger.Debug("vote has non-deterministic signature", "err", err) + logger.Error("vote has non-deterministic signature", "err", err) return added, err } // If the vote height is off, we'll just ignore it, @@ -365,7 +365,7 @@ func addVoteErrorMw(evpool evidencePool, logger log.Logger, privVal privValidato // report conflicting votes to the evidence pool evpool.ReportConflictingVotes(voteErr.VoteA, voteErr.VoteB) - logger.Debug("found and sent conflicting votes to the evidence pool", + logger.Error("found and sent conflicting votes to the evidence pool", "vote_a", voteErr.VoteA, "vote_b", voteErr.VoteB) return added, err @@ -377,7 +377,7 @@ func addVoteLoggingMw() AddVoteMiddlewareFunc { return func(next AddVoteFunc) AddVoteFunc { return func(ctx context.Context, stateData *StateData, vote *types.Vote) (bool, error) { logger := log.FromCtxOrNop(ctx) - logger.Debug("adding vote to vote set") + logger.Trace("adding vote to vote set") added, err := next(ctx, stateData, vote) if !added { if err != nil { @@ -395,7 +395,7 @@ func addVoteLoggingMw() AddVoteMiddlewareFunc { return added, err } votes := stateData.Votes.GetVoteSet(vote.Round, vote.Type) - logger.Debug("vote added", "data", votes) + logger.Trace("vote added", "data", votes) return added, err } } diff --git a/internal/consensus/state_add_vote_test.go b/internal/consensus/state_add_vote_test.go index 1c1b14a1e..c1caff273 100644 --- a/internal/consensus/state_add_vote_test.go +++ b/internal/consensus/state_add_vote_test.go @@ -8,17 +8,17 @@ import ( "github.com/stretchr/testify/require" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/types" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/test/factory" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type AddVoteTestSuite struct { diff --git a/internal/consensus/state_apply_commit.go b/internal/consensus/state_apply_commit.go index 68c104cf2..4fa2d9ad6 100644 --- a/internal/consensus/state_apply_commit.go +++ b/internal/consensus/state_apply_commit.go @@ -4,9 +4,9 @@ import ( "context" "fmt" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type ApplyCommitEvent struct { diff --git a/internal/consensus/state_controller.go b/internal/consensus/state_controller.go index 62b717f31..b0f4240eb 100644 --- a/internal/consensus/state_controller.go +++ b/internal/consensus/state_controller.go @@ -4,8 +4,8 @@ import ( "context" "errors" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/eventemitter" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/eventemitter" ) // EventType is an integer representation of a transition event @@ -87,6 +87,7 @@ func NewController(cs *State, wal *wrapWAL, statsQueue *chanQueue[msgInfo], prop scheduler: cs.roundScheduler, eventPublisher: cs.eventPublisher, proposalCreator: propler, + replayMode: cs.replayMode, }, AddProposalBlockPartType: &AddProposalBlockPartAction{ logger: cs.logger, diff --git a/internal/consensus/state_data.go b/internal/consensus/state_data.go index e4591b70d..519d60175 100644 --- a/internal/consensus/state_data.go +++ b/internal/consensus/state_data.go @@ -7,13 +7,13 @@ import ( "sync" "time" - "github.com/tendermint/tendermint/config" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/types" ) var ( @@ -258,7 +258,7 @@ func (s *StateData) updateToState(state sm.State, commit *types.Commit) { height = state.InitialHeight } - s.logger.Debug("updating state height", "newHeight", height) + s.logger.Trace("updating state height", "newHeight", height) // RoundState fields s.updateHeight(height) @@ -350,11 +350,11 @@ func (s *StateData) verifyCommit(commit *types.Commit, peerID types.NodeID, igno // A commit for the previous height? // These come in while we wait timeoutCommit if commit.Height+1 == stateHeight { - s.logger.Debug("old commit ignored", "commit", commit) + s.logger.Trace("old commit ignored", "commit", commit) return false, nil } - s.logger.Debug( + s.logger.Trace( "verifying commit from remote", "commit_height", commit.Height, "cs_height", s.Height, @@ -377,9 +377,9 @@ func (s *StateData) verifyCommit(commit *types.Commit, peerID types.NodeID, igno if rs.Proposal == nil || ignoreProposalBlock { if ignoreProposalBlock { - s.logger.Info("Commit verified for future round", "height", commit.Height, "round", commit.Round) + s.logger.Debug("Commit verified for future round", "height", commit.Height, "round", commit.Round) } else { - s.logger.Info("Commit came in before proposal", "height", commit.Height, "round", commit.Round) + s.logger.Debug("Commit came in before proposal", "height", commit.Height, "round", commit.Round) } // We need to verify that it was properly signed @@ -389,7 +389,7 @@ func (s *StateData) verifyCommit(commit *types.Commit, peerID types.NodeID, igno } if !s.ProposalBlockParts.HasHeader(commit.BlockID.PartSetHeader) { - s.logger.Info("setting proposal block parts from commit", "partSetHeader", commit.BlockID.PartSetHeader) + s.logger.Debug("setting proposal block parts from commit", "partSetHeader", commit.BlockID.PartSetHeader) s.ProposalBlockParts = types.NewPartSetFromHeader(commit.BlockID.PartSetHeader) } @@ -426,7 +426,7 @@ func (s *StateData) replaceProposalBlockOnLockedBlock(blockID types.BlockID) { } s.ProposalBlock = s.LockedBlock s.ProposalBlockParts = s.LockedBlockParts - s.logger.Debug("commit is for a locked block; set ProposalBlock=LockedBlock", "block_hash", blockID.Hash) + s.logger.Trace("commit is for a locked block; set ProposalBlock=LockedBlock", "block_hash", blockID.Hash) } func (s *StateData) proposeTimeout(round int32) time.Duration { diff --git a/internal/consensus/state_data_test.go b/internal/consensus/state_data_test.go index 55678f4d3..09824c9bf 100644 --- a/internal/consensus/state_data_test.go +++ b/internal/consensus/state_data_test.go @@ -5,11 +5,11 @@ import ( "testing" "time" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/test/factory" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/types" ) func TestIsValidForPrevote(t *testing.T) { diff --git a/internal/consensus/state_enter_commit.go b/internal/consensus/state_enter_commit.go index fc8daa194..723f3ba71 100644 --- a/internal/consensus/state_enter_commit.go +++ b/internal/consensus/state_enter_commit.go @@ -3,9 +3,9 @@ package consensus import ( "context" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" ) type EnterCommitEvent struct { @@ -36,7 +36,8 @@ func (c *EnterCommitAction) Execute(ctx context.Context, stateEvent StateEvent) logger := c.logger.With("new_height", height, "commit_round", commitRound) if stateData.Height != height || cstypes.RoundStepApplyCommit <= stateData.Step { - logger.Debug("entering commit step with invalid args", + // this is quite common event + logger.Trace("entering commit step with invalid args", "height", stateData.Height, "round", stateData.Round, "step", stateData.Step) diff --git a/internal/consensus/state_enter_new_round.go b/internal/consensus/state_enter_new_round.go index f0049b688..d38bed9e9 100644 --- a/internal/consensus/state_enter_new_round.go +++ b/internal/consensus/state_enter_new_round.go @@ -4,10 +4,10 @@ import ( "context" "time" - "github.com/tendermint/tendermint/config" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" + "github.com/dashpay/tenderdash/config" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" ) // EnterNewRoundEvent ... @@ -49,7 +49,8 @@ func (c *EnterNewRoundAction) Execute(ctx context.Context, stateEvent StateEvent logger := c.logger.With("height", height, "round", round) if stateData.Height != height || round < stateData.Round || (stateData.Round == round && stateData.Step != cstypes.RoundStepNewHeight) { - logger.Debug("entering new round with invalid args", + // this is quite common event + logger.Trace("entering new round with invalid args", "height", stateData.Height, "round", stateData.Round, "step", stateData.Step) @@ -57,7 +58,7 @@ func (c *EnterNewRoundAction) Execute(ctx context.Context, stateEvent StateEvent } if now := tmtime.Now(); stateData.StartTime.After(now) { - logger.Debug("need to set a buffer and log message here for sanity", "start_time", stateData.StartTime, "now", now) + logger.Trace("need to set a buffer and log message here for sanity", "start_time", stateData.StartTime, "now", now) } logger.Debug("entering new round", @@ -82,7 +83,7 @@ func (c *EnterNewRoundAction) Execute(ctx context.Context, stateEvent StateEvent // and meanwhile we might have received a proposal // for round 0. } else { - logger.Debug("resetting proposal info") + logger.Trace("resetting proposal info") stateData.Proposal = nil stateData.ProposalReceiveTime = time.Time{} stateData.ProposalBlock = nil diff --git a/internal/consensus/state_enter_precommit.go b/internal/consensus/state_enter_precommit.go index 75c306e81..41e53b107 100644 --- a/internal/consensus/state_enter_precommit.go +++ b/internal/consensus/state_enter_precommit.go @@ -4,10 +4,10 @@ import ( "context" "fmt" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type EnterPrecommitEvent struct { @@ -47,7 +47,7 @@ func (c *EnterPrecommitAction) Execute(ctx context.Context, stateEvent StateEven logger := c.logger.With("new_height", height, "new_round", round) if stateData.Height != height || round < stateData.Round || (stateData.Round == round && cstypes.RoundStepPrecommit <= stateData.Step) { - logger.Debug("entering precommit step with invalid args", + logger.Trace("entering precommit step with invalid args", "height", stateData.Height, "round", stateData.Round, "step", stateData.Step) @@ -68,11 +68,12 @@ func (c *EnterPrecommitAction) Execute(ctx context.Context, stateEvent StateEven blockID, ok := stateData.Votes.Prevotes(round).TwoThirdsMajority() // If we don't have a polka, we must precommit nil. + // From protocol perspective it's an error condition, so we log it on Error level. if !ok { if stateData.LockedBlock != nil { - logger.Debug("precommit step; no +2/3 prevotes during enterPrecommit while we are locked; precommitting nil") + logger.Error("precommit step; no +2/3 prevotes during enterPrecommit while we are locked; precommitting nil") } else { - logger.Debug("precommit step; no +2/3 prevotes during enterPrecommit; precommitting nil") + logger.Error("precommit step; no +2/3 prevotes during enterPrecommit; precommitting nil") } c.voteSigner.signAddVote(ctx, stateData, tmproto.PrecommitType, types.BlockID{}) @@ -90,7 +91,8 @@ func (c *EnterPrecommitAction) Execute(ctx context.Context, stateEvent StateEven // +2/3 prevoted nil. Precommit nil. if blockID.IsNil() { - logger.Debug("precommit step: +2/3 prevoted for nil; precommitting nil") + // From protocol perspective it's an error condition, so we log it on Error level. + logger.Error("precommit step: +2/3 prevoted for nil; precommitting nil") c.voteSigner.signAddVote(ctx, stateData, tmproto.PrecommitType, types.BlockID{}) return nil } @@ -105,7 +107,7 @@ func (c *EnterPrecommitAction) Execute(ctx context.Context, stateEvent StateEven // If the proposal time does not match the block time, precommit nil. if !stateData.Proposal.Timestamp.Equal(stateData.ProposalBlock.Header.Time) { - logger.Debug("precommit step: proposal timestamp not equal; precommitting nil") + logger.Error("precommit step: proposal timestamp not equal; precommitting nil") c.voteSigner.signAddVote(ctx, stateData, tmproto.PrecommitType, types.BlockID{}) return nil } diff --git a/internal/consensus/state_enter_prevote.go b/internal/consensus/state_enter_prevote.go index cc1a0dd1a..7e32071b9 100644 --- a/internal/consensus/state_enter_prevote.go +++ b/internal/consensus/state_enter_prevote.go @@ -3,8 +3,8 @@ package consensus import ( "context" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" ) type EnterPrevoteEvent struct { @@ -42,7 +42,7 @@ func (c *EnterPrevoteAction) Execute(ctx context.Context, statEvent StateEvent) logger := c.logger.With("height", height, "round", round) if stateData.Height != height || round < stateData.Round || (stateData.Round == round && cstypes.RoundStepPrevote <= stateData.Step) { - logger.Debug("entering prevote step with invalid args", + logger.Trace("entering prevote step with invalid args", "height", stateData.Height, "round", stateData.Round, "step", stateData.Step) diff --git a/internal/consensus/state_enter_propose.go b/internal/consensus/state_enter_propose.go index 5c5e15df1..e9ae2075c 100644 --- a/internal/consensus/state_enter_propose.go +++ b/internal/consensus/state_enter_propose.go @@ -3,10 +3,10 @@ package consensus import ( "context" - "github.com/tendermint/tendermint/dash" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" + "github.com/dashpay/tenderdash/dash" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" ) type EnterProposeEvent struct { @@ -31,6 +31,7 @@ type EnterProposeAction struct { scheduler *roundScheduler eventPublisher *EventPublisher proposalCreator cstypes.ProposalCreator + replayMode bool } func (c *EnterProposeAction) Execute(ctx context.Context, stateEvent StateEvent) error { @@ -44,7 +45,7 @@ func (c *EnterProposeAction) Execute(ctx context.Context, stateEvent StateEvent) if stateData.Height != height || round < stateData.Round || (stateData.Round == round && cstypes.RoundStepPropose <= stateData.Step) { - logger.Debug("entering propose step with invalid args", "step", stateData.Step) + logger.Trace("entering propose step with invalid args", "step", stateData.Step) return nil } @@ -66,11 +67,6 @@ func (c *EnterProposeAction) Execute(ctx context.Context, stateEvent StateEvent) } } - logger.Debug("entering propose step", - "height", stateData.Height, - "round", stateData.Round, - "step", stateData.Step) - defer func() { // Done enterPropose: stateData.updateRoundStep(round, cstypes.RoundStepPropose) @@ -88,13 +84,25 @@ func (c *EnterProposeAction) Execute(ctx context.Context, stateEvent StateEvent) c.scheduler.ScheduleTimeout(stateData.proposeTimeout(round), height, round, cstypes.RoundStepPropose) if !isProposer { - logger.Debug("propose step; not our turn to propose", + logger.Info("propose step; not our turn to propose", "proposer_proTxHash", stateData.Validators.GetProposer().ProTxHash, - "node_proTxHash", proTxHash.String()) + "node_proTxHash", proTxHash.String(), + "height", stateData.Height, + "round", stateData.Round, + "step", stateData.Step) + return nil + } + // In replay mode, we don't propose blocks. + if c.replayMode { + logger.Debug("enter propose step; our turn to propose but in replay mode, not proposing") return nil } - logger.Debug("propose step; our turn to propose", + + logger.Info("propose step; our turn to propose", "proposer_proTxHash", proTxHash.ShortString(), + "height", stateData.Height, + "round", stateData.Round, + "step", stateData.Step, ) // Flush the WAL. Otherwise, we may not recompute the same proposal to sign, // and the privVal will refuse to sign anything. diff --git a/internal/consensus/state_enter_wait.go b/internal/consensus/state_enter_wait.go index 95951d47b..875d0bb92 100644 --- a/internal/consensus/state_enter_wait.go +++ b/internal/consensus/state_enter_wait.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" ) type EnterPrecommitWaitEvent struct { @@ -35,7 +35,7 @@ func (c *EnterPrecommitWaitAction) Execute(ctx context.Context, stateEvent State logger := c.logger.With("new_height", height, "new_round", round) if stateData.Height != height || round < stateData.Round || (stateData.Round == round && stateData.TriggeredTimeoutPrecommit) { - logger.Debug("entering precommit wait step with invalid args", + logger.Trace("entering precommit wait step with invalid args", "triggered_timeout", stateData.TriggeredTimeoutPrecommit, "height", stateData.Height, "round", stateData.Round) @@ -94,7 +94,7 @@ func (c *EnterPrevoteWaitAction) Execute(ctx context.Context, stateEvent StateEv logger := c.logger.With("height", height, "round", round) if stateData.Height != height || round < stateData.Round || (stateData.Round == round && cstypes.RoundStepPrevoteWait <= stateData.Step) { - logger.Debug("entering prevote wait step with invalid args", + logger.Trace("entering prevote wait step with invalid args", "height", stateData.Height, "round", stateData.Round, "step", stateData.Step) diff --git a/internal/consensus/state_prevoter.go b/internal/consensus/state_prevoter.go index b68f1c2e0..fdc791360 100644 --- a/internal/consensus/state_prevoter.go +++ b/internal/consensus/state_prevoter.go @@ -6,12 +6,12 @@ import ( "fmt" "time" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type Prevoter interface { @@ -39,7 +39,7 @@ func (p *prevoter) Do(ctx context.Context, stateData *StateData) error { err := stateData.isValidForPrevote() if err != nil { keyVals := append(prevoteKeyVals(stateData), "error", err) - p.logger.Debug("prevote is invalid", keyVals...) + p.logger.Error("prevote is invalid", keyVals...) p.signAndAddNilVote(ctx, stateData) return nil } @@ -72,7 +72,7 @@ func (p *prevoter) handleError(err error, args ...any) { } func (p *prevoter) signAndAddNilVote(ctx context.Context, stateData *StateData) { - p.logger.Debug("prevote nil") + p.logger.Debug("prevote nil", "height", stateData.RoundState.Height, "round", stateData.RoundState.Round) p.voteSigner.signAddVote(ctx, stateData, tmproto.PrevoteType, types.BlockID{}) } @@ -142,9 +142,11 @@ func (p *prevoter) checkPrevoteMaj23(rs cstypes.RoundState) bool { return false } if rs.Proposal.POLRound < 0 { + p.logger.Debug("prevote step: ProposalBlock is valid but we have no Polka") return false } if rs.Proposal.POLRound >= rs.Round { + p.logger.Debug("prevote step: ProposalBlock is valid but POLRound is greater than or equal to our current round") return false } if rs.LockedRound <= rs.Proposal.POLRound { diff --git a/internal/consensus/state_prevoter_test.go b/internal/consensus/state_prevoter_test.go index 57e8620f5..efd8f7ee0 100644 --- a/internal/consensus/state_prevoter_test.go +++ b/internal/consensus/state_prevoter_test.go @@ -5,19 +5,19 @@ import ( "fmt" "regexp" "testing" - "time" "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/test/factory" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type PrevoterTestSuite struct { @@ -292,7 +292,7 @@ func (suite *PrevoterTestSuite) TestCheckPrevoteMaj23() { } func (suite *PrevoterTestSuite) makeValidStateData() StateData { - now := time.Now() + now := tmtime.Now() validState := sm.State{ InitialHeight: 1000, LastBlockTime: now, diff --git a/internal/consensus/state_proposaler.go b/internal/consensus/state_proposaler.go index 8c8b40cbf..48848927b 100644 --- a/internal/consensus/state_proposaler.go +++ b/internal/consensus/state_proposaler.go @@ -5,12 +5,12 @@ import ( "fmt" "time" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) // Proposaler is used to set and create a proposal @@ -103,7 +103,7 @@ func (p *Proposaler) Create(ctx context.Context, height int64, round int32, rs * logger.Error("propose step; failed signing proposal", "error", err) return err } - p.logger.Debug("replay; failed signing proposal", "proposal", proposal, "error", err) + p.logger.Error("replay; failed signing proposal", "proposal", proposal, "error", err) return err } p.logger.Debug("signed proposal", "proposal", proposal) @@ -160,7 +160,7 @@ func (p *Proposaler) checkValidBlock(rs *cstypes.RoundState) bool { return rs.ValidBlock.Time.Equal(p.committedState.LastBlockTime) } if !rs.ValidBlock.IsTimely(rs.ValidBlockRecvTime, sp, rs.ValidRound) { - p.logger.Debug( + p.logger.Error( "proposal block is outdated", "height", rs.Height, "round", rs.ValidRound, @@ -209,7 +209,7 @@ func (p *Proposaler) verifyProposal(proposal *types.Proposal, rs *cstypes.RoundS if proposer.PubKey.VerifySignatureDigest(proposalBlockSignID, proposal.Signature) { return nil } - p.logger.Debug( + p.logger.Error( "error verifying signature", "height", rs.Height, "proposal_height", proposal.Height, @@ -234,7 +234,7 @@ func (p *Proposaler) verifyProposalForNonValidatorSet(proposal *types.Proposal, // We need to verify that the commit block id is equal to the proposal block id if !proposal.BlockID.Equals(commit.BlockID) { proposer := rs.Validators.GetProposer() - p.logger.Debug("proposal blockID isn't the same as the commit blockID", + p.logger.Error("proposal blockID isn't the same as the commit blockID", "height", proposal.Height, "round", proposal.Round, "proposer_proTxHash", proposer.ProTxHash.ShortString()) diff --git a/internal/consensus/state_proposaler_test.go b/internal/consensus/state_proposaler_test.go index e9c4e58cd..9d98ddf95 100644 --- a/internal/consensus/state_proposaler_test.go +++ b/internal/consensus/state_proposaler_test.go @@ -9,14 +9,14 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/test/factory" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type ProposalerTestSuite struct { diff --git a/internal/consensus/state_test.go b/internal/consensus/state_test.go index efa79daea..2c3587b11 100644 --- a/internal/consensus/state_test.go +++ b/internal/consensus/state_test.go @@ -12,25 +12,25 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - abcimocks "github.com/tendermint/tendermint/abci/types/mocks" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - sf "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/test/factory" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmevents "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + abcimocks "github.com/dashpay/tenderdash/abci/types/mocks" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + sf "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/test/factory" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmevents "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) /* @@ -303,7 +303,7 @@ func TestStateProposalTime(t *testing.T) { expectNewBlock: false, }, { // TEST 1: BLOCK TIME IS IN FUTURE - blockTimeFunc: func(s *State) time.Time { return time.Now().Add(delay + precision + 24*time.Hour) }, + blockTimeFunc: func(s *State) time.Time { return tmtime.Now().Add(delay + precision + 24*time.Hour) }, expectNewBlock: true, }, { // TEST 2: BLOCK TIME IS OLDER THAN PREVIOUS BLOCK TIME diff --git a/internal/consensus/state_try_add_commit.go b/internal/consensus/state_try_add_commit.go index 4fb747467..4537d37a2 100644 --- a/internal/consensus/state_try_add_commit.go +++ b/internal/consensus/state_try_add_commit.go @@ -4,10 +4,10 @@ import ( "context" "fmt" - "github.com/tendermint/tendermint/dash" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/dash" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) type TryAddCommitEvent struct { @@ -46,7 +46,7 @@ func (cs *TryAddCommitAction) Execute(ctx context.Context, stateEvent StateEvent // We need to first verify that the commit received wasn't for a future round, // If it was then we must go to next round if commit.Height == rs.Height && commit.Round > rs.Round { - cs.logger.Debug("Commit received for a later round", "height", commit.Height, "our round", + cs.logger.Trace("Commit received for a later round", "height", commit.Height, "our round", rs.Round, "commit round", commit.Round) verified, err := cs.verifyCommit(ctx, stateData, commit, peerID, true) if err != nil { diff --git a/internal/consensus/state_try_finalize_commit.go b/internal/consensus/state_try_finalize_commit.go index bdd1097cf..dacdd443f 100644 --- a/internal/consensus/state_try_finalize_commit.go +++ b/internal/consensus/state_try_finalize_commit.go @@ -4,10 +4,10 @@ import ( "context" "fmt" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" ) type TryFinalizeCommitEvent struct { @@ -47,7 +47,7 @@ func (cs *TryFinalizeCommitAction) Execute(ctx context.Context, stateEvent State if !stateData.ProposalBlock.HashesTo(blockID.Hash) { // TODO: this happens every time if we're not a validator (ugly logs) // TODO: ^^ wait, why does it matter that we're a validator? - logger.Debug("failed attempt to finalize commit; we do not have the commit block", + logger.Trace("failed attempt to finalize commit; we do not have the commit block", "proposal_block", tmstrings.LazyBlockHash(stateData.ProposalBlock), "commit_block", blockID.Hash, ) @@ -88,6 +88,7 @@ func (cs *TryFinalizeCommitAction) finalizeCommit(ctx context.Context, ctrl *Con "hash", tmstrings.LazyBlockHash(block), "root", block.AppHash, "num_txs", len(block.Txs), + "block", block, ) precommits := stateData.Votes.Precommits(stateData.CommitRound) diff --git a/internal/consensus/ticker.go b/internal/consensus/ticker.go index 2594f96aa..a768854c6 100644 --- a/internal/consensus/ticker.go +++ b/internal/consensus/ticker.go @@ -4,8 +4,8 @@ import ( "context" "time" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) var ( @@ -93,7 +93,7 @@ func (t *timeoutTicker) timeoutRoutine(ctx context.Context) { for { select { case newti := <-t.tickChan: - t.logger.Debug("Received tick", "old_ti", ti, "new_ti", newti) + t.logger.Trace("Received tick", "old_ti", ti, "new_ti", newti) // ignore tickers for old height/round/step if newti.Height < ti.Height { @@ -115,7 +115,7 @@ func (t *timeoutTicker) timeoutRoutine(ctx context.Context) { // NOTE time.Timer allows duration to be non-positive ti = newti t.timer.Reset(ti.Duration) - t.logger.Debug("Internal state machine timeout scheduled", "duration", ti.Duration, "height", ti.Height, "round", ti.Round, "step", ti.Step.String()) + t.logger.Trace("Internal state machine timeout scheduled", "duration", ti.Duration, "height", ti.Height, "round", ti.Round, "step", ti.Step.String()) case <-t.timer.C: t.logger.Debug("Internal state machine timeout elapsed", "duration", ti.Duration, "height", ti.Height, "round", ti.Round, "step", ti.Step.String()) // go routine here guarantees timeoutRoutine doesn't block. diff --git a/internal/consensus/types/height_vote_set.go b/internal/consensus/types/height_vote_set.go index 34112ac84..2730f41c4 100644 --- a/internal/consensus/types/height_vote_set.go +++ b/internal/consensus/types/height_vote_set.go @@ -8,9 +8,9 @@ import ( sync "github.com/sasha-s/go-deadlock" - tmmath "github.com/tendermint/tendermint/libs/math" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type RoundVoteSet struct { diff --git a/internal/consensus/types/height_vote_set_test.go b/internal/consensus/types/height_vote_set_test.go index 4e43a9599..19223279b 100644 --- a/internal/consensus/types/height_vote_set_test.go +++ b/internal/consensus/types/height_vote_set_test.go @@ -7,11 +7,11 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestPeerCatchupRounds(t *testing.T) { diff --git a/internal/consensus/types/peer_round_state.go b/internal/consensus/types/peer_round_state.go index 1de9c8d7b..e5e2e3e6f 100644 --- a/internal/consensus/types/peer_round_state.go +++ b/internal/consensus/types/peer_round_state.go @@ -6,8 +6,8 @@ import ( "github.com/rs/zerolog" - "github.com/tendermint/tendermint/libs/bits" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/bits" + "github.com/dashpay/tenderdash/types" ) //----------------------------------------------------------------------------- diff --git a/internal/consensus/types/peer_round_state_test.go b/internal/consensus/types/peer_round_state_test.go index 6d76750a7..cbd59d6d4 100644 --- a/internal/consensus/types/peer_round_state_test.go +++ b/internal/consensus/types/peer_round_state_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/bits" + "github.com/dashpay/tenderdash/libs/bits" ) func TestCopy(t *testing.T) { diff --git a/internal/consensus/types/round_state.go b/internal/consensus/types/round_state.go index 1eef19644..8c9181b9a 100644 --- a/internal/consensus/types/round_state.go +++ b/internal/consensus/types/round_state.go @@ -6,10 +6,10 @@ import ( "strconv" "time" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/bytes" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - "github.com/tendermint/tendermint/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/bytes" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + "github.com/dashpay/tenderdash/types" ) //----------------------------------------------------------------------------- @@ -97,7 +97,7 @@ type RoundState struct { // Last known round with POL for non-nil valid block. ValidRound int32 `json:"valid_round"` ValidBlock *types.Block `json:"valid_block"` // Last known block of POL mentioned above. - ValidBlockRecvTime time.Time `json:"valid_block_time"` // Receive time of ast known block of POL mentioned above. + ValidBlockRecvTime time.Time `json:"valid_block_time"` // Receive time of last known block of POL mentioned above. // Last known block parts of POL mentioned above. ValidBlockParts *types.PartSet `json:"valid_block_parts"` diff --git a/internal/consensus/types/types.go b/internal/consensus/types/types.go index b2bd40fc8..55dbb373d 100644 --- a/internal/consensus/types/types.go +++ b/internal/consensus/types/types.go @@ -4,7 +4,7 @@ import ( "context" "time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // ProposalSetter updates a proposal for the round if all conditions are met diff --git a/internal/consensus/vote_signer.go b/internal/consensus/vote_signer.go index 727dd405a..62ef6cee3 100644 --- a/internal/consensus/vote_signer.go +++ b/internal/consensus/vote_signer.go @@ -4,11 +4,11 @@ import ( "context" "time" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/eventemitter" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/eventemitter" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // voteSigner provides the ability to sign and add a vote @@ -34,7 +34,7 @@ func (s *voteSigner) signAddVote( } // If the node not in the validator set, do nothing. if !stateData.Validators.HasProTxHash(s.privValidator.ProTxHash) { - s.logger.Debug("do nothing, node is not a part of validator set") + s.logger.Error("do nothing, node is not a part of validator set") return nil } keyVals := []any{"height", stateData.Height, "round", stateData.Round, "quorum_hash", stateData.Validators.QuorumHash} @@ -50,7 +50,7 @@ func (s *voteSigner) signAddVote( keyVals = append(keyVals, "error", err) } keyVals = append(keyVals, "vote", vote, "took", time.Since(start).String()) - s.logger.Debug("signed and pushed vote", keyVals...) + s.logger.Info("signed and pushed vote", keyVals...) return vote } diff --git a/internal/consensus/vote_signer_test.go b/internal/consensus/vote_signer_test.go index 43ca8582c..c9b236969 100644 --- a/internal/consensus/vote_signer_test.go +++ b/internal/consensus/vote_signer_test.go @@ -10,14 +10,14 @@ import ( bls "github.com/dashpay/bls-signatures/go-bindings" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/test/factory" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/test/factory" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestVoteSigner_signAddVote(t *testing.T) { diff --git a/internal/consensus/wal.go b/internal/consensus/wal.go index 94f9483c7..b615058bb 100644 --- a/internal/consensus/wal.go +++ b/internal/consensus/wal.go @@ -12,13 +12,13 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/internal/jsontypes" - auto "github.com/tendermint/tendermint/internal/libs/autofile" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - "github.com/tendermint/tendermint/libs/service" - tmtime "github.com/tendermint/tendermint/libs/time" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" + "github.com/dashpay/tenderdash/internal/jsontypes" + auto "github.com/dashpay/tenderdash/internal/libs/autofile" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + "github.com/dashpay/tenderdash/libs/service" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" ) const ( diff --git a/internal/consensus/wal_generator_test.go b/internal/consensus/wal_generator_test.go index 8d73ba465..15a1a9d9c 100644 --- a/internal/consensus/wal_generator_test.go +++ b/internal/consensus/wal_generator_test.go @@ -11,9 +11,9 @@ import ( "testing" "time" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" ) // WALGenerateNBlocks generates a consensus WAL. It does this by diff --git a/internal/consensus/wal_iter.go b/internal/consensus/wal_iter.go index bbe45aa76..5e52b11e8 100644 --- a/internal/consensus/wal_iter.go +++ b/internal/consensus/wal_iter.go @@ -4,8 +4,8 @@ import ( "fmt" "io" - cstypes "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/types" + cstypes "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/types" ) type walIter interface { diff --git a/internal/consensus/wal_iter_test.go b/internal/consensus/wal_iter_test.go index d6550c26b..74e7d05fa 100644 --- a/internal/consensus/wal_iter_test.go +++ b/internal/consensus/wal_iter_test.go @@ -9,9 +9,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/consensus/types" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/consensus/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + tmtypes "github.com/dashpay/tenderdash/types" ) func TestWalIter_Next(t *testing.T) { diff --git a/internal/consensus/wal_test.go b/internal/consensus/wal_test.go index 77fb3f7a3..cdc703da2 100644 --- a/internal/consensus/wal_test.go +++ b/internal/consensus/wal_test.go @@ -13,13 +13,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/internal/consensus/types" - "github.com/tendermint/tendermint/internal/libs/autofile" - "github.com/tendermint/tendermint/libs/log" - tmtime "github.com/tendermint/tendermint/libs/time" - tmtypes "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/internal/consensus/types" + "github.com/dashpay/tenderdash/internal/libs/autofile" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmtypes "github.com/dashpay/tenderdash/types" ) const walTestFlushInterval = 100 * time.Millisecond diff --git a/internal/eventbus/event_bus.go b/internal/eventbus/event_bus.go index 0743b04b0..05dbdcbc8 100644 --- a/internal/eventbus/event_bus.go +++ b/internal/eventbus/event_bus.go @@ -5,12 +5,12 @@ import ( "fmt" "strings" - abci "github.com/tendermint/tendermint/abci/types" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/types" ) // Subscription is a proxy interface for a pubsub Subscription. diff --git a/internal/eventbus/event_bus_test.go b/internal/eventbus/event_bus_test.go index d1899d401..c0d5b3bb7 100644 --- a/internal/eventbus/event_bus_test.go +++ b/internal/eventbus/event_bus_test.go @@ -11,14 +11,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/eventbus" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) func TestEventBusPublishEventTx(t *testing.T) { diff --git a/internal/eventlog/cursor/cursor_test.go b/internal/eventlog/cursor/cursor_test.go index 31701ddf7..fc3947d7a 100644 --- a/internal/eventlog/cursor/cursor_test.go +++ b/internal/eventlog/cursor/cursor_test.go @@ -5,7 +5,7 @@ import ( "testing" "time" - "github.com/tendermint/tendermint/internal/eventlog/cursor" + "github.com/dashpay/tenderdash/internal/eventlog/cursor" ) func mustParse(t *testing.T, s string) cursor.Cursor { diff --git a/internal/eventlog/eventlog.go b/internal/eventlog/eventlog.go index eb8f08b7f..a778186e7 100644 --- a/internal/eventlog/eventlog.go +++ b/internal/eventlog/eventlog.go @@ -13,8 +13,8 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/eventlog/cursor" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/eventlog/cursor" + "github.com/dashpay/tenderdash/types" ) // A Log is a reverse time-ordered log of events in a sliding window of time diff --git a/internal/eventlog/eventlog_test.go b/internal/eventlog/eventlog_test.go index c90fce7ed..8344b1eba 100644 --- a/internal/eventlog/eventlog_test.go +++ b/internal/eventlog/eventlog_test.go @@ -14,9 +14,9 @@ import ( "github.com/fortytw2/leaktest" "github.com/google/go-cmp/cmp" - "github.com/tendermint/tendermint/internal/eventlog" - "github.com/tendermint/tendermint/internal/eventlog/cursor" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/eventlog" + "github.com/dashpay/tenderdash/internal/eventlog/cursor" + "github.com/dashpay/tenderdash/types" ) // fakeTime is a fake clock to use to control cursor assignment. diff --git a/internal/eventlog/item.go b/internal/eventlog/item.go index f1f43b46d..8d834b289 100644 --- a/internal/eventlog/item.go +++ b/internal/eventlog/item.go @@ -3,9 +3,9 @@ package eventlog import ( "strings" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/eventlog/cursor" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/eventlog/cursor" + "github.com/dashpay/tenderdash/types" ) // Cached constants for the pieces of reserved event names. diff --git a/internal/evidence/mocks/block_store.go b/internal/evidence/mocks/block_store.go index e61c4e0ae..344c2f799 100644 --- a/internal/evidence/mocks/block_store.go +++ b/internal/evidence/mocks/block_store.go @@ -3,8 +3,8 @@ package mocks import ( + types "github.com/dashpay/tenderdash/types" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" ) // BlockStore is an autogenerated mock type for the BlockStore type @@ -58,13 +58,12 @@ func (_m *BlockStore) LoadBlockMeta(height int64) *types.BlockMeta { return r0 } -type mockConstructorTestingTNewBlockStore interface { +// NewBlockStore creates a new instance of BlockStore. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewBlockStore(t interface { mock.TestingT Cleanup(func()) -} - -// NewBlockStore creates a new instance of BlockStore. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewBlockStore(t mockConstructorTestingTNewBlockStore) *BlockStore { +}) *BlockStore { mock := &BlockStore{} mock.Mock.Test(t) diff --git a/internal/evidence/pool.go b/internal/evidence/pool.go index 117c00281..bf8f607ff 100644 --- a/internal/evidence/pool.go +++ b/internal/evidence/pool.go @@ -15,12 +15,12 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/internal/eventbus" - clist "github.com/tendermint/tendermint/internal/libs/clist" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/eventbus" + clist "github.com/dashpay/tenderdash/internal/libs/clist" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // key prefixes diff --git a/internal/evidence/pool_test.go b/internal/evidence/pool_test.go index 378be22e6..1669a4714 100644 --- a/internal/evidence/pool_test.go +++ b/internal/evidence/pool_test.go @@ -11,18 +11,18 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/evidence" - "github.com/tendermint/tendermint/internal/evidence/mocks" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - sm "github.com/tendermint/tendermint/internal/state" - smmocks "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/evidence" + "github.com/dashpay/tenderdash/internal/evidence/mocks" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + sm "github.com/dashpay/tenderdash/internal/state" + smmocks "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) const evidenceChainID = "test_chain" diff --git a/internal/evidence/reactor.go b/internal/evidence/reactor.go index e59b951ae..79478761f 100644 --- a/internal/evidence/reactor.go +++ b/internal/evidence/reactor.go @@ -8,12 +8,12 @@ import ( sync "github.com/sasha-s/go-deadlock" - clist "github.com/tendermint/tendermint/internal/libs/clist" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + clist "github.com/dashpay/tenderdash/internal/libs/clist" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var _ service.Service = (*Reactor)(nil) diff --git a/internal/evidence/reactor_test.go b/internal/evidence/reactor_test.go index 5c39ff0ad..5fb858511 100644 --- a/internal/evidence/reactor_test.go +++ b/internal/evidence/reactor_test.go @@ -16,17 +16,17 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/evidence" - "github.com/tendermint/tendermint/internal/evidence/mocks" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/p2ptest" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/evidence" + "github.com/dashpay/tenderdash/internal/evidence/mocks" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/p2ptest" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/evidence/services.go b/internal/evidence/services.go index 473999b21..c71783a27 100644 --- a/internal/evidence/services.go +++ b/internal/evidence/services.go @@ -1,7 +1,7 @@ package evidence import ( - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) //go:generate ../../scripts/mockery_generate.sh BlockStore diff --git a/internal/evidence/verify.go b/internal/evidence/verify.go index 58c4c4a2d..8e4d7998d 100644 --- a/internal/evidence/verify.go +++ b/internal/evidence/verify.go @@ -5,7 +5,7 @@ import ( "context" "fmt" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // verify verifies the evidence fully by checking: diff --git a/internal/evidence/verify_test.go b/internal/evidence/verify_test.go index 43c093b05..39e678f51 100644 --- a/internal/evidence/verify_test.go +++ b/internal/evidence/verify_test.go @@ -10,15 +10,15 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/evidence" - "github.com/tendermint/tendermint/internal/evidence/mocks" - sm "github.com/tendermint/tendermint/internal/state" - smmocks "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/evidence" + "github.com/dashpay/tenderdash/internal/evidence/mocks" + sm "github.com/dashpay/tenderdash/internal/state" + smmocks "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type voteData struct { diff --git a/internal/inspect/inspect.go b/internal/inspect/inspect.go index 573b63f40..4db926bdb 100644 --- a/internal/inspect/inspect.go +++ b/internal/inspect/inspect.go @@ -7,17 +7,17 @@ import ( "net" "net/http" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/inspect/rpc" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - rpccore "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/indexer/sink" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/inspect/rpc" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + rpccore "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/indexer/sink" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" "golang.org/x/sync/errgroup" ) diff --git a/internal/inspect/inspect_test.go b/internal/inspect/inspect_test.go index 8159285d2..f5e7fcdb1 100644 --- a/internal/inspect/inspect_test.go +++ b/internal/inspect/inspect_test.go @@ -16,17 +16,17 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - abcitypes "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/inspect" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - indexermocks "github.com/tendermint/tendermint/internal/state/indexer/mocks" - statemocks "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/proto/tendermint/state" - httpclient "github.com/tendermint/tendermint/rpc/client/http" - "github.com/tendermint/tendermint/types" + abcitypes "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/inspect" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + indexermocks "github.com/dashpay/tenderdash/internal/state/indexer/mocks" + statemocks "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/proto/tendermint/state" + httpclient "github.com/dashpay/tenderdash/rpc/client/http" + "github.com/dashpay/tenderdash/types" ) func TestInspectConstructor(t *testing.T) { diff --git a/internal/inspect/rpc/rpc.go b/internal/inspect/rpc/rpc.go index d70616834..16a9dc53c 100644 --- a/internal/inspect/rpc/rpc.go +++ b/internal/inspect/rpc/rpc.go @@ -7,13 +7,13 @@ import ( "github.com/rs/cors" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/rpc/jsonrpc/server" ) // Server defines parameters for running an Inspector rpc server. diff --git a/internal/jsontypes/jsontypes_test.go b/internal/jsontypes/jsontypes_test.go index 223e25c34..8e666cebb 100644 --- a/internal/jsontypes/jsontypes_test.go +++ b/internal/jsontypes/jsontypes_test.go @@ -3,7 +3,7 @@ package jsontypes_test import ( "testing" - "github.com/tendermint/tendermint/internal/jsontypes" + "github.com/dashpay/tenderdash/internal/jsontypes" ) type testPtrType struct { diff --git a/internal/libs/autofile/autofile.go b/internal/libs/autofile/autofile.go index c51480f4d..7f2dcc0ee 100644 --- a/internal/libs/autofile/autofile.go +++ b/internal/libs/autofile/autofile.go @@ -12,7 +12,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - tmrand "github.com/tendermint/tendermint/libs/rand" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) /* AutoFile usage diff --git a/internal/libs/autofile/cmd/logjack.go b/internal/libs/autofile/cmd/logjack.go index c3c466503..d1bacbbb7 100644 --- a/internal/libs/autofile/cmd/logjack.go +++ b/internal/libs/autofile/cmd/logjack.go @@ -12,8 +12,8 @@ import ( "strings" "syscall" - auto "github.com/tendermint/tendermint/internal/libs/autofile" - "github.com/tendermint/tendermint/libs/log" + auto "github.com/dashpay/tenderdash/internal/libs/autofile" + "github.com/dashpay/tenderdash/libs/log" ) const Version = "0.0.1" diff --git a/internal/libs/autofile/group.go b/internal/libs/autofile/group.go index 34097c195..fbc77fde0 100644 --- a/internal/libs/autofile/group.go +++ b/internal/libs/autofile/group.go @@ -15,8 +15,8 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) const ( diff --git a/internal/libs/autofile/group_test.go b/internal/libs/autofile/group_test.go index 4f5e346c2..337e36f72 100644 --- a/internal/libs/autofile/group_test.go +++ b/internal/libs/autofile/group_test.go @@ -10,9 +10,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) func createTestGroupWithHeadSizeLimit(ctx context.Context, t *testing.T, logger log.Logger, headSizeLimit int64) *Group { diff --git a/internal/libs/clist/clist_property_test.go b/internal/libs/clist/clist_property_test.go index cdc173ee5..b33ab21aa 100644 --- a/internal/libs/clist/clist_property_test.go +++ b/internal/libs/clist/clist_property_test.go @@ -6,7 +6,7 @@ import ( "github.com/stretchr/testify/require" "pgregory.net/rapid" - "github.com/tendermint/tendermint/internal/libs/clist" + "github.com/dashpay/tenderdash/internal/libs/clist" ) func TestCListProperties(t *testing.T) { diff --git a/internal/libs/confix/confix.go b/internal/libs/confix/confix.go index a9449fa22..872964fcc 100644 --- a/internal/libs/confix/confix.go +++ b/internal/libs/confix/confix.go @@ -16,7 +16,7 @@ import ( "github.com/creachadair/tomledit/transform" "github.com/spf13/viper" - "github.com/tendermint/tendermint/config" + "github.com/dashpay/tenderdash/config" ) // Upgrade reads the configuration file at configPath and applies any diff --git a/internal/libs/confix/confix_test.go b/internal/libs/confix/confix_test.go index dc0042fe5..4ef1574d3 100644 --- a/internal/libs/confix/confix_test.go +++ b/internal/libs/confix/confix_test.go @@ -9,7 +9,7 @@ import ( "github.com/creachadair/tomledit" "github.com/google/go-cmp/cmp" - "github.com/tendermint/tendermint/internal/libs/confix" + "github.com/dashpay/tenderdash/internal/libs/confix" ) func mustParseConfig(t *testing.T, path string) *tomledit.Document { diff --git a/internal/libs/protoio/io_test.go b/internal/libs/protoio/io_test.go index 4420ad786..4c57005e4 100644 --- a/internal/libs/protoio/io_test.go +++ b/internal/libs/protoio/io_test.go @@ -41,7 +41,7 @@ import ( "github.com/gogo/protobuf/test" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/libs/protoio" + "github.com/dashpay/tenderdash/internal/libs/protoio" ) func iotest(t *testing.T, writer protoio.WriteCloser, reader protoio.ReadCloser) error { diff --git a/internal/libs/protoio/writer_test.go b/internal/libs/protoio/writer_test.go index 520bac1f6..d1a3a8cee 100644 --- a/internal/libs/protoio/writer_test.go +++ b/internal/libs/protoio/writer_test.go @@ -6,10 +6,10 @@ import ( "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func aVote(t testing.TB) *types.Vote { diff --git a/internal/libs/strings/string.go b/internal/libs/strings/string.go index 067f31ffc..fb5b1c785 100644 --- a/internal/libs/strings/string.go +++ b/internal/libs/strings/string.go @@ -4,7 +4,7 @@ import ( "fmt" "strings" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) type lazyStringf struct { diff --git a/internal/libs/sync/waker_test.go b/internal/libs/sync/waker_test.go index b63dc5eb1..ed99d96e7 100644 --- a/internal/libs/sync/waker_test.go +++ b/internal/libs/sync/waker_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - tmsync "github.com/tendermint/tendermint/internal/libs/sync" + tmsync "github.com/dashpay/tenderdash/internal/libs/sync" ) func TestWaker(t *testing.T) { diff --git a/internal/libs/tempfile/tempfile_test.go b/internal/libs/tempfile/tempfile_test.go index aee540c59..7e984b85a 100644 --- a/internal/libs/tempfile/tempfile_test.go +++ b/internal/libs/tempfile/tempfile_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/require" - tmrand "github.com/tendermint/tendermint/libs/rand" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) func TestWriteFileAtomic(t *testing.T) { diff --git a/internal/mempool/cache.go b/internal/mempool/cache.go index 140ea9791..7dfbff2b4 100644 --- a/internal/mempool/cache.go +++ b/internal/mempool/cache.go @@ -5,7 +5,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // TxCache defines an interface for raw transaction caching in a mempool. diff --git a/internal/mempool/ids.go b/internal/mempool/ids.go index 28867023a..74ca28001 100644 --- a/internal/mempool/ids.go +++ b/internal/mempool/ids.go @@ -5,7 +5,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type IDs struct { diff --git a/internal/mempool/ids_test.go b/internal/mempool/ids_test.go index 6601706bc..42fb4412a 100644 --- a/internal/mempool/ids_test.go +++ b/internal/mempool/ids_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestMempoolIDsBasic(t *testing.T) { diff --git a/internal/mempool/mempool.go b/internal/mempool/mempool.go index c88535107..e75707e30 100644 --- a/internal/mempool/mempool.go +++ b/internal/mempool/mempool.go @@ -8,17 +8,16 @@ import ( "sync/atomic" "time" - sync "github.com/sasha-s/go-deadlock" - "github.com/creachadair/taskgroup" + sync "github.com/sasha-s/go-deadlock" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/libs/clist" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/libs/clist" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) var _ Mempool = (*TxMempool)(nil) diff --git a/internal/mempool/mempool_bench_test.go b/internal/mempool/mempool_bench_test.go index e4d84a700..bf79d3259 100644 --- a/internal/mempool/mempool_bench_test.go +++ b/internal/mempool/mempool_bench_test.go @@ -9,9 +9,9 @@ import ( "github.com/stretchr/testify/require" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/libs/log" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/libs/log" ) func BenchmarkTxMempool_CheckTx(b *testing.B) { diff --git a/internal/mempool/mempool_test.go b/internal/mempool/mempool_test.go index 50b6f73c8..61796affa 100644 --- a/internal/mempool/mempool_test.go +++ b/internal/mempool/mempool_test.go @@ -18,13 +18,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/code" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/code" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) // application extends the KV store application by overriding CheckTx to provide diff --git a/internal/mempool/mocks/mempool.go b/internal/mempool/mocks/mempool.go index e244c765d..890e3d7b4 100644 --- a/internal/mempool/mocks/mempool.go +++ b/internal/mempool/mocks/mempool.go @@ -5,13 +5,13 @@ package mocks import ( context "context" - abcitypes "github.com/tendermint/tendermint/abci/types" + abcitypes "github.com/dashpay/tenderdash/abci/types" - mempool "github.com/tendermint/tendermint/internal/mempool" + mempool "github.com/dashpay/tenderdash/internal/mempool" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // Mempool is an autogenerated mock type for the Mempool type @@ -171,13 +171,12 @@ func (_m *Mempool) Update(ctx context.Context, blockHeight int64, blockTxs types return r0 } -type mockConstructorTestingTNewMempool interface { +// NewMempool creates a new instance of Mempool. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMempool(t interface { mock.TestingT Cleanup(func()) -} - -// NewMempool creates a new instance of Mempool. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewMempool(t mockConstructorTestingTNewMempool) *Mempool { +}) *Mempool { mock := &Mempool{} mock.Mock.Test(t) diff --git a/internal/mempool/p2p_msg_handler.go b/internal/mempool/p2p_msg_handler.go index de44b8782..c93fc6177 100644 --- a/internal/mempool/p2p_msg_handler.go +++ b/internal/mempool/p2p_msg_handler.go @@ -5,11 +5,11 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/libs/log" - protomem "github.com/tendermint/tendermint/proto/tendermint/mempool" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/libs/log" + protomem "github.com/dashpay/tenderdash/proto/tendermint/mempool" + "github.com/dashpay/tenderdash/types" ) type ( diff --git a/internal/mempool/p2p_msg_handler_test.go b/internal/mempool/p2p_msg_handler_test.go index 02b2d8ea0..b9d39793b 100644 --- a/internal/mempool/p2p_msg_handler_test.go +++ b/internal/mempool/p2p_msg_handler_test.go @@ -7,12 +7,12 @@ import ( "github.com/stretchr/testify/mock" - abcitypes "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/p2p" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - "github.com/tendermint/tendermint/libs/log" - protomem "github.com/tendermint/tendermint/proto/tendermint/mempool" - "github.com/tendermint/tendermint/types" + abcitypes "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/p2p" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/libs/log" + protomem "github.com/dashpay/tenderdash/proto/tendermint/mempool" + "github.com/dashpay/tenderdash/types" ) func TestMempoolP2PMessageHandler(t *testing.T) { diff --git a/internal/mempool/reactor.go b/internal/mempool/reactor.go index 91ad7aad6..6794e8a62 100644 --- a/internal/mempool/reactor.go +++ b/internal/mempool/reactor.go @@ -6,14 +6,14 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/libs/clist" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/libs/clist" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/mempool/reactor_test.go b/internal/mempool/reactor_test.go index df34c3329..6ebbdae2c 100644 --- a/internal/mempool/reactor_test.go +++ b/internal/mempool/reactor_test.go @@ -13,15 +13,15 @@ import ( sync "github.com/sasha-s/go-deadlock" "github.com/stretchr/testify/require" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/p2ptest" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/p2ptest" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" ) type reactorTestSuite struct { diff --git a/internal/mempool/tx.go b/internal/mempool/tx.go index eef2d283c..e27b19905 100644 --- a/internal/mempool/tx.go +++ b/internal/mempool/tx.go @@ -5,7 +5,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // TxInfo are parameters that get passed when attempting to add a tx to the diff --git a/internal/mempool/types.go b/internal/mempool/types.go index d4e552c96..28b3dc7f3 100644 --- a/internal/mempool/types.go +++ b/internal/mempool/types.go @@ -5,8 +5,8 @@ import ( "fmt" "math" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/p2p/address.go b/internal/p2p/address.go index 0f4066faf..45224f506 100644 --- a/internal/p2p/address.go +++ b/internal/p2p/address.go @@ -10,7 +10,7 @@ import ( "strconv" "strings" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/p2p/address_test.go b/internal/p2p/address_test.go index bd1dda75c..f8c0572d7 100644 --- a/internal/p2p/address_test.go +++ b/internal/p2p/address_test.go @@ -7,9 +7,10 @@ import ( "testing" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/types" + + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/types" ) func TestNewNodeID(t *testing.T) { diff --git a/internal/p2p/channel.go b/internal/p2p/channel.go index 3a416001f..9e8cb3283 100644 --- a/internal/p2p/channel.go +++ b/internal/p2p/channel.go @@ -13,8 +13,8 @@ import ( "github.com/rs/zerolog" sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) // Envelope contains a message with sender/receiver routing info. diff --git a/internal/p2p/channel_params.go b/internal/p2p/channel_params.go index c7e685cb4..8a0aa8418 100644 --- a/internal/p2p/channel_params.go +++ b/internal/p2p/channel_params.go @@ -5,24 +5,41 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/proto/tendermint/consensus" - "github.com/tendermint/tendermint/proto/tendermint/mempool" - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/proto/tendermint/statesync" - prototypes "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/proto/tendermint/consensus" + "github.com/dashpay/tenderdash/proto/tendermint/mempool" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/proto/tendermint/statesync" + prototypes "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( ErrorChannel = ChannelID(0x10) // BlockSyncChannel is a channelStore for blocks and status updates BlockSyncChannel = ChannelID(0x40) + // SnapshotChannel exchanges snapshot metadata + SnapshotChannel = ChannelID(0x60) + // ChunkChannel exchanges chunk contents + ChunkChannel = ChannelID(0x61) + // LightBlockChannel exchanges light blocks + LightBlockChannel = ChannelID(0x62) + // ParamsChannel exchanges consensus params + ParamsChannel = ChannelID(0x63) MempoolChannel = ChannelID(0x30) blockMaxMsgSize = 1048576 // 1MB TODO make it configurable + + // snapshotMsgSize is the maximum size of a snapshotResponseMessage + snapshotMsgSize = int(4e6) // ~4MB + // chunkMsgSize is the maximum size of a chunkResponseMessage + chunkMsgSize = int(16e6) // ~16MB + // lightBlockMsgSize is the maximum size of a lightBlockResponseMessage + lightBlockMsgSize = int(1e7) // ~1MB + // paramMsgSize is the maximum size of a paramsResponseMessage + paramMsgSize = int(1e5) // ~100kb ) // ChannelDescriptors returns a map of all supported descriptors @@ -52,6 +69,38 @@ func ChannelDescriptors(cfg *config.Config) map[ChannelID]*ChannelDescriptor { RecvBufferCapacity: 128, Name: "mempool", }, + SnapshotChannel: { + ID: SnapshotChannel, + Priority: 6, + SendQueueCapacity: 10, + RecvMessageCapacity: snapshotMsgSize, + RecvBufferCapacity: 128, + Name: "snapshot", + }, + ChunkChannel: { + ID: ChunkChannel, + Priority: 3, + SendQueueCapacity: 4, + RecvMessageCapacity: chunkMsgSize, + RecvBufferCapacity: 128, + Name: "chunk", + }, + LightBlockChannel: { + ID: LightBlockChannel, + Priority: 5, + SendQueueCapacity: 10, + RecvMessageCapacity: lightBlockMsgSize, + RecvBufferCapacity: 128, + Name: "light-block", + }, + ParamsChannel: { + ID: ParamsChannel, + Priority: 2, + SendQueueCapacity: 10, + RecvMessageCapacity: paramMsgSize, + RecvBufferCapacity: 128, + Name: "params", + }, } } @@ -65,6 +114,18 @@ func ResolveChannelID(msg proto.Message) ChannelID { *blocksync.StatusRequest, *blocksync.StatusResponse: return BlockSyncChannel + case *statesync.ChunkRequest, + *statesync.ChunkResponse: + return ChunkChannel + case *statesync.SnapshotsRequest, + *statesync.SnapshotsResponse: + return SnapshotChannel + case *statesync.ParamsRequest, + *statesync.ParamsResponse: + return ParamsChannel + case *statesync.LightBlockRequest, + *statesync.LightBlockResponse: + return LightBlockChannel case *consensus.NewRoundStep, *consensus.NewValidBlock, *consensus.Proposal, @@ -75,15 +136,16 @@ func ResolveChannelID(msg proto.Message) ChannelID { *consensus.VoteSetMaj23, *consensus.VoteSetBits, *consensus.Commit, - *consensus.HasCommit, - *statesync.SnapshotsRequest, - *statesync.SnapshotsResponse, - *statesync.ChunkRequest, - *statesync.ChunkResponse, - *statesync.LightBlockRequest, - *statesync.LightBlockResponse, - *statesync.ParamsRequest, - *statesync.ParamsResponse: + *consensus.HasCommit: + // TODO: enable these channels when they are implemented + //*statesync.SnapshotsRequest, + //*statesync.SnapshotsResponse, + //*statesync.ChunkRequest, + //*statesync.ChunkResponse, + //*statesync.LightBlockRequest, + //*statesync.LightBlockResponse, + //*statesync.ParamsRequest, + //*statesync.ParamsResponse: case *p2pproto.PexRequest, *p2pproto.PexResponse, *p2pproto.Echo: diff --git a/internal/p2p/client/chanstore.go b/internal/p2p/client/chanstore.go index 59e8657b0..e49c3994f 100644 --- a/internal/p2p/client/chanstore.go +++ b/internal/p2p/client/chanstore.go @@ -5,7 +5,7 @@ import ( "fmt" "sync" - "github.com/tendermint/tendermint/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p" ) type ( diff --git a/internal/p2p/client/client.go b/internal/p2p/client/client.go index 0f32bd9d7..fffc4a36d 100644 --- a/internal/p2p/client/client.go +++ b/internal/p2p/client/client.go @@ -1,4 +1,5 @@ //go:generate ../../../scripts/mockery_generate.sh BlockClient +//go:generate ../../../scripts/mockery_generate.sh SnapshotClient package client @@ -14,12 +15,13 @@ import ( "github.com/hashicorp/go-multierror" "github.com/jonboulle/clockwork" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/promise" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" - protomem "github.com/tendermint/tendermint/proto/tendermint/mempool" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/promise" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + protomem "github.com/dashpay/tenderdash/proto/tendermint/mempool" + "github.com/dashpay/tenderdash/proto/tendermint/statesync" + "github.com/dashpay/tenderdash/types" ) // These attributes should use as a key in Envelope.Attributes map @@ -52,7 +54,39 @@ type ( // GetSyncStatus requests a block synchronization status from all connected peers GetSyncStatus(ctx context.Context) error } + // SnapshotClient defines the methods which must be implemented by snapshot client + SnapshotClient interface { + // GetSnapshots requests a list of available snapshots from a peer without handling the response. + // The snapshots will be sent by peer asynchronously and should be received by reading the channel separately. + // The method returns an error if the request is not possible to send to the peer. + GetSnapshots(ctx context.Context, peerID types.NodeID) error + // GetChunk requests a snapshot chunk from a peer and returns a promise.Promise which will be resolved + // as a response will be received or rejected by timeout, otherwise returns an error + GetChunk( + ctx context.Context, + peerID types.NodeID, + height uint64, + format uint32, + index uint32, + ) (*promise.Promise[*statesync.ChunkResponse], error) + // GetParams requests a snapshot params from a peer. + // The method returns a promise.Promise which will be resolved. + GetParams( + ctx context.Context, + peerID types.NodeID, + height uint64, + ) (*promise.Promise[*statesync.ParamsResponse], error) + // GetLightBlock requests a light block from a peer. + // The method returns a promise.Promise which will be resolved. + GetLightBlock( + ctx context.Context, + peerID types.NodeID, + height uint64, + ) (*promise.Promise[*statesync.LightBlockResponse], error) + } + // TxSender is the interface that wraps SendTxs method TxSender interface { + // SendTxs sends a transaction to a peer SendTxs(ctx context.Context, peerID types.NodeID, tx types.Tx) error } // Client is a stateful implementation of a client, which means that the client stores a request ID @@ -113,22 +147,68 @@ func New(descriptors map[p2p.ChannelID]*p2p.ChannelDescriptor, creator p2p.Chann // if response received in time otherwise reject func (c *Client) GetBlock(ctx context.Context, height int64, peerID types.NodeID) (*promise.Promise[*bcproto.BlockResponse], error) { reqID := uuid.NewString() - err := c.Send(ctx, p2p.Envelope{ - Attributes: map[string]string{RequestIDAttribute: reqID}, + msg := &bcproto.BlockRequest{Height: height} + respCh, err := c.sendWithResponse(ctx, reqID, peerID, msg) + if err != nil { + return nil, err + } + return newPromise[*bcproto.BlockResponse](ctx, peerID, reqID, respCh, c), nil +} + +// GetChunk requests a chunk from a peer and returns promise.Promise which resolve the result +func (c *Client) GetChunk( + ctx context.Context, + peerID types.NodeID, + height uint64, + version uint32, + chunkID []byte, +) (*promise.Promise[*statesync.ChunkResponse], error) { + reqID := uuid.NewString() + msg := &statesync.ChunkRequest{Height: height, Version: version, ChunkId: chunkID} + respCh, err := c.sendWithResponse(ctx, reqID, peerID, msg) + if err != nil { + return nil, err + } + return newPromise[*statesync.ChunkResponse](ctx, peerID, reqID, respCh, c), nil +} + +// GetSnapshots requests snapshots from a peer +func (c *Client) GetSnapshots(ctx context.Context, peerID types.NodeID) error { + return c.Send(ctx, p2p.Envelope{ + Attributes: map[string]string{RequestIDAttribute: uuid.NewString()}, To: peerID, - Message: &bcproto.BlockRequest{Height: height}, + Message: &statesync.SnapshotsRequest{}, }) +} + +// GetParams returns a promise.Promise which resolve the result if response received in time otherwise reject +func (c *Client) GetParams( + ctx context.Context, + peerID types.NodeID, + height uint64, +) (*promise.Promise[*statesync.ParamsResponse], error) { + reqID := uuid.NewString() + msg := &statesync.ParamsRequest{Height: height} + respCh, err := c.sendWithResponse(ctx, reqID, peerID, msg) if err != nil { - errSendError := c.Send(ctx, p2p.PeerError{ - NodeID: peerID, - Err: err, - }) - if errSendError != nil { - return nil, multierror.Append(err, errSendError) - } + return nil, err } - respCh := c.addPending(reqID) - return newPromise[*bcproto.BlockResponse](ctx, peerID, reqID, respCh, c), nil + return newPromise[*statesync.ParamsResponse](ctx, peerID, reqID, respCh, c), nil +} + +// GetLightBlock returns a promise.Promise which resolve the result if response received in time otherwise reject +func (c *Client) GetLightBlock( + ctx context.Context, + peerID types.NodeID, + height uint64, +) (*promise.Promise[*statesync.LightBlockResponse], error) { + reqID := uuid.NewString() + msg := &statesync.LightBlockRequest{Height: height} + respCh, err := c.sendWithResponse(ctx, reqID, peerID, msg) + if err != nil { + return nil, err + } + return newPromise[*statesync.LightBlockResponse](ctx, peerID, reqID, respCh, c), nil } // GetSyncStatus requests a block synchronization status from all connected peers @@ -238,6 +318,24 @@ func (c *Client) resolveMessage(ctx context.Context, respID string, res result) return nil } +func (c *Client) sendWithResponse(ctx context.Context, reqID string, peerID types.NodeID, msg proto.Message) (chan result, error) { + err := c.Send(ctx, p2p.Envelope{ + Attributes: map[string]string{RequestIDAttribute: reqID}, + To: peerID, + Message: msg, + }) + if err != nil { + errSendError := c.Send(ctx, p2p.PeerError{ + NodeID: peerID, + Err: err, + }) + if errSendError != nil { + return nil, multierror.Append(err, errSendError) + } + } + return c.addPending(reqID), nil +} + func (c *Client) addPending(reqID string) chan result { respCh := make(chan result, 1) c.pending.Store(reqID, respCh) diff --git a/internal/p2p/client/client_test.go b/internal/p2p/client/client_test.go index c401ebaab..5a02123db 100644 --- a/internal/p2p/client/client_test.go +++ b/internal/p2p/client/client_test.go @@ -14,12 +14,12 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/mocks" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/mocks" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const testChannelID = 0x1 diff --git a/internal/p2p/client/consumer.go b/internal/p2p/client/consumer.go index 3308c4e15..6038737d7 100644 --- a/internal/p2p/client/consumer.go +++ b/internal/p2p/client/consumer.go @@ -5,8 +5,8 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" ) var ( diff --git a/internal/p2p/client/consumer_test.go b/internal/p2p/client/consumer_test.go index 328db810b..cfacda026 100644 --- a/internal/p2p/client/consumer_test.go +++ b/internal/p2p/client/consumer_test.go @@ -9,11 +9,11 @@ import ( "github.com/google/uuid" "github.com/stretchr/testify/mock" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/internal/p2p" - tmrequire "github.com/tendermint/tendermint/internal/test/require" - bcproto "github.com/tendermint/tendermint/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/internal/p2p" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" + "github.com/dashpay/tenderdash/libs/log" + bcproto "github.com/dashpay/tenderdash/proto/tendermint/blocksync" ) func TestErrorLoggerP2PMessageHandler(t *testing.T) { diff --git a/internal/p2p/client/mocks/block_client.go b/internal/p2p/client/mocks/block_client.go index cd428e08b..b094d38cc 100644 --- a/internal/p2p/client/mocks/block_client.go +++ b/internal/p2p/client/mocks/block_client.go @@ -3,15 +3,15 @@ package mocks import ( - blocksync "github.com/tendermint/tendermint/proto/tendermint/blocksync" + blocksync "github.com/dashpay/tenderdash/proto/tendermint/blocksync" context "context" mock "github.com/stretchr/testify/mock" - promise "github.com/tendermint/tendermint/libs/promise" + promise "github.com/dashpay/tenderdash/libs/promise" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // BlockClient is an autogenerated mock type for the BlockClient type @@ -73,13 +73,12 @@ func (_m *BlockClient) Send(ctx context.Context, msg interface{}) error { return r0 } -type mockConstructorTestingTNewBlockClient interface { +// NewBlockClient creates a new instance of BlockClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewBlockClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewBlockClient creates a new instance of BlockClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewBlockClient(t mockConstructorTestingTNewBlockClient) *BlockClient { +}) *BlockClient { mock := &BlockClient{} mock.Mock.Test(t) diff --git a/internal/p2p/client/mocks/snapshot_client.go b/internal/p2p/client/mocks/snapshot_client.go new file mode 100644 index 000000000..e2eb8d643 --- /dev/null +++ b/internal/p2p/client/mocks/snapshot_client.go @@ -0,0 +1,125 @@ +// Code generated by mockery. DO NOT EDIT. + +package mocks + +import ( + context "context" + + promise "github.com/dashpay/tenderdash/libs/promise" + mock "github.com/stretchr/testify/mock" + + statesync "github.com/dashpay/tenderdash/proto/tendermint/statesync" + + types "github.com/dashpay/tenderdash/types" +) + +// SnapshotClient is an autogenerated mock type for the SnapshotClient type +type SnapshotClient struct { + mock.Mock +} + +// GetChunk provides a mock function with given fields: ctx, peerID, height, format, index +func (_m *SnapshotClient) GetChunk(ctx context.Context, peerID types.NodeID, height uint64, format uint32, index uint32) (*promise.Promise[*statesync.ChunkResponse], error) { + ret := _m.Called(ctx, peerID, height, format, index) + + var r0 *promise.Promise[*statesync.ChunkResponse] + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID, uint64, uint32, uint32) (*promise.Promise[*statesync.ChunkResponse], error)); ok { + return rf(ctx, peerID, height, format, index) + } + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID, uint64, uint32, uint32) *promise.Promise[*statesync.ChunkResponse]); ok { + r0 = rf(ctx, peerID, height, format, index) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*promise.Promise[*statesync.ChunkResponse]) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, types.NodeID, uint64, uint32, uint32) error); ok { + r1 = rf(ctx, peerID, height, format, index) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// GetLightBlock provides a mock function with given fields: ctx, peerID, height +func (_m *SnapshotClient) GetLightBlock(ctx context.Context, peerID types.NodeID, height uint64) (*promise.Promise[*statesync.LightBlockResponse], error) { + ret := _m.Called(ctx, peerID, height) + + var r0 *promise.Promise[*statesync.LightBlockResponse] + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID, uint64) (*promise.Promise[*statesync.LightBlockResponse], error)); ok { + return rf(ctx, peerID, height) + } + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID, uint64) *promise.Promise[*statesync.LightBlockResponse]); ok { + r0 = rf(ctx, peerID, height) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*promise.Promise[*statesync.LightBlockResponse]) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, types.NodeID, uint64) error); ok { + r1 = rf(ctx, peerID, height) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// GetParams provides a mock function with given fields: ctx, peerID, height +func (_m *SnapshotClient) GetParams(ctx context.Context, peerID types.NodeID, height uint64) (*promise.Promise[*statesync.ParamsResponse], error) { + ret := _m.Called(ctx, peerID, height) + + var r0 *promise.Promise[*statesync.ParamsResponse] + var r1 error + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID, uint64) (*promise.Promise[*statesync.ParamsResponse], error)); ok { + return rf(ctx, peerID, height) + } + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID, uint64) *promise.Promise[*statesync.ParamsResponse]); ok { + r0 = rf(ctx, peerID, height) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*promise.Promise[*statesync.ParamsResponse]) + } + } + + if rf, ok := ret.Get(1).(func(context.Context, types.NodeID, uint64) error); ok { + r1 = rf(ctx, peerID, height) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + +// GetSnapshots provides a mock function with given fields: ctx, peerID +func (_m *SnapshotClient) GetSnapshots(ctx context.Context, peerID types.NodeID) error { + ret := _m.Called(ctx, peerID) + + var r0 error + if rf, ok := ret.Get(0).(func(context.Context, types.NodeID) error); ok { + r0 = rf(ctx, peerID) + } else { + r0 = ret.Error(0) + } + + return r0 +} + +// NewSnapshotClient creates a new instance of SnapshotClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSnapshotClient(t interface { + mock.TestingT + Cleanup(func()) +}) *SnapshotClient { + mock := &SnapshotClient{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/internal/p2p/conn/connection.go b/internal/p2p/conn/connection.go index 824788efd..1ecdd1a4d 100644 --- a/internal/p2p/conn/connection.go +++ b/internal/p2p/conn/connection.go @@ -17,13 +17,13 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/internal/libs/flowrate" - "github.com/tendermint/tendermint/internal/libs/protoio" - "github.com/tendermint/tendermint/internal/libs/timer" - "github.com/tendermint/tendermint/libs/log" - tmmath "github.com/tendermint/tendermint/libs/math" - "github.com/tendermint/tendermint/libs/service" - tmp2p "github.com/tendermint/tendermint/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/internal/libs/flowrate" + "github.com/dashpay/tenderdash/internal/libs/protoio" + "github.com/dashpay/tenderdash/internal/libs/timer" + "github.com/dashpay/tenderdash/libs/log" + tmmath "github.com/dashpay/tenderdash/libs/math" + "github.com/dashpay/tenderdash/libs/service" + tmp2p "github.com/dashpay/tenderdash/proto/tendermint/p2p" ) const ( @@ -534,7 +534,7 @@ FOR_LOOP: switch pkt := packet.Sum.(type) { case *tmp2p.Packet_PacketPing: // TODO: prevent abuse, as they cause flush()'s. - // https://github.com/tendermint/tendermint/issues/1190 + // https://github.com/dashpay/tenderdash/issues/1190 select { case c.pong <- struct{}{}: default: @@ -643,7 +643,7 @@ type channel struct { // Exponential moving average. // This field must be accessed atomically. // It is first in the struct to ensure correct alignment. - // See https://github.com/tendermint/tendermint/issues/7000. + // See https://github.com/dashpay/tenderdash/issues/7000. recentlySent int64 conn *MConnection diff --git a/internal/p2p/conn/connection_test.go b/internal/p2p/conn/connection_test.go index 578bc3ef2..55c2460c6 100644 --- a/internal/p2p/conn/connection_test.go +++ b/internal/p2p/conn/connection_test.go @@ -15,11 +15,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/libs/protoio" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - tmp2p "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/internal/libs/protoio" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + tmp2p "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/proto/tendermint/types" ) const maxPingPongPacketSize = 1024 // bytes @@ -289,7 +289,7 @@ func TestMConnectionMultiplePings(t *testing.T) { t.Cleanup(waitAll(mconn)) // sending 3 pings in a row (abuse) - // see https://github.com/tendermint/tendermint/issues/1190 + // see https://github.com/dashpay/tenderdash/issues/1190 protoReader := protoio.NewDelimitedReader(server, maxPingPongPacketSize) protoWriter := protoio.NewDelimitedWriter(server) var pkt tmp2p.Packet diff --git a/internal/p2p/conn/evil_secret_connection_test.go b/internal/p2p/conn/evil_secret_connection_test.go index fe213959c..08d426e9b 100644 --- a/internal/p2p/conn/evil_secret_connection_test.go +++ b/internal/p2p/conn/evil_secret_connection_test.go @@ -11,11 +11,11 @@ import ( "github.com/stretchr/testify/assert" "golang.org/x/crypto/chacha20poly1305" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmp2p "github.com/tendermint/tendermint/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmp2p "github.com/dashpay/tenderdash/proto/tendermint/p2p" ) type buffer struct { diff --git a/internal/p2p/conn/secret_connection.go b/internal/p2p/conn/secret_connection.go index 54a1903bb..caf315052 100644 --- a/internal/p2p/conn/secret_connection.go +++ b/internal/p2p/conn/secret_connection.go @@ -23,12 +23,12 @@ import ( "golang.org/x/crypto/hkdf" "golang.org/x/crypto/nacl/box" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/internal/libs/async" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmp2p "github.com/tendermint/tendermint/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/internal/libs/async" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmp2p "github.com/dashpay/tenderdash/proto/tendermint/p2p" ) // 4 + 1024 == 1028 total frame size diff --git a/internal/p2p/conn/secret_connection_test.go b/internal/p2p/conn/secret_connection_test.go index a29d9aaf8..1c544354d 100644 --- a/internal/p2p/conn/secret_connection_test.go +++ b/internal/p2p/conn/secret_connection_test.go @@ -19,10 +19,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/libs/async" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/libs/async" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) // Run go test -update from within this module diff --git a/internal/p2p/dash_dialer.go b/internal/p2p/dash_dialer.go index e787626a2..64d70ecff 100644 --- a/internal/p2p/dash_dialer.go +++ b/internal/p2p/dash_dialer.go @@ -6,8 +6,8 @@ import ( "net" "time" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/p2p/errors.go b/internal/p2p/errors.go index d4df28792..9e1ad2d05 100644 --- a/internal/p2p/errors.go +++ b/internal/p2p/errors.go @@ -4,7 +4,7 @@ import ( "fmt" "net" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // ErrFilterTimeout indicates that a filter operation timed out. diff --git a/internal/p2p/metrics_test.go b/internal/p2p/metrics_test.go index 98523fe82..e9404dd72 100644 --- a/internal/p2p/metrics_test.go +++ b/internal/p2p/metrics_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/proto/tendermint/p2p" ) func TestValueToMetricsLabel(t *testing.T) { diff --git a/internal/p2p/mocks/channel.go b/internal/p2p/mocks/channel.go index 9890baac6..ebee0c767 100644 --- a/internal/p2p/mocks/channel.go +++ b/internal/p2p/mocks/channel.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + p2p "github.com/dashpay/tenderdash/internal/p2p" mock "github.com/stretchr/testify/mock" - p2p "github.com/tendermint/tendermint/internal/p2p" ) // Channel is an autogenerated mock type for the Channel type @@ -86,13 +86,12 @@ func (_m *Channel) String() string { return r0 } -type mockConstructorTestingTNewChannel interface { +// NewChannel creates a new instance of Channel. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewChannel(t interface { mock.TestingT Cleanup(func()) -} - -// NewChannel creates a new instance of Channel. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewChannel(t mockConstructorTestingTNewChannel) *Channel { +}) *Channel { mock := &Channel{} mock.Mock.Test(t) diff --git a/internal/p2p/mocks/connection.go b/internal/p2p/mocks/connection.go index 520c7e689..447bb925a 100644 --- a/internal/p2p/mocks/connection.go +++ b/internal/p2p/mocks/connection.go @@ -5,17 +5,17 @@ package mocks import ( context "context" - conn "github.com/tendermint/tendermint/internal/p2p/conn" + conn "github.com/dashpay/tenderdash/internal/p2p/conn" - crypto "github.com/tendermint/tendermint/crypto" + crypto "github.com/dashpay/tenderdash/crypto" mock "github.com/stretchr/testify/mock" - p2p "github.com/tendermint/tendermint/internal/p2p" + p2p "github.com/dashpay/tenderdash/internal/p2p" time "time" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // Connection is an autogenerated mock type for the Connection type @@ -159,13 +159,12 @@ func (_m *Connection) String() string { return r0 } -type mockConstructorTestingTNewConnection interface { +// NewConnection creates a new instance of Connection. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewConnection(t interface { mock.TestingT Cleanup(func()) -} - -// NewConnection creates a new instance of Connection. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewConnection(t mockConstructorTestingTNewConnection) *Connection { +}) *Connection { mock := &Connection{} mock.Mock.Test(t) diff --git a/internal/p2p/mocks/transport.go b/internal/p2p/mocks/transport.go index 7135a7ce4..0901d27c8 100644 --- a/internal/p2p/mocks/transport.go +++ b/internal/p2p/mocks/transport.go @@ -5,11 +5,11 @@ package mocks import ( context "context" - conn "github.com/tendermint/tendermint/internal/p2p/conn" + conn "github.com/dashpay/tenderdash/internal/p2p/conn" mock "github.com/stretchr/testify/mock" - p2p "github.com/tendermint/tendermint/internal/p2p" + p2p "github.com/dashpay/tenderdash/internal/p2p" ) // Transport is an autogenerated mock type for the Transport type @@ -158,13 +158,12 @@ func (_m *Transport) String() string { return r0 } -type mockConstructorTestingTNewTransport interface { +// NewTransport creates a new instance of Transport. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewTransport(t interface { mock.TestingT Cleanup(func()) -} - -// NewTransport creates a new instance of Transport. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewTransport(t mockConstructorTestingTNewTransport) *Transport { +}) *Transport { mock := &Transport{} mock.Mock.Test(t) diff --git a/internal/p2p/p2p_test.go b/internal/p2p/p2p_test.go index f2fde10e3..97a008d02 100644 --- a/internal/p2p/p2p_test.go +++ b/internal/p2p/p2p_test.go @@ -1,10 +1,10 @@ package p2p_test import ( - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/types" ) // Common setup for P2P tests. diff --git a/internal/p2p/p2ptest/network.go b/internal/p2p/p2ptest/network.go index b8ea7bcd2..5c0163ab0 100644 --- a/internal/p2p/p2ptest/network.go +++ b/internal/p2p/p2ptest/network.go @@ -9,13 +9,13 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/p2p" - p2pclient "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/p2p" + p2pclient "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) // Network sets up an in-memory network that can be used for high-level P2P diff --git a/internal/p2p/p2ptest/require.go b/internal/p2p/p2ptest/require.go index 50358e2c0..af49bc18e 100644 --- a/internal/p2p/p2ptest/require.go +++ b/internal/p2p/p2ptest/require.go @@ -10,8 +10,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/types" ) // RequireEmpty requires that the given channel is empty. diff --git a/internal/p2p/p2ptest/util.go b/internal/p2p/p2ptest/util.go index 43fc16d28..2483dee0b 100644 --- a/internal/p2p/p2ptest/util.go +++ b/internal/p2p/p2ptest/util.go @@ -1,8 +1,8 @@ package p2ptest import ( - "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) // Message is a simple message containing a string-typed Value field. diff --git a/internal/p2p/peermanager.go b/internal/p2p/peermanager.go index a0f7de5a9..e38b7751b 100644 --- a/internal/p2p/peermanager.go +++ b/internal/p2p/peermanager.go @@ -17,10 +17,10 @@ import ( sync "github.com/sasha-s/go-deadlock" dbm "github.com/tendermint/tm-db" - tmsync "github.com/tendermint/tendermint/internal/libs/sync" - "github.com/tendermint/tendermint/libs/log" - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + tmsync "github.com/dashpay/tenderdash/internal/libs/sync" + "github.com/dashpay/tenderdash/libs/log" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/p2p/peermanager_scoring_test.go b/internal/p2p/peermanager_scoring_test.go index 717123b17..0ca50775c 100644 --- a/internal/p2p/peermanager_scoring_test.go +++ b/internal/p2p/peermanager_scoring_test.go @@ -9,8 +9,8 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/types" ) func TestPeerScoring(t *testing.T) { diff --git a/internal/p2p/peermanager_test.go b/internal/p2p/peermanager_test.go index a2f8d5452..7440c4a92 100644 --- a/internal/p2p/peermanager_test.go +++ b/internal/p2p/peermanager_test.go @@ -13,9 +13,9 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) // FIXME: We should probably have some randomized property-based tests for the diff --git a/internal/p2p/pex/reactor.go b/internal/p2p/pex/reactor.go index 758f5ef52..79bfada9b 100644 --- a/internal/p2p/pex/reactor.go +++ b/internal/p2p/pex/reactor.go @@ -7,12 +7,12 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/conn" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/conn" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/p2p/pex/reactor_test.go b/internal/p2p/pex/reactor_test.go index 005587ef9..cd66af142 100644 --- a/internal/p2p/pex/reactor_test.go +++ b/internal/p2p/pex/reactor_test.go @@ -11,14 +11,14 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/p2ptest" - "github.com/tendermint/tendermint/internal/p2p/pex" - "github.com/tendermint/tendermint/libs/log" - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/p2ptest" + "github.com/dashpay/tenderdash/internal/p2p/pex" + "github.com/dashpay/tenderdash/libs/log" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/p2p/pqueue.go b/internal/p2p/pqueue.go index 4ebbe1e10..350c38ce0 100644 --- a/internal/p2p/pqueue.go +++ b/internal/p2p/pqueue.go @@ -11,7 +11,7 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) // pqEnvelope defines a wrapper around an Envelope with priority to be inserted diff --git a/internal/p2p/pqueue_test.go b/internal/p2p/pqueue_test.go index d1057ac7e..3e1594d79 100644 --- a/internal/p2p/pqueue_test.go +++ b/internal/p2p/pqueue_test.go @@ -7,7 +7,7 @@ import ( gogotypes "github.com/gogo/protobuf/types" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) type testMessage = gogotypes.StringValue diff --git a/internal/p2p/router.go b/internal/p2p/router.go index 1649f8060..7adc3d0df 100644 --- a/internal/p2p/router.go +++ b/internal/p2p/router.go @@ -13,12 +13,12 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/crypto" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) const queueBufferDefault = 32 diff --git a/internal/p2p/router_filter_test.go b/internal/p2p/router_filter_test.go index 217be8d32..e0aea8cfa 100644 --- a/internal/p2p/router_filter_test.go +++ b/internal/p2p/router_filter_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) func TestConnectionFiltering(t *testing.T) { diff --git a/internal/p2p/router_init_test.go b/internal/p2p/router_init_test.go index 20c3cb6dc..f316c23bd 100644 --- a/internal/p2p/router_init_test.go +++ b/internal/p2p/router_init_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) func TestRouter_ConstructQueueFactory(t *testing.T) { diff --git a/internal/p2p/router_test.go b/internal/p2p/router_test.go index 8a16c9750..37aa4e2c7 100644 --- a/internal/p2p/router_test.go +++ b/internal/p2p/router_test.go @@ -16,13 +16,13 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/mocks" - "github.com/tendermint/tendermint/internal/p2p/p2ptest" - "github.com/tendermint/tendermint/libs/log" - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/mocks" + "github.com/dashpay/tenderdash/internal/p2p/p2ptest" + "github.com/dashpay/tenderdash/libs/log" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) func echoReactor(ctx context.Context, channel p2p.Channel) { diff --git a/internal/p2p/transport.go b/internal/p2p/transport.go index da67cacaf..1caaecbdb 100644 --- a/internal/p2p/transport.go +++ b/internal/p2p/transport.go @@ -7,8 +7,8 @@ import ( "net" "time" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/types" ) //go:generate ../../scripts/mockery_generate.sh Transport|Connection diff --git a/internal/p2p/transport_mconn.go b/internal/p2p/transport_mconn.go index 07a9f6adc..7d4b3d046 100644 --- a/internal/p2p/transport_mconn.go +++ b/internal/p2p/transport_mconn.go @@ -11,15 +11,14 @@ import ( "time" sync "github.com/sasha-s/go-deadlock" - "golang.org/x/net/netutil" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" - "github.com/tendermint/tendermint/internal/p2p/conn" - "github.com/tendermint/tendermint/libs/log" - p2pproto "github.com/tendermint/tendermint/proto/tendermint/p2p" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" + "github.com/dashpay/tenderdash/internal/p2p/conn" + "github.com/dashpay/tenderdash/libs/log" + p2pproto "github.com/dashpay/tenderdash/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/p2p/transport_mconn_test.go b/internal/p2p/transport_mconn_test.go index 6fafd01ae..3cbcac3dc 100644 --- a/internal/p2p/transport_mconn_test.go +++ b/internal/p2p/transport_mconn_test.go @@ -10,9 +10,9 @@ import ( "github.com/fortytw2/leaktest" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/conn" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/conn" + "github.com/dashpay/tenderdash/libs/log" ) // Transports are mainly tested by common tests in transport_test.go, we diff --git a/internal/p2p/transport_memory.go b/internal/p2p/transport_memory.go index 6bdc9506b..c4c5873a9 100644 --- a/internal/p2p/transport_memory.go +++ b/internal/p2p/transport_memory.go @@ -10,9 +10,9 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/p2p/transport_memory_test.go b/internal/p2p/transport_memory_test.go index 33d96cdb8..2d5a759ab 100644 --- a/internal/p2p/transport_memory_test.go +++ b/internal/p2p/transport_memory_test.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) // Transports are mainly tested by common tests in transport_test.go, we diff --git a/internal/p2p/transport_test.go b/internal/p2p/transport_test.go index d58c23955..d22dbb9e2 100644 --- a/internal/p2p/transport_test.go +++ b/internal/p2p/transport_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // transportFactory is used to set up transports for tests. diff --git a/internal/p2p/types.go b/internal/p2p/types.go index bee99a4fe..882ea9e02 100644 --- a/internal/p2p/types.go +++ b/internal/p2p/types.go @@ -1,7 +1,7 @@ package p2p import ( - "github.com/tendermint/tendermint/internal/p2p/conn" + "github.com/dashpay/tenderdash/internal/p2p/conn" ) type ChannelDescriptor = conn.ChannelDescriptor diff --git a/internal/proxy/client.go b/internal/proxy/client.go index 60af99493..4ed839575 100644 --- a/internal/proxy/client.go +++ b/internal/proxy/client.go @@ -9,12 +9,12 @@ import ( "github.com/go-kit/kit/metrics" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - e2e "github.com/tendermint/tendermint/test/e2e/app" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + e2e "github.com/dashpay/tenderdash/test/e2e/app" ) // ClientFactory returns a client object, which will create a local diff --git a/internal/proxy/client_test.go b/internal/proxy/client_test.go index 9fb321ae7..700ee47a6 100644 --- a/internal/proxy/client_test.go +++ b/internal/proxy/client_test.go @@ -16,13 +16,13 @@ import ( "gotest.tools/assert" - abciclient "github.com/tendermint/tendermint/abci/client" - abcimocks "github.com/tendermint/tendermint/abci/client/mocks" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/abci/server" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" + abciclient "github.com/dashpay/tenderdash/abci/client" + abcimocks "github.com/dashpay/tenderdash/abci/client/mocks" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/abci/server" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) //---------------------------------------- diff --git a/internal/proxy/mocks/app_conn_mempool.go b/internal/proxy/mocks/app_conn_mempool.go index fd5acef7d..67a1f7e38 100644 --- a/internal/proxy/mocks/app_conn_mempool.go +++ b/internal/proxy/mocks/app_conn_mempool.go @@ -7,7 +7,7 @@ import ( mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/abci/types" + types "github.com/dashpay/tenderdash/abci/types" ) // AppConnMempool is an autogenerated mock type for the AppConnMempool type diff --git a/internal/proxy/mocks/app_conn_query.go b/internal/proxy/mocks/app_conn_query.go index e515cb784..996bc2eef 100644 --- a/internal/proxy/mocks/app_conn_query.go +++ b/internal/proxy/mocks/app_conn_query.go @@ -7,7 +7,7 @@ import ( mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/abci/types" + types "github.com/dashpay/tenderdash/abci/types" ) // AppConnQuery is an autogenerated mock type for the AppConnQuery type diff --git a/internal/proxy/mocks/app_conn_snapshot.go b/internal/proxy/mocks/app_conn_snapshot.go index 0b3f06ad7..4b438e16a 100644 --- a/internal/proxy/mocks/app_conn_snapshot.go +++ b/internal/proxy/mocks/app_conn_snapshot.go @@ -7,7 +7,7 @@ import ( mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/abci/types" + types "github.com/dashpay/tenderdash/abci/types" ) // AppConnSnapshot is an autogenerated mock type for the AppConnSnapshot type diff --git a/internal/proxy/version.go b/internal/proxy/version.go index 110757028..b3ab1898b 100644 --- a/internal/proxy/version.go +++ b/internal/proxy/version.go @@ -1,8 +1,8 @@ package proxy import ( - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/version" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/version" ) // RequestInfo contains all the information for sending diff --git a/internal/pubsub/example_test.go b/internal/pubsub/example_test.go index c4b5dc5c9..17fa95029 100644 --- a/internal/pubsub/example_test.go +++ b/internal/pubsub/example_test.go @@ -6,10 +6,10 @@ import ( "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/libs/log" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/libs/log" ) func TestExample(t *testing.T) { diff --git a/internal/pubsub/pubsub.go b/internal/pubsub/pubsub.go index f2317e00e..063aba568 100644 --- a/internal/pubsub/pubsub.go +++ b/internal/pubsub/pubsub.go @@ -40,11 +40,11 @@ import ( sync "github.com/sasha-s/go-deadlock" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/pubsub/pubsub_test.go b/internal/pubsub/pubsub_test.go index e366977b5..ca4a8432b 100644 --- a/internal/pubsub/pubsub_test.go +++ b/internal/pubsub/pubsub_test.go @@ -9,11 +9,11 @@ import ( "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/pubsub/query/bench_test.go b/internal/pubsub/query/bench_test.go index 0916e9c8a..008898f34 100644 --- a/internal/pubsub/query/bench_test.go +++ b/internal/pubsub/query/bench_test.go @@ -3,8 +3,8 @@ package query_test import ( "testing" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" ) const testQuery = `tm.events.type='NewBlock' AND abci.account.name='Igor'` diff --git a/internal/pubsub/query/query.go b/internal/pubsub/query/query.go index cba494729..db954fa82 100644 --- a/internal/pubsub/query/query.go +++ b/internal/pubsub/query/query.go @@ -18,8 +18,8 @@ import ( "strings" "time" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" ) // All is a query that matches all events. diff --git a/internal/pubsub/query/query_test.go b/internal/pubsub/query/query_test.go index f6affb2d9..d6ec236d9 100644 --- a/internal/pubsub/query/query_test.go +++ b/internal/pubsub/query/query_test.go @@ -6,9 +6,9 @@ import ( "testing" "time" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" ) // Example events from the OpenAPI documentation: diff --git a/internal/pubsub/query/syntax/syntax_test.go b/internal/pubsub/query/syntax/syntax_test.go index ac0473beb..03b80becd 100644 --- a/internal/pubsub/query/syntax/syntax_test.go +++ b/internal/pubsub/query/syntax/syntax_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" ) func TestScanner(t *testing.T) { diff --git a/internal/pubsub/subindex.go b/internal/pubsub/subindex.go index eadb193af..b22072cde 100644 --- a/internal/pubsub/subindex.go +++ b/internal/pubsub/subindex.go @@ -1,9 +1,9 @@ package pubsub import ( - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/types" ) // An item to be published to subscribers. diff --git a/internal/pubsub/subscription.go b/internal/pubsub/subscription.go index fd1a23929..fd8c7cee5 100644 --- a/internal/pubsub/subscription.go +++ b/internal/pubsub/subscription.go @@ -6,9 +6,9 @@ import ( "github.com/google/uuid" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/libs/queue" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/libs/queue" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/rpc/core/abci.go b/internal/rpc/core/abci.go index fa45c6b45..5de75ea5e 100644 --- a/internal/rpc/core/abci.go +++ b/internal/rpc/core/abci.go @@ -3,9 +3,9 @@ package core import ( "context" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/rpc/coretypes" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // ABCIQuery queries the application for some information. diff --git a/internal/rpc/core/blocks.go b/internal/rpc/core/blocks.go index 3eabb3636..85e6f7990 100644 --- a/internal/rpc/core/blocks.go +++ b/internal/rpc/core/blocks.go @@ -5,12 +5,12 @@ import ( "fmt" "sort" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - tmmath "github.com/tendermint/tendermint/libs/math" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) // BlockchainInfo gets block headers for minHeight <= height <= maxHeight. diff --git a/internal/rpc/core/blocks_test.go b/internal/rpc/core/blocks_test.go index 3cb810e72..3138210e2 100644 --- a/internal/rpc/core/blocks_test.go +++ b/internal/rpc/core/blocks_test.go @@ -10,11 +10,11 @@ import ( dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/proto/tendermint/state" - "github.com/tendermint/tendermint/rpc/coretypes" + abci "github.com/dashpay/tenderdash/abci/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/proto/tendermint/state" + "github.com/dashpay/tenderdash/rpc/coretypes" ) func TestBlockchainInfo(t *testing.T) { diff --git a/internal/rpc/core/consensus.go b/internal/rpc/core/consensus.go index 8de2612f7..ecacb6f1c 100644 --- a/internal/rpc/core/consensus.go +++ b/internal/rpc/core/consensus.go @@ -3,9 +3,9 @@ package core import ( "context" - "github.com/tendermint/tendermint/libs" - tmmath "github.com/tendermint/tendermint/libs/math" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/libs" + tmmath "github.com/dashpay/tenderdash/libs/math" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // Validators gets the validator set at the given block height. diff --git a/internal/rpc/core/dev.go b/internal/rpc/core/dev.go index 702413ab8..8d6b099ec 100644 --- a/internal/rpc/core/dev.go +++ b/internal/rpc/core/dev.go @@ -3,7 +3,7 @@ package core import ( "context" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // UnsafeFlushMempool removes all transactions from the mempool. diff --git a/internal/rpc/core/env.go b/internal/rpc/core/env.go index ab46003a0..fd16d667d 100644 --- a/internal/rpc/core/env.go +++ b/internal/rpc/core/env.go @@ -11,25 +11,25 @@ import ( "github.com/rs/cors" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/blocksync" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/eventlog" - "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/p2p" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/internal/pubsub/query" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/statesync" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/rpc/coretypes" - rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/blocksync" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/eventlog" + "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/p2p" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/internal/pubsub/query" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/statesync" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpcserver "github.com/dashpay/tenderdash/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/types" ) const ( @@ -227,7 +227,7 @@ func (env *Environment) StartService(ctx context.Context, conf *config.Config) ( cfg.MaxOpenConnections = conf.RPC.MaxOpenConnections // If necessary adjust global WriteTimeout to ensure it's greater than // TimeoutBroadcastTxCommit. - // See https://github.com/tendermint/tendermint/issues/3435 + // See https://github.com/dashpay/tenderdash/issues/3435 // Note we don't need to adjust anything if the timeout is already unlimited. if cfg.WriteTimeout > 0 && cfg.WriteTimeout <= conf.RPC.TimeoutBroadcastTxCommit { cfg.WriteTimeout = conf.RPC.TimeoutBroadcastTxCommit + 1*time.Second diff --git a/internal/rpc/core/events.go b/internal/rpc/core/events.go index 3f289bfa7..023d45a2d 100644 --- a/internal/rpc/core/events.go +++ b/internal/rpc/core/events.go @@ -6,13 +6,13 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/internal/eventlog" - "github.com/tendermint/tendermint/internal/eventlog/cursor" - "github.com/tendermint/tendermint/internal/jsontypes" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/rpc/coretypes" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/internal/eventlog" + "github.com/dashpay/tenderdash/internal/eventlog/cursor" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) const ( diff --git a/internal/rpc/core/evidence.go b/internal/rpc/core/evidence.go index 5de93d2c2..f87e5ec16 100644 --- a/internal/rpc/core/evidence.go +++ b/internal/rpc/core/evidence.go @@ -4,7 +4,7 @@ import ( "context" "fmt" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // BroadcastEvidence broadcasts evidence of the misbehavior. diff --git a/internal/rpc/core/health.go b/internal/rpc/core/health.go index c55aa58dc..438f99485 100644 --- a/internal/rpc/core/health.go +++ b/internal/rpc/core/health.go @@ -3,7 +3,7 @@ package core import ( "context" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // Health gets node health. Returns empty result (200 OK) on success, no diff --git a/internal/rpc/core/mempool.go b/internal/rpc/core/mempool.go index a5c22195f..adfd86176 100644 --- a/internal/rpc/core/mempool.go +++ b/internal/rpc/core/mempool.go @@ -7,11 +7,11 @@ import ( "math/rand" "time" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/state/indexer" - tmmath "github.com/tendermint/tendermint/libs/math" - "github.com/tendermint/tendermint/rpc/coretypes" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/state/indexer" + tmmath "github.com/dashpay/tenderdash/libs/math" + "github.com/dashpay/tenderdash/rpc/coretypes" ) //----------------------------------------------------------------------------- diff --git a/internal/rpc/core/net.go b/internal/rpc/core/net.go index b18f1e2fc..3914ecb85 100644 --- a/internal/rpc/core/net.go +++ b/internal/rpc/core/net.go @@ -5,7 +5,7 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // NetInfo returns network info. diff --git a/internal/rpc/core/routes.go b/internal/rpc/core/routes.go index 107b0e226..49c493e1f 100644 --- a/internal/rpc/core/routes.go +++ b/internal/rpc/core/routes.go @@ -3,8 +3,8 @@ package core import ( "context" - "github.com/tendermint/tendermint/rpc/coretypes" - rpc "github.com/tendermint/tendermint/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpc "github.com/dashpay/tenderdash/rpc/jsonrpc/server" ) // TODO: better system than "unsafe" prefix diff --git a/internal/rpc/core/status.go b/internal/rpc/core/status.go index 85a788094..c83cb30f8 100644 --- a/internal/rpc/core/status.go +++ b/internal/rpc/core/status.go @@ -5,9 +5,9 @@ import ( "fmt" "time" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) // Status returns Tendermint status including node info, pubkey, latest block @@ -93,7 +93,6 @@ func (env *Environment) Status(ctx context.Context) (*coretypes.ResultStatus, er result.SyncInfo.ChunkProcessAvgTime = env.StateSyncMetricer.ChunkProcessAvgTime() result.SyncInfo.SnapshotHeight = env.StateSyncMetricer.SnapshotHeight() result.SyncInfo.SnapshotChunksCount = env.StateSyncMetricer.SnapshotChunksCount() - result.SyncInfo.SnapshotChunksTotal = env.StateSyncMetricer.SnapshotChunksTotal() result.SyncInfo.BackFilledBlocks = env.StateSyncMetricer.BackFilledBlocks() result.SyncInfo.BackFillBlocksTotal = env.StateSyncMetricer.BackFillBlocksTotal() } diff --git a/internal/rpc/core/tx.go b/internal/rpc/core/tx.go index cd643b844..1258ae41e 100644 --- a/internal/rpc/core/tx.go +++ b/internal/rpc/core/tx.go @@ -6,11 +6,11 @@ import ( "fmt" "sort" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - tmmath "github.com/tendermint/tendermint/libs/math" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + tmmath "github.com/dashpay/tenderdash/libs/math" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) // Tx allows you to query the transaction results. `nil` could mean the diff --git a/internal/state/current_round_state.go b/internal/state/current_round_state.go index 046680a38..b88ed95a5 100644 --- a/internal/state/current_round_state.go +++ b/internal/state/current_round_state.go @@ -4,10 +4,10 @@ import ( "bytes" "fmt" - abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmtypes "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmtypes "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/state/events.go b/internal/state/events.go index d20c689dc..50c55e1ee 100644 --- a/internal/state/events.go +++ b/internal/state/events.go @@ -4,8 +4,9 @@ import ( "fmt" "github.com/hashicorp/go-multierror" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/types" + + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/types" ) // EventSet is a set of events that are published immediately after the block is committed. diff --git a/internal/state/events_test.go b/internal/state/events_test.go index 77078a1c2..14e9486b9 100644 --- a/internal/state/events_test.go +++ b/internal/state/events_test.go @@ -6,9 +6,10 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/types/mocks" + + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/types/mocks" ) type mockEvidence struct{ types.Evidence } diff --git a/internal/state/execution.go b/internal/state/execution.go index fbc1aaaa1..359d9aedc 100644 --- a/internal/state/execution.go +++ b/internal/state/execution.go @@ -9,14 +9,14 @@ import ( "fmt" "time" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/libs/log" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/libs/log" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + "github.com/dashpay/tenderdash/types" ) //----------------------------------------------------------------------------- diff --git a/internal/state/execution_test.go b/internal/state/execution_test.go index 7f3f2c34c..cdcdbf2bb 100644 --- a/internal/state/execution_test.go +++ b/internal/state/execution_test.go @@ -13,27 +13,27 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - abciclientmocks "github.com/tendermint/tendermint/abci/client/mocks" - abci "github.com/tendermint/tendermint/abci/types" - abcimocks "github.com/tendermint/tendermint/abci/types/mocks" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/internal/eventbus" - mpmocks "github.com/tendermint/tendermint/internal/mempool/mocks" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - sf "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/rand" - tmtypes "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abciclientmocks "github.com/dashpay/tenderdash/abci/client/mocks" + abci "github.com/dashpay/tenderdash/abci/types" + abcimocks "github.com/dashpay/tenderdash/abci/types/mocks" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/internal/eventbus" + mpmocks "github.com/dashpay/tenderdash/internal/mempool/mocks" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + sf "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/rand" + tmtypes "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/state/export_test.go b/internal/state/export_test.go index 5f4110865..d99b50977 100644 --- a/internal/state/export_test.go +++ b/internal/state/export_test.go @@ -1,8 +1,8 @@ package state import ( - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/types" ) // ValidateValidatorUpdates is an alias for validateValidatorUpdates exported diff --git a/internal/state/helpers_test.go b/internal/state/helpers_test.go index 51d0e7ba6..699f855b5 100644 --- a/internal/state/helpers_test.go +++ b/internal/state/helpers_test.go @@ -9,14 +9,14 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - sm "github.com/tendermint/tendermint/internal/state" - sf "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/test/factory" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + sm "github.com/dashpay/tenderdash/internal/state" + sf "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/test/factory" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/state/indexer/block/kv/kv.go b/internal/state/indexer/block/kv/kv.go index 1b9a3120b..ccba69509 100644 --- a/internal/state/indexer/block/kv/kv.go +++ b/internal/state/indexer/block/kv/kv.go @@ -11,11 +11,11 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" ) var _ indexer.BlockIndexer = (*BlockerIndexer)(nil) diff --git a/internal/state/indexer/block/kv/kv_test.go b/internal/state/indexer/block/kv/kv_test.go index 0bca43848..20cda5a82 100644 --- a/internal/state/indexer/block/kv/kv_test.go +++ b/internal/state/indexer/block/kv/kv_test.go @@ -8,10 +8,10 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - blockidxkv "github.com/tendermint/tendermint/internal/state/indexer/block/kv" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + blockidxkv "github.com/dashpay/tenderdash/internal/state/indexer/block/kv" + "github.com/dashpay/tenderdash/types" ) func TestBlockIndexer(t *testing.T) { diff --git a/internal/state/indexer/block/kv/util.go b/internal/state/indexer/block/kv/util.go index fd6846273..57b841d37 100644 --- a/internal/state/indexer/block/kv/util.go +++ b/internal/state/indexer/block/kv/util.go @@ -7,8 +7,8 @@ import ( "github.com/google/orderedcode" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/types" ) func intInSlice(a int, list []int) bool { diff --git a/internal/state/indexer/block/null/null.go b/internal/state/indexer/block/null/null.go index 7d5453848..e864490aa 100644 --- a/internal/state/indexer/block/null/null.go +++ b/internal/state/indexer/block/null/null.go @@ -4,9 +4,9 @@ import ( "context" "errors" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" ) var _ indexer.BlockIndexer = (*BlockerIndexer)(nil) diff --git a/internal/state/indexer/eventsink.go b/internal/state/indexer/eventsink.go index 9b4d6f561..1aa1882c8 100644 --- a/internal/state/indexer/eventsink.go +++ b/internal/state/indexer/eventsink.go @@ -3,9 +3,9 @@ package indexer import ( "context" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/types" ) type EventSinkType string diff --git a/internal/state/indexer/indexer.go b/internal/state/indexer/indexer.go index 7ff6733db..6a366833b 100644 --- a/internal/state/indexer/indexer.go +++ b/internal/state/indexer/indexer.go @@ -4,9 +4,9 @@ import ( "context" "errors" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/types" ) // TxIndexer interface defines methods to index and search transactions. diff --git a/internal/state/indexer/indexer_service.go b/internal/state/indexer/indexer_service.go index d6db82806..8a857aba2 100644 --- a/internal/state/indexer/indexer_service.go +++ b/internal/state/indexer/indexer_service.go @@ -4,12 +4,12 @@ import ( "context" "time" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/types" ) // Service connects event bus, transaction and block indexers together in diff --git a/internal/state/indexer/indexer_service_test.go b/internal/state/indexer/indexer_service_test.go index 6dc1bdf50..b3a3843a7 100644 --- a/internal/state/indexer/indexer_service_test.go +++ b/internal/state/indexer/indexer_service_test.go @@ -15,13 +15,13 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/indexer/sink/kv" - "github.com/tendermint/tendermint/internal/state/indexer/sink/psql" - tmlog "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/kv" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/psql" + tmlog "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" // Register the Postgre database driver. _ "github.com/lib/pq" diff --git a/internal/state/indexer/mocks/event_sink.go b/internal/state/indexer/mocks/event_sink.go index c62ad7ee7..45d3f22c8 100644 --- a/internal/state/indexer/mocks/event_sink.go +++ b/internal/state/indexer/mocks/event_sink.go @@ -5,14 +5,14 @@ package mocks import ( context "context" + indexer "github.com/dashpay/tenderdash/internal/state/indexer" mock "github.com/stretchr/testify/mock" - indexer "github.com/tendermint/tendermint/internal/state/indexer" - query "github.com/tendermint/tendermint/internal/pubsub/query" + query "github.com/dashpay/tenderdash/internal/pubsub/query" - tenderminttypes "github.com/tendermint/tendermint/types" + tenderdashtypes "github.com/dashpay/tenderdash/types" - types "github.com/tendermint/tendermint/abci/types" + types "github.com/dashpay/tenderdash/abci/types" ) // EventSink is an autogenerated mock type for the EventSink type @@ -71,11 +71,11 @@ func (_m *EventSink) HasBlock(_a0 int64) (bool, error) { } // IndexBlockEvents provides a mock function with given fields: _a0 -func (_m *EventSink) IndexBlockEvents(_a0 tenderminttypes.EventDataNewBlockHeader) error { +func (_m *EventSink) IndexBlockEvents(_a0 tenderdashtypes.EventDataNewBlockHeader) error { ret := _m.Called(_a0) var r0 error - if rf, ok := ret.Get(0).(func(tenderminttypes.EventDataNewBlockHeader) error); ok { + if rf, ok := ret.Get(0).(func(tenderdashtypes.EventDataNewBlockHeader) error); ok { r0 = rf(_a0) } else { r0 = ret.Error(0) @@ -178,13 +178,12 @@ func (_m *EventSink) Type() indexer.EventSinkType { return r0 } -type mockConstructorTestingTNewEventSink interface { +// NewEventSink creates a new instance of EventSink. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEventSink(t interface { mock.TestingT Cleanup(func()) -} - -// NewEventSink creates a new instance of EventSink. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewEventSink(t mockConstructorTestingTNewEventSink) *EventSink { +}) *EventSink { mock := &EventSink{} mock.Mock.Test(t) diff --git a/internal/state/indexer/query_range.go b/internal/state/indexer/query_range.go index ff54cd32b..e160b9f8e 100644 --- a/internal/state/indexer/query_range.go +++ b/internal/state/indexer/query_range.go @@ -3,7 +3,7 @@ package indexer import ( "time" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" ) // QueryRanges defines a mapping between a composite event key and a QueryRange. diff --git a/internal/state/indexer/sink/kv/kv.go b/internal/state/indexer/sink/kv/kv.go index 10282fd34..688841097 100644 --- a/internal/state/indexer/sink/kv/kv.go +++ b/internal/state/indexer/sink/kv/kv.go @@ -5,12 +5,12 @@ import ( dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - kvb "github.com/tendermint/tendermint/internal/state/indexer/block/kv" - kvt "github.com/tendermint/tendermint/internal/state/indexer/tx/kv" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + kvb "github.com/dashpay/tenderdash/internal/state/indexer/block/kv" + kvt "github.com/dashpay/tenderdash/internal/state/indexer/tx/kv" + "github.com/dashpay/tenderdash/types" ) var _ indexer.EventSink = (*EventSink)(nil) diff --git a/internal/state/indexer/sink/kv/kv_test.go b/internal/state/indexer/sink/kv/kv_test.go index d4b110f4a..690e9d5be 100644 --- a/internal/state/indexer/sink/kv/kv_test.go +++ b/internal/state/indexer/sink/kv/kv_test.go @@ -11,11 +11,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - kvtx "github.com/tendermint/tendermint/internal/state/indexer/tx/kv" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + kvtx "github.com/dashpay/tenderdash/internal/state/indexer/tx/kv" + "github.com/dashpay/tenderdash/types" ) func TestType(t *testing.T) { diff --git a/internal/state/indexer/sink/null/null.go b/internal/state/indexer/sink/null/null.go index c436bdf0f..6632eeb8f 100644 --- a/internal/state/indexer/sink/null/null.go +++ b/internal/state/indexer/sink/null/null.go @@ -3,10 +3,10 @@ package null import ( "context" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" ) var _ indexer.EventSink = (*EventSink)(nil) diff --git a/internal/state/indexer/sink/null/null_test.go b/internal/state/indexer/sink/null/null_test.go index 9af66027f..c6cdc6c6e 100644 --- a/internal/state/indexer/sink/null/null_test.go +++ b/internal/state/indexer/sink/null/null_test.go @@ -6,8 +6,8 @@ import ( "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" ) func TestNullEventSink(t *testing.T) { diff --git a/internal/state/indexer/sink/psql/psql.go b/internal/state/indexer/sink/psql/psql.go index 57f5e5c3d..9d8c68761 100644 --- a/internal/state/indexer/sink/psql/psql.go +++ b/internal/state/indexer/sink/psql/psql.go @@ -10,10 +10,11 @@ import ( "time" "github.com/gogo/protobuf/jsonpb" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/state/indexer/sink/psql/psql_test.go b/internal/state/indexer/sink/psql/psql_test.go index 0ef9218d2..17c457530 100644 --- a/internal/state/indexer/sink/psql/psql_test.go +++ b/internal/state/indexer/sink/psql/psql_test.go @@ -19,10 +19,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" // Register the Postgres database driver. _ "github.com/lib/pq" diff --git a/internal/state/indexer/sink/sink.go b/internal/state/indexer/sink/sink.go index cae861416..1bc6d4cc9 100644 --- a/internal/state/indexer/sink/sink.go +++ b/internal/state/indexer/sink/sink.go @@ -4,11 +4,11 @@ import ( "errors" "strings" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/indexer/sink/kv" - "github.com/tendermint/tendermint/internal/state/indexer/sink/null" - "github.com/tendermint/tendermint/internal/state/indexer/sink/psql" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/kv" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/null" + "github.com/dashpay/tenderdash/internal/state/indexer/sink/psql" ) // EventSinksFromConfig constructs a slice of indexer.EventSink using the provided diff --git a/internal/state/indexer/tx/kv/kv.go b/internal/state/indexer/tx/kv/kv.go index ef362425b..d9e93f2c8 100644 --- a/internal/state/indexer/tx/kv/kv.go +++ b/internal/state/indexer/tx/kv/kv.go @@ -11,11 +11,11 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/pubsub/query/syntax" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/pubsub/query/syntax" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/types" ) var _ indexer.TxIndexer = (*TxIndex)(nil) diff --git a/internal/state/indexer/tx/kv/kv_bench_test.go b/internal/state/indexer/tx/kv/kv_bench_test.go index 7007d5bb5..c0e4d89ae 100644 --- a/internal/state/indexer/tx/kv/kv_bench_test.go +++ b/internal/state/indexer/tx/kv/kv_bench_test.go @@ -8,9 +8,9 @@ import ( dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/types" ) func BenchmarkTxSearch(b *testing.B) { diff --git a/internal/state/indexer/tx/kv/kv_test.go b/internal/state/indexer/tx/kv/kv_test.go index 8004c0f27..79f8b3217 100644 --- a/internal/state/indexer/tx/kv/kv_test.go +++ b/internal/state/indexer/tx/kv/kv_test.go @@ -10,11 +10,11 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" ) func TestTxIndex(t *testing.T) { diff --git a/internal/state/indexer/tx/null/null.go b/internal/state/indexer/tx/null/null.go index dea5d570f..d6a1be056 100644 --- a/internal/state/indexer/tx/null/null.go +++ b/internal/state/indexer/tx/null/null.go @@ -4,9 +4,9 @@ import ( "context" "errors" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/pubsub/query" - "github.com/tendermint/tendermint/internal/state/indexer" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/pubsub/query" + "github.com/dashpay/tenderdash/internal/state/indexer" ) var _ indexer.TxIndexer = (*TxIndex)(nil) diff --git a/internal/state/mocks/block_store.go b/internal/state/mocks/block_store.go index e4e2bb4ae..f4a0636d7 100644 --- a/internal/state/mocks/block_store.go +++ b/internal/state/mocks/block_store.go @@ -5,7 +5,7 @@ package mocks import ( mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // BlockStore is an autogenerated mock type for the BlockStore type @@ -242,13 +242,12 @@ func (_m *BlockStore) Size() int64 { return r0 } -type mockConstructorTestingTNewBlockStore interface { +// NewBlockStore creates a new instance of BlockStore. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewBlockStore(t interface { mock.TestingT Cleanup(func()) -} - -// NewBlockStore creates a new instance of BlockStore. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewBlockStore(t mockConstructorTestingTNewBlockStore) *BlockStore { +}) *BlockStore { mock := &BlockStore{} mock.Mock.Test(t) diff --git a/internal/state/mocks/event_sink.go b/internal/state/mocks/event_sink.go index 9f2d2daf3..6d2d67943 100644 --- a/internal/state/mocks/event_sink.go +++ b/internal/state/mocks/event_sink.go @@ -7,13 +7,13 @@ import ( mock "github.com/stretchr/testify/mock" - indexer "github.com/tendermint/tendermint/internal/state/indexer" + indexer "github.com/dashpay/tenderdash/internal/state/indexer" - query "github.com/tendermint/tendermint/internal/pubsub/query" + query "github.com/dashpay/tenderdash/internal/pubsub/query" - tenderminttypes "github.com/tendermint/tendermint/types" + tenderminttypes "github.com/dashpay/tenderdash/types" - types "github.com/tendermint/tendermint/abci/types" + types "github.com/dashpay/tenderdash/abci/types" ) // EventSink is an autogenerated mock type for the EventSink type diff --git a/internal/state/mocks/evidence_pool.go b/internal/state/mocks/evidence_pool.go index 4d90d986a..162d1035d 100644 --- a/internal/state/mocks/evidence_pool.go +++ b/internal/state/mocks/evidence_pool.go @@ -5,10 +5,10 @@ package mocks import ( context "context" + state "github.com/dashpay/tenderdash/internal/state" mock "github.com/stretchr/testify/mock" - state "github.com/tendermint/tendermint/internal/state" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // EvidencePool is an autogenerated mock type for the EvidencePool type @@ -75,13 +75,12 @@ func (_m *EvidencePool) Update(_a0 context.Context, _a1 state.State, _a2 types.E _m.Called(_a0, _a1, _a2) } -type mockConstructorTestingTNewEvidencePool interface { +// NewEvidencePool creates a new instance of EvidencePool. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEvidencePool(t interface { mock.TestingT Cleanup(func()) -} - -// NewEvidencePool creates a new instance of EvidencePool. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewEvidencePool(t mockConstructorTestingTNewEvidencePool) *EvidencePool { +}) *EvidencePool { mock := &EvidencePool{} mock.Mock.Test(t) diff --git a/internal/state/mocks/executor.go b/internal/state/mocks/executor.go index 0539d9675..daa92ee0d 100644 --- a/internal/state/mocks/executor.go +++ b/internal/state/mocks/executor.go @@ -5,10 +5,10 @@ package mocks import ( context "context" + state "github.com/dashpay/tenderdash/internal/state" mock "github.com/stretchr/testify/mock" - state "github.com/tendermint/tendermint/internal/state" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // Executor is an autogenerated mock type for the Executor type @@ -168,13 +168,12 @@ func (_m *Executor) VerifyVoteExtension(ctx context.Context, vote *types.Vote) e return r0 } -type mockConstructorTestingTNewExecutor interface { +// NewExecutor creates a new instance of Executor. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewExecutor(t interface { mock.TestingT Cleanup(func()) -} - -// NewExecutor creates a new instance of Executor. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewExecutor(t mockConstructorTestingTNewExecutor) *Executor { +}) *Executor { mock := &Executor{} mock.Mock.Test(t) diff --git a/internal/state/mocks/store.go b/internal/state/mocks/store.go index 086b3f06b..8f8fc6585 100644 --- a/internal/state/mocks/store.go +++ b/internal/state/mocks/store.go @@ -3,11 +3,12 @@ package mocks import ( + state "github.com/dashpay/tenderdash/internal/state" mock "github.com/stretchr/testify/mock" - state "github.com/tendermint/tendermint/internal/state" - tendermintstate "github.com/tendermint/tendermint/proto/tendermint/state" - types "github.com/tendermint/tendermint/types" + tendermintstate "github.com/dashpay/tenderdash/proto/tendermint/state" + + types "github.com/dashpay/tenderdash/types" ) // Store is an autogenerated mock type for the Store type @@ -199,13 +200,12 @@ func (_m *Store) SaveValidatorSets(_a0 int64, _a1 int64, _a2 *types.ValidatorSet return r0 } -type mockConstructorTestingTNewStore interface { +// NewStore creates a new instance of Store. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewStore(t interface { mock.TestingT Cleanup(func()) -} - -// NewStore creates a new instance of Store. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewStore(t mockConstructorTestingTNewStore) *Store { +}) *Store { mock := &Store{} mock.Mock.Test(t) diff --git a/internal/state/rollback.go b/internal/state/rollback.go index 9818b8da2..5f077c70b 100644 --- a/internal/state/rollback.go +++ b/internal/state/rollback.go @@ -4,7 +4,7 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/version" ) // Rollback overwrites the current Tendermint state (height n) with the most diff --git a/internal/state/rollback_test.go b/internal/state/rollback_test.go index 02c939f56..4ca126c11 100644 --- a/internal/state/rollback_test.go +++ b/internal/state/rollback_test.go @@ -6,11 +6,11 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) func TestRollback(t *testing.T) { diff --git a/internal/state/services.go b/internal/state/services.go index c8f4ffe5e..ad104641d 100644 --- a/internal/state/services.go +++ b/internal/state/services.go @@ -3,7 +3,7 @@ package state import ( "context" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) //------------------------------------------------------ diff --git a/internal/state/state.go b/internal/state/state.go index 8a9fd03c7..0b7b994d5 100644 --- a/internal/state/state.go +++ b/internal/state/state.go @@ -10,13 +10,13 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/dash" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmtime "github.com/tendermint/tendermint/libs/time" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - tmversion "github.com/tendermint/tendermint/proto/tendermint/version" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/dash" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + tmversion "github.com/dashpay/tenderdash/proto/tendermint/version" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) //----------------------------------------------------------------------------- diff --git a/internal/state/state_test.go b/internal/state/state_test.go index 128994c87..5c2e05056 100644 --- a/internal/state/state_test.go +++ b/internal/state/state_test.go @@ -12,18 +12,18 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/dash/llmq" - sm "github.com/tendermint/tendermint/internal/state" - statefactory "github.com/tendermint/tendermint/internal/state/test/factory" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/dash/llmq" + sm "github.com/dashpay/tenderdash/internal/state" + statefactory "github.com/dashpay/tenderdash/internal/state/test/factory" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + "github.com/dashpay/tenderdash/types" ) // setupTestCase does setup common to all test cases. diff --git a/internal/state/store.go b/internal/state/store.go index 56549e10b..0c97f9af3 100644 --- a/internal/state/store.go +++ b/internal/state/store.go @@ -9,11 +9,11 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - tmmath "github.com/tendermint/tendermint/libs/math" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/state/store_test.go b/internal/state/store_test.go index 6d38a9131..153fa4bd7 100644 --- a/internal/state/store_test.go +++ b/internal/state/store_test.go @@ -10,13 +10,13 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - sm "github.com/tendermint/tendermint/internal/state" - tmstate "github.com/tendermint/tendermint/proto/tendermint/state" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + sm "github.com/dashpay/tenderdash/internal/state" + tmstate "github.com/dashpay/tenderdash/proto/tendermint/state" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/internal/state/test/factory/block.go b/internal/state/test/factory/block.go index d17330a79..d6ff4f237 100644 --- a/internal/state/test/factory/block.go +++ b/internal/state/test/factory/block.go @@ -9,11 +9,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/types" ) func MakeBlocks(ctx context.Context, t *testing.T, n int, state *sm.State, privVals []types.PrivValidator, proposedAppVersion uint64) []*types.Block { diff --git a/internal/state/tx_filter.go b/internal/state/tx_filter.go index f0ba76a1a..4b1afd8d8 100644 --- a/internal/state/tx_filter.go +++ b/internal/state/tx_filter.go @@ -5,9 +5,9 @@ import ( sync "github.com/sasha-s/go-deadlock" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/types" ) func cachingStateFetcher(store Store) func() (State, error) { diff --git a/internal/state/tx_filter_test.go b/internal/state/tx_filter_test.go index 7df56d2f0..bec516243 100644 --- a/internal/state/tx_filter_test.go +++ b/internal/state/tx_filter_test.go @@ -4,14 +4,13 @@ import ( "strconv" "testing" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/test/factory" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" ) func TestTxFilter(t *testing.T) { diff --git a/internal/state/validation.go b/internal/state/validation.go index 76d236533..ceb0884f6 100644 --- a/internal/state/validation.go +++ b/internal/state/validation.go @@ -5,11 +5,10 @@ import ( "errors" "fmt" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/types" ) //----------------------------------------------------- diff --git a/internal/state/validation_test.go b/internal/state/validation_test.go index 950c7ff18..281ac4eb7 100644 --- a/internal/state/validation_test.go +++ b/internal/state/validation_test.go @@ -12,21 +12,21 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/eventbus" - mpmocks "github.com/tendermint/tendermint/internal/mempool/mocks" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/mocks" - statefactory "github.com/tendermint/tendermint/internal/state/test/factory" - "github.com/tendermint/tendermint/internal/store" - testfactory "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/eventbus" + mpmocks "github.com/dashpay/tenderdash/internal/mempool/mocks" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/mocks" + statefactory "github.com/dashpay/tenderdash/internal/state/test/factory" + "github.com/dashpay/tenderdash/internal/store" + testfactory "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const validationTestsStopHeight int64 = 10 diff --git a/internal/statesync/block_queue.go b/internal/statesync/block_queue.go index 123ff89c9..04ff84f6f 100644 --- a/internal/statesync/block_queue.go +++ b/internal/statesync/block_queue.go @@ -7,7 +7,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type lightBlockResponse struct { diff --git a/internal/statesync/block_queue_test.go b/internal/statesync/block_queue_test.go index 64c121680..5b3d0bc05 100644 --- a/internal/statesync/block_queue_test.go +++ b/internal/statesync/block_queue_test.go @@ -11,8 +11,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/statesync/chunks.go b/internal/statesync/chunks.go index 0b6753118..bd9d23e88 100644 --- a/internal/statesync/chunks.go +++ b/internal/statesync/chunks.go @@ -5,374 +5,395 @@ import ( "fmt" "os" "path/filepath" - "strconv" "time" sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // errDone is returned by chunkQueue.Next() when all chunks have been returned. -var errDone = errors.New("chunk queue has completed") +var ( + errDone = errors.New("chunk queue has completed") + errQueueEmpty = errors.New("requestQueue is empty") + errChunkNil = errors.New("cannot add nil chunk") + errNoChunkItem = errors.New("no chunk item found") + errNilSnapshot = errors.New("snapshot is nil") +) -// chunk contains data for a chunk. -type chunk struct { - Height uint64 - Format uint32 - Index uint32 - Chunk []byte - Sender types.NodeID -} +const ( + initStatus chunkStatus = iota + inProgressStatus + discardedStatus + receivedStatus + doneStatus +) -// chunkQueue manages chunks for a state sync process, ordering them if requested. It acts as an -// iterator over all chunks, but callers can request chunks to be retried, optionally after -// refetching. -type chunkQueue struct { - sync.Mutex - snapshot *snapshot // if this is nil, the queue has been closed - dir string // temp dir for on-disk chunk storage - chunkFiles map[uint32]string // path to temporary chunk file - chunkSenders map[uint32]types.NodeID // the peer who sent the given chunk - chunkAllocated map[uint32]bool // chunks that have been allocated via Allocate() - chunkReturned map[uint32]bool // chunks returned via Next() - waiters map[uint32][]chan<- uint32 // signals WaitFor() waiters about chunk arrival -} +// chunk contains data for a chunk. +type ( + chunk struct { + Height uint64 + Version uint32 + ID bytes.HexBytes + Chunk []byte + Sender types.NodeID + } + chunkStatus int + chunkItem struct { + chunkID bytes.HexBytes + file string // path to temporary chunk file + sender types.NodeID // the peer who sent the given chunk + waitChs []chan<- bytes.HexBytes // signals WaitFor() waiters about chunk arrival + status chunkStatus // status of the chunk + } + // chunkQueue manages chunks for a state sync process, ordering them if requested. It acts as an + // iterator over all chunks, but callers can request chunks to be retried, optionally after + // refetching. + chunkQueue struct { + mtx sync.Mutex + snapshot *snapshot // if this is nil, the queue has been closed + dir string // temp dir for on-disk chunk storage + items map[string]*chunkItem + requestQueue []bytes.HexBytes + applyCh chan bytes.HexBytes + // doneCount counts the number of chunks that have been processed to the done status + // if for some reason some chunks have been processed more than once, this number should take them into account + doneCount int + } +) -// newChunkQueue creates a new chunk queue for a snapshot, using a temp dir for storage. +// newChunkQueue creates a new chunk requestQueue for a snapshot, using a temp dir for storage. // Callers must call Close() when done. -func newChunkQueue(snapshot *snapshot, tempDir string) (*chunkQueue, error) { +func newChunkQueue(snapshot *snapshot, tempDir string, bufLen int) (*chunkQueue, error) { dir, err := os.MkdirTemp(tempDir, "tm-statesync") if err != nil { return nil, fmt.Errorf("unable to create temp dir for state sync chunks: %w", err) } - if snapshot.Chunks == 0 { + if snapshot.Hash.IsZero() { return nil, errors.New("snapshot has no chunks") } - return &chunkQueue{ - snapshot: snapshot, - dir: dir, - chunkFiles: make(map[uint32]string, snapshot.Chunks), - chunkSenders: make(map[uint32]types.NodeID, snapshot.Chunks), - chunkAllocated: make(map[uint32]bool, snapshot.Chunks), - chunkReturned: make(map[uint32]bool, snapshot.Chunks), - waiters: make(map[uint32][]chan<- uint32), + snapshot: snapshot, + dir: dir, + items: make(map[string]*chunkItem), + applyCh: make(chan bytes.HexBytes, bufLen), }, nil } -// Add adds a chunk to the queue. It ignores chunks that already exist, returning false. -func (q *chunkQueue) Add(chunk *chunk) (bool, error) { - if chunk == nil || chunk.Chunk == nil { - return false, errors.New("cannot add nil chunk") - } +// IsRequestQueueEmpty returns true if the request queue is empty +func (q *chunkQueue) IsRequestQueueEmpty() bool { + return q.RequestQueueLen() == 0 +} - q.Lock() - defer q.Unlock() +// RequestQueueLen returns the length of the request queue +func (q *chunkQueue) RequestQueueLen() int { + q.mtx.Lock() + defer q.mtx.Unlock() + return len(q.requestQueue) +} - if q.snapshot == nil { - return false, nil // queue is closed - } - if chunk.Height != q.snapshot.Height { - return false, fmt.Errorf( - "invalid chunk height %v, expected %v", - chunk.Height, - q.snapshot.Height, - ) - } - if chunk.Format != q.snapshot.Format { - return false, fmt.Errorf( - "invalid chunk format %v, expected %v", - chunk.Format, - q.snapshot.Format, - ) - } - if chunk.Index >= q.snapshot.Chunks { - return false, fmt.Errorf("received unexpected chunk %v", chunk.Index) - } - if q.chunkFiles[chunk.Index] != "" { - return false, nil +// Enqueue adds a chunk ID to the end of the requestQueue +func (q *chunkQueue) Enqueue(chunkIDs ...[]byte) { + q.mtx.Lock() + defer q.mtx.Unlock() + for _, chunkID := range chunkIDs { + q.enqueue(chunkID) } +} - path := filepath.Join(q.dir, strconv.FormatUint(uint64(chunk.Index), 10)) - err := os.WriteFile(path, chunk.Chunk, 0600) - if err != nil { - return false, fmt.Errorf("failed to save chunk %v to file %v: %w", chunk.Index, path, err) +func (q *chunkQueue) enqueue(chunkID bytes.HexBytes) { + q.requestQueue = append(q.requestQueue, chunkID) + _, ok := q.items[chunkID.String()] + if ok { + return } - - q.chunkFiles[chunk.Index] = path - q.chunkSenders[chunk.Index] = chunk.Sender - - // Signal any waiters that the chunk has arrived. - for _, waiter := range q.waiters[chunk.Index] { - waiter <- chunk.Index - close(waiter) + q.items[chunkID.String()] = &chunkItem{ + chunkID: chunkID, + status: initStatus, } +} - delete(q.waiters, chunk.Index) - - return true, nil +// Dequeue returns the next chunk ID in the requestQueue, or an error if the queue is empty +func (q *chunkQueue) Dequeue() (bytes.HexBytes, error) { + q.mtx.Lock() + defer q.mtx.Unlock() + return q.dequeue() } -// Allocate allocates a chunk to the caller, making it responsible for fetching it. Returns -// errDone once no chunks are left or the queue is closed. -func (q *chunkQueue) Allocate() (uint32, error) { - q.Lock() - defer q.Unlock() +func (q *chunkQueue) dequeue() (bytes.HexBytes, error) { + if len(q.requestQueue) == 0 { + return nil, errQueueEmpty + } + chunkID := q.requestQueue[0] + q.requestQueue = q.requestQueue[1:] + q.items[chunkID.String()].status = inProgressStatus + return chunkID, nil +} +// Add adds a chunk to the queue. It ignores chunks that already exist, returning false. +func (q *chunkQueue) Add(chunk *chunk) (bool, error) { + if chunk == nil || chunk.Chunk == nil { + return false, errChunkNil + } + q.mtx.Lock() + defer q.mtx.Unlock() if q.snapshot == nil { - return 0, errDone + return false, errNilSnapshot } - - if uint32(len(q.chunkAllocated)) >= q.snapshot.Chunks { - return 0, errDone + chunkIDKey := chunk.ID.String() + item, ok := q.items[chunkIDKey] + if !ok { + return false, fmt.Errorf("failed to add the chunk %x, it was never requested", chunk.ID) } - - for i := uint32(0); i < q.snapshot.Chunks; i++ { - if !q.chunkAllocated[i] { - q.chunkAllocated[i] = true - return i, nil - } + if item.status != inProgressStatus && item.status != discardedStatus { + return false, nil } - - return 0, errDone + err := q.validateChunk(chunk) + if err != nil { + return false, err + } + item.file = filepath.Join(q.dir, chunkIDKey) + err = item.write(chunk.Chunk) + if err != nil { + return false, err + } + item.sender = chunk.Sender + item.status = receivedStatus + q.applyCh <- chunk.ID + // Signal any waiters that the chunk has arrived. + item.closeWaitChs(true) + return true, nil } // Close closes the chunk queue, cleaning up all temporary files. func (q *chunkQueue) Close() error { - q.Lock() - defer q.Unlock() - + q.mtx.Lock() + defer q.mtx.Unlock() if q.snapshot == nil { return nil } - - for _, waiters := range q.waiters { - for _, waiter := range waiters { - close(waiter) - } - } - - q.waiters = nil q.snapshot = nil - + close(q.applyCh) + for len(q.applyCh) > 0 { + <-q.applyCh + } + for _, item := range q.items { + item.closeWaitChs(false) + } if err := os.RemoveAll(q.dir); err != nil { - return fmt.Errorf("failed to clean up state sync tempdir %v: %w", q.dir, err) + return fmt.Errorf("failed to clean up state sync tempdir %s: %w", q.dir, err) } - return nil } // Discard discards a chunk. It will be removed from the queue, available for allocation, and can // be added and returned via Next() again. If the chunk is not already in the queue this does // nothing, to avoid it being allocated to multiple fetchers. -func (q *chunkQueue) Discard(index uint32) error { - q.Lock() - defer q.Unlock() - return q.discard(index) +func (q *chunkQueue) Discard(chunkID bytes.HexBytes) error { + q.mtx.Lock() + defer q.mtx.Unlock() + return q.discard(chunkID) } // discard discards a chunk, scheduling it for refetching. The caller must hold the mutex lock. -func (q *chunkQueue) discard(index uint32) error { +func (q *chunkQueue) discard(chunkID bytes.HexBytes) error { if q.snapshot == nil { return nil } - - path := q.chunkFiles[index] - if path == "" { + chunkIDKey := chunkID.String() + item, ok := q.items[chunkIDKey] + if !ok { return nil } - - if err := os.Remove(path); err != nil { - return fmt.Errorf("failed to remove chunk %v: %w", index, err) - } - - delete(q.chunkFiles, index) - delete(q.chunkReturned, index) - delete(q.chunkAllocated, index) - - return nil + item.status = discardedStatus + return item.remove() } // DiscardSender discards all *unreturned* chunks from a given sender. If the caller wants to // discard already returned chunks, this can be done via Discard(). func (q *chunkQueue) DiscardSender(peerID types.NodeID) error { - q.Lock() - defer q.Unlock() - - for index, sender := range q.chunkSenders { - if sender == peerID && !q.chunkReturned[index] { - err := q.discard(index) + q.mtx.Lock() + defer q.mtx.Unlock() + for _, item := range q.items { + if item.sender == peerID && item.isDiscardable() { + err := q.discard(item.chunkID) if err != nil { return err } - - delete(q.chunkSenders, index) } } - return nil } // GetSender returns the sender of the chunk with the given index, or empty if // not found. -func (q *chunkQueue) GetSender(index uint32) types.NodeID { - q.Lock() - defer q.Unlock() - return q.chunkSenders[index] -} - -// Has checks whether a chunk exists in the queue. -func (q *chunkQueue) Has(index uint32) bool { - q.Lock() - defer q.Unlock() - return q.chunkFiles[index] != "" +func (q *chunkQueue) GetSender(chunkID bytes.HexBytes) types.NodeID { + q.mtx.Lock() + defer q.mtx.Unlock() + item, ok := q.items[chunkID.String()] + if ok { + return item.sender + } + return "" } // load loads a chunk from disk, or nil if the chunk is not in the queue. The caller must hold the // mutex lock. -func (q *chunkQueue) load(index uint32) (*chunk, error) { - path, ok := q.chunkFiles[index] +func (q *chunkQueue) load(chunkID bytes.HexBytes) (*chunk, error) { + chunkIDKey := chunkID.String() + item, ok := q.items[chunkIDKey] if !ok { + return nil, errNoChunkItem + } + if item.status != receivedStatus { return nil, nil } - - body, err := os.ReadFile(path) + data, err := item.loadData() if err != nil { - return nil, fmt.Errorf("failed to load chunk %v: %w", index, err) + return nil, err } - return &chunk{ - Height: q.snapshot.Height, - Format: q.snapshot.Format, - Index: index, - Chunk: body, - Sender: q.chunkSenders[index], + Height: q.snapshot.Height, + Version: q.snapshot.Version, + ID: chunkID, + Chunk: data, + Sender: item.sender, }, nil } // Next returns the next chunk from the queue, or errDone if all chunks have been returned. It // blocks until the chunk is available. Concurrent Next() calls may return the same chunk. func (q *chunkQueue) Next() (*chunk, error) { - q.Lock() - - var chunk *chunk - index, err := q.nextUp() - if err == nil { - chunk, err = q.load(index) - if err == nil { - q.chunkReturned[index] = true - } - } - - q.Unlock() - - if chunk != nil || err != nil { - return chunk, err - } - select { - case _, ok := <-q.WaitFor(index): + case chunkID, ok := <-q.applyCh: if !ok { return nil, errDone // queue closed } + q.mtx.Lock() + defer q.mtx.Unlock() + loadedChunk, err := q.load(chunkID) + if err != nil { + return nil, err + } + item, ok := q.items[chunkID.String()] + if !ok { + return nil, errNoChunkItem + } + item.status = doneStatus + q.doneCount++ + return loadedChunk, nil case <-time.After(chunkTimeout): return nil, errTimeout } - - q.Lock() - defer q.Unlock() - - chunk, err = q.load(index) - if err != nil { - return nil, err - } - - q.chunkReturned[index] = true - return chunk, nil } -// nextUp returns the next chunk to be returned, or errDone if all chunks have been returned. The -// caller must hold the mutex lock. -func (q *chunkQueue) nextUp() (uint32, error) { - if q.snapshot == nil { - return 0, errDone - } - - for i := uint32(0); i < q.snapshot.Chunks; i++ { - if !q.chunkReturned[i] { - return i, nil - } - } - - return 0, errDone +// Retry schedules a chunk to be retried, without refetching it. +func (q *chunkQueue) Retry(chunkID bytes.HexBytes) { + q.mtx.Lock() + defer q.mtx.Unlock() + q.retry(chunkID) } -// Retry schedules a chunk to be retried, without refetching it. -func (q *chunkQueue) Retry(index uint32) { - q.Lock() - defer q.Unlock() - delete(q.chunkReturned, index) +func (q *chunkQueue) retry(chunkID bytes.HexBytes) { + item, ok := q.items[chunkID.String()] + if !ok || (item.status != receivedStatus && item.status != doneStatus) { + return + } + q.requestQueue = append(q.requestQueue, chunkID) + q.items[chunkID.String()].status = initStatus } // RetryAll schedules all chunks to be retried, without refetching them. func (q *chunkQueue) RetryAll() { - q.Lock() - defer q.Unlock() - q.chunkReturned = make(map[uint32]bool) -} - -// Size returns the total number of chunks for the snapshot and queue, or 0 when closed. -func (q *chunkQueue) Size() uint32 { - q.Lock() - defer q.Unlock() - - if q.snapshot == nil { - return 0 + q.mtx.Lock() + defer q.mtx.Unlock() + q.requestQueue = make([]bytes.HexBytes, 0, len(q.items)) + for _, item := range q.items { + q.retry(item.chunkID) } - - return q.snapshot.Chunks } -// WaitFor returns a channel that receives a chunk index when it arrives in the queue, or -// immediately if it has already arrived. The channel is closed without a value if the queue is -// closed or if the chunk index is not valid. -func (q *chunkQueue) WaitFor(index uint32) <-chan uint32 { - q.Lock() - defer q.Unlock() +// WaitFor returns a channel that receives a chunk ID when it arrives in the queue, or +// immediately if it has already arrived. The channel is closed without a value if the queue is closed +func (q *chunkQueue) WaitFor(chunkID bytes.HexBytes) <-chan bytes.HexBytes { + q.mtx.Lock() + defer q.mtx.Unlock() + return q.waitFor(chunkID) +} - ch := make(chan uint32, 1) - switch { - case q.snapshot == nil: +func (q *chunkQueue) waitFor(chunkID bytes.HexBytes) <-chan bytes.HexBytes { + ch := make(chan bytes.HexBytes, 1) + if q.snapshot == nil { close(ch) - - case index >= q.snapshot.Chunks: + return ch + } + item, ok := q.items[chunkID.String()] + if !ok { + ch <- chunkID close(ch) + return ch + } + item.waitChs = append(item.waitChs, ch) + return ch +} - case q.chunkFiles[index] != "": - ch <- index - close(ch) +// DoneChunksCount returns the number of chunks that have been returned +func (q *chunkQueue) DoneChunksCount() int { + q.mtx.Lock() + defer q.mtx.Unlock() + return q.doneCount +} - default: - if q.waiters[index] == nil { - q.waiters[index] = make([]chan<- uint32, 0) - } +func (q *chunkQueue) validateChunk(chunk *chunk) error { + if chunk.Height != q.snapshot.Height { + return fmt.Errorf("invalid chunk height %v, expected %v", + chunk.Height, + q.snapshot.Height) + } + if chunk.Version != q.snapshot.Version { + return fmt.Errorf("invalid chunk version %v, expected %v", + chunk.Version, + q.snapshot.Version) + } + return nil +} - q.waiters[index] = append(q.waiters[index], ch) +func (c *chunkItem) remove() error { + if err := os.Remove(c.file); err != nil { + return fmt.Errorf("failed to remove chunk %s: %w", c.chunkID, err) } + c.file = "" + return nil +} - return ch +func (c *chunkItem) write(data []byte) error { + err := os.WriteFile(c.file, data, 0600) + if err != nil { + return fmt.Errorf("failed to save chunk %v to file %v: %w", c.chunkID, c.file, err) + } + return nil } -func (q *chunkQueue) numChunksReturned() int { - q.Lock() - defer q.Unlock() +func (c *chunkItem) loadData() ([]byte, error) { + body, err := os.ReadFile(c.file) + if err != nil { + return nil, fmt.Errorf("failed to load chunk %s: %w", c.chunkID, err) + } + return body, nil +} - cnt := 0 - for _, b := range q.chunkReturned { - if b { - cnt++ +func (c *chunkItem) closeWaitChs(send bool) { + for _, ch := range c.waitChs { + if send { + ch <- c.chunkID } + close(ch) } - return cnt + c.waitChs = nil +} + +// isDiscardable returns true if a status is suitable for transition to discarded, otherwise false +func (c *chunkItem) isDiscardable() bool { + return c.status == initStatus } diff --git a/internal/statesync/chunks_test.go b/internal/statesync/chunks_test.go index 85cc23a80..0ecb01946 100644 --- a/internal/statesync/chunks_test.go +++ b/internal/statesync/chunks_test.go @@ -4,562 +4,363 @@ import ( "os" "testing" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/stretchr/testify/suite" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/bytes" ) -func setupChunkQueue(t *testing.T) (*chunkQueue, func()) { - snapshot := &snapshot{ - Height: 3, - Format: 1, - Chunks: 5, - Hash: []byte{7}, - Metadata: nil, - } - queue, err := newChunkQueue(snapshot, t.TempDir()) - require.NoError(t, err) - teardown := func() { - err := queue.Close() - require.NoError(t, err) - } - return queue, teardown +type ChunkQueueTestSuite struct { + suite.Suite + + snapshot *snapshot + queue *chunkQueue + tempDir string + chunks []*chunk } -func TestNewChunkQueue_TempDir(t *testing.T) { - snapshot := &snapshot{ +func TestChunkQueue(t *testing.T) { + suite.Run(t, new(ChunkQueueTestSuite)) +} + +func (suite *ChunkQueueTestSuite) SetupSuite() { + suite.snapshot = &snapshot{ Height: 3, - Format: 1, - Chunks: 5, - Hash: []byte{7}, + Version: 1, + Hash: []byte{0}, Metadata: nil, } - dir := t.TempDir() - queue, err := newChunkQueue(snapshot, dir) - require.NoError(t, err) - - files, err := os.ReadDir(dir) - require.NoError(t, err) - assert.Len(t, files, 1) - - err = queue.Close() - require.NoError(t, err) - - files, err = os.ReadDir(dir) - require.NoError(t, err) - assert.Len(t, files, 0) + suite.chunks = []*chunk{ + { + Height: 3, + Version: 1, + ID: []byte{0}, + Chunk: []byte{3, 1, 0}, + Sender: "a", + }, + { + Height: 3, + Version: 1, + ID: []byte{1}, + Chunk: []byte{3, 1, 1}, + Sender: "b", + }, + { + Height: 3, + Version: 1, + ID: []byte{2}, + Chunk: []byte{3, 1, 2}, + Sender: "c", + }, + { + Height: 3, + Version: 1, + ID: []byte{3}, + Chunk: []byte{3, 1, 3}, + Sender: "d", + }, + } } -func TestChunkQueue(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - // Adding the first chunk should be fine - added, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}}) - require.NoError(t, err) - assert.True(t, added) - - // Adding the last chunk should also be fine - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 4, Chunk: []byte{3, 1, 4}}) - require.NoError(t, err) - assert.True(t, added) +func (suite *ChunkQueueTestSuite) SetupTest() { + var err error + suite.tempDir = suite.T().TempDir() + suite.queue, err = newChunkQueue(suite.snapshot, suite.tempDir, 100) + suite.Require().NoError(err) +} - // Adding the first or last chunks again should return false - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}}) - require.NoError(t, err) - assert.False(t, added) +func (suite *ChunkQueueTestSuite) TearDownTest() { + err := suite.queue.Close() + suite.Require().NoError(err) +} - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 4, Chunk: []byte{3, 1, 4}}) - require.NoError(t, err) - assert.False(t, added) +func (suite *ChunkQueueTestSuite) TestTempDir() { + files, err := os.ReadDir(suite.tempDir) + suite.Require().NoError(err) + suite.Require().Len(files, 1) - // Adding the remaining chunks in reverse should be fine - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 3, Chunk: []byte{3, 1, 3}}) - require.NoError(t, err) - assert.True(t, added) + err = suite.queue.Close() + suite.Require().NoError(err) - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 2, Chunk: []byte{3, 1, 2}}) - require.NoError(t, err) - assert.True(t, added) + files, err = os.ReadDir(suite.tempDir) + suite.Require().NoError(err) + suite.Require().Len(files, 0) +} - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{3, 1, 1}}) - require.NoError(t, err) - assert.True(t, added) +func (suite *ChunkQueueTestSuite) TestChunkQueue() { + suite.initChunks() + testCases := []struct { + chunk *chunk + want bool + }{ + {chunk: suite.chunks[0], want: true}, + {chunk: suite.chunks[2], want: true}, + {chunk: suite.chunks[0], want: false}, + {chunk: suite.chunks[2], want: false}, + {chunk: suite.chunks[1], want: true}, + } + require := suite.Require() + for _, tc := range testCases { + added, err := suite.queue.Add(tc.chunk) + require.NoError(err) + require.Equal(tc.want, added) + } // At this point, we should be able to retrieve them all via Next - for i := 0; i < 5; i++ { - c, err := queue.Next() - require.NoError(t, err) - assert.Equal( - t, - &chunk{Height: 3, Format: 1, Index: uint32(i), Chunk: []byte{3, 1, byte(i)}}, - c, - ) + for _, i := range []int{0, 2, 1} { + c, err := suite.queue.Next() + require.NoError(err) + require.Equal(suite.chunks[i], c) } - _, err = queue.Next() - require.Error(t, err) - assert.Equal(t, errDone, err) // It should still be possible to try to add chunks (which will be ignored) - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}}) - require.NoError(t, err) - assert.False(t, added) + added, err := suite.queue.Add(suite.chunks[0]) + require.NoError(err) + require.False(added) - // After closing the queue it will also return false - err = queue.Close() - require.NoError(t, err) - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}}) - require.NoError(t, err) - assert.False(t, added) + // After closing the requestQueue it will also return false + err = suite.queue.Close() + require.NoError(err) + added, err = suite.queue.Add(suite.chunks[0]) + require.Error(err, errNilSnapshot) + require.False(added) // Closing the queue again should also be fine - err = queue.Close() - require.NoError(t, err) + err = suite.queue.Close() + require.NoError(err) } -func TestChunkQueue_Add_ChunkErrors(t *testing.T) { - testcases := map[string]struct { +func (suite *ChunkQueueTestSuite) TestAddChunkErrors() { + testCases := map[string]struct { chunk *chunk }{ "nil chunk": {nil}, - "nil body": {&chunk{Height: 3, Format: 1, Index: 0, Chunk: nil}}, - "wrong height": {&chunk{Height: 9, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}}}, - "wrong format": {&chunk{Height: 3, Format: 9, Index: 0, Chunk: []byte{3, 1, 0}}}, - "invalid index": {&chunk{Height: 3, Format: 1, Index: 5, Chunk: []byte{3, 1, 0}}}, + "nil body": {&chunk{Height: 3, Version: 1, ID: []byte{1}, Chunk: nil}}, + "wrong height": {&chunk{Height: 9, Version: 1, ID: []byte{2}, Chunk: []byte{2}}}, + "wrong version": {&chunk{Height: 3, Version: 9, ID: []byte{3}, Chunk: []byte{3}}}, + "invalid index": {&chunk{Height: 3, Version: 1, ID: []byte{4}, Chunk: []byte{4}}}, } - for name, tc := range testcases { - tc := tc - t.Run(name, func(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - _, err := queue.Add(tc.chunk) - require.Error(t, err) + for name, tc := range testCases { + suite.Run(name, func() { + _, err := suite.queue.Add(tc.chunk) + suite.Require().Error(err) }) } } -func TestChunkQueue_Allocate(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - for i := uint32(0); i < queue.Size(); i++ { - index, err := queue.Allocate() - require.NoError(t, err) - assert.EqualValues(t, i, index) - } - - _, err := queue.Allocate() - require.Error(t, err) - assert.Equal(t, errDone, err) - - for i := uint32(0); i < queue.Size(); i++ { - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: i, Chunk: []byte{byte(i)}}) - require.NoError(t, err) - } - - // After all chunks have been allocated and retrieved, discarding a chunk will reallocate it. - err = queue.Discard(2) - require.NoError(t, err) - - index, err := queue.Allocate() - require.NoError(t, err) - assert.EqualValues(t, 2, index) - _, err = queue.Allocate() - require.Error(t, err) - assert.Equal(t, errDone, err) - - // Discarding a chunk the closing the queue will return errDone. - err = queue.Discard(2) - require.NoError(t, err) - err = queue.Close() - require.NoError(t, err) - _, err = queue.Allocate() - require.Error(t, err) - assert.Equal(t, errDone, err) -} - -func TestChunkQueue_Discard(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - +func (suite *ChunkQueueTestSuite) TestDiscard() { + suite.initChunks() + require := suite.Require() // Add a few chunks to the queue and fetch a couple - _, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{byte(0)}}) - require.NoError(t, err) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{byte(1)}}) - require.NoError(t, err) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 2, Chunk: []byte{byte(2)}}) - require.NoError(t, err) - - c, err := queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 0, c.Index) - c, err = queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 1, c.Index) - - // Discarding the first chunk and re-adding it should cause it to be returned - // immediately by Next(), before procceeding with chunk 2 - err = queue.Discard(0) - require.NoError(t, err) - added, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{byte(0)}}) - require.NoError(t, err) - assert.True(t, added) - c, err = queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 0, c.Index) - c, err = queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 2, c.Index) - - // Discard then allocate, add and fetch all chunks - for i := uint32(0); i < queue.Size(); i++ { - err := queue.Discard(i) - require.NoError(t, err) + for _, c := range suite.chunks { + _, err := suite.queue.Add(c) + require.NoError(err) } - for i := uint32(0); i < queue.Size(); i++ { - _, err := queue.Allocate() - require.NoError(t, err) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: i, Chunk: []byte{byte(i)}}) - require.NoError(t, err) - c, err = queue.Next() - require.NoError(t, err) - assert.EqualValues(t, i, c.Index) + for _, i := range []int{0, 1} { + c, err := suite.queue.Next() + require.NoError(err) + require.EqualValues(suite.chunks[i].ID, c.ID) } + // Discarding the first chunk and re-adding it should cause it to be returned + // immediately by Next(), before proceeding with chunk 2 + err := suite.queue.Discard(suite.chunks[0].ID) + require.NoError(err) + added, err := suite.queue.Add(suite.chunks[0]) + require.NoError(err) + require.True(added) + nextChunk, err := suite.queue.Next() + require.NoError(err) + require.EqualValues(suite.chunks[2].ID, nextChunk.ID) // Discarding a non-existent chunk does nothing. - err = queue.Discard(99) - require.NoError(t, err) + err = suite.queue.Discard(factory.RandomHash()) + require.NoError(err) // When discard a couple of chunks, we should be able to allocate, add, and fetch them again. - err = queue.Discard(3) - require.NoError(t, err) - err = queue.Discard(1) - require.NoError(t, err) - - index, err := queue.Allocate() - require.NoError(t, err) - assert.EqualValues(t, 1, index) - index, err = queue.Allocate() - require.NoError(t, err) - assert.EqualValues(t, 3, index) - - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 3, Chunk: []byte{3}}) - require.NoError(t, err) - assert.True(t, added) - added, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{1}}) - require.NoError(t, err) - assert.True(t, added) - - chunk, err := queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 1, chunk.Index) - - chunk, err = queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 3, chunk.Index) - - _, err = queue.Next() - require.Error(t, err) - assert.Equal(t, errDone, err) - - // After closing the queue, discarding does nothing - err = queue.Close() - require.NoError(t, err) - err = queue.Discard(2) - require.NoError(t, err) -} + for _, i := range []int{1, 2} { + err = suite.queue.Discard(suite.chunks[i].ID) + require.NoError(err) + } -func TestChunkQueue_DiscardSender(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - // Allocate and add all chunks to the queue - senders := []types.NodeID{types.NodeID("a"), types.NodeID("b"), types.NodeID("c")} - for i := uint32(0); i < queue.Size(); i++ { - _, err := queue.Allocate() - require.NoError(t, err) - _, err = queue.Add(&chunk{ - Height: 3, - Format: 1, - Index: i, - Chunk: []byte{byte(i)}, - Sender: senders[int(i)%len(senders)], - }) - require.NoError(t, err) + for _, i := range []int{2, 1} { + added, err = suite.queue.Add(suite.chunks[i]) + require.NoError(err) + require.True(added) } - // Fetch the first three chunks - for i := uint32(0); i < 3; i++ { - _, err := queue.Next() - require.NoError(t, err) + for _, i := range []int{3, 0, 2, 1} { + nextChunk, err = suite.queue.Next() + require.NoError(err) + require.EqualValues(suite.chunks[i].ID, nextChunk.ID) } + // After closing the requestQueue, discarding does nothing + err = suite.queue.Close() + require.NoError(err) + err = suite.queue.Discard(suite.chunks[2].ID) + require.NoError(err) +} + +func (suite *ChunkQueueTestSuite) TestDiscardSender() { + suite.initChunks() + suite.processChunks() + // Discarding an unknown sender should do nothing - err := queue.DiscardSender(types.NodeID("x")) - require.NoError(t, err) - _, err = queue.Allocate() - assert.Equal(t, errDone, err) + err := suite.queue.DiscardSender("unknown") + suite.Require().NoError(err) // Discarding sender b should discard chunk 4, but not chunk 1 which has already been // returned. - err = queue.DiscardSender(types.NodeID("b")) - require.NoError(t, err) - index, err := queue.Allocate() - require.NoError(t, err) - assert.EqualValues(t, 4, index) - _, err = queue.Allocate() - assert.Equal(t, errDone, err) + err = suite.queue.DiscardSender(suite.chunks[1].Sender) + suite.Require().NoError(err) + suite.Require().True(suite.queue.IsRequestQueueEmpty()) } -func TestChunkQueue_GetSender(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() +func (suite *ChunkQueueTestSuite) TestGetSender() { + suite.initChunks() + require := suite.Require() + _, err := suite.queue.Add(suite.chunks[0]) + require.NoError(err) + _, err = suite.queue.Add(suite.chunks[1]) + require.NoError(err) - peerAID := types.NodeID("aa") - peerBID := types.NodeID("bb") - - _, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{1}, Sender: peerAID}) - require.NoError(t, err) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{2}, Sender: peerBID}) - require.NoError(t, err) - - assert.EqualValues(t, "aa", queue.GetSender(0)) - assert.EqualValues(t, "bb", queue.GetSender(1)) - assert.EqualValues(t, "", queue.GetSender(2)) + require.EqualValues(suite.chunks[0].Sender, suite.queue.GetSender(suite.chunks[0].ID)) + require.EqualValues(suite.chunks[1].Sender, suite.queue.GetSender(suite.chunks[1].ID)) + require.EqualValues("", suite.queue.GetSender(suite.chunks[2].ID)) // After the chunk has been processed, we should still know who the sender was - chunk, err := queue.Next() - require.NoError(t, err) - require.NotNil(t, chunk) - require.EqualValues(t, 0, chunk.Index) - assert.EqualValues(t, "aa", queue.GetSender(0)) + nextChunk, err := suite.queue.Next() + require.NoError(err) + require.NotNil(nextChunk) + require.EqualValues(suite.chunks[0].ID, nextChunk.ID) + require.EqualValues(suite.chunks[0].Sender, suite.queue.GetSender(suite.chunks[0].ID)) } -func TestChunkQueue_Next(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - +func (suite *ChunkQueueTestSuite) TestNext() { + suite.initChunks() + require := suite.Require() // Next should block waiting for the next chunks, even when given out of order. - chNext := make(chan *chunk, 10) + chNext := make(chan *chunk) go func() { for { - c, err := queue.Next() + c, err := suite.queue.Next() if err == errDone { close(chNext) break } - require.NoError(t, err) + require.NoError(err) chNext <- c } }() - assert.Empty(t, chNext) - _, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{3, 1, 1}, Sender: types.NodeID("b")}) - require.NoError(t, err) + require.Empty(chNext) + _, err := suite.queue.Add(suite.chunks[1]) + require.NoError(err) select { case <-chNext: - assert.Fail(t, "channel should be empty") + suite.Fail("channel should be empty") default: } - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}, Sender: types.NodeID("a")}) - require.NoError(t, err) - - assert.Equal(t, - &chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}, Sender: types.NodeID("a")}, - <-chNext) - assert.Equal(t, - &chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{3, 1, 1}, Sender: types.NodeID("b")}, - <-chNext) - - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 4, Chunk: []byte{3, 1, 4}, Sender: types.NodeID("e")}) - require.NoError(t, err) - select { - case <-chNext: - assert.Fail(t, "channel should be empty") - default: - } + _, err = suite.queue.Add(suite.chunks[0]) + require.NoError(err) + require.Equal(suite.chunks[1], <-chNext) + require.Equal(suite.chunks[0], <-chNext) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 2, Chunk: []byte{3, 1, 2}, Sender: types.NodeID("c")}) - require.NoError(t, err) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 3, Chunk: []byte{3, 1, 3}, Sender: types.NodeID("d")}) - require.NoError(t, err) - - assert.Equal(t, - &chunk{Height: 3, Format: 1, Index: 2, Chunk: []byte{3, 1, 2}, Sender: types.NodeID("c")}, - <-chNext) - assert.Equal(t, - &chunk{Height: 3, Format: 1, Index: 3, Chunk: []byte{3, 1, 3}, Sender: types.NodeID("d")}, - <-chNext) - assert.Equal(t, - &chunk{Height: 3, Format: 1, Index: 4, Chunk: []byte{3, 1, 4}, Sender: types.NodeID("e")}, - <-chNext) + err = suite.queue.Close() + require.NoError(err) _, ok := <-chNext - assert.False(t, ok, "channel should be closed") - - // Calling next on a finished queue should return done - _, err = queue.Next() - assert.Equal(t, errDone, err) + require.False(ok) } -func TestChunkQueue_Next_Closed(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - +func (suite *ChunkQueueTestSuite) TestNextClosed() { + suite.initChunks() + require := suite.Require() // Calling Next on a closed queue should return done - _, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{3, 1, 1}}) - require.NoError(t, err) - err = queue.Close() - require.NoError(t, err) - - _, err = queue.Next() - assert.Equal(t, errDone, err) -} - -func TestChunkQueue_Retry(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - allocateAddChunksToQueue(t, queue) + _, err := suite.queue.Add(suite.chunks[1]) + require.NoError(err) + err = suite.queue.Close() + require.NoError(err) - // Retrying a couple of chunks makes Next() return them, but they are not allocatable - queue.Retry(3) - queue.Retry(1) - - _, err := queue.Allocate() - assert.Equal(t, errDone, err) - - chunk, err := queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 1, chunk.Index) - - chunk, err = queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 3, chunk.Index) - - _, err = queue.Next() - assert.Equal(t, errDone, err) + _, err = suite.queue.Next() + require.Equal(errDone, err) } -func TestChunkQueue_RetryAll(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - allocateAddChunksToQueue(t, queue) +func (suite *ChunkQueueTestSuite) TestRetry() { + suite.initChunks() + suite.processChunks() + require := suite.Require() - _, err := queue.Next() - assert.Equal(t, errDone, err) - - queue.RetryAll() - - _, err = queue.Allocate() - assert.Equal(t, errDone, err) - - for i := uint32(0); i < queue.Size(); i++ { - chunk, err := queue.Next() - require.NoError(t, err) - assert.EqualValues(t, i, chunk.Index) + for i := range []int{2, 0} { + suite.queue.Retry(suite.chunks[i].ID) + chunkID, err := suite.queue.Dequeue() + require.NoError(err) + require.Equal(chunkID, suite.chunks[i].ID) } - - _, err = queue.Next() - assert.Equal(t, errDone, err) } -func TestChunkQueue_Size(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - assert.EqualValues(t, 5, queue.Size()) - - err := queue.Close() - require.NoError(t, err) - assert.EqualValues(t, 0, queue.Size()) +func (suite *ChunkQueueTestSuite) TestRetryAll() { + suite.initChunks() + suite.processChunks() + require := suite.Require() + require.True(suite.queue.IsRequestQueueEmpty()) + suite.queue.RetryAll() + require.Equal(len(suite.chunks), suite.queue.RequestQueueLen()) } -func TestChunkQueue_WaitFor(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - waitFor1 := queue.WaitFor(1) - waitFor4 := queue.WaitFor(4) - - // Adding 0 and 2 should not trigger waiters - _, err := queue.Add(&chunk{Height: 3, Format: 1, Index: 0, Chunk: []byte{3, 1, 0}}) - require.NoError(t, err) - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 2, Chunk: []byte{3, 1, 2}}) - require.NoError(t, err) - select { - case <-waitFor1: - require.Fail(t, "WaitFor(1) should not trigger on 0 or 2") - case <-waitFor4: - require.Fail(t, "WaitFor(4) should not trigger on 0 or 2") - default: +func (suite *ChunkQueueTestSuite) TestWaitFor() { + suite.initChunks() + require := suite.Require() + waitForChs := make([]<-chan bytes.HexBytes, len(suite.chunks)) + for i, c := range suite.chunks { + waitForChs[i] = suite.queue.WaitFor(c.ID) } - // Adding 1 should trigger WaitFor(1), but not WaitFor(4). The channel should be closed. - _, err = queue.Add(&chunk{Height: 3, Format: 1, Index: 1, Chunk: []byte{3, 1, 1}}) - require.NoError(t, err) - assert.EqualValues(t, 1, <-waitFor1) - _, ok := <-waitFor1 - assert.False(t, ok) - select { - case <-waitFor4: - require.Fail(t, "WaitFor(4) should not trigger on 0 or 2") - default: + for _, ch := range waitForChs { + select { + case <-ch: + require.Fail("WaitFor should not trigger") + default: + } } + _, err := suite.queue.Add(suite.chunks[0]) + require.NoError(err) + require.EqualValues(suite.chunks[0].ID, <-waitForChs[0]) + _, ok := <-waitForChs[0] + require.False(ok) + // Fetch the first chunk. At this point, waiting for either 0 (retrieved from pool) or 1 // (queued in pool) should immediately return true. - c, err := queue.Next() - require.NoError(t, err) - assert.EqualValues(t, 0, c.Index) - - w := queue.WaitFor(0) - assert.EqualValues(t, 0, <-w) - _, ok = <-w - assert.False(t, ok) - - w = queue.WaitFor(1) - assert.EqualValues(t, 1, <-w) - _, ok = <-w - assert.False(t, ok) + c, err := suite.queue.Next() + require.NoError(err) + require.EqualValues(suite.chunks[0].ID, c.ID) // Close the queue. This should cause the waiter for 4 to close, and also cause any future // waiters to get closed channels. - err = queue.Close() - require.NoError(t, err) - _, ok = <-waitFor4 - assert.False(t, ok) - - w = queue.WaitFor(3) - _, ok = <-w - assert.False(t, ok) + err = suite.queue.Close() + require.NoError(err) + _, ok = <-waitForChs[2] + require.False(ok) } -func TestNumChunkReturned(t *testing.T) { - queue, teardown := setupChunkQueue(t) - defer teardown() - - assert.EqualValues(t, 5, queue.Size()) - - allocateAddChunksToQueue(t, queue) - assert.EqualValues(t, 5, queue.numChunksReturned()) - - err := queue.Close() - require.NoError(t, err) +func (suite *ChunkQueueTestSuite) initChunks() { + for _, c0 := range suite.chunks { + suite.queue.Enqueue(c0.ID) + c1, err := suite.queue.Dequeue() + suite.Require().NoError(err) + suite.Require().Equal(c0.ID, c1) + } } -// Allocate and add all chunks to the queue -func allocateAddChunksToQueue(t *testing.T, q *chunkQueue) { - t.Helper() - for i := uint32(0); i < q.Size(); i++ { - _, err := q.Allocate() - require.NoError(t, err) - _, err = q.Add(&chunk{Height: 3, Format: 1, Index: i, Chunk: []byte{byte(i)}}) - require.NoError(t, err) - _, err = q.Next() - require.NoError(t, err) +func (suite *ChunkQueueTestSuite) processChunks() { + for _, c := range suite.chunks { + added, err := suite.queue.Add(c) + suite.Require().NoError(err) + suite.Require().True(added) + c1, err := suite.queue.Next() + suite.Require().NoError(err) + suite.Require().Equal(c, c1) } } diff --git a/internal/statesync/dispatcher.go b/internal/statesync/dispatcher.go index 3a7fef5dd..5ded294ca 100644 --- a/internal/statesync/dispatcher.go +++ b/internal/statesync/dispatcher.go @@ -8,12 +8,12 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light/provider" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light/provider" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/internal/statesync/dispatcher_test.go b/internal/statesync/dispatcher_test.go index 88add1e06..b80884e7a 100644 --- a/internal/statesync/dispatcher_test.go +++ b/internal/statesync/dispatcher_test.go @@ -12,11 +12,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + "github.com/dashpay/tenderdash/types" ) type channelInternal struct { diff --git a/internal/statesync/metrics.gen.go b/internal/statesync/metrics.gen.go index b4d5caa12..91c83fb65 100644 --- a/internal/statesync/metrics.gen.go +++ b/internal/statesync/metrics.gen.go @@ -38,12 +38,6 @@ func PrometheusMetrics(namespace string, labelsAndValues ...string) *Metrics { Name: "snapshot_chunk", Help: "The current number of chunks that have been processed.", }, labels).With(labelsAndValues...), - SnapshotChunkTotal: prometheus.NewGaugeFrom(stdprometheus.GaugeOpts{ - Namespace: namespace, - Subsystem: MetricsSubsystem, - Name: "snapshot_chunk_total", - Help: "The total number of chunks in the current snapshot.", - }, labels).With(labelsAndValues...), BackFilledBlocks: prometheus.NewCounterFrom(stdprometheus.CounterOpts{ Namespace: namespace, Subsystem: MetricsSubsystem, @@ -65,7 +59,6 @@ func NopMetrics() *Metrics { ChunkProcessAvgTime: discard.NewGauge(), SnapshotHeight: discard.NewGauge(), SnapshotChunk: discard.NewCounter(), - SnapshotChunkTotal: discard.NewGauge(), BackFilledBlocks: discard.NewCounter(), BackFillBlocksTotal: discard.NewGauge(), } diff --git a/internal/statesync/metrics.go b/internal/statesync/metrics.go index a8a3af915..b1aea963c 100644 --- a/internal/statesync/metrics.go +++ b/internal/statesync/metrics.go @@ -21,8 +21,6 @@ type Metrics struct { SnapshotHeight metrics.Gauge // The current number of chunks that have been processed. SnapshotChunk metrics.Counter - // The total number of chunks in the current snapshot. - SnapshotChunkTotal metrics.Gauge // The current number of blocks that have been back-filled. BackFilledBlocks metrics.Counter // The total number of blocks that need to be back-filled. diff --git a/internal/statesync/mocks/state_provider.go b/internal/statesync/mocks/state_provider.go index 108ae499b..b4301dffc 100644 --- a/internal/statesync/mocks/state_provider.go +++ b/internal/statesync/mocks/state_provider.go @@ -5,13 +5,13 @@ package mocks import ( context "context" - bytes "github.com/tendermint/tendermint/libs/bytes" + bytes "github.com/dashpay/tenderdash/libs/bytes" mock "github.com/stretchr/testify/mock" - state "github.com/tendermint/tendermint/internal/state" + state "github.com/dashpay/tenderdash/internal/state" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // StateProvider is an autogenerated mock type for the StateProvider type @@ -95,13 +95,12 @@ func (_m *StateProvider) State(ctx context.Context, height uint64) (state.State, return r0, r1 } -type mockConstructorTestingTNewStateProvider interface { +// NewStateProvider creates a new instance of StateProvider. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewStateProvider(t interface { mock.TestingT Cleanup(func()) -} - -// NewStateProvider creates a new instance of StateProvider. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewStateProvider(t mockConstructorTestingTNewStateProvider) *StateProvider { +}) *StateProvider { mock := &StateProvider{} mock.Mock.Test(t) diff --git a/internal/statesync/peer.go b/internal/statesync/peer.go new file mode 100644 index 000000000..bc53201de --- /dev/null +++ b/internal/statesync/peer.go @@ -0,0 +1,154 @@ +package statesync + +import ( + "context" + + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/store" + "github.com/dashpay/tenderdash/types" +) + +type ( + // HandlerFunc is peer update event handler + HandlerFunc func(ctx context.Context, update p2p.PeerUpdate) error + // PeerManager is a manager for peers + PeerManager struct { + logger log.Logger + client client.SnapshotClient + peerStore store.Store[types.NodeID, PeerData] + peerSubs *PeerSubscriber + } + // PeerSubscriber is a subscriber for peer events + PeerSubscriber struct { + logger log.Logger + sub p2p.PeerEventSubscriber + handles map[p2p.PeerStatus]HandlerFunc + stopCh chan struct{} + stoppedCh chan struct{} + } + // PeerStatus is a status of a peer + PeerStatus int + // PeerData is a data of a peer + PeerData struct { + Snapshots []Snapshot + Status PeerStatus + } + // Snapshot is a snapshot of a peer + Snapshot struct { + Height int64 + } +) + +// List of peer statuses +const ( + PeerNotReady PeerStatus = iota + PeerReady +) + +// NewPeerSubscriber creates a new peer subscriber +func NewPeerSubscriber(logger log.Logger, sub p2p.PeerEventSubscriber) *PeerSubscriber { + return &PeerSubscriber{ + logger: logger, + sub: sub, + handles: make(map[p2p.PeerStatus]HandlerFunc), + stopCh: make(chan struct{}), + stoppedCh: make(chan struct{}), + } +} + +// On adds a handler for a peer update event +func (p *PeerSubscriber) On(eventName p2p.PeerStatus, handler HandlerFunc) { + p.handles[eventName] = handler +} + +// Start starts the peer subscriber +func (p *PeerSubscriber) Start(ctx context.Context) { + peerUpdates := p.sub(ctx, "statesync") + defer close(p.stoppedCh) + for { + select { + case <-ctx.Done(): + return + case peerUpdate := <-peerUpdates.Updates(): + err := p.execute(ctx, peerUpdate) + if err != nil { + p.logger.Error("failed to execute peer update event handler ", "err", err.Error()) + } + case <-p.stopCh: + return + } + } +} + +// Stop stops the peer subscriber +func (p *PeerSubscriber) Stop(ctx context.Context) { + close(p.stopCh) + select { + case <-ctx.Done(): + return + case <-p.stoppedCh: + return + } +} + +// processPeerUpdate processes a PeerUpdate, returning an error upon failing to +// handle the PeerUpdate or if a panic is recovered. +func (p *PeerSubscriber) execute(ctx context.Context, peerUpdate p2p.PeerUpdate) error { + p.logger.Info("received peer update", "peer", peerUpdate.NodeID, "status", peerUpdate.Status) + handler, ok := p.handles[peerUpdate.Status] + if !ok { + // TODO: return error or write a log + return nil // ignore + } + err := handler(ctx, peerUpdate) + if err != nil { + return err + } + p.logger.Info("processed peer update", "peer", peerUpdate.NodeID, "status", peerUpdate.Status) + return nil +} + +// NewPeerManager creates a new peer manager +func NewPeerManager( + logger log.Logger, + client client.SnapshotClient, + peerStore store.Store[types.NodeID, PeerData], + peerSubs *PeerSubscriber, +) *PeerManager { + return &PeerManager{ + logger: logger, + client: client, + peerStore: peerStore, + peerSubs: peerSubs, + } +} + +// Start starts the peer manager and its peer update listeners +func (p *PeerManager) Start(ctx context.Context) { + p.peerSubs.On(p2p.PeerStatusUp, func(ctx context.Context, update p2p.PeerUpdate) error { + p.peerStore.Put(update.NodeID, PeerData{Status: PeerNotReady}) + err := p.client.GetSnapshots(ctx, update.NodeID) + if err != nil { + p.logger.Error("failed to get snapshots promise", "err", err) + return err + } + return nil + }) + p.peerSubs.On(p2p.PeerStatusDown, func(ctx context.Context, update p2p.PeerUpdate) error { + p.peerStore.Delete(update.NodeID) + return nil + }) + p.peerSubs.Start(ctx) +} + +// Stop stops the peer manager and its peer update listeners +func (p *PeerManager) Stop(ctx context.Context) { + p.peerSubs.Stop(ctx) +} + +// NewPeerStore returns a new in-memory peer store +func NewPeerStore() *store.InMemStore[types.NodeID, PeerData] { + return store.NewInMemStore[types.NodeID, PeerData]() +} diff --git a/internal/statesync/peer_test.go b/internal/statesync/peer_test.go new file mode 100644 index 000000000..23d6d0d7f --- /dev/null +++ b/internal/statesync/peer_test.go @@ -0,0 +1,78 @@ +package statesync + +import ( + "context" + "testing" + "time" + + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client/mocks" + "github.com/dashpay/tenderdash/libs/log" + peerMocks "github.com/dashpay/tenderdash/libs/store/mocks" + "github.com/dashpay/tenderdash/types" +) + +func TestPeerSubscriberBasic(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 10*time.Millisecond) + defer cancel() + inCh := make(chan p2p.PeerUpdate) + peerUpdates := p2p.NewPeerUpdates(inCh, 0, "test") + events := []p2p.PeerUpdate{ + {NodeID: "test", Status: p2p.PeerStatusUp}, + {NodeID: "test", Status: p2p.PeerStatusDown}, + } + p2pSub := func(context.Context, string) *p2p.PeerUpdates { + return peerUpdates + } + peerSub := NewPeerSubscriber(log.NewNopLogger(), p2pSub) + outCh := make(chan struct{}) + peerSub.On(p2p.PeerStatusUp, func(ctx context.Context, update p2p.PeerUpdate) error { + outCh <- struct{}{} + return nil + }) + peerSub.On(p2p.PeerStatusDown, func(ctx context.Context, update p2p.PeerUpdate) error { + outCh <- struct{}{} + return nil + }) + go func() { + peerSub.Start(ctx) + }() + go func() { + for _, event := range events { + inCh <- event + } + }() + for i := 0; i < len(events); i++ { + <-outCh + } + peerSub.Stop(ctx) +} + +func TestPeerManagerBasic(t *testing.T) { + ctx := context.Background() + peerID := types.NodeID("testID") + logger := log.NewNopLogger() + fakeClient := mocks.NewSnapshotClient(t) + fakeClient. + On("GetSnapshots", ctx, peerID). + Once(). + Return(nil) + peerUpdateCh := make(chan p2p.PeerUpdate) + peerSubs := NewPeerSubscriber(logger, func(context.Context, string) *p2p.PeerUpdates { + return p2p.NewPeerUpdates(peerUpdateCh, 0, "test") + }) + peerStore := peerMocks.NewStore[types.NodeID, PeerData](t) + peerStore. + On("Put", peerID, PeerData{Status: PeerNotReady}). + Once(). + Return(nil) + peerStore. + On("Delete", peerID). + Once(). + Return(nil) + manager := NewPeerManager(logger, fakeClient, peerStore, peerSubs) + go manager.Start(ctx) + peerUpdateCh <- p2p.PeerUpdate{NodeID: peerID, Status: p2p.PeerStatusUp} + peerUpdateCh <- p2p.PeerUpdate{NodeID: peerID, Status: p2p.PeerStatusDown} + manager.Stop(ctx) +} diff --git a/internal/statesync/reactor.go b/internal/statesync/reactor.go index 0943586ec..d1b64b329 100644 --- a/internal/statesync/reactor.go +++ b/internal/statesync/reactor.go @@ -3,6 +3,7 @@ package statesync import ( "bytes" "context" + "encoding/hex" "errors" "fmt" "runtime/debug" @@ -11,20 +12,20 @@ import ( sync "github.com/sasha-s/go-deadlock" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/p2p" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/light/provider" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/p2p" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/light/provider" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + "github.com/dashpay/tenderdash/types" ) var ( @@ -324,7 +325,7 @@ func (r *Reactor) OnStart(ctx context.Context) error { if r.needsStateSync { r.logger.Info("starting state sync") if _, err := r.Sync(ctx); err != nil { - r.logger.Error("state sync failed; shutting down this node", "err", err) + r.logger.Error("state sync failed; shutting down this node", "error", err) return err } } @@ -393,7 +394,7 @@ func (r *Reactor) Sync(ctx context.Context) (sm.State, error) { } if err := r.Backfill(ctx, state); err != nil { - r.logger.Error("backfill failed. Proceeding optimistically...", "err", err) + r.logger.Error("backfill failed. Proceeding optimistically...", "error", err) } if r.eventBus != nil { @@ -496,8 +497,11 @@ func (r *Reactor) backfill( sleepTime time.Duration, lightBlockResponseTimeout time.Duration, ) error { - r.logger.Info("starting backfill process...", "startHeight", startHeight, - "stopHeight", stopHeight, "stopTime", stopTime, "trustedBlockID", trustedBlockID) + r.logger.Info("starting backfill process...", + "startHeight", startHeight, + "stopHeight", stopHeight, + "stopTime", stopTime, + "trustedBlockID", trustedBlockID) r.backfillBlockTotal = startHeight - stopHeight + 1 r.metrics.BackFillBlocksTotal.Set(float64(r.backfillBlockTotal)) @@ -517,7 +521,7 @@ func (r *Reactor) backfill( // time. Ideally we want the verification process to never have to be // waiting on blocks. If it takes 4s to retrieve a block and 1s to verify // it, then steady state involves four workers. - for i := 0; i < int(r.cfg.Fetchers); i++ { + for i := 0; i < r.cfg.Fetchers; i++ { go func() { for { select { @@ -558,7 +562,8 @@ func (r *Reactor) backfill( } else { // we don't punish the peer as it might just have not responded in time r.logger.Info("backfill: error with fetching light block", - "height", height, "err", err) + "height", height, + "error", err) } continue } @@ -568,7 +573,8 @@ func (r *Reactor) backfill( err = lb.ValidateBasic(chainID) if err != nil || lb.Height != height { r.logger.Info("backfill: fetched light block failed validate basic, removing peer...", - "err", err, "height", height) + "height", height, + "error", err) queue.retry(height) if serr := r.sendBlockError(ctx, p2p.PeerError{ NodeID: peer, @@ -675,7 +681,7 @@ func (r *Reactor) handleSnapshotMessage(ctx context.Context, envelope *p2p.Envel case *ssproto.SnapshotsRequest: snapshots, err := r.recentSnapshots(ctx, recentSnapshots) if err != nil { - logger.Error("failed to fetch snapshots", "err", err) + logger.Error("failed to fetch snapshots", "error", err) return nil } @@ -683,7 +689,7 @@ func (r *Reactor) handleSnapshotMessage(ctx context.Context, envelope *p2p.Envel logger.Info( "advertising snapshot", "height", snapshot.Height, - "format", snapshot.Format, + "version", snapshot.Version, "peer", envelope.From, ) @@ -691,8 +697,7 @@ func (r *Reactor) handleSnapshotMessage(ctx context.Context, envelope *p2p.Envel To: envelope.From, Message: &ssproto.SnapshotsResponse{ Height: snapshot.Height, - Format: snapshot.Format, - Chunks: snapshot.Chunks, + Version: snapshot.Version, Hash: snapshot.Hash, Metadata: snapshot.Metadata, }, @@ -708,11 +713,12 @@ func (r *Reactor) handleSnapshotMessage(ctx context.Context, envelope *p2p.Envel return nil } - logger.Info("received snapshot", "height", msg.Height, "format", msg.Format) + logger.Info("received snapshot", + "height", msg.Height, + "version", msg.Version) _, err := syncer.AddSnapshot(envelope.From, &snapshot{ Height: msg.Height, - Format: msg.Format, - Chunks: msg.Chunks, + Version: msg.Version, Hash: msg.Hash, Metadata: msg.Metadata, }) @@ -720,13 +726,15 @@ func (r *Reactor) handleSnapshotMessage(ctx context.Context, envelope *p2p.Envel logger.Error( "failed to add snapshot", "height", msg.Height, - "format", msg.Format, + "version", msg.Version, "channel", envelope.ChannelID, - "err", err, + "error", err, ) return nil } - logger.Info("added snapshot", "height", msg.Height, "format", msg.Format) + logger.Info("added snapshot", + "height", msg.Height, + "version", msg.Version) default: return fmt.Errorf("received unknown message: %T", msg) @@ -743,35 +751,35 @@ func (r *Reactor) handleChunkMessage(ctx context.Context, envelope *p2p.Envelope case *ssproto.ChunkRequest: r.logger.Debug("received chunk request", "height", msg.Height, - "format", msg.Format, - "chunk", msg.Index, + "version", msg.Version, + "chunkID", hex.EncodeToString(msg.ChunkId), "peer", envelope.From) resp, err := r.conn.LoadSnapshotChunk(ctx, &abci.RequestLoadSnapshotChunk{ - Height: msg.Height, - Format: msg.Format, - Chunk: msg.Index, + Height: msg.Height, + Version: msg.Version, + ChunkId: msg.ChunkId, }) if err != nil { r.logger.Error("failed to load chunk", "height", msg.Height, - "format", msg.Format, - "chunk", msg.Index, - "err", err, - "peer", envelope.From) + "version", msg.Version, + "chunkID", hex.EncodeToString(msg.ChunkId), + "peer", envelope.From, + "error", err) return nil } r.logger.Debug("sending chunk", "height", msg.Height, - "format", msg.Format, - "chunk", msg.Index, + "version", msg.Version, + "chunkID", hex.EncodeToString(msg.ChunkId), "peer", envelope.From) if err := chunkCh.Send(ctx, p2p.Envelope{ To: envelope.From, Message: &ssproto.ChunkResponse{ Height: msg.Height, - Format: msg.Format, - Index: msg.Index, + Version: msg.Version, + ChunkId: msg.ChunkId, Chunk: resp.Chunk, Missing: resp.Chunk == nil, }, @@ -788,23 +796,24 @@ func (r *Reactor) handleChunkMessage(ctx context.Context, envelope *p2p.Envelope r.logger.Debug("received chunk; adding to sync", "height", msg.Height, - "format", msg.Format, - "chunk", msg.Index, + "version", msg.Version, + "chunkID", hex.EncodeToString(msg.ChunkId), + "chunkLen", len(msg.Chunk), "peer", envelope.From) _, err := syncer.AddChunk(&chunk{ - Height: msg.Height, - Format: msg.Format, - Index: msg.Index, - Chunk: msg.Chunk, - Sender: envelope.From, + Height: msg.Height, + Version: msg.Version, + ID: msg.ChunkId, + Chunk: msg.Chunk, + Sender: envelope.From, }) if err != nil { r.logger.Error("failed to add chunk", "height", msg.Height, - "format", msg.Format, - "chunk", msg.Index, - "err", err, - "peer", envelope.From) + "version", msg.Version, + "chunkID", hex.EncodeToString(msg.ChunkId), + "peer", envelope.From, + "error", err) return nil } @@ -821,7 +830,9 @@ func (r *Reactor) handleLightBlockMessage(ctx context.Context, envelope *p2p.Env r.logger.Info("received light block request", "height", msg.Height) lb, err := r.fetchLightBlock(msg.Height) if err != nil { - r.logger.Error("failed to retrieve light block", "err", err, "height", msg.Height) + r.logger.Error("failed to retrieve light block", + "height", msg.Height, + "error", err) return err } if lb == nil { @@ -838,7 +849,7 @@ func (r *Reactor) handleLightBlockMessage(ctx context.Context, envelope *p2p.Env lbproto, err := lb.ToProto() if err != nil { - r.logger.Error("marshaling light block to proto", "err", err) + r.logger.Error("marshaling light block to proto", "error", err) return nil } @@ -862,7 +873,9 @@ func (r *Reactor) handleLightBlockMessage(ctx context.Context, envelope *p2p.Env if errors.Is(err, context.Canceled) { return err } - r.logger.Error("error processing light block response", "err", err, "height", height) + r.logger.Error("error processing light block response", + "height", height, + "error", err) } default: @@ -878,7 +891,9 @@ func (r *Reactor) handleParamsMessage(ctx context.Context, envelope *p2p.Envelop r.logger.Debug("received consensus params request", "height", msg.Height) cp, err := r.stateStore.LoadConsensusParams(int64(msg.Height)) if err != nil { - r.logger.Error("failed to fetch requested consensus params", "err", err, "height", msg.Height) + r.logger.Error("failed to fetch requested consensus params", + "height", msg.Height, + "error", err) return nil } @@ -927,7 +942,7 @@ func (r *Reactor) handleMessage(ctx context.Context, envelope *p2p.Envelope, cha err = fmt.Errorf("panic in processing message: %v", e) r.logger.Error( "recovering from processing message panic", - "err", err, + "error", err, "stack", string(debug.Stack()), ) } @@ -975,15 +990,15 @@ func (r *Reactor) processChannels(ctx context.Context, chanTable map[p2p.Channel "envelope_from", envelope.From, "envelope_ch", envelope.ChannelID, "num_chs", len(chanTable), - "err", err, + "error", err, ) return } r.logger.Error("failed to process message", - "err", err, "channel", ch.String(), "ch_id", envelope.ChannelID, - "envelope", envelope) + "envelope", envelope, + "error", err) if serr := ch.SendError(ctx, p2p.PeerError{ NodeID: envelope.From, Err: err, @@ -1076,7 +1091,7 @@ func (r *Reactor) recentSnapshots(ctx context.Context, n uint32) ([]*snapshot, e switch { case a.Height > b.Height: return true - case a.Height == b.Height && a.Format > b.Format: + case a.Height == b.Height && a.Version > b.Version: return true default: return false @@ -1091,8 +1106,7 @@ func (r *Reactor) recentSnapshots(ctx context.Context, n uint32) ([]*snapshot, e snapshots = append(snapshots, &snapshot{ Height: s.Height, - Format: s.Format, - Chunks: s.Chunks, + Version: s.Version, Hash: s.Hash, Metadata: s.Metadata, }) @@ -1190,25 +1204,6 @@ func (r *Reactor) SnapshotHeight() int64 { } return 0 } -func (r *Reactor) SnapshotChunksCount() int64 { - r.mtx.RLock() - defer r.mtx.RUnlock() - - if r.syncer != nil && r.syncer.chunks != nil { - return int64(r.syncer.chunks.numChunksReturned()) - } - return 0 -} - -func (r *Reactor) SnapshotChunksTotal() int64 { - r.mtx.RLock() - defer r.mtx.RUnlock() - - if r.syncer != nil && r.syncer.processingSnapshot != nil { - return int64(r.syncer.processingSnapshot.Chunks) - } - return 0 -} func (r *Reactor) BackFilledBlocks() int64 { r.mtx.RLock() diff --git a/internal/statesync/reactor_test.go b/internal/statesync/reactor_test.go index 1bd5487d9..17a6895c1 100644 --- a/internal/statesync/reactor_test.go +++ b/internal/statesync/reactor_test.go @@ -16,22 +16,22 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - clientmocks "github.com/tendermint/tendermint/abci/client/mocks" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/proxy" - smmocks "github.com/tendermint/tendermint/internal/state/mocks" - "github.com/tendermint/tendermint/internal/statesync/mocks" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light/provider" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + clientmocks "github.com/dashpay/tenderdash/abci/client/mocks" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/proxy" + smmocks "github.com/dashpay/tenderdash/internal/state/mocks" + "github.com/dashpay/tenderdash/internal/statesync/mocks" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light/provider" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( @@ -91,7 +91,7 @@ func setup( t.Helper() if conn == nil { - conn = &clientmocks.Client{} + conn = clientmocks.NewClient(t) } rts := &reactorTestSuite{ @@ -146,7 +146,7 @@ func setup( rts.paramsPeerErrCh, ) - rts.stateStore = &smmocks.Store{} + rts.stateStore = smmocks.NewStore(t) rts.blockStore = store.NewBlockStore(dbm.NewMemDB()) cfg := config.DefaultStateSyncConfig() @@ -227,38 +227,51 @@ func TestReactor_Sync(t *testing.T) { rts := setup(ctx, t, nil, nil, 100) chain := buildLightBlockChain(ctx, t, 1, 10, time.Now(), rts.privVal) // app accepts any snapshot - rts.conn.On("OfferSnapshot", ctx, mock.IsType(&abci.RequestOfferSnapshot{})). + rts.conn. + On("OfferSnapshot", ctx, mock.IsType(&abci.RequestOfferSnapshot{})). Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ACCEPT}, nil) - // app accepts every chunk - rts.conn.On("ApplySnapshotChunk", ctx, mock.IsType(&abci.RequestApplySnapshotChunk{})). - Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) + rts.conn. + On("ApplySnapshotChunk", ctx, mock.IsType(&abci.RequestApplySnapshotChunk{})). + Once(). + Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, nil) // app query returns valid state app hash - rts.conn.On("Info", mock.Anything, &proxy.RequestInfo).Return(&abci.ResponseInfo{ - AppVersion: testAppVersion, - LastBlockHeight: snapshotHeight, - LastBlockAppHash: chain[snapshotHeight+1].AppHash, - }, nil) + rts.conn. + On("Info", mock.Anything, &proxy.RequestInfo). + Return(&abci.ResponseInfo{ + AppVersion: testAppVersion, + LastBlockHeight: snapshotHeight, + LastBlockAppHash: chain[snapshotHeight+1].AppHash, + }, nil) // store accepts state and validator sets - rts.stateStore.On("Bootstrap", mock.AnythingOfType("state.State")).Return(nil) - rts.stateStore.On("SaveValidatorSets", mock.AnythingOfType("int64"), mock.AnythingOfType("int64"), - mock.AnythingOfType("*types.ValidatorSet")).Return(nil) + rts.stateStore. + On("Bootstrap", mock.AnythingOfType("state.State")). + Return(nil) + rts.stateStore. + On("SaveValidatorSets", + mock.AnythingOfType("int64"), + mock.AnythingOfType("int64"), + mock.AnythingOfType("*types.ValidatorSet")). + Return(nil) closeCh := make(chan struct{}) defer close(closeCh) + + appHash := []byte{1, 2, 3} + go handleLightBlockRequests(ctx, t, chain, rts.blockOutCh, rts.blockInCh, closeCh, 0) go graduallyAddPeers(ctx, t, rts.peerUpdateCh, closeCh, 1*time.Second) go handleSnapshotRequests(ctx, t, rts.snapshotOutCh, rts.snapshotInCh, closeCh, []snapshot{ { - Height: uint64(snapshotHeight), - Format: 1, - Chunks: 1, + Height: uint64(snapshotHeight), + Version: 1, + Hash: appHash, }, }) - go handleChunkRequests(ctx, t, rts.chunkOutCh, rts.chunkInCh, closeCh, []byte("abc")) + go handleChunkRequests(ctx, t, rts.chunkOutCh, rts.chunkInCh, closeCh, appHash, []byte("abc")) go handleConsensusParamsRequest(ctx, t, rts.paramsOutCh, rts.paramsInCh, closeCh) @@ -293,30 +306,31 @@ func TestReactor_ChunkRequest_InvalidRequest(t *testing.T) { } func TestReactor_ChunkRequest(t *testing.T) { + chunkID := []byte{1, 2, 3, 4} testcases := map[string]struct { request *ssproto.ChunkRequest chunk []byte expectResponse *ssproto.ChunkResponse }{ "chunk is returned": { - &ssproto.ChunkRequest{Height: 1, Format: 1, Index: 1}, + &ssproto.ChunkRequest{Height: 1, Version: 1, ChunkId: chunkID}, []byte{1, 2, 3}, - &ssproto.ChunkResponse{Height: 1, Format: 1, Index: 1, Chunk: []byte{1, 2, 3}}, + &ssproto.ChunkResponse{Height: 1, Version: 1, ChunkId: chunkID, Chunk: []byte{1, 2, 3}}, }, "empty chunk is returned, as empty": { - &ssproto.ChunkRequest{Height: 1, Format: 1, Index: 1}, + &ssproto.ChunkRequest{Height: 1, Version: 1, ChunkId: chunkID}, []byte{}, - &ssproto.ChunkResponse{Height: 1, Format: 1, Index: 1, Chunk: []byte{}}, + &ssproto.ChunkResponse{Height: 1, Version: 1, ChunkId: chunkID, Chunk: []byte{}}, }, "nil (missing) chunk is returned as missing": { - &ssproto.ChunkRequest{Height: 1, Format: 1, Index: 1}, + &ssproto.ChunkRequest{Height: 1, Version: 1, ChunkId: chunkID}, nil, - &ssproto.ChunkResponse{Height: 1, Format: 1, Index: 1, Missing: true}, + &ssproto.ChunkResponse{Height: 1, Version: 1, ChunkId: chunkID, Missing: true}, }, "invalid request": { - &ssproto.ChunkRequest{Height: 1, Format: 1, Index: 1}, + &ssproto.ChunkRequest{Height: 1, Version: 1, ChunkId: chunkID}, nil, - &ssproto.ChunkResponse{Height: 1, Format: 1, Index: 1, Missing: true}, + &ssproto.ChunkResponse{Height: 1, Version: 1, ChunkId: chunkID, Missing: true}, }, } @@ -331,9 +345,9 @@ func TestReactor_ChunkRequest(t *testing.T) { // mock ABCI connection to return local snapshots conn := &clientmocks.Client{} conn.On("LoadSnapshotChunk", mock.Anything, &abci.RequestLoadSnapshotChunk{ - Height: tc.request.Height, - Format: tc.request.Format, - Chunk: tc.request.Index, + Height: tc.request.Height, + Version: tc.request.Version, + ChunkId: tc.request.ChunkId, }).Return(&abci.ResponseLoadSnapshotChunk{Chunk: tc.chunk}, nil) rts := setup(ctx, t, conn, nil, 2) @@ -380,30 +394,30 @@ func TestReactor_SnapshotsRequest(t *testing.T) { "no snapshots": {nil, []*ssproto.SnapshotsResponse{}}, ">10 unordered snapshots": { []*abci.Snapshot{ - {Height: 1, Format: 2, Chunks: 7, Hash: []byte{1, 2}, Metadata: []byte{1}}, - {Height: 2, Format: 2, Chunks: 7, Hash: []byte{2, 2}, Metadata: []byte{2}}, - {Height: 3, Format: 2, Chunks: 7, Hash: []byte{3, 2}, Metadata: []byte{3}}, - {Height: 1, Format: 1, Chunks: 7, Hash: []byte{1, 1}, Metadata: []byte{4}}, - {Height: 2, Format: 1, Chunks: 7, Hash: []byte{2, 1}, Metadata: []byte{5}}, - {Height: 3, Format: 1, Chunks: 7, Hash: []byte{3, 1}, Metadata: []byte{6}}, - {Height: 1, Format: 4, Chunks: 7, Hash: []byte{1, 4}, Metadata: []byte{7}}, - {Height: 2, Format: 4, Chunks: 7, Hash: []byte{2, 4}, Metadata: []byte{8}}, - {Height: 3, Format: 4, Chunks: 7, Hash: []byte{3, 4}, Metadata: []byte{9}}, - {Height: 1, Format: 3, Chunks: 7, Hash: []byte{1, 3}, Metadata: []byte{10}}, - {Height: 2, Format: 3, Chunks: 7, Hash: []byte{2, 3}, Metadata: []byte{11}}, - {Height: 3, Format: 3, Chunks: 7, Hash: []byte{3, 3}, Metadata: []byte{12}}, + {Height: 1, Version: 2, Hash: []byte{1, 2}, Metadata: []byte{1}}, + {Height: 2, Version: 2, Hash: []byte{2, 2}, Metadata: []byte{2}}, + {Height: 3, Version: 2, Hash: []byte{3, 2}, Metadata: []byte{3}}, + {Height: 1, Version: 1, Hash: []byte{1, 1}, Metadata: []byte{4}}, + {Height: 2, Version: 1, Hash: []byte{2, 1}, Metadata: []byte{5}}, + {Height: 3, Version: 1, Hash: []byte{3, 1}, Metadata: []byte{6}}, + {Height: 1, Version: 4, Hash: []byte{1, 4}, Metadata: []byte{7}}, + {Height: 2, Version: 4, Hash: []byte{2, 4}, Metadata: []byte{8}}, + {Height: 3, Version: 4, Hash: []byte{3, 4}, Metadata: []byte{9}}, + {Height: 1, Version: 3, Hash: []byte{1, 3}, Metadata: []byte{10}}, + {Height: 2, Version: 3, Hash: []byte{2, 3}, Metadata: []byte{11}}, + {Height: 3, Version: 3, Hash: []byte{3, 3}, Metadata: []byte{12}}, }, []*ssproto.SnapshotsResponse{ - {Height: 3, Format: 4, Chunks: 7, Hash: []byte{3, 4}, Metadata: []byte{9}}, - {Height: 3, Format: 3, Chunks: 7, Hash: []byte{3, 3}, Metadata: []byte{12}}, - {Height: 3, Format: 2, Chunks: 7, Hash: []byte{3, 2}, Metadata: []byte{3}}, - {Height: 3, Format: 1, Chunks: 7, Hash: []byte{3, 1}, Metadata: []byte{6}}, - {Height: 2, Format: 4, Chunks: 7, Hash: []byte{2, 4}, Metadata: []byte{8}}, - {Height: 2, Format: 3, Chunks: 7, Hash: []byte{2, 3}, Metadata: []byte{11}}, - {Height: 2, Format: 2, Chunks: 7, Hash: []byte{2, 2}, Metadata: []byte{2}}, - {Height: 2, Format: 1, Chunks: 7, Hash: []byte{2, 1}, Metadata: []byte{5}}, - {Height: 1, Format: 4, Chunks: 7, Hash: []byte{1, 4}, Metadata: []byte{7}}, - {Height: 1, Format: 3, Chunks: 7, Hash: []byte{1, 3}, Metadata: []byte{10}}, + {Height: 3, Version: 4, Hash: []byte{3, 4}, Metadata: []byte{9}}, + {Height: 3, Version: 3, Hash: []byte{3, 3}, Metadata: []byte{12}}, + {Height: 3, Version: 2, Hash: []byte{3, 2}, Metadata: []byte{3}}, + {Height: 3, Version: 1, Hash: []byte{3, 1}, Metadata: []byte{6}}, + {Height: 2, Version: 4, Hash: []byte{2, 4}, Metadata: []byte{8}}, + {Height: 2, Version: 3, Hash: []byte{2, 3}, Metadata: []byte{11}}, + {Height: 2, Version: 2, Hash: []byte{2, 2}, Metadata: []byte{2}}, + {Height: 2, Version: 1, Hash: []byte{2, 1}, Metadata: []byte{5}}, + {Height: 1, Version: 4, Hash: []byte{1, 4}, Metadata: []byte{7}}, + {Height: 1, Version: 3, Hash: []byte{1, 3}, Metadata: []byte{10}}, }, }, } @@ -633,7 +647,7 @@ func TestReactor_StateProviderP2P(t *testing.T) { require.Equal(t, commit.BlockID, state.LastBlockID) added, err := rts.reactor.getSyncer().AddSnapshot(peerA, &snapshot{ - Height: 1, Format: 2, Chunks: 7, Hash: []byte{1, 2}, Metadata: []byte{1}, + Height: 1, Version: 2, Hash: []byte{1, 2}, Metadata: []byte{1}, }) require.NoError(t, err) require.True(t, added) @@ -696,14 +710,19 @@ func TestReactor_Backfill(t *testing.T) { } trackingHeight := startHeight - rts.stateStore.On("SaveValidatorSets", mock.AnythingOfType("int64"), mock.AnythingOfType("int64"), - mock.AnythingOfType("*types.ValidatorSet")).Return(func(lh, uh int64, vals *types.ValidatorSet) error { - require.Equal(t, trackingHeight, lh) - require.Equal(t, lh, uh) - require.GreaterOrEqual(t, lh, stopHeight) - trackingHeight-- - return nil - }) + rts.stateStore. + On("SaveValidatorSets", + mock.AnythingOfType("int64"), + mock.AnythingOfType("int64"), + mock.AnythingOfType("*types.ValidatorSet")). + Maybe(). + Return(func(lh, uh int64, vals *types.ValidatorSet) error { + require.Equal(t, trackingHeight, lh) + require.Equal(t, lh, uh) + require.GreaterOrEqual(t, lh, stopHeight) + trackingHeight-- + return nil + }) chain := buildLightBlockChain(ctx, t, stopHeight-1, startHeight+1, stopTime, rts.privVal) @@ -948,8 +967,7 @@ func handleSnapshotRequests( ChannelID: SnapshotChannel, Message: &ssproto.SnapshotsResponse{ Height: snapshot.Height, - Format: snapshot.Format, - Chunks: snapshot.Chunks, + Version: snapshot.Version, Hash: snapshot.Hash, Metadata: snapshot.Metadata, }, @@ -965,6 +983,7 @@ func handleChunkRequests( receivingCh chan p2p.Envelope, sendingCh chan p2p.Envelope, closeCh chan struct{}, + chunkID []byte, chunk []byte, ) { t.Helper() @@ -981,9 +1000,9 @@ func handleChunkRequests( From: envelope.To, ChannelID: ChunkChannel, Message: &ssproto.ChunkResponse{ + ChunkId: chunkID, Height: msg.Height, - Format: msg.Format, - Index: msg.Index, + Version: msg.Version, Chunk: chunk, Missing: false, }, diff --git a/internal/statesync/repo.go b/internal/statesync/repo.go new file mode 100644 index 000000000..fa5fb4084 --- /dev/null +++ b/internal/statesync/repo.go @@ -0,0 +1,160 @@ +package statesync + +import ( + "context" + "fmt" + "sort" + + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/types" +) + +// LightBlockRepository is a repository for light blocks +type LightBlockRepository struct { + stateStore sm.Store + blockStore *store.BlockStore +} + +// Get works out whether the node has a light block at a particular +// height and if so returns it so it can be gossiped to peers +func (r *LightBlockRepository) Get(height uint64) (*types.LightBlock, error) { + h := int64(height) + + blockMeta := r.blockStore.LoadBlockMeta(h) + if blockMeta == nil { + return nil, nil + } + + commit := r.blockStore.LoadBlockCommit(h) + if commit == nil { + return nil, nil + } + + vals, err := r.stateStore.LoadValidators(h) + if err != nil { + return nil, err + } + if vals == nil { + return nil, nil + } + + return &types.LightBlock{ + SignedHeader: &types.SignedHeader{ + Header: &blockMeta.Header, + Commit: commit, + }, + ValidatorSet: vals, + }, nil +} + +// snapshotRepository is a repository for snapshots +type snapshotRepository struct { + logger log.Logger + client abci.StateSyncer +} + +// newSnapshotRepository creates a new snapshot repository +func newSnapshotRepository(client abciclient.Client, logger log.Logger) *snapshotRepository { + return &snapshotRepository{ + logger: logger, + client: client, + } +} + +// offerSnapshot offers a snapshot to the app. It returns various errors depending on the app's +// response, or nil if the snapshot was accepted. +func (r *snapshotRepository) offerSnapshot(ctx context.Context, snapshot *snapshot) error { //nolint:dupl + r.logger.Info("Offering snapshot to ABCI app", + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash) + resp, err := r.client.OfferSnapshot(ctx, &abci.RequestOfferSnapshot{ + Snapshot: &abci.Snapshot{ + Height: snapshot.Height, + Version: snapshot.Version, + Hash: snapshot.Hash, + Metadata: snapshot.Metadata, + }, + AppHash: snapshot.trustedAppHash, + }) + if err != nil { + return fmt.Errorf("failed to offer snapshot: %w", err) + } + switch resp.Result { + case abci.ResponseOfferSnapshot_ACCEPT: + r.logger.Info("Snapshot accepted, restoring", + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash) + return nil + case abci.ResponseOfferSnapshot_ABORT: + return errAbort + case abci.ResponseOfferSnapshot_REJECT: + return errRejectSnapshot + case abci.ResponseOfferSnapshot_REJECT_FORMAT: + return errRejectFormat + case abci.ResponseOfferSnapshot_REJECT_SENDER: + return errRejectSender + default: + return fmt.Errorf("unknown ResponseOfferSnapshot result %v", resp.Result) + } +} + +// loadSnapshotChunk loads a chunk of a snapshot from the app +func (r *snapshotRepository) loadSnapshotChunk( + ctx context.Context, + height uint64, + version uint32, + chunkID []byte, +) (*abci.ResponseLoadSnapshotChunk, error) { + return r.client.LoadSnapshotChunk(ctx, &abci.RequestLoadSnapshotChunk{ + Height: height, + Version: version, + ChunkId: chunkID, + }) +} + +// recentSnapshots fetches the n most recent snapshots from the app +func (r *snapshotRepository) recentSnapshots(ctx context.Context, n uint32) ([]*snapshot, error) { + resp, err := r.client.ListSnapshots(ctx, &abci.RequestListSnapshots{}) + if err != nil { + return nil, err + } + sortSnapshots(resp.Snapshots) + if n > recentSnapshots { + n = recentSnapshots + } + snapshots := make([]*snapshot, 0, n) + for _, s := range resp.Snapshots[:n] { + snapshots = append(snapshots, newSnapshotFromABCI(s)) + } + return snapshots, nil +} + +func sortSnapshots(snapshots []*abci.Snapshot) { + sort.Slice(snapshots, func(i, j int) bool { + a := snapshots[i] + b := snapshots[j] + switch { + case a.Height > b.Height: + return true + case a.Height == b.Height && a.Version > b.Version: + return true + default: + return false + } + }) +} + +func newSnapshotFromABCI(s *abci.Snapshot) *snapshot { + return &snapshot{ + Height: s.Height, + Version: s.Version, + Hash: s.Hash, + Metadata: s.Metadata, + } +} diff --git a/internal/statesync/repo_test.go b/internal/statesync/repo_test.go new file mode 100644 index 000000000..9376e449f --- /dev/null +++ b/internal/statesync/repo_test.go @@ -0,0 +1,134 @@ +package statesync + +import ( + "context" + "fmt" + "math/rand" + "testing" + + "github.com/stretchr/testify/suite" + + clientmocks "github.com/dashpay/tenderdash/abci/client/mocks" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" +) + +type snapshotRepositoryTestSuite struct { + suite.Suite + + client *clientmocks.Client + repo *snapshotRepository +} + +func TestSnapshotRepository(t *testing.T) { + suite.Run(t, new(snapshotRepositoryTestSuite)) +} + +func (suite *snapshotRepositoryTestSuite) SetupTest() { + suite.client = clientmocks.NewClient(suite.T()) + suite.repo = newSnapshotRepository(suite.client, log.NewNopLogger()) +} + +func (suite *snapshotRepositoryTestSuite) TestOfferSnapshot() { + ctx := context.Background() + fakeSnapshot := &snapshot{ + Height: 1, + Version: 0, + Hash: []byte{1, 2, 3, 4, 5}, + } + req := &abci.RequestOfferSnapshot{ + Snapshot: &abci.Snapshot{ + Height: fakeSnapshot.Height, + Version: fakeSnapshot.Version, + Hash: fakeSnapshot.Hash, + Metadata: fakeSnapshot.Metadata, + }, + } + testCases := []struct { + snapshot *snapshot + wantErr string + result abci.ResponseOfferSnapshot_Result + }{ + { + snapshot: fakeSnapshot, + result: abci.ResponseOfferSnapshot_ACCEPT, + }, + { + snapshot: fakeSnapshot, + result: abci.ResponseOfferSnapshot_ABORT, + wantErr: errAbort.Error(), + }, + { + snapshot: fakeSnapshot, + result: abci.ResponseOfferSnapshot_REJECT, + wantErr: errRejectSnapshot.Error(), + }, + { + snapshot: fakeSnapshot, + result: abci.ResponseOfferSnapshot_REJECT_FORMAT, + wantErr: errRejectFormat.Error(), + }, + { + snapshot: fakeSnapshot, + result: abci.ResponseOfferSnapshot_REJECT_SENDER, + wantErr: errRejectSender.Error(), + }, + } + for i, tc := range testCases { + suite.Run(fmt.Sprintf("%d", i), func() { + suite.client. + On("OfferSnapshot", ctx, req). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: tc.result}, nil) + err := suite.repo.offerSnapshot(ctx, tc.snapshot) + if tc.wantErr != "" { + suite.Require().ErrorContains(err, tc.wantErr) + } else { + suite.Require().NoError(err) + } + }) + } +} + +func (suite *snapshotRepositoryTestSuite) TestLoadSnapshotChunk() { + ctx := context.Background() + data := []byte{1, 2, 3, 4, 5} + suite.client. + On("LoadSnapshotChunk", ctx, &abci.RequestLoadSnapshotChunk{ + Height: 1, + Version: 2, + ChunkId: []byte{3}, + }). + Once(). + Return(&abci.ResponseLoadSnapshotChunk{Chunk: data}, nil) + resp, err := suite.repo.loadSnapshotChunk(ctx, 1, 2, []byte{3}) + suite.Require().NoError(err) + suite.Require().Equal(data, resp.Chunk) +} + +func (suite *snapshotRepositoryTestSuite) TestRecentSnapshots() { + ctx := context.Background() + const storedLen = 20 + storedSnapshots := make([]*abci.Snapshot, 0, storedLen) + for i := 1; i <= storedLen; i++ { + storedSnapshots = append(storedSnapshots, &abci.Snapshot{ + Height: uint64(i * 1000), + Version: 0, + }) + } + rand.Shuffle(20, func(i, j int) { + storedSnapshots[i], storedSnapshots[j] = storedSnapshots[j], storedSnapshots[i] + }) + suite.client. + On("ListSnapshots", ctx, &abci.RequestListSnapshots{}). + Once(). + Return(&abci.ResponseListSnapshots{Snapshots: storedSnapshots}, nil) + snapshots, err := suite.repo.recentSnapshots(ctx, 5) + suite.Require().NoError(err) + suite.Require().Len(snapshots, 5) + heights := make([]uint64, 0, 5) + for _, ss := range snapshots { + heights = append(heights, ss.Height) + } + suite.Require().Equal([]uint64{20000, 19000, 18000, 17000, 16000}, heights) +} diff --git a/internal/statesync/snapshots.go b/internal/statesync/snapshots.go index 05f70ef57..e7fad3c3a 100644 --- a/internal/statesync/snapshots.go +++ b/internal/statesync/snapshots.go @@ -9,8 +9,8 @@ import ( sync "github.com/sasha-s/go-deadlock" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // snapshotKey is a snapshot key used for lookups. @@ -19,8 +19,7 @@ type snapshotKey [sha256.Size]byte // snapshot contains data about a snapshot. type snapshot struct { Height uint64 - Format uint32 - Chunks uint32 + Version uint32 Hash tmbytes.HexBytes Metadata []byte @@ -36,8 +35,7 @@ func (s *snapshot) Key() snapshotKey { bz := make([]byte, 0, (64+32+32)/8) bz = binary.LittleEndian.AppendUint64(bz, s.Height) - bz = binary.LittleEndian.AppendUint32(bz, s.Format) - bz = binary.LittleEndian.AppendUint32(bz, s.Chunks) + bz = binary.LittleEndian.AppendUint32(bz, s.Version) hasher.Write(bz) hasher.Write(s.Hash) hasher.Write(s.Metadata) @@ -53,9 +51,9 @@ type snapshotPool struct { snapshotPeers map[snapshotKey]map[types.NodeID]types.NodeID // indexes for fast searches - formatIndex map[uint32]map[snapshotKey]bool - heightIndex map[uint64]map[snapshotKey]bool - peerIndex map[types.NodeID]map[snapshotKey]bool + versionIndex map[uint32]map[snapshotKey]bool + heightIndex map[uint64]map[snapshotKey]bool + peerIndex map[types.NodeID]map[snapshotKey]bool // blacklists for rejected items formatBlacklist map[uint32]bool @@ -68,7 +66,7 @@ func newSnapshotPool() *snapshotPool { return &snapshotPool{ snapshots: make(map[snapshotKey]*snapshot), snapshotPeers: make(map[snapshotKey]map[types.NodeID]types.NodeID), - formatIndex: make(map[uint32]map[snapshotKey]bool), + versionIndex: make(map[uint32]map[snapshotKey]bool), heightIndex: make(map[uint64]map[snapshotKey]bool), peerIndex: make(map[types.NodeID]map[snapshotKey]bool), formatBlacklist: make(map[uint32]bool), @@ -88,7 +86,7 @@ func (p *snapshotPool) Add(peerID types.NodeID, snapshot *snapshot) (bool, error defer p.Unlock() switch { - case p.formatBlacklist[snapshot.Format]: + case p.formatBlacklist[snapshot.Version]: return false, nil case p.peerBlacklist[peerID]: return false, nil @@ -113,10 +111,10 @@ func (p *snapshotPool) Add(peerID types.NodeID, snapshot *snapshot) (bool, error } p.snapshots[key] = snapshot - if p.formatIndex[snapshot.Format] == nil { - p.formatIndex[snapshot.Format] = make(map[snapshotKey]bool) + if p.versionIndex[snapshot.Version] == nil { + p.versionIndex[snapshot.Version] = make(map[snapshotKey]bool) } - p.formatIndex[snapshot.Format][key] = true + p.versionIndex[snapshot.Version][key] = true if p.heightIndex[snapshot.Height] == nil { p.heightIndex[snapshot.Height] = make(map[snapshotKey]bool) @@ -216,9 +214,9 @@ func (p *snapshotPool) sorterFactory(candidates []*snapshot) func(int, int) bool return false case len(p.snapshotPeers[a.Key()]) > len(p.snapshotPeers[b.Key()]): return true - case a.Format > b.Format: + case a.Version > b.Version: return true - case a.Format < b.Format: + case a.Version < b.Version: return false default: return false @@ -236,13 +234,13 @@ func (p *snapshotPool) Reject(snapshot *snapshot) { p.removeSnapshot(key) } -// RejectFormat rejects a snapshot format. It will never be used again. -func (p *snapshotPool) RejectFormat(format uint32) { +// RejectVersion rejects a snapshot version. It will never be used again. +func (p *snapshotPool) RejectVersion(version uint32) { p.Lock() defer p.Unlock() - p.formatBlacklist[format] = true - for key := range p.formatIndex[format] { + p.formatBlacklist[version] = true + for key := range p.versionIndex[version] { p.removeSnapshot(key) } } @@ -287,7 +285,7 @@ func (p *snapshotPool) removeSnapshot(key snapshotKey) { } delete(p.snapshots, key) - delete(p.formatIndex[snapshot.Format], key) + delete(p.versionIndex[snapshot.Version], key) delete(p.heightIndex[snapshot.Height], key) for peerID := range p.snapshotPeers[key] { delete(p.peerIndex[peerID], key) diff --git a/internal/statesync/snapshots_test.go b/internal/statesync/snapshots_test.go index 08cb08269..fd2d37da8 100644 --- a/internal/statesync/snapshots_test.go +++ b/internal/statesync/snapshots_test.go @@ -5,26 +5,24 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestSnapshot_Key(t *testing.T) { testcases := map[string]struct { modify func(*snapshot) }{ - "new height": {func(s *snapshot) { s.Height = 9 }}, - "new format": {func(s *snapshot) { s.Format = 9 }}, - "new chunk count": {func(s *snapshot) { s.Chunks = 9 }}, - "new hash": {func(s *snapshot) { s.Hash = []byte{9} }}, - "no metadata": {func(s *snapshot) { s.Metadata = nil }}, + "new height": {func(s *snapshot) { s.Height = 9 }}, + "new version": {func(s *snapshot) { s.Version = 9 }}, + "new hash": {func(s *snapshot) { s.Hash = []byte{9} }}, + "no metadata": {func(s *snapshot) { s.Metadata = nil }}, } for name, tc := range testcases { tc := tc t.Run(name, func(t *testing.T) { s := snapshot{ Height: 3, - Format: 1, - Chunks: 7, + Version: 1, Hash: []byte{1, 2, 3}, Metadata: []byte{255}, } @@ -42,10 +40,9 @@ func TestSnapshotPool_Add(t *testing.T) { // Adding to the pool should work pool := newSnapshotPool() added, err := pool.Add(peerID, &snapshot{ - Height: 1, - Format: 1, - Chunks: 1, - Hash: []byte{1}, + Height: 1, + Version: 1, + Hash: []byte{1}, }) require.NoError(t, err) require.True(t, added) @@ -53,10 +50,9 @@ func TestSnapshotPool_Add(t *testing.T) { // Adding again from a different peer should return false otherNodeID := types.NodeID("bb") added, err = pool.Add(otherNodeID, &snapshot{ - Height: 1, - Format: 1, - Chunks: 1, - Hash: []byte{1}, + Height: 1, + Version: 1, + Hash: []byte{1}, }) require.NoError(t, err) require.False(t, added) @@ -68,7 +64,7 @@ func TestSnapshotPool_Add(t *testing.T) { func TestSnapshotPool_GetPeer(t *testing.T) { pool := newSnapshotPool() - s := &snapshot{Height: 1, Format: 1, Chunks: 1, Hash: []byte{1}} + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1}} peerAID := types.NodeID("aa") peerBID := types.NodeID("bb") @@ -79,7 +75,7 @@ func TestSnapshotPool_GetPeer(t *testing.T) { _, err = pool.Add(peerBID, s) require.NoError(t, err) - _, err = pool.Add(peerAID, &snapshot{Height: 2, Format: 1, Chunks: 1, Hash: []byte{1}}) + _, err = pool.Add(peerAID, &snapshot{Height: 2, Version: 1, Hash: []byte{1}}) require.NoError(t, err) // GetPeer currently picks a random peer, so lets run it until we've seen both. @@ -96,14 +92,14 @@ func TestSnapshotPool_GetPeer(t *testing.T) { } // GetPeer should return empty for an unknown snapshot - peer := pool.GetPeer(&snapshot{Height: 9, Format: 9}) + peer := pool.GetPeer(&snapshot{Height: 9, Version: 9}) require.EqualValues(t, "", peer) } func TestSnapshotPool_GetPeers(t *testing.T) { pool := newSnapshotPool() - s := &snapshot{Height: 1, Format: 1, Chunks: 1, Hash: []byte{1}} + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1}} peerAID := types.NodeID("aa") peerBID := types.NodeID("bb") @@ -114,7 +110,7 @@ func TestSnapshotPool_GetPeers(t *testing.T) { _, err = pool.Add(peerBID, s) require.NoError(t, err) - _, err = pool.Add(peerAID, &snapshot{Height: 2, Format: 1, Chunks: 1, Hash: []byte{2}}) + _, err = pool.Add(peerAID, &snapshot{Height: 2, Version: 1, Hash: []byte{2}}) require.NoError(t, err) peers := pool.GetPeers(s) @@ -133,11 +129,11 @@ func TestSnapshotPool_Ranked_Best(t *testing.T) { snapshot *snapshot peers []types.NodeID }{ - {&snapshot{Height: 2, Format: 2, Chunks: 4, Hash: []byte{1, 3}}, []types.NodeID{"AA", "BB", "CC", "DD"}}, - {&snapshot{Height: 1, Format: 1, Chunks: 4, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC", "DD"}}, - {&snapshot{Height: 2, Format: 2, Chunks: 5, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC"}}, - {&snapshot{Height: 2, Format: 1, Chunks: 3, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC"}}, - {&snapshot{Height: 1, Format: 2, Chunks: 5, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC"}}, + {&snapshot{Height: 2, Version: 2, Hash: []byte{1, 3}}, []types.NodeID{"AA", "BB", "CC", "DD"}}, + {&snapshot{Height: 1, Version: 1, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC", "DD"}}, + {&snapshot{Height: 2, Version: 2, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC"}}, + {&snapshot{Height: 2, Version: 1, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC"}}, + {&snapshot{Height: 1, Version: 2, Hash: []byte{1, 2}}, []types.NodeID{"AA", "BB", "CC"}}, } // Add snapshots in reverse order, to make sure the pool enforces some order. @@ -172,10 +168,10 @@ func TestSnapshotPool_Reject(t *testing.T) { peerID := types.NodeID("aa") snapshots := []*snapshot{ - {Height: 2, Format: 2, Chunks: 1, Hash: []byte{1, 2}}, - {Height: 2, Format: 1, Chunks: 1, Hash: []byte{1, 2}}, - {Height: 1, Format: 2, Chunks: 1, Hash: []byte{1, 2}}, - {Height: 1, Format: 1, Chunks: 1, Hash: []byte{1, 2}}, + {Height: 2, Version: 2, Hash: []byte{1, 2}}, + {Height: 2, Version: 1, Hash: []byte{1, 2}}, + {Height: 1, Version: 2, Hash: []byte{1, 2}}, + {Height: 1, Version: 1, Hash: []byte{1, 2}}, } for _, s := range snapshots { _, err := pool.Add(peerID, s) @@ -189,7 +185,7 @@ func TestSnapshotPool_Reject(t *testing.T) { require.NoError(t, err) require.False(t, added) - added, err = pool.Add(peerID, &snapshot{Height: 3, Format: 3, Chunks: 1, Hash: []byte{1}}) + added, err = pool.Add(peerID, &snapshot{Height: 3, Version: 3, Hash: []byte{1}}) require.NoError(t, err) require.True(t, added) } @@ -200,25 +196,25 @@ func TestSnapshotPool_RejectFormat(t *testing.T) { peerID := types.NodeID("aa") snapshots := []*snapshot{ - {Height: 2, Format: 2, Chunks: 1, Hash: []byte{1, 2}}, - {Height: 2, Format: 1, Chunks: 1, Hash: []byte{1, 2}}, - {Height: 1, Format: 2, Chunks: 1, Hash: []byte{1, 2}}, - {Height: 1, Format: 1, Chunks: 1, Hash: []byte{1, 2}}, + {Height: 2, Version: 2, Hash: []byte{1, 2}}, + {Height: 2, Version: 1, Hash: []byte{1, 2}}, + {Height: 1, Version: 2, Hash: []byte{1, 2}}, + {Height: 1, Version: 1, Hash: []byte{1, 2}}, } for _, s := range snapshots { _, err := pool.Add(peerID, s) require.NoError(t, err) } - pool.RejectFormat(1) + pool.RejectVersion(1) require.Equal(t, []*snapshot{snapshots[0], snapshots[2]}, pool.Ranked()) - added, err := pool.Add(peerID, &snapshot{Height: 3, Format: 1, Chunks: 1, Hash: []byte{1}}) + added, err := pool.Add(peerID, &snapshot{Height: 3, Version: 1, Hash: []byte{1}}) require.NoError(t, err) require.False(t, added) require.Equal(t, []*snapshot{snapshots[0], snapshots[2]}, pool.Ranked()) - added, err = pool.Add(peerID, &snapshot{Height: 3, Format: 3, Chunks: 1, Hash: []byte{1}}) + added, err = pool.Add(peerID, &snapshot{Height: 3, Version: 3, Hash: []byte{1}}) require.NoError(t, err) require.True(t, added) } @@ -229,9 +225,9 @@ func TestSnapshotPool_RejectPeer(t *testing.T) { peerAID := types.NodeID("aa") peerBID := types.NodeID("bb") - s1 := &snapshot{Height: 1, Format: 1, Chunks: 1, Hash: []byte{1}} - s2 := &snapshot{Height: 2, Format: 1, Chunks: 1, Hash: []byte{2}} - s3 := &snapshot{Height: 3, Format: 1, Chunks: 1, Hash: []byte{2}} + s1 := &snapshot{Height: 1, Version: 1, Hash: []byte{1}} + s2 := &snapshot{Height: 2, Version: 1, Hash: []byte{2}} + s3 := &snapshot{Height: 3, Version: 1, Hash: []byte{2}} _, err := pool.Add(peerAID, s1) require.NoError(t, err) @@ -269,8 +265,8 @@ func TestSnapshotPool_RemovePeer(t *testing.T) { peerAID := types.NodeID("aa") peerBID := types.NodeID("bb") - s1 := &snapshot{Height: 1, Format: 1, Chunks: 1, Hash: []byte{1}} - s2 := &snapshot{Height: 2, Format: 1, Chunks: 1, Hash: []byte{2}} + s1 := &snapshot{Height: 1, Version: 1, Hash: []byte{1}} + s2 := &snapshot{Height: 2, Version: 1, Hash: []byte{2}} _, err := pool.Add(peerAID, s1) require.NoError(t, err) diff --git a/internal/statesync/stateprovider.go b/internal/statesync/stateprovider.go index 85cf42e81..2d98e82c5 100644 --- a/internal/statesync/stateprovider.go +++ b/internal/statesync/stateprovider.go @@ -12,20 +12,20 @@ import ( dbm "github.com/tendermint/tm-db" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/internal/p2p" - sm "github.com/tendermint/tendermint/internal/state" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - lightprovider "github.com/tendermint/tendermint/light/provider" - lighthttp "github.com/tendermint/tendermint/light/provider/http" - lightrpc "github.com/tendermint/tendermint/light/rpc" - lightdb "github.com/tendermint/tendermint/light/store/db" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/internal/p2p" + sm "github.com/dashpay/tenderdash/internal/state" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + lightprovider "github.com/dashpay/tenderdash/light/provider" + lighthttp "github.com/dashpay/tenderdash/light/provider/http" + lightrpc "github.com/dashpay/tenderdash/light/rpc" + lightdb "github.com/dashpay/tenderdash/light/store/db" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) //go:generate ../../scripts/mockery_generate.sh StateProvider diff --git a/internal/statesync/syncer.go b/internal/statesync/syncer.go index 03bedb75e..24ce2eb0a 100644 --- a/internal/statesync/syncer.go +++ b/internal/statesync/syncer.go @@ -9,16 +9,16 @@ import ( sync "github.com/sasha-s/go-deadlock" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + "github.com/dashpay/tenderdash/types" ) const ( @@ -28,6 +28,8 @@ const ( // minimumDiscoveryTime is the lowest allowable time for a // SyncAny discovery time. minimumDiscoveryTime = 5 * time.Second + + dequeueChunkIDTimeoutDefault = 2 * time.Second ) var ( @@ -38,7 +40,7 @@ var ( // errRejectSnapshot is returned by Sync() when the snapshot is rejected. errRejectSnapshot = errors.New("snapshot was rejected") // errRejectFormat is returned by Sync() when the snapshot format is rejected. - errRejectFormat = errors.New("snapshot format was rejected") + errRejectFormat = errors.New("snapshot version was rejected") // errRejectSender is returned by Sync() when the snapshot sender is rejected. errRejectSender = errors.New("snapshot sender was rejected") // errVerifyFailed is returned by Sync() when app hash or last height @@ -47,7 +49,8 @@ var ( // errTimeout is returned by Sync() when we've waited too long to receive a chunk. errTimeout = errors.New("timed out waiting for chunk") // errNoSnapshots is returned by SyncAny() if no snapshots are found and discovery is disabled. - errNoSnapshots = errors.New("no suitable snapshots found") + errNoSnapshots = errors.New("no suitable snapshots found") + errStatesyncNotInProgress = errors.New("no state sync in progress") ) // syncer runs a state sync against an ABCI app. Use either SyncAny() to automatically attempt to @@ -61,12 +64,14 @@ type syncer struct { snapshotCh p2p.Channel chunkCh p2p.Channel tempDir string - fetchers int32 + fetchers int retryTimeout time.Duration - mtx sync.RWMutex - chunks *chunkQueue - metrics *Metrics + dequeueChunkIDTimeout time.Duration + + mtx sync.RWMutex + chunkQueue *chunkQueue + metrics *Metrics avgChunkTime int64 lastSyncedSnapshotHeight int64 @@ -78,17 +83,26 @@ type syncer struct { func (s *syncer) AddChunk(chunk *chunk) (bool, error) { s.mtx.RLock() defer s.mtx.RUnlock() - if s.chunks == nil { - return false, errors.New("no state sync in progress") + if s.chunkQueue == nil { + return false, errStatesyncNotInProgress + } + keyVals := []any{ + "height", chunk.Height, + "version", chunk.Version, + "chunk", chunk.ID, } - added, err := s.chunks.Add(chunk) + added, err := s.chunkQueue.Add(chunk) if err != nil { + if errors.Is(err, errNilSnapshot) { + s.logger.Error("Can't add a chunk because of a snapshot is nil", keyVals...) + return false, nil + } return false, err } if added { - s.logger.Debug("Added chunk to queue", "height", chunk.Height, "format", chunk.Format, "chunk", chunk.Index) + s.logger.Debug("Added chunk to queue", keyVals...) } else { - s.logger.Debug("Ignoring duplicate chunk in queue", "height", chunk.Height, "format", chunk.Format, "chunk", chunk.Index) + s.logger.Debug("Ignoring duplicate chunk in requestQueue", keyVals...) } return added, nil } @@ -102,7 +116,9 @@ func (s *syncer) AddSnapshot(peerID types.NodeID, snapshot *snapshot) (bool, err } if added { s.metrics.TotalSnapshots.Add(1) - s.logger.Info("Discovered new snapshot", "height", snapshot.Height, "format", snapshot.Format, + s.logger.Info("Discovered new snapshot", + "height", snapshot.Height, + "version", snapshot.Version, "hash", snapshot.Hash.ShortString()) } return added, nil @@ -157,7 +173,7 @@ func (s *syncer) SyncAny( // the snapshot and chunk queue from the previous loop iteration. var ( snapshot *snapshot - chunks *chunkQueue + queue *chunkQueue err error iters int ) @@ -167,7 +183,7 @@ func (s *syncer) SyncAny( // If not nil, we're going to retry restoration of the same snapshot. if snapshot == nil { snapshot = s.snapshots.Best() - chunks = nil + queue = nil } if snapshot == nil { if discoveryTime == 0 { @@ -184,18 +200,18 @@ func (s *syncer) SyncAny( continue } } - if chunks == nil { - chunks, err = newChunkQueue(snapshot, s.tempDir) + if queue == nil { + queue, err = newChunkQueue(snapshot, s.tempDir, s.fetchers) if err != nil { return sm.State{}, nil, fmt.Errorf("failed to create chunk queue: %w", err) } - defer chunks.Close() // in case we forget to close it elsewhere + defer queue.Close() // in case we forget to close it elsewhere } + queue.Enqueue(snapshot.Hash) s.processingSnapshot = snapshot - s.metrics.SnapshotChunkTotal.Set(float64(snapshot.Chunks)) - newState, commit, err := s.Sync(ctx, snapshot, chunks) + newState, commit, err := s.Sync(ctx, snapshot, queue) switch { case err == nil: s.metrics.SnapshotHeight.Set(float64(snapshot.Height)) @@ -206,27 +222,35 @@ func (s *syncer) SyncAny( return sm.State{}, nil, err case errors.Is(err, errRetrySnapshot): - chunks.RetryAll() - s.logger.Info("Retrying snapshot", "height", snapshot.Height, "format", snapshot.Format, + queue.RetryAll() + s.logger.Info("Retrying snapshot", + "height", snapshot.Height, + "version", snapshot.Version, "hash", snapshot.Hash) continue case errors.Is(err, errTimeout): s.snapshots.Reject(snapshot) s.logger.Error("Timed out waiting for snapshot chunks, rejected snapshot", - "height", snapshot.Height, "format", snapshot.Format, "hash", snapshot.Hash) + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash) case errors.Is(err, errRejectSnapshot): s.snapshots.Reject(snapshot) - s.logger.Info("Snapshot rejected", "height", snapshot.Height, "format", snapshot.Format, + s.logger.Info("Snapshot rejected", + "height", snapshot.Height, + "version", snapshot.Version, "hash", snapshot.Hash) case errors.Is(err, errRejectFormat): - s.snapshots.RejectFormat(snapshot.Format) - s.logger.Info("Snapshot format rejected", "format", snapshot.Format) + s.snapshots.RejectVersion(snapshot.Version) + s.logger.Info("Snapshot version rejected", "version", snapshot.Version) case errors.Is(err, errRejectSender): - s.logger.Info("Snapshot senders rejected", "height", snapshot.Height, "format", snapshot.Format, + s.logger.Info("Snapshot senders rejected", + "height", snapshot.Height, + "version", snapshot.Version, "hash", snapshot.Hash) for _, peer := range s.snapshots.GetPeers(snapshot) { s.snapshots.RejectPeer(peer) @@ -238,29 +262,29 @@ func (s *syncer) SyncAny( } // Discard snapshot and chunks for next iteration - err = chunks.Close() + err = queue.Close() if err != nil { s.logger.Error("Failed to clean up chunk queue", "err", err) } snapshot = nil - chunks = nil + queue = nil s.processingSnapshot = nil } } // Sync executes a sync for a specific snapshot, returning the latest state and block commit which // the caller must use to bootstrap the node. -func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueue) (sm.State, *types.Commit, error) { +func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, queue *chunkQueue) (sm.State, *types.Commit, error) { s.mtx.Lock() - if s.chunks != nil { + if s.chunkQueue != nil { s.mtx.Unlock() return sm.State{}, nil, errors.New("a state sync is already in progress") } - s.chunks = chunks + s.chunkQueue = queue s.mtx.Unlock() defer func() { s.mtx.Lock() - s.chunks = nil + s.chunkQueue = nil s.mtx.Unlock() }() @@ -280,7 +304,8 @@ func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueu fmt.Errorf("failed to get app hash at height %d. No witnesses remaining", snapshot.Height) } s.logger.Info("failed to get and verify tendermint state. Dropping snapshot and trying again", - "err", err, "height", snapshot.Height) + "error", err, + "height", snapshot.Height) return sm.State{}, nil, errRejectSnapshot } snapshot.trustedAppHash = appHash @@ -288,6 +313,11 @@ func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueu // Offer snapshot to ABCI app. err = s.offerSnapshot(ctx, snapshot) if err != nil { + s.logger.Error("Snapshot wasn't accepted", + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash, + "error", err) return sm.State{}, nil, err } @@ -295,8 +325,11 @@ func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueu fetchCtx, cancel := context.WithCancel(ctx) defer cancel() fetchStartTime := time.Now() - for i := int32(0); i < s.fetchers; i++ { - go s.fetchChunks(fetchCtx, snapshot, chunks) + + // TODO: this approach of creating will be deprecated in favor of new design + // This epic https://dashpay.atlassian.net/browse/TD-161 contains all the tasks for refactoring + for i := 0; i < s.fetchers; i++ { + go s.fetchChunks(fetchCtx, snapshot, queue) } pctx, pcancel := context.WithTimeout(ctx, 1*time.Minute) @@ -333,7 +366,7 @@ func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueu } // Restore snapshot - err = s.applyChunks(ctx, chunks, fetchStartTime) + err = s.applyChunks(ctx, queue, fetchStartTime) if err != nil { return sm.State{}, nil, err } @@ -344,7 +377,9 @@ func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueu } // Done! 🎉 - s.logger.Info("Snapshot restored", "height", snapshot.Height, "format", snapshot.Format, + s.logger.Info("Snapshot restored", + "height", snapshot.Height, + "version", snapshot.Version, "hash", snapshot.Hash) return state, commit, nil @@ -352,14 +387,15 @@ func (s *syncer) Sync(ctx context.Context, snapshot *snapshot, chunks *chunkQueu // offerSnapshot offers a snapshot to the app. It returns various errors depending on the app's // response, or nil if the snapshot was accepted. -func (s *syncer) offerSnapshot(ctx context.Context, snapshot *snapshot) error { - s.logger.Info("Offering snapshot to ABCI app", "height", snapshot.Height, - "format", snapshot.Format, "hash", snapshot.Hash) +func (s *syncer) offerSnapshot(ctx context.Context, snapshot *snapshot) error { //nolint:dupl + s.logger.Info("Offering snapshot to ABCI app", + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash) resp, err := s.conn.OfferSnapshot(ctx, &abci.RequestOfferSnapshot{ Snapshot: &abci.Snapshot{ Height: snapshot.Height, - Format: snapshot.Format, - Chunks: snapshot.Chunks, + Version: snapshot.Version, Hash: snapshot.Hash, Metadata: snapshot.Metadata, }, @@ -370,8 +406,10 @@ func (s *syncer) offerSnapshot(ctx context.Context, snapshot *snapshot) error { } switch resp.Result { case abci.ResponseOfferSnapshot_ACCEPT: - s.logger.Info("Snapshot accepted, restoring", "height", snapshot.Height, - "format", snapshot.Format, "hash", snapshot.Hash) + s.logger.Info("Snapshot accepted, restoring", + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash) return nil case abci.ResponseOfferSnapshot_ABORT: return errAbort @@ -388,32 +426,33 @@ func (s *syncer) offerSnapshot(ctx context.Context, snapshot *snapshot) error { // applyChunks applies chunks to the app. It returns various errors depending on the app's // response, or nil once the snapshot is fully restored. -func (s *syncer) applyChunks(ctx context.Context, chunks *chunkQueue, start time.Time) error { +func (s *syncer) applyChunks(ctx context.Context, queue *chunkQueue, start time.Time) error { for { - chunk, err := chunks.Next() - if err == errDone { - return nil - } else if err != nil { + chunk, err := queue.Next() + if err != nil { return fmt.Errorf("failed to fetch chunk: %w", err) } resp, err := s.conn.ApplySnapshotChunk(ctx, &abci.RequestApplySnapshotChunk{ - Index: chunk.Index, - Chunk: chunk.Chunk, - Sender: string(chunk.Sender), + ChunkId: chunk.ID, + Chunk: chunk.Chunk, + Sender: string(chunk.Sender), }) if err != nil { - return fmt.Errorf("failed to apply chunk %v: %w", chunk.Index, err) + return fmt.Errorf("failed to apply chunkID %x: %w", chunk.ID, err) } - s.logger.Info("Applied snapshot chunk to ABCI app", "height", chunk.Height, - "format", chunk.Format, "chunk", chunk.Index, "total", chunks.Size()) + s.logger.Info("applied snapshot chunk to ABCI app", + "height", chunk.Height, + "version", chunk.Version, + "chunkID", chunk.ID.String()) // Discard and refetch any chunks as requested by the app - for _, index := range resp.RefetchChunks { - err := chunks.Discard(index) + for _, chunkID := range resp.RefetchChunks { + err := queue.Discard(chunkID) if err != nil { - return fmt.Errorf("failed to discard chunk %v: %w", index, err) + return fmt.Errorf("failed to discard chunkID %x: %w", chunkID, err) } + queue.Enqueue(chunkID) } // Reject any senders as requested by the app @@ -422,21 +461,27 @@ func (s *syncer) applyChunks(ctx context.Context, chunks *chunkQueue, start time peerID := types.NodeID(sender) s.snapshots.RejectPeer(peerID) - if err := chunks.DiscardSender(peerID); err != nil { + if err := queue.DiscardSender(peerID); err != nil { return fmt.Errorf("failed to reject sender: %w", err) } } } + s.logger.Debug("snapshot chunk applied", + "result", resp.Result.String(), + "chunkID", chunk.ID.String()) + switch resp.Result { case abci.ResponseApplySnapshotChunk_ACCEPT: - s.metrics.SnapshotChunk.Add(1) - s.avgChunkTime = time.Since(start).Nanoseconds() / int64(chunks.numChunksReturned()) - s.metrics.ChunkProcessAvgTime.Set(float64(s.avgChunkTime)) + queue.Enqueue(resp.NextChunks...) + s.acceptChunk(queue, start) + case abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT: + s.acceptChunk(queue, start) + return nil case abci.ResponseApplySnapshotChunk_ABORT: return errAbort case abci.ResponseApplySnapshotChunk_RETRY: - chunks.Retry(chunk.Index) + queue.Retry(chunk.ID) case abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT: return errRetrySnapshot case abci.ResponseApplySnapshotChunk_REJECT_SNAPSHOT: @@ -447,55 +492,50 @@ func (s *syncer) applyChunks(ctx context.Context, chunks *chunkQueue, start time } } -// fetchChunks requests chunks from peers, receiving allocations from the chunk queue. Chunks -// will be received from the reactor via syncer.AddChunks() to chunkQueue.Add(). -func (s *syncer) fetchChunks(ctx context.Context, snapshot *snapshot, chunks *chunkQueue) { - var ( - next = true - index uint32 - err error - ) +func (s *syncer) acceptChunk(queue *chunkQueue, start time.Time) { + s.metrics.SnapshotChunk.Add(1) + s.avgChunkTime = time.Since(start).Nanoseconds() / int64(queue.DoneChunksCount()) + s.metrics.ChunkProcessAvgTime.Set(float64(s.avgChunkTime)) +} +// fetchChunks requests chunks from peers, receiving allocations from the chunk queue. Chunks +// will be received from the reactor via syncer.AddChunks() to queue.Add(). +func (s *syncer) fetchChunks(ctx context.Context, snapshot *snapshot, queue *chunkQueue) { + ticker := time.NewTicker(s.retryTimeout) + defer ticker.Stop() + dequeueChunkIDTimeout := s.dequeueChunkIDTimeout + if dequeueChunkIDTimeout == 0 { + dequeueChunkIDTimeout = dequeueChunkIDTimeoutDefault + } for { - if next { - index, err = chunks.Allocate() - if errors.Is(err, errDone) { - // Keep checking until the context is canceled (restore is done), in case any - // chunks need to be refetched. - select { - case <-ctx.Done(): - return - case <-time.After(2 * time.Second): - continue - } - } - if err != nil { - s.logger.Error("Failed to allocate chunk from queue", "err", err) + if queue.IsRequestQueueEmpty() { + select { + case <-ctx.Done(): return + case <-time.After(dequeueChunkIDTimeout): + continue } } - s.logger.Info("Fetching snapshot chunk", "height", snapshot.Height, - "format", snapshot.Format, "chunk", index, "total", chunks.Size()) - - ticker := time.NewTicker(s.retryTimeout) - defer ticker.Stop() - - if err := s.requestChunk(ctx, snapshot, index); err != nil { + ID, err := queue.Dequeue() + if errors.Is(err, errQueueEmpty) { + continue + } + s.logger.Info("Fetching snapshot chunk", + "height", snapshot.Height, + "version", snapshot.Version, + "chunk", ID) + ticker.Reset(s.retryTimeout) + if err := s.requestChunk(ctx, snapshot, ID); err != nil { return } - select { - case <-chunks.WaitFor(index): - next = true - + case <-queue.WaitFor(ID): + // do nothing case <-ticker.C: - next = false - + s.chunkQueue.Enqueue(ID) case <-ctx.Done(): return } - - ticker.Stop() } } @@ -504,33 +544,32 @@ func (s *syncer) fetchChunks(ctx context.Context, snapshot *snapshot, chunks *ch // returns nil if there are no peers for the given snapshot or the // request is successfully made and an error if the request cannot be // completed -func (s *syncer) requestChunk(ctx context.Context, snapshot *snapshot, chunk uint32) error { +func (s *syncer) requestChunk(ctx context.Context, snapshot *snapshot, chunkID tmbytes.HexBytes) error { peer := s.snapshots.GetPeer(snapshot) if peer == "" { - s.logger.Error("No valid peers found for snapshot", "height", snapshot.Height, - "format", snapshot.Format, "hash", snapshot.Hash) + s.logger.Error("No valid peers found for snapshot", + "height", snapshot.Height, + "version", snapshot.Version, + "hash", snapshot.Hash) return nil } s.logger.Debug("Requesting snapshot chunk", "height", snapshot.Height, - "format", snapshot.Format, - "chunk", chunk, + "version", snapshot.Version, + "chunkID", chunkID.String(), "peer", peer) msg := p2p.Envelope{ To: peer, Message: &ssproto.ChunkRequest{ - Height: snapshot.Height, - Format: snapshot.Format, - Index: chunk, + Height: snapshot.Height, + Version: snapshot.Version, + ChunkId: chunkID, }, } - if err := s.chunkCh.Send(ctx, msg); err != nil { - return err - } - return nil + return s.chunkCh.Send(ctx, msg) } // verifyApp verifies the sync, checking the app hash, last block height and app version @@ -543,7 +582,7 @@ func (s *syncer) verifyApp(ctx context.Context, snapshot *snapshot, appVersion u // sanity check that the app version in the block matches the application's own record // of its version if resp.AppVersion != appVersion { - // An error here most likely means that the app hasn't inplemented state sync + // An error here most likely means that the app hasn't implemented state sync // or the Info call correctly return fmt.Errorf("app version mismatch. Expected: %d, got: %d", appVersion, resp.AppVersion) diff --git a/internal/statesync/syncer_test.go b/internal/statesync/syncer_test.go index 94ae2d74f..e5934608a 100644 --- a/internal/statesync/syncer_test.go +++ b/internal/statesync/syncer_test.go @@ -6,30 +6,72 @@ import ( "testing" "time" - sync "github.com/sasha-s/go-deadlock" - - "github.com/stretchr/testify/assert" "github.com/stretchr/testify/mock" - "github.com/stretchr/testify/require" - - clientmocks "github.com/tendermint/tendermint/abci/client/mocks" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/proxy" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/statesync/mocks" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - ssproto "github.com/tendermint/tendermint/proto/tendermint/statesync" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/stretchr/testify/suite" + + clientmocks "github.com/dashpay/tenderdash/abci/client/mocks" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/proxy" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/statesync/mocks" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + ssproto "github.com/dashpay/tenderdash/proto/tendermint/statesync" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) -func TestSyncer_SyncAny(t *testing.T) { +type SyncerTestSuite struct { + suite.Suite + + ctx context.Context + conn *clientmocks.Client + stateProvider *mocks.StateProvider + syncer *syncer + logger log.Logger + snapshotChannel p2p.Channel + snapshotInCh chan p2p.Envelope + snapshotOutCh chan p2p.Envelope + chunkChannel p2p.Channel + chunkInCh chan p2p.Envelope + chunkOutCh chan p2p.Envelope +} + +func TestSyncerTestSuite(t *testing.T) { + suite.Run(t, new(SyncerTestSuite)) +} + +func (suite *SyncerTestSuite) SetupTest() { + suite.ctx = context.Background() + suite.stateProvider = mocks.NewStateProvider(suite.T()) + + suite.snapshotChannel, suite.snapshotInCh, suite.snapshotOutCh, _ = makeChannel(SnapshotChannel, "snapshot") + suite.chunkChannel, suite.chunkInCh, suite.chunkOutCh, _ = makeChannel(ChunkChannel, "chunk") + suite.conn = clientmocks.NewClient(suite.T()) + suite.logger = log.NewNopLogger() + suite.syncer = &syncer{ + logger: suite.logger, + stateProvider: suite.stateProvider, + conn: suite.conn, + snapshots: newSnapshotPool(), + tempDir: suite.T().TempDir(), + fetchers: 1, + snapshotCh: suite.snapshotChannel, + chunkCh: suite.chunkChannel, + retryTimeout: 100 * time.Millisecond, + dequeueChunkIDTimeout: 50 * time.Millisecond, + metrics: NopMetrics(), + } +} + +func (suite *SyncerTestSuite) TestSyncAny() { if testing.Short() { - t.Skip("skipping test in short mode") + suite.T().Skip("skipping test in short mode") } - ctx, cancel := context.WithCancel(context.Background()) + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() state := sm.State{ @@ -60,300 +102,315 @@ func TestSyncer_SyncAny(t *testing.T) { } commit := &types.Commit{BlockID: types.BlockID{Hash: []byte("blockhash")}} + s := &snapshot{Height: 1, Version: 1, Hash: []byte{0}} chunks := []*chunk{ - {Height: 1, Format: 1, Index: 0, Chunk: []byte{1, 1, 0}}, - {Height: 1, Format: 1, Index: 1, Chunk: []byte{1, 1, 1}}, - {Height: 1, Format: 1, Index: 2, Chunk: []byte{1, 1, 2}}, + {Height: 1, Version: 1, ID: []byte{0}, Chunk: []byte{0}}, + {Height: 1, Version: 1, ID: []byte{1}, Chunk: []byte{1}}, + {Height: 1, Version: 1, ID: []byte{2}, Chunk: []byte{2}}, + {Height: 1, Version: 1, ID: []byte{3}, Chunk: []byte{3}}, } - s := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, uint64(1)).Return(state.LastAppHash, nil) - stateProvider.On("AppHash", mock.Anything, uint64(2)).Return(tmbytes.HexBytes("app_hash_2"), nil) - stateProvider.On("Commit", mock.Anything, uint64(1)).Return(commit, nil) - stateProvider.On("State", mock.Anything, uint64(1)).Return(state, nil) - conn := &clientmocks.Client{} + suite.stateProvider. + On("AppHash", mock.Anything, uint64(1)). + Return(state.LastAppHash, nil) + suite.stateProvider. + On("AppHash", mock.Anything, uint64(2)). + Return(tmbytes.HexBytes("app_hash_2"), nil) + suite.stateProvider. + On("Commit", mock.Anything, uint64(1)). + Return(commit, nil) + suite.stateProvider. + On("State", mock.Anything, uint64(1)). + Return(state, nil) peerAID := types.NodeID("aa") peerBID := types.NodeID("bb") peerCID := types.NodeID("cc") - rts := setup(ctx, t, conn, stateProvider, 4) - - rts.reactor.syncer = rts.syncer // Adding a chunk should error when no sync is in progress - _, err := rts.syncer.AddChunk(&chunk{Height: 1, Format: 1, Index: 0, Chunk: []byte{1}}) - require.Error(t, err) + _, err := suite.syncer.AddChunk(&chunk{Height: 1, Version: 1, ID: []byte{0}, Chunk: []byte{1}}) + suite.Require().Error(err) // Adding a couple of peers should trigger snapshot discovery messages - err = rts.syncer.AddPeer(ctx, peerAID) - require.NoError(t, err) - e := <-rts.snapshotOutCh - require.Equal(t, &ssproto.SnapshotsRequest{}, e.Message) - require.Equal(t, peerAID, e.To) - - err = rts.syncer.AddPeer(ctx, peerBID) - require.NoError(t, err) - e = <-rts.snapshotOutCh - require.Equal(t, &ssproto.SnapshotsRequest{}, e.Message) - require.Equal(t, peerBID, e.To) + err = suite.syncer.AddPeer(ctx, peerAID) + suite.Require().NoError(err) + e := <-suite.snapshotOutCh + suite.Require().Equal(&ssproto.SnapshotsRequest{}, e.Message) + suite.Require().Equal(peerAID, e.To) + + err = suite.syncer.AddPeer(ctx, peerBID) + suite.Require().NoError(err) + e = <-suite.snapshotOutCh + suite.Require().Equal(&ssproto.SnapshotsRequest{}, e.Message) + suite.Require().Equal(peerBID, e.To) // Both peers report back with snapshots. One of them also returns a snapshot we don't want, in // format 2, which will be rejected by the ABCI application. - new, err := rts.syncer.AddSnapshot(peerAID, s) - require.NoError(t, err) - require.True(t, new) + added, err := suite.syncer.AddSnapshot(peerAID, s) + suite.Require().NoError(err) + suite.Require().True(added) - new, err = rts.syncer.AddSnapshot(peerBID, s) - require.NoError(t, err) - require.False(t, new) + added, err = suite.syncer.AddSnapshot(peerBID, s) + suite.Require().NoError(err) + suite.Require().False(added) - s2 := &snapshot{Height: 2, Format: 2, Chunks: 3, Hash: []byte{1}} - new, err = rts.syncer.AddSnapshot(peerBID, s2) - require.NoError(t, err) - require.True(t, new) + s2 := &snapshot{Height: 2, Version: 2, Hash: []byte{1}} + added, err = suite.syncer.AddSnapshot(peerBID, s2) + suite.Require().NoError(err) + suite.Require().True(added) - new, err = rts.syncer.AddSnapshot(peerCID, s2) - require.NoError(t, err) - require.False(t, new) + added, err = suite.syncer.AddSnapshot(peerCID, s2) + suite.Require().NoError(err) + suite.Require().False(added) // We start a sync, with peers sending back chunks when requested. We first reject the snapshot // with height 2 format 2, and accept the snapshot at height 1. - conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: &abci.Snapshot{ - Height: 2, - Format: 2, - Chunks: 3, - Hash: []byte{1}, - }, - AppHash: []byte("app_hash_2"), - }).Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT_FORMAT}, nil) - conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: &abci.Snapshot{ - Height: s.Height, - Format: s.Format, - Chunks: s.Chunks, - Hash: s.Hash, - Metadata: s.Metadata, - }, - AppHash: []byte("app_hash"), - }).Times(2).Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ACCEPT}, nil) - - chunkRequests := make(map[uint32]int) - chunkRequestsMtx := sync.Mutex{} - - chunkProcessDone := make(chan struct{}) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: &abci.Snapshot{ + Height: 2, + Version: 2, + Hash: []byte{1}, + }, + AppHash: []byte("app_hash_2"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT_FORMAT}, nil) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: &abci.Snapshot{ + Height: s.Height, + Version: s.Version, + Hash: s.Hash, + Metadata: s.Metadata, + }, + AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ACCEPT}, nil) + chunkRequests := make([]int, len(chunks)) go func() { - defer close(chunkProcessDone) - var seen int - for { - if seen >= 4 { - return - } - + for i := 0; i < 5; i++ { select { case <-ctx.Done(): - t.Logf("sent %d chunks", seen) return - case e := <-rts.chunkOutCh: + case e := <-suite.chunkOutCh: msg, ok := e.Message.(*ssproto.ChunkRequest) - assert.True(t, ok) + suite.Require().True(ok) - assert.EqualValues(t, 1, msg.Height) - assert.EqualValues(t, 1, msg.Format) - assert.LessOrEqual(t, msg.Index, uint32(len(chunks))) + suite.Require().EqualValues(1, msg.Height) + suite.Require().EqualValues(1, msg.Version) - added, err := rts.syncer.AddChunk(chunks[msg.Index]) - assert.NoError(t, err) - assert.True(t, added) + added, err := suite.syncer.AddChunk(chunks[msg.ChunkId[0]]) + suite.Require().NoError(err) + suite.Require().True(added) - chunkRequestsMtx.Lock() - chunkRequests[msg.Index]++ - chunkRequestsMtx.Unlock() - seen++ - t.Logf("added chunk (%d of 4): %d", seen, msg.Index) + chunkRequests[msg.ChunkId[0]]++ + + suite.T().Logf("added chunkID %x", msg.ChunkId) } } }() - - // The first time we're applying chunk 2 we tell it to retry the snapshot and discard chunk 1, - // which should cause it to keep the existing chunk 0 and 2, and restart restoration from - // beginning. We also wait for a little while, to exercise the retry logic in fetchChunks(). - conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 2, Chunk: []byte{1, 1, 2}, - }).Once().Run(func(args mock.Arguments) { time.Sleep(1 * time.Second) }).Return( - &abci.ResponseApplySnapshotChunk{ - Result: abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT, - RefetchChunks: []uint32{1}, + var reqs []*abci.RequestApplySnapshotChunk + for i := 0; i < len(chunks); i++ { + reqs = append(reqs, &abci.RequestApplySnapshotChunk{ + ChunkId: chunks[i].ID, + Chunk: chunks[i].Chunk, + }) + } + resps := []*abci.ResponseApplySnapshotChunk{ + { + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + NextChunks: [][]byte{chunks[1].ID}, + }, + { + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + NextChunks: [][]byte{chunks[2].ID}, + }, + { + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + RefetchChunks: [][]byte{chunks[0].ID}, + }, + { + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + NextChunks: [][]byte{chunks[3].ID}, + }, + {Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, + } + applySnapshotChunks := []struct { + req *abci.RequestApplySnapshotChunk + resp *abci.ResponseApplySnapshotChunk + }{ + {req: reqs[0], resp: resps[0]}, + {req: reqs[1], resp: resps[1]}, + {req: reqs[2], resp: resps[2]}, + {req: reqs[0], resp: resps[3]}, + {req: reqs[3], resp: resps[4]}, + } + for _, asc := range applySnapshotChunks { + suite.conn. + On("ApplySnapshotChunk", mock.Anything, asc.req). + Once(). + Return(asc.resp, nil) + } + suite.conn. + On("Info", mock.Anything, &proxy.RequestInfo). + Once(). + Return(&abci.ResponseInfo{ + AppVersion: testAppVersion, + LastBlockHeight: 1, + LastBlockAppHash: []byte("app_hash"), }, nil) - conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 0, Chunk: []byte{1, 1, 0}, - }).Times(2).Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 1, Chunk: []byte{1, 1, 1}, - }).Times(2).Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 2, Chunk: []byte{1, 1, 2}, - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - conn.On("Info", mock.Anything, &proxy.RequestInfo).Return(&abci.ResponseInfo{ - AppVersion: testAppVersion, - LastBlockHeight: 1, - LastBlockAppHash: []byte("app_hash"), - }, nil) - - newState, lastCommit, err := rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.NoError(t, err) - - <-chunkProcessDone - - chunkRequestsMtx.Lock() - require.Equal(t, map[uint32]int{0: 1, 1: 2, 2: 1}, chunkRequests) - chunkRequestsMtx.Unlock() - - expectState := state - require.Equal(t, expectState, newState) - require.Equal(t, commit, lastCommit) + newState, lastCommit, err := suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().NoError(err) - require.Equal(t, len(chunks), int(rts.syncer.processingSnapshot.Chunks)) - require.Equal(t, expectState.LastBlockHeight, rts.syncer.lastSyncedSnapshotHeight) - require.True(t, rts.syncer.avgChunkTime > 0) + suite.Require().Equal([]int{0: 2, 1: 1, 2: 1, 3: 1}, chunkRequests) - require.Equal(t, int64(rts.syncer.processingSnapshot.Chunks), rts.reactor.SnapshotChunksTotal()) - require.Equal(t, rts.syncer.lastSyncedSnapshotHeight, rts.reactor.SnapshotHeight()) - require.Equal(t, time.Duration(rts.syncer.avgChunkTime), rts.reactor.ChunkProcessAvgTime()) - require.Equal(t, int64(len(rts.syncer.snapshots.snapshots)), rts.reactor.TotalSnapshots()) - require.Equal(t, int64(0), rts.reactor.SnapshotChunksCount()) + expectState := state + suite.Require().Equal(expectState, newState) + suite.Require().Equal(commit, lastCommit) - conn.AssertExpectations(t) + suite.Require().Equal(expectState.LastBlockHeight, suite.syncer.lastSyncedSnapshotHeight) + suite.Require().True(suite.syncer.avgChunkTime > 0) } -func TestSyncer_SyncAny_noSnapshots(t *testing.T) { - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - ctx, cancel := context.WithCancel(context.Background()) +func (suite *SyncerTestSuite) TestSyncAnyNoSnapshots() { + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - rts := setup(ctx, t, nil, stateProvider, 2) - - _, _, err := rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.Equal(t, errNoSnapshots, err) + _, _, err := suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().Equal(errNoSnapshots, err) } -func TestSyncer_SyncAny_abort(t *testing.T) { - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - ctx, cancel := context.WithCancel(context.Background()) +func (suite *SyncerTestSuite) TestSyncAnyAbort() { + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - rts := setup(ctx, t, nil, stateProvider, 2) + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) - s := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} peerID := types.NodeID("aa") - _, err := rts.syncer.AddSnapshot(peerID, s) - require.NoError(t, err) + _, err := suite.syncer.AddSnapshot(peerID, s) + suite.Require().NoError(err) - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ABORT}, nil) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ABORT}, nil) - _, _, err = rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.Equal(t, errAbort, err) - rts.conn.AssertExpectations(t) + _, _, err = suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().Equal(errAbort, err) } -func TestSyncer_SyncAny_reject(t *testing.T) { - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - ctx, cancel := context.WithCancel(context.Background()) +func (suite *SyncerTestSuite) TestSyncAnyReject() { + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - rts := setup(ctx, t, nil, stateProvider, 2) + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) // s22 is tried first, then s12, then s11, then errNoSnapshots - s22 := &snapshot{Height: 2, Format: 2, Chunks: 3, Hash: []byte{1, 2, 3}} - s12 := &snapshot{Height: 1, Format: 2, Chunks: 3, Hash: []byte{1, 2, 3}} - s11 := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} + s22 := &snapshot{Height: 2, Version: 2, Hash: []byte{1, 2, 3}} + s12 := &snapshot{Height: 1, Version: 2, Hash: []byte{1, 2, 3}} + s11 := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} peerID := types.NodeID("aa") - _, err := rts.syncer.AddSnapshot(peerID, s22) - require.NoError(t, err) - - _, err = rts.syncer.AddSnapshot(peerID, s12) - require.NoError(t, err) - - _, err = rts.syncer.AddSnapshot(peerID, s11) - require.NoError(t, err) - - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s22), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) - - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s12), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) - - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s11), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) - - _, _, err = rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.Equal(t, errNoSnapshots, err) - rts.conn.AssertExpectations(t) + _, err := suite.syncer.AddSnapshot(peerID, s22) + suite.Require().NoError(err) + + _, err = suite.syncer.AddSnapshot(peerID, s12) + suite.Require().NoError(err) + + _, err = suite.syncer.AddSnapshot(peerID, s11) + suite.Require().NoError(err) + + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s22), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) + + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s12), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) + + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s11), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) + + _, _, err = suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().Equal(errNoSnapshots, err) } -func TestSyncer_SyncAny_reject_format(t *testing.T) { - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - ctx, cancel := context.WithCancel(context.Background()) +func (suite *SyncerTestSuite) TestSyncAnyRejectFormat() { + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - rts := setup(ctx, t, nil, stateProvider, 2) + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) // s22 is tried first, which reject s22 and s12, then s11 will abort. - s22 := &snapshot{Height: 2, Format: 2, Chunks: 3, Hash: []byte{1, 2, 3}} - s12 := &snapshot{Height: 1, Format: 2, Chunks: 3, Hash: []byte{1, 2, 3}} - s11 := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} + s22 := &snapshot{Height: 2, Version: 2, Hash: []byte{1, 2, 3}} + s12 := &snapshot{Height: 1, Version: 2, Hash: []byte{1, 2, 3}} + s11 := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} peerID := types.NodeID("aa") - _, err := rts.syncer.AddSnapshot(peerID, s22) - require.NoError(t, err) + _, err := suite.syncer.AddSnapshot(peerID, s22) + suite.Require().NoError(err) - _, err = rts.syncer.AddSnapshot(peerID, s12) - require.NoError(t, err) + _, err = suite.syncer.AddSnapshot(peerID, s12) + suite.Require().NoError(err) - _, err = rts.syncer.AddSnapshot(peerID, s11) - require.NoError(t, err) + _, err = suite.syncer.AddSnapshot(peerID, s11) + suite.Require().NoError(err) - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s22), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT_FORMAT}, nil) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s22), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT_FORMAT}, nil) - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s11), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ABORT}, nil) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s11), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_ABORT}, nil) - _, _, err = rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.Equal(t, errAbort, err) - rts.conn.AssertExpectations(t) + _, _, err = suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().Equal(errAbort, err) } -func TestSyncer_SyncAny_reject_sender(t *testing.T) { - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - ctx, cancel := context.WithCancel(context.Background()) +func (suite *SyncerTestSuite) TestSyncAnyRejectSender() { + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - rts := setup(ctx, t, nil, stateProvider, 2) + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) peerAID := types.NodeID("aa") peerBID := types.NodeID("bb") @@ -362,70 +419,77 @@ func TestSyncer_SyncAny_reject_sender(t *testing.T) { // sbc will be offered first, which will be rejected with reject_sender, causing all snapshots // submitted by both b and c (i.e. sb, sc, sbc) to be rejected. Finally, sa will reject and // errNoSnapshots is returned. - sa := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} - sb := &snapshot{Height: 2, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} - sc := &snapshot{Height: 3, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} - sbc := &snapshot{Height: 4, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} - - _, err := rts.syncer.AddSnapshot(peerAID, sa) - require.NoError(t, err) - - _, err = rts.syncer.AddSnapshot(peerBID, sb) - require.NoError(t, err) - - _, err = rts.syncer.AddSnapshot(peerCID, sc) - require.NoError(t, err) - - _, err = rts.syncer.AddSnapshot(peerBID, sbc) - require.NoError(t, err) - - _, err = rts.syncer.AddSnapshot(peerCID, sbc) - require.NoError(t, err) - - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(sbc), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT_SENDER}, nil) - - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(sa), AppHash: []byte("app_hash"), - }).Once().Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) + sa := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} + sb := &snapshot{Height: 2, Version: 1, Hash: []byte{1, 2, 3}} + sc := &snapshot{Height: 3, Version: 1, Hash: []byte{1, 2, 3}} + sbc := &snapshot{Height: 4, Version: 1, Hash: []byte{1, 2, 3}} + + snapshots := []struct { + peerID types.NodeID + snapshot *snapshot + }{ + {peerAID, sa}, + {peerBID, sb}, + {peerCID, sc}, + {peerBID, sbc}, + {peerCID, sbc}, + } + for _, s := range snapshots { + _, err := suite.syncer.AddSnapshot(s.peerID, s.snapshot) + suite.Require().NoError(err) + } - _, _, err = rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.Equal(t, errNoSnapshots, err) - rts.conn.AssertExpectations(t) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(sbc), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT_SENDER}, nil) + + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(sa), AppHash: []byte("app_hash"), + }). + Once(). + Return(&abci.ResponseOfferSnapshot{Result: abci.ResponseOfferSnapshot_REJECT}, nil) + + _, _, err := suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().Equal(errNoSnapshots, err) } -func TestSyncer_SyncAny_abciError(t *testing.T) { - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - ctx, cancel := context.WithCancel(context.Background()) +func (suite *SyncerTestSuite) TestSyncAnyAbciError() { + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - rts := setup(ctx, t, nil, stateProvider, 2) + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) errBoom := errors.New("boom") - s := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}} + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} peerID := types.NodeID("aa") - _, err := rts.syncer.AddSnapshot(peerID, s) - require.NoError(t, err) + _, err := suite.syncer.AddSnapshot(peerID, s) + suite.Require().NoError(err) - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s), AppHash: []byte("app_hash"), - }).Once().Return(nil, errBoom) + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s), AppHash: []byte("app_hash"), + }). + Once(). + Return(nil, errBoom) - _, _, err = rts.syncer.SyncAny(ctx, 0, func() error { return nil }) - require.True(t, errors.Is(err, errBoom)) - rts.conn.AssertExpectations(t) + _, _, err = suite.syncer.SyncAny(ctx, 0, func() error { return nil }) + suite.Require().True(errors.Is(err, errBoom)) } -func TestSyncer_offerSnapshot(t *testing.T) { +func (suite *SyncerTestSuite) TestOfferSnapshot() { unknownErr := errors.New("unknown error") boom := errors.New("boom") - testcases := map[string]struct { + testCases := map[string]struct { result abci.ResponseOfferSnapshot_Result err error expectErr error @@ -433,307 +497,380 @@ func TestSyncer_offerSnapshot(t *testing.T) { "accept": {abci.ResponseOfferSnapshot_ACCEPT, nil, nil}, "abort": {abci.ResponseOfferSnapshot_ABORT, nil, errAbort}, "reject": {abci.ResponseOfferSnapshot_REJECT, nil, errRejectSnapshot}, - "reject_format": {abci.ResponseOfferSnapshot_REJECT_FORMAT, nil, errRejectFormat}, + "reject_version": {abci.ResponseOfferSnapshot_REJECT_FORMAT, nil, errRejectFormat}, "reject_sender": {abci.ResponseOfferSnapshot_REJECT_SENDER, nil, errRejectSender}, "unknown": {abci.ResponseOfferSnapshot_UNKNOWN, nil, unknownErr}, "error": {0, boom, boom}, "unknown non-zero": {9, nil, unknownErr}, } - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - for name, tc := range testcases { - tc := tc - t.Run(name, func(t *testing.T) { - ctx, cancel := context.WithCancel(ctx) + for name, tc := range testCases { + suite.Run(name, func() { + suite.SetupTest() // reset + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}, trustedAppHash: []byte("app_hash")} + suite.conn. + On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ + Snapshot: toABCI(s), + AppHash: []byte("app_hash"), + }). + Return(&abci.ResponseOfferSnapshot{Result: tc.result}, tc.err) - rts := setup(ctx, t, nil, stateProvider, 2) - - s := &snapshot{Height: 1, Format: 1, Chunks: 3, Hash: []byte{1, 2, 3}, trustedAppHash: []byte("app_hash")} - rts.conn.On("OfferSnapshot", mock.Anything, &abci.RequestOfferSnapshot{ - Snapshot: toABCI(s), - AppHash: []byte("app_hash"), - }).Return(&abci.ResponseOfferSnapshot{Result: tc.result}, tc.err) - - err := rts.syncer.offerSnapshot(ctx, s) + err := suite.syncer.offerSnapshot(ctx, s) if tc.expectErr == unknownErr { - require.Error(t, err) + suite.Require().Error(err) } else { unwrapped := errors.Unwrap(err) if unwrapped != nil { err = unwrapped } - require.Equal(t, tc.expectErr, err) + suite.Require().Equal(tc.expectErr, err) } }) } } -func TestSyncer_applyChunks_Results(t *testing.T) { +func (suite *SyncerTestSuite) TestApplyChunksResults() { unknownErr := errors.New("unknown error") boom := errors.New("boom") - testcases := map[string]struct { - result abci.ResponseApplySnapshotChunk_Result + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) + + testCases := map[string]struct { + resps []*abci.ResponseApplySnapshotChunk err error expectErr error }{ - "accept": {abci.ResponseApplySnapshotChunk_ACCEPT, nil, nil}, - "abort": {abci.ResponseApplySnapshotChunk_ABORT, nil, errAbort}, - "retry": {abci.ResponseApplySnapshotChunk_RETRY, nil, nil}, - "retry_snapshot": {abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT, nil, errRetrySnapshot}, - "reject_snapshot": {abci.ResponseApplySnapshotChunk_REJECT_SNAPSHOT, nil, errRejectSnapshot}, - "unknown": {abci.ResponseApplySnapshotChunk_UNKNOWN, nil, unknownErr}, - "error": {0, boom, boom}, - "unknown non-zero": {9, nil, unknownErr}, + "accept": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}}}, + {Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, + }, + }, + "abort": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ABORT}, + }, + err: errAbort, + expectErr: errAbort, + }, + "retry": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_RETRY}, + {Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, + }, + }, + "retry_snapshot": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT}, + }, + err: errRejectSnapshot, + expectErr: errRejectSnapshot, + }, + "reject_snapshot": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT}, + }, + err: errRejectSnapshot, + expectErr: errRejectSnapshot, + }, + "unknown": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_UNKNOWN}, + }, + err: unknownErr, + expectErr: unknownErr, + }, + "error": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT}, + }, + err: boom, + expectErr: boom, + }, + "unknown non-zero": { + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT}, + }, + err: unknownErr, + expectErr: unknownErr, + }, } - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - for name, tc := range testcases { + for name, tc := range testCases { tc := tc - t.Run(name, func(t *testing.T) { - ctx, cancel := context.WithCancel(ctx) + suite.Run(name, func() { + suite.SetupTest() // reset + ctx, cancel := context.WithCancel(suite.ctx) defer cancel() - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - rts := setup(ctx, t, nil, stateProvider, 2) - + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} body := []byte{1, 2, 3} - chunks, err := newChunkQueue(&snapshot{Height: 1, Format: 1, Chunks: 1}, t.TempDir()) - require.NoError(t, err) + chunks, err := newChunkQueue(s, suite.T().TempDir(), 10) + suite.Require().NoError(err) fetchStartTime := time.Now() - _, err = chunks.Add(&chunk{Height: 1, Format: 1, Index: 0, Chunk: body}) - require.NoError(t, err) - - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 0, Chunk: body, - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: tc.result}, tc.err) - if tc.result == abci.ResponseApplySnapshotChunk_RETRY { - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 0, Chunk: body, - }).Once().Return(&abci.ResponseApplySnapshotChunk{ - Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) + c := &chunk{Height: 1, Version: 1, ID: []byte{0}, Chunk: body} + chunks.Enqueue(c.ID) + + for _, resp := range tc.resps { + suite.conn. + On("ApplySnapshotChunk", mock.Anything, mock.Anything). + Once(). + Return(resp, tc.err) } + go func() { + for i := 0; i < len(tc.resps); i++ { + for chunks.IsRequestQueueEmpty() { + time.Sleep(5 * time.Millisecond) + } + chunkID, err := chunks.Dequeue() + suite.Require().NoError(err) + added, err := chunks.Add(&chunk{Height: 1, Version: 1, ID: chunkID, Chunk: body}) + suite.Require().NoError(err) + suite.Require().True(added) + } + }() - err = rts.syncer.applyChunks(ctx, chunks, fetchStartTime) + err = suite.syncer.applyChunks(ctx, chunks, fetchStartTime) if tc.expectErr == unknownErr { - require.Error(t, err) + suite.Require().Error(err) } else { unwrapped := errors.Unwrap(err) if unwrapped != nil { err = unwrapped } - require.Equal(t, tc.expectErr, err) + suite.Require().Equal(tc.expectErr, err) } - - rts.conn.AssertExpectations(t) }) } } -func TestSyncer_applyChunks_RefetchChunks(t *testing.T) { +func (suite *SyncerTestSuite) TestApplyChunksRefetchChunks() { + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) + // Discarding chunks via refetch_chunks should work the same for all results - testcases := map[string]struct { - result abci.ResponseApplySnapshotChunk_Result + testCases := map[string]struct { + resp []*abci.ResponseApplySnapshotChunk }{ - "accept": {abci.ResponseApplySnapshotChunk_ACCEPT}, - "abort": {abci.ResponseApplySnapshotChunk_ABORT}, - "retry": {abci.ResponseApplySnapshotChunk_RETRY}, - "retry_snapshot": {abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT}, - "reject_snapshot": {abci.ResponseApplySnapshotChunk_REJECT_SNAPSHOT}, + "accept": { + resp: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}}}, + { + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + NextChunks: [][]byte{{2}}, + RefetchChunks: [][]byte{{1}}, + }, + {Result: abci.ResponseApplySnapshotChunk_ACCEPT}, + {Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, + }, + }, + // TODO: disabled because refetch works the same for all results + //"abort": {abci.ResponseApplySnapshotChunk_ABORT}, + //"retry": {abci.ResponseApplySnapshotChunk_RETRY}, + //"retry_snapshot": {abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT}, + //"reject_snapshot": {abci.ResponseApplySnapshotChunk_REJECT_SNAPSHOT}, } - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - for name, tc := range testcases { - tc := tc - t.Run(name, func(t *testing.T) { - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - rts := setup(ctx, t, nil, stateProvider, 2) - chunks, err := newChunkQueue(&snapshot{Height: 1, Format: 1, Chunks: 3}, t.TempDir()) - require.NoError(t, err) + chunks := []*chunk{ + {Height: 1, Version: 1, ID: []byte{0}, Chunk: []byte{0}}, + {Height: 1, Version: 1, ID: []byte{1}, Chunk: []byte{1}}, + {Height: 1, Version: 1, ID: []byte{2}, Chunk: []byte{2}}, + } + ctx, cancel := context.WithCancel(suite.ctx) + defer cancel() + for name, tc := range testCases { + suite.Run(name, func() { + s := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} + queue, err := newChunkQueue(s, suite.T().TempDir(), 1) + suite.Require().NoError(err) + queue.Enqueue(chunks[0].ID) fetchStartTime := time.Now() - - added, err := chunks.Add(&chunk{Height: 1, Format: 1, Index: 0, Chunk: []byte{0}}) - require.True(t, added) - require.NoError(t, err) - added, err = chunks.Add(&chunk{Height: 1, Format: 1, Index: 1, Chunk: []byte{1}}) - require.True(t, added) - require.NoError(t, err) - added, err = chunks.Add(&chunk{Height: 1, Format: 1, Index: 2, Chunk: []byte{2}}) - require.True(t, added) - require.NoError(t, err) - - // The first two chunks are accepted, before the last one asks for 1 to be refetched - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 0, Chunk: []byte{0}, - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 1, Chunk: []byte{1}, - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 2, Chunk: []byte{2}, - }).Once().Return(&abci.ResponseApplySnapshotChunk{ - Result: tc.result, - RefetchChunks: []uint32{1}, - }, nil) - - // Since removing the chunk will cause Next() to block, we spawn a goroutine, then - // check the queue contents, and finally close the queue to end the goroutine. - // We don't really care about the result of applyChunks, since it has separate test. + for _, resp := range tc.resp { + suite.conn. + On("ApplySnapshotChunk", mock.Anything, mock.Anything). + Once(). + Return(resp, nil) + } go func() { - rts.syncer.applyChunks(ctx, chunks, fetchStartTime) //nolint:errcheck // purposefully ignore error + for i := 0; i < len(tc.resp); i++ { + for queue.IsRequestQueueEmpty() { + time.Sleep(10 * time.Millisecond) + } + chunkID, err := queue.Dequeue() + suite.Require().NoError(err) + added, err := queue.Add(chunks[int(chunkID[0])]) + suite.Require().NoError(err) + suite.Require().True(added) + } }() - - time.Sleep(50 * time.Millisecond) - require.True(t, chunks.Has(0)) - require.False(t, chunks.Has(1)) - require.True(t, chunks.Has(2)) - - require.NoError(t, chunks.Close()) + _ = suite.syncer.applyChunks(ctx, queue, fetchStartTime) + suite.Require().NoError(queue.Close()) }) } } -func TestSyncer_applyChunks_RejectSenders(t *testing.T) { - // Banning chunks senders via ban_chunk_senders should work the same for all results - testcases := map[string]struct { - result abci.ResponseApplySnapshotChunk_Result - }{ - "accept": {abci.ResponseApplySnapshotChunk_ACCEPT}, - "abort": {abci.ResponseApplySnapshotChunk_ABORT}, - "retry": {abci.ResponseApplySnapshotChunk_RETRY}, - "retry_snapshot": {abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT}, - "reject_snapshot": {abci.ResponseApplySnapshotChunk_REJECT_SNAPSHOT}, - } - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - - for name, tc := range testcases { - tc := tc - t.Run(name, func(t *testing.T) { - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - stateProvider := &mocks.StateProvider{} - stateProvider.On("AppHash", mock.Anything, mock.Anything).Return(tmbytes.HexBytes("app_hash"), nil) - - rts := setup(ctx, t, nil, stateProvider, 2) - - // Set up three peers across two snapshots, and ask for one of them to be banned. - // It should be banned from all snapshots. - peerAID := types.NodeID("aa") - peerBID := types.NodeID("bb") - peerCID := types.NodeID("cc") - - s1 := &snapshot{Height: 1, Format: 1, Chunks: 3} - s2 := &snapshot{Height: 2, Format: 1, Chunks: 3} +func (suite *SyncerTestSuite) TestApplyChunksRejectSenders() { + suite.stateProvider. + On("AppHash", mock.Anything, mock.Anything). + Maybe(). + Return(tmbytes.HexBytes("app_hash"), nil) - _, err := rts.syncer.AddSnapshot(peerAID, s1) - require.NoError(t, err) + // Set up three peers across two snapshots, and ask for one of them to be banned. + // It should be banned from all snapshots. + peerAID := types.NodeID("aa") + peerBID := types.NodeID("bb") + peerCID := types.NodeID("cc") - _, err = rts.syncer.AddSnapshot(peerAID, s2) - require.NoError(t, err) + chunks := []*chunk{ + {Height: 1, Version: 1, ID: []byte{0}, Chunk: []byte{0}, Sender: peerAID}, + {Height: 1, Version: 1, ID: []byte{1}, Chunk: []byte{1}, Sender: peerBID}, + {Height: 1, Version: 1, ID: []byte{2}, Chunk: []byte{2}, Sender: peerCID}, + } - _, err = rts.syncer.AddSnapshot(peerBID, s1) - require.NoError(t, err) + s1 := &snapshot{Height: 1, Version: 1, Hash: []byte{1, 2, 3}} + s2 := &snapshot{Height: 2, Version: 1, Hash: []byte{1, 2, 3}} - _, err = rts.syncer.AddSnapshot(peerBID, s2) - require.NoError(t, err) + peerSnapshots := []struct { + peerID types.NodeID + snapshot []*snapshot + }{ + {peerID: peerAID, snapshot: []*snapshot{s1, s2}}, + {peerID: peerBID, snapshot: []*snapshot{s1, s2}}, + {peerID: peerCID, snapshot: []*snapshot{s1, s2}}, + } - _, err = rts.syncer.AddSnapshot(peerCID, s1) - require.NoError(t, err) + // Banning chunks senders via ban_chunk_senders should work the same for all results + testCases := map[string]struct { + chunks []*chunk + resps []*abci.ResponseApplySnapshotChunk + }{ + "accept": { + chunks: chunks, + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}}}, + { + Result: abci.ResponseApplySnapshotChunk_ACCEPT, + NextChunks: [][]byte{{2}}, + RejectSenders: []string{string(peerBID)}, + }, + {Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, + }, + }, + "abort": { + chunks: chunks, + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}}}, + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{2}}}, + {Result: abci.ResponseApplySnapshotChunk_ABORT, RejectSenders: []string{string(peerBID)}}, + }, + }, + "retry": { + chunks: chunks, + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}, {2}}}, + {Result: abci.ResponseApplySnapshotChunk_ACCEPT}, + {Result: abci.ResponseApplySnapshotChunk_RETRY, RejectSenders: []string{string(peerBID)}}, + {Result: abci.ResponseApplySnapshotChunk_COMPLETE_SNAPSHOT}, + }, + }, + "retry_snapshot": { + chunks: chunks, + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}, {2}}}, + {Result: abci.ResponseApplySnapshotChunk_ACCEPT}, + {Result: abci.ResponseApplySnapshotChunk_RETRY_SNAPSHOT, RejectSenders: []string{string(peerBID)}}, + }, + }, + "reject_snapshot": { + chunks: chunks, + resps: []*abci.ResponseApplySnapshotChunk{ + {Result: abci.ResponseApplySnapshotChunk_ACCEPT, NextChunks: [][]byte{{1}, {2}}}, + {Result: abci.ResponseApplySnapshotChunk_ACCEPT}, + {Result: abci.ResponseApplySnapshotChunk_REJECT_SNAPSHOT, RejectSenders: []string{string(peerBID)}}, + }, + }, + } + ctx, cancel := context.WithCancel(suite.ctx) + defer cancel() - _, err = rts.syncer.AddSnapshot(peerCID, s2) - require.NoError(t, err) + for name, tc := range testCases { + tc := tc + suite.Run(name, func() { + for _, peerSnapshot := range peerSnapshots { + for _, s := range peerSnapshot.snapshot { + _, err := suite.syncer.AddSnapshot(peerSnapshot.peerID, s) + suite.Require().NoError(err) + } + } - chunks, err := newChunkQueue(s1, t.TempDir()) - require.NoError(t, err) + queue, err := newChunkQueue(s1, suite.T().TempDir(), 10) + suite.Require().NoError(err) + queue.Enqueue(tc.chunks[0].ID) fetchStartTime := time.Now() - added, err := chunks.Add(&chunk{Height: 1, Format: 1, Index: 0, Chunk: []byte{0}, Sender: peerAID}) - require.True(t, added) - require.NoError(t, err) - - added, err = chunks.Add(&chunk{Height: 1, Format: 1, Index: 1, Chunk: []byte{1}, Sender: peerBID}) - require.True(t, added) - require.NoError(t, err) - - added, err = chunks.Add(&chunk{Height: 1, Format: 1, Index: 2, Chunk: []byte{2}, Sender: peerCID}) - require.True(t, added) - require.NoError(t, err) - - // The first two chunks are accepted, before the last one asks for b sender to be rejected - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 0, Chunk: []byte{0}, Sender: "aa", - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 1, Chunk: []byte{1}, Sender: "bb", - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 2, Chunk: []byte{2}, Sender: "cc", - }).Once().Return(&abci.ResponseApplySnapshotChunk{ - Result: tc.result, - RejectSenders: []string{string(peerBID)}, - }, nil) - - // On retry, the last chunk will be tried again, so we just accept it then. - if tc.result == abci.ResponseApplySnapshotChunk_RETRY { - rts.conn.On("ApplySnapshotChunk", mock.Anything, &abci.RequestApplySnapshotChunk{ - Index: 2, Chunk: []byte{2}, Sender: "cc", - }).Once().Return(&abci.ResponseApplySnapshotChunk{Result: abci.ResponseApplySnapshotChunk_ACCEPT}, nil) + go func() { + for i := 0; i < len(tc.resps); i++ { + for queue.IsRequestQueueEmpty() { + time.Sleep(10 * time.Millisecond) + } + chunkID, err := queue.Dequeue() + suite.Require().NoError(err) + added, err := queue.Add(chunks[int(chunkID[0])]) + suite.Require().True(added) + suite.Require().NoError(err) + } + }() + + for _, resp := range tc.resps { + suite.conn. + On("ApplySnapshotChunk", mock.Anything, mock.Anything). + Once(). + Return(resp, nil) } // We don't really care about the result of applyChunks, since it has separate test. // However, it will block on e.g. retry result, so we spawn a goroutine that will - // be shut down when the chunk queue closes. - go func() { - rts.syncer.applyChunks(ctx, chunks, fetchStartTime) //nolint:errcheck // purposefully ignore error - }() + // be shut down when the chunk requestQueue closes. - time.Sleep(50 * time.Millisecond) + _ = suite.syncer.applyChunks(ctx, queue, fetchStartTime) - s1peers := rts.syncer.snapshots.GetPeers(s1) - require.Len(t, s1peers, 2) - require.EqualValues(t, "aa", s1peers[0]) - require.EqualValues(t, "cc", s1peers[1]) + s1peers := suite.syncer.snapshots.GetPeers(s1) + suite.Require().Len(s1peers, 2) + suite.Require().EqualValues(peerAID, s1peers[0]) + suite.Require().EqualValues(peerCID, s1peers[1]) - rts.syncer.snapshots.GetPeers(s1) - require.Len(t, s1peers, 2) - require.EqualValues(t, "aa", s1peers[0]) - require.EqualValues(t, "cc", s1peers[1]) + suite.syncer.snapshots.GetPeers(s1) + suite.Require().Len(s1peers, 2) + suite.Require().EqualValues(peerAID, s1peers[0]) + suite.Require().EqualValues(peerCID, s1peers[1]) - require.NoError(t, chunks.Close()) + suite.Require().NoError(queue.Close()) }) } } -func TestSyncer_verifyApp(t *testing.T) { +func (suite *SyncerTestSuite) TestSyncerVerifyApp() { + ctx, cancel := context.WithCancel(suite.ctx) + defer cancel() + boom := errors.New("boom") const appVersion = 9 appVersionMismatchErr := errors.New("app version mismatch. Expected: 9, got: 2") - s := &snapshot{Height: 3, Format: 1, Chunks: 5, Hash: []byte{1, 2, 3}, trustedAppHash: []byte("app_hash")} + s := &snapshot{Height: 3, Version: 1, Hash: []byte{1, 2, 3}, trustedAppHash: []byte("app_hash")} - testcases := map[string]struct { + testCases := map[string]struct { response *abci.ResponseInfo err error expectErr error @@ -760,24 +897,19 @@ func TestSyncer_verifyApp(t *testing.T) { }, nil, errVerifyFailed}, "error": {nil, boom, boom}, } - ctx, cancel := context.WithCancel(context.Background()) - defer cancel() - for name, tc := range testcases { - tc := tc - t.Run(name, func(t *testing.T) { - ctx, cancel := context.WithCancel(ctx) - defer cancel() - - rts := setup(ctx, t, nil, nil, 2) - - rts.conn.On("Info", mock.Anything, &proxy.RequestInfo).Return(tc.response, tc.err) - err := rts.syncer.verifyApp(ctx, s, appVersion) + for name, tc := range testCases { + suite.Run(name, func() { + suite.conn. + On("Info", mock.Anything, &proxy.RequestInfo). + Once(). + Return(tc.response, tc.err) + err := suite.syncer.verifyApp(ctx, s, appVersion) unwrapped := errors.Unwrap(err) if unwrapped != nil { err = unwrapped } - require.Equal(t, tc.expectErr, err) + suite.Require().Equal(tc.expectErr, err) }) } } @@ -785,9 +917,15 @@ func TestSyncer_verifyApp(t *testing.T) { func toABCI(s *snapshot) *abci.Snapshot { return &abci.Snapshot{ Height: s.Height, - Format: s.Format, - Chunks: s.Chunks, + Version: s.Version, Hash: s.Hash, Metadata: s.Metadata, } } + +func makeChannel(ID p2p.ChannelID, name string) (p2p.Channel, chan p2p.Envelope, chan p2p.Envelope, chan p2p.PeerError) { + inCh := make(chan p2p.Envelope, 1) + outCh := make(chan p2p.Envelope, 1) + errCh := make(chan p2p.PeerError, 1) + return p2p.NewChannel(ID, name, inCh, outCh, errCh), inCh, outCh, errCh +} diff --git a/internal/store/store.go b/internal/store/store.go index f023a7ab4..04d3d8ccd 100644 --- a/internal/store/store.go +++ b/internal/store/store.go @@ -10,8 +10,8 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) /* diff --git a/internal/store/store_test.go b/internal/store/store_test.go index 58101f06b..1b03e7ef2 100644 --- a/internal/store/store_test.go +++ b/internal/store/store_test.go @@ -13,16 +13,16 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/test/factory" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/test/factory" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) // make a Commit with a single vote containing just the height and a timestamp diff --git a/internal/test/factory/block.go b/internal/test/factory/block.go index f483df745..13a1f8e8f 100644 --- a/internal/test/factory/block.go +++ b/internal/test/factory/block.go @@ -6,9 +6,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) const ( diff --git a/internal/test/factory/commit.go b/internal/test/factory/commit.go index 720b8e824..80c52ea7e 100644 --- a/internal/test/factory/commit.go +++ b/internal/test/factory/commit.go @@ -3,8 +3,8 @@ package factory import ( "context" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func MakeCommit( diff --git a/internal/test/factory/factory_test.go b/internal/test/factory/factory_test.go index 6cdc2aed9..aa2196418 100644 --- a/internal/test/factory/factory_test.go +++ b/internal/test/factory/factory_test.go @@ -3,7 +3,7 @@ package factory import ( "testing" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestMakeHeader(t *testing.T) { diff --git a/internal/test/factory/genesis.go b/internal/test/factory/genesis.go index d57522ce9..899c65416 100644 --- a/internal/test/factory/genesis.go +++ b/internal/test/factory/genesis.go @@ -3,10 +3,10 @@ package factory import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/bytes" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/bytes" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/types" ) // MinimalGenesisDoc generates a minimal working genesis doc. diff --git a/internal/test/factory/p2p.go b/internal/test/factory/p2p.go index e2edcba6a..ed5afba6b 100644 --- a/internal/test/factory/p2p.go +++ b/internal/test/factory/p2p.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" ) // NodeID returns a valid NodeID based on an inputted string diff --git a/internal/test/factory/params.go b/internal/test/factory/params.go index 1dda2b409..dcbe137a2 100644 --- a/internal/test/factory/params.go +++ b/internal/test/factory/params.go @@ -3,7 +3,7 @@ package factory import ( "time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // ConsensusParams returns a default set of ConsensusParams that are suitable diff --git a/internal/test/factory/tx.go b/internal/test/factory/tx.go index a252222f4..c54431244 100644 --- a/internal/test/factory/tx.go +++ b/internal/test/factory/tx.go @@ -1,8 +1,8 @@ package factory import ( - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/types" ) func MakeNTxs(height, n int64) types.Txs { diff --git a/internal/test/factory/validator_set.go b/internal/test/factory/validator_set.go index 710723a0a..45ccddcd6 100644 --- a/internal/test/factory/validator_set.go +++ b/internal/test/factory/validator_set.go @@ -3,10 +3,10 @@ package factory import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // MockValidatorSet returns static validator set with 2 validators and 2 private keys diff --git a/internal/test/factory/vote.go b/internal/test/factory/vote.go index b4f69fe84..40c0a33c4 100644 --- a/internal/test/factory/vote.go +++ b/internal/test/factory/vote.go @@ -3,8 +3,8 @@ package factory import ( "context" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func MakeVote( diff --git a/libs/bits/bit_array.go b/libs/bits/bit_array.go index 442aae750..5083a36d5 100644 --- a/libs/bits/bit_array.go +++ b/libs/bits/bit_array.go @@ -11,8 +11,8 @@ import ( sync "github.com/sasha-s/go-deadlock" - tmmath "github.com/tendermint/tendermint/libs/math" - tmprotobits "github.com/tendermint/tendermint/proto/tendermint/libs/bits" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmprotobits "github.com/dashpay/tenderdash/proto/tendermint/libs/bits" ) // BitArray is a thread-safe implementation of a bit array. diff --git a/libs/bits/bit_array_test.go b/libs/bits/bit_array_test.go index e4bf45c38..fb7af5dd1 100644 --- a/libs/bits/bit_array_test.go +++ b/libs/bits/bit_array_test.go @@ -9,8 +9,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmprotobits "github.com/tendermint/tendermint/proto/tendermint/libs/bits" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmprotobits "github.com/dashpay/tenderdash/proto/tendermint/libs/bits" ) func randBitArray(bits int) *BitArray { diff --git a/libs/ds/ordered_map.go b/libs/ds/ordered_map.go new file mode 100644 index 000000000..99e471c06 --- /dev/null +++ b/libs/ds/ordered_map.go @@ -0,0 +1,81 @@ +package ds + +// OrderedMap is a map with a deterministic iteration order +// this datastructure is not thread-safe +type OrderedMap[T comparable, V any] struct { + len int + keys map[T]int + values []V +} + +// NewOrderedMap returns a new OrderedMap +func NewOrderedMap[T comparable, V any]() *OrderedMap[T, V] { + return &OrderedMap[T, V]{ + keys: make(map[T]int), + } +} + +// Put adds a key-value pair to the map +func (m *OrderedMap[T, V]) Put(key T, val V) { + i, ok := m.keys[key] + if ok { + m.values[i] = val + return + } + m.keys[key] = m.len + if len(m.values) == m.len { + m.values = append(m.values, val) + } else { + m.values[m.len] = val + } + m.len++ +} + +// Get returns the value for a given key +func (m *OrderedMap[T, V]) Get(key T) (V, bool) { + i, ok := m.keys[key] + if !ok { + var v V + return v, false + } + return m.values[i], true +} + +// Has returns true if the map contains the given key +func (m *OrderedMap[T, V]) Has(key T) bool { + _, ok := m.keys[key] + return ok +} + +// Delete removes a key-value pair from the map +func (m *OrderedMap[T, V]) Delete(key T) { + i, ok := m.keys[key] + if !ok { + return + } + i++ + for ; i < len(m.values); i++ { + m.values[i-1] = m.values[i] + } + delete(m.keys, key) + m.len-- +} + +// Values returns all values in the map +func (m *OrderedMap[T, V]) Values() []V { + return append([]V{}, m.values[0:m.len]...) +} + +// Keys returns all keys in the map +func (m *OrderedMap[T, V]) Keys() []T { + keys := make([]T, len(m.keys)) + for k, v := range m.keys { + keys[v] = k + } + return keys +} + +// Len returns a number of the map +func (m *OrderedMap[T, V]) Len() int { + return m.len +} diff --git a/libs/ds/ordered_map_test.go b/libs/ds/ordered_map_test.go new file mode 100644 index 000000000..15a96f025 --- /dev/null +++ b/libs/ds/ordered_map_test.go @@ -0,0 +1,42 @@ +package ds + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestOrderedMap(t *testing.T) { + om := NewOrderedMap[string, int]() + require.Equal(t, 0, om.Len()) + _, ok := om.Get("a") + require.False(t, ok) + require.False(t, om.Has("a")) + om.Put("a", 1) + require.True(t, om.Has("a")) + require.Equal(t, 1, om.Len()) + val, ok := om.Get("a") + require.Equal(t, 1, val) + require.True(t, ok) + require.Equal(t, 1, om.Len()) + om.Put("a", 2) + val, ok = om.Get("a") + require.Equal(t, 2, val) + require.True(t, ok) + require.Equal(t, 1, om.Len()) + om.Put("b", 3) + val, ok = om.Get("b") + require.Equal(t, 3, val) + require.True(t, ok) + require.Equal(t, 2, om.Len()) + + require.Equal(t, []int{2, 3}, om.Values()) + require.Equal(t, []string{"a", "b"}, om.Keys()) + + om.Delete("b") + require.Equal(t, []int{2}, om.Values()) + require.Equal(t, []string{"a"}, om.Keys()) + + // delete unknown key + om.Delete("c") +} diff --git a/libs/eventemitter/emitter.go b/libs/eventemitter/emitter.go index 263bb7234..3cd147622 100644 --- a/libs/eventemitter/emitter.go +++ b/libs/eventemitter/emitter.go @@ -3,7 +3,7 @@ package eventemitter import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) // ListenerFunc is a type function of an event listener diff --git a/libs/log/default_test.go b/libs/log/default_test.go index 6ea723c51..5d828a544 100644 --- a/libs/log/default_test.go +++ b/libs/log/default_test.go @@ -5,7 +5,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) func TestNewDefaultLogger(t *testing.T) { diff --git a/libs/os/os_test.go b/libs/os/os_test.go index ca7050156..28bf73ce9 100644 --- a/libs/os/os_test.go +++ b/libs/os/os_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/require" - tmos "github.com/tendermint/tendermint/libs/os" + tmos "github.com/dashpay/tenderdash/libs/os" ) func TestCopyFile(t *testing.T) { diff --git a/libs/promise/promise_test.go b/libs/promise/promise_test.go index 907e8d292..2062c06c0 100644 --- a/libs/promise/promise_test.go +++ b/libs/promise/promise_test.go @@ -9,7 +9,7 @@ import ( sync "github.com/sasha-s/go-deadlock" "github.com/stretchr/testify/require" - tmrequire "github.com/tendermint/tendermint/internal/test/require" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" ) func TestPromise(t *testing.T) { diff --git a/libs/service/service.go b/libs/service/service.go index 431cafe06..43d2fa313 100644 --- a/libs/service/service.go +++ b/libs/service/service.go @@ -6,7 +6,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) var ( diff --git a/libs/service/service_test.go b/libs/service/service_test.go index 9c8c18c7f..548b8861b 100644 --- a/libs/service/service_test.go +++ b/libs/service/service_test.go @@ -11,7 +11,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) type testService struct { diff --git a/libs/store/mocks/store.go b/libs/store/mocks/store.go new file mode 100644 index 000000000..aa0d3779b --- /dev/null +++ b/libs/store/mocks/store.go @@ -0,0 +1,157 @@ +// Code generated by mockery. DO NOT EDIT. + +package mocks + +import ( + store "github.com/dashpay/tenderdash/libs/store" + mock "github.com/stretchr/testify/mock" +) + +// Store is an autogenerated mock type for the Store type +type Store[K comparable, V interface{}] struct { + mock.Mock +} + +// All provides a mock function with given fields: +func (_m *Store[K, V]) All() []V { + ret := _m.Called() + + var r0 []V + if rf, ok := ret.Get(0).(func() []V); ok { + r0 = rf() + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]V) + } + } + + return r0 +} + +// Delete provides a mock function with given fields: key +func (_m *Store[K, V]) Delete(key K) { + _m.Called(key) +} + +// Get provides a mock function with given fields: key +func (_m *Store[K, V]) Get(key K) (V, bool) { + ret := _m.Called(key) + + var r0 V + var r1 bool + if rf, ok := ret.Get(0).(func(K) (V, bool)); ok { + return rf(key) + } + if rf, ok := ret.Get(0).(func(K) V); ok { + r0 = rf(key) + } else { + r0 = ret.Get(0).(V) + } + + if rf, ok := ret.Get(1).(func(K) bool); ok { + r1 = rf(key) + } else { + r1 = ret.Get(1).(bool) + } + + return r0, r1 +} + +// GetAndDelete provides a mock function with given fields: key +func (_m *Store[K, V]) GetAndDelete(key K) (V, bool) { + ret := _m.Called(key) + + var r0 V + var r1 bool + if rf, ok := ret.Get(0).(func(K) (V, bool)); ok { + return rf(key) + } + if rf, ok := ret.Get(0).(func(K) V); ok { + r0 = rf(key) + } else { + r0 = ret.Get(0).(V) + } + + if rf, ok := ret.Get(1).(func(K) bool); ok { + r1 = rf(key) + } else { + r1 = ret.Get(1).(bool) + } + + return r0, r1 +} + +// IsZero provides a mock function with given fields: +func (_m *Store[K, V]) IsZero() bool { + ret := _m.Called() + + var r0 bool + if rf, ok := ret.Get(0).(func() bool); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(bool) + } + + return r0 +} + +// Len provides a mock function with given fields: +func (_m *Store[K, V]) Len() int { + ret := _m.Called() + + var r0 int + if rf, ok := ret.Get(0).(func() int); ok { + r0 = rf() + } else { + r0 = ret.Get(0).(int) + } + + return r0 +} + +// Put provides a mock function with given fields: key, data +func (_m *Store[K, V]) Put(key K, data V) { + _m.Called(key, data) +} + +// Query provides a mock function with given fields: spec, limit +func (_m *Store[K, V]) Query(spec store.QueryFunc[K, V], limit int) []V { + ret := _m.Called(spec, limit) + + var r0 []V + if rf, ok := ret.Get(0).(func(store.QueryFunc[K, V], int) []V); ok { + r0 = rf(spec, limit) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).([]V) + } + } + + return r0 +} + +// Update provides a mock function with given fields: key, updates +func (_m *Store[K, V]) Update(key K, updates ...store.UpdateFunc[K, V]) { + _va := make([]interface{}, len(updates)) + for _i := range updates { + _va[_i] = updates[_i] + } + var _ca []interface{} + _ca = append(_ca, key) + _ca = append(_ca, _va...) + _m.Called(_ca...) +} + +// NewStore creates a new instance of Store. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewStore[K comparable, V interface{}](t interface { + mock.TestingT + Cleanup(func()) +}) *Store[K, V] { + mock := &Store[K, V]{} + mock.Mock.Test(t) + + t.Cleanup(func() { mock.AssertExpectations(t) }) + + return mock +} diff --git a/libs/store/store.go b/libs/store/store.go new file mode 100644 index 000000000..d57d7d236 --- /dev/null +++ b/libs/store/store.go @@ -0,0 +1,140 @@ +//go:generate ../../scripts/mockery_generate.sh Store + +package store + +import ( + "github.com/dashpay/tenderdash/libs/ds" + sync "github.com/sasha-s/go-deadlock" +) + +type ( + Store[K comparable, V any] interface { + Get(key K) (V, bool) + GetAndDelete(key K) (V, bool) + Put(key K, data V) + Delete(key K) + Update(key K, updates ...UpdateFunc[K, V]) + Query(spec QueryFunc[K, V], limit int) []V + All() []V + Len() int + IsZero() bool + } + // QueryFunc is a function type for a specification function + QueryFunc[K comparable, V any] func(key K, data V) bool + // UpdateFunc is a function type for an item update functions + UpdateFunc[K comparable, V any] func(key K, item *V) + // InMemStore in-memory peer store + InMemStore[K comparable, T any] struct { + mtx sync.RWMutex + items *ds.OrderedMap[K, T] + } +) + +// NewInMemStore creates a new in-memory peer store +func NewInMemStore[K comparable, V any]() *InMemStore[K, V] { + mem := &InMemStore[K, V]{ + items: ds.NewOrderedMap[K, V](), + } + return mem +} + +// Get returns peer's data and true if the peer is found otherwise empty structure and false +func (p *InMemStore[K, T]) Get(key K) (T, bool) { + p.mtx.RLock() + defer p.mtx.RUnlock() + return p.items.Get(key) +} + +// GetAndDelete combines Get operation and Delete in one call +func (p *InMemStore[K, T]) GetAndDelete(key K) (T, bool) { + p.mtx.Lock() + defer p.mtx.Unlock() + val, found := p.items.Get(key) + if found { + p.items.Delete(key) + return val, true + } + var zero T + return zero, found +} + +// Put adds the peer data to the store if the peer does not exist, otherwise update the current value +func (p *InMemStore[K, T]) Put(key K, data T) { + p.mtx.Lock() + defer p.mtx.Unlock() + p.items.Put(key, data) +} + +// Delete removes the peer data from the store +func (p *InMemStore[K, T]) Delete(key K) { + p.mtx.Lock() + defer p.mtx.Unlock() + p.items.Delete(key) +} + +// Update applies update functions to the peer if it exists +func (p *InMemStore[K, T]) Update(key K, updates ...UpdateFunc[K, T]) { + p.mtx.Lock() + defer p.mtx.Unlock() + val, found := p.items.Get(key) + if !found { + return + } + for _, update := range updates { + update(key, &val) + } + p.items.Put(key, val) +} + +// Query finds and returns the copy of values by specification conditions +func (p *InMemStore[K, T]) Query(spec QueryFunc[K, T], limit int) []T { + p.mtx.RLock() + defer p.mtx.RUnlock() + return p.query(spec, limit) +} + +// All returns all stored values in the store +func (p *InMemStore[K, T]) All() []T { + p.mtx.RLock() + defer p.mtx.RUnlock() + return p.items.Values() +} + +// Len returns the count of all stored values +func (p *InMemStore[K, T]) Len() int { + p.mtx.RLock() + defer p.mtx.RUnlock() + return p.items.Len() +} + +// IsZero returns true if the store doesn't have a peer yet otherwise false +func (p *InMemStore[K, T]) IsZero() bool { + return p.Len() == 0 +} + +func (p *InMemStore[K, T]) query(spec QueryFunc[K, T], limit int) []T { + var res []T + keys := p.items.Keys() + vals := p.items.Values() + for i := 0; i < len(keys); i++ { + if spec(keys[i], vals[i]) { + res = append(res, vals[i]) + if limit > 0 && limit == len(res) { + return res + } + } + } + return res +} + +// AndX combines multiple specification functions into one +func AndX[K comparable, V any](specs ...QueryFunc[K, V]) QueryFunc[K, V] { + return func(k K, v V) bool { + for _, spec := range specs { + if !spec(k, v) { + return false + } + } + return true + } +} diff --git a/libs/store/store_test.go b/libs/store/store_test.go new file mode 100644 index 000000000..47db3cbf6 --- /dev/null +++ b/libs/store/store_test.go @@ -0,0 +1,61 @@ +package store + +import ( + "testing" + + "github.com/stretchr/testify/require" +) + +func TestInMemStore(t *testing.T) { + type pair struct { + key string + val int + } + store := NewInMemStore[string, int]() + require.True(t, store.IsZero()) + pairs := []pair{{"key1", 1}, {"key2", 2}, {"key3", 3}} + for _, p := range pairs { + store.Put(p.key, p.val) + } + for _, p := range pairs { + val, ok := store.Get(p.key) + require.True(t, ok) + require.Equal(t, p.val, val) + } + require.Equal(t, 3, store.Len()) + require.False(t, store.IsZero()) + require.Equal(t, []int{1, 2, 3}, store.All()) + // Query test + { + vals := store.Query(func(key string, val int) bool { + return val > 1 + }, 0) + require.Equal(t, []int{2, 3}, vals) + } + // GetAndDelete test + { + val, ok := store.GetAndDelete(pairs[0].key) + require.True(t, ok) + require.Equal(t, pairs[0].val, val) + _, ok = store.Get(pairs[0].key) + require.False(t, ok) + _, ok = store.GetAndDelete(pairs[0].key) + require.False(t, ok) + } + // Delete test + { + store.Delete(pairs[1].key) + _, ok := store.Get(pairs[1].key) + require.False(t, ok) + } + // Update test + { + updateFun := func(key string, it *int) { + *it++ + } + store.Update(pairs[2].key, updateFun) + val, ok := store.Get(pairs[2].key) + require.True(t, ok) + require.Equal(t, pairs[2].val+1, val) + } +} diff --git a/libs/time/time.go b/libs/time/time.go index 786f9bbb4..7a90b7a0c 100644 --- a/libs/time/time.go +++ b/libs/time/time.go @@ -13,5 +13,5 @@ func Now() time.Time { // Stripping the monotonic component is for time equality. // See https://github.com/tendermint/tendermint/pull/2203#discussion_r215064334 func Canonical(t time.Time) time.Time { - return t.Round(0).UTC() + return t.Truncate(time.Millisecond).UTC() } diff --git a/libs/workerpool/worker.go b/libs/workerpool/worker.go index f304cc4de..c706deaa1 100644 --- a/libs/workerpool/worker.go +++ b/libs/workerpool/worker.go @@ -3,7 +3,7 @@ package workerpool import ( "context" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) type worker struct { diff --git a/libs/workerpool/worker_pool.go b/libs/workerpool/worker_pool.go index bbe3b1ea9..97312ab77 100644 --- a/libs/workerpool/worker_pool.go +++ b/libs/workerpool/worker_pool.go @@ -7,7 +7,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/log" + "github.com/dashpay/tenderdash/libs/log" ) var ( diff --git a/libs/workerpool/worker_pool_test.go b/libs/workerpool/worker_pool_test.go index ee3b9e337..62dbe1664 100644 --- a/libs/workerpool/worker_pool_test.go +++ b/libs/workerpool/worker_pool_test.go @@ -10,7 +10,7 @@ import ( sync "github.com/sasha-s/go-deadlock" "github.com/stretchr/testify/require" - tmrequire "github.com/tendermint/tendermint/internal/test/require" + tmrequire "github.com/dashpay/tenderdash/internal/test/require" ) func TestWorkerPool_Basic(t *testing.T) { diff --git a/light/client.go b/light/client.go index e37da257f..d31157f51 100644 --- a/light/client.go +++ b/light/client.go @@ -10,13 +10,13 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/crypto" - dashcore "github.com/tendermint/tendermint/dash/core" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light/provider" - "github.com/tendermint/tendermint/light/store" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + dashcore "github.com/dashpay/tenderdash/dash/core" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light/provider" + "github.com/dashpay/tenderdash/light/store" + "github.com/dashpay/tenderdash/types" ) type mode byte diff --git a/light/client_benchmark_test.go b/light/client_benchmark_test.go index e05f943e3..d4fbf86fc 100644 --- a/light/client_benchmark_test.go +++ b/light/client_benchmark_test.go @@ -8,12 +8,12 @@ import ( dbm "github.com/tendermint/tm-db" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - "github.com/tendermint/tendermint/light/provider" - dbs "github.com/tendermint/tendermint/light/store/db" - "github.com/tendermint/tendermint/types" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + "github.com/dashpay/tenderdash/light/provider" + dbs "github.com/dashpay/tenderdash/light/store/db" + "github.com/dashpay/tenderdash/types" ) // NOTE: block is produced every minute. Make sure the verification time diff --git a/light/client_test.go b/light/client_test.go index 852c9cbbb..34daf19e0 100644 --- a/light/client_test.go +++ b/light/client_test.go @@ -14,13 +14,13 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - "github.com/tendermint/tendermint/light/provider" - provider_mocks "github.com/tendermint/tendermint/light/provider/mocks" - dbs "github.com/tendermint/tendermint/light/store/db" - "github.com/tendermint/tendermint/types" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + "github.com/dashpay/tenderdash/light/provider" + provider_mocks "github.com/dashpay/tenderdash/light/provider/mocks" + dbs "github.com/dashpay/tenderdash/light/store/db" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/light/detector.go b/light/detector.go index 78d148b74..e5464be9d 100644 --- a/light/detector.go +++ b/light/detector.go @@ -6,8 +6,8 @@ import ( "errors" "time" - "github.com/tendermint/tendermint/light/provider" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/light/provider" + "github.com/dashpay/tenderdash/types" ) // compareNewHeaderWithWitness takes the verified header from the primary and compares it with a diff --git a/light/errors.go b/light/errors.go index 8ceed4b76..a1465e647 100644 --- a/light/errors.go +++ b/light/errors.go @@ -5,7 +5,7 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // ErrOldHeaderExpired means the old (trusted) header has expired according to diff --git a/light/example_test.go b/light/example_test.go index ae452f1c7..55e9a3316 100644 --- a/light/example_test.go +++ b/light/example_test.go @@ -9,15 +9,14 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/privval" - - "github.com/tendermint/tendermint/abci/example/kvstore" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - httpp "github.com/tendermint/tendermint/light/provider/http" - dbs "github.com/tendermint/tendermint/light/store/db" - rpctest "github.com/tendermint/tendermint/rpc/test" + "github.com/dashpay/tenderdash/abci/example/kvstore" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + httpp "github.com/dashpay/tenderdash/light/provider/http" + dbs "github.com/dashpay/tenderdash/light/store/db" + "github.com/dashpay/tenderdash/privval" + rpctest "github.com/dashpay/tenderdash/rpc/test" ) // Manually getting light blocks and verifying them. diff --git a/light/helpers_test.go b/light/helpers_test.go index 2d703c213..4b68cfc95 100644 --- a/light/helpers_test.go +++ b/light/helpers_test.go @@ -8,11 +8,11 @@ import ( "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - provider_mocks "github.com/tendermint/tendermint/light/provider/mocks" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto" + provider_mocks "github.com/dashpay/tenderdash/light/provider/mocks" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) // privKeys is a helper type for testing. diff --git a/light/light_test.go b/light/light_test.go index a906a9582..e54a220a1 100644 --- a/light/light_test.go +++ b/light/light_test.go @@ -10,16 +10,16 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/abci/example/kvstore" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - "github.com/tendermint/tendermint/light/provider" - httpp "github.com/tendermint/tendermint/light/provider/http" - dbs "github.com/tendermint/tendermint/light/store/db" - "github.com/tendermint/tendermint/privval" - rpctest "github.com/tendermint/tendermint/rpc/test" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + "github.com/dashpay/tenderdash/light/provider" + httpp "github.com/dashpay/tenderdash/light/provider/http" + dbs "github.com/dashpay/tenderdash/light/store/db" + "github.com/dashpay/tenderdash/privval" + rpctest "github.com/dashpay/tenderdash/rpc/test" + "github.com/dashpay/tenderdash/types" ) // NOTE: these are ports of the tests from example_test.go but diff --git a/light/provider/http/http.go b/light/provider/http/http.go index f65262b42..546d2334d 100644 --- a/light/provider/http/http.go +++ b/light/provider/http/http.go @@ -11,14 +11,13 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - - "github.com/tendermint/tendermint/light/provider" - rpcclient "github.com/tendermint/tendermint/rpc/client" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - "github.com/tendermint/tendermint/rpc/coretypes" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/light/provider" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/types" ) var defaultOptions = Options{ diff --git a/light/provider/http/http_test.go b/light/provider/http/http_test.go index fc6927490..a62c52444 100644 --- a/light/provider/http/http_test.go +++ b/light/provider/http/http_test.go @@ -10,15 +10,15 @@ import ( testify "github.com/stretchr/testify/mock" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/light/provider" - lighthttp "github.com/tendermint/tendermint/light/provider/http" - rpcclient "github.com/tendermint/tendermint/rpc/client" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - rpcmock "github.com/tendermint/tendermint/rpc/client/mocks" - "github.com/tendermint/tendermint/rpc/coretypes" - rpctest "github.com/tendermint/tendermint/rpc/test" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/light/provider" + lighthttp "github.com/dashpay/tenderdash/light/provider/http" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + rpcmock "github.com/dashpay/tenderdash/rpc/client/mocks" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpctest "github.com/dashpay/tenderdash/rpc/test" + "github.com/dashpay/tenderdash/types" ) func TestNewProvider(t *testing.T) { diff --git a/light/provider/mocks/provider.go b/light/provider/mocks/provider.go index dd6a7487a..93042ab3d 100644 --- a/light/provider/mocks/provider.go +++ b/light/provider/mocks/provider.go @@ -7,7 +7,7 @@ import ( mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // Provider is an autogenerated mock type for the Provider type @@ -69,13 +69,12 @@ func (_m *Provider) ReportEvidence(_a0 context.Context, _a1 types.Evidence) erro return r0 } -type mockConstructorTestingTNewProvider interface { +// NewProvider creates a new instance of Provider. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewProvider(t interface { mock.TestingT Cleanup(func()) -} - -// NewProvider creates a new instance of Provider. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewProvider(t mockConstructorTestingTNewProvider) *Provider { +}) *Provider { mock := &Provider{} mock.Mock.Test(t) diff --git a/light/provider/provider.go b/light/provider/provider.go index d1b3304da..31204f6a4 100644 --- a/light/provider/provider.go +++ b/light/provider/provider.go @@ -3,7 +3,7 @@ package provider import ( "context" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) //go:generate ../../scripts/mockery_generate.sh Provider diff --git a/light/proxy/proxy.go b/light/proxy/proxy.go index 6e7a5ff2a..bea109e49 100644 --- a/light/proxy/proxy.go +++ b/light/proxy/proxy.go @@ -6,13 +6,13 @@ import ( "net" "net/http" - tmpubsub "github.com/tendermint/tendermint/internal/pubsub" - rpccore "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/light" - lrpc "github.com/tendermint/tendermint/light/rpc" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" + tmpubsub "github.com/dashpay/tenderdash/internal/pubsub" + rpccore "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/light" + lrpc "github.com/dashpay/tenderdash/light/rpc" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + rpcserver "github.com/dashpay/tenderdash/rpc/jsonrpc/server" ) // A Proxy defines parameters for running an HTTP server proxy. diff --git a/light/proxy/routes.go b/light/proxy/routes.go index df8b5f9db..e00091dc7 100644 --- a/light/proxy/routes.go +++ b/light/proxy/routes.go @@ -3,9 +3,9 @@ package proxy import ( "context" - lrpc "github.com/tendermint/tendermint/light/rpc" - rpcclient "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" + lrpc "github.com/dashpay/tenderdash/light/rpc" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // proxyService wraps a light RPC client to export the RPC service interfaces. diff --git a/light/rpc/client.go b/light/rpc/client.go index 9c6df91bf..af282d6fa 100644 --- a/light/rpc/client.go +++ b/light/rpc/client.go @@ -10,19 +10,18 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/libs" - - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmmath "github.com/tendermint/tendermint/libs/math" - service "github.com/tendermint/tendermint/libs/service" - rpcclient "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/libs" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmmath "github.com/dashpay/tenderdash/libs/math" + service "github.com/dashpay/tenderdash/libs/service" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/types" ) // KeyPathFunc builds a merkle path out of the given path and key. diff --git a/light/rpc/mocks/light_client.go b/light/rpc/mocks/light_client.go index 117df9f2b..deb22f7d2 100644 --- a/light/rpc/mocks/light_client.go +++ b/light/rpc/mocks/light_client.go @@ -9,7 +9,7 @@ import ( time "time" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // LightClient is an autogenerated mock type for the LightClient type @@ -125,13 +125,12 @@ func (_m *LightClient) VerifyLightBlockAtHeight(ctx context.Context, height int6 return r0, r1 } -type mockConstructorTestingTNewLightClient interface { +// NewLightClient creates a new instance of LightClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewLightClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewLightClient creates a new instance of LightClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewLightClient(t mockConstructorTestingTNewLightClient) *LightClient { +}) *LightClient { mock := &LightClient{} mock.Mock.Test(t) diff --git a/light/setup.go b/light/setup.go index a6c3e6703..9733802e0 100644 --- a/light/setup.go +++ b/light/setup.go @@ -3,10 +3,10 @@ package light import ( "context" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/light/provider" - "github.com/tendermint/tendermint/light/provider/http" - "github.com/tendermint/tendermint/light/store" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/light/provider" + "github.com/dashpay/tenderdash/light/provider/http" + "github.com/dashpay/tenderdash/light/store" ) // NewHTTPClient initiates an instance of a light client using HTTP addresses diff --git a/light/store/db/db.go b/light/store/db/db.go index c72898f14..30b3a5002 100644 --- a/light/store/db/db.go +++ b/light/store/db/db.go @@ -9,9 +9,9 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/light/store" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/light/store" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // key prefixes diff --git a/light/store/db/db_test.go b/light/store/db/db_test.go index e1d8c8be2..a0742c5af 100644 --- a/light/store/db/db_test.go +++ b/light/store/db/db_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/crypto" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" ) func TestLast_FirstLightBlockHeight(t *testing.T) { diff --git a/light/store/store.go b/light/store/store.go index a4991f0cc..019e255ff 100644 --- a/light/store/store.go +++ b/light/store/store.go @@ -1,6 +1,6 @@ package store -import "github.com/tendermint/tendermint/types" +import "github.com/dashpay/tenderdash/types" // Store is anything that can persistently store headers. type Store interface { diff --git a/node/node.go b/node/node.go index 225778176..b46ec76b0 100644 --- a/node/node.go +++ b/node/node.go @@ -9,35 +9,35 @@ import ( "strings" "time" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash" - "github.com/tendermint/tendermint/dash/core" - dashquorum "github.com/tendermint/tendermint/dash/quorum" - "github.com/tendermint/tendermint/internal/blocksync" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/eventlog" - "github.com/tendermint/tendermint/internal/evidence" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/p2p" - p2pclient "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/internal/p2p/pex" - "github.com/tendermint/tendermint/internal/proxy" - rpccore "github.com/tendermint/tendermint/internal/rpc/core" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/indexer/sink" - "github.com/tendermint/tendermint/internal/statesync" - "github.com/tendermint/tendermint/internal/store" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash" + "github.com/dashpay/tenderdash/dash/core" + dashquorum "github.com/dashpay/tenderdash/dash/quorum" + "github.com/dashpay/tenderdash/internal/blocksync" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/eventlog" + "github.com/dashpay/tenderdash/internal/evidence" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/p2p" + p2pclient "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/internal/p2p/pex" + "github.com/dashpay/tenderdash/internal/proxy" + rpccore "github.com/dashpay/tenderdash/internal/rpc/core" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/indexer/sink" + "github.com/dashpay/tenderdash/internal/statesync" + "github.com/dashpay/tenderdash/internal/store" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/types" _ "net/http/pprof" //nolint: gosec // securely exposed on separate, optional port @@ -410,7 +410,7 @@ func makeNode( // Set up state sync reactor, and schedule a sync if requested. // FIXME The way we do phased startups (e.g. replay -> block sync -> consensus) is very messy, // we should clean this whole thing up. See: - // https://github.com/tendermint/tendermint/issues/4644 + // https://github.com/dashpay/tenderdash/issues/4644 node.services = append(node.services, statesync.NewReactor( genDoc.ChainID, genDoc.InitialHeight, diff --git a/node/node_test.go b/node/node_test.go index 9c6930b2d..4376202e4 100644 --- a/node/node_test.go +++ b/node/node_test.go @@ -15,29 +15,29 @@ import ( "github.com/stretchr/testify/require" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/dash/quorum" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/evidence" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/internal/pubsub" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/state/indexer/sink" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/internal/test/factory" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/libs/service" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/privval" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/dash/quorum" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/evidence" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/internal/pubsub" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/state/indexer/sink" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/internal/test/factory" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/libs/service" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/types" ) func TestNodeStartStop(t *testing.T) { diff --git a/node/public.go b/node/public.go index 66b749270..db1b80530 100644 --- a/node/public.go +++ b/node/public.go @@ -5,11 +5,11 @@ import ( "context" "fmt" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/types" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/types" ) // NewDefault constructs a tendermint node service for use in go diff --git a/node/seed.go b/node/seed.go index e0023c9c5..9142fedee 100644 --- a/node/seed.go +++ b/node/seed.go @@ -7,14 +7,14 @@ import ( "strings" "time" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/pex" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - tmtime "github.com/tendermint/tendermint/libs/time" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/pex" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/types" ) type seedNodeImpl struct { diff --git a/node/setup.go b/node/setup.go index aba51f7a8..f78d8f4f4 100644 --- a/node/setup.go +++ b/node/setup.go @@ -12,30 +12,30 @@ import ( "github.com/prometheus/client_golang/prometheus/promhttp" dbm "github.com/tendermint/tm-db" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/evidence" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/internal/p2p/client" - "github.com/tendermint/tendermint/internal/p2p/conn" - "github.com/tendermint/tendermint/internal/p2p/pex" - sm "github.com/tendermint/tendermint/internal/state" - "github.com/tendermint/tendermint/internal/state/indexer" - "github.com/tendermint/tendermint/internal/statesync" - "github.com/tendermint/tendermint/internal/store" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/privval" - tmgrpc "github.com/tendermint/tendermint/privval/grpc" - "github.com/tendermint/tendermint/types" - "github.com/tendermint/tendermint/version" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/evidence" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/internal/p2p/client" + "github.com/dashpay/tenderdash/internal/p2p/conn" + "github.com/dashpay/tenderdash/internal/p2p/pex" + sm "github.com/dashpay/tenderdash/internal/state" + "github.com/dashpay/tenderdash/internal/state/indexer" + "github.com/dashpay/tenderdash/internal/statesync" + "github.com/dashpay/tenderdash/internal/store" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/privval" + tmgrpc "github.com/dashpay/tenderdash/privval/grpc" + "github.com/dashpay/tenderdash/types" + "github.com/dashpay/tenderdash/version" "net/http" _ "net/http/pprof" //nolint: gosec // securely exposed on separate, optional port @@ -537,6 +537,13 @@ func createPrivval(ctx context.Context, logger log.Logger, conf *config.Config, return nil, fmt.Errorf("failed to create Dash Core RPC client: %w", err) } + logger.Info("Waiting for Dash Core RPC Client to be ready") + err = dashcore.WaitForMNReady(dashCoreRPCClient, time.Second) + if err != nil { + return nil, fmt.Errorf("failed to wait for masternode status 'ready': %w", err) + } + logger.Info("Dash Core RPC Client is ready") + // If a local port is provided for Dash Core rpc into the service to sign. privValidator, err := createAndStartPrivValidatorDashCoreClient( genDoc.QuorumType, diff --git a/privval/dash_consensus_key.go b/privval/dash_consensus_key.go index 96a1a5ba2..5eb6a909d 100644 --- a/privval/dash_consensus_key.go +++ b/privval/dash_consensus_key.go @@ -8,8 +8,8 @@ import ( "github.com/dashpay/dashd-go/btcjson" - tmcrypto "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + tmcrypto "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) type dashConsensusPrivateKey struct { diff --git a/privval/dash_core_mock_signer_server.go b/privval/dash_core_mock_signer_server.go index 4ba7c51d0..a096320df 100644 --- a/privval/dash_core_mock_signer_server.go +++ b/privval/dash_core_mock_signer_server.go @@ -3,8 +3,8 @@ package privval import ( "github.com/go-pkgz/jrpc" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/types" ) type DashCoreMockSignerServer struct { diff --git a/privval/dash_core_signer_client.go b/privval/dash_core_signer_client.go index 8a5627f43..56185952b 100644 --- a/privval/dash_core_signer_client.go +++ b/privval/dash_core_signer_client.go @@ -9,13 +9,13 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - dashcore "github.com/tendermint/tendermint/dash/core" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + dashcore "github.com/dashpay/tenderdash/dash/core" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // DashPrivValidator is a PrivValidator that uses Dash-specific logic diff --git a/privval/file.go b/privval/file.go index 9842328ac..3f6492841 100644 --- a/privval/file.go +++ b/privval/file.go @@ -10,19 +10,18 @@ import ( "os" "strconv" - sync "github.com/sasha-s/go-deadlock" - "github.com/dashpay/dashd-go/btcjson" + sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/internal/libs/tempfile" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmos "github.com/tendermint/tendermint/libs/os" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/internal/libs/tempfile" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmos "github.com/dashpay/tenderdash/libs/os" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // TODO: type ? diff --git a/privval/file_test.go b/privval/file_test.go index 257be0af0..2a89fa192 100644 --- a/privval/file_test.go +++ b/privval/file_test.go @@ -14,12 +14,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestGenLoadValidator(t *testing.T) { @@ -424,7 +425,7 @@ func newProposal(height int64, coreChainLockedHeight uint32, round int32, blockI CoreChainLockedHeight: coreChainLockedHeight, Round: round, BlockID: blockID, - Timestamp: time.Now(), + Timestamp: tmtime.Now(), } } diff --git a/privval/grpc/client.go b/privval/grpc/client.go index 851b6840a..7a031f368 100644 --- a/privval/grpc/client.go +++ b/privval/grpc/client.go @@ -9,13 +9,13 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/status" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/encoding" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/encoding" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // SignerClient implements PrivValidator. diff --git a/privval/grpc/client_test.go b/privval/grpc/client_test.go index 31f9cf6a3..9b3fca568 100644 --- a/privval/grpc/client_test.go +++ b/privval/grpc/client_test.go @@ -13,13 +13,13 @@ import ( "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/test/bufconn" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmgrpc "github.com/tendermint/tendermint/privval/grpc" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmgrpc "github.com/dashpay/tenderdash/privval/grpc" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const chainID = "chain-id" diff --git a/privval/grpc/server.go b/privval/grpc/server.go index 9e911a27d..928f03169 100644 --- a/privval/grpc/server.go +++ b/privval/grpc/server.go @@ -7,11 +7,11 @@ import ( "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/libs/log" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/libs/log" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + "github.com/dashpay/tenderdash/types" ) // SignerServer implements PrivValidatorAPIServer 9generated via protobuf services) diff --git a/privval/grpc/server_test.go b/privval/grpc/server_test.go index fcfe78f3c..219134e15 100644 --- a/privval/grpc/server_test.go +++ b/privval/grpc/server_test.go @@ -9,13 +9,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmgrpc "github.com/tendermint/tendermint/privval/grpc" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmgrpc "github.com/dashpay/tenderdash/privval/grpc" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ChainID = "123" diff --git a/privval/grpc/util.go b/privval/grpc/util.go index a3ea6c532..46b0ba12d 100644 --- a/privval/grpc/util.go +++ b/privval/grpc/util.go @@ -15,9 +15,9 @@ import ( "google.golang.org/grpc/credentials/insecure" "google.golang.org/grpc/keepalive" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" ) // DefaultDialOptions constructs a list of grpc dial options diff --git a/privval/msgs.go b/privval/msgs.go index 1480ce7c8..b0056ad4b 100644 --- a/privval/msgs.go +++ b/privval/msgs.go @@ -5,7 +5,7 @@ import ( "github.com/gogo/protobuf/proto" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" ) // TODO: Add ChainIDRequest diff --git a/privval/msgs_test.go b/privval/msgs_test.go index 36e23a6c2..bbb4d5f33 100644 --- a/privval/msgs_test.go +++ b/privval/msgs_test.go @@ -6,27 +6,24 @@ import ( "time" "github.com/gogo/protobuf/proto" - gogotypes "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/encoding" - cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" - privproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/encoding" + cryptoproto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + privproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) var stamp = time.Date(2019, 10, 13, 16, 14, 44, 0, time.UTC) func exampleVote() *types.Vote { - ts, err := gogotypes.TimestampProto(time.Date(2022, 3, 4, 5, 6, 7, 8, time.UTC)) - if err != nil { - panic(err) - } + ts := uint64(time.Date(2022, 3, 4, 5, 6, 7, 8, time.UTC).UnixMilli()) + return &types.Vote{ Type: tmproto.PrecommitType, Height: 3, @@ -42,7 +39,7 @@ func exampleVote() *types.Vote { Height: 3, AppHash: crypto.Checksum([]byte("apphash")), CoreChainLockedHeight: 12345, - Time: *ts, + Time: ts, }.Hash(), }, ValidatorProTxHash: crypto.ProTxHashFromSeedBytes([]byte("validator_pro_tx_hash")), @@ -98,8 +95,8 @@ func TestPrivvalVectors(t *testing.T) { {"pubKey request", &privproto.PubKeyRequest{}, "0a00"}, {"pubKey response", &privproto.PubKeyResponse{PubKey: ppk, Error: nil}, "12340a321a30991a1c4f159f8e4730bf897e97e27c11f27ba0c1337111a3c102e1081a19372832b596623b1a248a0e00b156d80690cf"}, {"pubKey response with error", &privproto.PubKeyResponse{PubKey: cryptoproto.PublicKey{}, Error: remoteError}, "12140a0012100801120c697427732061206572726f72"}, - {"Vote Request", &privproto.SignVoteRequest{Vote: votepb}, "1aaa010aa701080210031802226c0a208b01023386c371778ecb6368573e539afc3cc860ec3a2f614e54fe5652f4fc80122608c0843d122072db3d959635dff1bb567bedaa70573392c5159666a3f8caf11e413aac52207a1a2071aa7631e86d2b19d27f0c63e41ed08e5f8d43cfbb69d35913a7731b61bbdc622a20959a8f5ef2be68d0ed3a07ed8cff85991ee7995c2ac17030f742c135f9729fbe30d5bb03420b1209657874656e73696f6e"}, - {"Vote Response", &privproto.SignedVoteResponse{Vote: *votepb, Error: nil}, "22aa010aa701080210031802226c0a208b01023386c371778ecb6368573e539afc3cc860ec3a2f614e54fe5652f4fc80122608c0843d122072db3d959635dff1bb567bedaa70573392c5159666a3f8caf11e413aac52207a1a2071aa7631e86d2b19d27f0c63e41ed08e5f8d43cfbb69d35913a7731b61bbdc622a20959a8f5ef2be68d0ed3a07ed8cff85991ee7995c2ac17030f742c135f9729fbe30d5bb03420b1209657874656e73696f6e"}, + {"Vote Request", &privproto.SignVoteRequest{Vote: votepb}, "1aaa010aa701080210031802226c0a208b01023386c371778ecb6368573e539afc3cc860ec3a2f614e54fe5652f4fc80122608c0843d122072db3d959635dff1bb567bedaa70573392c5159666a3f8caf11e413aac52207a1a20b583d49b95a0a5526966b519d8b7bba2aefc800b370a7438c7063728904e58ee2a20959a8f5ef2be68d0ed3a07ed8cff85991ee7995c2ac17030f742c135f9729fbe30d5bb03420b1209657874656e73696f6e"}, + {"Vote Response", &privproto.SignedVoteResponse{Vote: *votepb, Error: nil}, "22aa010aa701080210031802226c0a208b01023386c371778ecb6368573e539afc3cc860ec3a2f614e54fe5652f4fc80122608c0843d122072db3d959635dff1bb567bedaa70573392c5159666a3f8caf11e413aac52207a1a20b583d49b95a0a5526966b519d8b7bba2aefc800b370a7438c7063728904e58ee2a20959a8f5ef2be68d0ed3a07ed8cff85991ee7995c2ac17030f742c135f9729fbe30d5bb03420b1209657874656e73696f6e"}, {"Vote Response with error", &privproto.SignedVoteResponse{Vote: tmproto.Vote{}, Error: remoteError}, "22180a042202120012100801120c697427732061206572726f72"}, {"Proposal Request", &privproto.SignProposalRequest{Proposal: proposalpb}, "2a700a6e08011003180220022a4a0a208b01023386c371778ecb6368573e539afc3cc860ec3a2f614e54fe5652f4fc80122608c0843d122072db3d959635dff1bb567bedaa70573392c5159666a3f8caf11e413aac52207a320608f49a8ded053a10697427732061207369676e6174757265"}, {"Proposal Response", &privproto.SignedProposalResponse{Proposal: *proposalpb, Error: nil}, "32700a6e08011003180220022a4a0a208b01023386c371778ecb6368573e539afc3cc860ec3a2f614e54fe5652f4fc80122608c0843d122072db3d959635dff1bb567bedaa70573392c5159666a3f8caf11e413aac52207a320608f49a8ded053a10697427732061207369676e6174757265"}, diff --git a/privval/retry_signer_client.go b/privval/retry_signer_client.go index 20128d259..c3590f85f 100644 --- a/privval/retry_signer_client.go +++ b/privval/retry_signer_client.go @@ -8,11 +8,11 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // RetrySignerClient wraps SignerClient adding retry for each operation (except diff --git a/privval/secret_connection.go b/privval/secret_connection.go index ba651d755..2c69517a3 100644 --- a/privval/secret_connection.go +++ b/privval/secret_connection.go @@ -23,12 +23,12 @@ import ( "golang.org/x/crypto/hkdf" "golang.org/x/crypto/nacl/box" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/internal/libs/async" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmprivval "github.com/tendermint/tendermint/proto/tendermint/privval" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/internal/libs/async" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmprivval "github.com/dashpay/tenderdash/proto/tendermint/privval" ) // This code has been duplicated from p2p/conn prior to the P2P refactor. diff --git a/privval/signer_client.go b/privval/signer_client.go index ab6baeaf9..8b5a74c80 100644 --- a/privval/signer_client.go +++ b/privval/signer_client.go @@ -8,13 +8,13 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/encoding" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/encoding" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) // SignerClient implements PrivValidator. diff --git a/privval/signer_client_test.go b/privval/signer_client_test.go index 994b5fc0f..73496b82f 100644 --- a/privval/signer_client_test.go +++ b/privval/signer_client_test.go @@ -11,13 +11,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + cryptoproto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type signerTestCase struct { diff --git a/privval/signer_dialer_endpoint.go b/privval/signer_dialer_endpoint.go index b291a7ef5..e68c45e37 100644 --- a/privval/signer_dialer_endpoint.go +++ b/privval/signer_dialer_endpoint.go @@ -4,8 +4,8 @@ import ( "context" "time" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" ) const ( diff --git a/privval/signer_endpoint.go b/privval/signer_endpoint.go index 8795268c4..96ae1f556 100644 --- a/privval/signer_endpoint.go +++ b/privval/signer_endpoint.go @@ -8,10 +8,10 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/libs/protoio" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" + "github.com/dashpay/tenderdash/internal/libs/protoio" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" ) const ( diff --git a/privval/signer_listener_endpoint.go b/privval/signer_listener_endpoint.go index bb6104dfc..fd1b40dd6 100644 --- a/privval/signer_listener_endpoint.go +++ b/privval/signer_listener_endpoint.go @@ -8,9 +8,9 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" ) // SignerListenerEndpointOption sets an optional parameter on the SignerListenerEndpoint. diff --git a/privval/signer_listener_endpoint_test.go b/privval/signer_listener_endpoint_test.go index 6049c6245..42a818528 100644 --- a/privval/signer_listener_endpoint_test.go +++ b/privval/signer_listener_endpoint_test.go @@ -10,11 +10,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/privval/signer_requestHandler.go b/privval/signer_requestHandler.go index 636f94673..5431e17c7 100644 --- a/privval/signer_requestHandler.go +++ b/privval/signer_requestHandler.go @@ -8,12 +8,12 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/crypto" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - cryptoproto "github.com/tendermint/tendermint/proto/tendermint/crypto" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + cryptoproto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func DefaultValidationRequestHandler( diff --git a/privval/signer_server.go b/privval/signer_server.go index 2de8b6827..20554332f 100644 --- a/privval/signer_server.go +++ b/privval/signer_server.go @@ -6,9 +6,9 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/service" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/service" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + "github.com/dashpay/tenderdash/types" ) // ValidationRequestHandlerFunc handles different remoteSigner requests diff --git a/privval/socket_dialers.go b/privval/socket_dialers.go index 9be84e02d..befb0ab45 100644 --- a/privval/socket_dialers.go +++ b/privval/socket_dialers.go @@ -5,8 +5,8 @@ import ( "net" "time" - "github.com/tendermint/tendermint/crypto" - tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/dashpay/tenderdash/crypto" + tmnet "github.com/dashpay/tenderdash/libs/net" ) // Socket errors. diff --git a/privval/socket_dialers_test.go b/privval/socket_dialers_test.go index 7ec8fe30f..4e7100f7c 100644 --- a/privval/socket_dialers_test.go +++ b/privval/socket_dialers_test.go @@ -8,8 +8,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/ed25519" - tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/dashpay/tenderdash/crypto/ed25519" + tmnet "github.com/dashpay/tenderdash/libs/net" ) // getFreeLocalhostAddrPort returns a free localhost:port address diff --git a/privval/socket_listeners.go b/privval/socket_listeners.go index 1ae95634a..3e5ab7c56 100644 --- a/privval/socket_listeners.go +++ b/privval/socket_listeners.go @@ -4,7 +4,7 @@ import ( "net" "time" - "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/ed25519" ) const ( diff --git a/privval/socket_listeners_test.go b/privval/socket_listeners_test.go index e91d111d0..02a959bca 100644 --- a/privval/socket_listeners_test.go +++ b/privval/socket_listeners_test.go @@ -8,7 +8,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/ed25519" ) //------------------------------------------- diff --git a/privval/utils.go b/privval/utils.go index a2cbbf501..5b51da4f1 100644 --- a/privval/utils.go +++ b/privval/utils.go @@ -5,9 +5,9 @@ import ( "fmt" "net" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" ) // IsConnTimeout returns a boolean indicating whether the error is known to diff --git a/proto/tendermint/abci/types.proto b/proto/tendermint/abci/types.proto index 604fdf2b7..e5d66e39f 100644 --- a/proto/tendermint/abci/types.proto +++ b/proto/tendermint/abci/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.abci; -option go_package = "github.com/tendermint/tendermint/abci/types"; +option go_package = "github.com/dashpay/tenderdash/abci/types"; import "tendermint/crypto/proof.proto"; import "tendermint/types/dash.proto"; @@ -159,9 +159,9 @@ message RequestOfferSnapshot { // Used during state sync to retrieve snapshot chunks from peers. message RequestLoadSnapshotChunk { - uint64 height = 1; // The height of the snapshot the chunks belongs to. - uint32 format = 2; // The application-specific format of the snapshot the chunk belongs to. - uint32 chunk = 3; // The chunk index, starting from 0 for the initial chunk. + uint64 height = 1; // The height of the snapshot the chunks belongs to. + uint32 version = 2; // The application-specific format of the snapshot the chunk belongs to. + bytes chunk_id = 3; // The chunk id is a hash of the node of subtree of the snapshot. } // Applies a snapshot chunk. @@ -177,9 +177,9 @@ message RequestLoadSnapshotChunk { // it will reject the snapshot and try a different one via OfferSnapshot. The application should be prepared to reset // and accept it or abort as appropriate. message RequestApplySnapshotChunk { - uint32 index = 1; // The chunk index, starting from 0. Tenderdash applies chunks sequentially. - bytes chunk = 2; // The binary chunk contents, as returned by LoadSnapshotChunk. - string sender = 3; // The P2P ID of the node who sent this chunk. + bytes chunk_id = 1; // The chunk index, starting from 0. Tenderdash applies chunks sequentially. + bytes chunk = 2; // The binary chunk contents, as returned by LoadSnapshotChunk. + string sender = 3; // The P2P ID of the node who sent this chunk. } // Prepare new block proposal, potentially altering list of transactions. @@ -346,6 +346,7 @@ message RequestProcessProposal { // List of information about validators that acted incorrectly. repeated Misbehavior misbehavior = 3 [(gogoproto.nullable) = false]; // The block header's hash of the proposed block. + // It is computed as a Merkle tree from the header fields. bytes hash = 4; // The height of the proposed block. int64 height = 5; @@ -604,19 +605,22 @@ message ResponseApplySnapshotChunk { Result result = 1; // The result of applying this chunk. // Refetch and reapply the given chunks, regardless of `result`. // Only the listed chunks will be refetched, and reapplied in sequential order. - repeated uint32 refetch_chunks = 2; + repeated bytes refetch_chunks = 2; // Reject the given P2P senders, regardless of `Result`. Any chunks already applied will not be refetched // unless explicitly requested, but queued chunks from these senders will be discarded, and new chunks // or other snapshots rejected. repeated string reject_senders = 3; + // Next chunks provides the list of chunks that should be requested next, if any. + repeated bytes next_chunks = 4; enum Result { - UNKNOWN = 0; // Unknown result, abort all snapshot restoration - ACCEPT = 1; // Chunk successfully accepted - ABORT = 2; // Abort all snapshot restoration - RETRY = 3; // Retry chunk (combine with refetch and reject) - RETRY_SNAPSHOT = 4; // Retry snapshot (combine with refetch and reject) - REJECT_SNAPSHOT = 5; // Reject this snapshot, try others + UNKNOWN = 0; // Unknown result, abort all snapshot restoration + ACCEPT = 1; // Chunk successfully accepted + ABORT = 2; // Abort all snapshot restoration + RETRY = 3; // Retry chunk (combine with refetch and reject) + RETRY_SNAPSHOT = 4; // Retry snapshot (combine with refetch and reject) + REJECT_SNAPSHOT = 5; // Reject this snapshot, try others + COMPLETE_SNAPSHOT = 6; // Complete this snapshot, no more chunks } } @@ -824,8 +828,7 @@ message Misbehavior { message Snapshot { uint64 height = 1; // The height at which the snapshot was taken - uint32 format = 2; // The application-specific snapshot format - uint32 chunks = 3; // Number of chunks in the snapshot + uint32 version = 2; // The application-specific snapshot version bytes hash = 4; // Arbitrary snapshot hash, equal only if identical bytes metadata = 5; // Arbitrary application metadata } diff --git a/proto/tendermint/blocksync/types.pb.go b/proto/tendermint/blocksync/types.pb.go index acb131736..b969b4abd 100644 --- a/proto/tendermint/blocksync/types.pb.go +++ b/proto/tendermint/blocksync/types.pb.go @@ -5,8 +5,8 @@ package blocksync import ( fmt "fmt" + types "github.com/dashpay/tenderdash/proto/tendermint/types" proto "github.com/gogo/protobuf/proto" - types "github.com/tendermint/tendermint/proto/tendermint/types" io "io" math "math" math_bits "math/bits" @@ -268,7 +268,7 @@ func init() { func init() { proto.RegisterFile("tendermint/blocksync/types.proto", fileDescriptor_19b397c236e0fa07) } var fileDescriptor_19b397c236e0fa07 = []byte{ - // 267 bytes of a gzipped FileDescriptorProto + // 275 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x28, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0x4f, 0xca, 0xc9, 0x4f, 0xce, 0x2e, 0xae, 0xcc, 0x4b, 0xd6, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x41, 0xa8, @@ -281,11 +281,12 @@ var fileDescriptor_19b397c236e0fa07 = []byte{ 0xe4, 0xfc, 0xdc, 0xdc, 0xcc, 0x12, 0x09, 0x26, 0xb0, 0x7a, 0x09, 0x4c, 0xf5, 0xce, 0x60, 0xf9, 0x20, 0xa8, 0x3a, 0x25, 0x7e, 0x2e, 0xde, 0xe0, 0x92, 0xc4, 0x92, 0xd2, 0x62, 0xa8, 0x2f, 0x94, 0x6c, 0xb8, 0xf8, 0x60, 0x02, 0xf8, 0x1d, 0x2b, 0x24, 0xc4, 0xc5, 0x92, 0x94, 0x58, 0x9c, 0x0a, - 0xb6, 0x8a, 0x39, 0x08, 0xcc, 0x76, 0x0a, 0x3d, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, + 0xb6, 0x8a, 0x39, 0x08, 0xcc, 0x76, 0x0a, 0x3a, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, - 0x86, 0x28, 0xeb, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x7d, 0xe4, 0x60, - 0x45, 0x30, 0xc1, 0xa1, 0xaa, 0x8f, 0x2d, 0x22, 0x93, 0xd8, 0xc0, 0x72, 0xc6, 0x80, 0x00, 0x00, - 0x00, 0xff, 0xff, 0x73, 0xe1, 0x09, 0xcb, 0xe7, 0x01, 0x00, 0x00, + 0x86, 0x28, 0x8b, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0xfd, 0x94, 0xc4, + 0xe2, 0x8c, 0x82, 0xc4, 0x4a, 0x7d, 0x88, 0xe3, 0x40, 0x3c, 0x7d, 0x70, 0x90, 0xea, 0x63, 0x8b, + 0xc5, 0x24, 0x36, 0xb0, 0x9c, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x3d, 0xc3, 0xea, 0xe4, + 0x01, 0x00, 0x00, } func (m *BlockRequest) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/blocksync/types.proto b/proto/tendermint/blocksync/types.proto index 457b52284..3b229350d 100644 --- a/proto/tendermint/blocksync/types.proto +++ b/proto/tendermint/blocksync/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.blocksync; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/blocksync"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/blocksync"; import "tendermint/types/block.proto"; import "tendermint/types/types.proto"; diff --git a/proto/tendermint/consensus/message_test.go b/proto/tendermint/consensus/message_test.go index 21c3c4faa..8c1a2c9a9 100644 --- a/proto/tendermint/consensus/message_test.go +++ b/proto/tendermint/consensus/message_test.go @@ -8,8 +8,8 @@ import ( "github.com/gogo/protobuf/proto" "github.com/stretchr/testify/require" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestHasVoteVector(t *testing.T) { diff --git a/proto/tendermint/consensus/types.pb.go b/proto/tendermint/consensus/types.pb.go index 859ddabc7..076ffe4a3 100644 --- a/proto/tendermint/consensus/types.pb.go +++ b/proto/tendermint/consensus/types.pb.go @@ -5,10 +5,10 @@ package consensus import ( fmt "fmt" + bits "github.com/dashpay/tenderdash/proto/tendermint/libs/bits" + types "github.com/dashpay/tenderdash/proto/tendermint/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" - bits "github.com/tendermint/tendermint/proto/tendermint/libs/bits" - types "github.com/tendermint/tendermint/proto/tendermint/types" io "io" math "math" math_bits "math/bits" @@ -930,65 +930,65 @@ func init() { func init() { proto.RegisterFile("tendermint/consensus/types.proto", fileDescriptor_81a22d2efc008981) } var fileDescriptor_81a22d2efc008981 = []byte{ - // 914 bytes of a gzipped FileDescriptorProto + // 920 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xd4, 0x56, 0xcd, 0x6e, 0x23, 0x45, 0x10, 0x9e, 0x21, 0xfe, 0xad, 0xc9, 0x0f, 0xb4, 0xb2, 0x2b, 0x13, 0x16, 0x27, 0x0c, 0x97, 0x08, - 0x21, 0x7b, 0xe5, 0x48, 0x20, 0x02, 0x12, 0x60, 0x7e, 0x76, 0x76, 0xb5, 0xd9, 0xb5, 0xc6, 0xcb, - 0x0a, 0x71, 0x19, 0x8d, 0x3d, 0x2d, 0xbb, 0x59, 0x7b, 0x7a, 0x34, 0xdd, 0x49, 0xc8, 0x95, 0x27, - 0xe0, 0x01, 0x78, 0x0d, 0x24, 0x1e, 0x61, 0x8f, 0x7b, 0xe4, 0xb4, 0x42, 0xc9, 0x0b, 0x20, 0x21, - 0xee, 0xa8, 0xab, 0xdb, 0xe3, 0x0e, 0x99, 0x04, 0x7c, 0x41, 0xda, 0xdb, 0xcc, 0x54, 0xd5, 0xd7, - 0x55, 0x5f, 0x55, 0x7d, 0x3d, 0xb0, 0x27, 0x69, 0x9a, 0xd0, 0x7c, 0xce, 0x52, 0xd9, 0x1d, 0xf3, - 0x54, 0xd0, 0x54, 0x1c, 0x8b, 0xae, 0x3c, 0xcb, 0xa8, 0xe8, 0x64, 0x39, 0x97, 0x9c, 0x6c, 0x2f, - 0x3d, 0x3a, 0x85, 0xc7, 0xce, 0xf6, 0x84, 0x4f, 0x38, 0x3a, 0x74, 0xd5, 0x93, 0xf6, 0xdd, 0xb9, - 0x63, 0xa1, 0x21, 0x86, 0x8d, 0xb4, 0x63, 0x9f, 0x35, 0x63, 0x23, 0xd1, 0x1d, 0x31, 0x79, 0xc9, - 0xc3, 0xff, 0xc5, 0x85, 0xf5, 0x47, 0xf4, 0x34, 0xe4, 0xc7, 0x69, 0x32, 0x94, 0x34, 0x23, 0xb7, - 0xa1, 0x36, 0xa5, 0x6c, 0x32, 0x95, 0x2d, 0x77, 0xcf, 0xdd, 0x5f, 0x0b, 0xcd, 0x1b, 0xd9, 0x86, - 0x6a, 0xae, 0x9c, 0x5a, 0xaf, 0xed, 0xb9, 0xfb, 0xd5, 0x50, 0xbf, 0x10, 0x02, 0x15, 0x21, 0x69, - 0xd6, 0x5a, 0xdb, 0x73, 0xf7, 0x37, 0x42, 0x7c, 0x26, 0x1f, 0x42, 0x4b, 0xd0, 0x31, 0x4f, 0x13, - 0x11, 0x09, 0x96, 0x8e, 0x69, 0x24, 0x64, 0x9c, 0xcb, 0x48, 0xb2, 0x39, 0x6d, 0x55, 0x10, 0xf3, - 0x96, 0xb1, 0x0f, 0x95, 0x79, 0xa8, 0xac, 0x4f, 0xd8, 0x9c, 0x92, 0xf7, 0xe0, 0x8d, 0x59, 0x2c, - 0x64, 0x34, 0xe6, 0xf3, 0x39, 0x93, 0x91, 0x3e, 0xae, 0x8a, 0xc7, 0x6d, 0x29, 0xc3, 0x17, 0xf8, - 0x1d, 0x53, 0xf5, 0xff, 0x72, 0x61, 0xe3, 0x11, 0x3d, 0x7d, 0x1a, 0xcf, 0x58, 0xd2, 0x9f, 0xf1, - 0xf1, 0xb3, 0x15, 0x13, 0xff, 0x16, 0x6e, 0x8d, 0x54, 0x58, 0x94, 0xa9, 0xdc, 0x04, 0x95, 0xd1, - 0x94, 0xc6, 0x09, 0xcd, 0xb1, 0x12, 0xaf, 0xb7, 0xdb, 0xb1, 0x7a, 0xa0, 0xf9, 0x1a, 0xc4, 0xb9, - 0x1c, 0x52, 0x19, 0xa0, 0x5b, 0xbf, 0xf2, 0xfc, 0xe5, 0xae, 0x13, 0x12, 0xc4, 0xb8, 0x64, 0x21, - 0x9f, 0x82, 0xb7, 0x44, 0x16, 0x58, 0xb1, 0xd7, 0x6b, 0xdb, 0x78, 0xaa, 0x13, 0x1d, 0xd5, 0x89, - 0x4e, 0x9f, 0xc9, 0xcf, 0xf3, 0x3c, 0x3e, 0x0b, 0xa1, 0x00, 0x12, 0xe4, 0x2d, 0x68, 0x32, 0x61, - 0x48, 0xc0, 0xf2, 0x1b, 0x61, 0x83, 0x09, 0x5d, 0xbc, 0x1f, 0x40, 0x63, 0x90, 0xf3, 0x8c, 0x8b, - 0x78, 0x46, 0x3e, 0x81, 0x46, 0x66, 0x9e, 0xb1, 0x66, 0xaf, 0xb7, 0x53, 0x92, 0xb6, 0xf1, 0x30, - 0x19, 0x17, 0x11, 0xfe, 0xcf, 0x2e, 0x78, 0x0b, 0xe3, 0xe0, 0xf1, 0xc3, 0x6b, 0xf9, 0x7b, 0x1f, - 0xc8, 0x22, 0x26, 0xca, 0xf8, 0x2c, 0xb2, 0xc9, 0x7c, 0x7d, 0x61, 0x19, 0xf0, 0x19, 0xf6, 0x85, - 0xdc, 0x83, 0x75, 0xdb, 0xdb, 0xd0, 0xf9, 0x2f, 0xe5, 0x9b, 0xdc, 0x3c, 0x0b, 0xcd, 0x7f, 0x06, - 0xcd, 0xfe, 0x82, 0x93, 0x15, 0x7b, 0x7b, 0x17, 0x2a, 0x8a, 0x7b, 0x73, 0xf6, 0xed, 0xf2, 0x56, - 0x9a, 0x33, 0xd1, 0xd3, 0xef, 0x41, 0xe5, 0x29, 0x97, 0x6a, 0x02, 0x2b, 0x27, 0x5c, 0x52, 0xc3, - 0x66, 0x49, 0xa4, 0xf2, 0x0a, 0xd1, 0xc7, 0xff, 0xd1, 0x85, 0x7a, 0x10, 0x0b, 0x8c, 0x5b, 0x2d, - 0xbf, 0x03, 0xa8, 0x28, 0x34, 0xcc, 0x6f, 0xb3, 0x6c, 0xd4, 0x86, 0x6c, 0x92, 0xd2, 0xe4, 0x48, - 0x4c, 0x9e, 0x9c, 0x65, 0x34, 0x44, 0x67, 0x05, 0xc5, 0xd2, 0x84, 0xfe, 0x80, 0x03, 0x55, 0x0d, - 0xf5, 0x8b, 0x7f, 0x08, 0x35, 0x3d, 0x18, 0xe4, 0x2e, 0xd4, 0xcc, 0xc8, 0xe8, 0xe4, 0x5b, 0x57, - 0x61, 0xcd, 0xfe, 0x18, 0x3f, 0xff, 0x23, 0x68, 0x06, 0xb1, 0x99, 0xab, 0xd5, 0x2a, 0xf0, 0x7f, - 0x75, 0x61, 0x5d, 0x15, 0x3e, 0xa4, 0xf2, 0x28, 0xfe, 0xbe, 0x77, 0xf0, 0x7f, 0x10, 0xf0, 0x15, - 0x34, 0xf4, 0x5e, 0xb1, 0xc4, 0x2c, 0xd5, 0x9b, 0x57, 0x03, 0x71, 0x64, 0xee, 0x7f, 0xd9, 0xdf, - 0x52, 0xcd, 0x3d, 0x7f, 0xb9, 0x5b, 0x37, 0x1f, 0xc2, 0x3a, 0xc6, 0xde, 0x4f, 0xfc, 0x3f, 0x5d, - 0xf0, 0x4c, 0xea, 0x7d, 0x26, 0xc5, 0xab, 0x93, 0x39, 0x39, 0x84, 0xaa, 0x1a, 0x3c, 0x81, 0x9a, - 0xf0, 0x5f, 0x77, 0x4a, 0x87, 0xf8, 0x7f, 0x54, 0xa1, 0x7e, 0x44, 0x85, 0x88, 0x27, 0x94, 0x3c, - 0x80, 0xcd, 0x94, 0x9e, 0xea, 0x3d, 0x8e, 0x50, 0xbd, 0xf5, 0xc4, 0xf8, 0x9d, 0xb2, 0x7b, 0xa7, - 0x63, 0xdf, 0x0e, 0x81, 0x13, 0xae, 0xa7, 0xf6, 0x6d, 0x71, 0x04, 0x5b, 0x0a, 0xeb, 0x44, 0xc9, - 0x70, 0x84, 0x89, 0x22, 0x5f, 0x5e, 0xef, 0xdd, 0x6b, 0xc1, 0x96, 0x92, 0x1d, 0x38, 0xe1, 0x46, - 0x7a, 0x49, 0xc3, 0x6d, 0x45, 0x2b, 0x51, 0x8e, 0x25, 0xce, 0x42, 0xb8, 0x02, 0x4b, 0xd1, 0xc8, - 0xd7, 0xff, 0xd0, 0x1e, 0xcd, 0xf5, 0x3b, 0x37, 0x23, 0x0c, 0x1e, 0x3f, 0x0c, 0x2e, 0x4b, 0x0f, - 0xf9, 0x0c, 0x60, 0xa9, 0xe0, 0x86, 0xed, 0xdd, 0x72, 0x94, 0x42, 0xa2, 0x02, 0x27, 0x6c, 0x16, - 0x1a, 0xae, 0x14, 0x08, 0x75, 0xa4, 0x76, 0x55, 0x95, 0x97, 0xb1, 0x6a, 0x0a, 0x03, 0x47, 0xab, - 0x09, 0x39, 0x84, 0xc6, 0x34, 0x16, 0x11, 0x46, 0xd5, 0x31, 0xea, 0xed, 0xf2, 0x28, 0x23, 0x39, - 0x81, 0x13, 0xd6, 0xa7, 0x46, 0x7d, 0x1e, 0xc0, 0xa6, 0x8a, 0xc3, 0x5b, 0x6c, 0xae, 0xd6, 0xb1, - 0xd5, 0xb8, 0xa9, 0xa1, 0xf6, 0xe2, 0xaa, 0x86, 0x9e, 0xd8, 0x8b, 0x7c, 0x0f, 0x36, 0x0a, 0x2c, - 0x35, 0x4f, 0xad, 0xe6, 0x4d, 0x24, 0x5a, 0x8b, 0xa4, 0x48, 0x3c, 0xb1, 0xf6, 0xea, 0x83, 0x42, - 0x8f, 0x00, 0x11, 0xee, 0x94, 0x23, 0x68, 0xf9, 0x09, 0x9c, 0x85, 0x2a, 0x29, 0xf2, 0x15, 0x11, - 0x26, 0xd6, 0xbb, 0x89, 0xfc, 0x42, 0xbd, 0x14, 0xf9, 0xd3, 0xc5, 0x4b, 0xbf, 0x0a, 0x6b, 0xe2, - 0x78, 0xde, 0xff, 0xe6, 0xf9, 0x79, 0xdb, 0x7d, 0x71, 0xde, 0x76, 0x7f, 0x3f, 0x6f, 0xbb, 0x3f, - 0x5d, 0xb4, 0x9d, 0x17, 0x17, 0x6d, 0xe7, 0xb7, 0x8b, 0xb6, 0xf3, 0xdd, 0xc7, 0x13, 0x26, 0xa7, - 0xc7, 0xa3, 0xce, 0x98, 0xcf, 0xbb, 0xf6, 0xef, 0xd3, 0xf2, 0x51, 0xff, 0x66, 0x95, 0xfd, 0xa8, - 0x8d, 0x6a, 0x68, 0x3b, 0xf8, 0x3b, 0x00, 0x00, 0xff, 0xff, 0xfd, 0xb1, 0x2b, 0x7f, 0xc7, 0x09, - 0x00, 0x00, + 0x21, 0x7b, 0xe5, 0x48, 0xfc, 0x44, 0x48, 0x80, 0xf9, 0xd9, 0xd9, 0xd5, 0x66, 0xd7, 0x6a, 0xaf, + 0x56, 0x88, 0xcb, 0x68, 0xec, 0x69, 0xd9, 0xcd, 0xda, 0xd3, 0xa3, 0xe9, 0x4e, 0x42, 0xae, 0x3c, + 0x01, 0x0f, 0xc0, 0x6b, 0x20, 0xf1, 0x08, 0x7b, 0xdc, 0x23, 0xa7, 0x15, 0x4a, 0x5e, 0x00, 0x09, + 0x71, 0x47, 0x5d, 0xdd, 0xb6, 0x3b, 0x64, 0x36, 0x90, 0x0b, 0x12, 0xb7, 0x69, 0x57, 0xd5, 0xd7, + 0x55, 0x5f, 0x55, 0x7d, 0x6d, 0xd8, 0x53, 0x2c, 0x4b, 0x59, 0x31, 0xe7, 0x99, 0xea, 0x8e, 0x45, + 0x26, 0x59, 0x26, 0x8f, 0x65, 0x57, 0x9d, 0xe5, 0x4c, 0x76, 0xf2, 0x42, 0x28, 0x41, 0xb6, 0x57, + 0x1e, 0x9d, 0xa5, 0xc7, 0xce, 0xf6, 0x44, 0x4c, 0x04, 0x3a, 0x74, 0xf5, 0x97, 0xf1, 0xdd, 0xb9, + 0xe3, 0xa0, 0x21, 0x86, 0x8b, 0xb4, 0xe3, 0xde, 0x35, 0xe3, 0x23, 0xd9, 0x1d, 0x71, 0x75, 0xc9, + 0x23, 0xfc, 0xd9, 0x87, 0xf5, 0x47, 0xec, 0x94, 0x8a, 0xe3, 0x2c, 0x1d, 0x2a, 0x96, 0x93, 0xdb, + 0x50, 0x9b, 0x32, 0x3e, 0x99, 0xaa, 0x96, 0xbf, 0xe7, 0xef, 0xaf, 0x51, 0x7b, 0x22, 0xdb, 0x50, + 0x2d, 0xb4, 0x53, 0xeb, 0xb5, 0x3d, 0x7f, 0xbf, 0x4a, 0xcd, 0x81, 0x10, 0xa8, 0x48, 0xc5, 0xf2, + 0xd6, 0xda, 0x9e, 0xbf, 0xbf, 0x41, 0xf1, 0x9b, 0x7c, 0x08, 0x2d, 0xc9, 0xc6, 0x22, 0x4b, 0x65, + 0x2c, 0x79, 0x36, 0x66, 0xb1, 0x54, 0x49, 0xa1, 0x62, 0xc5, 0xe7, 0xac, 0x55, 0x41, 0xcc, 0x5b, + 0xd6, 0x3e, 0xd4, 0xe6, 0xa1, 0xb6, 0x3e, 0xe1, 0x73, 0x46, 0xde, 0x83, 0x37, 0x66, 0x89, 0x54, + 0xf1, 0x58, 0xcc, 0xe7, 0x5c, 0xc5, 0xe6, 0xba, 0x2a, 0x5e, 0xb7, 0xa5, 0x0d, 0x5f, 0xe0, 0xef, + 0x98, 0x6a, 0xf8, 0xa7, 0x0f, 0x1b, 0x8f, 0xd8, 0xe9, 0xd3, 0x64, 0xc6, 0xd3, 0xfe, 0x4c, 0x8c, + 0x9f, 0xdd, 0x30, 0xf1, 0x6f, 0xe0, 0xd6, 0x48, 0x87, 0xc5, 0xb9, 0xce, 0x4d, 0x32, 0x15, 0x4f, + 0x59, 0x92, 0xb2, 0x02, 0x2b, 0x09, 0x7a, 0xbb, 0x1d, 0xa7, 0x07, 0x86, 0xaf, 0x41, 0x52, 0xa8, + 0x21, 0x53, 0x11, 0xba, 0xf5, 0x2b, 0xcf, 0x5f, 0xee, 0x7a, 0x94, 0x20, 0xc6, 0x25, 0x0b, 0xf9, + 0x14, 0x82, 0x15, 0xb2, 0xc4, 0x8a, 0x83, 0x5e, 0xdb, 0xc5, 0xd3, 0x9d, 0xe8, 0xe8, 0x4e, 0x74, + 0xfa, 0x5c, 0x7d, 0x5e, 0x14, 0xc9, 0x19, 0x85, 0x25, 0x90, 0x24, 0x6f, 0x41, 0x93, 0x4b, 0x4b, + 0x02, 0x96, 0xdf, 0xa0, 0x0d, 0x2e, 0x4d, 0xf1, 0x61, 0x04, 0x8d, 0x41, 0x21, 0x72, 0x21, 0x93, + 0x19, 0xf9, 0x04, 0x1a, 0xb9, 0xfd, 0xc6, 0x9a, 0x83, 0xde, 0x4e, 0x49, 0xda, 0xd6, 0xc3, 0x66, + 0xbc, 0x8c, 0x08, 0x7f, 0xf2, 0x21, 0x58, 0x18, 0x07, 0x8f, 0x1f, 0xbe, 0x92, 0xbf, 0xf7, 0x81, + 0x2c, 0x62, 0xe2, 0x5c, 0xcc, 0x62, 0x97, 0xcc, 0xd7, 0x17, 0x96, 0x81, 0x98, 0x61, 0x5f, 0xc8, + 0x3d, 0x58, 0x77, 0xbd, 0x2d, 0x9d, 0xff, 0x50, 0xbe, 0xcd, 0x2d, 0x70, 0xd0, 0xc2, 0x67, 0xd0, + 0xec, 0x2f, 0x38, 0xb9, 0x61, 0x6f, 0xef, 0x42, 0x45, 0x73, 0x6f, 0xef, 0xbe, 0x5d, 0xde, 0x4a, + 0x7b, 0x27, 0x7a, 0x86, 0x3d, 0xa8, 0x3c, 0x15, 0x4a, 0x4f, 0x60, 0xe5, 0x44, 0x28, 0x66, 0xd9, + 0x2c, 0x89, 0xd4, 0x5e, 0x14, 0x7d, 0xc2, 0x1f, 0x7c, 0xa8, 0x47, 0x89, 0xc4, 0xb8, 0x9b, 0xe5, + 0x77, 0x00, 0x15, 0x8d, 0x86, 0xf9, 0x6d, 0x96, 0x8d, 0xda, 0x90, 0x4f, 0x32, 0x96, 0x1e, 0xc9, + 0xc9, 0x93, 0xb3, 0x9c, 0x51, 0x74, 0xd6, 0x50, 0x3c, 0x4b, 0xd9, 0xf7, 0x38, 0x50, 0x55, 0x6a, + 0x0e, 0xe1, 0x21, 0xd4, 0xcc, 0x60, 0x90, 0xbb, 0x50, 0xb3, 0x23, 0x63, 0x92, 0x6f, 0x5d, 0x85, + 0xb5, 0xfb, 0x63, 0xfd, 0xc2, 0x8f, 0xa1, 0x19, 0x25, 0x76, 0xae, 0x6e, 0x56, 0x41, 0xf8, 0x8b, + 0x0f, 0xeb, 0xba, 0xf0, 0x21, 0x53, 0x47, 0xc9, 0x77, 0xbd, 0x83, 0xff, 0x82, 0x80, 0xaf, 0xa0, + 0x61, 0xf6, 0x8a, 0xa7, 0x76, 0xa9, 0xde, 0xbc, 0x1a, 0x88, 0x23, 0x73, 0xff, 0xcb, 0xfe, 0x96, + 0x6e, 0xee, 0xf9, 0xcb, 0xdd, 0xba, 0xfd, 0x81, 0xd6, 0x31, 0xf6, 0x7e, 0x1a, 0xfe, 0xe1, 0x43, + 0x60, 0x53, 0xef, 0x73, 0x25, 0xff, 0x3f, 0x99, 0x93, 0x43, 0xa8, 0xea, 0xc1, 0x93, 0xa8, 0x09, + 0xff, 0x76, 0xa7, 0x4c, 0x48, 0xf8, 0x7b, 0x15, 0xea, 0x47, 0x4c, 0xca, 0x64, 0xc2, 0xc8, 0x03, + 0xd8, 0xcc, 0xd8, 0xa9, 0xd9, 0xe3, 0x18, 0xd5, 0xdb, 0x4c, 0x4c, 0xd8, 0x29, 0x7b, 0x77, 0x3a, + 0xee, 0xeb, 0x10, 0x79, 0x74, 0x3d, 0x73, 0x5f, 0x8b, 0x23, 0xd8, 0xd2, 0x58, 0x27, 0x5a, 0x86, + 0x63, 0x4c, 0x14, 0xf9, 0x0a, 0x7a, 0xef, 0xbe, 0x12, 0x6c, 0x25, 0xd9, 0x91, 0x47, 0x37, 0xb2, + 0x4b, 0x1a, 0xee, 0x2a, 0x5a, 0x89, 0x72, 0xac, 0x70, 0x16, 0xc2, 0x15, 0x39, 0x8a, 0x46, 0xbe, + 0xfe, 0x9b, 0xf6, 0x18, 0xae, 0xdf, 0xb9, 0x1e, 0x61, 0xf0, 0xf8, 0x61, 0x74, 0x59, 0x7a, 0xc8, + 0x67, 0x00, 0x2b, 0x05, 0xb7, 0x6c, 0xef, 0x96, 0xa3, 0x2c, 0x25, 0x2a, 0xf2, 0x68, 0x73, 0xa9, + 0xe1, 0x5a, 0x81, 0x50, 0x47, 0x6a, 0x57, 0x55, 0x79, 0x15, 0xab, 0xa7, 0x30, 0xf2, 0x8c, 0x9a, + 0x90, 0x43, 0x68, 0x4c, 0x13, 0x19, 0x63, 0x54, 0x1d, 0xa3, 0xde, 0x2e, 0x8f, 0xb2, 0x92, 0x13, + 0x79, 0xb4, 0x3e, 0xb5, 0xea, 0xf3, 0x00, 0x36, 0x75, 0x1c, 0xbe, 0x62, 0x73, 0xbd, 0x8e, 0xad, + 0xc6, 0x75, 0x0d, 0x75, 0x17, 0x57, 0x37, 0xf4, 0xc4, 0x5d, 0xe4, 0x7b, 0xb0, 0xb1, 0xc4, 0xd2, + 0xf3, 0xd4, 0x6a, 0x5e, 0x47, 0xa2, 0xb3, 0x48, 0x9a, 0xc4, 0x13, 0x67, 0xaf, 0x3e, 0x58, 0xea, + 0x11, 0x20, 0xc2, 0x9d, 0x72, 0x04, 0x23, 0x3f, 0x91, 0xb7, 0x50, 0x25, 0x4d, 0xbe, 0x26, 0xc2, + 0xc6, 0x06, 0xd7, 0x91, 0xbf, 0x54, 0x2f, 0x4d, 0xfe, 0x74, 0x71, 0xe8, 0x57, 0x61, 0x4d, 0x1e, + 0xcf, 0xfb, 0xf4, 0xf9, 0x79, 0xdb, 0x7f, 0x71, 0xde, 0xf6, 0x7f, 0x3b, 0x6f, 0xfb, 0x3f, 0x5e, + 0xb4, 0xbd, 0x17, 0x17, 0x6d, 0xef, 0xd7, 0x8b, 0xb6, 0xf7, 0xed, 0x47, 0x13, 0xae, 0xa6, 0xc7, + 0xa3, 0xce, 0x58, 0xcc, 0xbb, 0x69, 0x22, 0xa7, 0x79, 0x72, 0xd6, 0x35, 0x17, 0xe8, 0x53, 0xd7, + 0xfc, 0xc7, 0x2a, 0xfb, 0x97, 0x36, 0xaa, 0xa1, 0xed, 0xe0, 0xaf, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x45, 0xea, 0xd4, 0x6b, 0xc4, 0x09, 0x00, 0x00, } func (m *NewRoundStep) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/consensus/types.proto b/proto/tendermint/consensus/types.proto index 034cf503d..1ade2d0a2 100644 --- a/proto/tendermint/consensus/types.proto +++ b/proto/tendermint/consensus/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.consensus; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/consensus"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/consensus"; import "gogoproto/gogo.proto"; import "tendermint/types/types.proto"; diff --git a/proto/tendermint/consensus/wal.pb.go b/proto/tendermint/consensus/wal.pb.go index fd80819cd..c4722100f 100644 --- a/proto/tendermint/consensus/wal.pb.go +++ b/proto/tendermint/consensus/wal.pb.go @@ -5,12 +5,12 @@ package consensus import ( fmt "fmt" + types "github.com/dashpay/tenderdash/proto/tendermint/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" _ "github.com/gogo/protobuf/types" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" _ "github.com/golang/protobuf/ptypes/duration" - types "github.com/tendermint/tendermint/proto/tendermint/types" io "io" math "math" math_bits "math/bits" @@ -372,41 +372,42 @@ func init() { func init() { proto.RegisterFile("tendermint/consensus/wal.proto", fileDescriptor_ed0b60c2d348ab09) } var fileDescriptor_ed0b60c2d348ab09 = []byte{ - // 539 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0xdd, 0x8a, 0xd3, 0x40, - 0x14, 0xce, 0x6c, 0xff, 0x4f, 0x15, 0x21, 0x96, 0xa5, 0x16, 0x36, 0x8d, 0x5d, 0x84, 0x5e, 0x25, - 0xb0, 0x22, 0x88, 0x5e, 0xa8, 0xa5, 0x2b, 0x2d, 0xb8, 0x20, 0xe3, 0x8a, 0x20, 0x42, 0x48, 0x37, - 0xa7, 0x69, 0x60, 0x33, 0x53, 0x32, 0x13, 0xc5, 0x2b, 0x5f, 0xa1, 0x97, 0xbe, 0x89, 0xaf, 0xb0, - 0x97, 0x7b, 0xe9, 0xd5, 0x2a, 0xed, 0x8b, 0x48, 0x66, 0xd2, 0x36, 0xb8, 0xd9, 0xbb, 0x39, 0x73, - 0xbe, 0x73, 0xbe, 0x73, 0xbe, 0x6f, 0x06, 0x2c, 0x89, 0x2c, 0xc0, 0x24, 0x8e, 0x98, 0x74, 0x2f, - 0x38, 0x13, 0xc8, 0x44, 0x2a, 0xdc, 0x6f, 0xfe, 0xa5, 0xb3, 0x4c, 0xb8, 0xe4, 0x66, 0x67, 0x9f, - 0x77, 0x76, 0xf9, 0x5e, 0x27, 0xe4, 0x21, 0x57, 0x00, 0x37, 0x3b, 0x69, 0x6c, 0xcf, 0x2e, 0xed, - 0x25, 0xbf, 0x2f, 0x51, 0xe4, 0x88, 0xa3, 0x02, 0x42, 0xdd, 0xbb, 0xf8, 0x15, 0x99, 0xdc, 0xa6, - 0xad, 0x90, 0xf3, 0xf0, 0x12, 0x5d, 0x15, 0xcd, 0xd2, 0xb9, 0x1b, 0xa4, 0x89, 0x2f, 0x23, 0xce, - 0xf2, 0x7c, 0xff, 0xff, 0xbc, 0x8c, 0x62, 0x14, 0xd2, 0x8f, 0x97, 0x1a, 0x30, 0x40, 0x68, 0x9c, - 0x89, 0x70, 0xca, 0xe6, 0xdc, 0x7c, 0x06, 0x95, 0x58, 0x84, 0x5d, 0x62, 0x93, 0x61, 0xfb, 0xe4, - 0xc8, 0x29, 0x5b, 0xc3, 0x39, 0x43, 0x21, 0xfc, 0x10, 0x47, 0xd5, 0xab, 0x9b, 0xbe, 0x41, 0x33, - 0xbc, 0x79, 0x0c, 0x8d, 0x25, 0x62, 0xe2, 0x45, 0x41, 0xf7, 0xc0, 0x26, 0xc3, 0xd6, 0x08, 0xd6, - 0x37, 0xfd, 0xfa, 0x7b, 0xc4, 0x64, 0x3a, 0xa6, 0xf5, 0x2c, 0x35, 0x0d, 0x06, 0x2b, 0x02, 0xed, - 0xf3, 0x28, 0x46, 0x9e, 0x4a, 0xc5, 0xf5, 0x0a, 0x9a, 0xdb, 0x49, 0x73, 0xc2, 0x47, 0x8e, 0x1e, - 0xd5, 0xd9, 0x8e, 0xea, 0x8c, 0x73, 0xc0, 0xa8, 0x99, 0x91, 0xfd, 0xfc, 0xd3, 0x27, 0x74, 0x57, - 0x64, 0x1e, 0x42, 0x7d, 0x81, 0x51, 0xb8, 0x90, 0x8a, 0xb4, 0x42, 0xf3, 0xc8, 0xec, 0x40, 0x2d, - 0xe1, 0x29, 0x0b, 0xba, 0x15, 0x9b, 0x0c, 0x6b, 0x54, 0x07, 0xa6, 0x09, 0x55, 0x21, 0x71, 0xd9, - 0xad, 0xda, 0x64, 0x78, 0x9f, 0xaa, 0xf3, 0xe0, 0x18, 0x5a, 0xa7, 0x2c, 0x98, 0xe8, 0xb2, 0x7d, - 0x3b, 0x52, 0x6c, 0x37, 0xf8, 0x75, 0x00, 0xf0, 0xe9, 0xcd, 0xbb, 0x7c, 0x6d, 0xf3, 0x0b, 0x1c, - 0x2a, 0xf9, 0xbd, 0xc0, 0x97, 0xbe, 0xa7, 0x7a, 0x7b, 0x42, 0xfa, 0x12, 0xf3, 0x25, 0x9e, 0x14, - 0x55, 0xd3, 0x36, 0x9e, 0x66, 0xf8, 0xb1, 0x2f, 0x7d, 0x9a, 0xa1, 0x3f, 0x64, 0xe0, 0x89, 0x41, - 0x1f, 0xe2, 0xed, 0x6b, 0xf3, 0x05, 0x34, 0x63, 0x11, 0x7a, 0x11, 0x9b, 0x73, 0xb5, 0xd5, 0xdd, - 0x2e, 0x68, 0xc7, 0x26, 0x06, 0x6d, 0xc4, 0xb9, 0x79, 0x6f, 0xe1, 0x9e, 0xd4, 0xfa, 0xea, 0xfa, - 0x8a, 0xaa, 0x7f, 0x5c, 0x5e, 0x5f, 0x70, 0x62, 0x62, 0xd0, 0xb6, 0x2c, 0x18, 0xf3, 0x1a, 0x00, - 0x59, 0xe0, 0xe5, 0x62, 0x54, 0x55, 0x97, 0x7e, 0x79, 0x97, 0x9d, 0x7a, 0x13, 0x83, 0xb6, 0x70, - 0x1b, 0x8c, 0x6a, 0x50, 0x11, 0x69, 0x3c, 0xf8, 0x01, 0x0f, 0x32, 0x9a, 0xa0, 0xa0, 0xde, 0x73, - 0xa8, 0x66, 0x54, 0xb9, 0x56, 0xbd, 0x5b, 0x86, 0x9f, 0x6f, 0xdf, 0xa6, 0x76, 0x7c, 0x95, 0x39, - 0xae, 0x2a, 0xcc, 0x13, 0xfd, 0x34, 0xb5, 0x28, 0x76, 0xf9, 0x38, 0x7b, 0x22, 0xf5, 0x2e, 0x47, - 0x1f, 0xaf, 0xd6, 0x16, 0xb9, 0x5e, 0x5b, 0xe4, 0xef, 0xda, 0x22, 0xab, 0x8d, 0x65, 0x5c, 0x6f, - 0x2c, 0xe3, 0xf7, 0xc6, 0x32, 0x3e, 0xbf, 0x0c, 0x23, 0xb9, 0x48, 0x67, 0xce, 0x05, 0x8f, 0xdd, - 0xe2, 0xf7, 0xda, 0x1f, 0xf5, 0x47, 0x2d, 0xfb, 0x9c, 0xb3, 0xba, 0xca, 0x3d, 0xfd, 0x17, 0x00, - 0x00, 0xff, 0xff, 0x0b, 0xad, 0x1c, 0x1b, 0x07, 0x04, 0x00, 0x00, + // 547 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x53, 0xdf, 0x6a, 0xdb, 0x3e, + 0x14, 0xb6, 0x9a, 0x34, 0x7f, 0x94, 0xdf, 0x8f, 0x81, 0x17, 0x4a, 0x16, 0xa8, 0xe3, 0xa5, 0x0c, + 0x72, 0x65, 0x43, 0xc7, 0xa0, 0xec, 0x66, 0x5b, 0x48, 0x47, 0x02, 0x2b, 0x0c, 0xad, 0x30, 0x18, + 0x03, 0xa3, 0xd4, 0x27, 0x8e, 0xa1, 0x96, 0x8c, 0x25, 0x6f, 0xf4, 0x6a, 0xaf, 0x90, 0xcb, 0xbd, + 0xc9, 0x5e, 0xa1, 0x97, 0xbd, 0xdc, 0x55, 0x37, 0x92, 0x17, 0x19, 0x92, 0x9c, 0xc4, 0xac, 0xde, + 0x9d, 0x8e, 0xce, 0x77, 0xce, 0x77, 0xce, 0xf7, 0x49, 0xd8, 0x91, 0xc0, 0x42, 0xc8, 0x92, 0x98, + 0x49, 0xff, 0x8a, 0x33, 0x01, 0x4c, 0xe4, 0xc2, 0xff, 0x4a, 0xaf, 0xbd, 0x34, 0xe3, 0x92, 0xdb, + 0xdd, 0x7d, 0xde, 0xdb, 0xe5, 0xfb, 0xdd, 0x88, 0x47, 0x5c, 0x03, 0x7c, 0x75, 0x32, 0xd8, 0xbe, + 0x5b, 0xd9, 0x4b, 0xde, 0xa4, 0x20, 0x0a, 0xc4, 0x71, 0x09, 0xa1, 0xef, 0x7d, 0xf8, 0x02, 0x4c, + 0x6e, 0xd3, 0x4e, 0xc4, 0x79, 0x74, 0x0d, 0xbe, 0x8e, 0xe6, 0xf9, 0xc2, 0x0f, 0xf3, 0x8c, 0xca, + 0x98, 0xb3, 0x22, 0x3f, 0xf8, 0x3b, 0x2f, 0xe3, 0x04, 0x84, 0xa4, 0x49, 0x6a, 0x00, 0x43, 0xc0, + 0xcd, 0x0b, 0x11, 0xcd, 0xd8, 0x82, 0xdb, 0x2f, 0x70, 0x2d, 0x11, 0x51, 0x0f, 0xb9, 0x68, 0xd4, + 0x39, 0x3d, 0xf6, 0xaa, 0xd6, 0xf0, 0x2e, 0x40, 0x08, 0x1a, 0xc1, 0xb8, 0x7e, 0x7b, 0x3f, 0xb0, + 0x88, 0xc2, 0xdb, 0x27, 0xb8, 0x99, 0x02, 0x64, 0x41, 0x1c, 0xf6, 0x0e, 0x5c, 0x34, 0x6a, 0x8f, + 0xf1, 0xfa, 0x7e, 0xd0, 0x78, 0x0f, 0x90, 0xcd, 0x26, 0xa4, 0xa1, 0x52, 0xb3, 0x70, 0xb8, 0x42, + 0xb8, 0x73, 0x19, 0x27, 0xc0, 0x73, 0xa9, 0xb9, 0x5e, 0xe1, 0xd6, 0x76, 0xd2, 0x82, 0xf0, 0x89, + 0x67, 0x46, 0xf5, 0xb6, 0xa3, 0x7a, 0x93, 0x02, 0x30, 0x6e, 0x29, 0xb2, 0xef, 0xbf, 0x06, 0x88, + 0xec, 0x8a, 0xec, 0x23, 0xdc, 0x58, 0x42, 0x1c, 0x2d, 0xa5, 0x26, 0xad, 0x91, 0x22, 0xb2, 0xbb, + 0xf8, 0x30, 0xe3, 0x39, 0x0b, 0x7b, 0x35, 0x17, 0x8d, 0x0e, 0x89, 0x09, 0x6c, 0x1b, 0xd7, 0x85, + 0x84, 0xb4, 0x57, 0x77, 0xd1, 0xe8, 0x7f, 0xa2, 0xcf, 0xc3, 0x13, 0xdc, 0x3e, 0x67, 0xe1, 0xd4, + 0x94, 0xed, 0xdb, 0xa1, 0x72, 0xbb, 0xe1, 0x8f, 0x03, 0x8c, 0x3f, 0xbe, 0x79, 0x57, 0xac, 0x6d, + 0x7f, 0xc6, 0x47, 0x5a, 0xfe, 0x20, 0xa4, 0x92, 0x06, 0xba, 0x77, 0x20, 0x24, 0x95, 0x50, 0x2c, + 0xf1, 0xac, 0xac, 0x9a, 0xb1, 0xf1, 0x5c, 0xe1, 0x27, 0x54, 0x52, 0xa2, 0xd0, 0x1f, 0x14, 0x78, + 0x6a, 0x91, 0xc7, 0xf0, 0xf0, 0xda, 0x7e, 0x89, 0x5b, 0x89, 0x88, 0x82, 0x98, 0x2d, 0xb8, 0xde, + 0xea, 0xdf, 0x2e, 0x18, 0xc7, 0xa6, 0x16, 0x69, 0x26, 0x85, 0x79, 0x6f, 0xf1, 0x7f, 0xd2, 0xe8, + 0x6b, 0xea, 0x6b, 0xba, 0xfe, 0x69, 0x75, 0x7d, 0xc9, 0x89, 0xa9, 0x45, 0x3a, 0xb2, 0x64, 0xcc, + 0x6b, 0x8c, 0x81, 0x85, 0x41, 0x21, 0x46, 0x5d, 0x77, 0x19, 0x54, 0x77, 0xd9, 0xa9, 0x37, 0xb5, + 0x48, 0x1b, 0xb6, 0xc1, 0xf8, 0x10, 0xd7, 0x44, 0x9e, 0x0c, 0xbf, 0xe1, 0x47, 0x8a, 0x26, 0x2c, + 0xa9, 0x77, 0x86, 0xeb, 0x8a, 0xaa, 0xd0, 0xaa, 0xff, 0xc0, 0xf0, 0xcb, 0xed, 0xdb, 0x34, 0x8e, + 0xaf, 0x94, 0xe3, 0xba, 0xc2, 0x3e, 0x35, 0x4f, 0xd3, 0x88, 0xe2, 0x56, 0x8f, 0xb3, 0x27, 0xd2, + 0xef, 0x72, 0x4c, 0x6e, 0xd7, 0x0e, 0xba, 0x5b, 0x3b, 0xe8, 0xf7, 0xda, 0x41, 0xab, 0x8d, 0x63, + 0xdd, 0x6d, 0x1c, 0xeb, 0xe7, 0xc6, 0xb1, 0x3e, 0x9d, 0x45, 0xb1, 0x5c, 0xe6, 0x73, 0xef, 0x8a, + 0x27, 0x7e, 0x48, 0xc5, 0x32, 0xa5, 0x37, 0xbe, 0x69, 0xa9, 0x22, 0xf3, 0x57, 0xfc, 0xaa, 0x9f, + 0x39, 0x6f, 0xe8, 0xdc, 0xf3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x41, 0x48, 0x0d, 0x5a, 0x04, + 0x04, 0x00, 0x00, } func (m *MsgInfo) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/consensus/wal.proto b/proto/tendermint/consensus/wal.proto index 44afa2c0c..e2adeb0b2 100644 --- a/proto/tendermint/consensus/wal.proto +++ b/proto/tendermint/consensus/wal.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.consensus; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/consensus"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/consensus"; import "gogoproto/gogo.proto"; import "tendermint/consensus/types.proto"; diff --git a/proto/tendermint/crypto/keys.pb.go b/proto/tendermint/crypto/keys.pb.go index 35b568c62..f1b862ea7 100644 --- a/proto/tendermint/crypto/keys.pb.go +++ b/proto/tendermint/crypto/keys.pb.go @@ -133,7 +133,7 @@ func init() { func init() { proto.RegisterFile("tendermint/crypto/keys.proto", fileDescriptor_cb048658b234868c) } var fileDescriptor_cb048658b234868c = []byte{ - // 217 bytes of a gzipped FileDescriptorProto + // 225 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x29, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0x4f, 0x2e, 0xaa, 0x2c, 0x28, 0xc9, 0xd7, 0xcf, 0x4e, 0xad, 0x2c, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x44, 0xc8, 0xea, 0x41, 0x64, 0xa5, @@ -143,11 +143,12 @@ var fileDescriptor_cb048658b234868c = []byte{ 0x8e, 0x8b, 0xb3, 0x38, 0x35, 0xb9, 0xc0, 0xc8, 0xd4, 0x2c, 0xdb, 0x50, 0x82, 0x09, 0x2a, 0x8b, 0x10, 0x12, 0x92, 0xe1, 0xe2, 0x48, 0xca, 0x29, 0x36, 0x34, 0x32, 0xb6, 0x30, 0x94, 0x60, 0x86, 0x4a, 0xc3, 0x45, 0xac, 0x38, 0x5e, 0x2c, 0x90, 0x67, 0x7c, 0xb1, 0x50, 0x9e, 0xd1, 0x89, 0x95, - 0x8b, 0xb9, 0xb8, 0x34, 0xd7, 0x29, 0xe8, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, + 0x8b, 0xb9, 0xb8, 0x34, 0xd7, 0xc9, 0xff, 0xc4, 0x23, 0x39, 0xc6, 0x0b, 0x8f, 0xe4, 0x18, 0x1f, 0x3c, 0x92, 0x63, 0x9c, 0xf0, 0x58, 0x8e, 0xe1, 0xc2, 0x63, 0x39, 0x86, 0x1b, 0x8f, 0xe5, 0x18, - 0xa2, 0x2c, 0xd2, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x91, 0xfc, 0x88, - 0xc4, 0x84, 0x78, 0x02, 0xc3, 0xff, 0x49, 0x6c, 0x60, 0x09, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x95, 0x99, 0x37, 0xba, 0x1b, 0x01, 0x00, 0x00, + 0xa2, 0x4c, 0xd3, 0x33, 0x4b, 0x32, 0x4a, 0x93, 0xf4, 0x92, 0xf3, 0x73, 0xf5, 0x53, 0x12, 0x8b, + 0x33, 0x0a, 0x12, 0x2b, 0xf5, 0x21, 0xbe, 0x01, 0xf1, 0xf4, 0x21, 0x3e, 0xc0, 0xf0, 0x7c, 0x12, + 0x1b, 0x58, 0xc2, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x91, 0xb6, 0x11, 0x18, 0x01, 0x00, + 0x00, } func (this *PublicKey) Compare(that interface{}) int { diff --git a/proto/tendermint/crypto/keys.proto b/proto/tendermint/crypto/keys.proto index e9228e38d..9b4b64df3 100644 --- a/proto/tendermint/crypto/keys.proto +++ b/proto/tendermint/crypto/keys.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.crypto; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/crypto"; import "gogoproto/gogo.proto"; diff --git a/proto/tendermint/crypto/proof.pb.go b/proto/tendermint/crypto/proof.pb.go index 82fb943fc..5ece1e557 100644 --- a/proto/tendermint/crypto/proof.pb.go +++ b/proto/tendermint/crypto/proof.pb.go @@ -324,29 +324,30 @@ func init() { func init() { proto.RegisterFile("tendermint/crypto/proof.proto", fileDescriptor_6b60b6ba2ab5b856) } var fileDescriptor_6b60b6ba2ab5b856 = []byte{ - // 351 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x52, 0xbb, 0x4e, 0xc3, 0x30, - 0x14, 0x4d, 0xea, 0xf4, 0x75, 0xdb, 0x01, 0xac, 0x0a, 0x45, 0x45, 0x84, 0x28, 0x53, 0xa6, 0x44, - 0x2a, 0x0b, 0x13, 0x43, 0x61, 0x40, 0x30, 0x14, 0x79, 0x60, 0x60, 0x41, 0x6e, 0xeb, 0x36, 0x11, - 0x6d, 0x6c, 0x25, 0x8e, 0x44, 0xff, 0x82, 0xcf, 0xea, 0xd8, 0x91, 0x09, 0xa1, 0xf6, 0x47, 0x90, - 0xed, 0xa0, 0x16, 0x55, 0x6c, 0xe7, 0x71, 0x7d, 0x7c, 0xac, 0x6b, 0xb8, 0x90, 0x2c, 0x9b, 0xb2, - 0x7c, 0x99, 0x66, 0x32, 0x9e, 0xe4, 0x2b, 0x21, 0x79, 0x2c, 0x72, 0xce, 0x67, 0x91, 0xc8, 0xb9, - 0xe4, 0xf8, 0x74, 0x6f, 0x47, 0xc6, 0xee, 0xf7, 0xe6, 0x7c, 0xce, 0xb5, 0x1b, 0x2b, 0x64, 0x06, - 0x83, 0x19, 0xd4, 0x9f, 0xd4, 0x39, 0xdc, 0x83, 0xba, 0xe4, 0x92, 0x2e, 0x5c, 0xdb, 0xb7, 0x43, - 0x44, 0x0c, 0x51, 0x6a, 0x9a, 0x4d, 0xd9, 0xbb, 0x5b, 0x33, 0xaa, 0x26, 0xf8, 0x1c, 0xda, 0x0b, - 0x46, 0x67, 0xaf, 0x09, 0x2d, 0x12, 0x17, 0xf9, 0x76, 0xd8, 0x25, 0x2d, 0x25, 0xdc, 0xd3, 0x22, - 0x51, 0x47, 0x68, 0x99, 0xc9, 0xc2, 0x75, 0x7c, 0x14, 0x76, 0x89, 0x21, 0xc1, 0x23, 0x34, 0x9f, - 0xe9, 0xa2, 0x64, 0x23, 0x81, 0x4f, 0x00, 0xbd, 0xb1, 0x95, 0xbe, 0xa7, 0x4b, 0x14, 0xc4, 0x11, - 0xd4, 0x75, 0x79, 0x7d, 0x4b, 0x67, 0xe0, 0x46, 0x47, 0xed, 0x23, 0x5d, 0x92, 0x98, 0xb1, 0xe0, - 0x01, 0x5a, 0x77, 0x7c, 0x99, 0x66, 0xfc, 0x6f, 0x5a, 0xdb, 0xa4, 0xe9, 0xce, 0xa2, 0x94, 0x3a, - 0xad, 0x4d, 0x0c, 0xc1, 0x67, 0xd0, 0xe0, 0xa5, 0x54, 0x32, 0xd2, 0x72, 0xc5, 0x82, 0x5b, 0x68, - 0xea, 0xec, 0x91, 0xc0, 0x18, 0x1c, 0xb9, 0x12, 0xac, 0xca, 0xd2, 0xf8, 0x37, 0xbe, 0xb6, 0x2f, - 0x8b, 0xc1, 0x99, 0x52, 0x49, 0xab, 0x77, 0x6b, 0x1c, 0xdc, 0x40, 0xab, 0x0a, 0x29, 0xf0, 0x00, - 0x10, 0x17, 0x85, 0x6b, 0xfb, 0x28, 0xec, 0x0c, 0xfa, 0xff, 0x3d, 0x65, 0x24, 0x86, 0xce, 0xfa, - 0xeb, 0xd2, 0x22, 0x6a, 0x78, 0x48, 0xd6, 0x5b, 0xcf, 0xde, 0x6c, 0x3d, 0xfb, 0x7b, 0xeb, 0xd9, - 0x1f, 0x3b, 0xcf, 0xda, 0xec, 0x3c, 0xeb, 0x73, 0xe7, 0x59, 0x2f, 0xd7, 0xf3, 0x54, 0x26, 0xe5, - 0x38, 0x9a, 0xf0, 0x65, 0x7c, 0xb0, 0xf2, 0x03, 0x68, 0x56, 0x7a, 0xf4, 0x1d, 0xc6, 0x0d, 0x6d, - 0x5c, 0xfd, 0x04, 0x00, 0x00, 0xff, 0xff, 0x43, 0x5d, 0xb9, 0x45, 0x2a, 0x02, 0x00, 0x00, + // 357 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xbd, 0x4e, 0xc3, 0x30, + 0x14, 0x85, 0x93, 0x26, 0xfd, 0xbb, 0xed, 0x00, 0x56, 0x85, 0xa2, 0x22, 0x42, 0x94, 0x29, 0x53, + 0x22, 0x15, 0xb1, 0x32, 0x14, 0x06, 0x04, 0x43, 0x90, 0x07, 0x06, 0x16, 0xe4, 0x36, 0x6e, 0x13, + 0xd1, 0xc6, 0x56, 0xe2, 0x48, 0xe4, 0x2d, 0x78, 0xac, 0x8e, 0x1d, 0x99, 0x10, 0x6a, 0x5f, 0x04, + 0xd9, 0x0e, 0xaa, 0x50, 0xc5, 0x76, 0xcf, 0x39, 0xd7, 0x9f, 0x8f, 0x95, 0xc0, 0x85, 0xa0, 0x79, + 0x42, 0x8b, 0x75, 0x96, 0x8b, 0x68, 0x5e, 0xd4, 0x5c, 0xb0, 0x88, 0x17, 0x8c, 0x2d, 0x42, 0x5e, + 0x30, 0xc1, 0xd0, 0xe9, 0x21, 0x0e, 0x75, 0x3c, 0x1e, 0x2d, 0xd9, 0x92, 0xa9, 0x34, 0x92, 0x93, + 0x5e, 0xf4, 0x17, 0xd0, 0x7e, 0x92, 0xe7, 0xd0, 0x08, 0xda, 0x82, 0x09, 0xb2, 0x72, 0x4c, 0xcf, + 0x0c, 0x2c, 0xac, 0x85, 0x74, 0xb3, 0x3c, 0xa1, 0xef, 0x4e, 0x4b, 0xbb, 0x4a, 0xa0, 0x73, 0xe8, + 0xaf, 0x28, 0x59, 0xbc, 0xa6, 0xa4, 0x4c, 0x1d, 0xcb, 0x33, 0x83, 0x21, 0xee, 0x49, 0xe3, 0x9e, + 0x94, 0xa9, 0x3c, 0x42, 0xaa, 0x5c, 0x94, 0x8e, 0xed, 0x59, 0xc1, 0x10, 0x6b, 0xe1, 0x3f, 0x42, + 0xf7, 0x99, 0xac, 0x2a, 0x1a, 0x73, 0x74, 0x02, 0xd6, 0x1b, 0xad, 0xd5, 0x3d, 0x43, 0x2c, 0x47, + 0x14, 0x42, 0x5b, 0x95, 0x57, 0xb7, 0x0c, 0x26, 0x4e, 0x78, 0xd4, 0x3e, 0x54, 0x25, 0xb1, 0x5e, + 0xf3, 0x1f, 0xa0, 0x77, 0xc7, 0xd6, 0x59, 0xce, 0xfe, 0xd2, 0xfa, 0x9a, 0xa6, 0x3a, 0xf3, 0x4a, + 0x28, 0x5a, 0x1f, 0x6b, 0x81, 0xce, 0xa0, 0xc3, 0x2a, 0x21, 0x6d, 0x4b, 0xd9, 0x8d, 0xf2, 0x6f, + 0xa1, 0xab, 0xd8, 0x31, 0x47, 0x08, 0x6c, 0x51, 0x73, 0xda, 0xb0, 0xd4, 0xfc, 0x8b, 0x6f, 0x1d, + 0xca, 0x22, 0xb0, 0x13, 0x22, 0x48, 0xf3, 0x6e, 0x35, 0xfb, 0x37, 0xd0, 0x6b, 0x20, 0x25, 0x9a, + 0x80, 0xc5, 0x78, 0xe9, 0x98, 0x9e, 0x15, 0x0c, 0x26, 0xe3, 0xff, 0x9e, 0x12, 0xf3, 0xa9, 0xbd, + 0xf9, 0xba, 0x34, 0xb0, 0x5c, 0x9e, 0xc6, 0x9b, 0x9d, 0x6b, 0x6e, 0x77, 0xae, 0xf9, 0xbd, 0x73, + 0xcd, 0x8f, 0xbd, 0x6b, 0x6c, 0xf7, 0xae, 0xf1, 0xb9, 0x77, 0x8d, 0x97, 0xeb, 0x65, 0x26, 0xd2, + 0x6a, 0x16, 0xce, 0xd9, 0x3a, 0x4a, 0x48, 0x99, 0x72, 0x52, 0x47, 0x1a, 0x29, 0x55, 0xa4, 0xbf, + 0xe7, 0xd1, 0xbf, 0x30, 0xeb, 0xa8, 0xe0, 0xea, 0x27, 0x00, 0x00, 0xff, 0xff, 0x91, 0x1f, 0xd8, + 0x7b, 0x27, 0x02, 0x00, 0x00, } func (m *Proof) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/crypto/proof.proto b/proto/tendermint/crypto/proof.proto index 975df7685..36a5acf08 100644 --- a/proto/tendermint/crypto/proof.proto +++ b/proto/tendermint/crypto/proof.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.crypto; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/crypto"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/crypto"; import "gogoproto/gogo.proto"; diff --git a/proto/tendermint/libs/bits/types.pb.go b/proto/tendermint/libs/bits/types.pb.go index c0ebcb976..29bb8e901 100644 --- a/proto/tendermint/libs/bits/types.pb.go +++ b/proto/tendermint/libs/bits/types.pb.go @@ -81,18 +81,18 @@ func init() { func init() { proto.RegisterFile("tendermint/libs/bits/types.proto", fileDescriptor_e91ab2672920d7d4) } var fileDescriptor_e91ab2672920d7d4 = []byte{ - // 168 bytes of a gzipped FileDescriptorProto + // 176 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x52, 0x28, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0xcf, 0xc9, 0x4c, 0x2a, 0xd6, 0x4f, 0xca, 0x2c, 0x29, 0xd6, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x41, 0xa8, 0xd0, 0x03, 0xa9, 0xd0, 0x03, 0xa9, 0x50, 0x32, 0xe1, 0xe2, 0x70, 0xca, 0x2c, 0x71, 0x2c, 0x2a, 0x4a, 0xac, 0x14, 0x12, 0xe2, 0x62, 0x01, 0x89, 0x49, 0x30, 0x2a, 0x30, 0x6a, 0x30, 0x07, 0x81, 0xd9, 0x42, 0x22, 0x5c, 0xac, 0xa9, 0x39, 0xa9, 0xb9, 0xc5, 0x12, 0x4c, 0x0a, 0xcc, 0x1a, 0x2c, - 0x41, 0x10, 0x8e, 0x53, 0xe8, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, + 0x41, 0x10, 0x8e, 0x53, 0xd0, 0x89, 0x47, 0x72, 0x8c, 0x17, 0x1e, 0xc9, 0x31, 0x3e, 0x78, 0x24, 0xc7, 0x38, 0xe1, 0xb1, 0x1c, 0xc3, 0x85, 0xc7, 0x72, 0x0c, 0x37, 0x1e, 0xcb, 0x31, 0x44, 0x59, - 0xa7, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0x23, 0x39, 0x09, 0x89, 0x09, - 0x76, 0x8d, 0x3e, 0x36, 0xe7, 0x26, 0xb1, 0x81, 0xe5, 0x8c, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x5b, 0x0c, 0xe3, 0x3e, 0xcd, 0x00, 0x00, 0x00, + 0xa4, 0x67, 0x96, 0x64, 0x94, 0x26, 0xe9, 0x25, 0xe7, 0xe7, 0xea, 0xa7, 0x24, 0x16, 0x67, 0x14, + 0x24, 0x56, 0xea, 0x43, 0x2c, 0x06, 0xf1, 0xf4, 0xc1, 0x4e, 0xd1, 0xc7, 0xe6, 0xd6, 0x24, 0x36, + 0xb0, 0x9c, 0x31, 0x20, 0x00, 0x00, 0xff, 0xff, 0xdd, 0x08, 0x27, 0x9d, 0xca, 0x00, 0x00, 0x00, } func (m *BitArray) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/libs/bits/types.proto b/proto/tendermint/libs/bits/types.proto index 3111d113a..48ab07aa9 100644 --- a/proto/tendermint/libs/bits/types.proto +++ b/proto/tendermint/libs/bits/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.libs.bits; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/libs/bits"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/libs/bits"; message BitArray { int64 bits = 1; diff --git a/proto/tendermint/mempool/types.pb.go b/proto/tendermint/mempool/types.pb.go index c3a80bcde..ab074c9c3 100644 --- a/proto/tendermint/mempool/types.pb.go +++ b/proto/tendermint/mempool/types.pb.go @@ -73,16 +73,17 @@ func init() { func init() { proto.RegisterFile("tendermint/mempool/types.proto", fileDescriptor_2af51926fdbcbc05) } var fileDescriptor_2af51926fdbcbc05 = []byte{ - // 141 bytes of a gzipped FileDescriptorProto + // 149 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2b, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0xcf, 0x4d, 0xcd, 0x2d, 0xc8, 0xcf, 0xcf, 0xd1, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x42, 0xc8, 0xeb, 0x41, 0xe5, 0x95, 0xc4, 0xb9, 0x98, 0x43, 0x2a, 0x8a, 0x85, 0x04, 0xb8, 0x98, 0x4b, 0x2a, 0x8a, 0x25, - 0x18, 0x15, 0x98, 0x35, 0x78, 0x82, 0x40, 0x4c, 0xa7, 0xe0, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, + 0x18, 0x15, 0x98, 0x35, 0x78, 0x82, 0x40, 0x4c, 0xa7, 0x80, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63, 0x7c, 0xf0, 0x48, 0x8e, 0x71, 0xc2, 0x63, 0x39, 0x86, 0x0b, 0x8f, 0xe5, 0x18, 0x6e, - 0x3c, 0x96, 0x63, 0x88, 0xb2, 0x4c, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, - 0x47, 0xb2, 0x11, 0x89, 0x09, 0xb6, 0x4e, 0x1f, 0xd3, 0x35, 0x49, 0x6c, 0x60, 0x19, 0x63, 0x40, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x48, 0x57, 0x8e, 0xa7, 0xaa, 0x00, 0x00, 0x00, + 0x3c, 0x96, 0x63, 0x88, 0x32, 0x4b, 0xcf, 0x2c, 0xc9, 0x28, 0x4d, 0xd2, 0x4b, 0xce, 0xcf, 0xd5, + 0x4f, 0x49, 0x2c, 0xce, 0x28, 0x48, 0xac, 0xd4, 0x87, 0x98, 0x0c, 0xe2, 0xe9, 0x83, 0xed, 0xd2, + 0xc7, 0x74, 0x4a, 0x12, 0x1b, 0x58, 0xc6, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x67, 0x13, + 0xf0, 0xa7, 0x00, 0x00, 0x00, } func (m *Txs) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/mempool/types.proto b/proto/tendermint/mempool/types.proto index fff3e93e5..0bddaea43 100644 --- a/proto/tendermint/mempool/types.proto +++ b/proto/tendermint/mempool/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.mempool; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/mempool"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/mempool"; message Txs { repeated bytes txs = 1; diff --git a/proto/tendermint/p2p/conn.pb.go b/proto/tendermint/p2p/conn.pb.go index 16ee463a6..3a2727cd0 100644 --- a/proto/tendermint/p2p/conn.pb.go +++ b/proto/tendermint/p2p/conn.pb.go @@ -5,9 +5,9 @@ package p2p import ( fmt "fmt" + crypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" - crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" io "io" math "math" math_bits "math/bits" @@ -318,32 +318,32 @@ func init() { func init() { proto.RegisterFile("tendermint/p2p/conn.proto", fileDescriptor_22474b5527c8fa9f) } var fileDescriptor_22474b5527c8fa9f = []byte{ - // 395 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x52, 0x3d, 0x8f, 0xd3, 0x40, - 0x10, 0xf5, 0xe2, 0xbb, 0x1c, 0x99, 0x84, 0x13, 0x5a, 0x51, 0x24, 0xd1, 0xc9, 0x89, 0x5c, 0xa5, - 0x40, 0xb6, 0x64, 0x44, 0x03, 0xa2, 0xc0, 0x7c, 0x88, 0xd3, 0x29, 0xba, 0xc8, 0x74, 0x34, 0x96, - 0x3f, 0x96, 0xf5, 0x2a, 0xe7, 0xdd, 0x55, 0x76, 0x5d, 0xf8, 0x5f, 0xf0, 0xb3, 0x8e, 0xee, 0x4a, - 0xaa, 0x08, 0x39, 0x7f, 0x04, 0x79, 0x1d, 0x88, 0x23, 0x71, 0xdd, 0x7b, 0x33, 0xf3, 0xe6, 0x43, - 0xf3, 0x60, 0xaa, 0x09, 0xcf, 0xc9, 0xb6, 0x64, 0x5c, 0xfb, 0x32, 0x90, 0x7e, 0x26, 0x38, 0xf7, - 0xe4, 0x56, 0x68, 0x81, 0x2f, 0x8f, 0x29, 0x4f, 0x06, 0x72, 0xf6, 0x82, 0x0a, 0x2a, 0x4c, 0xca, - 0x6f, 0x51, 0x57, 0x35, 0xbb, 0xea, 0x35, 0xc8, 0xb6, 0xb5, 0xd4, 0xc2, 0xdf, 0x90, 0x5a, 0x75, - 0x59, 0x77, 0x0c, 0xb0, 0x4e, 0xb2, 0x0d, 0xd1, 0x6b, 0xc6, 0x69, 0x8f, 0x09, 0x4e, 0xdd, 0x02, - 0x86, 0x1d, 0x5b, 0x29, 0x8a, 0x5f, 0x02, 0x64, 0x45, 0xc2, 0x39, 0xb9, 0x8b, 0x59, 0x3e, 0x41, - 0x0b, 0xb4, 0x3c, 0x0f, 0x9f, 0x35, 0xbb, 0xf9, 0xf0, 0x43, 0x17, 0xbd, 0xfe, 0x18, 0x0d, 0x0f, - 0x05, 0xd7, 0x39, 0x9e, 0x82, 0x4d, 0xc4, 0xf7, 0xc9, 0x93, 0x05, 0x5a, 0x3e, 0x0d, 0x2f, 0x9a, - 0xdd, 0xdc, 0xfe, 0x74, 0xfb, 0x39, 0x6a, 0x63, 0x18, 0xc3, 0x59, 0x9e, 0xe8, 0x64, 0x62, 0x2f, - 0xd0, 0x72, 0x1c, 0x19, 0xec, 0xfe, 0x44, 0x30, 0xe8, 0x46, 0xe1, 0x77, 0x30, 0x92, 0x06, 0xc5, - 0x92, 0x71, 0x6a, 0x06, 0x8d, 0x82, 0x99, 0x77, 0x7a, 0xaa, 0x77, 0xdc, 0xf9, 0x8b, 0x15, 0x81, - 0xfc, 0xc7, 0xfa, 0x72, 0xc1, 0xa9, 0x59, 0xe0, 0x71, 0xb9, 0x38, 0x91, 0x0b, 0x4e, 0xf1, 0x1b, - 0x38, 0xb0, 0xb8, 0x54, 0xd4, 0xac, 0x38, 0x0a, 0xa6, 0xff, 0x57, 0xaf, 0x54, 0x2b, 0x1e, 0xca, - 0xbf, 0x24, 0x3c, 0x07, 0x5b, 0x55, 0xa5, 0x1b, 0xc3, 0xe5, 0xfb, 0x4a, 0x17, 0x5f, 0x19, 0x5d, - 0x11, 0xa5, 0x12, 0x4a, 0xf0, 0x5b, 0xb8, 0x90, 0x55, 0x1a, 0x6f, 0x48, 0x7d, 0x38, 0xe7, 0xaa, - 0xdf, 0xb1, 0xfb, 0x89, 0xb7, 0xae, 0xd2, 0x3b, 0x96, 0xdd, 0x90, 0x3a, 0x3c, 0xbb, 0xdf, 0xcd, - 0xad, 0x68, 0x20, 0xab, 0xf4, 0x86, 0xd4, 0xf8, 0x39, 0xd8, 0x8a, 0x75, 0x87, 0x8c, 0xa3, 0x16, - 0x86, 0xb7, 0xf7, 0x8d, 0x83, 0x1e, 0x1a, 0x07, 0xfd, 0x6e, 0x1c, 0xf4, 0x63, 0xef, 0x58, 0x0f, - 0x7b, 0xc7, 0xfa, 0xb5, 0x77, 0xac, 0x6f, 0xaf, 0x29, 0xd3, 0x45, 0x95, 0x7a, 0x99, 0x28, 0xfd, - 0xde, 0xd7, 0xfb, 0x0e, 0x32, 0xee, 0x38, 0xb5, 0x54, 0x3a, 0x30, 0xd1, 0x57, 0x7f, 0x02, 0x00, - 0x00, 0xff, 0xff, 0x30, 0xfd, 0xb2, 0x8d, 0x6b, 0x02, 0x00, 0x00, + // 399 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xcb, 0x8e, 0xd3, 0x30, + 0x14, 0x86, 0x63, 0x32, 0xd3, 0x21, 0xa7, 0x65, 0x84, 0x2c, 0x16, 0x6d, 0x35, 0x4a, 0xab, 0xac, + 0xba, 0x40, 0x89, 0x14, 0x76, 0x20, 0x16, 0x84, 0x8b, 0x18, 0x0d, 0x15, 0x55, 0xd8, 0xb1, 0x89, + 0x72, 0x31, 0x8e, 0xd5, 0x89, 0x6d, 0xd5, 0xce, 0x22, 0x6f, 0xc1, 0x63, 0x0d, 0xbb, 0x59, 0xb2, + 0xaa, 0x50, 0xfa, 0x22, 0x28, 0x71, 0x61, 0x52, 0x09, 0x76, 0xff, 0x77, 0x8e, 0xff, 0x73, 0x91, + 0x0f, 0xcc, 0x34, 0xe1, 0x05, 0xd9, 0x55, 0x8c, 0xeb, 0x40, 0x86, 0x32, 0xc8, 0x05, 0xe7, 0xbe, + 0xdc, 0x09, 0x2d, 0xf0, 0xe5, 0x43, 0xca, 0x97, 0xa1, 0x9c, 0x3f, 0xa3, 0x82, 0x8a, 0x3e, 0x15, + 0x74, 0xca, 0xbc, 0x9a, 0x5f, 0x0d, 0x0a, 0xe4, 0xbb, 0x46, 0x6a, 0x11, 0x6c, 0x49, 0xa3, 0x4c, + 0xd6, 0x9b, 0x00, 0x6c, 0xd2, 0x7c, 0x4b, 0xf4, 0x86, 0x71, 0x3a, 0x20, 0xc1, 0xa9, 0x57, 0x82, + 0x63, 0x68, 0xad, 0x28, 0x7e, 0x0e, 0x90, 0x97, 0x29, 0xe7, 0xe4, 0x36, 0x61, 0xc5, 0x14, 0x2d, + 0xd1, 0xea, 0x3c, 0x7a, 0xd2, 0xee, 0x17, 0xce, 0x5b, 0x13, 0xbd, 0x7e, 0x17, 0x3b, 0xc7, 0x07, + 0xd7, 0x05, 0x9e, 0x81, 0x4d, 0xc4, 0xb7, 0xe9, 0xa3, 0x25, 0x5a, 0x3d, 0x8e, 0x2e, 0xda, 0xfd, + 0xc2, 0x7e, 0xff, 0xf9, 0x43, 0xdc, 0xc5, 0x30, 0x86, 0xb3, 0x22, 0xd5, 0xe9, 0xd4, 0x5e, 0xa2, + 0xd5, 0x24, 0xee, 0xb5, 0xf7, 0x03, 0xc1, 0xc8, 0xb4, 0xc2, 0xaf, 0x61, 0x2c, 0x7b, 0x95, 0x48, + 0xc6, 0x69, 0xdf, 0x68, 0x1c, 0xce, 0xfd, 0xd3, 0x55, 0xfd, 0x87, 0x99, 0x3f, 0x5a, 0x31, 0xc8, + 0xbf, 0x34, 0xb4, 0x0b, 0x4e, 0xfb, 0x01, 0xfe, 0x6f, 0x17, 0x27, 0x76, 0xc1, 0x29, 0x7e, 0x09, + 0x47, 0x4a, 0x2a, 0x45, 0xfb, 0x11, 0xc7, 0xe1, 0xec, 0xdf, 0xee, 0xb5, 0xea, 0xcc, 0x8e, 0xfc, + 0x03, 0xd1, 0x39, 0xd8, 0xaa, 0xae, 0xbc, 0x04, 0x2e, 0xdf, 0xd4, 0xba, 0xfc, 0xc2, 0xe8, 0x9a, + 0x28, 0x95, 0x52, 0x82, 0x5f, 0xc1, 0x85, 0xac, 0xb3, 0x64, 0x4b, 0x9a, 0xe3, 0x3a, 0x57, 0xc3, + 0x8a, 0xe6, 0x4f, 0xfc, 0x4d, 0x9d, 0xdd, 0xb2, 0xfc, 0x86, 0x34, 0xd1, 0xd9, 0xdd, 0x7e, 0x61, + 0xc5, 0x23, 0x59, 0x67, 0x37, 0xa4, 0xc1, 0x4f, 0xc1, 0x56, 0xcc, 0x2c, 0x32, 0x89, 0x3b, 0x19, + 0x7d, 0xba, 0x6b, 0x5d, 0x74, 0xdf, 0xba, 0xe8, 0x57, 0xeb, 0xa2, 0xef, 0x07, 0xd7, 0xba, 0x3f, + 0xb8, 0xd6, 0xcf, 0x83, 0x6b, 0x7d, 0x0d, 0x29, 0xd3, 0x65, 0x9d, 0xf9, 0xb9, 0xa8, 0x82, 0x22, + 0x55, 0xa5, 0x4c, 0x9b, 0xc0, 0x74, 0xea, 0x28, 0x30, 0xa7, 0x71, 0x7a, 0x4f, 0xd9, 0xa8, 0x8f, + 0xbe, 0xf8, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x5d, 0xa5, 0x2b, 0x72, 0x68, 0x02, 0x00, 0x00, } func (m *PacketPing) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/p2p/conn.proto b/proto/tendermint/p2p/conn.proto index b12de6c82..82cd0161a 100644 --- a/proto/tendermint/p2p/conn.proto +++ b/proto/tendermint/p2p/conn.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.p2p; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/p2p"; import "gogoproto/gogo.proto"; import "tendermint/crypto/keys.proto"; diff --git a/proto/tendermint/p2p/envelope.go b/proto/tendermint/p2p/envelope.go index 11a8b9a07..de9d60414 100644 --- a/proto/tendermint/p2p/envelope.go +++ b/proto/tendermint/p2p/envelope.go @@ -5,11 +5,11 @@ import ( "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/proto/tendermint/blocksync" - "github.com/tendermint/tendermint/proto/tendermint/consensus" - "github.com/tendermint/tendermint/proto/tendermint/mempool" - "github.com/tendermint/tendermint/proto/tendermint/statesync" - "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + "github.com/dashpay/tenderdash/proto/tendermint/consensus" + "github.com/dashpay/tenderdash/proto/tendermint/mempool" + "github.com/dashpay/tenderdash/proto/tendermint/statesync" + "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/proto/tendermint/p2p/pex.pb.go b/proto/tendermint/p2p/pex.pb.go index 4f7bf0a2d..750596fa0 100644 --- a/proto/tendermint/p2p/pex.pb.go +++ b/proto/tendermint/p2p/pex.pb.go @@ -156,7 +156,7 @@ func init() { func init() { proto.RegisterFile("tendermint/p2p/pex.proto", fileDescriptor_81c2f011fd13be57) } var fileDescriptor_81c2f011fd13be57 = []byte{ - // 220 bytes of a gzipped FileDescriptorProto + // 228 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x28, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0x2f, 0x30, 0x2a, 0xd0, 0x2f, 0x48, 0xad, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x43, 0xc8, 0xe8, 0x15, 0x18, 0x15, 0x48, 0x89, 0xa4, 0xe7, @@ -166,11 +166,12 @@ var fileDescriptor_81c2f011fd13be57 = []byte{ 0x4a, 0x3c, 0x60, 0x85, 0x41, 0xa9, 0x85, 0xa5, 0xa9, 0xc5, 0x25, 0x4a, 0xbe, 0x5c, 0xdc, 0x60, 0x5e, 0x71, 0x41, 0x7e, 0x5e, 0x71, 0xaa, 0x90, 0x1d, 0x17, 0x67, 0x22, 0xc4, 0x88, 0xd4, 0x62, 0x09, 0x46, 0x05, 0x66, 0x0d, 0x6e, 0x23, 0x29, 0x3d, 0x54, 0xfb, 0xf5, 0x10, 0xd6, 0x38, 0xb1, - 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x84, 0xd0, 0xe2, 0xe4, 0x7f, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, + 0x9c, 0xb8, 0x27, 0xcf, 0x10, 0x84, 0xd0, 0xe2, 0xe4, 0x73, 0xe2, 0x91, 0x1c, 0xe3, 0x85, 0x47, 0x72, 0x8c, 0x0f, 0x1e, 0xc9, 0x31, 0x4e, 0x78, 0x2c, 0xc7, 0x70, 0xe1, 0xb1, 0x1c, 0xc3, 0x8d, - 0xc7, 0x72, 0x0c, 0x51, 0xa6, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, - 0x48, 0x5e, 0x45, 0xf6, 0x35, 0xd8, 0x4b, 0xa8, 0xc1, 0x90, 0xc4, 0x06, 0x16, 0x35, 0x06, 0x04, - 0x00, 0x00, 0xff, 0xff, 0xe7, 0x5b, 0xe7, 0x33, 0x1f, 0x01, 0x00, 0x00, + 0xc7, 0x72, 0x0c, 0x51, 0x46, 0xe9, 0x99, 0x25, 0x19, 0xa5, 0x49, 0x7a, 0xc9, 0xf9, 0xb9, 0xfa, + 0x29, 0x89, 0xc5, 0x19, 0x05, 0x89, 0x95, 0xfa, 0x10, 0x83, 0x41, 0x3c, 0x7d, 0x88, 0x7f, 0x50, + 0xc3, 0x20, 0x89, 0x0d, 0x2c, 0x6a, 0x0c, 0x08, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x25, 0xe4, 0x91, + 0x1c, 0x01, 0x00, 0x00, } func (m *PexAddress) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/p2p/pex.proto b/proto/tendermint/p2p/pex.proto index 04e17256c..dcc8367d1 100644 --- a/proto/tendermint/p2p/pex.proto +++ b/proto/tendermint/p2p/pex.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.p2p; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/p2p"; import "gogoproto/gogo.proto"; diff --git a/proto/tendermint/p2p/types.pb.go b/proto/tendermint/p2p/types.pb.go index 937d2b142..14aeefe3c 100644 --- a/proto/tendermint/p2p/types.pb.go +++ b/proto/tendermint/p2p/types.pb.go @@ -5,15 +5,15 @@ package p2p import ( fmt "fmt" + blocksync "github.com/dashpay/tenderdash/proto/tendermint/blocksync" + consensus "github.com/dashpay/tenderdash/proto/tendermint/consensus" + mempool "github.com/dashpay/tenderdash/proto/tendermint/mempool" + statesync "github.com/dashpay/tenderdash/proto/tendermint/statesync" + types1 "github.com/dashpay/tenderdash/proto/tendermint/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" _ "github.com/gogo/protobuf/types" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - blocksync "github.com/tendermint/tendermint/proto/tendermint/blocksync" - consensus "github.com/tendermint/tendermint/proto/tendermint/consensus" - mempool "github.com/tendermint/tendermint/proto/tendermint/mempool" - statesync "github.com/tendermint/tendermint/proto/tendermint/statesync" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" io "io" math "math" math_bits "math/bits" @@ -899,97 +899,97 @@ func init() { func init() { proto.RegisterFile("tendermint/p2p/types.proto", fileDescriptor_c8a29e659aeca578) } var fileDescriptor_c8a29e659aeca578 = []byte{ - // 1433 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0x4b, 0x6f, 0xdb, 0xc6, - 0x16, 0x96, 0xe4, 0x97, 0x74, 0x64, 0x59, 0xf6, 0xc4, 0x37, 0x61, 0x9c, 0x44, 0xf2, 0x75, 0xee, - 0xc3, 0xb8, 0x0b, 0xe9, 0x42, 0x41, 0x8b, 0x34, 0x68, 0x80, 0x44, 0x8e, 0x13, 0xb9, 0x70, 0x62, - 0x81, 0x76, 0x83, 0xbe, 0x00, 0x82, 0x22, 0xc7, 0x26, 0x6b, 0x6a, 0x66, 0xca, 0x19, 0x29, 0xf2, - 0xbf, 0xc8, 0xcf, 0xca, 0xa2, 0x8b, 0x2c, 0xbb, 0x72, 0x0b, 0x67, 0xd1, 0x45, 0xfb, 0x23, 0x8a, - 0x19, 0x0e, 0x1f, 0xa2, 0x5c, 0x25, 0xbb, 0x39, 0x67, 0xbe, 0xef, 0xd3, 0x99, 0xef, 0x1c, 0x0d, - 0x49, 0xd8, 0x12, 0x98, 0xb8, 0x38, 0x1c, 0xfa, 0x44, 0xb4, 0x59, 0x87, 0xb5, 0xc5, 0x05, 0xc3, - 0xbc, 0xc5, 0x42, 0x2a, 0x28, 0x5a, 0x4b, 0xf7, 0x5a, 0xac, 0xc3, 0xb6, 0x36, 0xcf, 0xe8, 0x19, - 0x55, 0x5b, 0x6d, 0xb9, 0x8a, 0x50, 0x5b, 0xdb, 0x19, 0x85, 0x41, 0x40, 0x9d, 0x73, 0x7e, 0x41, - 0x9c, 0xac, 0xce, 0x14, 0xc2, 0xa1, 0x84, 0x63, 0xc2, 0x47, 0xfc, 0x6f, 0x11, 0x5c, 0xd8, 0x02, - 0xcf, 0x68, 0x34, 0x33, 0x08, 0x95, 0x6f, 0xe3, 0xb1, 0xef, 0x62, 0xe2, 0x60, 0x0d, 0x68, 0x64, - 0x00, 0x43, 0x3c, 0x64, 0x94, 0x06, 0x53, 0x02, 0x46, 0xee, 0xa0, 0x0c, 0x4f, 0x62, 0xe9, 0x33, - 0x4a, 0xcf, 0x02, 0xdc, 0x56, 0xd1, 0x60, 0x74, 0xda, 0x16, 0xfe, 0x10, 0x73, 0x61, 0x0f, 0x59, - 0x04, 0xd8, 0x39, 0x81, 0x7a, 0x5f, 0x2e, 0x1c, 0x1a, 0xbc, 0xc6, 0x21, 0xf7, 0x29, 0x41, 0xb7, - 0x61, 0x81, 0x75, 0x98, 0x51, 0xdc, 0x2e, 0xee, 0x2e, 0x76, 0x57, 0xae, 0x2e, 0x9b, 0x0b, 0xfd, - 0x4e, 0xdf, 0x94, 0x39, 0xb4, 0x09, 0x4b, 0xca, 0x06, 0xa3, 0x24, 0x37, 0xcd, 0x28, 0x40, 0xeb, - 0xb0, 0x60, 0x33, 0x66, 0x2c, 0xa8, 0x9c, 0x5c, 0xee, 0xfc, 0x5e, 0x82, 0xf2, 0x2b, 0xea, 0xe2, - 0x03, 0x72, 0x4a, 0x51, 0x1f, 0xd6, 0x99, 0xfe, 0x09, 0x6b, 0x1c, 0xfd, 0x86, 0x12, 0xaf, 0x76, - 0x9a, 0xad, 0xe9, 0x2e, 0xb4, 0x72, 0xa5, 0x74, 0x17, 0xdf, 0x5d, 0x36, 0x0b, 0x66, 0x9d, 0xe5, - 0x2a, 0xbc, 0x0f, 0x2b, 0x84, 0xba, 0xd8, 0xf2, 0x5d, 0x55, 0x48, 0xa5, 0x0b, 0x57, 0x97, 0xcd, - 0x65, 0xf5, 0x83, 0xcf, 0xcc, 0x65, 0xb9, 0x75, 0xe0, 0xa2, 0x26, 0x54, 0x03, 0x9f, 0x0b, 0x4c, - 0x2c, 0xdb, 0x75, 0x43, 0x55, 0x5d, 0xc5, 0x84, 0x28, 0xf5, 0xd4, 0x75, 0x43, 0x64, 0xc0, 0x0a, - 0xc1, 0xe2, 0x0d, 0x0d, 0xcf, 0x8d, 0x45, 0xb5, 0x19, 0x87, 0x72, 0x27, 0x2e, 0x74, 0x29, 0xda, - 0xd1, 0x21, 0xda, 0x82, 0xb2, 0xe3, 0xd9, 0x84, 0xe0, 0x80, 0x1b, 0xcb, 0xdb, 0xc5, 0xdd, 0x55, - 0x33, 0x89, 0x25, 0x6b, 0x48, 0x89, 0x7f, 0x8e, 0x43, 0x63, 0x25, 0x62, 0xe9, 0x10, 0x7d, 0x01, - 0x4b, 0x54, 0x78, 0x38, 0x34, 0xca, 0xea, 0xd8, 0xf7, 0xf2, 0xc7, 0x8e, 0xad, 0x3a, 0x92, 0x20, - 0x7d, 0xe8, 0x88, 0x81, 0x1a, 0x50, 0x65, 0x21, 0xb5, 0xc4, 0xc4, 0xf2, 0x6c, 0xee, 0x19, 0x15, - 0xf5, 0x9b, 0x15, 0x16, 0xd2, 0x93, 0x49, 0xcf, 0xe6, 0xde, 0xce, 0xf7, 0x50, 0x9b, 0x62, 0xa3, - 0xdb, 0x50, 0x16, 0x13, 0xcb, 0x27, 0x2e, 0x9e, 0x28, 0x97, 0x2b, 0xe6, 0x8a, 0x98, 0x1c, 0xc8, - 0x10, 0xb5, 0xa1, 0x1a, 0x32, 0x47, 0xd9, 0x81, 0x39, 0xd7, 0xd6, 0xad, 0x5d, 0x5d, 0x36, 0xc1, - 0xec, 0xef, 0x3d, 0x8d, 0xb2, 0x26, 0x84, 0xcc, 0xd1, 0xeb, 0x9d, 0x3f, 0x8a, 0x50, 0xee, 0x63, - 0x1c, 0xaa, 0x36, 0xde, 0x84, 0x92, 0xef, 0x46, 0x92, 0xdd, 0xe5, 0xab, 0xcb, 0x66, 0xe9, 0xe0, - 0x99, 0x59, 0xf2, 0x5d, 0xd4, 0x85, 0x55, 0xad, 0x68, 0xf9, 0xe4, 0x94, 0x1a, 0xa5, 0xed, 0x85, - 0x6b, 0x5b, 0x8b, 0x71, 0xa8, 0x75, 0xa5, 0x9c, 0x59, 0xb5, 0xd3, 0x00, 0xbd, 0x80, 0xb5, 0xc0, - 0xe6, 0xc2, 0x72, 0x28, 0x21, 0xd8, 0x11, 0xd8, 0x55, 0xed, 0xaa, 0x76, 0xb6, 0x5a, 0xd1, 0xfc, - 0xb6, 0xe2, 0xf9, 0x6d, 0x9d, 0xc4, 0xf3, 0xdb, 0x5d, 0x7c, 0xfb, 0x6b, 0xb3, 0x68, 0xd6, 0x24, - 0x6f, 0x2f, 0xa6, 0xc9, 0xfe, 0xf8, 0xc4, 0x76, 0x84, 0x3f, 0xc6, 0xaa, 0xa9, 0x65, 0x33, 0x89, - 0xf3, 0x56, 0x2e, 0xe5, 0xad, 0xfc, 0xb3, 0x08, 0xf5, 0x5c, 0x95, 0xb2, 0xa7, 0xb1, 0x5d, 0xda, - 0x4c, 0x1d, 0xa2, 0x43, 0xd8, 0x50, 0x25, 0xbb, 0xbe, 0x1d, 0x58, 0x7c, 0xe4, 0x38, 0xb1, 0xa5, - 0x9f, 0x52, 0x75, 0x5d, 0x52, 0x9f, 0xf9, 0x76, 0x70, 0x1c, 0x11, 0xa7, 0xd5, 0x4e, 0x6d, 0x3f, - 0x18, 0x85, 0xf8, 0x93, 0x3d, 0x48, 0xd4, 0x9e, 0x47, 0x44, 0x74, 0x1f, 0x6a, 0x59, 0x21, 0xae, - 0xac, 0xa8, 0x99, 0xab, 0x6e, 0x8a, 0xe1, 0x3b, 0x77, 0x61, 0x71, 0xdf, 0xf1, 0xa8, 0xfc, 0x4f, - 0x8f, 0xed, 0x60, 0x84, 0xf5, 0x01, 0xa3, 0x60, 0xe7, 0xe7, 0x0d, 0x28, 0xef, 0x93, 0x31, 0x0e, - 0x28, 0xc3, 0xa8, 0x07, 0x60, 0x0b, 0x11, 0xfa, 0x83, 0x91, 0xc0, 0xd2, 0x08, 0xd9, 0xe0, 0xdd, - 0x7c, 0x83, 0x63, 0x74, 0xeb, 0x69, 0x02, 0xdd, 0x27, 0x22, 0xbc, 0x30, 0x33, 0x5c, 0xf4, 0x3f, - 0x58, 0xc4, 0x8e, 0x47, 0xb5, 0x51, 0x9b, 0x33, 0x1a, 0x8e, 0x47, 0x7b, 0x05, 0x53, 0x61, 0xd0, - 0x63, 0xa8, 0x32, 0x3c, 0xb1, 0x42, 0xfc, 0xd3, 0x08, 0x73, 0x91, 0xb8, 0x31, 0x33, 0x57, 0x13, - 0x33, 0x42, 0xf4, 0x0a, 0x26, 0xb0, 0x24, 0x42, 0x4f, 0x60, 0x35, 0xa2, 0x73, 0x26, 0xef, 0x65, - 0xe5, 0x41, 0xb5, 0x73, 0xe7, 0x5a, 0x7e, 0x04, 0xe9, 0x15, 0xcc, 0x2a, 0x4b, 0x43, 0xf4, 0x10, - 0xca, 0xf1, 0x45, 0xac, 0xa6, 0x25, 0xf7, 0xeb, 0xd1, 0x0d, 0xbc, 0xaf, 0x11, 0xbd, 0x82, 0x99, - 0xa0, 0xd1, 0x23, 0xa8, 0xea, 0x7b, 0xda, 0x12, 0x93, 0xe8, 0xa6, 0xa8, 0x76, 0x6e, 0x65, 0xc9, - 0x7a, 0xbb, 0x75, 0x32, 0xe1, 0xb2, 0x6e, 0x1d, 0x9e, 0x4c, 0x38, 0x3a, 0x80, 0x9a, 0xba, 0x56, - 0x93, 0x83, 0xaf, 0x28, 0xf6, 0x4e, 0x96, 0x9d, 0x3c, 0x8b, 0x5a, 0x5d, 0xb9, 0x4a, 0x0d, 0x58, - 0x1d, 0x64, 0x62, 0x74, 0x0c, 0x1b, 0x84, 0x5a, 0xb1, 0x9a, 0xf6, 0x21, 0xba, 0x83, 0xfe, 0x7d, - 0xbd, 0xdc, 0x2b, 0xaa, 0x05, 0x13, 0x47, 0xea, 0x64, 0x3a, 0x85, 0x0e, 0x61, 0x2d, 0xa7, 0x58, - 0x51, 0x8a, 0xf7, 0xe7, 0x16, 0x98, 0xe8, 0xd5, 0x06, 0x79, 0x35, 0xf9, 0x50, 0x1c, 0xf1, 0xe4, - 0xb8, 0x30, 0x4f, 0xed, 0x58, 0x61, 0xd3, 0xf3, 0xd6, 0x78, 0x36, 0x81, 0x8e, 0xa0, 0x9e, 0xa8, - 0xe9, 0xe2, 0xaa, 0x4a, 0xee, 0x5f, 0xf3, 0xe5, 0x92, 0xea, 0xd6, 0xf8, 0x54, 0x06, 0x7d, 0x0d, - 0x1b, 0x9c, 0xd8, 0x8c, 0x7b, 0x54, 0xa4, 0x15, 0xae, 0x2a, 0xc9, 0xff, 0x64, 0x25, 0x93, 0x07, - 0x7b, 0xeb, 0x38, 0x86, 0xa7, 0x45, 0xae, 0xf3, 0x5c, 0x0e, 0x7d, 0x03, 0x28, 0x2b, 0xab, 0x4b, - 0xad, 0x29, 0xdd, 0xff, 0x7e, 0x54, 0x37, 0xa9, 0x76, 0x83, 0xe7, 0x93, 0x72, 0x7a, 0x1c, 0x6f, - 0x44, 0xd2, 0xe9, 0x59, 0x9b, 0x9d, 0x9e, 0x54, 0x74, 0x4f, 0x42, 0x33, 0xd3, 0xe3, 0x64, 0x62, - 0xd9, 0x9a, 0x58, 0x4a, 0x17, 0x58, 0x9f, 0x6d, 0xcd, 0x8c, 0x56, 0xda, 0x68, 0x27, 0x9b, 0x40, - 0xdf, 0xc2, 0x8d, 0xc0, 0x3f, 0xf3, 0x84, 0x35, 0x3d, 0xdc, 0xeb, 0xf3, 0xce, 0x7c, 0x28, 0x09, - 0xb9, 0x09, 0xdf, 0x08, 0xf2, 0x49, 0xf4, 0x03, 0x6c, 0x4e, 0x4b, 0xeb, 0x72, 0x37, 0x94, 0xf6, - 0xee, 0xc7, 0xb5, 0x93, 0x9a, 0x51, 0x30, 0x93, 0x95, 0x36, 0x30, 0x3b, 0xb4, 0x87, 0x69, 0xff, - 0xd1, 0x3c, 0x1b, 0xfa, 0x0a, 0x9b, 0x99, 0x50, 0x96, 0x4d, 0xc8, 0x09, 0x4d, 0xd4, 0x74, 0x99, - 0x37, 0x66, 0x27, 0x74, 0x56, 0x2e, 0x9d, 0x50, 0x36, 0x95, 0x41, 0x5f, 0xc1, 0x1a, 0xc1, 0x6f, - 0xac, 0x90, 0x8e, 0x88, 0x6b, 0x71, 0x81, 0x99, 0xb1, 0x39, 0xdb, 0xf1, 0xe4, 0xcd, 0xb4, 0xf5, - 0x0a, 0xbf, 0x31, 0x25, 0xf4, 0x58, 0x60, 0x26, 0x3b, 0x4e, 0x32, 0x31, 0x7a, 0x09, 0x75, 0xa9, - 0x35, 0xb6, 0x03, 0xdf, 0x8d, 0xcc, 0x34, 0xfe, 0x31, 0x7b, 0xd6, 0x29, 0xb1, 0xd7, 0x12, 0xab, - 0x0c, 0x93, 0x67, 0x25, 0xd9, 0x04, 0xfa, 0x12, 0xca, 0x2c, 0xa4, 0x8c, 0x72, 0x3b, 0x30, 0x6e, - 0x2a, 0x9d, 0xc6, 0xf5, 0x3a, 0x7d, 0x8d, 0x92, 0x77, 0x68, 0xcc, 0x40, 0xcf, 0x61, 0x35, 0x5e, - 0x5b, 0x8c, 0x06, 0xc6, 0x2d, 0xa5, 0xf0, 0xcf, 0xf9, 0x0a, 0xfd, 0xa3, 0x43, 0x75, 0x8b, 0xc7, - 0x21, 0x0d, 0xd0, 0x13, 0x80, 0x68, 0x2e, 0x98, 0x1d, 0x0a, 0xc3, 0x98, 0x7d, 0xf1, 0x4c, 0x55, - 0x54, 0xd9, 0x7d, 0x3b, 0x94, 0x7d, 0xab, 0x0c, 0xe2, 0x00, 0xfd, 0x1f, 0x16, 0xc7, 0x54, 0x60, - 0xe3, 0xf6, 0xec, 0x33, 0x20, 0xe5, 0xbe, 0xa6, 0x42, 0xb6, 0x47, 0x21, 0xd1, 0x23, 0x28, 0x7b, - 0x36, 0xb7, 0x14, 0x6b, 0x6b, 0xf6, 0x9d, 0x2f, 0x65, 0xf5, 0x6c, 0xae, 0x89, 0x2b, 0x5e, 0xb4, - 0x94, 0x0d, 0x95, 0x3c, 0x8b, 0x63, 0x61, 0x0d, 0xed, 0x1f, 0x3b, 0x0f, 0x8c, 0x3b, 0xf3, 0x1a, - 0x2a, 0x39, 0xc7, 0x58, 0xbc, 0x94, 0x48, 0xd9, 0xd0, 0x71, 0x26, 0x46, 0x2f, 0xa0, 0x96, 0x68, - 0x0d, 0x7c, 0xc1, 0x8d, 0xbb, 0xf3, 0x4c, 0xd4, 0x52, 0x5d, 0x5f, 0xc8, 0x67, 0x52, 0x75, 0x9c, - 0x86, 0xe8, 0x73, 0x58, 0x76, 0xe8, 0x70, 0xe8, 0x0b, 0xe3, 0x9e, 0x52, 0xb8, 0x7b, 0xbd, 0xc2, - 0x9e, 0xc2, 0xf4, 0x0a, 0xa6, 0x46, 0x4b, 0xf3, 0xa5, 0x11, 0x9a, 0xdb, 0x98, 0x67, 0x7e, 0xcf, - 0xe6, 0x09, 0xbd, 0xe2, 0xc5, 0xc1, 0xd6, 0x63, 0xa8, 0xe7, 0x5e, 0x28, 0xe4, 0xf7, 0xc6, 0x39, - 0xbe, 0xd0, 0xef, 0x2b, 0x72, 0x99, 0xbe, 0xc3, 0x94, 0x32, 0xef, 0x30, 0x8f, 0x4a, 0x0f, 0x8b, - 0xdd, 0x25, 0x58, 0xe0, 0xa3, 0x61, 0xf7, 0xe8, 0xdd, 0x55, 0xa3, 0xf8, 0xfe, 0xaa, 0x51, 0xfc, - 0xed, 0xaa, 0x51, 0x7c, 0xfb, 0xa1, 0x51, 0x78, 0xff, 0xa1, 0x51, 0xf8, 0xe5, 0x43, 0xa3, 0xf0, - 0xdd, 0x67, 0x67, 0xbe, 0xf0, 0x46, 0x83, 0x96, 0x43, 0x87, 0xed, 0xec, 0x77, 0x58, 0xe6, 0x8b, - 0x4a, 0x7d, 0x15, 0x4e, 0x7f, 0x62, 0x0d, 0x96, 0x55, 0xf6, 0xc1, 0x5f, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x67, 0xb5, 0x6a, 0x42, 0x64, 0x0e, 0x00, 0x00, + // 1436 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x57, 0x4b, 0x6f, 0xdb, 0x46, + 0x17, 0x95, 0xe4, 0x97, 0x74, 0x65, 0x59, 0xf6, 0xc4, 0x5f, 0xc2, 0x38, 0x89, 0xe4, 0xcf, 0xe9, + 0xc3, 0xe8, 0x42, 0x2a, 0x14, 0xa0, 0x48, 0x83, 0x06, 0x48, 0xe4, 0x38, 0x91, 0x0b, 0x27, 0x11, + 0x68, 0x37, 0xe8, 0x0b, 0x20, 0x28, 0x72, 0x6c, 0xb2, 0xa6, 0x66, 0xa6, 0x9c, 0x91, 0x22, 0xff, + 0x8b, 0xfc, 0xac, 0x2c, 0xba, 0xc8, 0xb2, 0x2b, 0xb7, 0x70, 0x16, 0x5d, 0xb4, 0x3f, 0xa2, 0x98, + 0xe1, 0xf0, 0x21, 0xca, 0x55, 0xb2, 0x9b, 0x7b, 0xe7, 0x9c, 0xc3, 0x3b, 0xe7, 0x5e, 0x0d, 0x29, + 0xd8, 0x12, 0x98, 0xb8, 0x38, 0x1c, 0xfa, 0x44, 0xb4, 0x59, 0x87, 0xb5, 0xc5, 0x39, 0xc3, 0xbc, + 0xc5, 0x42, 0x2a, 0x28, 0x5a, 0x4b, 0xf7, 0x5a, 0xac, 0xc3, 0xb6, 0x36, 0x4f, 0xe9, 0x29, 0x55, + 0x5b, 0x6d, 0xb9, 0x8a, 0x50, 0x5b, 0xdb, 0x19, 0x85, 0x41, 0x40, 0x9d, 0x33, 0x7e, 0x4e, 0x9c, + 0xac, 0xce, 0x14, 0xc2, 0xa1, 0x84, 0x63, 0xc2, 0x47, 0xfc, 0x3f, 0x11, 0x5c, 0xd8, 0x02, 0xcf, + 0x68, 0x34, 0x33, 0x08, 0x95, 0x6f, 0xe3, 0xb1, 0xef, 0x62, 0xe2, 0x60, 0x0d, 0x68, 0x64, 0x00, + 0x43, 0x3c, 0x64, 0x94, 0x06, 0x53, 0x02, 0x46, 0xee, 0xa0, 0x0c, 0x4f, 0x62, 0xe9, 0x53, 0x4a, + 0x4f, 0x03, 0xdc, 0x56, 0xd1, 0x60, 0x74, 0xd2, 0x16, 0xfe, 0x10, 0x73, 0x61, 0x0f, 0x59, 0x04, + 0xd8, 0x39, 0x86, 0x7a, 0x5f, 0x2e, 0x1c, 0x1a, 0xbc, 0xc2, 0x21, 0xf7, 0x29, 0x41, 0x37, 0x61, + 0x81, 0x75, 0x98, 0x51, 0xdc, 0x2e, 0xee, 0x2e, 0x76, 0x57, 0x2e, 0x2f, 0x9a, 0x0b, 0xfd, 0x4e, + 0xdf, 0x94, 0x39, 0xb4, 0x09, 0x4b, 0xca, 0x06, 0xa3, 0x24, 0x37, 0xcd, 0x28, 0x40, 0xeb, 0xb0, + 0x60, 0x33, 0x66, 0x2c, 0xa8, 0x9c, 0x5c, 0xee, 0xfc, 0x55, 0x82, 0xf2, 0x0b, 0xea, 0xe2, 0x03, + 0x72, 0x42, 0x51, 0x1f, 0xd6, 0x99, 0x7e, 0x84, 0x35, 0x8e, 0x9e, 0xa1, 0xc4, 0xab, 0x9d, 0x66, + 0x6b, 0xba, 0x0b, 0xad, 0x5c, 0x29, 0xdd, 0xc5, 0xb7, 0x17, 0xcd, 0x82, 0x59, 0x67, 0xb9, 0x0a, + 0xef, 0xc2, 0x0a, 0xa1, 0x2e, 0xb6, 0x7c, 0x57, 0x15, 0x52, 0xe9, 0xc2, 0xe5, 0x45, 0x73, 0x59, + 0x3d, 0xf0, 0x89, 0xb9, 0x2c, 0xb7, 0x0e, 0x5c, 0xd4, 0x84, 0x6a, 0xe0, 0x73, 0x81, 0x89, 0x65, + 0xbb, 0x6e, 0xa8, 0xaa, 0xab, 0x98, 0x10, 0xa5, 0x1e, 0xbb, 0x6e, 0x88, 0x0c, 0x58, 0x21, 0x58, + 0xbc, 0xa6, 0xe1, 0x99, 0xb1, 0xa8, 0x36, 0xe3, 0x50, 0xee, 0xc4, 0x85, 0x2e, 0x45, 0x3b, 0x3a, + 0x44, 0x5b, 0x50, 0x76, 0x3c, 0x9b, 0x10, 0x1c, 0x70, 0x63, 0x79, 0xbb, 0xb8, 0xbb, 0x6a, 0x26, + 0xb1, 0x64, 0x0d, 0x29, 0xf1, 0xcf, 0x70, 0x68, 0xac, 0x44, 0x2c, 0x1d, 0xa2, 0xaf, 0x61, 0x89, + 0x0a, 0x0f, 0x87, 0x46, 0x59, 0x1d, 0xfb, 0x4e, 0xfe, 0xd8, 0xb1, 0x55, 0x2f, 0x25, 0x48, 0x1f, + 0x3a, 0x62, 0xa0, 0x06, 0x54, 0x59, 0x48, 0x2d, 0x31, 0xb1, 0x3c, 0x9b, 0x7b, 0x46, 0x45, 0x3d, + 0xb3, 0xc2, 0x42, 0x7a, 0x3c, 0xe9, 0xd9, 0xdc, 0xdb, 0xf9, 0x09, 0x6a, 0x53, 0x6c, 0x74, 0x13, + 0xca, 0x62, 0x62, 0xf9, 0xc4, 0xc5, 0x13, 0xe5, 0x72, 0xc5, 0x5c, 0x11, 0x93, 0x03, 0x19, 0xa2, + 0x36, 0x54, 0x43, 0xe6, 0x28, 0x3b, 0x30, 0xe7, 0xda, 0xba, 0xb5, 0xcb, 0x8b, 0x26, 0x98, 0xfd, + 0xbd, 0xc7, 0x51, 0xd6, 0x84, 0x90, 0x39, 0x7a, 0xbd, 0xf3, 0x77, 0x11, 0xca, 0x7d, 0x8c, 0x43, + 0xd5, 0xc6, 0xeb, 0x50, 0xf2, 0xdd, 0x48, 0xb2, 0xbb, 0x7c, 0x79, 0xd1, 0x2c, 0x1d, 0x3c, 0x31, + 0x4b, 0xbe, 0x8b, 0xba, 0xb0, 0xaa, 0x15, 0x2d, 0x9f, 0x9c, 0x50, 0xa3, 0xb4, 0xbd, 0x70, 0x65, + 0x6b, 0x31, 0x0e, 0xb5, 0xae, 0x94, 0x33, 0xab, 0x76, 0x1a, 0xa0, 0x67, 0xb0, 0x16, 0xd8, 0x5c, + 0x58, 0x0e, 0x25, 0x04, 0x3b, 0x02, 0xbb, 0xaa, 0x5d, 0xd5, 0xce, 0x56, 0x2b, 0x9a, 0xdf, 0x56, + 0x3c, 0xbf, 0xad, 0xe3, 0x78, 0x7e, 0xbb, 0x8b, 0x6f, 0xfe, 0x68, 0x16, 0xcd, 0x9a, 0xe4, 0xed, + 0xc5, 0x34, 0xd9, 0x1f, 0x9f, 0xd8, 0x8e, 0xf0, 0xc7, 0x58, 0x35, 0xb5, 0x6c, 0x26, 0x71, 0xde, + 0xca, 0xa5, 0xbc, 0x95, 0xff, 0x14, 0xa1, 0x9e, 0xab, 0x52, 0xf6, 0x34, 0xb6, 0x4b, 0x9b, 0xa9, + 0x43, 0x74, 0x08, 0x1b, 0xaa, 0x64, 0xd7, 0xb7, 0x03, 0x8b, 0x8f, 0x1c, 0x27, 0xb6, 0xf4, 0x63, + 0xaa, 0xae, 0x4b, 0xea, 0x13, 0xdf, 0x0e, 0x8e, 0x22, 0xe2, 0xb4, 0xda, 0x89, 0xed, 0x07, 0xa3, + 0x10, 0x7f, 0xb4, 0x07, 0x89, 0xda, 0xd3, 0x88, 0x88, 0xee, 0x42, 0x2d, 0x2b, 0xc4, 0x95, 0x15, + 0x35, 0x73, 0xd5, 0x4d, 0x31, 0x7c, 0xe7, 0x36, 0x2c, 0xee, 0x3b, 0x1e, 0x95, 0xbf, 0xe9, 0xb1, + 0x1d, 0x8c, 0xb0, 0x3e, 0x60, 0x14, 0xec, 0xfc, 0xb6, 0x01, 0xe5, 0x7d, 0x32, 0xc6, 0x01, 0x65, + 0x18, 0xf5, 0x00, 0x6c, 0x21, 0x42, 0x7f, 0x30, 0x12, 0x58, 0x1a, 0x21, 0x1b, 0xbc, 0x9b, 0x6f, + 0x70, 0x8c, 0x6e, 0x3d, 0x4e, 0xa0, 0xfb, 0x44, 0x84, 0xe7, 0x66, 0x86, 0x8b, 0xbe, 0x80, 0x45, + 0xec, 0x78, 0x54, 0x1b, 0xb5, 0x39, 0xa3, 0xe1, 0x78, 0xb4, 0x57, 0x30, 0x15, 0x06, 0x3d, 0x84, + 0x2a, 0xc3, 0x13, 0x2b, 0xc4, 0xbf, 0x8e, 0x30, 0x17, 0x89, 0x1b, 0x33, 0x73, 0x35, 0x31, 0x23, + 0x44, 0xaf, 0x60, 0x02, 0x4b, 0x22, 0xf4, 0x08, 0x56, 0x23, 0x3a, 0x67, 0xf2, 0x5e, 0x56, 0x1e, + 0x54, 0x3b, 0xb7, 0xae, 0xe4, 0x47, 0x90, 0x5e, 0xc1, 0xac, 0xb2, 0x34, 0x44, 0xf7, 0xa1, 0x1c, + 0x5f, 0xc4, 0x6a, 0x5a, 0x72, 0x4f, 0x8f, 0x6e, 0xe0, 0x7d, 0x8d, 0xe8, 0x15, 0xcc, 0x04, 0x8d, + 0x1e, 0x40, 0x55, 0xdf, 0xd3, 0x96, 0x98, 0x44, 0x37, 0x45, 0xb5, 0x73, 0x23, 0x4b, 0xd6, 0xdb, + 0xad, 0xe3, 0x09, 0x97, 0x75, 0xeb, 0xf0, 0x78, 0xc2, 0xd1, 0x01, 0xd4, 0xd4, 0xb5, 0x9a, 0x1c, + 0x7c, 0x45, 0xb1, 0x77, 0xb2, 0xec, 0xe4, 0x5d, 0xd4, 0xea, 0xca, 0x55, 0x6a, 0xc0, 0xea, 0x20, + 0x13, 0xa3, 0x23, 0xd8, 0x20, 0xd4, 0x8a, 0xd5, 0xb4, 0x0f, 0xd1, 0x1d, 0xf4, 0xe9, 0xd5, 0x72, + 0x2f, 0xa8, 0x16, 0x4c, 0x1c, 0xa9, 0x93, 0xe9, 0x14, 0x3a, 0x84, 0xb5, 0x9c, 0x62, 0x45, 0x29, + 0xde, 0x9d, 0x5b, 0x60, 0xa2, 0x57, 0x1b, 0xe4, 0xd5, 0xe4, 0x4b, 0x71, 0xc4, 0x93, 0xe3, 0xc2, + 0x3c, 0xb5, 0x23, 0x85, 0x4d, 0xcf, 0x5b, 0xe3, 0xd9, 0x04, 0x7a, 0x09, 0xf5, 0x44, 0x4d, 0x17, + 0x57, 0x55, 0x72, 0x9f, 0xcc, 0x97, 0x4b, 0xaa, 0x5b, 0xe3, 0x53, 0x19, 0xf4, 0x1d, 0x6c, 0x70, + 0x62, 0x33, 0xee, 0x51, 0x91, 0x56, 0xb8, 0xaa, 0x24, 0x3f, 0xcb, 0x4a, 0x26, 0x2f, 0xf6, 0xd6, + 0x51, 0x0c, 0x4f, 0x8b, 0x5c, 0xe7, 0xb9, 0x1c, 0xfa, 0x1e, 0x50, 0x56, 0x56, 0x97, 0x5a, 0x53, + 0xba, 0x9f, 0x7f, 0x50, 0x37, 0xa9, 0x76, 0x83, 0xe7, 0x93, 0x72, 0x7a, 0x1c, 0x6f, 0x44, 0xd2, + 0xe9, 0x59, 0x9b, 0x9d, 0x9e, 0x54, 0x74, 0x4f, 0x42, 0x33, 0xd3, 0xe3, 0x64, 0x62, 0xd9, 0x9a, + 0x58, 0x4a, 0x17, 0x58, 0x9f, 0x6d, 0xcd, 0x8c, 0x56, 0xda, 0x68, 0x27, 0x9b, 0x40, 0x3f, 0xc0, + 0xb5, 0xc0, 0x3f, 0xf5, 0x84, 0x35, 0x3d, 0xdc, 0xeb, 0xf3, 0xce, 0x7c, 0x28, 0x09, 0xb9, 0x09, + 0xdf, 0x08, 0xf2, 0x49, 0xf4, 0x33, 0x6c, 0x4e, 0x4b, 0xeb, 0x72, 0x37, 0x94, 0xf6, 0xee, 0x87, + 0xb5, 0x93, 0x9a, 0x51, 0x30, 0x93, 0x95, 0x36, 0x30, 0x3b, 0xb4, 0x87, 0x69, 0xff, 0xd1, 0x3c, + 0x1b, 0xfa, 0x0a, 0x9b, 0x99, 0x50, 0x96, 0x4d, 0xc8, 0x09, 0x4d, 0xd4, 0x74, 0x99, 0xd7, 0x66, + 0x27, 0x74, 0x56, 0x2e, 0x9d, 0x50, 0x36, 0x95, 0x41, 0xdf, 0xc2, 0x1a, 0xc1, 0xaf, 0xad, 0x90, + 0x8e, 0x88, 0x6b, 0x71, 0x81, 0x99, 0xb1, 0x39, 0xdb, 0xf1, 0xe4, 0xcb, 0xb4, 0xf5, 0x02, 0xbf, + 0x36, 0x25, 0xf4, 0x48, 0x60, 0x26, 0x3b, 0x4e, 0x32, 0x31, 0x7a, 0x0e, 0x75, 0xa9, 0x35, 0xb6, + 0x03, 0xdf, 0x8d, 0xcc, 0x34, 0xfe, 0x37, 0x7b, 0xd6, 0x29, 0xb1, 0x57, 0x12, 0xab, 0x0c, 0x93, + 0x67, 0x25, 0xd9, 0x04, 0xfa, 0x06, 0xca, 0x2c, 0xa4, 0x8c, 0x72, 0x3b, 0x30, 0xae, 0x2b, 0x9d, + 0xc6, 0xd5, 0x3a, 0x7d, 0x8d, 0x92, 0x77, 0x68, 0xcc, 0x40, 0x4f, 0x61, 0x35, 0x5e, 0x5b, 0x8c, + 0x06, 0xc6, 0x0d, 0xa5, 0xf0, 0xff, 0xf9, 0x0a, 0xfd, 0x97, 0x87, 0xea, 0x16, 0x8f, 0x43, 0x1a, + 0xa0, 0x47, 0x00, 0xd1, 0x5c, 0x30, 0x3b, 0x14, 0x86, 0x31, 0xfb, 0xe1, 0x99, 0xaa, 0xa8, 0xb2, + 0xfb, 0x76, 0x28, 0xfb, 0x56, 0x19, 0xc4, 0x01, 0xfa, 0x12, 0x16, 0xc7, 0x54, 0x60, 0xe3, 0xe6, + 0xec, 0x3b, 0x20, 0xe5, 0xbe, 0xa2, 0x42, 0xb6, 0x47, 0x21, 0xd1, 0x03, 0x28, 0x7b, 0x36, 0xb7, + 0x14, 0x6b, 0x6b, 0xf6, 0x9b, 0x2f, 0x65, 0xf5, 0x6c, 0xae, 0x89, 0x2b, 0x5e, 0xb4, 0x94, 0x0d, + 0x95, 0x3c, 0x8b, 0x63, 0x61, 0x0d, 0xed, 0x5f, 0x3a, 0xf7, 0x8c, 0x5b, 0xf3, 0x1a, 0x2a, 0x39, + 0x47, 0x58, 0x3c, 0x97, 0x48, 0xd9, 0xd0, 0x71, 0x26, 0x46, 0xcf, 0xa0, 0x96, 0x68, 0x0d, 0x7c, + 0xc1, 0x8d, 0xdb, 0xf3, 0x4c, 0xd4, 0x52, 0x5d, 0x5f, 0xc8, 0x77, 0x52, 0x75, 0x9c, 0x86, 0xe8, + 0x2b, 0x58, 0x76, 0xe8, 0x70, 0xe8, 0x0b, 0xe3, 0x8e, 0x52, 0xb8, 0x7d, 0xb5, 0xc2, 0x9e, 0xc2, + 0xf4, 0x0a, 0xa6, 0x46, 0x4b, 0xf3, 0xa5, 0x11, 0x9a, 0xdb, 0x98, 0x67, 0x7e, 0xcf, 0xe6, 0x09, + 0xbd, 0xe2, 0xc5, 0xc1, 0xd6, 0x43, 0xa8, 0xe7, 0x3e, 0x28, 0xe4, 0xff, 0x8d, 0x33, 0x7c, 0xae, + 0xbf, 0x57, 0xe4, 0x32, 0xfd, 0x86, 0x29, 0x65, 0xbe, 0x61, 0x1e, 0x94, 0xee, 0x17, 0xbb, 0x4b, + 0xb0, 0xc0, 0x47, 0xc3, 0xee, 0xe1, 0xdb, 0xcb, 0x46, 0xf1, 0xdd, 0x65, 0xa3, 0xf8, 0xe7, 0x65, + 0xa3, 0xf8, 0xe6, 0x7d, 0xa3, 0xf0, 0xee, 0x7d, 0xa3, 0xf0, 0xfb, 0xfb, 0x46, 0xe1, 0xc7, 0xce, + 0xa9, 0x2f, 0xbc, 0xd1, 0xa0, 0xe5, 0xd0, 0x61, 0xdb, 0xb5, 0xb9, 0xc7, 0xec, 0xf3, 0x76, 0x54, + 0x9f, 0x8c, 0xa2, 0x3f, 0x4e, 0xed, 0xe9, 0xff, 0x57, 0x83, 0x65, 0x95, 0xbd, 0xf7, 0x6f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x5d, 0xf9, 0xc2, 0xa1, 0x61, 0x0e, 0x00, 0x00, } func (m *ProtocolVersion) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/p2p/types.proto b/proto/tendermint/p2p/types.proto index 5c8d2fa7c..9baa663ec 100644 --- a/proto/tendermint/p2p/types.proto +++ b/proto/tendermint/p2p/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.p2p; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/p2p"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/p2p"; import "gogoproto/gogo.proto"; import "tendermint/blocksync/types.proto"; diff --git a/proto/tendermint/privval/service.pb.go b/proto/tendermint/privval/service.pb.go index 59ace7536..7b0d69654 100644 --- a/proto/tendermint/privval/service.pb.go +++ b/proto/tendermint/privval/service.pb.go @@ -27,26 +27,27 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package func init() { proto.RegisterFile("tendermint/privval/service.proto", fileDescriptor_7afe74f9f46d3dc9) } var fileDescriptor_7afe74f9f46d3dc9 = []byte{ - // 304 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0xcd, 0x4a, 0xc3, 0x40, - 0x14, 0x85, 0x5b, 0x04, 0xd1, 0xa1, 0x0b, 0x99, 0x65, 0x17, 0x83, 0xff, 0x42, 0x85, 0x04, 0x74, - 0xe5, 0x52, 0x37, 0x55, 0xdc, 0x84, 0xb6, 0x54, 0xd0, 0x55, 0x7e, 0x2e, 0xcd, 0x40, 0x92, 0x1b, - 0x67, 0x6e, 0x82, 0x7d, 0x0b, 0x1f, 0xcb, 0x65, 0x97, 0x2e, 0x25, 0x79, 0x01, 0x1f, 0x41, 0x6a, - 0x32, 0x54, 0x6d, 0xa2, 0x6e, 0xe7, 0x7c, 0xe7, 0x3b, 0xb3, 0xb8, 0x6c, 0x97, 0x20, 0x09, 0x40, - 0xc5, 0x32, 0x21, 0x3b, 0x55, 0x32, 0xcf, 0xdd, 0xc8, 0xd6, 0xa0, 0x72, 0xe9, 0x83, 0x95, 0x2a, - 0x24, 0xe4, 0x7c, 0x45, 0x58, 0x35, 0xd1, 0x17, 0x0d, 0x2d, 0x9a, 0xa7, 0xa0, 0xab, 0xce, 0xd9, - 0xfb, 0x06, 0xdb, 0x71, 0x94, 0xcc, 0xa7, 0x6e, 0x24, 0x03, 0x97, 0x50, 0x5d, 0x3a, 0x37, 0x7c, - 0xc4, 0xb6, 0x87, 0x40, 0x4e, 0xe6, 0xdd, 0xc2, 0x9c, 0xef, 0x59, 0xeb, 0x5a, 0xab, 0xca, 0x46, - 0xf0, 0x98, 0x81, 0xa6, 0xfe, 0xfe, 0x6f, 0x88, 0x4e, 0x31, 0xd1, 0xc0, 0x1f, 0x58, 0x6f, 0xe9, - 0x54, 0x38, 0x79, 0xba, 0x76, 0x75, 0xc8, 0x0f, 0x1b, 0x3b, 0x26, 0x36, 0xe6, 0xa3, 0x3f, 0xa8, - 0x5a, 0x1e, 0x33, 0x3e, 0x04, 0x9a, 0x84, 0x0a, 0x74, 0x88, 0x51, 0x50, 0xff, 0x7c, 0xd0, 0x54, - 0xfe, 0x01, 0x99, 0xa1, 0xd3, 0x7f, 0xb1, 0xf5, 0xdc, 0x1d, 0xdb, 0x1a, 0xcb, 0x59, 0x32, 0x45, - 0x02, 0x7e, 0xd0, 0x54, 0x34, 0xa9, 0xb1, 0x1f, 0xb7, 0x41, 0x10, 0x54, 0x58, 0x2d, 0xf6, 0x59, - 0x6f, 0xf9, 0xea, 0x28, 0x4c, 0x51, 0xbb, 0x11, 0x3f, 0x69, 0xeb, 0x19, 0xc2, 0x0c, 0x0c, 0xda, - 0x07, 0x56, 0x68, 0x35, 0x72, 0x35, 0x7e, 0x29, 0x44, 0x77, 0x51, 0x88, 0xee, 0x5b, 0x21, 0xba, - 0xcf, 0xa5, 0xe8, 0x2c, 0x4a, 0xd1, 0x79, 0x2d, 0x45, 0xe7, 0xfe, 0x62, 0x26, 0x29, 0xcc, 0x3c, - 0xcb, 0xc7, 0xd8, 0xfe, 0x72, 0x37, 0xdf, 0x4e, 0x08, 0x09, 0xed, 0xf5, 0x9b, 0xf2, 0x36, 0x3f, - 0x93, 0xf3, 0x8f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd8, 0xfe, 0xa1, 0xc7, 0xa6, 0x02, 0x00, 0x00, + // 309 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x92, 0x4f, 0x4b, 0xc3, 0x30, + 0x18, 0xc6, 0x57, 0x04, 0xd1, 0xb0, 0x83, 0xe4, 0xb8, 0x43, 0xf0, 0xbf, 0x30, 0xa1, 0x01, 0x05, + 0xef, 0x7a, 0x99, 0xe2, 0xa5, 0xcc, 0x31, 0x41, 0x4f, 0x69, 0xfb, 0xb2, 0x06, 0xda, 0x26, 0x26, + 0x69, 0xb1, 0xdf, 0xc2, 0x8f, 0xe5, 0x71, 0x47, 0x8f, 0xd2, 0x7e, 0x01, 0x3f, 0x82, 0x74, 0x6d, + 0x18, 0xb8, 0x56, 0x3d, 0xb6, 0xcf, 0xef, 0xf9, 0x3d, 0x39, 0xbc, 0x68, 0xdf, 0x40, 0x1a, 0x82, + 0x4a, 0x78, 0x6a, 0xa8, 0x54, 0x3c, 0xcf, 0x59, 0x4c, 0x35, 0xa8, 0x9c, 0x07, 0xe0, 0x4a, 0x25, + 0x8c, 0xc0, 0x78, 0x4d, 0xb8, 0x2d, 0x31, 0x22, 0x1d, 0x2d, 0x53, 0x48, 0xd0, 0x4d, 0xe7, 0xe2, + 0x6b, 0x0b, 0xed, 0x79, 0x8a, 0xe7, 0x73, 0x16, 0xf3, 0x90, 0x19, 0xa1, 0xae, 0xbd, 0x3b, 0x3c, + 0x45, 0xbb, 0x13, 0x30, 0x5e, 0xe6, 0xdf, 0x43, 0x81, 0x0f, 0xdc, 0x4d, 0xad, 0xdb, 0x64, 0x53, + 0x78, 0xc9, 0x40, 0x9b, 0xd1, 0xe1, 0x6f, 0x88, 0x96, 0x22, 0xd5, 0x80, 0x9f, 0xd1, 0xb0, 0x76, + 0x2a, 0x31, 0x7b, 0xbd, 0x65, 0x3a, 0xc2, 0xc7, 0x9d, 0x1d, 0x1b, 0x5b, 0xf3, 0xc9, 0x1f, 0x54, + 0x2b, 0x4f, 0x10, 0x9e, 0x80, 0x99, 0x45, 0x0a, 0x74, 0x24, 0xe2, 0xb0, 0x7d, 0xf9, 0xb8, 0xab, + 0xfc, 0x03, 0xb2, 0x43, 0xe7, 0xff, 0x62, 0xdb, 0xb9, 0x47, 0xb4, 0xf3, 0xc0, 0x17, 0xe9, 0x5c, + 0x18, 0xc0, 0x47, 0x5d, 0x45, 0x9b, 0x5a, 0xfb, 0x69, 0x1f, 0x04, 0x61, 0x83, 0xb5, 0xe2, 0x00, + 0x0d, 0xeb, 0xbf, 0x9e, 0x12, 0x52, 0x68, 0x16, 0xe3, 0xb3, 0xbe, 0x9e, 0x25, 0xec, 0xc0, 0xb8, + 0x7f, 0x60, 0x8d, 0x36, 0x23, 0x37, 0xde, 0x7b, 0x49, 0x9c, 0x65, 0x49, 0x9c, 0xcf, 0x92, 0x38, + 0x6f, 0x15, 0x19, 0x2c, 0x2b, 0x32, 0xf8, 0xa8, 0xc8, 0xe0, 0xe9, 0x6a, 0xc1, 0x4d, 0x94, 0xf9, + 0x6e, 0x20, 0x12, 0x1a, 0x32, 0x1d, 0x49, 0x56, 0xd0, 0xc6, 0x5b, 0x7f, 0xd1, 0xd5, 0xc5, 0xd0, + 0xcd, 0x83, 0xf2, 0xb7, 0x57, 0xc9, 0xe5, 0x77, 0x00, 0x00, 0x00, 0xff, 0xff, 0xed, 0x56, 0xac, + 0x80, 0xa3, 0x02, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/proto/tendermint/privval/service.proto b/proto/tendermint/privval/service.proto index 4ceac5695..07f2fc55e 100644 --- a/proto/tendermint/privval/service.proto +++ b/proto/tendermint/privval/service.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package tendermint.privval; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/privval"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/privval"; import "tendermint/privval/types.proto"; diff --git a/proto/tendermint/privval/types.pb.go b/proto/tendermint/privval/types.pb.go index 540d82d09..707478379 100644 --- a/proto/tendermint/privval/types.pb.go +++ b/proto/tendermint/privval/types.pb.go @@ -5,10 +5,10 @@ package privval import ( fmt "fmt" + crypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + types "github.com/dashpay/tenderdash/proto/tendermint/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" - crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" - types "github.com/tendermint/tendermint/proto/tendermint/types" io "io" math "math" math_bits "math/bits" @@ -1034,68 +1034,68 @@ func init() { func init() { proto.RegisterFile("tendermint/privval/types.proto", fileDescriptor_cb4e437a5328cf9c) } var fileDescriptor_cb4e437a5328cf9c = []byte{ - // 971 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xdd, 0x6e, 0xe3, 0x44, - 0x14, 0xb6, 0x37, 0x49, 0x7f, 0x4e, 0xd2, 0x34, 0x9d, 0x96, 0x36, 0x8d, 0x96, 0xb4, 0x84, 0xbf, - 0x55, 0x11, 0x09, 0x5a, 0x24, 0x24, 0xb4, 0xdc, 0x6c, 0x5b, 0x0b, 0x47, 0xd1, 0x26, 0x61, 0xe2, - 0xb2, 0xab, 0x95, 0x90, 0x95, 0x9f, 0xc1, 0x31, 0xdb, 0x78, 0x66, 0x3d, 0x76, 0xb5, 0xb9, 0xe6, - 0x8e, 0x2b, 0xa4, 0xbd, 0xe3, 0x09, 0x10, 0x4f, 0xc0, 0x23, 0xec, 0xe5, 0x5e, 0x72, 0x85, 0x50, - 0xfb, 0x22, 0xc8, 0xe3, 0x89, 0xe3, 0xc4, 0x0e, 0x2c, 0x2a, 0x88, 0x3b, 0xcf, 0x39, 0x33, 0xdf, - 0xf9, 0x7c, 0xbe, 0x73, 0x66, 0x0e, 0x54, 0x3d, 0xe2, 0x8c, 0x88, 0x3b, 0xb1, 0x1d, 0xaf, 0xc1, - 0x5c, 0xfb, 0xea, 0xaa, 0x7f, 0xd9, 0xf0, 0xa6, 0x8c, 0xf0, 0x3a, 0x73, 0xa9, 0x47, 0x11, 0x9a, - 0xfb, 0xeb, 0xd2, 0x5f, 0xb9, 0x1b, 0x3b, 0x33, 0x74, 0xa7, 0xcc, 0xa3, 0x8d, 0x67, 0x64, 0x2a, - 0x4f, 0x2c, 0x78, 0x05, 0x52, 0x1c, 0xaf, 0xb2, 0x67, 0x51, 0x8b, 0x8a, 0xcf, 0x46, 0xf0, 0x15, - 0x5a, 0x6b, 0x4d, 0xd8, 0xc1, 0x64, 0x42, 0x3d, 0xd2, 0xb3, 0x2d, 0x87, 0xb8, 0x9a, 0xeb, 0x52, - 0x17, 0x21, 0xc8, 0x0e, 0xe9, 0x88, 0x94, 0xd5, 0x63, 0xf5, 0x5e, 0x0e, 0x8b, 0x6f, 0x74, 0x0c, - 0xf9, 0x11, 0xe1, 0x43, 0xd7, 0x66, 0x9e, 0x4d, 0x9d, 0xf2, 0x9d, 0x63, 0xf5, 0xde, 0x26, 0x8e, - 0x9b, 0x6a, 0x2d, 0xd8, 0xea, 0xfa, 0x83, 0x16, 0x99, 0x62, 0xf2, 0xdc, 0x27, 0xdc, 0x43, 0x87, - 0xb0, 0x31, 0x1c, 0xf7, 0x6d, 0xc7, 0xb4, 0x47, 0x02, 0x6a, 0x13, 0xaf, 0x8b, 0x75, 0x73, 0x84, - 0x8e, 0x20, 0xff, 0xdc, 0xa7, 0xae, 0x3f, 0x31, 0xc7, 0x7d, 0x3e, 0x16, 0x68, 0x05, 0x0c, 0xa1, - 0x49, 0xef, 0xf3, 0x71, 0xcd, 0x80, 0x7d, 0x63, 0xec, 0x12, 0x3e, 0xa6, 0x97, 0xa3, 0x7f, 0x0f, - 0xf5, 0x63, 0x28, 0x75, 0x5d, 0x6a, 0xbc, 0x08, 0x16, 0x7f, 0x8f, 0x57, 0xfb, 0x41, 0x85, 0xe2, - 0x2c, 0x38, 0x67, 0xd4, 0xe1, 0x04, 0x3d, 0x80, 0x75, 0xe6, 0x0f, 0xcc, 0x67, 0x64, 0x2a, 0x36, - 0xe7, 0xef, 0xdf, 0xad, 0xc7, 0x74, 0x0a, 0x35, 0xa9, 0x77, 0xfd, 0xc1, 0xa5, 0x3d, 0x6c, 0x91, - 0xe9, 0x69, 0xf6, 0xd5, 0xef, 0x47, 0x0a, 0x5e, 0x63, 0x02, 0x04, 0x3d, 0x80, 0x1c, 0x09, 0x12, - 0x2c, 0x98, 0xe5, 0xef, 0xbf, 0x5f, 0x4f, 0x4a, 0x5c, 0x4f, 0xa8, 0x81, 0xc3, 0x33, 0xb5, 0x97, - 0x2a, 0x1c, 0x24, 0x52, 0xf2, 0xbf, 0xb3, 0x62, 0xb0, 0x13, 0xcb, 0xa8, 0xa4, 0x53, 0x85, 0x3c, - 0x73, 0xa9, 0xe9, 0xbd, 0x08, 0x75, 0x50, 0x85, 0x0e, 0x9b, 0x6c, 0xb6, 0xef, 0x76, 0x11, 0x7f, - 0x52, 0x61, 0x3b, 0x30, 0x7f, 0x4d, 0x3d, 0x32, 0xd3, 0xf0, 0x04, 0xb2, 0x57, 0xd4, 0x23, 0xf2, - 0xe7, 0xf7, 0xe3, 0x78, 0x61, 0x0b, 0x88, 0xcd, 0x62, 0xcf, 0x82, 0xde, 0x77, 0x56, 0xd5, 0x4f, - 0x70, 0xaa, 0x9c, 0x11, 0xe5, 0x2f, 0xeb, 0xc7, 0x98, 0x32, 0xb2, 0x5c, 0x60, 0xd9, 0x44, 0x81, - 0x7d, 0xaf, 0x02, 0x12, 0x9c, 0x47, 0x21, 0x3d, 0x99, 0x90, 0x4f, 0xde, 0x84, 0x9f, 0x94, 0x25, - 0x64, 0x79, 0xab, 0x14, 0xfd, 0xa2, 0xc2, 0x6e, 0x60, 0xee, 0xba, 0x94, 0x51, 0xde, 0xbf, 0x9c, - 0xa5, 0xe9, 0x33, 0xd8, 0x60, 0xd2, 0x24, 0xa9, 0x54, 0x92, 0x54, 0xa2, 0x43, 0xd1, 0xde, 0xff, - 0x36, 0x65, 0x2f, 0x55, 0xd8, 0x0f, 0x53, 0x36, 0xa7, 0x2b, 0xd3, 0xf6, 0xc5, 0x3f, 0xe1, 0x2b, - 0xd3, 0x37, 0x67, 0x7d, 0xab, 0x14, 0x6e, 0x41, 0xbe, 0x6b, 0x3b, 0x96, 0xcc, 0x5c, 0xad, 0x08, - 0x85, 0x70, 0x19, 0x32, 0xab, 0xfd, 0xba, 0x01, 0xeb, 0x8f, 0x08, 0xe7, 0x7d, 0x8b, 0xa0, 0x16, - 0x6c, 0xcb, 0xe6, 0x33, 0xdd, 0x70, 0xbb, 0x24, 0xfb, 0x4e, 0x5a, 0xc4, 0x85, 0xcb, 0x4c, 0x57, - 0xf0, 0x16, 0x5b, 0xb8, 0xdd, 0xda, 0x50, 0x9a, 0x83, 0x85, 0xc1, 0x24, 0xff, 0xda, 0x5f, 0xa1, - 0x85, 0x3b, 0x75, 0x05, 0x17, 0xd9, 0xe2, 0xcd, 0xf0, 0x15, 0xec, 0x70, 0xdb, 0x72, 0xcc, 0xa0, - 0xa8, 0x22, 0x7a, 0x19, 0x01, 0xf8, 0x6e, 0x1a, 0xe0, 0x52, 0x67, 0xe9, 0x0a, 0xde, 0xe6, 0x4b, - 0xcd, 0xf6, 0x14, 0xf6, 0xb8, 0xd0, 0x6b, 0x06, 0x2a, 0x69, 0x66, 0x05, 0xea, 0x07, 0xab, 0x50, - 0x17, 0x5b, 0x42, 0x57, 0x30, 0xe2, 0xc9, 0x46, 0xf9, 0x06, 0xde, 0x12, 0x74, 0x67, 0x22, 0x46, - 0x94, 0x73, 0x02, 0xfc, 0xc3, 0x55, 0xe0, 0x4b, 0x95, 0xae, 0x2b, 0x78, 0x97, 0xa7, 0x34, 0xc0, - 0xb7, 0x50, 0x96, 0xd4, 0x63, 0x01, 0x24, 0xfd, 0x35, 0x11, 0xe1, 0x64, 0x35, 0xfd, 0xe5, 0xf2, - 0xd4, 0x15, 0xbc, 0xcf, 0xd3, 0x0b, 0xf7, 0x1c, 0x0a, 0xcc, 0x76, 0xac, 0x88, 0xfd, 0xba, 0xc0, - 0x3e, 0x4a, 0x55, 0x70, 0x5e, 0x65, 0xba, 0x82, 0xf3, 0x6c, 0xbe, 0x44, 0x5f, 0xc2, 0x96, 0x44, - 0x91, 0x14, 0x37, 0x04, 0xcc, 0xf1, 0x6a, 0x98, 0x88, 0x58, 0x81, 0xc5, 0xd6, 0xe8, 0x02, 0x76, - 0x63, 0xf7, 0x71, 0xc4, 0x6a, 0x53, 0xc0, 0xbd, 0x97, 0x0a, 0xb7, 0xf4, 0x4a, 0xea, 0x0a, 0x2e, - 0xb1, 0xe5, 0x97, 0xf3, 0x09, 0xec, 0x2d, 0xc2, 0x4a, 0x9a, 0xb0, 0xba, 0xdf, 0x12, 0x6f, 0x85, - 0xae, 0xe0, 0x1d, 0x96, 0x78, 0x40, 0x2c, 0x38, 0xf4, 0x66, 0x4f, 0x9d, 0xb9, 0xdc, 0x5c, 0xf9, - 0xd5, 0x42, 0xa5, 0x8f, 0x0c, 0x81, 0x50, 0x5e, 0xfa, 0x30, 0xf1, 0x1d, 0x54, 0xd2, 0x02, 0xc9, - 0x1f, 0x29, 0x88, 0x48, 0x1f, 0xbd, 0x51, 0xa4, 0xe8, 0x77, 0x0e, 0xbc, 0x74, 0xd7, 0x69, 0x0e, - 0x32, 0xdc, 0x9f, 0xd4, 0x4c, 0x28, 0x3e, 0xf4, 0xbd, 0x71, 0xcf, 0xb6, 0x66, 0x17, 0xc8, 0xad, - 0x5e, 0xef, 0x12, 0x64, 0xb8, 0x6d, 0xc9, 0x59, 0x27, 0xf8, 0x3c, 0xf9, 0x59, 0x85, 0x35, 0x71, - 0x97, 0x71, 0x84, 0xa0, 0xa8, 0x61, 0xdc, 0xc1, 0x3d, 0xf3, 0xa2, 0xdd, 0x6a, 0x77, 0x1e, 0xb7, - 0x4b, 0x0a, 0xaa, 0x42, 0x25, 0xb2, 0x69, 0x4f, 0xba, 0xda, 0x99, 0xa1, 0x9d, 0x9b, 0x58, 0xeb, - 0x75, 0x3b, 0xed, 0x9e, 0x56, 0x52, 0x51, 0x19, 0xf6, 0xa4, 0xbf, 0xdd, 0x31, 0xcf, 0x3a, 0xed, - 0xb6, 0x76, 0x66, 0x34, 0x3b, 0xed, 0xd2, 0x1d, 0xf4, 0x36, 0x1c, 0x4a, 0xcf, 0xdc, 0x6c, 0x1a, - 0xcd, 0x47, 0x5a, 0xe7, 0xc2, 0x28, 0x65, 0xd0, 0x01, 0xec, 0x4a, 0x37, 0xd6, 0x1e, 0x9e, 0x47, - 0x8e, 0x6c, 0x0c, 0xf1, 0x31, 0x6e, 0x1a, 0x5a, 0xe4, 0xc9, 0x9d, 0xf6, 0x5e, 0x5d, 0x57, 0xd5, - 0xd7, 0xd7, 0x55, 0xf5, 0x8f, 0xeb, 0xaa, 0xfa, 0xe3, 0x4d, 0x55, 0x79, 0x7d, 0x53, 0x55, 0x7e, - 0xbb, 0xa9, 0x2a, 0x4f, 0x3f, 0xb7, 0x6c, 0x6f, 0xec, 0x0f, 0xea, 0x43, 0x3a, 0x69, 0xc4, 0xc7, - 0xda, 0xf8, 0xcc, 0x1c, 0x8c, 0xb2, 0xc9, 0x21, 0x7a, 0xb0, 0x26, 0x3c, 0x9f, 0xfe, 0x19, 0x00, - 0x00, 0xff, 0xff, 0x20, 0x29, 0xf7, 0xf6, 0x61, 0x0b, 0x00, 0x00, + // 976 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcd, 0x6e, 0xdb, 0x46, + 0x10, 0x26, 0x23, 0xc9, 0x3f, 0x23, 0x59, 0x96, 0xd7, 0xae, 0x2d, 0x0b, 0xa9, 0xec, 0xaa, 0x7f, + 0x81, 0x8b, 0x4a, 0x45, 0x0a, 0xe4, 0x92, 0x5e, 0x62, 0x9b, 0x28, 0x05, 0x21, 0x92, 0xba, 0x92, + 0x9b, 0x20, 0x40, 0x41, 0xe8, 0x67, 0x4b, 0xb2, 0xb1, 0xb8, 0x1b, 0x2e, 0x69, 0x44, 0xe7, 0xde, + 0x7a, 0x2a, 0x90, 0x5b, 0x9f, 0xa0, 0xe8, 0x13, 0xf4, 0x11, 0x72, 0xcc, 0xb1, 0xa7, 0xa2, 0xb0, + 0x5f, 0xa4, 0xe0, 0x72, 0x45, 0x51, 0x22, 0xd5, 0xa6, 0x70, 0x8b, 0xde, 0xb8, 0x33, 0xb3, 0xdf, + 0x7c, 0x9c, 0x6f, 0x66, 0x77, 0xa1, 0xea, 0x11, 0x67, 0x4c, 0xdc, 0x89, 0xed, 0x78, 0x0d, 0xe6, + 0xda, 0x57, 0x57, 0x83, 0xcb, 0x86, 0x37, 0x65, 0x84, 0xd7, 0x99, 0x4b, 0x3d, 0x8a, 0xd0, 0xdc, + 0x5f, 0x97, 0xfe, 0xca, 0xdd, 0xd8, 0x9e, 0x91, 0x3b, 0x65, 0x1e, 0x6d, 0x3c, 0x27, 0x53, 0xb9, + 0x63, 0xc1, 0x2b, 0x90, 0xe2, 0x78, 0x95, 0x3d, 0x93, 0x9a, 0x54, 0x7c, 0x36, 0x82, 0xaf, 0xd0, + 0x5a, 0x6b, 0xc2, 0x0e, 0x26, 0x13, 0xea, 0x91, 0x9e, 0x6d, 0x3a, 0xc4, 0xd5, 0x5c, 0x97, 0xba, + 0x08, 0x41, 0x76, 0x44, 0xc7, 0xa4, 0xac, 0x1e, 0xab, 0xf7, 0x72, 0x58, 0x7c, 0xa3, 0x63, 0xc8, + 0x8f, 0x09, 0x1f, 0xb9, 0x36, 0xf3, 0x6c, 0xea, 0x94, 0xef, 0x1c, 0xab, 0xf7, 0x36, 0x71, 0xdc, + 0x54, 0x6b, 0xc1, 0x56, 0xd7, 0x1f, 0xb6, 0xc8, 0x14, 0x93, 0x17, 0x3e, 0xe1, 0x1e, 0x3a, 0x84, + 0x8d, 0x91, 0x35, 0xb0, 0x1d, 0xc3, 0x1e, 0x0b, 0xa8, 0x4d, 0xbc, 0x2e, 0xd6, 0xcd, 0x31, 0x3a, + 0x82, 0xfc, 0x0b, 0x9f, 0xba, 0xfe, 0xc4, 0xb0, 0x06, 0xdc, 0x12, 0x68, 0x05, 0x0c, 0xa1, 0x49, + 0x1f, 0x70, 0xab, 0xd6, 0x87, 0xfd, 0xbe, 0xe5, 0x12, 0x6e, 0xd1, 0xcb, 0xf1, 0xbf, 0x87, 0xfa, + 0x29, 0x94, 0xba, 0x2e, 0xed, 0xbf, 0x0c, 0x16, 0x7f, 0x8f, 0x57, 0xfb, 0x41, 0x85, 0xe2, 0x2c, + 0x39, 0x67, 0xd4, 0xe1, 0x04, 0x3d, 0x84, 0x75, 0xe6, 0x0f, 0x8d, 0xe7, 0x64, 0x2a, 0x82, 0xf3, + 0xf7, 0xef, 0xd6, 0x63, 0x3a, 0x85, 0x9a, 0xd4, 0xbb, 0xfe, 0xf0, 0xd2, 0x1e, 0xb5, 0xc8, 0xf4, + 0x34, 0xfb, 0xfa, 0xf7, 0x23, 0x05, 0xaf, 0x31, 0x01, 0x82, 0x1e, 0x42, 0x8e, 0x04, 0x05, 0x16, + 0xcc, 0xf2, 0xf7, 0x3f, 0xac, 0x27, 0x25, 0xae, 0x27, 0xd4, 0xc0, 0xe1, 0x9e, 0xda, 0x2b, 0x15, + 0x0e, 0x12, 0x25, 0xf9, 0xdf, 0x59, 0x31, 0xd8, 0x89, 0x55, 0x54, 0xd2, 0xa9, 0x42, 0x9e, 0xb9, + 0xd4, 0xf0, 0x5e, 0x86, 0x3a, 0xa8, 0x42, 0x87, 0x4d, 0x36, 0x8b, 0xbb, 0x5d, 0xc6, 0x9f, 0x54, + 0xd8, 0x0e, 0xcc, 0x5f, 0x53, 0x8f, 0xcc, 0x34, 0x3c, 0x81, 0xec, 0x15, 0xf5, 0x88, 0xfc, 0xf9, + 0xfd, 0x38, 0x5e, 0x38, 0x02, 0x22, 0x58, 0xc4, 0x2c, 0xe8, 0x7d, 0x67, 0x55, 0xff, 0x04, 0xbb, + 0xca, 0x19, 0xd1, 0xfe, 0xb2, 0x7f, 0xfa, 0x53, 0x46, 0x96, 0x1b, 0x2c, 0x9b, 0x68, 0xb0, 0xef, + 0x55, 0x40, 0x82, 0xf3, 0x38, 0xa4, 0x27, 0x0b, 0xf2, 0xd9, 0xdb, 0xf0, 0x93, 0xb2, 0x84, 0x2c, + 0x6f, 0x55, 0xa2, 0x5f, 0x54, 0xd8, 0x0d, 0xcc, 0x5d, 0x97, 0x32, 0xca, 0x07, 0x97, 0xb3, 0x32, + 0x3d, 0x80, 0x0d, 0x26, 0x4d, 0x92, 0x4a, 0x25, 0x49, 0x25, 0xda, 0x14, 0xc5, 0xfe, 0xb7, 0x25, + 0x7b, 0xa5, 0xc2, 0x7e, 0x58, 0xb2, 0x39, 0x5d, 0x59, 0xb6, 0x2f, 0xfe, 0x09, 0x5f, 0x59, 0xbe, + 0x39, 0xeb, 0x5b, 0x95, 0x70, 0x0b, 0xf2, 0x5d, 0xdb, 0x31, 0x65, 0xe5, 0x6a, 0x45, 0x28, 0x84, + 0xcb, 0x90, 0x59, 0xed, 0xd7, 0x0d, 0x58, 0x7f, 0x4c, 0x38, 0x1f, 0x98, 0x04, 0xb5, 0x60, 0x5b, + 0x0e, 0x9f, 0xe1, 0x86, 0xe1, 0x92, 0xec, 0x7b, 0x69, 0x19, 0x17, 0x0e, 0x33, 0x5d, 0xc1, 0x5b, + 0x6c, 0xe1, 0x74, 0x6b, 0x43, 0x69, 0x0e, 0x16, 0x26, 0x93, 0xfc, 0x6b, 0x7f, 0x85, 0x16, 0x46, + 0xea, 0x0a, 0x2e, 0xb2, 0xc5, 0x93, 0xe1, 0x2b, 0xd8, 0xe1, 0xb6, 0xe9, 0x18, 0x41, 0x53, 0x45, + 0xf4, 0x32, 0x02, 0xf0, 0xfd, 0x34, 0xc0, 0xa5, 0xc9, 0xd2, 0x15, 0xbc, 0xcd, 0x97, 0x86, 0xed, + 0x19, 0xec, 0x71, 0xa1, 0xd7, 0x0c, 0x54, 0xd2, 0xcc, 0x0a, 0xd4, 0x8f, 0x56, 0xa1, 0x2e, 0x8e, + 0x84, 0xae, 0x60, 0xc4, 0x93, 0x83, 0xf2, 0x0d, 0xbc, 0x23, 0xe8, 0xce, 0x44, 0x8c, 0x28, 0xe7, + 0x04, 0xf8, 0xc7, 0xab, 0xc0, 0x97, 0x3a, 0x5d, 0x57, 0xf0, 0x2e, 0x4f, 0x19, 0x80, 0x6f, 0xa1, + 0x2c, 0xa9, 0xc7, 0x12, 0x48, 0xfa, 0x6b, 0x22, 0xc3, 0xc9, 0x6a, 0xfa, 0xcb, 0xed, 0xa9, 0x2b, + 0x78, 0x9f, 0xa7, 0x37, 0xee, 0x39, 0x14, 0x98, 0xed, 0x98, 0x11, 0xfb, 0x75, 0x81, 0x7d, 0x94, + 0xaa, 0xe0, 0xbc, 0xcb, 0x74, 0x05, 0xe7, 0xd9, 0x7c, 0x89, 0xbe, 0x84, 0x2d, 0x89, 0x22, 0x29, + 0x6e, 0x08, 0x98, 0xe3, 0xd5, 0x30, 0x11, 0xb1, 0x02, 0x8b, 0xad, 0xd1, 0x05, 0xec, 0xc6, 0xce, + 0xe3, 0x88, 0xd5, 0xa6, 0x80, 0xfb, 0x20, 0x15, 0x6e, 0xe9, 0x96, 0xd4, 0x15, 0x5c, 0x62, 0xcb, + 0x37, 0xe7, 0x53, 0xd8, 0x5b, 0x84, 0x95, 0x34, 0x61, 0xf5, 0xbc, 0x25, 0xee, 0x0a, 0x5d, 0xc1, + 0x3b, 0x2c, 0x71, 0x81, 0x98, 0x70, 0xe8, 0xcd, 0xae, 0x3a, 0x63, 0x79, 0xb8, 0xf2, 0xab, 0x85, + 0x4a, 0x7f, 0x32, 0x04, 0x42, 0x79, 0xe9, 0x8f, 0x89, 0xef, 0xa0, 0x92, 0x96, 0x48, 0xfe, 0x48, + 0x41, 0x64, 0xfa, 0xe4, 0xad, 0x32, 0x45, 0xbf, 0x73, 0xe0, 0xa5, 0xbb, 0x4e, 0x73, 0x90, 0xe1, + 0xfe, 0xa4, 0x66, 0x40, 0xf1, 0x91, 0xef, 0x59, 0x3d, 0xdb, 0x9c, 0x1d, 0x20, 0xb7, 0xba, 0xbd, + 0x4b, 0x90, 0xe1, 0xb6, 0x29, 0xdf, 0x3a, 0xc1, 0xe7, 0xc9, 0xcf, 0x2a, 0xac, 0x89, 0xb3, 0x8c, + 0x23, 0x04, 0x45, 0x0d, 0xe3, 0x0e, 0xee, 0x19, 0x17, 0xed, 0x56, 0xbb, 0xf3, 0xa4, 0x5d, 0x52, + 0x50, 0x15, 0x2a, 0x91, 0x4d, 0x7b, 0xda, 0xd5, 0xce, 0xfa, 0xda, 0xb9, 0x81, 0xb5, 0x5e, 0xb7, + 0xd3, 0xee, 0x69, 0x25, 0x15, 0x95, 0x61, 0x4f, 0xfa, 0xdb, 0x1d, 0xe3, 0xac, 0xd3, 0x6e, 0x6b, + 0x67, 0xfd, 0x66, 0xa7, 0x5d, 0xba, 0x83, 0xde, 0x85, 0x43, 0xe9, 0x99, 0x9b, 0x8d, 0x7e, 0xf3, + 0xb1, 0xd6, 0xb9, 0xe8, 0x97, 0x32, 0xe8, 0x00, 0x76, 0xa5, 0x1b, 0x6b, 0x8f, 0xce, 0x23, 0x47, + 0x36, 0x86, 0xf8, 0x04, 0x37, 0xfb, 0x5a, 0xe4, 0xc9, 0x9d, 0x76, 0x5f, 0x5f, 0x57, 0xd5, 0x37, + 0xd7, 0x55, 0xf5, 0x8f, 0xeb, 0xaa, 0xfa, 0xe3, 0x4d, 0x55, 0x79, 0x73, 0x53, 0x55, 0x7e, 0xbb, + 0xa9, 0x2a, 0xcf, 0x1e, 0x98, 0xb6, 0x67, 0xf9, 0xc3, 0xfa, 0x88, 0x4e, 0x1a, 0xe3, 0x01, 0xb7, + 0xd8, 0x60, 0xda, 0x08, 0x8b, 0x12, 0xac, 0x1a, 0xe1, 0x3b, 0x36, 0xf9, 0x82, 0x1e, 0xae, 0x09, + 0xcf, 0xe7, 0x7f, 0x06, 0x00, 0x00, 0xff, 0xff, 0x39, 0x39, 0xd0, 0xeb, 0x5e, 0x0b, 0x00, 0x00, } func (m *RemoteSignerError) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/privval/types.proto b/proto/tendermint/privval/types.proto index 205899ae4..11ec14b39 100644 --- a/proto/tendermint/privval/types.proto +++ b/proto/tendermint/privval/types.proto @@ -5,7 +5,7 @@ import "tendermint/crypto/keys.proto"; import "tendermint/types/types.proto"; import "gogoproto/gogo.proto"; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/privval"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/privval"; enum Errors { ERRORS_UNKNOWN = 0; diff --git a/proto/tendermint/state/types.pb.go b/proto/tendermint/state/types.pb.go index c4b931f04..69ed892f8 100644 --- a/proto/tendermint/state/types.pb.go +++ b/proto/tendermint/state/types.pb.go @@ -5,13 +5,13 @@ package state import ( fmt "fmt" + types "github.com/dashpay/tenderdash/abci/types" + types1 "github.com/dashpay/tenderdash/proto/tendermint/types" + version "github.com/dashpay/tenderdash/proto/tendermint/version" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" _ "github.com/gogo/protobuf/types" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - types "github.com/tendermint/tendermint/abci/types" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" - version "github.com/tendermint/tendermint/proto/tendermint/version" io "io" math "math" math_bits "math/bits" @@ -421,57 +421,57 @@ func init() { func init() { proto.RegisterFile("tendermint/state/types.proto", fileDescriptor_ccfacf933f22bf93) } var fileDescriptor_ccfacf933f22bf93 = []byte{ - // 797 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0xbf, 0x6f, 0xe3, 0x36, - 0x18, 0xb5, 0x9a, 0x1f, 0xb6, 0xe9, 0xc8, 0x4e, 0x98, 0x0c, 0x8a, 0xd3, 0xc8, 0xae, 0xdb, 0x06, - 0x46, 0x07, 0x19, 0x68, 0x87, 0xa2, 0x4b, 0x81, 0xd8, 0x41, 0x1b, 0xa3, 0x69, 0x91, 0x2a, 0x45, - 0x86, 0x2e, 0x02, 0x2d, 0xd1, 0x96, 0x50, 0x59, 0x14, 0x44, 0x3a, 0x6d, 0x6f, 0xbf, 0x3d, 0xeb, - 0xfd, 0x1d, 0x37, 0xdf, 0x9e, 0x31, 0xe3, 0x4d, 0xb9, 0x83, 0xf3, 0x8f, 0x1c, 0x44, 0x52, 0x12, - 0x65, 0xe7, 0x80, 0x1c, 0x6e, 0x33, 0xbf, 0xf7, 0xbe, 0xc7, 0xe7, 0x8f, 0xef, 0x83, 0xc0, 0x97, - 0x0c, 0x47, 0x1e, 0x4e, 0xe6, 0x41, 0xc4, 0x06, 0x94, 0x21, 0x86, 0x07, 0xec, 0xff, 0x18, 0x53, - 0x2b, 0x4e, 0x08, 0x23, 0x70, 0xb7, 0x40, 0x2d, 0x8e, 0xb6, 0x0f, 0x66, 0x64, 0x46, 0x38, 0x38, - 0x48, 0x7f, 0x09, 0x5e, 0xfb, 0x48, 0x51, 0x41, 0x13, 0x37, 0x50, 0x45, 0xda, 0xea, 0x15, 0xbc, - 0x5e, 0x42, 0x8f, 0xd6, 0x50, 0x0f, 0x51, 0x5f, 0x82, 0xdd, 0x35, 0xf0, 0x06, 0x85, 0x81, 0x87, - 0x18, 0x49, 0x24, 0xe3, 0x78, 0x8d, 0x11, 0xa3, 0x04, 0xcd, 0x33, 0x75, 0x53, 0x81, 0x6f, 0x70, - 0x42, 0x03, 0x12, 0x95, 0x6e, 0xef, 0xcc, 0x08, 0x99, 0x85, 0x78, 0xc0, 0x4f, 0x93, 0xc5, 0x74, - 0xc0, 0x82, 0x39, 0xa6, 0x0c, 0xcd, 0x63, 0x41, 0xe8, 0xbd, 0xd6, 0x80, 0x7e, 0x3a, 0x1c, 0x8d, - 0x6d, 0x4c, 0x63, 0x12, 0x51, 0x4c, 0xe1, 0x15, 0xd8, 0x8d, 0x13, 0xe2, 0x62, 0x4a, 0x9d, 0x38, - 0x21, 0x31, 0xa1, 0x28, 0x34, 0xb4, 0xae, 0xd6, 0x6f, 0x7c, 0xdf, 0xb7, 0x94, 0x71, 0xa5, 0x63, - 0xb0, 0xb2, 0xae, 0x4b, 0xd1, 0x70, 0x29, 0xf9, 0x76, 0x2b, 0x2e, 0x17, 0xe0, 0xef, 0xa0, 0x39, - 0x0d, 0x22, 0x14, 0x06, 0x2f, 0xb0, 0x33, 0x09, 0x89, 0xfb, 0x8f, 0xf1, 0x05, 0x97, 0x3c, 0xf9, - 0xa8, 0xe4, 0x2f, 0x92, 0x3e, 0x4c, 0xd9, 0xb6, 0x3e, 0x55, 0x8f, 0xbd, 0x97, 0x1a, 0x68, 0x5e, - 0x67, 0x93, 0xa2, 0xe3, 0x68, 0x4a, 0xe0, 0x08, 0xe8, 0xf9, 0xec, 0x1c, 0x8a, 0x99, 0xf4, 0x6c, - 0xaa, 0x17, 0x88, 0xc9, 0xe4, 0x8d, 0x57, 0x98, 0xd9, 0x3b, 0x37, 0xca, 0x09, 0x5a, 0x60, 0x3f, - 0x44, 0x94, 0x39, 0x3e, 0x0e, 0x66, 0x3e, 0x73, 0x5c, 0x1f, 0x45, 0x33, 0xec, 0x71, 0xaf, 0x1b, - 0xf6, 0x5e, 0x0a, 0x9d, 0x73, 0x64, 0x24, 0x80, 0xde, 0x2b, 0x0d, 0xec, 0x8f, 0x52, 0xb7, 0x11, - 0x5d, 0xd0, 0x4b, 0xfe, 0x30, 0xdc, 0x8c, 0x0d, 0x76, 0xdd, 0xac, 0xec, 0x88, 0x07, 0x93, 0x7e, - 0xbe, 0x5a, 0xf7, 0xb3, 0x22, 0x30, 0xdc, 0xbc, 0x7b, 0xe8, 0x54, 0xec, 0x96, 0x5b, 0x2e, 0x7f, - 0xb2, 0x37, 0x1f, 0x54, 0xaf, 0x45, 0x22, 0xe0, 0x29, 0xa8, 0xe7, 0x6a, 0xd2, 0xc7, 0xb1, 0xea, - 0x43, 0x26, 0xa7, 0x70, 0x22, 0x3d, 0x14, 0x5d, 0xb0, 0x0d, 0x6a, 0x94, 0x4c, 0xd9, 0xbf, 0x28, - 0xc1, 0xfc, 0xca, 0xba, 0x9d, 0x9f, 0x7b, 0x6f, 0xaa, 0x60, 0xeb, 0x2a, 0xdd, 0x1e, 0xf8, 0x13, - 0xa8, 0x4a, 0x2d, 0x79, 0xcd, 0xa1, 0xb5, 0xba, 0x61, 0x96, 0x34, 0x25, 0xaf, 0xc8, 0xf8, 0xf0, - 0x04, 0xd4, 0x5c, 0x1f, 0x05, 0x91, 0x13, 0x88, 0xff, 0x54, 0x1f, 0x36, 0x96, 0x0f, 0x9d, 0xea, - 0x28, 0xad, 0x8d, 0xcf, 0xec, 0x2a, 0x07, 0xc7, 0x1e, 0xfc, 0x16, 0x34, 0x83, 0x28, 0x60, 0x01, - 0x0a, 0xe5, 0x24, 0x8c, 0x0d, 0x3e, 0x01, 0x5d, 0x56, 0xc5, 0x10, 0xe0, 0x77, 0x80, 0x8f, 0x44, - 0x84, 0x2d, 0x63, 0x6e, 0x72, 0x66, 0x2b, 0x05, 0x78, 0x8e, 0x24, 0xd7, 0x06, 0xba, 0xc2, 0x0d, - 0x3c, 0x63, 0x6b, 0xdd, 0xbb, 0x78, 0x2a, 0xde, 0x35, 0x3e, 0x1b, 0xee, 0xa7, 0xde, 0x97, 0x0f, - 0x9d, 0xc6, 0x45, 0x26, 0x35, 0x3e, 0xb3, 0x1b, 0xb9, 0xee, 0xd8, 0x83, 0x17, 0xa0, 0xa5, 0x68, - 0xa6, 0x5b, 0x67, 0x6c, 0x73, 0xd5, 0xb6, 0x25, 0x56, 0xd2, 0xca, 0x56, 0xd2, 0xfa, 0x2b, 0x5b, - 0xc9, 0x61, 0x2d, 0x95, 0xbd, 0x7d, 0xd7, 0xd1, 0x6c, 0x3d, 0xd7, 0x4a, 0x51, 0xf8, 0x33, 0x00, - 0x79, 0x4e, 0xa9, 0x51, 0x7d, 0x56, 0xb2, 0x95, 0x0e, 0xf8, 0xab, 0x74, 0xa3, 0x88, 0xd4, 0x9e, - 0x25, 0xd2, 0x4c, 0xdb, 0x8a, 0x4d, 0x83, 0x23, 0x60, 0xaa, 0x21, 0x2c, 0xf4, 0xf2, 0x3c, 0xd6, - 0xf9, 0x8c, 0x8f, 0x8a, 0x3c, 0x16, 0xdd, 0x32, 0x99, 0x4f, 0x6e, 0x07, 0xf8, 0xcc, 0xed, 0xf8, - 0x03, 0x7c, 0x53, 0xda, 0x8e, 0x15, 0xfd, 0xdc, 0x5e, 0x83, 0xdb, 0xeb, 0x2a, 0xeb, 0x52, 0x16, - 0xca, 0x3c, 0x66, 0xf9, 0x49, 0x30, 0x5d, 0x84, 0x8c, 0x3a, 0x3e, 0xa2, 0xbe, 0xb1, 0xd3, 0xd5, - 0xfa, 0x3b, 0x22, 0x3f, 0xb6, 0xa8, 0x9f, 0x23, 0xea, 0xc3, 0x43, 0x50, 0x43, 0x71, 0x2c, 0x28, - 0x3a, 0xa7, 0x54, 0x51, 0x1c, 0x73, 0xe8, 0x37, 0xf0, 0x35, 0x97, 0x71, 0x49, 0x82, 0x1d, 0x91, - 0xef, 0xf4, 0x51, 0xb1, 0x57, 0x0e, 0x66, 0xb3, 0xab, 0xf5, 0x75, 0x9b, 0x8f, 0x76, 0x44, 0x12, - 0xcc, 0x43, 0x7f, 0xc1, 0x79, 0x6a, 0x4e, 0xaf, 0xc1, 0x41, 0x84, 0xff, 0x5b, 0x13, 0x33, 0x5a, - 0x7c, 0x76, 0x9d, 0xa7, 0x66, 0xa7, 0x68, 0xf1, 0xc9, 0x69, 0xf6, 0x5e, 0x2a, 0x51, 0x06, 0xfe, - 0xbc, 0x5b, 0x9a, 0xda, 0xfd, 0xd2, 0xd4, 0xde, 0x2f, 0x4d, 0xed, 0xf6, 0xd1, 0xac, 0xdc, 0x3f, - 0x9a, 0x95, 0xb7, 0x8f, 0x66, 0xe5, 0xef, 0x1f, 0x67, 0x01, 0xf3, 0x17, 0x13, 0xcb, 0x25, 0xf3, - 0x81, 0xfa, 0x21, 0x2a, 0x7e, 0x8a, 0x4f, 0xe5, 0xea, 0x47, 0x76, 0xb2, 0xcd, 0xeb, 0x3f, 0x7c, - 0x08, 0x00, 0x00, 0xff, 0xff, 0xfd, 0x22, 0xe7, 0xc7, 0x7f, 0x07, 0x00, 0x00, + // 799 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x55, 0x3f, 0x6f, 0xfb, 0x44, + 0x18, 0x8e, 0xf9, 0xb5, 0x4d, 0x72, 0xa9, 0x93, 0xf6, 0xda, 0xc1, 0x4d, 0xa9, 0x13, 0x02, 0x54, + 0x11, 0x83, 0x23, 0x01, 0x0b, 0x0b, 0x52, 0x93, 0x0a, 0x1a, 0x51, 0xaa, 0xca, 0x45, 0x1d, 0x58, + 0xac, 0x8b, 0x7d, 0x89, 0x2d, 0x1c, 0x9f, 0xe5, 0xbb, 0x14, 0xca, 0xce, 0xde, 0x95, 0xcf, 0xc1, + 0xcc, 0xde, 0xb1, 0x23, 0x53, 0x41, 0xe9, 0x17, 0x41, 0xf7, 0xc7, 0xce, 0x39, 0x29, 0x52, 0xd1, + 0x6f, 0xcb, 0xbd, 0xcf, 0xf3, 0x3e, 0xf7, 0xe4, 0xbd, 0xe7, 0x95, 0xc1, 0x87, 0x0c, 0x27, 0x01, + 0xce, 0xe6, 0x51, 0xc2, 0x06, 0x94, 0x21, 0x86, 0x07, 0xec, 0x3e, 0xc5, 0xd4, 0x49, 0x33, 0xc2, + 0x08, 0xdc, 0x5b, 0xa1, 0x8e, 0x40, 0xdb, 0x87, 0x33, 0x32, 0x23, 0x02, 0x1c, 0xf0, 0x5f, 0x92, + 0xd7, 0x3e, 0xd6, 0x54, 0xd0, 0xc4, 0x8f, 0x74, 0x91, 0xb6, 0x7e, 0x85, 0xa8, 0x97, 0xd0, 0xe3, + 0x0d, 0x34, 0x40, 0x34, 0x54, 0x60, 0x77, 0x03, 0xbc, 0x43, 0x71, 0x14, 0x20, 0x46, 0x32, 0xc5, + 0x38, 0xd9, 0x60, 0xa4, 0x28, 0x43, 0xf3, 0x5c, 0xdd, 0xd6, 0xe0, 0x3b, 0x9c, 0xd1, 0x88, 0x24, + 0xa5, 0xdb, 0x3b, 0x33, 0x42, 0x66, 0x31, 0x1e, 0x88, 0xd3, 0x64, 0x31, 0x1d, 0xb0, 0x68, 0x8e, + 0x29, 0x43, 0xf3, 0x54, 0x12, 0x7a, 0x7f, 0x18, 0xc0, 0x3c, 0x1b, 0x8e, 0xc6, 0x2e, 0xa6, 0x29, + 0x49, 0x28, 0xa6, 0xf0, 0x06, 0xec, 0xa5, 0x19, 0xf1, 0x31, 0xa5, 0x5e, 0x9a, 0x91, 0x94, 0x50, + 0x14, 0x5b, 0x46, 0xd7, 0xe8, 0x37, 0x3e, 0xef, 0x3b, 0xda, 0xb8, 0xf8, 0x18, 0x9c, 0xbc, 0xeb, + 0x5a, 0x36, 0x5c, 0x2b, 0xbe, 0xdb, 0x4a, 0xcb, 0x05, 0xf8, 0x3d, 0x68, 0x4e, 0xa3, 0x04, 0xc5, + 0xd1, 0xaf, 0xd8, 0x9b, 0xc4, 0xc4, 0xff, 0xc9, 0xfa, 0x40, 0x48, 0x9e, 0xfe, 0xa7, 0xe4, 0x37, + 0x8a, 0x3e, 0xe4, 0x6c, 0xd7, 0x9c, 0xea, 0xc7, 0xde, 0x6f, 0x06, 0x68, 0xde, 0xe6, 0x93, 0xa2, + 0xe3, 0x64, 0x4a, 0xe0, 0x08, 0x98, 0xc5, 0xec, 0x3c, 0x8a, 0x99, 0xf2, 0x6c, 0xeb, 0x17, 0xc8, + 0xc9, 0x14, 0x8d, 0x37, 0x98, 0xb9, 0xbb, 0x77, 0xda, 0x09, 0x3a, 0xe0, 0x20, 0x46, 0x94, 0x79, + 0x21, 0x8e, 0x66, 0x21, 0xf3, 0xfc, 0x10, 0x25, 0x33, 0x1c, 0x08, 0xaf, 0xef, 0xdc, 0x7d, 0x0e, + 0x5d, 0x08, 0x64, 0x24, 0x81, 0xde, 0xef, 0x06, 0x38, 0x18, 0x71, 0xb7, 0x09, 0x5d, 0xd0, 0x6b, + 0xf1, 0x30, 0xc2, 0x8c, 0x0b, 0xf6, 0xfc, 0xbc, 0xec, 0xc9, 0x07, 0x53, 0x7e, 0x3e, 0xda, 0xf4, + 0xb3, 0x26, 0x30, 0xdc, 0x7a, 0x7c, 0xee, 0x54, 0xdc, 0x96, 0x5f, 0x2e, 0xff, 0x6f, 0x6f, 0x21, + 0xa8, 0xde, 0xca, 0x44, 0xc0, 0x33, 0x50, 0x2f, 0xd4, 0x94, 0x8f, 0x13, 0xdd, 0x87, 0x4a, 0xce, + 0xca, 0x89, 0xf2, 0xb0, 0xea, 0x82, 0x6d, 0x50, 0xa3, 0x64, 0xca, 0x7e, 0x46, 0x19, 0x16, 0x57, + 0xd6, 0xdd, 0xe2, 0xdc, 0xfb, 0xb3, 0x0a, 0xb6, 0x6f, 0xf8, 0xf6, 0xc0, 0xaf, 0x40, 0x55, 0x69, + 0xa9, 0x6b, 0x8e, 0x9c, 0xf5, 0x0d, 0x73, 0x94, 0x29, 0x75, 0x45, 0xce, 0x87, 0xa7, 0xa0, 0xe6, + 0x87, 0x28, 0x4a, 0xbc, 0x48, 0xfe, 0xa7, 0xfa, 0xb0, 0xb1, 0x7c, 0xee, 0x54, 0x47, 0xbc, 0x36, + 0x3e, 0x77, 0xab, 0x02, 0x1c, 0x07, 0xf0, 0x53, 0xd0, 0x8c, 0x92, 0x88, 0x45, 0x28, 0x56, 0x93, + 0xb0, 0xde, 0x89, 0x09, 0x98, 0xaa, 0x2a, 0x87, 0x00, 0x3f, 0x03, 0x62, 0x24, 0x32, 0x6c, 0x39, + 0x73, 0x4b, 0x30, 0x5b, 0x1c, 0x10, 0x39, 0x52, 0x5c, 0x17, 0x98, 0x1a, 0x37, 0x0a, 0xac, 0xed, + 0x4d, 0xef, 0xf2, 0xa9, 0x44, 0xd7, 0xf8, 0x7c, 0x78, 0xc0, 0xbd, 0x2f, 0x9f, 0x3b, 0x8d, 0xcb, + 0x5c, 0x6a, 0x7c, 0xee, 0x36, 0x0a, 0xdd, 0x71, 0x00, 0x2f, 0x41, 0x4b, 0xd3, 0xe4, 0x5b, 0x67, + 0xed, 0x08, 0xd5, 0xb6, 0x23, 0x57, 0xd2, 0xc9, 0x57, 0xd2, 0xf9, 0x21, 0x5f, 0xc9, 0x61, 0x8d, + 0xcb, 0x3e, 0xfc, 0xdd, 0x31, 0x5c, 0xb3, 0xd0, 0xe2, 0x28, 0xfc, 0x1a, 0x80, 0x22, 0xa7, 0xd4, + 0xaa, 0xbe, 0x29, 0xd9, 0x5a, 0x07, 0xfc, 0x56, 0xb9, 0xd1, 0x44, 0x6a, 0x6f, 0x12, 0x69, 0xf2, + 0xb6, 0xd5, 0xa6, 0xc1, 0x11, 0xb0, 0xf5, 0x10, 0xae, 0xf4, 0x8a, 0x3c, 0xd6, 0xc5, 0x8c, 0x8f, + 0x57, 0x79, 0x5c, 0x75, 0xab, 0x64, 0xbe, 0xba, 0x1d, 0xe0, 0x3d, 0xb7, 0xe3, 0x0a, 0x7c, 0x52, + 0xda, 0x8e, 0x35, 0xfd, 0xc2, 0x5e, 0x43, 0xd8, 0xeb, 0x6a, 0xeb, 0x52, 0x16, 0xca, 0x3d, 0xe6, + 0xf9, 0xc9, 0x30, 0x5d, 0xc4, 0x8c, 0x7a, 0x21, 0xa2, 0xa1, 0xb5, 0xdb, 0x35, 0xfa, 0xbb, 0x32, + 0x3f, 0xae, 0xac, 0x5f, 0x20, 0x1a, 0xc2, 0x23, 0x50, 0x43, 0x69, 0x2a, 0x29, 0xa6, 0xa0, 0x54, + 0x51, 0x9a, 0x0a, 0xe8, 0x3b, 0xf0, 0xb1, 0x90, 0xf1, 0x49, 0x86, 0x3d, 0x99, 0x6f, 0xfe, 0xa8, + 0x38, 0x28, 0x07, 0xb3, 0xd9, 0x35, 0xfa, 0xa6, 0x2b, 0x46, 0x3b, 0x22, 0x19, 0x16, 0xa1, 0xbf, + 0x14, 0x3c, 0x3d, 0xa7, 0xb7, 0xe0, 0x30, 0xc1, 0xbf, 0x6c, 0x88, 0x59, 0x2d, 0x31, 0xbb, 0xce, + 0x6b, 0xb3, 0xd3, 0xb4, 0xc4, 0xe4, 0x0c, 0x77, 0x9f, 0x4b, 0x94, 0x81, 0xab, 0xc7, 0xa5, 0x6d, + 0x3c, 0x2d, 0x6d, 0xe3, 0x9f, 0xa5, 0x6d, 0x3c, 0xbc, 0xd8, 0x95, 0xa7, 0x17, 0xbb, 0xf2, 0xd7, + 0x8b, 0x5d, 0xf9, 0xf1, 0xcb, 0x59, 0xc4, 0xc2, 0xc5, 0xc4, 0xf1, 0xc9, 0x5c, 0x7c, 0xb6, 0x52, + 0x74, 0x3f, 0x90, 0xb7, 0xf0, 0x93, 0xfc, 0xaa, 0x0c, 0xd6, 0xbf, 0xb0, 0x93, 0x1d, 0x51, 0xff, + 0xe2, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x72, 0x4b, 0x4a, 0xb6, 0x7c, 0x07, 0x00, 0x00, } func (m *ABCIResponses) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/state/types.proto b/proto/tendermint/state/types.proto index f10488140..5445ac992 100644 --- a/proto/tendermint/state/types.proto +++ b/proto/tendermint/state/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.state; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/state"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/state"; import "gogoproto/gogo.proto"; import "tendermint/abci/types.proto"; diff --git a/proto/tendermint/statesync/types.pb.go b/proto/tendermint/statesync/types.pb.go index 6f52e1dbb..bac29edb9 100644 --- a/proto/tendermint/statesync/types.pb.go +++ b/proto/tendermint/statesync/types.pb.go @@ -5,9 +5,9 @@ package statesync import ( fmt "fmt" + types "github.com/dashpay/tenderdash/proto/tendermint/types" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" - types "github.com/tendermint/tendermint/proto/tendermint/types" io "io" math "math" math_bits "math/bits" @@ -62,10 +62,9 @@ var xxx_messageInfo_SnapshotsRequest proto.InternalMessageInfo type SnapshotsResponse struct { Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` - Chunks uint32 `protobuf:"varint,3,opt,name=chunks,proto3" json:"chunks,omitempty"` - Hash []byte `protobuf:"bytes,4,opt,name=hash,proto3" json:"hash,omitempty"` - Metadata []byte `protobuf:"bytes,5,opt,name=metadata,proto3" json:"metadata,omitempty"` + Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + Hash []byte `protobuf:"bytes,3,opt,name=hash,proto3" json:"hash,omitempty"` + Metadata []byte `protobuf:"bytes,4,opt,name=metadata,proto3" json:"metadata,omitempty"` } func (m *SnapshotsResponse) Reset() { *m = SnapshotsResponse{} } @@ -108,16 +107,9 @@ func (m *SnapshotsResponse) GetHeight() uint64 { return 0 } -func (m *SnapshotsResponse) GetFormat() uint32 { +func (m *SnapshotsResponse) GetVersion() uint32 { if m != nil { - return m.Format - } - return 0 -} - -func (m *SnapshotsResponse) GetChunks() uint32 { - if m != nil { - return m.Chunks + return m.Version } return 0 } @@ -137,9 +129,9 @@ func (m *SnapshotsResponse) GetMetadata() []byte { } type ChunkRequest struct { - Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` - Index uint32 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` + Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` + Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + ChunkId []byte `protobuf:"bytes,3,opt,name=chunk_id,json=chunkId,proto3" json:"chunk_id,omitempty"` } func (m *ChunkRequest) Reset() { *m = ChunkRequest{} } @@ -182,24 +174,24 @@ func (m *ChunkRequest) GetHeight() uint64 { return 0 } -func (m *ChunkRequest) GetFormat() uint32 { +func (m *ChunkRequest) GetVersion() uint32 { if m != nil { - return m.Format + return m.Version } return 0 } -func (m *ChunkRequest) GetIndex() uint32 { +func (m *ChunkRequest) GetChunkId() []byte { if m != nil { - return m.Index + return m.ChunkId } - return 0 + return nil } type ChunkResponse struct { Height uint64 `protobuf:"varint,1,opt,name=height,proto3" json:"height,omitempty"` - Format uint32 `protobuf:"varint,2,opt,name=format,proto3" json:"format,omitempty"` - Index uint32 `protobuf:"varint,3,opt,name=index,proto3" json:"index,omitempty"` + Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + ChunkId []byte `protobuf:"bytes,3,opt,name=chunk_id,json=chunkId,proto3" json:"chunk_id,omitempty"` Chunk []byte `protobuf:"bytes,4,opt,name=chunk,proto3" json:"chunk,omitempty"` Missing bool `protobuf:"varint,5,opt,name=missing,proto3" json:"missing,omitempty"` } @@ -244,18 +236,18 @@ func (m *ChunkResponse) GetHeight() uint64 { return 0 } -func (m *ChunkResponse) GetFormat() uint32 { +func (m *ChunkResponse) GetVersion() uint32 { if m != nil { - return m.Format + return m.Version } return 0 } -func (m *ChunkResponse) GetIndex() uint32 { +func (m *ChunkResponse) GetChunkId() []byte { if m != nil { - return m.Index + return m.ChunkId } - return 0 + return nil } func (m *ChunkResponse) GetChunk() []byte { @@ -470,34 +462,34 @@ func init() { func init() { proto.RegisterFile("tendermint/statesync/types.proto", fileDescriptor_a1c2869546ca7914) } var fileDescriptor_a1c2869546ca7914 = []byte{ - // 420 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0xcf, 0x8b, 0xd3, 0x40, - 0x14, 0xce, 0x68, 0x76, 0x5d, 0x5e, 0xb7, 0xba, 0x3b, 0x14, 0x09, 0x61, 0x8d, 0x31, 0x17, 0x0b, - 0x42, 0x02, 0xeb, 0x51, 0xbc, 0x6c, 0xaf, 0x1e, 0x24, 0xd5, 0x8b, 0x97, 0x32, 0x4d, 0xc7, 0x24, - 0xd8, 0xcc, 0xc4, 0xcc, 0x04, 0x2c, 0x78, 0xf5, 0xe4, 0xc5, 0x3f, 0xab, 0xc7, 0x1e, 0x3d, 0x89, - 0xb4, 0xff, 0x88, 0xcc, 0x8f, 0xb6, 0xc1, 0x16, 0x8a, 0xde, 0xde, 0xf7, 0xcd, 0xf7, 0xbe, 0x79, - 0x6f, 0xf8, 0x06, 0x42, 0x49, 0xd9, 0x8c, 0x36, 0x55, 0xc9, 0x64, 0x22, 0x24, 0x91, 0x54, 0x2c, - 0x58, 0x96, 0xc8, 0x45, 0x4d, 0x45, 0x5c, 0x37, 0x5c, 0x72, 0x3c, 0xd8, 0x2b, 0xe2, 0x9d, 0xc2, - 0x1f, 0xe4, 0x3c, 0xe7, 0x5a, 0x90, 0xa8, 0xca, 0x68, 0xfd, 0x9b, 0x8e, 0x9b, 0xf6, 0xe8, 0x3a, - 0xf9, 0x4f, 0x0e, 0x4e, 0x6b, 0xd2, 0x90, 0xca, 0x1e, 0x47, 0x18, 0xae, 0xc6, 0x8c, 0xd4, 0xa2, - 0xe0, 0x52, 0xa4, 0xf4, 0x73, 0x4b, 0x85, 0x8c, 0xbe, 0x23, 0xb8, 0xee, 0x90, 0xa2, 0xe6, 0x4c, - 0x50, 0xfc, 0x18, 0xce, 0x0b, 0x5a, 0xe6, 0x85, 0xf4, 0x50, 0x88, 0x86, 0x6e, 0x6a, 0x91, 0xe2, - 0x3f, 0xf2, 0xa6, 0x22, 0xd2, 0xbb, 0x17, 0xa2, 0x61, 0x3f, 0xb5, 0x48, 0xf1, 0x59, 0xd1, 0xb2, - 0x4f, 0xc2, 0xbb, 0x6f, 0x78, 0x83, 0x30, 0x06, 0xb7, 0x20, 0xa2, 0xf0, 0xdc, 0x10, 0x0d, 0x2f, - 0x53, 0x5d, 0x63, 0x1f, 0x2e, 0x2a, 0x2a, 0xc9, 0x8c, 0x48, 0xe2, 0x9d, 0x69, 0x7e, 0x87, 0xa3, - 0x77, 0x70, 0x39, 0x52, 0x9d, 0x76, 0xba, 0x7f, 0x9e, 0x63, 0x00, 0x67, 0x25, 0x9b, 0xd1, 0x2f, - 0x76, 0x0c, 0x03, 0xa2, 0x6f, 0x08, 0xfa, 0xd6, 0xf6, 0x3f, 0xf7, 0x3b, 0xea, 0xab, 0x58, 0xbd, - 0xa7, 0x5d, 0xcf, 0x00, 0xec, 0xc1, 0x83, 0xaa, 0x14, 0xa2, 0x64, 0xb9, 0x5e, 0xef, 0x22, 0xdd, - 0xc2, 0xe8, 0x05, 0x5c, 0xbf, 0x51, 0xd7, 0xdc, 0xcd, 0x79, 0x76, 0x6a, 0xc5, 0x68, 0x0c, 0xb8, - 0x2b, 0xb6, 0x83, 0xbf, 0x86, 0xde, 0x5c, 0xb1, 0x93, 0xa9, 0xa2, 0x75, 0x4b, 0xef, 0xf6, 0x26, - 0xee, 0x24, 0xc8, 0xe4, 0xa1, 0xd3, 0x0a, 0xf3, 0x5d, 0x1d, 0x3d, 0x87, 0xfe, 0x5b, 0x9d, 0x88, - 0x53, 0xb7, 0x7f, 0x85, 0x87, 0x5b, 0xe1, 0x89, 0x27, 0x4b, 0xe1, 0x2a, 0x53, 0x02, 0x26, 0x5a, - 0x31, 0x31, 0x71, 0xd3, 0x8f, 0xd7, 0xbb, 0x7d, 0x76, 0x38, 0xd6, 0x68, 0xab, 0x34, 0xe6, 0x77, - 0xee, 0xf2, 0xd7, 0x53, 0x27, 0x7d, 0x94, 0xfd, 0x45, 0xbf, 0x5f, 0xae, 0x03, 0xb4, 0x5a, 0x07, - 0xe8, 0xf7, 0x3a, 0x40, 0x3f, 0x36, 0x81, 0xb3, 0xda, 0x04, 0xce, 0xcf, 0x4d, 0xe0, 0x7c, 0x78, - 0x95, 0x97, 0xb2, 0x68, 0xa7, 0x71, 0xc6, 0xab, 0xa4, 0x1b, 0xf6, 0x7d, 0x69, 0xbe, 0xcc, 0xb1, - 0x4f, 0x37, 0x3d, 0xd7, 0x67, 0x2f, 0xff, 0x04, 0x00, 0x00, 0xff, 0xff, 0x04, 0xd6, 0xcd, 0xf3, - 0x93, 0x03, 0x00, 0x00, + // 424 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x53, 0x41, 0x6b, 0xd4, 0x40, + 0x14, 0xce, 0x68, 0xda, 0x2e, 0x6f, 0xbb, 0xda, 0x0e, 0x8b, 0xc4, 0x50, 0x63, 0xcc, 0xc5, 0x80, + 0x90, 0x40, 0xbd, 0x78, 0xf1, 0xd2, 0x9e, 0x04, 0x0f, 0x32, 0xbd, 0xe9, 0x61, 0x99, 0x4d, 0x86, + 0x4c, 0x70, 0x33, 0x13, 0x33, 0x13, 0x61, 0xc1, 0x9f, 0xe0, 0xc1, 0x9f, 0xd5, 0x63, 0x8f, 0x9e, + 0x44, 0x76, 0xff, 0x88, 0xcc, 0x24, 0x59, 0x83, 0xb5, 0x2c, 0xf4, 0xf6, 0xbe, 0x6f, 0xbe, 0xf9, + 0xbe, 0xf7, 0x86, 0x37, 0x10, 0x6a, 0x26, 0x72, 0xd6, 0x54, 0xa5, 0xd0, 0xa9, 0xd2, 0x54, 0x33, + 0xb5, 0x16, 0x59, 0xaa, 0xd7, 0x35, 0x53, 0x49, 0xdd, 0x48, 0x2d, 0xf1, 0xfc, 0xaf, 0x22, 0xd9, + 0x29, 0xfc, 0x79, 0x21, 0x0b, 0x69, 0x05, 0xa9, 0xa9, 0x3a, 0xad, 0x7f, 0x36, 0x72, 0xb3, 0x1e, + 0x63, 0x27, 0xff, 0xd9, 0xad, 0xd3, 0x9a, 0x36, 0xb4, 0xea, 0x8f, 0x23, 0x0c, 0x27, 0x57, 0x82, + 0xd6, 0x8a, 0x4b, 0xad, 0x08, 0xfb, 0xd2, 0x32, 0xa5, 0xa3, 0x16, 0x4e, 0x47, 0x9c, 0xaa, 0xa5, + 0x50, 0x0c, 0x3f, 0x81, 0x43, 0xce, 0xca, 0x82, 0x6b, 0x0f, 0x85, 0x28, 0x76, 0x49, 0x8f, 0xb0, + 0x07, 0x47, 0x5f, 0x59, 0xa3, 0x4a, 0x29, 0xbc, 0x07, 0x21, 0x8a, 0x67, 0x64, 0x80, 0x18, 0x83, + 0xcb, 0xa9, 0xe2, 0xde, 0xc3, 0x10, 0xc5, 0xc7, 0xc4, 0xd6, 0xd8, 0x87, 0x49, 0xc5, 0x34, 0xcd, + 0xa9, 0xa6, 0x9e, 0x6b, 0xf9, 0x1d, 0x8e, 0x3e, 0xc1, 0xf1, 0x25, 0x6f, 0xc5, 0xe7, 0xbe, 0x8d, + 0x7b, 0x24, 0x3e, 0x85, 0x49, 0x66, 0x1c, 0x16, 0x65, 0xde, 0xa7, 0x1e, 0x59, 0xfc, 0x2e, 0x8f, + 0xbe, 0x23, 0x98, 0xf5, 0xee, 0xf7, 0x1e, 0xe8, 0x6e, 0x7b, 0x3c, 0x87, 0x03, 0x5b, 0xf6, 0x43, + 0x75, 0xc0, 0x58, 0x55, 0xa5, 0x52, 0xa5, 0x28, 0xbc, 0x83, 0x10, 0xc5, 0x13, 0x32, 0xc0, 0xe8, + 0x15, 0x9c, 0xbe, 0x37, 0x69, 0x17, 0x2b, 0x99, 0xed, 0x1b, 0x38, 0xba, 0x02, 0x3c, 0x16, 0xf7, + 0xfd, 0xbf, 0x85, 0xe9, 0xca, 0xb0, 0x8b, 0xa5, 0xa1, 0xed, 0x95, 0xe9, 0xf9, 0x59, 0x32, 0x5a, + 0x9c, 0x6e, 0x0d, 0x46, 0x57, 0x61, 0xb5, 0xab, 0xa3, 0x97, 0x30, 0xfb, 0x60, 0x17, 0x61, 0x5f, + 0xfa, 0x37, 0x78, 0x34, 0x08, 0xf7, 0xbc, 0x1c, 0x81, 0x93, 0xcc, 0x08, 0x84, 0x6a, 0xd5, 0xa2, + 0xdb, 0x32, 0xfb, 0x84, 0xd3, 0xf3, 0x17, 0xb7, 0xdb, 0xba, 0x1c, 0x94, 0x9d, 0xf9, 0x85, 0x7b, + 0xfd, 0xeb, 0xb9, 0x43, 0x1e, 0x67, 0xff, 0xd0, 0xe4, 0x7a, 0x13, 0xa0, 0x9b, 0x4d, 0x80, 0x7e, + 0x6f, 0x02, 0xf4, 0x63, 0x1b, 0x38, 0x37, 0xdb, 0xc0, 0xf9, 0xb9, 0x0d, 0x9c, 0x8f, 0x6f, 0x8a, + 0x52, 0xf3, 0x76, 0x99, 0x64, 0xb2, 0x4a, 0x73, 0xaa, 0x78, 0x4d, 0xd7, 0x69, 0x97, 0x62, 0x50, + 0xda, 0x7d, 0x93, 0xff, 0x7d, 0xb4, 0xe5, 0xa1, 0x3d, 0x7b, 0xfd, 0x27, 0x00, 0x00, 0xff, 0xff, + 0x53, 0xde, 0xda, 0xe0, 0x87, 0x03, 0x00, 0x00, } func (m *SnapshotsRequest) Marshal() (dAtA []byte, err error) { @@ -548,22 +540,17 @@ func (m *SnapshotsResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { copy(dAtA[i:], m.Metadata) i = encodeVarintTypes(dAtA, i, uint64(len(m.Metadata))) i-- - dAtA[i] = 0x2a + dAtA[i] = 0x22 } if len(m.Hash) > 0 { i -= len(m.Hash) copy(dAtA[i:], m.Hash) i = encodeVarintTypes(dAtA, i, uint64(len(m.Hash))) i-- - dAtA[i] = 0x22 + dAtA[i] = 0x1a } - if m.Chunks != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Chunks)) - i-- - dAtA[i] = 0x18 - } - if m.Format != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + if m.Version != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Version)) i-- dAtA[i] = 0x10 } @@ -595,13 +582,15 @@ func (m *ChunkRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - if m.Index != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Index)) + if len(m.ChunkId) > 0 { + i -= len(m.ChunkId) + copy(dAtA[i:], m.ChunkId) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ChunkId))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if m.Format != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + if m.Version != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Version)) i-- dAtA[i] = 0x10 } @@ -650,13 +639,15 @@ func (m *ChunkResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x22 } - if m.Index != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Index)) + if len(m.ChunkId) > 0 { + i -= len(m.ChunkId) + copy(dAtA[i:], m.ChunkId) + i = encodeVarintTypes(dAtA, i, uint64(len(m.ChunkId))) i-- - dAtA[i] = 0x18 + dAtA[i] = 0x1a } - if m.Format != 0 { - i = encodeVarintTypes(dAtA, i, uint64(m.Format)) + if m.Version != 0 { + i = encodeVarintTypes(dAtA, i, uint64(m.Version)) i-- dAtA[i] = 0x10 } @@ -826,11 +817,8 @@ func (m *SnapshotsResponse) Size() (n int) { if m.Height != 0 { n += 1 + sovTypes(uint64(m.Height)) } - if m.Format != 0 { - n += 1 + sovTypes(uint64(m.Format)) - } - if m.Chunks != 0 { - n += 1 + sovTypes(uint64(m.Chunks)) + if m.Version != 0 { + n += 1 + sovTypes(uint64(m.Version)) } l = len(m.Hash) if l > 0 { @@ -852,11 +840,12 @@ func (m *ChunkRequest) Size() (n int) { if m.Height != 0 { n += 1 + sovTypes(uint64(m.Height)) } - if m.Format != 0 { - n += 1 + sovTypes(uint64(m.Format)) + if m.Version != 0 { + n += 1 + sovTypes(uint64(m.Version)) } - if m.Index != 0 { - n += 1 + sovTypes(uint64(m.Index)) + l = len(m.ChunkId) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) } return n } @@ -870,11 +859,12 @@ func (m *ChunkResponse) Size() (n int) { if m.Height != 0 { n += 1 + sovTypes(uint64(m.Height)) } - if m.Format != 0 { - n += 1 + sovTypes(uint64(m.Format)) + if m.Version != 0 { + n += 1 + sovTypes(uint64(m.Version)) } - if m.Index != 0 { - n += 1 + sovTypes(uint64(m.Index)) + l = len(m.ChunkId) + if l > 0 { + n += 1 + l + sovTypes(uint64(l)) } l = len(m.Chunk) if l > 0 { @@ -1043,9 +1033,9 @@ func (m *SnapshotsResponse) Unmarshal(dAtA []byte) error { } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } - m.Format = 0 + m.Version = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -1055,31 +1045,12 @@ func (m *SnapshotsResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Format |= uint32(b&0x7F) << shift + m.Version |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Chunks", wireType) - } - m.Chunks = 0 - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - m.Chunks |= uint32(b&0x7F) << shift - if b < 0x80 { - break - } - } - case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Hash", wireType) } @@ -1113,7 +1084,7 @@ func (m *SnapshotsResponse) Unmarshal(dAtA []byte) error { m.Hash = []byte{} } iNdEx = postIndex - case 5: + case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Metadata", wireType) } @@ -1218,9 +1189,9 @@ func (m *ChunkRequest) Unmarshal(dAtA []byte) error { } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } - m.Format = 0 + m.Version = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -1230,16 +1201,16 @@ func (m *ChunkRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Format |= uint32(b&0x7F) << shift + m.Version |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChunkId", wireType) } - m.Index = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -1249,11 +1220,26 @@ func (m *ChunkRequest) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Index |= uint32(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChunkId = append(m.ChunkId[:0], dAtA[iNdEx:postIndex]...) + if m.ChunkId == nil { + m.ChunkId = []byte{} + } + iNdEx = postIndex default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) @@ -1325,9 +1311,9 @@ func (m *ChunkResponse) Unmarshal(dAtA []byte) error { } case 2: if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Format", wireType) + return fmt.Errorf("proto: wrong wireType = %d for field Version", wireType) } - m.Format = 0 + m.Version = 0 for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -1337,16 +1323,16 @@ func (m *ChunkResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Format |= uint32(b&0x7F) << shift + m.Version |= uint32(b&0x7F) << shift if b < 0x80 { break } } case 3: - if wireType != 0 { - return fmt.Errorf("proto: wrong wireType = %d for field Index", wireType) + if wireType != 2 { + return fmt.Errorf("proto: wrong wireType = %d for field ChunkId", wireType) } - m.Index = 0 + var byteLen int for shift := uint(0); ; shift += 7 { if shift >= 64 { return ErrIntOverflowTypes @@ -1356,11 +1342,26 @@ func (m *ChunkResponse) Unmarshal(dAtA []byte) error { } b := dAtA[iNdEx] iNdEx++ - m.Index |= uint32(b&0x7F) << shift + byteLen |= int(b&0x7F) << shift if b < 0x80 { break } } + if byteLen < 0 { + return ErrInvalidLengthTypes + } + postIndex := iNdEx + byteLen + if postIndex < 0 { + return ErrInvalidLengthTypes + } + if postIndex > l { + return io.ErrUnexpectedEOF + } + m.ChunkId = append(m.ChunkId[:0], dAtA[iNdEx:postIndex]...) + if m.ChunkId == nil { + m.ChunkId = []byte{} + } + iNdEx = postIndex case 4: if wireType != 2 { return fmt.Errorf("proto: wrong wireType = %d for field Chunk", wireType) diff --git a/proto/tendermint/statesync/types.proto b/proto/tendermint/statesync/types.proto index 8b8bf1ccb..fa18b6e35 100644 --- a/proto/tendermint/statesync/types.proto +++ b/proto/tendermint/statesync/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.statesync; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/statesync"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/statesync"; import "gogoproto/gogo.proto"; import "tendermint/types/types.proto"; @@ -11,24 +11,23 @@ message SnapshotsRequest {} message SnapshotsResponse { uint64 height = 1; - uint32 format = 2; - uint32 chunks = 3; - bytes hash = 4; - bytes metadata = 5; + uint32 version = 2; + bytes hash = 3; + bytes metadata = 4; } message ChunkRequest { - uint64 height = 1; - uint32 format = 2; - uint32 index = 3; + uint64 height = 1; + uint32 version = 2; + bytes chunk_id = 3; } message ChunkResponse { - uint64 height = 1; - uint32 format = 2; - uint32 index = 3; - bytes chunk = 4; - bool missing = 5; + uint64 height = 1; + uint32 version = 2; + bytes chunk_id = 3; + bytes chunk = 4; + bool missing = 5; } message LightBlockRequest { diff --git a/proto/tendermint/types/block.pb.go b/proto/tendermint/types/block.pb.go index 401853526..915151f4d 100644 --- a/proto/tendermint/types/block.pb.go +++ b/proto/tendermint/types/block.pb.go @@ -106,27 +106,27 @@ func init() { func init() { proto.RegisterFile("tendermint/types/block.proto", fileDescriptor_70840e82f4357ab1) } var fileDescriptor_70840e82f4357ab1 = []byte{ - // 313 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0x41, 0x4b, 0xc3, 0x30, - 0x14, 0xc7, 0x9b, 0xb9, 0x0d, 0xc9, 0x10, 0x25, 0x88, 0x84, 0x29, 0x99, 0x78, 0xf2, 0xd4, 0x8a, - 0x82, 0xe2, 0x4d, 0x36, 0x05, 0x0f, 0xf3, 0xe0, 0x8e, 0x5e, 0x4a, 0x9a, 0x86, 0x36, 0x6c, 0x6d, - 0x46, 0x1b, 0x05, 0xbf, 0x85, 0x5f, 0xc8, 0xfb, 0x8e, 0x3b, 0x7a, 0x12, 0x69, 0xbf, 0x88, 0xf4, - 0x35, 0x3a, 0x5d, 0xf5, 0x52, 0x1e, 0xef, 0xf7, 0xff, 0x95, 0x7f, 0x78, 0xf8, 0xc0, 0xc8, 0x34, - 0x94, 0x59, 0xa2, 0x52, 0xe3, 0x99, 0xe7, 0xb9, 0xcc, 0xbd, 0x60, 0xa6, 0xc5, 0xd4, 0x9d, 0x67, - 0xda, 0x68, 0xb2, 0xb3, 0xa2, 0x2e, 0xd0, 0xfe, 0x6e, 0xa4, 0x23, 0x0d, 0xd0, 0xab, 0xa6, 0x3a, - 0xd7, 0x6f, 0xfe, 0x05, 0xbe, 0x96, 0xee, 0x37, 0x68, 0xc8, 0xf3, 0xd8, 0xc2, 0x41, 0x03, 0xca, - 0x27, 0x15, 0xca, 0x54, 0xc8, 0x3a, 0x70, 0xf4, 0xda, 0xc2, 0x9d, 0x61, 0xd5, 0x89, 0x9c, 0xe3, - 0x6e, 0x2c, 0x79, 0x28, 0x33, 0x8a, 0x0e, 0xd1, 0x71, 0xef, 0x94, 0xba, 0xeb, 0xf5, 0xdc, 0x5b, - 0xe0, 0xc3, 0xf6, 0xe2, 0x7d, 0xe0, 0x4c, 0x6c, 0x9a, 0x9c, 0xe0, 0x76, 0xc8, 0x0d, 0xa7, 0x2d, - 0xb0, 0xf6, 0x9a, 0xd6, 0x35, 0x37, 0xdc, 0x3a, 0x90, 0x24, 0x57, 0x78, 0xf3, 0xab, 0x05, 0xdd, - 0x00, 0x8b, 0x35, 0xad, 0x1b, 0x9b, 0x18, 0xab, 0xdc, 0x58, 0xfb, 0xdb, 0x22, 0x97, 0xb8, 0x37, - 0xe3, 0xb9, 0xf1, 0x85, 0x4e, 0x12, 0x65, 0x68, 0xfb, 0xbf, 0xc2, 0x23, 0xe0, 0x13, 0x5c, 0x85, - 0xeb, 0x99, 0xdc, 0xe1, 0x6d, 0xa1, 0x33, 0xe9, 0x8b, 0x98, 0xab, 0xd4, 0xaf, 0x5e, 0x4e, 0x3b, - 0xa0, 0x0f, 0xfe, 0xd2, 0x33, 0x39, 0xaa, 0x72, 0x63, 0x2d, 0xa6, 0x50, 0x02, 0x4d, 0xb6, 0xc4, - 0xaf, 0xe5, 0xfd, 0xa2, 0x60, 0x68, 0x59, 0x30, 0xf4, 0x51, 0x30, 0xf4, 0x52, 0x32, 0x67, 0x59, - 0x32, 0xe7, 0xad, 0x64, 0xce, 0xc3, 0x45, 0xa4, 0x4c, 0xfc, 0x18, 0xb8, 0x42, 0x27, 0xde, 0xcf, - 0x2b, 0xac, 0xc6, 0xfa, 0xd0, 0xeb, 0x17, 0x0a, 0xba, 0xb0, 0x3f, 0xfb, 0x0c, 0x00, 0x00, 0xff, - 0xff, 0xa7, 0xb1, 0x4c, 0xad, 0x3d, 0x02, 0x00, 0x00, + // 319 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x91, 0x41, 0x4b, 0xf3, 0x30, + 0x18, 0xc7, 0x9b, 0xbd, 0xdb, 0x78, 0xc9, 0x10, 0x25, 0x88, 0x84, 0x29, 0x99, 0x78, 0xf2, 0xd4, + 0x8a, 0x8a, 0xe0, 0x4d, 0x36, 0x05, 0x0f, 0xd3, 0xc3, 0x8e, 0x5e, 0x46, 0x96, 0x86, 0x36, 0x6c, + 0x6d, 0x4a, 0x1b, 0x85, 0x7d, 0x0b, 0xbf, 0x90, 0xf7, 0x1d, 0x77, 0xf4, 0x24, 0xd2, 0x7e, 0x11, + 0xc9, 0xd3, 0xa8, 0xb8, 0xea, 0xa5, 0xa4, 0xcf, 0xef, 0xff, 0x6b, 0xff, 0xe1, 0xc1, 0x07, 0x46, + 0xa6, 0xa1, 0xcc, 0x13, 0x95, 0x9a, 0xc0, 0x2c, 0x33, 0x59, 0x04, 0xb3, 0x85, 0x16, 0x73, 0x3f, + 0xcb, 0xb5, 0xd1, 0x64, 0xe7, 0x9b, 0xfa, 0x40, 0xfb, 0xbb, 0x91, 0x8e, 0x34, 0xc0, 0xc0, 0x9e, + 0xea, 0x5c, 0xbf, 0xf9, 0x15, 0x78, 0x3a, 0xba, 0xdf, 0xa0, 0x21, 0x2f, 0x62, 0x07, 0x07, 0x0d, + 0x28, 0x9f, 0x54, 0x28, 0x53, 0x21, 0xeb, 0xc0, 0xd1, 0x4b, 0x0b, 0x77, 0x86, 0xb6, 0x13, 0xb9, + 0xc0, 0xdd, 0x58, 0xf2, 0x50, 0xe6, 0x14, 0x1d, 0xa2, 0xe3, 0xde, 0x29, 0xf5, 0x37, 0xeb, 0xf9, + 0xb7, 0xc0, 0x87, 0xed, 0xd5, 0xdb, 0xc0, 0x9b, 0xb8, 0x34, 0x39, 0xc1, 0xed, 0x90, 0x1b, 0x4e, + 0x5b, 0x60, 0xed, 0x35, 0xad, 0x6b, 0x6e, 0xb8, 0x73, 0x20, 0x49, 0xae, 0xf0, 0xff, 0xcf, 0x16, + 0xf4, 0x1f, 0x58, 0xac, 0x69, 0xdd, 0xb8, 0xc4, 0x58, 0x15, 0xc6, 0xd9, 0x5f, 0x16, 0xb9, 0xc4, + 0xbd, 0x05, 0x2f, 0xcc, 0x54, 0xe8, 0x24, 0x51, 0x86, 0xb6, 0xff, 0x2a, 0x3c, 0x02, 0x3e, 0xc1, + 0x36, 0x5c, 0x9f, 0xc9, 0x1d, 0xde, 0x16, 0x3a, 0x97, 0x53, 0x11, 0x73, 0x95, 0x4e, 0xed, 0xcd, + 0x69, 0x07, 0xf4, 0xc1, 0x6f, 0x7a, 0x2e, 0x47, 0x36, 0x37, 0xd6, 0x62, 0x0e, 0x25, 0xd0, 0x64, + 0x4b, 0xfc, 0x18, 0xde, 0xaf, 0x4a, 0x86, 0xd6, 0x25, 0x43, 0xef, 0x25, 0x43, 0xcf, 0x15, 0xf3, + 0xd6, 0x15, 0xf3, 0x5e, 0x2b, 0xe6, 0x3d, 0x9c, 0x47, 0xca, 0xc4, 0x8f, 0x33, 0x5f, 0xe8, 0x04, + 0x36, 0x92, 0xf1, 0x65, 0x50, 0xff, 0xc1, 0xbe, 0x05, 0xf5, 0x96, 0x37, 0xd7, 0x33, 0xeb, 0xc2, + 0xfc, 0xec, 0x23, 0x00, 0x00, 0xff, 0xff, 0x3c, 0x40, 0x9d, 0x2a, 0x3a, 0x02, 0x00, 0x00, } func (m *Block) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/types/block.proto b/proto/tendermint/types/block.proto index bcd9e8a93..bcb111dbb 100644 --- a/proto/tendermint/types/block.proto +++ b/proto/tendermint/types/block.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; import "gogoproto/gogo.proto"; import "tendermint/types/types.proto"; diff --git a/proto/tendermint/types/canonical.go b/proto/tendermint/types/canonical.go index 281abb808..57042ce27 100644 --- a/proto/tendermint/types/canonical.go +++ b/proto/tendermint/types/canonical.go @@ -1,8 +1,8 @@ package types import ( - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" ) func (c CanonicalBlockID) signBytes() ([]byte, error) { diff --git a/proto/tendermint/types/canonical.pb.go b/proto/tendermint/types/canonical.pb.go index 97615fd67..62114e67d 100644 --- a/proto/tendermint/types/canonical.pb.go +++ b/proto/tendermint/types/canonical.pb.go @@ -382,43 +382,43 @@ func init() { func init() { proto.RegisterFile("tendermint/types/canonical.proto", fileDescriptor_8d1a1a84ff7267ed) } var fileDescriptor_8d1a1a84ff7267ed = []byte{ - // 568 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0xd3, 0x4c, - 0x14, 0xcd, 0xa4, 0xf9, 0x71, 0xa6, 0xc9, 0xf7, 0x85, 0x51, 0x55, 0x85, 0x50, 0xd9, 0x91, 0x91, - 0x22, 0xb3, 0xb1, 0xa5, 0x76, 0xd1, 0xbd, 0x0b, 0x12, 0x41, 0x20, 0x2a, 0xa7, 0x74, 0xc1, 0x26, - 0x9a, 0xd8, 0x83, 0x6d, 0xe1, 0x78, 0x2c, 0x7b, 0x22, 0xd1, 0x0d, 0xcf, 0xd0, 0xc7, 0xe1, 0x11, - 0xba, 0xec, 0xb2, 0x6c, 0x02, 0x72, 0x76, 0x3c, 0x05, 0x9a, 0xf1, 0x2f, 0x0d, 0x54, 0x62, 0xc3, - 0x26, 0xba, 0xf7, 0x9e, 0x33, 0x77, 0xce, 0x3d, 0x37, 0x1e, 0x38, 0x61, 0x24, 0x74, 0x48, 0xbc, - 0xf2, 0x43, 0x66, 0xb0, 0xab, 0x88, 0x24, 0x86, 0x8d, 0x43, 0x1a, 0xfa, 0x36, 0x0e, 0xf4, 0x28, - 0xa6, 0x8c, 0xa2, 0x61, 0xc5, 0xd0, 0x05, 0x63, 0x7c, 0xe0, 0x52, 0x97, 0x0a, 0xd0, 0xe0, 0x51, - 0xc6, 0x1b, 0x1f, 0xed, 0x74, 0x12, 0xbf, 0x39, 0xfa, 0x64, 0x07, 0x75, 0x70, 0xe2, 0xe5, 0xa0, - 0xe2, 0x52, 0xea, 0x06, 0xc4, 0x10, 0xd9, 0x72, 0xfd, 0xc1, 0x60, 0xfe, 0x8a, 0x24, 0x0c, 0xaf, - 0xa2, 0x8c, 0xa0, 0x7e, 0x86, 0xc3, 0xb3, 0x42, 0x96, 0x19, 0x50, 0xfb, 0xe3, 0xec, 0x39, 0x42, - 0xb0, 0xe5, 0xe1, 0xc4, 0x1b, 0x81, 0x09, 0xd0, 0xfa, 0x96, 0x88, 0xd1, 0x25, 0xfc, 0x3f, 0xc2, - 0x31, 0x5b, 0x24, 0x84, 0x2d, 0x3c, 0x82, 0x1d, 0x12, 0x8f, 0x9a, 0x13, 0xa0, 0xed, 0x1f, 0x6b, - 0xfa, 0xfd, 0x29, 0xf4, 0xb2, 0xe1, 0x39, 0x8e, 0xd9, 0x9c, 0xb0, 0x97, 0x82, 0x6f, 0xb6, 0x6e, - 0x36, 0x4a, 0xc3, 0x1a, 0x44, 0xf5, 0xa2, 0x6a, 0xc2, 0xc3, 0xdf, 0xd3, 0xd1, 0x01, 0x6c, 0x33, - 0xca, 0x70, 0x20, 0x64, 0x0c, 0xac, 0x2c, 0x29, 0xb5, 0x35, 0x2b, 0x6d, 0xea, 0xd7, 0x26, 0x7c, - 0x54, 0x35, 0x89, 0x69, 0x44, 0x13, 0x1c, 0xa0, 0x13, 0xd8, 0xe2, 0x72, 0xc4, 0xf1, 0xff, 0x8e, - 0x95, 0x5d, 0x99, 0x73, 0xdf, 0x0d, 0x89, 0xf3, 0x26, 0x71, 0x2f, 0xae, 0x22, 0x62, 0x09, 0x32, - 0x3a, 0x84, 0x1d, 0x8f, 0xf8, 0xae, 0xc7, 0xc4, 0x05, 0x43, 0x2b, 0xcf, 0xb8, 0x98, 0x98, 0xae, - 0x43, 0x67, 0xb4, 0x27, 0xca, 0x59, 0x82, 0x9e, 0xc1, 0x5e, 0x44, 0x83, 0x45, 0x86, 0xb4, 0x26, - 0x40, 0xdb, 0x33, 0xfb, 0xe9, 0x46, 0x91, 0xce, 0xdf, 0xbe, 0xb6, 0x78, 0xcd, 0x92, 0x22, 0x1a, - 0x88, 0x08, 0xbd, 0x82, 0xd2, 0x92, 0xdb, 0xbb, 0xf0, 0x9d, 0x51, 0x5b, 0x18, 0xa7, 0x3e, 0x60, - 0x5c, 0xbe, 0x09, 0x73, 0x3f, 0xdd, 0x28, 0xdd, 0x3c, 0xb1, 0xba, 0xa2, 0xc1, 0xcc, 0x41, 0x26, - 0xec, 0x95, 0x6b, 0x1c, 0x75, 0x44, 0xb3, 0xb1, 0x9e, 0x2d, 0x5a, 0x2f, 0x16, 0xad, 0x5f, 0x14, - 0x0c, 0x53, 0xe2, 0xbe, 0x5f, 0x7f, 0x53, 0x80, 0x55, 0x1d, 0x43, 0x53, 0x28, 0xd9, 0x1e, 0xf6, - 0x43, 0xae, 0xa7, 0x3b, 0x01, 0x5a, 0x2f, 0xbb, 0xeb, 0x8c, 0xd7, 0xf8, 0x5d, 0x02, 0x9c, 0x39, - 0xea, 0x0f, 0x00, 0x07, 0xa5, 0xac, 0x4b, 0xca, 0xc8, 0xbf, 0xf0, 0x75, 0x5a, 0x33, 0x8b, 0xdb, - 0xda, 0xff, 0x83, 0x11, 0x53, 0x28, 0x25, 0x0c, 0x33, 0x52, 0x98, 0x9a, 0xf3, 0xe6, 0xbc, 0xc6, - 0x79, 0x02, 0xcc, 0x78, 0xe5, 0xb0, 0xf6, 0x03, 0xc3, 0x7e, 0x01, 0xb5, 0x7f, 0x23, 0x1f, 0xf6, - 0xc5, 0x27, 0x46, 0xc2, 0xc4, 0xa7, 0x21, 0x3a, 0x82, 0x3d, 0x52, 0x24, 0xf9, 0x87, 0x51, 0x15, - 0xfe, 0x72, 0xbc, 0xc7, 0x35, 0x39, 0x7c, 0xbc, 0x5e, 0xa9, 0x00, 0x9d, 0xe6, 0xe6, 0xb6, 0x85, - 0xb9, 0x4f, 0x77, 0xcd, 0xfd, 0x45, 0x55, 0x65, 0xb0, 0xf9, 0xee, 0x26, 0x95, 0xc1, 0x6d, 0x2a, - 0x83, 0xbb, 0x54, 0x06, 0xdf, 0x53, 0x19, 0x5c, 0x6f, 0xe5, 0xc6, 0xed, 0x56, 0x6e, 0xdc, 0x6d, - 0xe5, 0xc6, 0xfb, 0x53, 0xd7, 0x67, 0xde, 0x7a, 0xa9, 0xdb, 0x74, 0x65, 0xd4, 0x9f, 0x8b, 0x2a, - 0xcc, 0x1e, 0x9d, 0xfb, 0x4f, 0xc9, 0xb2, 0x23, 0xea, 0x27, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, - 0x27, 0xae, 0x20, 0x03, 0xcd, 0x04, 0x00, 0x00, + // 572 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0xcd, 0x6e, 0xd3, 0x40, + 0x18, 0xcc, 0xb6, 0xf9, 0x71, 0xb6, 0x09, 0x84, 0x55, 0x55, 0x85, 0x50, 0xd9, 0x51, 0x90, 0xa2, + 0x70, 0xb1, 0xa5, 0x16, 0x89, 0xbb, 0x0b, 0x12, 0x41, 0x20, 0x2a, 0xa7, 0xea, 0x81, 0x4b, 0xb4, + 0xb1, 0x17, 0xdb, 0xc2, 0xf1, 0x5a, 0xf6, 0x46, 0x22, 0x17, 0x9e, 0xa1, 0x8f, 0xc3, 0x23, 0xf4, + 0xd8, 0x63, 0xb9, 0x04, 0xe4, 0xdc, 0x78, 0x0a, 0xb4, 0x9f, 0x1d, 0x3b, 0x34, 0x50, 0x89, 0x0b, + 0x97, 0x68, 0xbf, 0x99, 0xd9, 0x6f, 0xe7, 0x9b, 0x8d, 0x17, 0xf7, 0x05, 0x0b, 0x1d, 0x16, 0xcf, + 0xfd, 0x50, 0x18, 0x62, 0x19, 0xb1, 0xc4, 0xb0, 0x69, 0xc8, 0x43, 0xdf, 0xa6, 0x81, 0x1e, 0xc5, + 0x5c, 0x70, 0xd2, 0x29, 0x15, 0x3a, 0x28, 0x7a, 0x87, 0x2e, 0x77, 0x39, 0x90, 0x86, 0x5c, 0x65, + 0xba, 0xde, 0xf1, 0x4e, 0x27, 0xf8, 0xcd, 0xd9, 0x27, 0x3b, 0xac, 0x43, 0x13, 0x2f, 0x27, 0x35, + 0x97, 0x73, 0x37, 0x60, 0x06, 0x54, 0xb3, 0xc5, 0x47, 0x43, 0xf8, 0x73, 0x96, 0x08, 0x3a, 0x8f, + 0x32, 0xc1, 0xe0, 0x0b, 0xee, 0x9c, 0x6d, 0x6c, 0x99, 0x01, 0xb7, 0x3f, 0x8d, 0x5f, 0x12, 0x82, + 0xab, 0x1e, 0x4d, 0xbc, 0x2e, 0xea, 0xa3, 0x51, 0xcb, 0x82, 0x35, 0xb9, 0xc4, 0x0f, 0x23, 0x1a, + 0x8b, 0x69, 0xc2, 0xc4, 0xd4, 0x63, 0xd4, 0x61, 0x71, 0x77, 0xaf, 0x8f, 0x46, 0x07, 0x27, 0x23, + 0xfd, 0xee, 0x14, 0x7a, 0xd1, 0xf0, 0x9c, 0xc6, 0x62, 0xc2, 0xc4, 0x6b, 0xd0, 0x9b, 0xd5, 0xeb, + 0x95, 0x56, 0xb1, 0xda, 0xd1, 0x36, 0x38, 0x30, 0xf1, 0xd1, 0x9f, 0xe5, 0xe4, 0x10, 0xd7, 0x04, + 0x17, 0x34, 0x00, 0x1b, 0x6d, 0x2b, 0x2b, 0x0a, 0x6f, 0x7b, 0xa5, 0xb7, 0xc1, 0xb7, 0x3d, 0xfc, + 0xa8, 0x6c, 0x12, 0xf3, 0x88, 0x27, 0x34, 0x20, 0xa7, 0xb8, 0x2a, 0xed, 0xc0, 0xf6, 0x07, 0x27, + 0xda, 0xae, 0xcd, 0x89, 0xef, 0x86, 0xcc, 0x79, 0x97, 0xb8, 0x17, 0xcb, 0x88, 0x59, 0x20, 0x26, + 0x47, 0xb8, 0xee, 0x31, 0xdf, 0xf5, 0x04, 0x1c, 0xd0, 0xb1, 0xf2, 0x4a, 0x9a, 0x89, 0xf9, 0x22, + 0x74, 0xba, 0xfb, 0x00, 0x67, 0x05, 0x79, 0x86, 0x9b, 0x11, 0x0f, 0xa6, 0x19, 0x53, 0xed, 0xa3, + 0xd1, 0xbe, 0xd9, 0x4a, 0x57, 0x9a, 0x72, 0xfe, 0xfe, 0xad, 0x25, 0x31, 0x4b, 0x89, 0x78, 0x00, + 0x2b, 0xf2, 0x06, 0x2b, 0x33, 0x19, 0xef, 0xd4, 0x77, 0xba, 0x35, 0x08, 0x6e, 0x70, 0x4f, 0x70, + 0xf9, 0x4d, 0x98, 0x07, 0xe9, 0x4a, 0x6b, 0xe4, 0x85, 0xd5, 0x80, 0x06, 0x63, 0x87, 0x98, 0xb8, + 0x59, 0x5c, 0x63, 0xb7, 0x0e, 0xcd, 0x7a, 0x7a, 0x76, 0xd1, 0xfa, 0xe6, 0xa2, 0xf5, 0x8b, 0x8d, + 0xc2, 0x54, 0x64, 0xee, 0x57, 0xdf, 0x35, 0x64, 0x95, 0xdb, 0xc8, 0x10, 0x2b, 0xb6, 0x47, 0xfd, + 0x50, 0xfa, 0x69, 0xf4, 0xd1, 0xa8, 0x99, 0x9d, 0x75, 0x26, 0x31, 0x79, 0x16, 0x90, 0x63, 0x67, + 0xf0, 0x13, 0xe1, 0x76, 0x61, 0xeb, 0x92, 0x0b, 0xf6, 0x3f, 0x72, 0x1d, 0x6e, 0x85, 0x25, 0x63, + 0x6d, 0xfd, 0x25, 0x88, 0x21, 0x56, 0x12, 0x41, 0x05, 0xdb, 0x84, 0x9a, 0xeb, 0x26, 0x12, 0x93, + 0x3a, 0x20, 0x33, 0x5d, 0x31, 0xac, 0x7d, 0xcf, 0xb0, 0x5f, 0xd1, 0xd6, 0xbf, 0x51, 0x0e, 0xfb, + 0xea, 0xb3, 0x60, 0x61, 0xe2, 0xf3, 0x90, 0x1c, 0xe3, 0x26, 0xdb, 0x14, 0xf9, 0x87, 0x51, 0x02, + 0xff, 0x38, 0xde, 0xe3, 0x2d, 0x3b, 0x72, 0xbc, 0x66, 0xe1, 0x80, 0xbc, 0xc8, 0xc3, 0xad, 0x41, + 0xb8, 0x4f, 0x77, 0xc3, 0xfd, 0xcd, 0x55, 0x19, 0xb0, 0x69, 0x5d, 0xa7, 0x2a, 0xba, 0x49, 0x55, + 0x74, 0x9b, 0xaa, 0xe8, 0x47, 0xaa, 0xa2, 0xab, 0xb5, 0x5a, 0xb9, 0x59, 0xab, 0x95, 0xdb, 0xb5, + 0x5a, 0xf9, 0xf0, 0xdc, 0xf5, 0x85, 0xb7, 0x98, 0xe9, 0x36, 0x9f, 0xc3, 0xeb, 0x10, 0xd1, 0xa5, + 0x91, 0xb5, 0x96, 0x55, 0xf6, 0x3a, 0x18, 0x77, 0xdf, 0x91, 0x59, 0x1d, 0xf0, 0xd3, 0x5f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x6c, 0x81, 0xf7, 0xae, 0xca, 0x04, 0x00, 0x00, } func (m *CanonicalBlockID) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/types/canonical.proto b/proto/tendermint/types/canonical.proto index a8724a17a..c88923b7a 100644 --- a/proto/tendermint/types/canonical.proto +++ b/proto/tendermint/types/canonical.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; option (gogoproto.stable_marshaler_all) = true; import "gogoproto/gogo.proto"; diff --git a/proto/tendermint/types/dash.pb.go b/proto/tendermint/types/dash.pb.go index b75988719..661526d33 100644 --- a/proto/tendermint/types/dash.pb.go +++ b/proto/tendermint/types/dash.pb.go @@ -181,7 +181,7 @@ func init() { func init() { proto.RegisterFile("tendermint/types/dash.proto", fileDescriptor_098b09a14a95d15e) } var fileDescriptor_098b09a14a95d15e = []byte{ - // 326 bytes of a gzipped FileDescriptorProto + // 332 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2e, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0x49, 0x2c, 0xce, 0xd0, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x40, 0x48, 0xea, 0x81, 0x25, 0xa5, 0x44, @@ -198,11 +198,11 @@ var fileDescriptor_098b09a14a95d15e = []byte{ 0x0c, 0x75, 0x10, 0x42, 0x00, 0xbf, 0x63, 0xb4, 0xcc, 0xb9, 0x04, 0x31, 0x8c, 0x15, 0xe2, 0xe6, 0x62, 0x77, 0x71, 0x75, 0x73, 0x0c, 0xf5, 0x09, 0x11, 0x60, 0x10, 0x12, 0xe5, 0x12, 0x0c, 0xf1, 0x08, 0x72, 0x0d, 0xf6, 0xf0, 0xf7, 0x71, 0x89, 0x0f, 0x72, 0x75, 0xf6, 0x0f, 0x73, 0x0d, 0x12, - 0x60, 0x74, 0x0a, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, - 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xf3, 0xf4, - 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x7d, 0xe4, 0x38, 0x43, 0x30, 0x21, 0xd1, - 0x82, 0x1e, 0x9f, 0x49, 0x6c, 0x60, 0x71, 0x63, 0x40, 0x00, 0x00, 0x00, 0xff, 0xff, 0x90, 0x0c, - 0x0c, 0xeb, 0xea, 0x01, 0x00, 0x00, + 0x60, 0x74, 0xf2, 0x3b, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, + 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0x93, 0xf4, + 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x70, 0x14, 0x15, 0x24, 0x56, 0xea, 0x43, + 0xfc, 0x02, 0xe2, 0xe9, 0x43, 0xe2, 0x04, 0x3d, 0x32, 0x93, 0xd8, 0xc0, 0xe2, 0xc6, 0x80, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x57, 0xe9, 0x12, 0xcd, 0xe7, 0x01, 0x00, 0x00, } func (this *CoreChainLock) Equal(that interface{}) bool { diff --git a/proto/tendermint/types/dash.proto b/proto/tendermint/types/dash.proto index ad9f558ce..237c3ed76 100644 --- a/proto/tendermint/types/dash.proto +++ b/proto/tendermint/types/dash.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; import "gogoproto/gogo.proto"; diff --git a/proto/tendermint/types/events.pb.go b/proto/tendermint/types/events.pb.go index a9aa26a79..0dc9c6994 100644 --- a/proto/tendermint/types/events.pb.go +++ b/proto/tendermint/types/events.pb.go @@ -89,7 +89,7 @@ func init() { func init() { proto.RegisterFile("tendermint/types/events.proto", fileDescriptor_72cfafd446dedf7c) } var fileDescriptor_72cfafd446dedf7c = []byte{ - // 189 bytes of a gzipped FileDescriptorProto + // 198 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2d, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x4f, 0x2d, 0x4b, 0xcd, 0x2b, 0x29, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x40, 0x48, 0xeb, 0x81, 0xa5, @@ -97,11 +97,12 @@ var fileDescriptor_72cfafd446dedf7c = []byte{ 0x82, 0x4b, 0x12, 0x4b, 0x52, 0x85, 0xc4, 0xb8, 0xd8, 0x32, 0x52, 0x33, 0xd3, 0x33, 0x4a, 0x24, 0x18, 0x15, 0x18, 0x35, 0x98, 0x83, 0xa0, 0x3c, 0x21, 0x11, 0x2e, 0xd6, 0x22, 0x90, 0x2a, 0x09, 0x26, 0x05, 0x46, 0x0d, 0xd6, 0x20, 0x08, 0x47, 0x48, 0x88, 0x8b, 0xa5, 0xb8, 0x24, 0xb5, 0x40, - 0x82, 0x59, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x76, 0x0a, 0x3c, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, + 0x82, 0x59, 0x81, 0x51, 0x83, 0x33, 0x08, 0xcc, 0x76, 0xf2, 0x3b, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, - 0xc6, 0x63, 0x39, 0x86, 0x28, 0xf3, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, - 0x7d, 0x64, 0xe7, 0x22, 0x98, 0x60, 0xc7, 0xea, 0xa3, 0x7b, 0x25, 0x89, 0x0d, 0x2c, 0x6e, 0x0c, - 0x08, 0x00, 0x00, 0xff, 0xff, 0xc3, 0xe9, 0x14, 0x02, 0xe5, 0x00, 0x00, 0x00, + 0xc6, 0x63, 0x39, 0x86, 0x28, 0x93, 0xf4, 0xcc, 0x92, 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, + 0xfd, 0x94, 0xc4, 0xe2, 0x8c, 0x82, 0xc4, 0x4a, 0x7d, 0x88, 0xbb, 0x40, 0x3c, 0x7d, 0xb0, 0x4b, + 0xf5, 0xd1, 0xfd, 0x91, 0xc4, 0x06, 0x16, 0x37, 0x06, 0x04, 0x00, 0x00, 0xff, 0xff, 0x86, 0x61, + 0x58, 0x54, 0xe2, 0x00, 0x00, 0x00, } func (m *EventDataRoundState) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/types/events.proto b/proto/tendermint/types/events.proto index a1e5cc498..f823b7f95 100644 --- a/proto/tendermint/types/events.proto +++ b/proto/tendermint/types/events.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; message EventDataRoundState { int64 height = 1; diff --git a/proto/tendermint/types/evidence.pb.go b/proto/tendermint/types/evidence.pb.go index d791c7b96..741a8bd40 100644 --- a/proto/tendermint/types/evidence.pb.go +++ b/proto/tendermint/types/evidence.pb.go @@ -230,31 +230,32 @@ func init() { func init() { proto.RegisterFile("tendermint/types/evidence.proto", fileDescriptor_6825fabc78e0a168) } var fileDescriptor_6825fabc78e0a168 = []byte{ - // 383 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcf, 0x4e, 0xea, 0x40, - 0x14, 0xc6, 0x5b, 0x0a, 0x84, 0x3b, 0xf7, 0xe6, 0x5e, 0xd2, 0x5c, 0xb4, 0x21, 0xa6, 0x25, 0x6c, - 0x60, 0xa1, 0xd3, 0x44, 0x17, 0x6e, 0xdc, 0xd8, 0x68, 0xe2, 0x82, 0x85, 0x36, 0x86, 0x85, 0x1b, - 0x32, 0xa5, 0x63, 0x9d, 0xa4, 0xed, 0x34, 0xed, 0x29, 0xc6, 0xb7, 0xe0, 0xb1, 0x58, 0xb2, 0x74, - 0xa5, 0x06, 0x5e, 0xc4, 0x74, 0xfa, 0x07, 0x02, 0x24, 0x6e, 0x9a, 0xe9, 0xf9, 0x7e, 0xe7, 0x7c, - 0x67, 0xce, 0x1c, 0x64, 0x00, 0x0d, 0x5d, 0x1a, 0x07, 0x2c, 0x04, 0x13, 0xde, 0x22, 0x9a, 0x98, - 0x74, 0xc6, 0x5c, 0x1a, 0x4e, 0x29, 0x8e, 0x62, 0x0e, 0x5c, 0x6d, 0x6f, 0x00, 0x2c, 0x80, 0xee, - 0x7f, 0x8f, 0x7b, 0x5c, 0x88, 0x66, 0x76, 0xca, 0xb9, 0xae, 0xe1, 0x71, 0xee, 0xf9, 0xd4, 0x14, - 0x7f, 0x4e, 0xfa, 0x6c, 0x02, 0x0b, 0x68, 0x02, 0x24, 0x88, 0x0a, 0xe0, 0x64, 0xcf, 0x49, 0x7c, - 0x73, 0xb5, 0x0f, 0xa8, 0x75, 0x5b, 0x18, 0xab, 0x04, 0x1d, 0xbb, 0x69, 0xe4, 0xb3, 0x29, 0x01, - 0x3a, 0x99, 0x71, 0xa0, 0x93, 0xb2, 0x27, 0x4d, 0xee, 0xc9, 0xc3, 0xdf, 0xe7, 0x03, 0xbc, 0xdb, - 0x14, 0xbe, 0x29, 0x13, 0xc6, 0x1c, 0x68, 0x59, 0xe9, 0x4e, 0xb2, 0x3b, 0xee, 0x21, 0xc1, 0x6a, - 0x20, 0x25, 0x49, 0x83, 0xfe, 0xbc, 0x86, 0x3a, 0x07, 0x33, 0xd5, 0x33, 0xd4, 0x14, 0xce, 0xa4, - 0xb0, 0x3c, 0xda, 0xb7, 0xcc, 0x78, 0xbb, 0x91, 0x51, 0xd7, 0x15, 0xee, 0x68, 0xb5, 0x9f, 0x71, - 0x4b, 0x3d, 0x45, 0x2a, 0x70, 0x20, 0x7e, 0x76, 0x3b, 0x16, 0x7a, 0x93, 0x88, 0xbf, 0xd2, 0x58, - 0x53, 0x7a, 0xf2, 0x50, 0xb1, 0xdb, 0x42, 0x19, 0x0b, 0xe1, 0x3e, 0x8b, 0xab, 0x03, 0xf4, 0x6f, - 0x46, 0x7c, 0xe6, 0x12, 0xe0, 0x71, 0x81, 0xd6, 0x05, 0xfa, 0xb7, 0x0a, 0xe7, 0xa0, 0x85, 0x7e, - 0x55, 0x53, 0xd7, 0x1a, 0xa2, 0x91, 0x2e, 0xce, 0xdf, 0x05, 0x97, 0xef, 0x82, 0x1f, 0x4b, 0xc2, - 0x6a, 0x2d, 0x3e, 0x0c, 0x69, 0xfe, 0x69, 0xc8, 0xf6, 0x26, 0xad, 0x3f, 0x42, 0x7f, 0xca, 0x21, - 0x8c, 0x58, 0x02, 0xea, 0x15, 0x6a, 0x6d, 0x4d, 0x5f, 0x11, 0x25, 0xf7, 0xee, 0x56, 0xcd, 0xb5, - 0x9e, 0x95, 0xb4, 0xab, 0x0c, 0xeb, 0x61, 0xb1, 0xd2, 0xe5, 0xe5, 0x4a, 0x97, 0xbf, 0x56, 0xba, - 0x3c, 0x5f, 0xeb, 0xd2, 0x72, 0xad, 0x4b, 0xef, 0x6b, 0x5d, 0x7a, 0xba, 0xf4, 0x18, 0xbc, 0xa4, - 0x0e, 0x9e, 0xf2, 0xc0, 0xdc, 0xde, 0x8c, 0xcd, 0x31, 0x5f, 0xb1, 0xdd, 0xad, 0x71, 0x9a, 0x22, - 0x7e, 0xf1, 0x1d, 0x00, 0x00, 0xff, 0xff, 0x36, 0x45, 0x0d, 0x06, 0xba, 0x02, 0x00, 0x00, + // 386 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xcf, 0x4a, 0xc3, 0x40, + 0x10, 0xc6, 0x93, 0xa6, 0x2d, 0x75, 0x15, 0x2d, 0xc1, 0x6a, 0x28, 0x92, 0x94, 0x5e, 0xda, 0x83, + 0xee, 0x82, 0x7a, 0xf4, 0x62, 0x50, 0xf0, 0x50, 0x44, 0x82, 0xf4, 0xe0, 0xa5, 0x6c, 0x9a, 0x35, + 0x5d, 0x48, 0xb2, 0x21, 0xd9, 0x54, 0xfa, 0x16, 0x7d, 0xac, 0x1e, 0x7b, 0xf4, 0xa4, 0xd2, 0xbe, + 0x88, 0x64, 0xf3, 0xa7, 0xd2, 0x16, 0xbc, 0x84, 0xec, 0x7c, 0xbf, 0x99, 0x6f, 0x76, 0x76, 0x80, + 0xc1, 0x49, 0xe0, 0x90, 0xc8, 0xa7, 0x01, 0x47, 0x7c, 0x16, 0x92, 0x18, 0x91, 0x29, 0x75, 0x48, + 0x30, 0x26, 0x30, 0x8c, 0x18, 0x67, 0x6a, 0x73, 0x03, 0x40, 0x01, 0xb4, 0x4f, 0x5d, 0xe6, 0x32, + 0x21, 0xa2, 0xf4, 0x2f, 0xe3, 0xda, 0x86, 0xcb, 0x98, 0xeb, 0x11, 0x24, 0x4e, 0x76, 0xf2, 0x8e, + 0x38, 0xf5, 0x49, 0xcc, 0xb1, 0x1f, 0xe6, 0xc0, 0xc5, 0x8e, 0x93, 0xf8, 0x66, 0x6a, 0x97, 0x83, + 0xc6, 0x63, 0x6e, 0xac, 0x62, 0x70, 0xee, 0x24, 0xa1, 0x47, 0xc7, 0x98, 0x93, 0xd1, 0x94, 0x71, + 0x32, 0x2a, 0x7a, 0xd2, 0xe4, 0x8e, 0xdc, 0x3f, 0xbc, 0xee, 0xc1, 0xed, 0xa6, 0xe0, 0x43, 0x91, + 0x30, 0x64, 0x9c, 0x14, 0x95, 0x9e, 0x24, 0xab, 0xe5, 0xec, 0x13, 0xcc, 0x1a, 0x50, 0xe2, 0xc4, + 0xef, 0xce, 0x2b, 0xa0, 0xb5, 0x37, 0x53, 0xbd, 0x02, 0x75, 0xe1, 0x8c, 0x73, 0xcb, 0xb3, 0x5d, + 0xcb, 0x94, 0xb7, 0x6a, 0x29, 0x75, 0x5f, 0xe2, 0xb6, 0x56, 0xf9, 0x1f, 0x37, 0xd5, 0x4b, 0xa0, + 0x72, 0xc6, 0xb1, 0x97, 0xde, 0x8e, 0x06, 0xee, 0x28, 0x64, 0x1f, 0x24, 0xd2, 0x94, 0x8e, 0xdc, + 0x57, 0xac, 0xa6, 0x50, 0x86, 0x42, 0x78, 0x49, 0xe3, 0x6a, 0x0f, 0x9c, 0x4c, 0xb1, 0x47, 0x1d, + 0xcc, 0x59, 0x94, 0xa3, 0x55, 0x81, 0x1e, 0x97, 0xe1, 0x0c, 0x34, 0xc1, 0x41, 0x39, 0x75, 0xad, + 0x26, 0x1a, 0x69, 0xc3, 0xec, 0x5d, 0x60, 0xf1, 0x2e, 0xf0, 0xb5, 0x20, 0xcc, 0xc6, 0xe2, 0xcb, + 0x90, 0xe6, 0xdf, 0x86, 0x6c, 0x6d, 0xd2, 0xba, 0x03, 0x70, 0x54, 0x0c, 0x61, 0x40, 0x63, 0xae, + 0xde, 0x81, 0xc6, 0x9f, 0xe9, 0x2b, 0xa2, 0xe4, 0xce, 0xdd, 0xca, 0xb9, 0x56, 0xd3, 0x92, 0x56, + 0x99, 0x61, 0x3e, 0x2f, 0x56, 0xba, 0xbc, 0x5c, 0xe9, 0xf2, 0xcf, 0x4a, 0x97, 0xe7, 0x6b, 0x5d, + 0x5a, 0xae, 0x75, 0xe9, 0x73, 0xad, 0x4b, 0x6f, 0xb7, 0x2e, 0xe5, 0x93, 0xc4, 0x86, 0x63, 0xe6, + 0x23, 0x07, 0xc7, 0x93, 0x10, 0xcf, 0x50, 0x56, 0x37, 0x3d, 0x65, 0x6b, 0x84, 0xb6, 0x57, 0xc6, + 0xae, 0x8b, 0xf8, 0xcd, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x7c, 0xdf, 0x62, 0x23, 0xb7, 0x02, + 0x00, 0x00, } func (m *Evidence) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/types/evidence.proto b/proto/tendermint/types/evidence.proto index b09ae6571..00fcf7592 100644 --- a/proto/tendermint/types/evidence.proto +++ b/proto/tendermint/types/evidence.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; diff --git a/proto/tendermint/types/params.pb.go b/proto/tendermint/types/params.pb.go index 0eb30849b..1d4870828 100644 --- a/proto/tendermint/types/params.pb.go +++ b/proto/tendermint/types/params.pb.go @@ -636,53 +636,53 @@ func init() { func init() { proto.RegisterFile("tendermint/types/params.proto", fileDescriptor_e12598271a686f57) } var fileDescriptor_e12598271a686f57 = []byte{ - // 723 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xdf, 0x6e, 0xd3, 0x30, - 0x14, 0xc6, 0x9b, 0xb5, 0xeb, 0xda, 0xd3, 0x75, 0x9d, 0x0c, 0x88, 0x30, 0x58, 0x3a, 0x72, 0x81, - 0x26, 0x4d, 0x4a, 0xa7, 0x4d, 0x68, 0x42, 0xe2, 0x8f, 0xd6, 0x16, 0x01, 0x42, 0x43, 0x28, 0x0c, - 0x2e, 0x76, 0x13, 0x39, 0xa9, 0x49, 0xa3, 0x35, 0x71, 0x14, 0x27, 0x55, 0xf3, 0x16, 0x5c, 0x21, - 0x1e, 0x01, 0x6e, 0x78, 0x8e, 0x5d, 0xee, 0x92, 0x2b, 0x40, 0xdd, 0x1b, 0xf0, 0x04, 0xc8, 0x8e, - 0xb3, 0xae, 0x1d, 0x63, 0xbd, 0x8a, 0xe3, 0xf3, 0xfd, 0x7c, 0xe2, 0xef, 0x9c, 0xd8, 0xb0, 0x1e, - 0x93, 0xa0, 0x47, 0x22, 0xdf, 0x0b, 0xe2, 0x56, 0x9c, 0x86, 0x84, 0xb5, 0x42, 0x1c, 0x61, 0x9f, - 0x19, 0x61, 0x44, 0x63, 0x8a, 0x56, 0x27, 0x61, 0x43, 0x84, 0xd7, 0x6e, 0xba, 0xd4, 0xa5, 0x22, - 0xd8, 0xe2, 0xa3, 0x4c, 0xb7, 0xa6, 0xb9, 0x94, 0xba, 0x03, 0xd2, 0x12, 0x6f, 0x76, 0xf2, 0xb1, - 0xd5, 0x4b, 0x22, 0x1c, 0x7b, 0x34, 0xc8, 0xe2, 0xfa, 0xf7, 0x22, 0x34, 0x3a, 0x34, 0x60, 0x24, - 0x60, 0x09, 0x7b, 0x2b, 0x32, 0xa0, 0x5d, 0x58, 0xb4, 0x07, 0xd4, 0x39, 0x56, 0x95, 0x0d, 0x65, - 0xb3, 0xb6, 0xb3, 0x6e, 0xcc, 0xe6, 0x32, 0xda, 0x3c, 0x9c, 0xa9, 0xcd, 0x4c, 0x8b, 0x1e, 0x43, - 0x85, 0x0c, 0xbd, 0x1e, 0x09, 0x1c, 0xa2, 0x2e, 0x08, 0x6e, 0xe3, 0x32, 0xf7, 0x5c, 0x2a, 0x24, - 0x7a, 0x4e, 0xa0, 0x67, 0x50, 0x1d, 0xe2, 0x81, 0xd7, 0xc3, 0x31, 0x8d, 0xd4, 0xa2, 0xc0, 0xef, - 0x5f, 0xc6, 0x3f, 0xe4, 0x12, 0xc9, 0x4f, 0x18, 0xf4, 0x08, 0x96, 0x86, 0x24, 0x62, 0x1e, 0x0d, - 0xd4, 0x92, 0xc0, 0x9b, 0xff, 0xc0, 0x33, 0x81, 0x84, 0x73, 0x3d, 0xcf, 0xcd, 0xd2, 0xc0, 0xe9, - 0x47, 0x34, 0x48, 0xd5, 0xc5, 0xab, 0x72, 0xbf, 0xcb, 0x25, 0x79, 0xee, 0x73, 0x86, 0xe7, 0x8e, - 0x3d, 0x9f, 0xd0, 0x24, 0x56, 0xcb, 0x57, 0xe5, 0x3e, 0xcc, 0x04, 0x79, 0x6e, 0xa9, 0x47, 0xdb, - 0x50, 0xc2, 0xb6, 0xe3, 0xa9, 0x4b, 0x82, 0xbb, 0x77, 0x99, 0xdb, 0x6f, 0x77, 0x5e, 0x49, 0x48, - 0x28, 0xf5, 0x0e, 0xd4, 0x2e, 0xb8, 0x8f, 0xee, 0x42, 0xd5, 0xc7, 0x23, 0xcb, 0x4e, 0x63, 0xc2, - 0x44, 0xbd, 0x8a, 0x66, 0xc5, 0xc7, 0xa3, 0x36, 0x7f, 0x47, 0xb7, 0x61, 0x89, 0x07, 0x5d, 0xcc, - 0x44, 0x49, 0x8a, 0x66, 0xd9, 0xc7, 0xa3, 0x17, 0x98, 0xe9, 0xdf, 0x14, 0x58, 0x99, 0xae, 0x05, - 0xda, 0x02, 0xc4, 0xb5, 0xd8, 0x25, 0x56, 0x90, 0xf8, 0x96, 0x28, 0x6a, 0xbe, 0x62, 0xc3, 0xc7, - 0xa3, 0x7d, 0x97, 0xbc, 0x49, 0x7c, 0x91, 0x9a, 0xa1, 0x03, 0x58, 0xcd, 0xc5, 0x79, 0x3f, 0xc9, - 0xa2, 0xdf, 0x31, 0xb2, 0x86, 0x33, 0xf2, 0x86, 0x33, 0xba, 0x52, 0xd0, 0xae, 0x9c, 0xfc, 0x6c, - 0x16, 0xbe, 0xfc, 0x6a, 0x2a, 0xe6, 0x4a, 0xb6, 0x5e, 0x1e, 0x99, 0xde, 0x44, 0x71, 0x7a, 0x13, - 0xfa, 0x43, 0x68, 0xcc, 0xd4, 0x1d, 0xe9, 0x50, 0x0f, 0x13, 0xdb, 0x3a, 0x26, 0xa9, 0x25, 0x5c, - 0x52, 0x95, 0x8d, 0xe2, 0x66, 0xd5, 0xac, 0x85, 0x89, 0xfd, 0x9a, 0xa4, 0x87, 0x7c, 0x4a, 0xdf, - 0x86, 0xfa, 0x54, 0xbd, 0x51, 0x13, 0x6a, 0x38, 0x0c, 0xad, 0xbc, 0x4b, 0xf8, 0xce, 0x4a, 0x26, - 0xe0, 0x30, 0x94, 0x32, 0xfd, 0x08, 0x96, 0x5f, 0x62, 0xd6, 0x27, 0x3d, 0x09, 0x3c, 0x80, 0x86, - 0x70, 0xc1, 0x9a, 0x35, 0xb8, 0x2e, 0xa6, 0x0f, 0x72, 0x97, 0x75, 0xa8, 0x4f, 0x74, 0x13, 0xaf, - 0x6b, 0xb9, 0x8a, 0x1b, 0xfe, 0x59, 0x81, 0xc6, 0x4c, 0x07, 0xa1, 0x2e, 0xd4, 0x7d, 0xc2, 0x98, - 0x30, 0x91, 0x0c, 0x70, 0x2a, 0x7f, 0xb7, 0xff, 0x38, 0x58, 0x12, 0xee, 0x2d, 0x4b, 0xaa, 0xcb, - 0x21, 0xf4, 0x04, 0xaa, 0x61, 0x44, 0x1c, 0x8f, 0xcd, 0x55, 0x83, 0x6c, 0x85, 0x09, 0xa1, 0xff, - 0x59, 0x80, 0xfa, 0x54, 0x6f, 0xf2, 0x6e, 0x0e, 0x23, 0x1a, 0x52, 0x46, 0xe6, 0xfd, 0xa0, 0x5c, - 0xcf, 0x77, 0x24, 0x87, 0x7c, 0x47, 0x31, 0x9e, 0xf7, 0x7b, 0x96, 0x25, 0xd5, 0xe5, 0x10, 0xda, - 0x85, 0xd2, 0x90, 0xc6, 0x44, 0x1e, 0x03, 0xd7, 0xc2, 0x42, 0x8c, 0x9e, 0x02, 0xf0, 0xa7, 0xcc, - 0x5b, 0x9a, 0xd3, 0x07, 0x8e, 0x64, 0x49, 0xf7, 0xa0, 0xec, 0x50, 0xdf, 0xf7, 0x62, 0x79, 0x02, - 0x5c, 0xcb, 0x4a, 0x39, 0xda, 0x81, 0x5b, 0x76, 0x1a, 0x62, 0xc6, 0xac, 0x6c, 0xc2, 0xba, 0x78, - 0x14, 0x54, 0xcc, 0x1b, 0x59, 0xb0, 0x23, 0x62, 0xd2, 0x68, 0x7d, 0x0b, 0x60, 0xf2, 0x5f, 0xa3, - 0x75, 0x80, 0x88, 0x38, 0x7d, 0xe2, 0x1c, 0x5b, 0xf1, 0x48, 0x78, 0x5e, 0x31, 0xab, 0x72, 0xe6, - 0x70, 0xd4, 0x7e, 0xff, 0x75, 0xac, 0x29, 0x27, 0x63, 0x4d, 0x39, 0x1d, 0x6b, 0xca, 0xef, 0xb1, - 0xa6, 0x7c, 0x3a, 0xd3, 0x0a, 0xa7, 0x67, 0x5a, 0xe1, 0xc7, 0x99, 0x56, 0x38, 0xda, 0x73, 0xbd, - 0xb8, 0x9f, 0xd8, 0x86, 0x43, 0xfd, 0xd6, 0xc5, 0x1b, 0x63, 0x32, 0xcc, 0xae, 0x84, 0xd9, 0xdb, - 0xc4, 0x2e, 0x8b, 0xf9, 0xdd, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xd1, 0x6f, 0x05, 0x4e, 0x68, - 0x06, 0x00, 0x00, + // 731 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x95, 0xcf, 0x6e, 0xd3, 0x4a, + 0x14, 0xc6, 0xe3, 0x26, 0x4d, 0x93, 0x93, 0xa6, 0xa9, 0xe6, 0xde, 0xab, 0xeb, 0xdb, 0x4b, 0x9d, + 0xe2, 0x05, 0xaa, 0x54, 0xc9, 0xae, 0x5a, 0x10, 0x42, 0xe2, 0x8f, 0x9a, 0x04, 0x01, 0x42, 0x45, + 0xc8, 0x54, 0x2c, 0xba, 0xb1, 0xc6, 0xce, 0xe0, 0x58, 0x8d, 0x3d, 0x96, 0xc7, 0x8e, 0xe2, 0xb7, + 0x60, 0x85, 0x78, 0x04, 0xd8, 0xf0, 0x1c, 0x5d, 0x76, 0xc9, 0x0a, 0x50, 0xfa, 0x06, 0x3c, 0x01, + 0x9a, 0xf1, 0xb8, 0x69, 0x52, 0x4a, 0xb3, 0x8a, 0x3d, 0xe7, 0xfb, 0xf9, 0xf3, 0x7c, 0xe7, 0x78, + 0x02, 0x9b, 0x09, 0x09, 0xfb, 0x24, 0x0e, 0xfc, 0x30, 0x31, 0x93, 0x2c, 0x22, 0xcc, 0x8c, 0x70, + 0x8c, 0x03, 0x66, 0x44, 0x31, 0x4d, 0x28, 0x5a, 0x9f, 0x96, 0x0d, 0x51, 0xde, 0xf8, 0xdb, 0xa3, + 0x1e, 0x15, 0x45, 0x93, 0x5f, 0xe5, 0xba, 0x0d, 0xcd, 0xa3, 0xd4, 0x1b, 0x12, 0x53, 0xdc, 0x39, + 0xe9, 0x3b, 0xb3, 0x9f, 0xc6, 0x38, 0xf1, 0x69, 0x98, 0xd7, 0xf5, 0x2f, 0x65, 0x68, 0x75, 0x69, + 0xc8, 0x48, 0xc8, 0x52, 0xf6, 0x5a, 0x38, 0xa0, 0x7d, 0x58, 0x76, 0x86, 0xd4, 0x3d, 0x51, 0x95, + 0x2d, 0x65, 0xbb, 0xb1, 0xb7, 0x69, 0xcc, 0x7b, 0x19, 0x1d, 0x5e, 0xce, 0xd5, 0x56, 0xae, 0x45, + 0x0f, 0xa1, 0x46, 0x46, 0x7e, 0x9f, 0x84, 0x2e, 0x51, 0x97, 0x04, 0xb7, 0x75, 0x95, 0x7b, 0x2a, + 0x15, 0x12, 0xbd, 0x20, 0xd0, 0x13, 0xa8, 0x8f, 0xf0, 0xd0, 0xef, 0xe3, 0x84, 0xc6, 0x6a, 0x59, + 0xe0, 0xb7, 0xaf, 0xe2, 0x6f, 0x0b, 0x89, 0xe4, 0xa7, 0x0c, 0x7a, 0x00, 0x2b, 0x23, 0x12, 0x33, + 0x9f, 0x86, 0x6a, 0x45, 0xe0, 0xed, 0xdf, 0xe0, 0xb9, 0x40, 0xc2, 0x85, 0x9e, 0x7b, 0xb3, 0x2c, + 0x74, 0x07, 0x31, 0x0d, 0x33, 0x75, 0xf9, 0x3a, 0xef, 0x37, 0x85, 0xa4, 0xf0, 0xbe, 0x60, 0xb8, + 0x77, 0xe2, 0x07, 0x84, 0xa6, 0x89, 0x5a, 0xbd, 0xce, 0xfb, 0x28, 0x17, 0x14, 0xde, 0x52, 0x8f, + 0x76, 0xa1, 0x82, 0x1d, 0xd7, 0x57, 0x57, 0x04, 0x77, 0xeb, 0x2a, 0x77, 0xd0, 0xe9, 0xbe, 0x90, + 0x90, 0x50, 0xea, 0x5d, 0x68, 0x5c, 0x4a, 0x1f, 0xfd, 0x0f, 0xf5, 0x00, 0x8f, 0x6d, 0x27, 0x4b, + 0x08, 0x13, 0xfd, 0x2a, 0x5b, 0xb5, 0x00, 0x8f, 0x3b, 0xfc, 0x1e, 0xfd, 0x0b, 0x2b, 0xbc, 0xe8, + 0x61, 0x26, 0x5a, 0x52, 0xb6, 0xaa, 0x01, 0x1e, 0x3f, 0xc3, 0x4c, 0xff, 0xac, 0xc0, 0xda, 0x6c, + 0x2f, 0xd0, 0x0e, 0x20, 0xae, 0xc5, 0x1e, 0xb1, 0xc3, 0x34, 0xb0, 0x45, 0x53, 0x8b, 0x27, 0xb6, + 0x02, 0x3c, 0x3e, 0xf0, 0xc8, 0xab, 0x34, 0x10, 0xd6, 0x0c, 0x1d, 0xc2, 0x7a, 0x21, 0x2e, 0xe6, + 0x49, 0x36, 0xfd, 0x3f, 0x23, 0x1f, 0x38, 0xa3, 0x18, 0x38, 0xa3, 0x27, 0x05, 0x9d, 0xda, 0xe9, + 0xb7, 0x76, 0xe9, 0xe3, 0xf7, 0xb6, 0x62, 0xad, 0xe5, 0xcf, 0x2b, 0x2a, 0xb3, 0x9b, 0x28, 0xcf, + 0x6e, 0x42, 0xbf, 0x07, 0xad, 0xb9, 0xbe, 0x23, 0x1d, 0x9a, 0x51, 0xea, 0xd8, 0x27, 0x24, 0xb3, + 0x45, 0x4a, 0xaa, 0xb2, 0x55, 0xde, 0xae, 0x5b, 0x8d, 0x28, 0x75, 0x5e, 0x92, 0xec, 0x88, 0x2f, + 0xe9, 0xbb, 0xd0, 0x9c, 0xe9, 0x37, 0x6a, 0x43, 0x03, 0x47, 0x91, 0x5d, 0x4c, 0x09, 0xdf, 0x59, + 0xc5, 0x02, 0x1c, 0x45, 0x52, 0xa6, 0x1f, 0xc3, 0xea, 0x73, 0xcc, 0x06, 0xa4, 0x2f, 0x81, 0x3b, + 0xd0, 0x12, 0x29, 0xd8, 0xf3, 0x01, 0x37, 0xc5, 0xf2, 0x61, 0x91, 0xb2, 0x0e, 0xcd, 0xa9, 0x6e, + 0x9a, 0x75, 0xa3, 0x50, 0xf1, 0xc0, 0x3f, 0x28, 0xd0, 0x9a, 0x9b, 0x20, 0xd4, 0x83, 0x66, 0x40, + 0x18, 0x13, 0x21, 0x92, 0x21, 0xce, 0xe4, 0xe7, 0xf6, 0x87, 0x04, 0x2b, 0x22, 0xbd, 0x55, 0x49, + 0xf5, 0x38, 0x84, 0x1e, 0x41, 0x3d, 0x8a, 0x89, 0xeb, 0xb3, 0x85, 0x7a, 0x90, 0x3f, 0x61, 0x4a, + 0xe8, 0x3f, 0x97, 0xa0, 0x39, 0x33, 0x9b, 0x7c, 0x9a, 0xa3, 0x98, 0x46, 0x94, 0x91, 0x45, 0x5f, + 0xa8, 0xd0, 0xf3, 0x1d, 0xc9, 0x4b, 0xbe, 0xa3, 0x04, 0x2f, 0xfa, 0x3e, 0xab, 0x92, 0xea, 0x71, + 0x08, 0xed, 0x43, 0x65, 0x44, 0x13, 0x22, 0x8f, 0x81, 0x1b, 0x61, 0x21, 0x46, 0x8f, 0x01, 0xf8, + 0xaf, 0xf4, 0xad, 0x2c, 0x98, 0x03, 0x47, 0x72, 0xd3, 0xfb, 0x50, 0x75, 0x69, 0x10, 0xf8, 0x89, + 0x3c, 0x01, 0x6e, 0x64, 0xa5, 0x1c, 0xed, 0xc1, 0x3f, 0x4e, 0x16, 0x61, 0xc6, 0xec, 0x7c, 0xc1, + 0xbe, 0x7c, 0x14, 0xd4, 0xac, 0xbf, 0xf2, 0x62, 0x57, 0xd4, 0x64, 0xd0, 0xfa, 0x0e, 0xc0, 0xf4, + 0xbb, 0x46, 0x9b, 0x00, 0x31, 0x71, 0x07, 0xc4, 0x3d, 0xb1, 0x93, 0xb1, 0xc8, 0xbc, 0x66, 0xd5, + 0xe5, 0xca, 0xd1, 0xb8, 0x63, 0x7d, 0x9a, 0x68, 0xca, 0xe9, 0x44, 0x53, 0xce, 0x26, 0x9a, 0xf2, + 0x63, 0xa2, 0x29, 0xef, 0xcf, 0xb5, 0xd2, 0xd9, 0xb9, 0x56, 0xfa, 0x7a, 0xae, 0x95, 0x8e, 0xef, + 0x7a, 0x7e, 0x32, 0x48, 0x1d, 0xc3, 0xa5, 0x81, 0xd9, 0xc7, 0x6c, 0x10, 0xe1, 0xcc, 0xcc, 0x0f, + 0x11, 0x7e, 0x97, 0x1f, 0xfb, 0xe6, 0xfc, 0x5f, 0x89, 0x53, 0x15, 0xeb, 0xfb, 0xbf, 0x02, 0x00, + 0x00, 0xff, 0xff, 0xaa, 0x0f, 0x78, 0xde, 0x65, 0x06, 0x00, 0x00, } func (this *ConsensusParams) Equal(that interface{}) bool { diff --git a/proto/tendermint/types/params.proto b/proto/tendermint/types/params.proto index b8139b20b..302ca7197 100644 --- a/proto/tendermint/types/params.proto +++ b/proto/tendermint/types/params.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; import "gogoproto/gogo.proto"; import "google/protobuf/duration.proto"; diff --git a/proto/tendermint/types/types.go b/proto/tendermint/types/types.go index 3073c7a99..c32a9a140 100644 --- a/proto/tendermint/types/types.go +++ b/proto/tendermint/types/types.go @@ -4,11 +4,9 @@ import ( "bytes" "fmt" - "github.com/gogo/protobuf/types" - - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmbytes "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" ) // IsZero returns true when the object is a zero-value or nil @@ -120,7 +118,7 @@ func (s *StateID) IsZero() bool { s.AppVersion == 0 && s.CoreChainLockedHeight == 0 && s.Height == 0 && - s.Time.Equal(types.Timestamp{})) + s.Time == 0) } // Copy returns new StateID that is equal to this one @@ -134,12 +132,12 @@ func (s StateID) Copy() StateID { func (s StateID) String() string { return fmt.Sprintf( - `v%d:h=%d,cl=%d,ah=%s,t=%s`, + `v%d:h=%d,cl=%d,ah=%s,t=%d`, s.AppVersion, s.Height, s.CoreChainLockedHeight, tmbytes.HexBytes(s.AppHash).ShortString(), - s.Time.String(), + s.Time, ) } @@ -159,8 +157,8 @@ func (s StateID) Equal(other StateID) bool { // ValidateBasic performs basic validation. func (s StateID) ValidateBasic() error { - if s.Time.Equal(types.Timestamp{}) { - return fmt.Errorf("invalid stateID time %s", s.Time.String()) + if s.Time == 0 { + return fmt.Errorf("invalid stateID time %d", s.Time) } if len(s.AppHash) != crypto.DefaultAppHashSize { return fmt.Errorf( diff --git a/proto/tendermint/types/types.pb.go b/proto/tendermint/types/types.pb.go index 8cd8fb82c..07ec7decc 100644 --- a/proto/tendermint/types/types.pb.go +++ b/proto/tendermint/types/types.pb.go @@ -6,12 +6,12 @@ package types import ( encoding_binary "encoding/binary" fmt "fmt" + crypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + version "github.com/dashpay/tenderdash/proto/tendermint/version" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" + _ "github.com/gogo/protobuf/types" github_com_gogo_protobuf_types "github.com/gogo/protobuf/types" - types "github.com/gogo/protobuf/types" - crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" - version "github.com/tendermint/tendermint/proto/tendermint/version" io "io" math "math" math_bits "math/bits" @@ -70,7 +70,6 @@ const ( // Votes PrevoteType SignedMsgType = 1 PrecommitType SignedMsgType = 2 - CommitType SignedMsgType = 3 // Proposals ProposalType SignedMsgType = 32 ) @@ -79,7 +78,6 @@ var SignedMsgType_name = map[int32]string{ 0: "SIGNED_MSG_TYPE_UNKNOWN", 1: "SIGNED_MSG_TYPE_PREVOTE", 2: "SIGNED_MSG_TYPE_PRECOMMIT", - 3: "SIGNED_MSG_TYPE_COMMIT", 32: "SIGNED_MSG_TYPE_PROPOSAL", } @@ -87,7 +85,6 @@ var SignedMsgType_value = map[string]int32{ "SIGNED_MSG_TYPE_UNKNOWN": 0, "SIGNED_MSG_TYPE_PREVOTE": 1, "SIGNED_MSG_TYPE_PRECOMMIT": 2, - "SIGNED_MSG_TYPE_COMMIT": 3, "SIGNED_MSG_TYPE_PROPOSAL": 32, } @@ -286,8 +283,8 @@ type StateID struct { AppHash []byte `protobuf:"bytes,3,opt,name=app_hash,json=appHash,proto3" json:"app_hash,omitempty"` // CoreChainLockedHeight for the block, equal to Header.CoreChainLockedHeight. CoreChainLockedHeight uint32 `protobuf:"fixed32,4,opt,name=core_chain_locked_height,json=coreChainLockedHeight,proto3" json:"core_chain_locked_height,omitempty"` - // Time of the block. - Time types.Timestamp `protobuf:"bytes,5,opt,name=time,proto3" json:"time"` + // Time of the block in milliseconds since epoch, truncated (rounded down) to milliseconds + Time uint64 `protobuf:"fixed64,5,opt,name=time,proto3" json:"time,omitempty"` } func (m *StateID) Reset() { *m = StateID{} } @@ -346,11 +343,11 @@ func (m *StateID) GetCoreChainLockedHeight() uint32 { return 0 } -func (m *StateID) GetTime() types.Timestamp { +func (m *StateID) GetTime() uint64 { if m != nil { return m.Time } - return types.Timestamp{} + return 0 } // Header defines the structure of a Tendermint block header. @@ -359,7 +356,8 @@ type Header struct { Version version.Consensus `protobuf:"bytes,1,opt,name=version,proto3" json:"version"` ChainID string `protobuf:"bytes,2,opt,name=chain_id,json=chainId,proto3" json:"chain_id,omitempty"` Height int64 `protobuf:"varint,3,opt,name=height,proto3" json:"height,omitempty"` - Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"` + // Time of the block, truncated (rounded down) to millisecond + Time time.Time `protobuf:"bytes,4,opt,name=time,proto3,stdtime" json:"time"` // prev block info LastBlockId BlockID `protobuf:"bytes,5,opt,name=last_block_id,json=lastBlockId,proto3" json:"last_block_id"` // hashes of block data @@ -1152,107 +1150,106 @@ func init() { func init() { proto.RegisterFile("tendermint/types/types.proto", fileDescriptor_d3a6e55e2345de56) } var fileDescriptor_d3a6e55e2345de56 = []byte{ - // 1591 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0x3b, 0x6f, 0x1b, 0xc7, - 0x16, 0xe6, 0xf2, 0xcd, 0xc3, 0x87, 0xa8, 0xb5, 0x24, 0x53, 0xb4, 0x4d, 0xee, 0xe5, 0xc5, 0xbd, - 0xd6, 0x35, 0x6e, 0x28, 0xc7, 0x36, 0xe2, 0xc4, 0x40, 0x0a, 0x91, 0x92, 0x2d, 0xc2, 0x7a, 0x30, - 0x4b, 0x5a, 0x41, 0x92, 0x62, 0xb1, 0xe2, 0x8e, 0x49, 0xc6, 0xe4, 0xce, 0x66, 0x77, 0xa8, 0x50, - 0xae, 0x02, 0xa4, 0x88, 0xa1, 0xca, 0x45, 0x60, 0xb8, 0x11, 0x10, 0x23, 0x29, 0xf2, 0x0f, 0xd2, - 0xa7, 0x72, 0xe9, 0x2e, 0x29, 0x02, 0x25, 0x90, 0xff, 0x47, 0x12, 0xcc, 0x63, 0xc9, 0x5d, 0x92, - 0x96, 0x0d, 0x17, 0x69, 0x88, 0x9d, 0x73, 0xbe, 0x33, 0x73, 0xce, 0x37, 0xdf, 0x99, 0x19, 0xc2, - 0x45, 0x82, 0x4c, 0x03, 0xd9, 0xfd, 0xae, 0x49, 0x56, 0xc9, 0xa1, 0x85, 0x1c, 0xfe, 0x5b, 0xb6, - 0x6c, 0x4c, 0xb0, 0x9c, 0x1d, 0x7b, 0xcb, 0xcc, 0x9e, 0x5f, 0x68, 0xe3, 0x36, 0x66, 0xce, 0x55, - 0xfa, 0xc5, 0x71, 0xf9, 0x62, 0x1b, 0xe3, 0x76, 0x0f, 0xad, 0xb2, 0xd1, 0xfe, 0xe0, 0xfe, 0x2a, - 0xe9, 0xf6, 0x91, 0x43, 0xf4, 0xbe, 0x25, 0x00, 0x97, 0x3c, 0xcb, 0xb4, 0xec, 0x43, 0x8b, 0x60, - 0x8a, 0xc5, 0xf7, 0x85, 0xbb, 0xe0, 0x71, 0x1f, 0x20, 0xdb, 0xe9, 0x62, 0xd3, 0x9b, 0x47, 0xfe, - 0xc2, 0x54, 0x96, 0x86, 0xee, 0x74, 0x84, 0x53, 0x99, 0x72, 0x1e, 0xe8, 0xbd, 0xae, 0xa1, 0x13, - 0x6c, 0x73, 0x44, 0xe9, 0x03, 0x48, 0xd7, 0x75, 0x9b, 0x34, 0x10, 0xd9, 0x44, 0xba, 0x81, 0x6c, - 0x79, 0x01, 0x22, 0x04, 0x13, 0xbd, 0x97, 0x93, 0x14, 0x69, 0x25, 0xad, 0xf2, 0x81, 0x2c, 0x43, - 0xb8, 0xa3, 0x3b, 0x9d, 0x5c, 0x50, 0x91, 0x56, 0x52, 0x2a, 0xfb, 0x2e, 0x75, 0x20, 0x4c, 0x43, - 0x69, 0x44, 0xd7, 0x34, 0xd0, 0xd0, 0x8d, 0x60, 0x03, 0x6a, 0xdd, 0x3f, 0x24, 0xc8, 0x11, 0x21, - 0x7c, 0x20, 0xdf, 0x80, 0x08, 0x2b, 0x2e, 0x17, 0x52, 0xa4, 0x95, 0xe4, 0xb5, 0x5c, 0xd9, 0xc3, - 0x22, 0x2f, 0xbe, 0x5c, 0xa7, 0xfe, 0x4a, 0xf8, 0xf9, 0x49, 0x31, 0xa0, 0x72, 0x70, 0xe9, 0x5b, - 0x09, 0x62, 0x95, 0x1e, 0x6e, 0x3d, 0xa8, 0xad, 0x8f, 0x32, 0x91, 0xc6, 0x99, 0xc8, 0xdb, 0x30, - 0x67, 0xe9, 0x36, 0xd1, 0x1c, 0x44, 0xb4, 0x0e, 0x2b, 0x83, 0xad, 0x9a, 0xbc, 0x56, 0x2c, 0x4f, - 0xee, 0x52, 0xd9, 0x57, 0xad, 0x58, 0x26, 0x6d, 0xf9, 0x28, 0xf8, 0x2f, 0xc4, 0x1d, 0xa2, 0x13, - 0xa4, 0x75, 0x0d, 0x96, 0x67, 0xaa, 0x92, 0x3c, 0x3d, 0x29, 0xc6, 0x1a, 0xd4, 0x56, 0x5b, 0x57, - 0x63, 0xcc, 0x59, 0x33, 0x4a, 0x4f, 0x82, 0xe0, 0x1a, 0xe5, 0x55, 0x48, 0xea, 0x96, 0xa5, 0x89, - 0x1d, 0x62, 0xd9, 0x45, 0x2b, 0x99, 0xd3, 0x93, 0x22, 0xac, 0x59, 0xd6, 0x1e, 0xb7, 0xaa, 0xa0, - 0x8f, 0xbe, 0xe5, 0x25, 0x88, 0x76, 0x50, 0xb7, 0xdd, 0x21, 0x2c, 0xd5, 0xa8, 0x2a, 0x46, 0x74, - 0x71, 0x3a, 0x11, 0xab, 0xd1, 0xb3, 0xf8, 0x9a, 0x65, 0x6d, 0xea, 0x4e, 0x47, 0x8d, 0xe9, 0xfc, - 0x43, 0x56, 0x21, 0xd7, 0xc2, 0x36, 0xd2, 0x5a, 0x1d, 0xbd, 0x6b, 0x6a, 0x94, 0x1c, 0x64, 0x68, - 0x62, 0xc6, 0xb0, 0x22, 0xad, 0xc4, 0x2a, 0xcb, 0xa7, 0x27, 0xc5, 0xc5, 0x2a, 0xb6, 0x51, 0x95, - 0x42, 0xb6, 0x18, 0x62, 0x93, 0x01, 0xd4, 0xc5, 0xd6, 0x2c, 0xb3, 0x7c, 0x03, 0xc2, 0x54, 0x9d, - 0xb9, 0x08, 0x23, 0x2f, 0x5f, 0xe6, 0xd2, 0x2d, 0xbb, 0xd2, 0x2d, 0x37, 0x5d, 0xe9, 0x0a, 0xde, - 0x18, 0xfa, 0x56, 0xf6, 0xe9, 0x77, 0xc5, 0xc0, 0xa3, 0x67, 0x45, 0xe9, 0xe9, 0xb3, 0xa2, 0xf4, - 0xd5, 0x6f, 0x4a, 0xa0, 0xf4, 0x67, 0x04, 0xa2, 0x82, 0xcb, 0x0f, 0x21, 0xe6, 0xe5, 0x24, 0x79, - 0xed, 0x92, 0x77, 0x4b, 0x84, 0xab, 0x5c, 0xc5, 0xa6, 0x83, 0x4c, 0x67, 0xe0, 0x88, 0x89, 0xdd, - 0x18, 0xca, 0x06, 0x2f, 0xb0, 0x6b, 0x30, 0x9e, 0x12, 0x9c, 0x0d, 0x96, 0x3a, 0xdd, 0x0a, 0xe6, - 0xac, 0x19, 0x1e, 0x36, 0x29, 0x67, 0xa1, 0x11, 0x9b, 0xef, 0x8b, 0x8a, 0xc2, 0xaf, 0xad, 0x28, - 0x4e, 0x17, 0x7e, 0xfc, 0x7b, 0x51, 0xe2, 0x55, 0xc9, 0x55, 0x48, 0xf7, 0x74, 0x87, 0x68, 0xfb, - 0x94, 0x5a, 0xba, 0x3c, 0x27, 0x65, 0x79, 0x5a, 0x51, 0x42, 0x99, 0x22, 0xf5, 0x24, 0x8d, 0xe2, - 0x26, 0x43, 0x5e, 0x81, 0x2c, 0x9b, 0xa4, 0x85, 0xfb, 0xfd, 0x2e, 0xe1, 0x9b, 0x1a, 0x65, 0xc2, - 0xcd, 0x50, 0x7b, 0x95, 0x99, 0xd9, 0x76, 0x5e, 0x80, 0x84, 0xa1, 0x13, 0x9d, 0x43, 0x62, 0x0c, - 0x12, 0xa7, 0x06, 0xe6, 0xbc, 0x0c, 0x73, 0xa3, 0xbe, 0x75, 0x38, 0x24, 0xce, 0x67, 0x19, 0x9b, - 0x19, 0xf0, 0x2a, 0x2c, 0x98, 0x68, 0x48, 0xb4, 0x49, 0x74, 0x82, 0xa1, 0x65, 0xea, 0xdb, 0xf3, - 0x47, 0xfc, 0x07, 0x32, 0x2d, 0x97, 0x7c, 0x8e, 0x05, 0x86, 0x4d, 0x8f, 0xac, 0x0c, 0x56, 0x86, - 0x73, 0x6c, 0xe2, 0x09, 0x6c, 0x92, 0x61, 0xe7, 0xa9, 0xab, 0xea, 0xc3, 0x2f, 0x7b, 0x54, 0x9c, - 0x62, 0xa0, 0x91, 0x70, 0xff, 0x05, 0x29, 0x1b, 0x39, 0x83, 0x1e, 0x11, 0x73, 0xa4, 0x99, 0x3b, - 0x29, 0x6c, 0x0c, 0xf2, 0x6f, 0x48, 0xa3, 0x83, 0xae, 0x81, 0xcc, 0x16, 0xe2, 0x98, 0x0c, 0xc3, - 0xa4, 0x5c, 0xa3, 0x5b, 0xab, 0x65, 0x63, 0x0b, 0x3b, 0xc8, 0xd0, 0xbc, 0xad, 0x37, 0xa7, 0x48, - 0x2b, 0x61, 0x55, 0x76, 0x7d, 0xe3, 0xf6, 0x93, 0x57, 0x47, 0x11, 0xb6, 0x66, 0xd9, 0x58, 0x23, - 0x43, 0x3e, 0x7b, 0x96, 0x57, 0xe1, 0xfa, 0xea, 0x36, 0x6e, 0x0e, 0xd9, 0x12, 0x37, 0xcf, 0xe8, - 0xb1, 0x79, 0x76, 0xd8, 0xcd, 0x6e, 0xa4, 0x52, 0x0e, 0xc2, 0xeb, 0x3a, 0xd1, 0xe5, 0x2c, 0x84, - 0xc8, 0xd0, 0xc9, 0x49, 0x4a, 0x68, 0x25, 0xa5, 0xd2, 0xcf, 0xd2, 0x5f, 0x41, 0x08, 0xef, 0x61, - 0x82, 0xe4, 0xeb, 0x10, 0xa6, 0xf2, 0x61, 0x5d, 0x91, 0x99, 0x75, 0x50, 0x35, 0xba, 0x6d, 0x13, - 0x19, 0xdb, 0x4e, 0xbb, 0x79, 0x68, 0x21, 0x95, 0x81, 0x27, 0x0e, 0x8d, 0xb1, 0xcc, 0x17, 0x20, - 0x62, 0xe3, 0x81, 0xc9, 0x8f, 0xab, 0x88, 0xca, 0x07, 0xf2, 0x06, 0xc4, 0x47, 0xea, 0x0d, 0xbf, - 0x4e, 0xbd, 0x73, 0x54, 0xbd, 0xb4, 0xb7, 0x84, 0x41, 0x8d, 0xed, 0x0b, 0x11, 0xbf, 0x0b, 0x8b, - 0x23, 0x3d, 0xf9, 0x78, 0x8b, 0x70, 0x55, 0x8d, 0x9c, 0x63, 0xe2, 0xbc, 0x82, 0xd5, 0xf8, 0xe5, - 0x10, 0x65, 0x99, 0x8d, 0x05, 0x5b, 0x63, 0xb7, 0xc4, 0x65, 0x98, 0xe3, 0x29, 0x3a, 0xdd, 0xb6, - 0xa9, 0x93, 0x81, 0x8d, 0x84, 0xf8, 0x33, 0xcc, 0xdc, 0x70, 0xad, 0xf2, 0x26, 0xcc, 0x1d, 0x60, - 0x82, 0x34, 0x34, 0x24, 0xc8, 0xa4, 0xbb, 0xe9, 0xe4, 0xe2, 0x4a, 0x68, 0xf6, 0x11, 0x4f, 0xf9, - 0xdd, 0x70, 0x71, 0x6a, 0xe6, 0xc0, 0x3b, 0x74, 0x4a, 0x3f, 0x05, 0x21, 0xca, 0x1b, 0xcf, 0x43, - 0xa7, 0x34, 0x9b, 0xce, 0xe0, 0xab, 0xe8, 0x0c, 0xbd, 0x3d, 0x9d, 0x45, 0x48, 0x7e, 0x31, 0xc0, - 0xf6, 0xa0, 0xcf, 0x49, 0x0c, 0xb3, 0x72, 0x81, 0x9b, 0x18, 0x79, 0xb7, 0x60, 0x99, 0x74, 0x6c, - 0xe4, 0x74, 0x70, 0xcf, 0xd0, 0x26, 0xd9, 0xe1, 0x9c, 0x9f, 0x1f, 0x01, 0x2a, 0x7e, 0x9a, 0x3e, - 0xf3, 0xc6, 0x4e, 0x12, 0x16, 0x7d, 0x33, 0xc2, 0xc6, 0x93, 0xef, 0xf9, 0x99, 0xfb, 0x39, 0x04, - 0xf1, 0x3a, 0x6b, 0x12, 0xbd, 0xf7, 0x4f, 0xe8, 0xf7, 0x02, 0x24, 0x2c, 0xdc, 0xd3, 0xb8, 0x27, - 0xcc, 0x3c, 0x71, 0x0b, 0xf7, 0xd4, 0xa9, 0xdd, 0x88, 0xbc, 0xfd, 0x6e, 0x54, 0x20, 0x31, 0x7a, - 0x90, 0x31, 0x8d, 0xbe, 0xe9, 0x2d, 0x31, 0x0e, 0x93, 0x2f, 0x42, 0x62, 0x52, 0xbe, 0x63, 0xc3, - 0x99, 0x87, 0x48, 0xfc, 0x8c, 0x43, 0x44, 0x6e, 0xc2, 0xd2, 0x44, 0xa0, 0x36, 0xb0, 0x0c, 0x9d, - 0x20, 0x76, 0x9c, 0xcf, 0xdc, 0x48, 0xdf, 0x6d, 0xaf, 0x9e, 0xf3, 0xcd, 0x7b, 0x8f, 0xc5, 0x96, - 0x6c, 0x48, 0xf1, 0x9d, 0x11, 0x17, 0xf4, 0x55, 0xba, 0x25, 0xec, 0xc9, 0x24, 0x4d, 0x3f, 0xc9, - 0xf8, 0xac, 0x1c, 0xa9, 0x0a, 0x1c, 0x8d, 0xe0, 0xf7, 0x99, 0x78, 0x64, 0xe5, 0x66, 0xe5, 0x41, - 0xfd, 0xaa, 0xc0, 0x95, 0x9e, 0x48, 0x00, 0x5b, 0xb4, 0x26, 0x46, 0x3f, 0xbd, 0x5a, 0x1d, 0x96, - 0x82, 0xe6, 0x5b, 0xb9, 0xf0, 0x2a, 0x0d, 0x89, 0xf5, 0x53, 0x8e, 0x37, 0xef, 0x2a, 0xa4, 0xc7, - 0x47, 0x8c, 0x83, 0xdc, 0x64, 0x66, 0x4c, 0x32, 0xba, 0xf1, 0x1a, 0x88, 0xa8, 0xa9, 0x03, 0xcf, - 0xa8, 0xf4, 0x4d, 0x10, 0x12, 0x2c, 0xa7, 0x6d, 0x44, 0x74, 0x9f, 0xa4, 0xa4, 0xb7, 0x97, 0xd4, - 0x25, 0x00, 0xb7, 0x6b, 0x1f, 0x22, 0x21, 0xf4, 0x84, 0x38, 0xce, 0x1e, 0x22, 0xf9, 0xbd, 0x11, - 0xe1, 0xa1, 0xb3, 0x09, 0x17, 0x0f, 0x0a, 0x97, 0xf6, 0xf3, 0x10, 0x33, 0x07, 0x7d, 0x8d, 0xde, - 0x27, 0x61, 0xde, 0x3c, 0xe6, 0xa0, 0xdf, 0x1c, 0x3a, 0xe3, 0xe6, 0x89, 0x78, 0x9b, 0xe7, 0x1d, - 0x38, 0xd7, 0xd1, 0x1d, 0x6d, 0x42, 0x41, 0x4c, 0xe2, 0x71, 0x35, 0xdb, 0xd1, 0x1d, 0x9f, 0x56, - 0x4a, 0x9f, 0x43, 0xac, 0x39, 0x64, 0x4f, 0x6f, 0xda, 0x76, 0x36, 0xc6, 0xe2, 0xb5, 0xc2, 0x9f, - 0xd9, 0x71, 0x6a, 0x60, 0x87, 0x93, 0x0c, 0x61, 0xfa, 0x2c, 0x71, 0xff, 0x08, 0xd0, 0x6f, 0xb9, - 0xfc, 0x86, 0x8f, 0x7a, 0xf1, 0x9c, 0xbf, 0xf2, 0x8b, 0x04, 0x49, 0xc1, 0xda, 0xed, 0x9e, 0xde, - 0xa6, 0x17, 0x4c, 0x65, 0x6b, 0xb7, 0x7a, 0x57, 0xab, 0xad, 0x6b, 0xb7, 0xb7, 0xd6, 0xee, 0x68, - 0xf7, 0x76, 0xee, 0xee, 0xec, 0x7e, 0xbc, 0x93, 0x0d, 0xe4, 0x97, 0x8e, 0x8e, 0x15, 0xd9, 0x83, - 0xbd, 0x67, 0x3e, 0x30, 0xf1, 0x97, 0xec, 0x2a, 0xf7, 0x87, 0xac, 0x55, 0x1a, 0x1b, 0x3b, 0xcd, - 0xac, 0x94, 0x5f, 0x3c, 0x3a, 0x56, 0xe6, 0x3d, 0x11, 0x6b, 0xfb, 0x0e, 0x32, 0xc9, 0x74, 0x40, - 0x75, 0x77, 0x7b, 0xbb, 0xd6, 0xcc, 0x06, 0xa7, 0x02, 0xc4, 0xdd, 0xf0, 0x3f, 0x98, 0xf7, 0x07, - 0xec, 0xd4, 0xb6, 0xb2, 0xa1, 0xbc, 0x7c, 0x74, 0xac, 0x64, 0x3c, 0xe8, 0x9d, 0x6e, 0x2f, 0x1f, - 0x7f, 0xf4, 0x7d, 0x21, 0xf0, 0xe3, 0x0f, 0x05, 0xe9, 0xca, 0xd7, 0x41, 0x48, 0xfb, 0xce, 0x3d, - 0xf9, 0xff, 0x70, 0xbe, 0x51, 0xbb, 0xb3, 0xb3, 0xb1, 0xae, 0x6d, 0x37, 0xee, 0x68, 0xcd, 0x4f, - 0xea, 0x1b, 0x9e, 0xea, 0xe6, 0x8e, 0x8e, 0x95, 0xa4, 0x28, 0xe9, 0x55, 0xe8, 0xba, 0xba, 0xb1, - 0xb7, 0xdb, 0xdc, 0xc8, 0x4a, 0x1c, 0x5d, 0xb7, 0x11, 0x3d, 0xd6, 0x19, 0xfa, 0x2a, 0x2c, 0xcf, - 0x40, 0x8f, 0x0a, 0x9b, 0x3f, 0x3a, 0x56, 0xd2, 0x75, 0x1b, 0xf1, 0x26, 0x64, 0x11, 0x57, 0x60, - 0x69, 0x32, 0x42, 0xc0, 0x43, 0xf9, 0xcc, 0xd1, 0xb1, 0x02, 0xd5, 0x31, 0xb6, 0x0c, 0xb9, 0xe9, - 0xd9, 0x77, 0xeb, 0xbb, 0x8d, 0xb5, 0xad, 0xac, 0x92, 0xcf, 0x1e, 0x1d, 0x2b, 0x29, 0xf7, 0x32, - 0xa0, 0xf8, 0x31, 0x0b, 0x95, 0x8f, 0x9e, 0x9f, 0x16, 0xa4, 0x17, 0xa7, 0x05, 0xe9, 0x8f, 0xd3, - 0x82, 0xf4, 0xf8, 0x65, 0x21, 0xf0, 0xe2, 0x65, 0x21, 0xf0, 0xeb, 0xcb, 0x42, 0xe0, 0xd3, 0x9b, - 0xed, 0x2e, 0xe9, 0x0c, 0xf6, 0xcb, 0x2d, 0xdc, 0x5f, 0xf5, 0xfe, 0x35, 0x1d, 0x7f, 0xf2, 0xff, - 0xcf, 0x93, 0x7f, 0x5b, 0xf7, 0xa3, 0xcc, 0x7e, 0xfd, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x94, - 0x88, 0x09, 0x80, 0x94, 0x0f, 0x00, 0x00, + // 1572 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xcd, 0x6f, 0x1b, 0x45, + 0x14, 0xf7, 0xc6, 0xdf, 0xe3, 0x8f, 0x38, 0xdb, 0xa4, 0x75, 0xdc, 0xd6, 0x5e, 0x8c, 0xa0, 0x01, + 0x81, 0x5d, 0xda, 0x8a, 0x8f, 0x4a, 0x1c, 0x62, 0x27, 0x6d, 0xac, 0x26, 0x8e, 0xb5, 0x76, 0x83, + 0x80, 0xc3, 0x6a, 0xe3, 0x9d, 0xda, 0xa6, 0xf6, 0xce, 0xb2, 0x3b, 0x0e, 0x4e, 0x4f, 0xdc, 0xa8, + 0x72, 0xea, 0x01, 0xa1, 0x5e, 0x22, 0x51, 0xc1, 0x81, 0xff, 0x80, 0x3b, 0xa7, 0x1e, 0x7b, 0x83, + 0x03, 0x0a, 0x28, 0xfd, 0x17, 0x38, 0x03, 0x9a, 0x37, 0xb3, 0xf6, 0xae, 0xed, 0x86, 0xaa, 0x07, + 0x2e, 0xd6, 0xce, 0x7b, 0xbf, 0x37, 0xf3, 0xde, 0x6f, 0x7e, 0x6f, 0x66, 0x8c, 0x2e, 0x51, 0x6c, + 0x1a, 0xd8, 0x1e, 0xf4, 0x4c, 0x5a, 0xa6, 0x87, 0x16, 0x76, 0xf8, 0x6f, 0xc9, 0xb2, 0x09, 0x25, + 0x72, 0x66, 0xe2, 0x2d, 0x81, 0x3d, 0xb7, 0xdc, 0x21, 0x1d, 0x02, 0xce, 0x32, 0xfb, 0xe2, 0xb8, + 0x5c, 0xa1, 0x43, 0x48, 0xa7, 0x8f, 0xcb, 0x30, 0xda, 0x1f, 0xde, 0x2b, 0xd3, 0xde, 0x00, 0x3b, + 0x54, 0x1f, 0x58, 0x02, 0x70, 0xd9, 0xb3, 0x4c, 0xdb, 0x3e, 0xb4, 0x28, 0x61, 0x58, 0x72, 0x4f, + 0xb8, 0xf3, 0x1e, 0xf7, 0x01, 0xb6, 0x9d, 0x1e, 0x31, 0xbd, 0x79, 0xe4, 0x2e, 0xce, 0x64, 0x69, + 0xe8, 0x4e, 0x57, 0x38, 0x95, 0x19, 0xe7, 0x81, 0xde, 0xef, 0x19, 0x3a, 0x25, 0x36, 0x47, 0x14, + 0x3f, 0x42, 0xa9, 0x86, 0x6e, 0xd3, 0x26, 0xa6, 0x5b, 0x58, 0x37, 0xb0, 0x2d, 0x2f, 0xa3, 0x30, + 0x25, 0x54, 0xef, 0x67, 0x25, 0x45, 0x5a, 0x4b, 0xa9, 0x7c, 0x20, 0xcb, 0x28, 0xd4, 0xd5, 0x9d, + 0x6e, 0x76, 0x41, 0x91, 0xd6, 0x92, 0x2a, 0x7c, 0x17, 0xbb, 0x28, 0xc4, 0x42, 0x59, 0x44, 0xcf, + 0x34, 0xf0, 0xc8, 0x8d, 0x80, 0x01, 0xb3, 0xee, 0x1f, 0x52, 0xec, 0x88, 0x10, 0x3e, 0x90, 0x6f, + 0xa0, 0x30, 0x14, 0x97, 0x0d, 0x2a, 0xd2, 0x5a, 0xe2, 0x5a, 0xb6, 0xe4, 0x61, 0x91, 0x17, 0x5f, + 0x6a, 0x30, 0x7f, 0x25, 0xf4, 0xf4, 0xa4, 0x10, 0x50, 0x39, 0xb8, 0xf8, 0xad, 0x84, 0xa2, 0x95, + 0x3e, 0x69, 0xdf, 0xaf, 0x6d, 0x8c, 0x33, 0x91, 0x26, 0x99, 0xc8, 0x3b, 0x68, 0xd1, 0xd2, 0x6d, + 0xaa, 0x39, 0x98, 0x6a, 0x5d, 0x28, 0x03, 0x56, 0x4d, 0x5c, 0x2b, 0x94, 0xa6, 0x77, 0xa9, 0xe4, + 0xab, 0x56, 0x2c, 0x93, 0xb2, 0x7c, 0x14, 0xbc, 0x89, 0x62, 0x0e, 0xd5, 0x29, 0xd6, 0x7a, 0x06, + 0xe4, 0x99, 0xac, 0x24, 0x4e, 0x4f, 0x0a, 0xd1, 0x26, 0xb3, 0xd5, 0x36, 0xd4, 0x28, 0x38, 0x6b, + 0x46, 0xf1, 0x2f, 0x09, 0xb9, 0x46, 0xb9, 0x8c, 0x12, 0xba, 0x65, 0x69, 0x62, 0x87, 0x20, 0xbb, + 0x48, 0x25, 0x7d, 0x7a, 0x52, 0x40, 0xeb, 0x96, 0xb5, 0xc7, 0xad, 0x2a, 0xd2, 0xc7, 0xdf, 0xf2, + 0x79, 0x14, 0xe9, 0xe2, 0x5e, 0xa7, 0x4b, 0x21, 0xd5, 0x88, 0x2a, 0x46, 0x6c, 0x71, 0x36, 0x11, + 0xd4, 0xe8, 0x59, 0x7c, 0xdd, 0xb2, 0xb6, 0x74, 0xa7, 0xab, 0x46, 0x75, 0xfe, 0x21, 0xab, 0x28, + 0xdb, 0x26, 0x36, 0xd6, 0xda, 0x5d, 0xbd, 0x67, 0x6a, 0x8c, 0x1c, 0x6c, 0x68, 0x62, 0xc6, 0x90, + 0x22, 0xad, 0x45, 0x2b, 0xab, 0xa7, 0x27, 0x85, 0x95, 0x2a, 0xb1, 0x71, 0x95, 0x41, 0xb6, 0x01, + 0xb1, 0x05, 0x00, 0x75, 0xa5, 0x3d, 0xcf, 0xcc, 0xb8, 0x65, 0xea, 0xcc, 0x86, 0x21, 0x23, 0xf8, + 0xbe, 0x99, 0x79, 0xfc, 0x7d, 0x21, 0xf0, 0xf0, 0x49, 0x41, 0x7a, 0xfc, 0xa4, 0x20, 0x7d, 0xfd, + 0xbb, 0x12, 0x28, 0xfe, 0x1d, 0x46, 0x11, 0xc1, 0xd4, 0xc7, 0x28, 0xea, 0xad, 0x38, 0x71, 0xed, + 0xb2, 0x97, 0x70, 0xe1, 0x2a, 0x55, 0x89, 0xe9, 0x60, 0xd3, 0x19, 0x3a, 0x82, 0x6e, 0x37, 0x86, + 0xd5, 0xca, 0xd3, 0xef, 0x19, 0xc0, 0x42, 0x9c, 0xd7, 0x0a, 0x89, 0x31, 0xa2, 0xc1, 0x59, 0x33, + 0x3c, 0x5c, 0x31, 0x46, 0x82, 0x63, 0xae, 0x3e, 0x14, 0xf9, 0x86, 0x60, 0xed, 0x5c, 0x89, 0xb7, + 0x5a, 0xc9, 0x6d, 0xb5, 0x52, 0xcb, 0x6d, 0xb5, 0x4a, 0x8c, 0x2d, 0xfc, 0xe8, 0x8f, 0x82, 0xc4, + 0xab, 0x92, 0xab, 0x28, 0xd5, 0xd7, 0x1d, 0xaa, 0xed, 0x33, 0xe2, 0xd8, 0xf2, 0x61, 0x98, 0x62, + 0x75, 0x56, 0x2f, 0x42, 0x77, 0x22, 0xf5, 0x04, 0x8b, 0xe2, 0x26, 0x43, 0x5e, 0x43, 0x19, 0x98, + 0xa4, 0x4d, 0x06, 0x83, 0x1e, 0xe5, 0x5b, 0x16, 0x01, 0x59, 0xa6, 0x99, 0xbd, 0x0a, 0x66, 0xd8, + 0xac, 0x8b, 0x28, 0x6e, 0xe8, 0x54, 0xe7, 0x90, 0x28, 0x40, 0x62, 0xcc, 0x00, 0xce, 0x2b, 0x68, + 0x71, 0xdc, 0x95, 0x0e, 0x87, 0xc4, 0xf8, 0x2c, 0x13, 0x33, 0x00, 0xaf, 0xa2, 0x65, 0x13, 0x8f, + 0xa8, 0x36, 0x8d, 0x8e, 0x03, 0x5a, 0x66, 0xbe, 0x3d, 0x7f, 0xc4, 0x1b, 0x28, 0xdd, 0x76, 0xc9, + 0xe7, 0x58, 0x04, 0xd8, 0xd4, 0xd8, 0x0a, 0xb0, 0x12, 0x3a, 0x07, 0x13, 0x4f, 0x61, 0x13, 0x80, + 0x5d, 0x62, 0xae, 0xaa, 0x0f, 0xbf, 0xea, 0xd1, 0x68, 0x12, 0x40, 0x63, 0x59, 0xbe, 0x86, 0x92, + 0x36, 0x76, 0x86, 0x7d, 0x2a, 0xe6, 0x48, 0x81, 0x3b, 0x21, 0x6c, 0x00, 0x79, 0x1d, 0xa5, 0xf0, + 0x41, 0xcf, 0xc0, 0x66, 0x1b, 0x73, 0x4c, 0x1a, 0x30, 0x49, 0xd7, 0xe8, 0xd6, 0x6a, 0xd9, 0xc4, + 0x22, 0x0e, 0x36, 0x34, 0x6f, 0x63, 0x2d, 0x2a, 0xd2, 0x5a, 0x48, 0x95, 0x5d, 0xdf, 0xa4, 0xb9, + 0xe4, 0xf2, 0x38, 0xc2, 0xd6, 0x2c, 0x9b, 0x68, 0x74, 0xc4, 0x67, 0xcf, 0xf0, 0x2a, 0x5c, 0x5f, + 0xc3, 0x26, 0xad, 0x11, 0x2c, 0xf1, 0xc1, 0x19, 0x1d, 0xb4, 0x04, 0x47, 0xd9, 0xfc, 0x36, 0x29, + 0x66, 0x51, 0x68, 0x43, 0xa7, 0xba, 0x9c, 0x41, 0x41, 0x3a, 0x72, 0xb2, 0x92, 0x12, 0x5c, 0x4b, + 0xaa, 0xec, 0xb3, 0xf8, 0xcf, 0x02, 0x0a, 0xed, 0x11, 0x8a, 0xe5, 0xeb, 0x28, 0xc4, 0xe4, 0x03, + 0x5d, 0x91, 0x9e, 0x77, 0x0c, 0x35, 0x7b, 0x1d, 0x13, 0x1b, 0x3b, 0x4e, 0xa7, 0x75, 0x68, 0x61, + 0x15, 0xc0, 0x53, 0x47, 0xc2, 0x44, 0xe6, 0xcb, 0x28, 0x6c, 0x93, 0xa1, 0xc9, 0x0f, 0xa3, 0xb0, + 0xca, 0x07, 0xf2, 0x26, 0x8a, 0x8d, 0xd5, 0x1b, 0xfa, 0x2f, 0xf5, 0x2e, 0x32, 0xf5, 0xb2, 0xde, + 0x12, 0x06, 0x35, 0xba, 0x2f, 0x44, 0xfc, 0x1e, 0x5a, 0x19, 0xeb, 0xc9, 0xc7, 0x5b, 0x98, 0xab, + 0x6a, 0xec, 0x9c, 0x10, 0xe7, 0x15, 0xac, 0xc6, 0x8f, 0xfe, 0x08, 0x64, 0x36, 0x11, 0x6c, 0x0d, + 0xee, 0x80, 0x2b, 0x68, 0x91, 0xa7, 0xe8, 0xf4, 0x3a, 0xa6, 0x4e, 0x87, 0x36, 0x16, 0xe2, 0x4f, + 0x83, 0xb9, 0xe9, 0x5a, 0xe5, 0x2d, 0xb4, 0x78, 0x40, 0x28, 0xd6, 0xf0, 0x88, 0x62, 0x93, 0xed, + 0xa6, 0x93, 0x8d, 0x29, 0xc1, 0xf9, 0x07, 0x38, 0xe3, 0x77, 0xd3, 0xc5, 0xa9, 0xe9, 0x03, 0xef, + 0xd0, 0x29, 0xfe, 0xbc, 0x80, 0x22, 0xbc, 0xf1, 0x3c, 0x74, 0x4a, 0xf3, 0xe9, 0x5c, 0x78, 0x11, + 0x9d, 0xc1, 0x57, 0xa7, 0xb3, 0x80, 0x12, 0x5f, 0x0e, 0x89, 0x3d, 0x1c, 0x70, 0x12, 0x43, 0x50, + 0x2e, 0xe2, 0x26, 0x20, 0xef, 0x26, 0x5a, 0xa5, 0x5d, 0x1b, 0x3b, 0x5d, 0xd2, 0x37, 0xb4, 0x69, + 0x76, 0x38, 0xe7, 0x17, 0xc6, 0x80, 0x8a, 0x9f, 0xa6, 0xcf, 0xbd, 0xb1, 0xd3, 0x84, 0x45, 0x5e, + 0x8e, 0xb0, 0xc9, 0xe4, 0x7b, 0x7e, 0xe6, 0x7e, 0x09, 0xa2, 0x58, 0x03, 0x9a, 0x44, 0xef, 0xff, + 0x1f, 0xfa, 0xbd, 0x88, 0xe2, 0x16, 0xe9, 0x6b, 0xdc, 0x13, 0x02, 0x4f, 0xcc, 0x22, 0x7d, 0x75, + 0x66, 0x37, 0xc2, 0xaf, 0xbe, 0x1b, 0x15, 0x14, 0x1f, 0x3f, 0xb7, 0x40, 0xa3, 0x2f, 0x7b, 0x4b, + 0x4c, 0xc2, 0xe4, 0x4b, 0x28, 0x3e, 0x2d, 0xdf, 0x89, 0xe1, 0xcc, 0x43, 0x24, 0x76, 0xc6, 0x21, + 0x22, 0xb7, 0xd0, 0xf9, 0xa9, 0x40, 0x6d, 0x68, 0x19, 0x3a, 0xc5, 0x70, 0x9c, 0xcf, 0xdd, 0x48, + 0xdf, 0x5d, 0xae, 0x9e, 0xf3, 0xcd, 0x7b, 0x17, 0x62, 0x8b, 0x36, 0x4a, 0xf2, 0x9d, 0x11, 0x17, + 0xf4, 0x55, 0xb6, 0x25, 0xf0, 0x20, 0x92, 0x66, 0x1f, 0x5c, 0x7c, 0x56, 0x8e, 0x54, 0x05, 0x8e, + 0x45, 0xf0, 0xfb, 0x4c, 0x3c, 0xa1, 0xb2, 0xf3, 0xf2, 0x60, 0x7e, 0x55, 0xe0, 0x8a, 0xdf, 0x49, + 0x08, 0x6d, 0xb3, 0x9a, 0x80, 0x7e, 0x76, 0xb5, 0x3a, 0x90, 0x82, 0xe6, 0x5b, 0x39, 0xff, 0x22, + 0x0d, 0x89, 0xf5, 0x93, 0x8e, 0x37, 0xef, 0x2a, 0x4a, 0x4d, 0x8e, 0x18, 0x07, 0xbb, 0xc9, 0xcc, + 0x99, 0x64, 0x7c, 0xe3, 0x35, 0x31, 0x55, 0x93, 0x07, 0x9e, 0x51, 0xf1, 0x9b, 0x05, 0x14, 0x87, + 0x9c, 0x76, 0x30, 0xd5, 0x7d, 0x92, 0x92, 0x5e, 0x5d, 0x52, 0x97, 0x11, 0x72, 0xbb, 0xf6, 0x01, + 0x16, 0x42, 0x8f, 0x8b, 0xe3, 0xec, 0x01, 0x96, 0xdf, 0x1f, 0x13, 0x1e, 0x3c, 0x9b, 0x70, 0xf1, + 0xa0, 0x70, 0x69, 0xbf, 0x80, 0xa2, 0xe6, 0x70, 0xa0, 0xb1, 0xfb, 0x24, 0xc4, 0x9b, 0xc7, 0x1c, + 0x0e, 0x5a, 0x23, 0x67, 0xd2, 0x3c, 0x61, 0x6f, 0xf3, 0xbc, 0x8b, 0xce, 0x75, 0x75, 0x47, 0x9b, + 0x52, 0x10, 0x48, 0x3c, 0xa6, 0x66, 0xba, 0xba, 0xe3, 0xd3, 0x4a, 0xf1, 0x0b, 0x14, 0x6d, 0x8d, + 0xe0, 0x61, 0xcd, 0xda, 0xce, 0x26, 0x44, 0xbc, 0x56, 0xf8, 0x23, 0x3a, 0xc6, 0x0c, 0x70, 0x38, + 0xc9, 0x28, 0xc4, 0x9e, 0x25, 0xee, 0x33, 0x9f, 0x7d, 0xcb, 0xa5, 0x97, 0x7c, 0xb2, 0x8b, 0xc7, + 0xfa, 0xdb, 0xbf, 0x4a, 0x28, 0x21, 0x58, 0xbb, 0xd5, 0xd7, 0x3b, 0xec, 0x82, 0xa9, 0x6c, 0xef, + 0x56, 0xef, 0x68, 0xb5, 0x0d, 0xed, 0xd6, 0xf6, 0xfa, 0x6d, 0xed, 0x6e, 0xfd, 0x4e, 0x7d, 0xf7, + 0x93, 0x7a, 0x26, 0x90, 0x3b, 0x7f, 0x74, 0xac, 0xc8, 0x1e, 0xec, 0x5d, 0xf3, 0xbe, 0x49, 0xbe, + 0x82, 0xab, 0xdc, 0x1f, 0xb2, 0x5e, 0x69, 0x6e, 0xd6, 0x5b, 0x19, 0x29, 0xb7, 0x72, 0x74, 0xac, + 0x2c, 0x79, 0x22, 0xd6, 0xf7, 0x1d, 0x6c, 0xd2, 0xd9, 0x80, 0xea, 0xee, 0xce, 0x4e, 0xad, 0x95, + 0x59, 0x98, 0x09, 0x10, 0x77, 0xc3, 0x5b, 0x68, 0xc9, 0x1f, 0x50, 0xaf, 0x6d, 0x67, 0x82, 0x39, + 0xf9, 0xe8, 0x58, 0x49, 0x7b, 0xd0, 0xf5, 0x5e, 0x3f, 0x17, 0x7b, 0xf8, 0x43, 0x3e, 0xf0, 0xd3, + 0x8f, 0x79, 0x89, 0x55, 0x96, 0xf2, 0x9d, 0x7b, 0xf2, 0x3b, 0xe8, 0x42, 0xb3, 0x76, 0xbb, 0xbe, + 0xb9, 0xa1, 0xed, 0x34, 0x6f, 0x6b, 0xad, 0x4f, 0x1b, 0x9b, 0x9e, 0xea, 0x16, 0x8f, 0x8e, 0x95, + 0x84, 0x28, 0xe9, 0x45, 0xe8, 0x86, 0xba, 0xb9, 0xb7, 0xdb, 0xda, 0xcc, 0x48, 0x1c, 0xdd, 0xb0, + 0x31, 0x3b, 0xd6, 0x01, 0x7d, 0x15, 0xad, 0xce, 0x41, 0x8f, 0x0b, 0x5b, 0x3a, 0x3a, 0x56, 0x52, + 0x0d, 0x1b, 0xf3, 0x26, 0x84, 0x88, 0x12, 0xca, 0xce, 0x46, 0xec, 0x36, 0x76, 0x9b, 0xeb, 0xdb, + 0x19, 0x25, 0x97, 0x39, 0x3a, 0x56, 0x92, 0xee, 0x01, 0xcf, 0xf0, 0x93, 0xca, 0x2a, 0xf5, 0xa7, + 0xa7, 0x79, 0xe9, 0xd9, 0x69, 0x5e, 0xfa, 0xf3, 0x34, 0x2f, 0x3d, 0x7a, 0x9e, 0x0f, 0x3c, 0x7b, + 0x9e, 0x0f, 0xfc, 0xf6, 0x3c, 0x1f, 0xf8, 0xec, 0x46, 0xa7, 0x47, 0xbb, 0xc3, 0xfd, 0x52, 0x9b, + 0x0c, 0xe0, 0x8f, 0xa5, 0xa5, 0x1f, 0x96, 0xb9, 0x00, 0xd8, 0x88, 0xff, 0xab, 0x2d, 0x4f, 0xff, + 0xcb, 0xdc, 0x8f, 0x80, 0xfd, 0xfa, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xa8, 0xd9, 0x50, 0xe6, + 0x43, 0x0f, 0x00, 0x00, } func (m *PartSetHeader) Marshal() (dAtA []byte, err error) { @@ -1402,16 +1399,12 @@ func (m *StateID) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l - { - size, err := m.Time.MarshalToSizedBuffer(dAtA[:i]) - if err != nil { - return 0, err - } - i -= size - i = encodeVarintTypes(dAtA, i, uint64(size)) + if m.Time != 0 { + i -= 8 + encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(m.Time)) + i-- + dAtA[i] = 0x29 } - i-- - dAtA[i] = 0x2a if m.CoreChainLockedHeight != 0 { i -= 4 encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(m.CoreChainLockedHeight)) @@ -1554,12 +1547,12 @@ func (m *Header) MarshalToSizedBuffer(dAtA []byte) (int, error) { } i-- dAtA[i] = 0x2a - n5, err5 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) - if err5 != nil { - return 0, err5 + n4, err4 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Time, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Time):]) + if err4 != nil { + return 0, err4 } - i -= n5 - i = encodeVarintTypes(dAtA, i, uint64(n5)) + i -= n4 + i = encodeVarintTypes(dAtA, i, uint64(n4)) i-- dAtA[i] = 0x22 if m.Height != 0 { @@ -1815,12 +1808,12 @@ func (m *Proposal) MarshalToSizedBuffer(dAtA []byte) (int, error) { i-- dAtA[i] = 0x3a } - n10, err10 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp):]) - if err10 != nil { - return 0, err10 + n9, err9 := github_com_gogo_protobuf_types.StdTimeMarshalTo(m.Timestamp, dAtA[i-github_com_gogo_protobuf_types.SizeOfStdTime(m.Timestamp):]) + if err9 != nil { + return 0, err9 } - i -= n10 - i = encodeVarintTypes(dAtA, i, uint64(n10)) + i -= n9 + i = encodeVarintTypes(dAtA, i, uint64(n9)) i-- dAtA[i] = 0x32 { @@ -2150,8 +2143,9 @@ func (m *StateID) Size() (n int) { if m.CoreChainLockedHeight != 0 { n += 5 } - l = m.Time.Size() - n += 1 + l + sovTypes(uint64(l)) + if m.Time != 0 { + n += 9 + } return n } @@ -2912,38 +2906,15 @@ func (m *StateID) Unmarshal(dAtA []byte) error { m.CoreChainLockedHeight = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:])) iNdEx += 4 case 5: - if wireType != 2 { + if wireType != 1 { return fmt.Errorf("proto: wrong wireType = %d for field Time", wireType) } - var msglen int - for shift := uint(0); ; shift += 7 { - if shift >= 64 { - return ErrIntOverflowTypes - } - if iNdEx >= l { - return io.ErrUnexpectedEOF - } - b := dAtA[iNdEx] - iNdEx++ - msglen |= int(b&0x7F) << shift - if b < 0x80 { - break - } - } - if msglen < 0 { - return ErrInvalidLengthTypes - } - postIndex := iNdEx + msglen - if postIndex < 0 { - return ErrInvalidLengthTypes - } - if postIndex > l { + m.Time = 0 + if (iNdEx + 8) > l { return io.ErrUnexpectedEOF } - if err := m.Time.Unmarshal(dAtA[iNdEx:postIndex]); err != nil { - return err - } - iNdEx = postIndex + m.Time = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:])) + iNdEx += 8 default: iNdEx = preIndex skippy, err := skipTypes(dAtA[iNdEx:]) diff --git a/proto/tendermint/types/types.proto b/proto/tendermint/types/types.proto index b63e83000..ea64fa29d 100644 --- a/proto/tendermint/types/types.proto +++ b/proto/tendermint/types/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; import "gogoproto/gogo.proto"; import "google/protobuf/timestamp.proto"; @@ -36,8 +36,6 @@ enum SignedMsgType { [(gogoproto.enumvalue_customname) = "PrevoteType"]; SIGNED_MSG_TYPE_PRECOMMIT = 2 [(gogoproto.enumvalue_customname) = "PrecommitType"]; - SIGNED_MSG_TYPE_COMMIT = 3 - [(gogoproto.enumvalue_customname) = "CommitType"]; // Proposals SIGNED_MSG_TYPE_PROPOSAL = 32 @@ -81,8 +79,8 @@ message StateID { bytes app_hash = 3 [(gogoproto.customname) = "AppHash"]; // CoreChainLockedHeight for the block, equal to Header.CoreChainLockedHeight. fixed32 core_chain_locked_height = 4 [(gogoproto.customname) = "CoreChainLockedHeight"]; - // Time of the block. - google.protobuf.Timestamp time = 5 [(gogoproto.nullable) = false]; + // Time of the block in milliseconds since epoch, truncated (rounded down) to milliseconds + fixed64 time = 5; } // -------------------------------- @@ -93,7 +91,8 @@ message Header { tendermint.version.Consensus version = 1 [(gogoproto.nullable) = false]; string chain_id = 2 [(gogoproto.customname) = "ChainID"]; int64 height = 3; - google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; + // Time of the block, truncated (rounded down) to millisecond + google.protobuf.Timestamp time = 4 [(gogoproto.nullable) = false, (gogoproto.stdtime) = true]; // prev block info BlockID last_block_id = 5 [(gogoproto.nullable) = false]; diff --git a/proto/tendermint/types/types_test.go b/proto/tendermint/types/types_test.go index 56308a0f0..117a4c0fe 100644 --- a/proto/tendermint/types/types_test.go +++ b/proto/tendermint/types/types_test.go @@ -7,12 +7,12 @@ import ( "testing" time "time" - gogotypes "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/internal/libs/protoio" - "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/internal/libs/protoio" + "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" ) // TestVoteSignBytes checks if sign bytes are generated correctly. @@ -24,7 +24,7 @@ func TestVoteSignBytes(t *testing.T) { round = 2 chainID = "some-chain" ) - ts := &gogotypes.Timestamp{} + ts := uint64(0) h := bytes.Repeat([]byte{1, 2, 3, 4}, 8) type testCase struct { @@ -40,7 +40,7 @@ func TestVoteSignBytes(t *testing.T) { Height: height, AppHash: h, CoreChainLockedHeight: 1, - Time: *ts, + Time: ts, }, vote: Vote{ Type: PrevoteType, @@ -52,17 +52,18 @@ func TestVoteSignBytes(t *testing.T) { StateID: []byte{}, // filled later }, }, - expectHex: "0100000001000000000000000200000000000000fb7c89bf010a91d50f890455582b7fed0c346e53ab" + - "33df7da0bcd85c10fa92ead7509905b5407ee72dadd93b4ae70a24ad8a7755fc677acd2b215710a05cfc47736" + - "f6d652d636861696e", - }, + expectHex: "0100000001000000000000000200000000000000" + + "fb7c89bf010a91d50f890455582b7fed0c346e53" + + "ab33df7da0bcd85c10fa92ea1854710e3fa0f558" + + "fee16269c62154c5ca00114f96d782df690a3f6d" + + "8e25c117736f6d652d636861696e"}, 1: { stateID: StateID{ AppVersion: 2, Height: height, AppHash: h, CoreChainLockedHeight: 1, - Time: *ts, + Time: ts, }, vote: Vote{ Type: PrecommitType, @@ -74,9 +75,9 @@ func TestVoteSignBytes(t *testing.T) { StateID: []byte{}, // filled later }, }, - expectHex: "0200000001000000000000000200000000000000fb7c89bf010a91d50f8904" + - "55582b7fed0c346e53ab33df7da0bcd85c10fa92ead7509905b5407ee72dadd93b4ae70a2" + - "4ad8a7755fc677acd2b215710a05cfc47736f6d652d636861696e", + expectHex: "0200000001000000000000000200000000000000fb7c89bf010a91d50f890455582b7fed0c34" + + "6e53ab33df7da0bcd85c10fa92ea1854710e3fa0f558fee16269c62154c5ca00114f96d782df690a3f6d8e2" + + "5c117736f6d652d636861696e", }, } @@ -98,6 +99,7 @@ func TestVoteSignBytes(t *testing.T) { } func TestStateID_Equals(t *testing.T) { + ts := mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)) tests := []struct { state1 StateID state2 StateID @@ -109,14 +111,14 @@ func TestStateID_Equals(t *testing.T) { Height: 123, AppHash: []byte("12345678901234567890123456789012"), CoreChainLockedHeight: 12, - Time: *mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)), + Time: ts, }, StateID{ AppVersion: 12, Height: 123, AppHash: []byte("12345678901234567890123456789012"), CoreChainLockedHeight: 12, - Time: *mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)), + Time: ts, }, true, }, @@ -126,14 +128,14 @@ func TestStateID_Equals(t *testing.T) { Height: 123, AppHash: []byte("12345678901234567890123456789012"), CoreChainLockedHeight: 12, - Time: *mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)), + Time: ts, }, StateID{ AppVersion: 12, Height: 124, AppHash: []byte("12345678901234567890123456789012"), CoreChainLockedHeight: 12, - Time: *mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)), + Time: ts, }, false, }, @@ -143,14 +145,14 @@ func TestStateID_Equals(t *testing.T) { Height: 123, AppHash: []byte("12345678901234567890123456789012"), CoreChainLockedHeight: 12, - Time: *mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)), + Time: ts, }, StateID{ AppVersion: 12, Height: 123, AppHash: []byte("12345678901234567890123456789021"), CoreChainLockedHeight: 12, - Time: *mustTimestamp(time.Date(2019, 1, 2, 3, 4, 5, 6, time.UTC)), + Time: ts, }, false, }, @@ -173,7 +175,7 @@ func TestStateIDIsZero(t *testing.T) { expectZero: true, }, { - StateID: StateID{Time: *gogotypes.TimestampNow()}, + StateID: StateID{Time: uint64(tmtime.Now().UnixMilli())}, expectZero: false, }, } @@ -195,7 +197,7 @@ func TestStateIDSignBytes(t *testing.T) { Height: 1, AppHash: rand.Bytes(32), CoreChainLockedHeight: 123, - Time: *mustTimestamp(time.Date(2022, 3, 4, 5, 6, 7, 8, time.UTC)), + Time: mustTimestamp(time.Date(2022, 3, 4, 5, 6, 7, 8, time.UTC)), }, } @@ -211,10 +213,6 @@ func TestStateIDSignBytes(t *testing.T) { } } -func mustTimestamp(t time.Time) *gogotypes.Timestamp { - ts, err := gogotypes.TimestampProto(t) - if err != nil { - panic(err) - } - return ts +func mustTimestamp(t time.Time) uint64 { + return uint64(t.UnixMilli()) } diff --git a/proto/tendermint/types/validator.pb.go b/proto/tendermint/types/validator.pb.go index 08df629cd..a37aacd83 100644 --- a/proto/tendermint/types/validator.pb.go +++ b/proto/tendermint/types/validator.pb.go @@ -5,9 +5,9 @@ package types import ( fmt "fmt" + crypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" _ "github.com/gogo/protobuf/gogoproto" proto "github.com/gogo/protobuf/proto" - crypto "github.com/tendermint/tendermint/proto/tendermint/crypto" io "io" math "math" math_bits "math/bits" @@ -253,37 +253,37 @@ func init() { func init() { proto.RegisterFile("tendermint/types/validator.proto", fileDescriptor_4e92274df03d3088) } var fileDescriptor_4e92274df03d3088 = []byte{ - // 469 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xc1, 0x6a, 0xdb, 0x40, - 0x14, 0xf4, 0xda, 0x8e, 0x13, 0x3f, 0xb9, 0x24, 0x5d, 0x72, 0x10, 0x69, 0x50, 0x14, 0x1f, 0x8a, - 0xa0, 0x45, 0x82, 0x96, 0x92, 0x43, 0x4e, 0xcd, 0xa9, 0xd0, 0x8b, 0xab, 0x98, 0x1c, 0x7a, 0x11, - 0x92, 0xb5, 0x58, 0xc2, 0xb2, 0xdf, 0x76, 0x77, 0xe5, 0x46, 0x7f, 0xd1, 0xcf, 0xca, 0x31, 0xc7, - 0x42, 0xa1, 0x14, 0xfb, 0x0f, 0xfa, 0x05, 0x45, 0xab, 0x4a, 0x56, 0x73, 0x69, 0x72, 0x5b, 0x66, - 0xe6, 0xed, 0xbc, 0x19, 0x78, 0x60, 0x2b, 0xb6, 0x8a, 0x99, 0x58, 0xa6, 0x2b, 0xe5, 0xa9, 0x82, - 0x33, 0xe9, 0xad, 0xc3, 0x2c, 0x8d, 0x43, 0x85, 0xc2, 0xe5, 0x02, 0x15, 0xd2, 0xa3, 0x9d, 0xc2, - 0xd5, 0x8a, 0x93, 0xe3, 0x39, 0xce, 0x51, 0x93, 0x5e, 0xf9, 0xaa, 0x74, 0x27, 0xa7, 0xad, 0x9f, - 0x66, 0xa2, 0xe0, 0x0a, 0xbd, 0x05, 0x2b, 0x64, 0xc5, 0x8e, 0x7f, 0x77, 0x61, 0x74, 0x53, 0xff, - 0x7c, 0xcd, 0x14, 0xbd, 0x04, 0x68, 0x9c, 0xa4, 0x49, 0xec, 0x9e, 0x63, 0xbc, 0x79, 0xe1, 0x3e, - 0xf4, 0x72, 0x9b, 0x19, 0xbf, 0x25, 0xa7, 0x17, 0x70, 0xc0, 0x05, 0x72, 0x94, 0x4c, 0x98, 0x5d, - 0x9b, 0xfc, 0x6f, 0xb4, 0x11, 0xd3, 0xd7, 0x40, 0x15, 0xaa, 0x30, 0x0b, 0xd6, 0xa8, 0xd2, 0xd5, - 0x3c, 0xe0, 0xf8, 0x95, 0x09, 0xb3, 0x67, 0x13, 0xa7, 0xe7, 0x1f, 0x69, 0xe6, 0x46, 0x13, 0x93, - 0x12, 0xa7, 0x53, 0x38, 0x56, 0x89, 0x60, 0x32, 0xc1, 0x2c, 0x0e, 0x78, 0x1e, 0x65, 0xe9, 0x2c, - 0x58, 0xb0, 0xc2, 0xec, 0x6b, 0xcb, 0xd3, 0xb6, 0x65, 0x95, 0xd8, 0x9d, 0x68, 0xd1, 0x47, 0x56, - 0x5c, 0xf5, 0xef, 0x7e, 0x9e, 0x75, 0x7c, 0xda, 0xcc, 0x37, 0x0c, 0x3d, 0x03, 0xe3, 0x4b, 0x8e, - 0x22, 0x5f, 0x06, 0xe5, 0x9e, 0xe6, 0x9e, 0x4d, 0x9c, 0x3d, 0x1f, 0x2a, 0x68, 0x5a, 0x70, 0xd6, - 0x12, 0x24, 0xa1, 0x4c, 0xcc, 0x81, 0x4d, 0x9c, 0x51, 0x2d, 0xf8, 0x10, 0xca, 0x84, 0xbe, 0x84, - 0xc3, 0x24, 0x94, 0xad, 0x8d, 0xa4, 0xb9, 0x6f, 0x13, 0xe7, 0xc0, 0x7f, 0x96, 0x84, 0xb2, 0x31, - 0x92, 0xe3, 0x1f, 0x04, 0x86, 0x4d, 0x0b, 0xf4, 0x12, 0xf6, 0x79, 0x1e, 0xe9, 0x00, 0xe4, 0x91, - 0x01, 0x88, 0x3f, 0xe0, 0x79, 0x54, 0x2e, 0x7d, 0x0e, 0xa3, 0x7f, 0x2a, 0xeb, 0xea, 0xca, 0x8c, - 0x75, 0xab, 0xad, 0x57, 0xf0, 0xbc, 0xee, 0x39, 0xe0, 0x22, 0x45, 0x91, 0xaa, 0xa2, 0xae, 0xb6, - 0x26, 0x26, 0x7f, 0x71, 0x6a, 0x81, 0xc1, 0x05, 0x06, 0xea, 0xb6, 0xca, 0xd8, 0xd7, 0x19, 0x87, - 0x5c, 0xe0, 0xf4, 0x56, 0x47, 0x3c, 0x87, 0xd1, 0x0a, 0x63, 0x16, 0x84, 0x71, 0x2c, 0x98, 0x94, - 0xba, 0xa5, 0xa1, 0x6f, 0x94, 0xd8, 0xfb, 0x0a, 0x1a, 0x2f, 0xe0, 0xf0, 0x3a, 0x5d, 0xf2, 0x8c, - 0xed, 0x22, 0xbe, 0x7b, 0x52, 0xc4, 0x27, 0x84, 0xbb, 0xfa, 0x74, 0xb7, 0xb1, 0xc8, 0xfd, 0xc6, - 0x22, 0xbf, 0x36, 0x16, 0xf9, 0xb6, 0xb5, 0x3a, 0xf7, 0x5b, 0xab, 0xf3, 0x7d, 0x6b, 0x75, 0x3e, - 0x5f, 0xcc, 0x53, 0x95, 0xe4, 0x91, 0x3b, 0xc3, 0xa5, 0xd7, 0x3e, 0xa6, 0xdd, 0xb3, 0x3a, 0x95, - 0x87, 0x87, 0x16, 0x0d, 0x34, 0xfe, 0xf6, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x67, 0x5f, 0x53, - 0x78, 0x83, 0x03, 0x00, 0x00, + // 475 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x53, 0xcd, 0x6a, 0xdb, 0x40, + 0x18, 0xf4, 0xda, 0x8e, 0x13, 0xaf, 0x5c, 0x92, 0x2e, 0x39, 0x88, 0x34, 0x28, 0x8a, 0x0f, 0x45, + 0xd0, 0x22, 0x41, 0x7f, 0xe8, 0x21, 0xa7, 0xe6, 0x54, 0x28, 0x14, 0xa3, 0x98, 0x1c, 0x7a, 0x11, + 0x2b, 0x6b, 0xf1, 0x0a, 0xcb, 0xfe, 0xb6, 0xbb, 0x2b, 0x37, 0x7a, 0x8b, 0x3e, 0x56, 0x8e, 0x39, + 0x16, 0x0a, 0xa5, 0xd8, 0x6f, 0xd0, 0x27, 0x28, 0x5a, 0x55, 0x8a, 0x9a, 0x4b, 0xe3, 0x9b, 0x34, + 0x33, 0xdf, 0xce, 0x37, 0x03, 0x1f, 0x76, 0x35, 0x5b, 0x25, 0x4c, 0x2e, 0xd3, 0x95, 0x0e, 0x74, + 0x21, 0x98, 0x0a, 0xd6, 0x34, 0x4b, 0x13, 0xaa, 0x41, 0xfa, 0x42, 0x82, 0x06, 0x72, 0x74, 0xaf, + 0xf0, 0x8d, 0xe2, 0xe4, 0x78, 0x0e, 0x73, 0x30, 0x64, 0x50, 0x7e, 0x55, 0xba, 0x93, 0xd3, 0xd6, + 0x4b, 0x33, 0x59, 0x08, 0x0d, 0xc1, 0x82, 0x15, 0xaa, 0x62, 0xc7, 0xbf, 0xbb, 0x78, 0x74, 0x5d, + 0xbf, 0x7c, 0xc5, 0x34, 0xb9, 0xc0, 0xb8, 0x71, 0x52, 0x36, 0x72, 0x7b, 0x9e, 0xf5, 0xea, 0x99, + 0xff, 0xd0, 0xcb, 0x6f, 0x66, 0xc2, 0x96, 0x9c, 0xbc, 0xc3, 0x07, 0x42, 0x82, 0x00, 0xc5, 0xa4, + 0xdd, 0x75, 0xd1, 0xff, 0x46, 0x1b, 0x31, 0x79, 0x89, 0x89, 0x06, 0x4d, 0xb3, 0x68, 0x0d, 0x3a, + 0x5d, 0xcd, 0x23, 0x01, 0x5f, 0x99, 0xb4, 0x7b, 0x2e, 0xf2, 0x7a, 0xe1, 0x91, 0x61, 0xae, 0x0d, + 0x31, 0x29, 0x71, 0x32, 0xc5, 0xc7, 0x9a, 0x4b, 0xa6, 0x38, 0x64, 0x49, 0x24, 0xf2, 0x38, 0x4b, + 0x67, 0xd1, 0x82, 0x15, 0x76, 0xdf, 0x58, 0x9e, 0xb6, 0x2d, 0xab, 0xc4, 0xfe, 0xc4, 0x88, 0x3e, + 0xb2, 0xe2, 0xb2, 0x7f, 0xfb, 0xf3, 0xac, 0x13, 0x92, 0x66, 0xbe, 0x61, 0xc8, 0x19, 0xb6, 0xbe, + 0xe4, 0x20, 0xf3, 0x65, 0x54, 0xee, 0x69, 0xef, 0xb9, 0xc8, 0xdb, 0x0b, 0x71, 0x05, 0x4d, 0x0b, + 0xc1, 0x5a, 0x02, 0x4e, 0x15, 0xb7, 0x07, 0x2e, 0xf2, 0x46, 0xb5, 0xe0, 0x03, 0x55, 0x9c, 0x3c, + 0xc7, 0x87, 0x9c, 0xaa, 0xd6, 0x46, 0xca, 0xde, 0x77, 0x91, 0x77, 0x10, 0x3e, 0xe1, 0x54, 0x35, + 0x46, 0x6a, 0xfc, 0x03, 0xe1, 0x61, 0xd3, 0x02, 0xb9, 0xc0, 0xfb, 0x22, 0x8f, 0x4d, 0x00, 0xf4, + 0xc8, 0x00, 0x28, 0x1c, 0x88, 0x3c, 0x2e, 0x97, 0x3e, 0xc7, 0xa3, 0x7f, 0x2a, 0xeb, 0x9a, 0xca, + 0xac, 0x75, 0xab, 0xad, 0x17, 0xf8, 0x69, 0xdd, 0x73, 0x24, 0x64, 0x0a, 0x32, 0xd5, 0x45, 0x5d, + 0x6d, 0x4d, 0x4c, 0xfe, 0xe2, 0xc4, 0xc1, 0x96, 0x90, 0x10, 0xe9, 0x9b, 0x2a, 0x63, 0xdf, 0x64, + 0x1c, 0x0a, 0x09, 0xd3, 0x1b, 0x13, 0xf1, 0x1c, 0x8f, 0x56, 0x90, 0xb0, 0x88, 0x26, 0x89, 0x64, + 0x4a, 0x99, 0x96, 0x86, 0xa1, 0x55, 0x62, 0xef, 0x2b, 0x68, 0xbc, 0xc0, 0x87, 0x57, 0xe9, 0x52, + 0x64, 0xec, 0x3e, 0xe2, 0xdb, 0x9d, 0x22, 0xee, 0x10, 0xee, 0xf2, 0xd3, 0xed, 0xc6, 0x41, 0x77, + 0x1b, 0x07, 0xfd, 0xda, 0x38, 0xe8, 0xdb, 0xd6, 0xe9, 0xdc, 0x6d, 0x9d, 0xce, 0xf7, 0xad, 0xd3, + 0xf9, 0xfc, 0x66, 0x9e, 0x6a, 0x9e, 0xc7, 0xfe, 0x0c, 0x96, 0x41, 0x42, 0x15, 0x17, 0xb4, 0x08, + 0x2a, 0xd3, 0xf2, 0x2f, 0xa8, 0xee, 0xe4, 0xe1, 0x95, 0xc5, 0x03, 0x83, 0xbf, 0xfe, 0x13, 0x00, + 0x00, 0xff, 0xff, 0x84, 0xb2, 0x3f, 0xb9, 0x80, 0x03, 0x00, 0x00, } func (m *ValidatorSet) Marshal() (dAtA []byte, err error) { diff --git a/proto/tendermint/types/validator.proto b/proto/tendermint/types/validator.proto index 914278046..9c0fe6ab1 100644 --- a/proto/tendermint/types/validator.proto +++ b/proto/tendermint/types/validator.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.types; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/types"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/types"; import "gogoproto/gogo.proto"; import "tendermint/crypto/keys.proto"; diff --git a/proto/tendermint/version/types.pb.go b/proto/tendermint/version/types.pb.go index 76a94fd3c..2d0162356 100644 --- a/proto/tendermint/version/types.pb.go +++ b/proto/tendermint/version/types.pb.go @@ -85,7 +85,7 @@ func init() { func init() { proto.RegisterFile("tendermint/version/types.proto", fileDescriptor_f9b42966edc5edad) } var fileDescriptor_f9b42966edc5edad = []byte{ - // 179 bytes of a gzipped FileDescriptorProto + // 188 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2b, 0x49, 0xcd, 0x4b, 0x49, 0x2d, 0xca, 0xcd, 0xcc, 0x2b, 0xd1, 0x2f, 0x4b, 0x2d, 0x2a, 0xce, 0xcc, 0xcf, 0xd3, 0x2f, 0xa9, 0x2c, 0x48, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x12, 0x42, 0xc8, 0xeb, 0x41, @@ -93,11 +93,11 @@ var fileDescriptor_f9b42966edc5edad = []byte{ 0x17, 0xa7, 0x73, 0x7e, 0x5e, 0x71, 0x6a, 0x5e, 0x71, 0x69, 0xb1, 0x90, 0x08, 0x17, 0x6b, 0x52, 0x4e, 0x7e, 0x72, 0xb6, 0x04, 0xa3, 0x02, 0xa3, 0x06, 0x4b, 0x10, 0x84, 0x23, 0x24, 0xc0, 0xc5, 0x9c, 0x58, 0x50, 0x20, 0xc1, 0x04, 0x16, 0x03, 0x31, 0xad, 0x58, 0x5e, 0x2c, 0x90, 0x67, 0x74, - 0x0a, 0x3e, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, - 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xcb, 0xf4, 0xcc, 0x92, - 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0x7d, 0x24, 0x97, 0x22, 0x31, 0x21, 0xee, 0xc0, 0xf4, - 0x45, 0x12, 0x1b, 0x58, 0xc6, 0x18, 0x10, 0x00, 0x00, 0xff, 0xff, 0xf8, 0xf0, 0x65, 0xd2, 0xe2, - 0x00, 0x00, 0x00, + 0x0a, 0x38, 0xf1, 0x48, 0x8e, 0xf1, 0xc2, 0x23, 0x39, 0xc6, 0x07, 0x8f, 0xe4, 0x18, 0x27, 0x3c, + 0x96, 0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x86, 0x28, 0xb3, 0xf4, 0xcc, 0x92, + 0x8c, 0xd2, 0x24, 0xbd, 0xe4, 0xfc, 0x5c, 0xfd, 0x94, 0xc4, 0xe2, 0x8c, 0x82, 0xc4, 0x4a, 0x7d, + 0x88, 0x8b, 0x40, 0x3c, 0x7d, 0x88, 0x23, 0x30, 0xbd, 0x90, 0xc4, 0x06, 0x96, 0x31, 0x06, 0x04, + 0x00, 0x00, 0xff, 0xff, 0x7d, 0xcb, 0x13, 0xbb, 0xdf, 0x00, 0x00, 0x00, } func (this *Consensus) Equal(that interface{}) bool { diff --git a/proto/tendermint/version/types.proto b/proto/tendermint/version/types.proto index 37124dd4e..5bcc0a400 100644 --- a/proto/tendermint/version/types.proto +++ b/proto/tendermint/version/types.proto @@ -1,7 +1,7 @@ syntax = "proto3"; package tendermint.version; -option go_package = "github.com/tendermint/tendermint/proto/tendermint/version"; +option go_package = "github.com/dashpay/tenderdash/proto/tendermint/version"; import "gogoproto/gogo.proto"; diff --git a/rpc/client/event_test.go b/rpc/client/event_test.go index e59fcc83b..e5f285253 100644 --- a/rpc/client/event_test.go +++ b/rpc/client/event_test.go @@ -9,11 +9,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) const waitForEventTimeout = 2 * time.Second diff --git a/rpc/client/eventstream/eventstream.go b/rpc/client/eventstream/eventstream.go index 59cfc8b5f..807f3e8e5 100644 --- a/rpc/client/eventstream/eventstream.go +++ b/rpc/client/eventstream/eventstream.go @@ -9,7 +9,7 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // Client is the subset of the RPC client interface consumed by Stream. diff --git a/rpc/client/eventstream/eventstream_test.go b/rpc/client/eventstream/eventstream_test.go index 8cd9df30f..84813ea10 100644 --- a/rpc/client/eventstream/eventstream_test.go +++ b/rpc/client/eventstream/eventstream_test.go @@ -10,12 +10,12 @@ import ( "github.com/fortytw2/leaktest" "github.com/google/go-cmp/cmp" - "github.com/tendermint/tendermint/internal/eventlog" - "github.com/tendermint/tendermint/internal/eventlog/cursor" - rpccore "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/rpc/client/eventstream" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/eventlog" + "github.com/dashpay/tenderdash/internal/eventlog/cursor" + rpccore "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/rpc/client/eventstream" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) func TestStream_filterOrder(t *testing.T) { diff --git a/rpc/client/evidence_test.go b/rpc/client/evidence_test.go index 0a1e9ae6a..5789e6a64 100644 --- a/rpc/client/evidence_test.go +++ b/rpc/client/evidence_test.go @@ -8,12 +8,12 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/types" ) func newEvidence(t *testing.T, val *privval.FilePV, diff --git a/rpc/client/examples_test.go b/rpc/client/examples_test.go index 7cb2f795a..d2deedd5f 100644 --- a/rpc/client/examples_test.go +++ b/rpc/client/examples_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - "github.com/tendermint/tendermint/rpc/coretypes" - rpctest "github.com/tendermint/tendermint/rpc/test" + "github.com/dashpay/tenderdash/abci/example/kvstore" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpctest "github.com/dashpay/tenderdash/rpc/test" ) func TestHTTPSimple(t *testing.T) { diff --git a/rpc/client/helpers.go b/rpc/client/helpers.go index 05694afff..7c1b158f9 100644 --- a/rpc/client/helpers.go +++ b/rpc/client/helpers.go @@ -5,9 +5,9 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/jsontypes" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) // Waiter is informed of current height, decided whether to quit early diff --git a/rpc/client/helpers_test.go b/rpc/client/helpers_test.go index eb13e8d77..29891762c 100644 --- a/rpc/client/helpers_test.go +++ b/rpc/client/helpers_test.go @@ -9,9 +9,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/client/mock" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/client/mock" + "github.com/dashpay/tenderdash/rpc/coretypes" ) func TestWaitForHeight(t *testing.T) { diff --git a/rpc/client/http/http.go b/rpc/client/http/http.go index c8d7b0bdb..7708e9619 100644 --- a/rpc/client/http/http.go +++ b/rpc/client/http/http.go @@ -7,11 +7,11 @@ import ( "net/http" "time" - "github.com/tendermint/tendermint/libs/bytes" - rpcclient "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - jsonrpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/bytes" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + jsonrpcclient "github.com/dashpay/tenderdash/rpc/jsonrpc/client" + "github.com/dashpay/tenderdash/types" ) /* diff --git a/rpc/client/http/ws.go b/rpc/client/http/ws.go index a0128e845..088beb2aa 100644 --- a/rpc/client/http/ws.go +++ b/rpc/client/http/ws.go @@ -9,11 +9,11 @@ import ( sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/libs/log" - rpcclient "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - jsonrpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client" + "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/libs/log" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + jsonrpcclient "github.com/dashpay/tenderdash/rpc/jsonrpc/client" ) // wsEvents is a wrapper around WSClient, which implements SubscriptionClient. diff --git a/rpc/client/interface.go b/rpc/client/interface.go index 169671fd6..7f011a828 100644 --- a/rpc/client/interface.go +++ b/rpc/client/interface.go @@ -23,9 +23,9 @@ implementation. import ( "context" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) //go:generate ../../scripts/mockery_generate.sh Client|RemoteClient diff --git a/rpc/client/local/local.go b/rpc/client/local/local.go index 6ed7cff68..bfcb39d59 100644 --- a/rpc/client/local/local.go +++ b/rpc/client/local/local.go @@ -6,15 +6,15 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/internal/eventbus" - "github.com/tendermint/tendermint/internal/pubsub" - "github.com/tendermint/tendermint/internal/pubsub/query" - rpccore "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - rpcclient "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/eventbus" + "github.com/dashpay/tenderdash/internal/pubsub" + "github.com/dashpay/tenderdash/internal/pubsub/query" + rpccore "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + rpcclient "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) /* diff --git a/rpc/client/main_test.go b/rpc/client/main_test.go index 4749efee2..a8d477794 100644 --- a/rpc/client/main_test.go +++ b/rpc/client/main_test.go @@ -7,11 +7,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/service" - rpctest "github.com/tendermint/tendermint/rpc/test" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/service" + rpctest "github.com/dashpay/tenderdash/rpc/test" ) func NodeSuite(ctx context.Context, t *testing.T, logger log.Logger) (service.Service, *config.Config) { diff --git a/rpc/client/mock/abci.go b/rpc/client/mock/abci.go index c692fe0da..1bdbfe2d8 100644 --- a/rpc/client/mock/abci.go +++ b/rpc/client/mock/abci.go @@ -3,13 +3,13 @@ package mock import ( "context" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/internal/proxy" - "github.com/tendermint/tendermint/libs/bytes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/internal/proxy" + "github.com/dashpay/tenderdash/libs/bytes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) // ABCIApp will send all abci related request to the named app, diff --git a/rpc/client/mock/abci_test.go b/rpc/client/mock/abci_test.go index a10575abf..deed35017 100644 --- a/rpc/client/mock/abci_test.go +++ b/rpc/client/mock/abci_test.go @@ -9,13 +9,13 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/client/mock" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/client/mock" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) func TestABCIMock(t *testing.T) { diff --git a/rpc/client/mock/client.go b/rpc/client/mock/client.go index bca155f74..4c368ace4 100644 --- a/rpc/client/mock/client.go +++ b/rpc/client/mock/client.go @@ -18,11 +18,11 @@ import ( "context" "reflect" - "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" + "github.com/dashpay/tenderdash/types" ) // Client wraps arbitrary implementations of the various interfaces. diff --git a/rpc/client/mock/status.go b/rpc/client/mock/status.go index 22548e891..1a446896e 100644 --- a/rpc/client/mock/status.go +++ b/rpc/client/mock/status.go @@ -3,8 +3,8 @@ package mock import ( "context" - "github.com/tendermint/tendermint/rpc/client" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/client" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // StatusMock returns the result specified by the Call diff --git a/rpc/client/mock/status_test.go b/rpc/client/mock/status_test.go index fb70ca9d9..7eb2b9ae1 100644 --- a/rpc/client/mock/status_test.go +++ b/rpc/client/mock/status_test.go @@ -8,9 +8,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/rpc/client/mock" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/rpc/client/mock" + "github.com/dashpay/tenderdash/rpc/coretypes" ) func TestStatus(t *testing.T) { @@ -31,7 +31,6 @@ func TestStatus(t *testing.T) { ChunkProcessAvgTime: time.Duration(10), SnapshotHeight: 10, SnapshotChunksCount: 9, - SnapshotChunksTotal: 10, BackFilledBlocks: 9, BackFillBlocksTotal: 10, }, @@ -69,7 +68,6 @@ func TestStatus(t *testing.T) { assert.EqualValues(t, time.Duration(10), st.SyncInfo.ChunkProcessAvgTime) assert.EqualValues(t, 10, st.SyncInfo.SnapshotHeight) assert.EqualValues(t, 9, status.SyncInfo.SnapshotChunksCount) - assert.EqualValues(t, 10, status.SyncInfo.SnapshotChunksTotal) assert.EqualValues(t, 9, status.SyncInfo.BackFilledBlocks) assert.EqualValues(t, 10, status.SyncInfo.BackFillBlocksTotal) } diff --git a/rpc/client/mocks/abci_client.go b/rpc/client/mocks/abci_client.go index 504c4efd8..fc06ed551 100644 --- a/rpc/client/mocks/abci_client.go +++ b/rpc/client/mocks/abci_client.go @@ -3,16 +3,16 @@ package mocks import ( - bytes "github.com/tendermint/tendermint/libs/bytes" - client "github.com/tendermint/tendermint/rpc/client" + bytes "github.com/dashpay/tenderdash/libs/bytes" + client "github.com/dashpay/tenderdash/rpc/client" context "context" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // ABCIClient is an autogenerated mock type for the ABCIClient type @@ -202,13 +202,12 @@ func (_m *ABCIClient) BroadcastTxSync(_a0 context.Context, _a1 types.Tx) (*coret return r0, r1 } -type mockConstructorTestingTNewABCIClient interface { +// NewABCIClient creates a new instance of ABCIClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewABCIClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewABCIClient creates a new instance of ABCIClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewABCIClient(t mockConstructorTestingTNewABCIClient) *ABCIClient { +}) *ABCIClient { mock := &ABCIClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/client.go b/rpc/client/mocks/client.go index daf2207c8..22533b366 100644 --- a/rpc/client/mocks/client.go +++ b/rpc/client/mocks/client.go @@ -3,16 +3,16 @@ package mocks import ( - bytes "github.com/tendermint/tendermint/libs/bytes" - client "github.com/tendermint/tendermint/rpc/client" + bytes "github.com/dashpay/tenderdash/libs/bytes" + client "github.com/dashpay/tenderdash/rpc/client" context "context" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // Client is an autogenerated mock type for the Client type @@ -915,13 +915,12 @@ func (_m *Client) Validators(ctx context.Context, height *int64, page *int, perP return r0, r1 } -type mockConstructorTestingTNewClient interface { +// NewClient creates a new instance of Client. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewClient creates a new instance of Client. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewClient(t mockConstructorTestingTNewClient) *Client { +}) *Client { mock := &Client{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/events_client.go b/rpc/client/mocks/events_client.go index 0e158f9cd..092e7b15e 100644 --- a/rpc/client/mocks/events_client.go +++ b/rpc/client/mocks/events_client.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" ) // EventsClient is an autogenerated mock type for the EventsClient type @@ -40,13 +40,12 @@ func (_m *EventsClient) Events(ctx context.Context, req *coretypes.RequestEvents return r0, r1 } -type mockConstructorTestingTNewEventsClient interface { +// NewEventsClient creates a new instance of EventsClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEventsClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewEventsClient creates a new instance of EventsClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewEventsClient(t mockConstructorTestingTNewEventsClient) *EventsClient { +}) *EventsClient { mock := &EventsClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/evidence_client.go b/rpc/client/mocks/evidence_client.go index 9c95244d2..1b7817a0f 100644 --- a/rpc/client/mocks/evidence_client.go +++ b/rpc/client/mocks/evidence_client.go @@ -5,10 +5,10 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // EvidenceClient is an autogenerated mock type for the EvidenceClient type @@ -42,13 +42,12 @@ func (_m *EvidenceClient) BroadcastEvidence(_a0 context.Context, _a1 types.Evide return r0, r1 } -type mockConstructorTestingTNewEvidenceClient interface { +// NewEvidenceClient creates a new instance of EvidenceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewEvidenceClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewEvidenceClient creates a new instance of EvidenceClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewEvidenceClient(t mockConstructorTestingTNewEvidenceClient) *EvidenceClient { +}) *EvidenceClient { mock := &EvidenceClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/history_client.go b/rpc/client/mocks/history_client.go index 3e7d6f054..280e1738a 100644 --- a/rpc/client/mocks/history_client.go +++ b/rpc/client/mocks/history_client.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" ) // HistoryClient is an autogenerated mock type for the HistoryClient type @@ -92,13 +92,12 @@ func (_m *HistoryClient) GenesisChunked(_a0 context.Context, _a1 uint) (*coretyp return r0, r1 } -type mockConstructorTestingTNewHistoryClient interface { +// NewHistoryClient creates a new instance of HistoryClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewHistoryClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewHistoryClient creates a new instance of HistoryClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewHistoryClient(t mockConstructorTestingTNewHistoryClient) *HistoryClient { +}) *HistoryClient { mock := &HistoryClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/mempool_client.go b/rpc/client/mocks/mempool_client.go index 3ac15fc2e..66c296e1f 100644 --- a/rpc/client/mocks/mempool_client.go +++ b/rpc/client/mocks/mempool_client.go @@ -5,10 +5,10 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // MempoolClient is an autogenerated mock type for the MempoolClient type @@ -108,13 +108,12 @@ func (_m *MempoolClient) UnconfirmedTxs(ctx context.Context, page *int, perPage return r0, r1 } -type mockConstructorTestingTNewMempoolClient interface { +// NewMempoolClient creates a new instance of MempoolClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewMempoolClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewMempoolClient creates a new instance of MempoolClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewMempoolClient(t mockConstructorTestingTNewMempoolClient) *MempoolClient { +}) *MempoolClient { mock := &MempoolClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/network_client.go b/rpc/client/mocks/network_client.go index d09b3c8dc..f365a8a4c 100644 --- a/rpc/client/mocks/network_client.go +++ b/rpc/client/mocks/network_client.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" ) // NetworkClient is an autogenerated mock type for the NetworkClient type @@ -144,13 +144,12 @@ func (_m *NetworkClient) NetInfo(_a0 context.Context) (*coretypes.ResultNetInfo, return r0, r1 } -type mockConstructorTestingTNewNetworkClient interface { +// NewNetworkClient creates a new instance of NetworkClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewNetworkClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewNetworkClient creates a new instance of NetworkClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewNetworkClient(t mockConstructorTestingTNewNetworkClient) *NetworkClient { +}) *NetworkClient { mock := &NetworkClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/remote_client.go b/rpc/client/mocks/remote_client.go index ddb932981..a09c863c8 100644 --- a/rpc/client/mocks/remote_client.go +++ b/rpc/client/mocks/remote_client.go @@ -3,16 +3,16 @@ package mocks import ( - bytes "github.com/tendermint/tendermint/libs/bytes" - client "github.com/tendermint/tendermint/rpc/client" + bytes "github.com/dashpay/tenderdash/libs/bytes" + client "github.com/dashpay/tenderdash/rpc/client" context "context" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // RemoteClient is an autogenerated mock type for the RemoteClient type @@ -929,13 +929,12 @@ func (_m *RemoteClient) Validators(ctx context.Context, height *int64, page *int return r0, r1 } -type mockConstructorTestingTNewRemoteClient interface { +// NewRemoteClient creates a new instance of RemoteClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewRemoteClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewRemoteClient creates a new instance of RemoteClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewRemoteClient(t mockConstructorTestingTNewRemoteClient) *RemoteClient { +}) *RemoteClient { mock := &RemoteClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/sign_client.go b/rpc/client/mocks/sign_client.go index aa192a75c..9d312d993 100644 --- a/rpc/client/mocks/sign_client.go +++ b/rpc/client/mocks/sign_client.go @@ -3,11 +3,11 @@ package mocks import ( - bytes "github.com/tendermint/tendermint/libs/bytes" + bytes "github.com/dashpay/tenderdash/libs/bytes" context "context" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" ) @@ -277,13 +277,12 @@ func (_m *SignClient) Validators(ctx context.Context, height *int64, page *int, return r0, r1 } -type mockConstructorTestingTNewSignClient interface { +// NewSignClient creates a new instance of SignClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSignClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewSignClient creates a new instance of SignClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSignClient(t mockConstructorTestingTNewSignClient) *SignClient { +}) *SignClient { mock := &SignClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/status_client.go b/rpc/client/mocks/status_client.go index 801bd3112..7094efff0 100644 --- a/rpc/client/mocks/status_client.go +++ b/rpc/client/mocks/status_client.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" ) // StatusClient is an autogenerated mock type for the StatusClient type @@ -40,13 +40,12 @@ func (_m *StatusClient) Status(_a0 context.Context) (*coretypes.ResultStatus, er return r0, r1 } -type mockConstructorTestingTNewStatusClient interface { +// NewStatusClient creates a new instance of StatusClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewStatusClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewStatusClient creates a new instance of StatusClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewStatusClient(t mockConstructorTestingTNewStatusClient) *StatusClient { +}) *StatusClient { mock := &StatusClient{} mock.Mock.Test(t) diff --git a/rpc/client/mocks/subscription_client.go b/rpc/client/mocks/subscription_client.go index 580809a8e..512da36df 100644 --- a/rpc/client/mocks/subscription_client.go +++ b/rpc/client/mocks/subscription_client.go @@ -5,8 +5,8 @@ package mocks import ( context "context" + coretypes "github.com/dashpay/tenderdash/rpc/coretypes" mock "github.com/stretchr/testify/mock" - coretypes "github.com/tendermint/tendermint/rpc/coretypes" ) // SubscriptionClient is an autogenerated mock type for the SubscriptionClient type @@ -75,13 +75,12 @@ func (_m *SubscriptionClient) UnsubscribeAll(ctx context.Context, subscriber str return r0 } -type mockConstructorTestingTNewSubscriptionClient interface { +// NewSubscriptionClient creates a new instance of SubscriptionClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewSubscriptionClient(t interface { mock.TestingT Cleanup(func()) -} - -// NewSubscriptionClient creates a new instance of SubscriptionClient. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewSubscriptionClient(t mockConstructorTestingTNewSubscriptionClient) *SubscriptionClient { +}) *SubscriptionClient { mock := &SubscriptionClient{} mock.Mock.Test(t) diff --git a/rpc/client/rpc_test.go b/rpc/client/rpc_test.go index e35da5e88..7544c9f84 100644 --- a/rpc/client/rpc_test.go +++ b/rpc/client/rpc_test.go @@ -18,21 +18,20 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/privval" - - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/mempool" - rpccore "github.com/tendermint/tendermint/internal/rpc/core" - "github.com/tendermint/tendermint/libs/log" - tmmath "github.com/tendermint/tendermint/libs/math" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/rpc/client" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - rpclocal "github.com/tendermint/tendermint/rpc/client/local" - "github.com/tendermint/tendermint/rpc/coretypes" - rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/mempool" + rpccore "github.com/dashpay/tenderdash/internal/rpc/core" + "github.com/dashpay/tenderdash/libs/log" + tmmath "github.com/dashpay/tenderdash/libs/math" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/privval" + "github.com/dashpay/tenderdash/rpc/client" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + rpclocal "github.com/dashpay/tenderdash/rpc/client/local" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpcclient "github.com/dashpay/tenderdash/rpc/jsonrpc/client" + "github.com/dashpay/tenderdash/types" ) func getHTTPClient(t *testing.T, logger log.Logger, conf *config.Config) *rpchttp.HTTP { diff --git a/rpc/coretypes/requests.go b/rpc/coretypes/requests.go index ed90a1165..18870f50f 100644 --- a/rpc/coretypes/requests.go +++ b/rpc/coretypes/requests.go @@ -5,9 +5,9 @@ import ( "strconv" "time" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/jsontypes" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) type RequestSubscribe struct { diff --git a/rpc/coretypes/responses.go b/rpc/coretypes/responses.go index 565394362..329e1dc39 100644 --- a/rpc/coretypes/responses.go +++ b/rpc/coretypes/responses.go @@ -7,11 +7,11 @@ import ( "github.com/dashpay/dashd-go/btcjson" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/jsontypes" - "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/jsontypes" + "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/types" ) // List of standardized errors used across RPC @@ -111,7 +111,6 @@ type SyncInfo struct { ChunkProcessAvgTime time.Duration `json:"chunk_process_avg_time,string"` SnapshotHeight int64 `json:"snapshot_height,string"` SnapshotChunksCount int64 `json:"snapshot_chunks_count,string"` - SnapshotChunksTotal int64 `json:"snapshot_chunks_total,string"` BackFilledBlocks int64 `json:"backfilled_blocks,string"` BackFillBlocksTotal int64 `json:"backfill_blocks_total,string"` } diff --git a/rpc/coretypes/responses_test.go b/rpc/coretypes/responses_test.go index e1049cfa6..1ae645620 100644 --- a/rpc/coretypes/responses_test.go +++ b/rpc/coretypes/responses_test.go @@ -11,10 +11,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - pbcrypto "github.com/tendermint/tendermint/proto/tendermint/crypto" - "github.com/tendermint/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + pbcrypto "github.com/dashpay/tenderdash/proto/tendermint/crypto" + "github.com/dashpay/tenderdash/types" ) func TestStatusIndexer(t *testing.T) { diff --git a/rpc/jsonrpc/client/decode.go b/rpc/jsonrpc/client/decode.go index 2babcf70c..2b7da2d94 100644 --- a/rpc/jsonrpc/client/decode.go +++ b/rpc/jsonrpc/client/decode.go @@ -4,7 +4,7 @@ import ( "encoding/json" "fmt" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) func unmarshalResponseBytes(responseBytes []byte, expectedID string, result interface{}) error { diff --git a/rpc/jsonrpc/client/http_json_client.go b/rpc/jsonrpc/client/http_json_client.go index 0fd81aaba..d5d6ae8e3 100644 --- a/rpc/jsonrpc/client/http_json_client.go +++ b/rpc/jsonrpc/client/http_json_client.go @@ -15,7 +15,7 @@ import ( sync "github.com/sasha-s/go-deadlock" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) const ( diff --git a/rpc/jsonrpc/client/ws_client.go b/rpc/jsonrpc/client/ws_client.go index 5df137f4a..ed91fdec1 100644 --- a/rpc/jsonrpc/client/ws_client.go +++ b/rpc/jsonrpc/client/ws_client.go @@ -13,8 +13,8 @@ import ( "github.com/gorilla/websocket" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) // wsOptions carries optional settings for a websocket connection. diff --git a/rpc/jsonrpc/client/ws_client_test.go b/rpc/jsonrpc/client/ws_client_test.go index ff8196d47..663973cc9 100644 --- a/rpc/jsonrpc/client/ws_client_test.go +++ b/rpc/jsonrpc/client/ws_client_test.go @@ -15,7 +15,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) const wsCallTimeout = 5 * time.Second diff --git a/rpc/jsonrpc/jsonrpc_test.go b/rpc/jsonrpc/jsonrpc_test.go index 0586e3019..b171de3cc 100644 --- a/rpc/jsonrpc/jsonrpc_test.go +++ b/rpc/jsonrpc/jsonrpc_test.go @@ -16,10 +16,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/rpc/jsonrpc/client" - "github.com/tendermint/tendermint/rpc/jsonrpc/server" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/rpc/jsonrpc/client" + "github.com/dashpay/tenderdash/rpc/jsonrpc/server" ) // Client and Server should work over tcp or unix sockets diff --git a/rpc/jsonrpc/server/http_json_handler.go b/rpc/jsonrpc/server/http_json_handler.go index 4f9e28faa..9ff030e5e 100644 --- a/rpc/jsonrpc/server/http_json_handler.go +++ b/rpc/jsonrpc/server/http_json_handler.go @@ -9,8 +9,8 @@ import ( "net/http" "strings" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) // HTTP + JSON handler diff --git a/rpc/jsonrpc/server/http_json_handler_test.go b/rpc/jsonrpc/server/http_json_handler_test.go index dd4a9d8e2..033b39d9f 100644 --- a/rpc/jsonrpc/server/http_json_handler_test.go +++ b/rpc/jsonrpc/server/http_json_handler_test.go @@ -12,8 +12,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) func testMux() *http.ServeMux { diff --git a/rpc/jsonrpc/server/http_server.go b/rpc/jsonrpc/server/http_server.go index fffc002f3..6d82f9998 100644 --- a/rpc/jsonrpc/server/http_server.go +++ b/rpc/jsonrpc/server/http_server.go @@ -14,8 +14,8 @@ import ( "golang.org/x/net/netutil" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) // Config is a RPC server configuration. diff --git a/rpc/jsonrpc/server/http_server_test.go b/rpc/jsonrpc/server/http_server_test.go index ac8f2886e..646f120ad 100644 --- a/rpc/jsonrpc/server/http_server_test.go +++ b/rpc/jsonrpc/server/http_server_test.go @@ -18,8 +18,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) type sampleResult struct { diff --git a/rpc/jsonrpc/server/http_uri_handler.go b/rpc/jsonrpc/server/http_uri_handler.go index c755bbaf1..469c04100 100644 --- a/rpc/jsonrpc/server/http_uri_handler.go +++ b/rpc/jsonrpc/server/http_uri_handler.go @@ -9,8 +9,8 @@ import ( "strconv" "strings" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) // uriReqID is a placeholder ID used for GET requests, which do not receive a diff --git a/rpc/jsonrpc/server/parse_test.go b/rpc/jsonrpc/server/parse_test.go index 4a0e92ad1..c95cacf79 100644 --- a/rpc/jsonrpc/server/parse_test.go +++ b/rpc/jsonrpc/server/parse_test.go @@ -9,7 +9,7 @@ import ( "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/libs/bytes" ) func TestParseJSONMap(t *testing.T) { diff --git a/rpc/jsonrpc/server/rpc_func.go b/rpc/jsonrpc/server/rpc_func.go index 818ebb42e..677106414 100644 --- a/rpc/jsonrpc/server/rpc_func.go +++ b/rpc/jsonrpc/server/rpc_func.go @@ -11,8 +11,8 @@ import ( "strings" "time" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) // DefaultRPCTimeout is the default context timeout for calls to any RPC method diff --git a/rpc/jsonrpc/server/ws_handler.go b/rpc/jsonrpc/server/ws_handler.go index 3a259757b..bb897680e 100644 --- a/rpc/jsonrpc/server/ws_handler.go +++ b/rpc/jsonrpc/server/ws_handler.go @@ -10,8 +10,8 @@ import ( "github.com/gorilla/websocket" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) // WebSocket handler diff --git a/rpc/jsonrpc/server/ws_handler_test.go b/rpc/jsonrpc/server/ws_handler_test.go index ce1bcd973..55ac0704e 100644 --- a/rpc/jsonrpc/server/ws_handler_test.go +++ b/rpc/jsonrpc/server/ws_handler_test.go @@ -11,8 +11,8 @@ import ( "github.com/gorilla/websocket" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) func TestWebsocketManagerHandler(t *testing.T) { diff --git a/rpc/jsonrpc/test/main.go b/rpc/jsonrpc/test/main.go index 2ed013c17..d1b592898 100644 --- a/rpc/jsonrpc/test/main.go +++ b/rpc/jsonrpc/test/main.go @@ -9,8 +9,8 @@ import ( "os/signal" "syscall" - "github.com/tendermint/tendermint/libs/log" - rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/libs/log" + rpcserver "github.com/dashpay/tenderdash/rpc/jsonrpc/server" ) var routes = map[string]*rpcserver.RPCFunc{ diff --git a/rpc/jsonrpc/types/types.go b/rpc/jsonrpc/types/types.go index ded68bea2..8e922b8f6 100644 --- a/rpc/jsonrpc/types/types.go +++ b/rpc/jsonrpc/types/types.go @@ -11,7 +11,7 @@ import ( "strconv" "strings" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/coretypes" ) // ErrorCode is the type of JSON-RPC error codes. diff --git a/rpc/test/helpers.go b/rpc/test/helpers.go index c988cadb0..e2e64deab 100644 --- a/rpc/test/helpers.go +++ b/rpc/test/helpers.go @@ -7,15 +7,15 @@ import ( "testing" "time" - abciclient "github.com/tendermint/tendermint/abci/client" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/libs/service" - "github.com/tendermint/tendermint/node" - "github.com/tendermint/tendermint/rpc/coretypes" - rpcclient "github.com/tendermint/tendermint/rpc/jsonrpc/client" + abciclient "github.com/dashpay/tenderdash/abci/client" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/libs/service" + "github.com/dashpay/tenderdash/node" + "github.com/dashpay/tenderdash/rpc/coretypes" + rpcclient "github.com/dashpay/tenderdash/rpc/jsonrpc/client" ) // Options helps with specifying some parameters for our RPC testing for greater diff --git a/scripts/confix/confix.go b/scripts/confix/confix.go index 29c5bb753..5f284ea2a 100644 --- a/scripts/confix/confix.go +++ b/scripts/confix/confix.go @@ -11,7 +11,7 @@ import ( "os" "path/filepath" - "github.com/tendermint/tendermint/internal/libs/confix" + "github.com/dashpay/tenderdash/internal/libs/confix" ) func init() { diff --git a/scripts/estream/estream.go b/scripts/estream/estream.go index c37bc5ba7..0e05ccf62 100644 --- a/scripts/estream/estream.go +++ b/scripts/estream/estream.go @@ -12,9 +12,9 @@ import ( "os/signal" "path/filepath" - "github.com/tendermint/tendermint/rpc/client/eventstream" - rpcclient "github.com/tendermint/tendermint/rpc/client/http" - "github.com/tendermint/tendermint/rpc/coretypes" + "github.com/dashpay/tenderdash/rpc/client/eventstream" + rpcclient "github.com/dashpay/tenderdash/rpc/client/http" + "github.com/dashpay/tenderdash/rpc/coretypes" ) var ( diff --git a/scripts/json2wal/main.go b/scripts/json2wal/main.go index e8d3fcf93..28d0591a5 100644 --- a/scripts/json2wal/main.go +++ b/scripts/json2wal/main.go @@ -15,8 +15,8 @@ import ( "os" "strings" - "github.com/tendermint/tendermint/internal/consensus" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/internal/consensus" + "github.com/dashpay/tenderdash/types" ) func main() { diff --git a/scripts/metricsgen/metricsdiff/metricsdiff_test.go b/scripts/metricsgen/metricsdiff/metricsdiff_test.go index ec27ef1e9..56e1add7f 100644 --- a/scripts/metricsgen/metricsdiff/metricsdiff_test.go +++ b/scripts/metricsgen/metricsdiff/metricsdiff_test.go @@ -5,8 +5,8 @@ import ( "io" "testing" + metricsdiff "github.com/dashpay/tenderdash/scripts/metricsgen/metricsdiff" "github.com/stretchr/testify/require" - metricsdiff "github.com/tendermint/tendermint/scripts/metricsgen/metricsdiff" ) func TestDiff(t *testing.T) { diff --git a/scripts/metricsgen/metricsgen_test.go b/scripts/metricsgen/metricsgen_test.go index f3c97854d..423417f3e 100644 --- a/scripts/metricsgen/metricsgen_test.go +++ b/scripts/metricsgen/metricsgen_test.go @@ -13,7 +13,7 @@ import ( "github.com/stretchr/testify/require" - metricsgen "github.com/tendermint/tendermint/scripts/metricsgen" + metricsgen "github.com/dashpay/tenderdash/scripts/metricsgen" ) const testDataDir = "./testdata" diff --git a/scripts/mockery_generate.sh b/scripts/mockery_generate.sh index 2d6f40e63..3c7e8d3e4 100755 --- a/scripts/mockery_generate.sh +++ b/scripts/mockery_generate.sh @@ -6,10 +6,11 @@ # runs the published Docker container. This legerdemain is so that the CI build # and a local build can work off the same script. # -if ! which mockery ; then - mockery() { - docker run --rm -v "$PWD":/w --workdir=/w vektra/mockery:v2.12.3 - } +VERSION=v2.33.2 + +if ! mockery --version 2>/dev/null | grep $VERSION; then + echo "Please install mockery $VERSION" + exit 1 fi mockery --disable-version-string --case underscore --name "$@" diff --git a/scripts/scmigrate/migrate.go b/scripts/scmigrate/migrate.go index c8e1d9490..643dce671 100644 --- a/scripts/scmigrate/migrate.go +++ b/scripts/scmigrate/migrate.go @@ -17,8 +17,8 @@ import ( "github.com/google/orderedcode" dbm "github.com/tendermint/tm-db" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) type toMigrate struct { diff --git a/scripts/scmigrate/migrate_test.go b/scripts/scmigrate/migrate_test.go index 900a15f85..3527e5d7a 100644 --- a/scripts/scmigrate/migrate_test.go +++ b/scripts/scmigrate/migrate_test.go @@ -9,7 +9,7 @@ import ( "github.com/gogo/protobuf/proto" dbm "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func appendRandomMigrations(in []toMigrate, num int) []toMigrate { diff --git a/scripts/wal2json/main.go b/scripts/wal2json/main.go index 7ee756106..22da871e1 100644 --- a/scripts/wal2json/main.go +++ b/scripts/wal2json/main.go @@ -13,7 +13,7 @@ import ( "io" "os" - "github.com/tendermint/tendermint/internal/consensus" + "github.com/dashpay/tenderdash/internal/consensus" ) func main() { diff --git a/spec/abci++/api.md b/spec/abci++/api.md index d12825755..eebd8feef 100644 --- a/spec/abci++/api.md +++ b/spec/abci++/api.md @@ -267,7 +267,7 @@ Applies a snapshot chunk. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | -| index | [uint32](#uint32) | | The chunk index, starting from 0. Tenderdash applies chunks sequentially. | +| chunk_id | [bytes](#bytes) | | The chunk index, starting from 0. Tenderdash applies chunks sequentially. | | chunk | [bytes](#bytes) | | The binary chunk contents, as returned by LoadSnapshotChunk. | | sender | [string](#string) | | The P2P ID of the node who sent this chunk. | @@ -499,8 +499,8 @@ Used during state sync to retrieve snapshot chunks from peers. | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | height | [uint64](#uint64) | | The height of the snapshot the chunks belongs to. | -| format | [uint32](#uint32) | | The application-specific format of the snapshot the chunk belongs to. | -| chunk | [uint32](#uint32) | | The chunk index, starting from 0 for the initial chunk. | +| version | [uint32](#uint32) | | The application-specific format of the snapshot the chunk belongs to. | +| chunk_id | [bytes](#bytes) | | The chunk id is a hash of the node of subtree of the snapshot. | @@ -693,7 +693,7 @@ When a validator _p_ enters Tenderdash consensus round _r_, height _h_, in which | txs | [bytes](#bytes) | repeated | List of transactions that have been picked as part of the proposed | | proposed_last_commit | [CommitInfo](#tendermint-abci-CommitInfo) | | Info about the last commit, obtained from the information in the proposed block. | | misbehavior | [Misbehavior](#tendermint-abci-Misbehavior) | repeated | List of information about validators that acted incorrectly. | -| hash | [bytes](#bytes) | | The block header's hash of the proposed block. | +| hash | [bytes](#bytes) | | The block header's hash of the proposed block. It is computed as a Merkle tree from the header fields. | | height | [int64](#int64) | | The height of the proposed block. | | round | [int32](#int32) | | Round number for the block | | time | [google.protobuf.Timestamp](#google-protobuf-Timestamp) | | Timestamp included in the proposed block. | @@ -819,8 +819,9 @@ from this condition, but not sure), and _p_ receives a Precommit message for rou | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | result | [ResponseApplySnapshotChunk.Result](#tendermint-abci-ResponseApplySnapshotChunk-Result) | | The result of applying this chunk. | -| refetch_chunks | [uint32](#uint32) | repeated | Refetch and reapply the given chunks, regardless of `result`. Only the listed chunks will be refetched, and reapplied in sequential order. | +| refetch_chunks | [bytes](#bytes) | repeated | Refetch and reapply the given chunks, regardless of `result`. Only the listed chunks will be refetched, and reapplied in sequential order. | | reject_senders | [string](#string) | repeated | Reject the given P2P senders, regardless of `Result`. Any chunks already applied will not be refetched unless explicitly requested, but queued chunks from these senders will be discarded, and new chunks or other snapshots rejected. | +| next_chunks | [bytes](#bytes) | repeated | Next chunks provides the list of chunks that should be requested next, if any. | @@ -1088,8 +1089,7 @@ nondeterministic | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | height | [uint64](#uint64) | | The height at which the snapshot was taken | -| format | [uint32](#uint32) | | The application-specific snapshot format | -| chunks | [uint32](#uint32) | | Number of chunks in the snapshot | +| version | [uint32](#uint32) | | The application-specific snapshot version | | hash | [bytes](#bytes) | | Arbitrary snapshot hash, equal only if identical | | metadata | [bytes](#bytes) | | Arbitrary application metadata | @@ -1256,6 +1256,7 @@ Type of transaction check | RETRY | 3 | Retry chunk (combine with refetch and reject) | | RETRY_SNAPSHOT | 4 | Retry snapshot (combine with refetch and reject) | | REJECT_SNAPSHOT | 5 | Reject this snapshot, try others | +| COMPLETE_SNAPSHOT | 6 | Complete this snapshot, no more chunks | diff --git a/spec/consensus/signing.md b/spec/consensus/signing.md index 33ec7085d..b3c1f9d2f 100644 --- a/spec/consensus/signing.md +++ b/spec/consensus/signing.md @@ -193,7 +193,7 @@ app state using vote signature. Data needed to do the verification is: * Chain ID * Commit information: - * Type (constant, always Commit) + * Type (constant, always Precommit) * Height * Round * Hash of CanonicalBlockID diff --git a/test/e2e/app/app.go b/test/e2e/app/app.go index bb6251b34..aa250c4dd 100644 --- a/test/e2e/app/app.go +++ b/test/e2e/app/app.go @@ -14,12 +14,12 @@ import ( sync "github.com/sasha-s/go-deadlock" db "github.com/tendermint/tm-db" - "github.com/tendermint/tendermint/abci/example/code" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/libs/log" - types1 "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/code" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/libs/log" + types1 "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/test/e2e/app/app_test.go b/test/e2e/app/app_test.go index ff7f1e639..a238be37b 100644 --- a/test/e2e/app/app_test.go +++ b/test/e2e/app/app_test.go @@ -14,11 +14,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/code" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - tmtypes "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/code" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + tmtypes "github.com/dashpay/tenderdash/proto/tendermint/types" ) func newApp(t *testing.T) *Application { diff --git a/test/e2e/generator/generate.go b/test/e2e/generator/generate.go index ce2f86c31..66143562c 100644 --- a/test/e2e/generator/generate.go +++ b/test/e2e/generator/generate.go @@ -8,9 +8,9 @@ import ( "strings" "time" - "github.com/tendermint/tendermint/abci/example/kvstore" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) var ( diff --git a/test/e2e/generator/generate_test.go b/test/e2e/generator/generate_test.go index 1edfa5fba..55771c27d 100644 --- a/test/e2e/generator/generate_test.go +++ b/test/e2e/generator/generate_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/require" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" ) func TestGenerator(t *testing.T) { diff --git a/test/e2e/generator/main.go b/test/e2e/generator/main.go index a74fb0637..d1349aa9b 100644 --- a/test/e2e/generator/main.go +++ b/test/e2e/generator/main.go @@ -10,8 +10,8 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/libs/log" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" + "github.com/dashpay/tenderdash/libs/log" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" ) const ( diff --git a/test/e2e/node/config.go b/test/e2e/node/config.go index b2e1b24ff..8eb9ee74a 100644 --- a/test/e2e/node/config.go +++ b/test/e2e/node/config.go @@ -7,7 +7,7 @@ import ( "github.com/BurntSushi/toml" - "github.com/tendermint/tendermint/abci/example/kvstore" + "github.com/dashpay/tenderdash/abci/example/kvstore" ) // Config is the application configuration. diff --git a/test/e2e/node/main.go b/test/e2e/node/main.go index 3cd357696..caf90c2ac 100644 --- a/test/e2e/node/main.go +++ b/test/e2e/node/main.go @@ -15,27 +15,27 @@ import ( "github.com/spf13/viper" "google.golang.org/grpc" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/abci/server" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto/ed25519" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/internal/p2p" - "github.com/tendermint/tendermint/libs/log" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/light" - lproxy "github.com/tendermint/tendermint/light/proxy" - lrpc "github.com/tendermint/tendermint/light/rpc" - dbs "github.com/tendermint/tendermint/light/store/db" - "github.com/tendermint/tendermint/node" - "github.com/tendermint/tendermint/privval" - grpcprivval "github.com/tendermint/tendermint/privval/grpc" - privvalproto "github.com/tendermint/tendermint/proto/tendermint/privval" - rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" - "github.com/tendermint/tendermint/test/e2e/app" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/mockcoreserver" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/abci/server" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto/ed25519" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/internal/p2p" + "github.com/dashpay/tenderdash/libs/log" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/light" + lproxy "github.com/dashpay/tenderdash/light/proxy" + lrpc "github.com/dashpay/tenderdash/light/rpc" + dbs "github.com/dashpay/tenderdash/light/store/db" + "github.com/dashpay/tenderdash/node" + "github.com/dashpay/tenderdash/privval" + grpcprivval "github.com/dashpay/tenderdash/privval/grpc" + privvalproto "github.com/dashpay/tenderdash/proto/tendermint/privval" + rpcserver "github.com/dashpay/tenderdash/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/test/e2e/app" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/mockcoreserver" ) var ( diff --git a/test/e2e/pkg/infra/docker/compose.go b/test/e2e/pkg/infra/docker/compose.go index 8291d7396..a9453d860 100644 --- a/test/e2e/pkg/infra/docker/compose.go +++ b/test/e2e/pkg/infra/docker/compose.go @@ -5,7 +5,7 @@ import ( "os" "text/template" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" ) // makeDockerCompose generates a Docker Compose config for a testnet. diff --git a/test/e2e/pkg/infra/docker/exec.go b/test/e2e/pkg/infra/docker/exec.go index de0033e32..361c46308 100644 --- a/test/e2e/pkg/infra/docker/exec.go +++ b/test/e2e/pkg/infra/docker/exec.go @@ -4,7 +4,7 @@ import ( "context" "path/filepath" - "github.com/tendermint/tendermint/test/e2e/pkg/exec" + "github.com/dashpay/tenderdash/test/e2e/pkg/exec" ) // execCompose runs a Docker Compose command for a testnet. diff --git a/test/e2e/pkg/infra/docker/infra.go b/test/e2e/pkg/infra/docker/infra.go index 382576c91..f0b0902c8 100644 --- a/test/e2e/pkg/infra/docker/infra.go +++ b/test/e2e/pkg/infra/docker/infra.go @@ -6,10 +6,10 @@ import ( "os" "path/filepath" - "github.com/tendermint/tendermint/libs/log" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/exec" - "github.com/tendermint/tendermint/test/e2e/pkg/infra" + "github.com/dashpay/tenderdash/libs/log" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/exec" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra" ) // testnetInfra provides an API for provisioning and manipulating diff --git a/test/e2e/pkg/infra/infra.go b/test/e2e/pkg/infra/infra.go index 2fa7c5ad9..2cefa337e 100644 --- a/test/e2e/pkg/infra/infra.go +++ b/test/e2e/pkg/infra/infra.go @@ -3,7 +3,7 @@ package infra import ( "context" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" ) // TestnetInfra provides an API for manipulating the infrastructure of a diff --git a/test/e2e/pkg/manifest.go b/test/e2e/pkg/manifest.go index cc768f878..9bd98e0a6 100644 --- a/test/e2e/pkg/manifest.go +++ b/test/e2e/pkg/manifest.go @@ -8,7 +8,7 @@ import ( "github.com/BurntSushi/toml" - "github.com/tendermint/tendermint/abci/example/kvstore" + "github.com/dashpay/tenderdash/abci/example/kvstore" ) // Manifest represents a TOML testnet manifest. diff --git a/test/e2e/pkg/mockcoreserver/core_server.go b/test/e2e/pkg/mockcoreserver/core_server.go index ef26284e8..9a3880f83 100644 --- a/test/e2e/pkg/mockcoreserver/core_server.go +++ b/test/e2e/pkg/mockcoreserver/core_server.go @@ -8,9 +8,9 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/privval" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/privval" ) // CoreServer is an interface of a mock core-server @@ -170,6 +170,7 @@ func (c *MockCoreServer) MasternodeStatus(ctx context.Context, _ btcjson.Mastern } return btcjson.MasternodeStatusResult{ ProTxHash: proTxHash.String(), + State: btcjson.MNStatusStateReady, } } diff --git a/test/e2e/pkg/mockcoreserver/server_test.go b/test/e2e/pkg/mockcoreserver/server_test.go index edcfb3ca4..2d75db66e 100644 --- a/test/e2e/pkg/mockcoreserver/server_test.go +++ b/test/e2e/pkg/mockcoreserver/server_test.go @@ -12,11 +12,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - dashcore "github.com/tendermint/tendermint/dash/core" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/privval" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + dashcore "github.com/dashpay/tenderdash/dash/core" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/privval" ) func TestServer(t *testing.T) { diff --git a/test/e2e/pkg/testnet.go b/test/e2e/pkg/testnet.go index 7e8cada56..6ec8295ea 100644 --- a/test/e2e/pkg/testnet.go +++ b/test/e2e/pkg/testnet.go @@ -15,15 +15,15 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/abci/example/kvstore" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/crypto/secp256k1" - "github.com/tendermint/tendermint/dash/llmq" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/kvstore" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/secp256k1" + "github.com/dashpay/tenderdash/dash/llmq" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/test/e2e/pkg/utils.go b/test/e2e/pkg/utils.go index 9082dda48..5f58a1d0b 100644 --- a/test/e2e/pkg/utils.go +++ b/test/e2e/pkg/utils.go @@ -7,8 +7,8 @@ import ( "math/rand" "strconv" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/llmq" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/llmq" ) // proTxHashGenerator generates pseudorandom proTxHash based on a seed. diff --git a/test/e2e/runner/benchmark.go b/test/e2e/runner/benchmark.go index 91c748ff7..d5f6ef553 100644 --- a/test/e2e/runner/benchmark.go +++ b/test/e2e/runner/benchmark.go @@ -8,9 +8,9 @@ import ( "path/filepath" "time" - "github.com/tendermint/tendermint/libs/log" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) // Benchmark is a simple function for fetching, calculating and printing diff --git a/test/e2e/runner/cleanup.go b/test/e2e/runner/cleanup.go index 5332af29c..547aabf22 100644 --- a/test/e2e/runner/cleanup.go +++ b/test/e2e/runner/cleanup.go @@ -5,8 +5,8 @@ import ( "errors" "os" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/test/e2e/pkg/infra" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra" ) // Cleanup destroys all infrastructure and removes all generated testnet files. diff --git a/test/e2e/runner/evidence.go b/test/e2e/runner/evidence.go index bb5e4c35f..84192cf2a 100644 --- a/test/e2e/runner/evidence.go +++ b/test/e2e/runner/evidence.go @@ -10,16 +10,15 @@ import ( "path/filepath" "time" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/test/factory" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmrand "github.com/tendermint/tendermint/libs/rand" - - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/privval" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/test/factory" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/privval" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) // InjectEvidence takes a running testnet and generates an amount of valid diff --git a/test/e2e/runner/load.go b/test/e2e/runner/load.go index eac2d682a..2a5eba24d 100644 --- a/test/e2e/runner/load.go +++ b/test/e2e/runner/load.go @@ -7,11 +7,11 @@ import ( "math/rand" "time" - "github.com/tendermint/tendermint/libs/log" - tmrand "github.com/tendermint/tendermint/libs/rand" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + tmrand "github.com/dashpay/tenderdash/libs/rand" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) // Load generates transactions against the network until the given context is diff --git a/test/e2e/runner/main.go b/test/e2e/runner/main.go index 9a24f1141..e50b1eafd 100644 --- a/test/e2e/runner/main.go +++ b/test/e2e/runner/main.go @@ -11,10 +11,10 @@ import ( "github.com/spf13/cobra" - "github.com/tendermint/tendermint/libs/log" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/infra" - "github.com/tendermint/tendermint/test/e2e/pkg/infra/docker" + "github.com/dashpay/tenderdash/libs/log" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra/docker" ) const randomSeed = 2308084734268 diff --git a/test/e2e/runner/perturb.go b/test/e2e/runner/perturb.go index 76a209ea2..edc238cce 100644 --- a/test/e2e/runner/perturb.go +++ b/test/e2e/runner/perturb.go @@ -5,10 +5,10 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/libs/log" - rpctypes "github.com/tendermint/tendermint/rpc/coretypes" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/infra" + "github.com/dashpay/tenderdash/libs/log" + rpctypes "github.com/dashpay/tenderdash/rpc/coretypes" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra" ) // Perturbs a running testnet. diff --git a/test/e2e/runner/rpc.go b/test/e2e/runner/rpc.go index f3538cc05..02875d690 100644 --- a/test/e2e/runner/rpc.go +++ b/test/e2e/runner/rpc.go @@ -6,11 +6,11 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/libs/log" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - rpctypes "github.com/tendermint/tendermint/rpc/coretypes" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/libs/log" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + rpctypes "github.com/dashpay/tenderdash/rpc/coretypes" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/test/e2e/runner/setup.go b/test/e2e/runner/setup.go index 4ba9cfb25..7e6a3ae23 100644 --- a/test/e2e/runner/setup.go +++ b/test/e2e/runner/setup.go @@ -19,15 +19,16 @@ import ( "github.com/BurntSushi/toml" "github.com/gogo/protobuf/proto" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/privval" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/infra" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/libs/log" + tmtime "github.com/dashpay/tenderdash/libs/time" + "github.com/dashpay/tenderdash/privval" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra" + "github.com/dashpay/tenderdash/types" ) const ( @@ -512,7 +513,7 @@ func shouldResetPubkeys() bool { func initGenesisForEveryNode(testnet *e2e.Testnet) (map[e2e.Mode]types.GenesisDoc, error) { genesis := make(map[e2e.Mode]types.GenesisDoc) - genesisTime := time.Now() + genesisTime := tmtime.Now() for _, tn := range testnet.Nodes { if _, ok := genesis[tn.Mode]; ok { continue diff --git a/test/e2e/runner/start.go b/test/e2e/runner/start.go index 5d5c2e7a9..3b45597fb 100644 --- a/test/e2e/runner/start.go +++ b/test/e2e/runner/start.go @@ -6,9 +6,9 @@ import ( "sort" "time" - "github.com/tendermint/tendermint/libs/log" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/infra" + "github.com/dashpay/tenderdash/libs/log" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/infra" ) func Start(ctx context.Context, logger log.Logger, testnet *e2e.Testnet, ti infra.TestnetInfra) error { diff --git a/test/e2e/runner/test.go b/test/e2e/runner/test.go index 3d680d910..c44f58acd 100644 --- a/test/e2e/runner/test.go +++ b/test/e2e/runner/test.go @@ -4,8 +4,8 @@ import ( "context" "os" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/test/e2e/pkg/exec" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/test/e2e/pkg/exec" ) // Test runs test cases under tests/ diff --git a/test/e2e/runner/wait.go b/test/e2e/runner/wait.go index b8e8d0d4d..eac337823 100644 --- a/test/e2e/runner/wait.go +++ b/test/e2e/runner/wait.go @@ -4,8 +4,8 @@ import ( "context" "fmt" - "github.com/tendermint/tendermint/libs/log" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" + "github.com/dashpay/tenderdash/libs/log" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" ) // Wait waits for a number of blocks to be produced, and for all nodes to catch diff --git a/test/e2e/tests/app_test.go b/test/e2e/tests/app_test.go index 5560fbf4b..7fe54e4f0 100644 --- a/test/e2e/tests/app_test.go +++ b/test/e2e/tests/app_test.go @@ -11,11 +11,11 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/abci/example/code" - tmrand "github.com/tendermint/tendermint/libs/rand" - "github.com/tendermint/tendermint/rpc/client/http" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/abci/example/code" + tmrand "github.com/dashpay/tenderdash/libs/rand" + "github.com/dashpay/tenderdash/rpc/client/http" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) const ( diff --git a/test/e2e/tests/block_test.go b/test/e2e/tests/block_test.go index 3ecbd8c00..d900a8b4a 100644 --- a/test/e2e/tests/block_test.go +++ b/test/e2e/tests/block_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) // Tests that block headers are identical across nodes where present. diff --git a/test/e2e/tests/e2e_test.go b/test/e2e/tests/e2e_test.go index 56db285fb..c8e72d0b6 100644 --- a/test/e2e/tests/e2e_test.go +++ b/test/e2e/tests/e2e_test.go @@ -10,10 +10,10 @@ import ( "github.com/stretchr/testify/require" - rpchttp "github.com/tendermint/tendermint/rpc/client/http" - rpctypes "github.com/tendermint/tendermint/rpc/coretypes" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + rpchttp "github.com/dashpay/tenderdash/rpc/client/http" + rpctypes "github.com/dashpay/tenderdash/rpc/coretypes" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) func init() { diff --git a/test/e2e/tests/net_test.go b/test/e2e/tests/net_test.go index 43cab77e8..194d3c68f 100644 --- a/test/e2e/tests/net_test.go +++ b/test/e2e/tests/net_test.go @@ -6,8 +6,8 @@ import ( "github.com/stretchr/testify/require" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) // Tests that all nodes have peered with each other, regardless of discovery method. diff --git a/test/e2e/tests/validator_test.go b/test/e2e/tests/validator_test.go index 6e7da9d13..23c4c2c3d 100644 --- a/test/e2e/tests/validator_test.go +++ b/test/e2e/tests/validator_test.go @@ -8,10 +8,10 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - e2e "github.com/tendermint/tendermint/test/e2e/pkg" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + e2e "github.com/dashpay/tenderdash/test/e2e/pkg" + "github.com/dashpay/tenderdash/types" ) // Tests that validator sets are available and correct according to diff --git a/test/fuzz/tests/mempool_test.go b/test/fuzz/tests/mempool_test.go index bd14d43b4..7e65a8f6f 100644 --- a/test/fuzz/tests/mempool_test.go +++ b/test/fuzz/tests/mempool_test.go @@ -8,11 +8,11 @@ import ( "github.com/stretchr/testify/require" - abciclient "github.com/tendermint/tendermint/abci/client" - "github.com/tendermint/tendermint/abci/example/kvstore" - "github.com/tendermint/tendermint/config" - "github.com/tendermint/tendermint/internal/mempool" - "github.com/tendermint/tendermint/libs/log" + abciclient "github.com/dashpay/tenderdash/abci/client" + "github.com/dashpay/tenderdash/abci/example/kvstore" + "github.com/dashpay/tenderdash/config" + "github.com/dashpay/tenderdash/internal/mempool" + "github.com/dashpay/tenderdash/libs/log" ) func FuzzMempool(f *testing.F) { diff --git a/test/fuzz/tests/p2p_secretconnection_test.go b/test/fuzz/tests/p2p_secretconnection_test.go index 65f268a7b..b3227847f 100644 --- a/test/fuzz/tests/p2p_secretconnection_test.go +++ b/test/fuzz/tests/p2p_secretconnection_test.go @@ -9,9 +9,9 @@ import ( "log" "testing" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/libs/async" - sc "github.com/tendermint/tendermint/internal/p2p/conn" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/libs/async" + sc "github.com/dashpay/tenderdash/internal/p2p/conn" ) func FuzzP2PSecretConnection(f *testing.F) { diff --git a/test/fuzz/tests/rpc_jsonrpc_server_test.go b/test/fuzz/tests/rpc_jsonrpc_server_test.go index 67dee9ef2..e62d58686 100644 --- a/test/fuzz/tests/rpc_jsonrpc_server_test.go +++ b/test/fuzz/tests/rpc_jsonrpc_server_test.go @@ -11,9 +11,9 @@ import ( "net/http/httptest" "testing" - "github.com/tendermint/tendermint/libs/log" - rpcserver "github.com/tendermint/tendermint/rpc/jsonrpc/server" - "github.com/tendermint/tendermint/rpc/jsonrpc/types" + "github.com/dashpay/tenderdash/libs/log" + rpcserver "github.com/dashpay/tenderdash/rpc/jsonrpc/server" + "github.com/dashpay/tenderdash/rpc/jsonrpc/types" ) func FuzzRPCJSONRPCServer(f *testing.F) { diff --git a/types/block.go b/types/block.go index 353f2b5d1..df65dc7be 100644 --- a/types/block.go +++ b/types/block.go @@ -18,14 +18,14 @@ import ( gogotypes "github.com/gogo/protobuf/types" "github.com/rs/zerolog" - "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmmath "github.com/tendermint/tendermint/libs/math" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + "github.com/dashpay/tenderdash/version" ) const ( @@ -398,7 +398,7 @@ func MakeBlock(height int64, txs []Tx, lastCommit *Commit, evidence []Evidence) // NOTE: changes to the Header should be duplicated in: // - header.Hash() // - abci.Header -// - https://github.com/tendermint/tendermint/blob/master/spec/core/data_structures.md +// - https://github.com/dashpay/tenderdash/blob/master/spec/core/data_structures.md type Header struct { // basic block info Version version.Consensus `json:"version"` @@ -534,17 +534,14 @@ func (h *Header) StateID() tmproto.StateID { appHash = make([]byte, crypto.DefaultAppHashSize) } - ts, err := gogotypes.TimestampProto(h.Time) - if err != nil || ts == nil { - panic("cannot convert time " + h.Time.String() + " to Timesstamp: " + err.Error()) - } + ts := uint64(h.Time.UnixMilli()) return tmproto.StateID{ AppVersion: h.Version.App, Height: uint64(h.Height), AppHash: appHash, CoreChainLockedHeight: h.CoreChainLockedHeight, - Time: *ts, + Time: ts, } } diff --git a/types/block_dash.go b/types/block_dash.go index 586473554..4af248c6b 100644 --- a/types/block_dash.go +++ b/types/block_dash.go @@ -1,6 +1,6 @@ package types -import tmbytes "github.com/tendermint/tendermint/libs/bytes" +import tmbytes "github.com/dashpay/tenderdash/libs/bytes" // SetDashParams sets dash's some parameters to a block // this method should call if we need to provide specific dash data diff --git a/types/block_meta.go b/types/block_meta.go index 2a6d95347..f91a44a17 100644 --- a/types/block_meta.go +++ b/types/block_meta.go @@ -5,7 +5,7 @@ import ( "errors" "fmt" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // BlockMeta contains meta information. diff --git a/types/block_meta_test.go b/types/block_meta_test.go index 6379177bf..600b5592c 100644 --- a/types/block_meta_test.go +++ b/types/block_meta_test.go @@ -5,8 +5,8 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/crypto" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) func TestBlockMeta_ToProto(t *testing.T) { diff --git a/types/block_test.go b/types/block_test.go index 202e32f7e..f9a4af648 100644 --- a/types/block_test.go +++ b/types/block_test.go @@ -18,14 +18,15 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/merkle" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" - tmversion "github.com/tendermint/tendermint/proto/tendermint/version" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/merkle" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" + tmversion "github.com/dashpay/tenderdash/proto/tendermint/version" + "github.com/dashpay/tenderdash/version" ) func TestMain(m *testing.M) { @@ -337,8 +338,7 @@ func TestMaxCommitBytes(t *testing.T) { } func TestHeaderHash(t *testing.T) { - ts, err := gogotypes.TimestampProto(time.Date(2022, 3, 4, 5, 6, 7, 8, time.UTC)) - require.NoError(t, err) + ts := uint64(time.Date(2022, 3, 4, 5, 6, 7, 8, time.UTC).UnixMilli()) testCases := []struct { desc string @@ -360,7 +360,7 @@ func TestHeaderHash(t *testing.T) { Height: 3, AppHash: crypto.Checksum([]byte("app_hash")), CoreChainLockedHeight: 1, - Time: *ts, + Time: ts, }.Hash(), ), LastCommitHash: crypto.Checksum([]byte("last_commit_hash")), @@ -375,7 +375,7 @@ func TestHeaderHash(t *testing.T) { ProposerProTxHash: crypto.ProTxHashFromSeedBytes([]byte("proposer_pro_tx_hash")), ProposedAppVersion: 1, }, - expectHash: hexBytesFromString(t, "5CF83D17EEC01506B3F1EA0596B49CD21B7DEBDCB18E3204A99E6BDC5C470B9B"), + expectHash: hexBytesFromString(t, "FF24DDAB9E1550BEB40AB7AD432A4D577560E9B87A80C7BB86E75263974B87E0"), }, { "nil header yields nil", @@ -1259,7 +1259,7 @@ func TestStateID_ValidateBasic(t *testing.T) { AppVersion: StateIDVersion, Height: 0, AppHash: tmrand.Bytes(crypto.DefaultAppHashSize), - Time: *gogotypes.TimestampNow(), + Time: uint64(tmtime.Now().UnixMilli()), }, wantErr: "", }, @@ -1269,7 +1269,7 @@ func TestStateID_ValidateBasic(t *testing.T) { AppVersion: StateIDVersion, Height: 12, AppHash: tmrand.Bytes(crypto.DefaultAppHashSize), - Time: *gogotypes.TimestampNow(), + Time: uint64(tmtime.Now().UnixMilli()), }, wantErr: "", }, diff --git a/types/canonical.go b/types/canonical.go index dabca9da7..e4c5d74f5 100644 --- a/types/canonical.go +++ b/types/canonical.go @@ -3,8 +3,8 @@ package types import ( "time" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // Canonical* wraps the structs in types for amino encoding them for use in SignBytes / the Signable interface. diff --git a/types/canonical_test.go b/types/canonical_test.go index 97f50638d..ab05d0b32 100644 --- a/types/canonical_test.go +++ b/types/canonical_test.go @@ -4,9 +4,9 @@ import ( "reflect" "testing" - "github.com/tendermint/tendermint/crypto" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestCanonicalizeBlockID(t *testing.T) { diff --git a/types/core_chainlock.go b/types/core_chainlock.go index 431967d22..b6c9d3b1c 100644 --- a/types/core_chainlock.go +++ b/types/core_chainlock.go @@ -6,8 +6,8 @@ import ( "errors" "fmt" - "github.com/tendermint/tendermint/crypto" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) type CoreChainLock struct { diff --git a/types/encoding_helper.go b/types/encoding_helper.go index d0a731499..28a238793 100644 --- a/types/encoding_helper.go +++ b/types/encoding_helper.go @@ -3,7 +3,7 @@ package types import ( gogotypes "github.com/gogo/protobuf/types" - "github.com/tendermint/tendermint/libs/bytes" + "github.com/dashpay/tenderdash/libs/bytes" ) // cdcEncode returns nil if the input is nil, otherwise returns diff --git a/types/events.go b/types/events.go index 29ba52b69..90568bbc9 100644 --- a/types/events.go +++ b/types/events.go @@ -4,10 +4,10 @@ import ( "fmt" "strings" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/jsontypes" - tmquery "github.com/tendermint/tendermint/internal/pubsub/query" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmquery "github.com/dashpay/tenderdash/internal/pubsub/query" ) // Reserved event types (alphabetically sorted). diff --git a/types/evidence.go b/types/evidence.go index ad782d747..86e3f0863 100644 --- a/types/evidence.go +++ b/types/evidence.go @@ -11,13 +11,13 @@ import ( "github.com/dashpay/dashd-go/btcjson" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/internal/jsontypes" - tmmath "github.com/tendermint/tendermint/libs/math" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // Evidence represents any provable malicious activity by a validator. diff --git a/types/evidence_test.go b/types/evidence_test.go index df3e345bf..edee9d724 100644 --- a/types/evidence_test.go +++ b/types/evidence_test.go @@ -8,13 +8,12 @@ import ( "time" "github.com/dashpay/dashd-go/btcjson" - "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) var defaultVoteTime = time.Date(2019, 1, 1, 0, 0, 0, 0, time.UTC) @@ -280,14 +279,13 @@ func TestEvidenceVectors(t *testing.T) { val := NewMockPVForQuorum(quorumHash) val.ProTxHash = make([]byte, crypto.ProTxHashSize) key := bls12381.GenPrivKeyFromSecret([]byte("it's a secret")) // deterministic key - ts, err := types.TimestampProto(time.Date(2022, 1, 2, 3, 4, 5, 6, time.UTC)) - require.NoError(t, err) + ts := uint64(time.Date(2022, 1, 2, 3, 4, 5, 6, time.UTC).UnixMilli()) stateID := tmproto.StateID{ AppVersion: StateIDVersion, Height: 1, AppHash: make([]byte, crypto.DefaultAppHashSize), CoreChainLockedHeight: 1, - Time: *ts, + Time: ts, }.Hash() val.UpdatePrivateKey(context.Background(), key, quorumHash, key.PubKey(), 10) blockID := makeBlockID(crypto.Checksum([]byte("blockhash")), math.MaxInt32, crypto.Checksum([]byte("partshash")), stateID) @@ -304,7 +302,7 @@ func TestEvidenceVectors(t *testing.T) { }{ {"duplicateVoteEvidence", EvidenceList{&DuplicateVoteEvidence{VoteA: v2, VoteB: v}}, - "17d639d1c1ac431802a566f190ee5fb7b478204ac8990230df5134388dea0a93", + "87904f3525bfdb8474a18bc44fcadf76f63f0e7cabc3063f5eae8dcf0eb11d79", }, } diff --git a/types/generator.go b/types/generator.go index 5ce8b00f1..75c8f034f 100644 --- a/types/generator.go +++ b/types/generator.go @@ -4,8 +4,8 @@ import ( "context" "sort" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/llmq" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/llmq" ) // RandValidatorSet returns a randomized validator set (size: +numValidators+), diff --git a/types/genesis.go b/types/genesis.go index bd6c8a820..c98872fdd 100644 --- a/types/genesis.go +++ b/types/genesis.go @@ -9,12 +9,12 @@ import ( "github.com/dashpay/dashd-go/btcjson" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/internal/jsontypes" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/types/genesis_test.go b/types/genesis_test.go index 7e29b5e8d..92a918f01 100644 --- a/types/genesis_test.go +++ b/types/genesis_test.go @@ -11,9 +11,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmtime "github.com/tendermint/tendermint/libs/time" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmtime "github.com/dashpay/tenderdash/libs/time" ) func TestGenesisBad(t *testing.T) { @@ -101,7 +101,7 @@ func TestGenesisBad(t *testing.T) { "chain_id":"mychain", "validator_quorum_threshold_public_key":{"type": "tendermint/PubKeyBLS12381","value":"F5BjXeh0DppqaxX7a3LzoWr6CXPZcZeba6VHYdbiUCxQ23b00mFD8FRZpCz9Ug1E"}, "validator_quorum_hash":"43FF39CC1F41B9FC63DFA5B1EDF3F0CA3AD5CAFAE4B12B4FE9263B08BB50C4CC", - "validator_quorum_type":100, + "validator_quorum_type":100, "validators":[{ "address": "A", "pub_key":{"type":"tendermint/PubKeyEd25519","value":"AT/+aaL1eB0477Mud9JMm8Sh8BIvOYlPGC9KkIUmFaE="}, @@ -122,7 +122,7 @@ func TestGenesisBad(t *testing.T) { "name":"", "pro_tx_hash":"51BF39CC1F41B9FC63DFA5B1EDF3F0CA3AD5CAFAE4B12B4FE9263B08BB50C45F" }], - "validator_quorum_type":100, + "validator_quorum_type":100, "validator_quorum_threshold_public_key":{ "type": "tendermint/PubKeyBLS12381", "value":"F5BjXeh0DppqaxX7a3LzoWr6CXPZcZeba6VHYdbiUCxQ23b00mFD8FRZpCz9Ug1E" diff --git a/types/light.go b/types/light.go index 0197a4129..0fdec4035 100644 --- a/types/light.go +++ b/types/light.go @@ -6,8 +6,8 @@ import ( "fmt" "time" - tbytes "github.com/tendermint/tendermint/libs/bytes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + tbytes "github.com/dashpay/tenderdash/libs/bytes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // Info about the status of the light client diff --git a/types/light_test.go b/types/light_test.go index 72a275bc4..bcb1bad17 100644 --- a/types/light_test.go +++ b/types/light_test.go @@ -9,8 +9,8 @@ import ( "github.com/stretchr/testify/assert" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/version" ) func TestLightBlockValidateBasic(t *testing.T) { diff --git a/types/mocks/block_event_publisher.go b/types/mocks/block_event_publisher.go index b77fd6752..8cd1f3d26 100644 --- a/types/mocks/block_event_publisher.go +++ b/types/mocks/block_event_publisher.go @@ -3,8 +3,8 @@ package mocks import ( + types "github.com/dashpay/tenderdash/types" mock "github.com/stretchr/testify/mock" - types "github.com/tendermint/tendermint/types" ) // BlockEventPublisher is an autogenerated mock type for the BlockEventPublisher type @@ -82,13 +82,12 @@ func (_m *BlockEventPublisher) PublishEventValidatorSetUpdates(_a0 types.EventDa return r0 } -type mockConstructorTestingTNewBlockEventPublisher interface { +// NewBlockEventPublisher creates a new instance of BlockEventPublisher. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewBlockEventPublisher(t interface { mock.TestingT Cleanup(func()) -} - -// NewBlockEventPublisher creates a new instance of BlockEventPublisher. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewBlockEventPublisher(t mockConstructorTestingTNewBlockEventPublisher) *BlockEventPublisher { +}) *BlockEventPublisher { mock := &BlockEventPublisher{} mock.Mock.Test(t) diff --git a/types/mocks/priv_validator.go b/types/mocks/priv_validator.go index 194fb36db..9f75bf377 100644 --- a/types/mocks/priv_validator.go +++ b/types/mocks/priv_validator.go @@ -4,19 +4,19 @@ package mocks import ( btcjson "github.com/dashpay/dashd-go/btcjson" - bytes "github.com/tendermint/tendermint/libs/bytes" + bytes "github.com/dashpay/tenderdash/libs/bytes" context "context" - crypto "github.com/tendermint/tendermint/crypto" + crypto "github.com/dashpay/tenderdash/crypto" - log "github.com/tendermint/tendermint/libs/log" + log "github.com/dashpay/tenderdash/libs/log" mock "github.com/stretchr/testify/mock" - tenderminttypes "github.com/tendermint/tendermint/proto/tendermint/types" + tenderminttypes "github.com/dashpay/tenderdash/proto/tendermint/types" - types "github.com/tendermint/tendermint/types" + types "github.com/dashpay/tenderdash/types" ) // PrivValidator is an autogenerated mock type for the PrivValidator type @@ -239,13 +239,12 @@ func (_m *PrivValidator) UpdatePrivateKey(ctx context.Context, privateKey crypto _m.Called(ctx, privateKey, quorumHash, thresholdPublicKey, height) } -type mockConstructorTestingTNewPrivValidator interface { +// NewPrivValidator creates a new instance of PrivValidator. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. +// The first argument is typically a *testing.T value. +func NewPrivValidator(t interface { mock.TestingT Cleanup(func()) -} - -// NewPrivValidator creates a new instance of PrivValidator. It also registers a testing interface on the mock and a cleanup function to assert the mocks expectations. -func NewPrivValidator(t mockConstructorTestingTNewPrivValidator) *PrivValidator { +}) *PrivValidator { mock := &PrivValidator{} mock.Mock.Test(t) diff --git a/types/node_id.go b/types/node_id.go index a5db40159..e355a6f97 100644 --- a/types/node_id.go +++ b/types/node_id.go @@ -7,7 +7,7 @@ import ( "regexp" "strings" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) // NodeIDByteLength is the length of a crypto.Address. Currently only 20. diff --git a/types/node_info.go b/types/node_info.go index be6e3beba..eb3720f89 100644 --- a/types/node_info.go +++ b/types/node_info.go @@ -7,11 +7,10 @@ import ( "strconv" "strings" - "github.com/tendermint/tendermint/crypto" - - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmp2p "github.com/tendermint/tendermint/proto/tendermint/p2p" + "github.com/dashpay/tenderdash/crypto" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmp2p "github.com/dashpay/tenderdash/proto/tendermint/p2p" ) const ( diff --git a/types/node_info_test.go b/types/node_info_test.go index f769d0255..b600df582 100644 --- a/types/node_info_test.go +++ b/types/node_info_test.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/ed25519" - tmnet "github.com/tendermint/tendermint/libs/net" - "github.com/tendermint/tendermint/version" + "github.com/dashpay/tenderdash/crypto/ed25519" + tmnet "github.com/dashpay/tenderdash/libs/net" + "github.com/dashpay/tenderdash/version" ) const testCh = 0x01 diff --git a/types/node_key.go b/types/node_key.go index 927e17065..91fbe09b3 100644 --- a/types/node_key.go +++ b/types/node_key.go @@ -4,10 +4,10 @@ import ( "encoding/json" "os" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/internal/jsontypes" - tmos "github.com/tendermint/tendermint/libs/os" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmos "github.com/dashpay/tenderdash/libs/os" ) //------------------------------------------------------------------------------ diff --git a/types/node_key_test.go b/types/node_key_test.go index 0dea771ea..c58d3220a 100644 --- a/types/node_key_test.go +++ b/types/node_key_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/types" + "github.com/dashpay/tenderdash/types" ) func TestLoadOrGenNodeKey(t *testing.T) { diff --git a/types/params.go b/types/params.go index 66b4b7ae3..04ceda469 100644 --- a/types/params.go +++ b/types/params.go @@ -6,12 +6,12 @@ import ( "fmt" "time" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/ed25519" - "github.com/tendermint/tendermint/crypto/secp256k1" - tmstrings "github.com/tendermint/tendermint/internal/libs/strings" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto/secp256k1" + tmstrings "github.com/dashpay/tenderdash/internal/libs/strings" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/types/params_test.go b/types/params_test.go index 37a334bbb..7e74c2131 100644 --- a/types/params_test.go +++ b/types/params_test.go @@ -7,7 +7,8 @@ import ( "time" "github.com/stretchr/testify/assert" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) var ( diff --git a/types/part_set.go b/types/part_set.go index 2f098c321..044a68358 100644 --- a/types/part_set.go +++ b/types/part_set.go @@ -7,15 +7,14 @@ import ( "fmt" "io" - sync "github.com/sasha-s/go-deadlock" - "github.com/rs/zerolog" + sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/libs/bits" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmmath "github.com/tendermint/tendermint/libs/math" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/libs/bits" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) var ( diff --git a/types/part_set_test.go b/types/part_set_test.go index 760abe922..04b342087 100644 --- a/types/part_set_test.go +++ b/types/part_set_test.go @@ -7,8 +7,8 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto/merkle" - tmrand "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/crypto/merkle" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) const ( diff --git a/types/priv_validator.go b/types/priv_validator.go index e4b5056a0..723d21af6 100644 --- a/types/priv_validator.go +++ b/types/priv_validator.go @@ -10,15 +10,14 @@ import ( "fmt" "strconv" - sync "github.com/sasha-s/go-deadlock" - "github.com/dashpay/dashd-go/btcjson" + sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // PrivValidatorType defines the implementation types. diff --git a/types/proposal.go b/types/proposal.go index 4844ccb05..9525556a0 100644 --- a/types/proposal.go +++ b/types/proposal.go @@ -11,11 +11,11 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/rs/zerolog" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) var ( @@ -107,7 +107,7 @@ func (p *Proposal) ValidateBasic() error { // localtime <= proposedBlockTime + MsgDelay + Precision // // For more information on the meaning of 'timely', see the proposer-based timestamp specification: -// https://github.com/tendermint/tendermint/tree/master/spec/consensus/proposer-based-timestamp +// https://github.com/dashpay/tenderdash/tree/master/spec/consensus/proposer-based-timestamp // // NOTE: by definition, at initial height, recvTime MUST be genesis time. func (p *Proposal) IsTimely(recvTime time.Time, sp SynchronyParams, round int32) bool { diff --git a/types/proposal_test.go b/types/proposal_test.go index b54b77728..a7f9d5ab9 100644 --- a/types/proposal_test.go +++ b/types/proposal_test.go @@ -8,15 +8,14 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/gogo/protobuf/proto" - "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmtime "github.com/tendermint/tendermint/libs/time" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func getTestProposal(t testing.TB) *Proposal { @@ -25,15 +24,14 @@ func getTestProposal(t testing.TB) *Proposal { stamp, err := time.Parse(TimeFormat, "2018-02-11T07:09:22.765Z") require.NoError(t, err) - ts, err := types.TimestampProto(stamp) - require.NoError(t, err) + ts := uint64(stamp.UnixMilli()) stateID := tmproto.StateID{ AppVersion: StateIDVersion, Height: 12345, AppHash: []byte("12345678901234567890123456789012"), CoreChainLockedHeight: math.MaxUint32, - Time: *ts, + Time: ts, } return &Proposal{ @@ -63,7 +61,7 @@ func TestProposalSignable(t *testing.T) { func TestProposalString(t *testing.T) { str := getTestProposal(t).String() - expected := `Proposal{12345/23456 (2D2D4A756E655F31355F323032305F616D696E6F5F7761735F72656D6F766564:111:2D2D4A756E65:D8A08898004B, -1) 000000000000 @ 2018-02-11T07:09:22.765Z}` + expected := `Proposal{12345/23456 (2D2D4A756E655F31355F323032305F616D696E6F5F7761735F72656D6F766564:111:2D2D4A756E65:E97D78757A53, -1) 000000000000 @ 2018-02-11T07:09:22.765Z}` assert.Equal(t, expected, str) } diff --git a/types/protobuf.go b/types/protobuf.go index 73d5d3c26..2bfa083b9 100644 --- a/types/protobuf.go +++ b/types/protobuf.go @@ -5,13 +5,13 @@ import ( "github.com/dashpay/dashd-go/btcjson" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/ed25519" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/crypto/secp256k1" - crypto2 "github.com/tendermint/tendermint/proto/tendermint/crypto" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/crypto/secp256k1" + crypto2 "github.com/dashpay/tenderdash/proto/tendermint/crypto" ) //------------------------------------------------------- diff --git a/types/protobuf_test.go b/types/protobuf_test.go index 7db7e6211..4069c59d8 100644 --- a/types/protobuf_test.go +++ b/types/protobuf_test.go @@ -7,10 +7,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/encoding" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/encoding" ) func TestABCIPubKey(t *testing.T) { diff --git a/types/quorum.go b/types/quorum.go index a8a66a86f..5e0a5c7e6 100644 --- a/types/quorum.go +++ b/types/quorum.go @@ -3,9 +3,9 @@ package types import ( "fmt" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/libs/log" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/libs/log" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // CommitSigns is used to combine threshold signatures and quorum-hash that were used diff --git a/types/quorum_sign_data.go b/types/quorum_sign_data.go index d090c0d2e..9607131d6 100644 --- a/types/quorum_sign_data.go +++ b/types/quorum_sign_data.go @@ -7,9 +7,9 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/rs/zerolog" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/proto/tendermint/types" ) var ( diff --git a/types/quorum_sign_data_test.go b/types/quorum_sign_data_test.go index e6a56ba50..54467ab89 100644 --- a/types/quorum_sign_data_test.go +++ b/types/quorum_sign_data_test.go @@ -8,10 +8,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestBlockRequestID(t *testing.T) { diff --git a/types/signable.go b/types/signable.go index b2af3b373..2b379ed74 100644 --- a/types/signable.go +++ b/types/signable.go @@ -1,7 +1,7 @@ package types import ( - "github.com/tendermint/tendermint/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/bls12381" ) const ( diff --git a/types/signed_msg_type.go b/types/signed_msg_type.go index 4ab5685a7..fb9c8ac26 100644 --- a/types/signed_msg_type.go +++ b/types/signed_msg_type.go @@ -1,6 +1,6 @@ package types -import tmproto "github.com/tendermint/tendermint/proto/tendermint/types" +import tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" // IsVoteTypeValid returns true if t is a valid vote type. func IsVoteTypeValid(t tmproto.SignedMsgType) bool { diff --git a/types/signs_recoverer.go b/types/signs_recoverer.go index 77a4088ba..d9e7afdfa 100644 --- a/types/signs_recoverer.go +++ b/types/signs_recoverer.go @@ -3,8 +3,8 @@ package types import ( "fmt" - "github.com/tendermint/tendermint/crypto/bls12381" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // SignsRecoverer is used to recover threshold block, state, and vote-extension signatures diff --git a/types/signs_recoverer_test.go b/types/signs_recoverer_test.go index 0df694e28..e805df56f 100644 --- a/types/signs_recoverer_test.go +++ b/types/signs_recoverer_test.go @@ -7,9 +7,9 @@ import ( "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestSigsRecoverer(t *testing.T) { diff --git a/types/test_util.go b/types/test_util.go index bf045e202..1f0ca2b7f 100644 --- a/types/test_util.go +++ b/types/test_util.go @@ -5,11 +5,10 @@ import ( "fmt" "math/rand" - gogotypes "github.com/gogo/protobuf/types" - - "github.com/tendermint/tendermint/crypto" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmtime "github.com/dashpay/tenderdash/libs/time" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const StateIDVersion = 1 @@ -20,7 +19,7 @@ func RandStateID() tmproto.StateID { AppHash: tmrand.Bytes(crypto.DefaultAppHashSize), AppVersion: StateIDVersion, CoreChainLockedHeight: rand.Uint32(), //nolint:gosec - Time: *gogotypes.TimestampNow(), + Time: uint64(tmtime.Now().UnixMilli()), } } diff --git a/types/tx.go b/types/tx.go index f815af80c..6c5abb898 100644 --- a/types/tx.go +++ b/types/tx.go @@ -7,11 +7,11 @@ import ( "fmt" "sort" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/merkle" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/merkle" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // Tx is an arbitrary byte array. diff --git a/types/tx_test.go b/types/tx_test.go index 77afa1b23..19bcdf18a 100644 --- a/types/tx_test.go +++ b/types/tx_test.go @@ -8,10 +8,10 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - abci "github.com/tendermint/tendermint/abci/types" - ctest "github.com/tendermint/tendermint/internal/libs/test" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + ctest "github.com/dashpay/tenderdash/internal/libs/test" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func makeTxs(cnt, size int) Txs { diff --git a/types/validation.go b/types/validation.go index 7a1fd885d..0dfd8aceb 100644 --- a/types/validation.go +++ b/types/validation.go @@ -5,9 +5,9 @@ import ( "math/bits" "time" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/crypto/ed25519" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/crypto/ed25519" ) // ValidateHash returns an error if the hash is not empty, but its diff --git a/types/validation_test.go b/types/validation_test.go index 295e8d00c..8f5809cd4 100644 --- a/types/validation_test.go +++ b/types/validation_test.go @@ -8,9 +8,9 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // Check VerifyCommit diff --git a/types/validator.go b/types/validator.go index 426d0e0ca..9316f96b5 100644 --- a/types/validator.go +++ b/types/validator.go @@ -9,11 +9,11 @@ import ( "github.com/rs/zerolog" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - ce "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/internal/jsontypes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + ce "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/internal/jsontypes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) // Validator Volatile state for each Validator diff --git a/types/validator_address.go b/types/validator_address.go index 3fb3b6fae..caa74ecd1 100644 --- a/types/validator_address.go +++ b/types/validator_address.go @@ -11,7 +11,7 @@ import ( "strconv" "strings" - tmrand "github.com/tendermint/tendermint/libs/rand" + tmrand "github.com/dashpay/tenderdash/libs/rand" ) var ( diff --git a/types/validator_address_test.go b/types/validator_address_test.go index ea794715d..792900058 100644 --- a/types/validator_address_test.go +++ b/types/validator_address_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/libs/rand" + "github.com/dashpay/tenderdash/libs/rand" ) func TestValidatorAddress_String(t *testing.T) { diff --git a/types/validator_set.go b/types/validator_set.go index 4ffb46984..01e0cf292 100644 --- a/types/validator_set.go +++ b/types/validator_set.go @@ -12,14 +12,14 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/rs/zerolog" - abci "github.com/tendermint/tendermint/abci/types" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - cryptoenc "github.com/tendermint/tendermint/crypto/encoding" - "github.com/tendermint/tendermint/crypto/merkle" - "github.com/tendermint/tendermint/dash/llmq" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + cryptoenc "github.com/dashpay/tenderdash/crypto/encoding" + "github.com/dashpay/tenderdash/crypto/merkle" + "github.com/dashpay/tenderdash/dash/llmq" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/types/validator_set_test.go b/types/validator_set_test.go index e9578e666..bc31df9dd 100644 --- a/types/validator_set_test.go +++ b/types/validator_set_test.go @@ -15,12 +15,12 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmmath "github.com/tendermint/tendermint/libs/math" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmmath "github.com/dashpay/tenderdash/libs/math" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestValidatorSetBasic(t *testing.T) { diff --git a/types/validator_test.go b/types/validator_test.go index fcb377b71..72d905110 100644 --- a/types/validator_test.go +++ b/types/validator_test.go @@ -7,7 +7,7 @@ import ( "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" + "github.com/dashpay/tenderdash/crypto" ) func TestValidatorProtoBuf(t *testing.T) { diff --git a/types/vote.go b/types/vote.go index a5901b3d3..bf6b19c20 100644 --- a/types/vote.go +++ b/types/vote.go @@ -9,12 +9,12 @@ import ( "github.com/dashpay/dashd-go/btcjson" "github.com/rs/zerolog" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/internal/libs/protoio" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmcons "github.com/tendermint/tendermint/proto/tendermint/consensus" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/internal/libs/protoio" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmcons "github.com/dashpay/tenderdash/proto/tendermint/consensus" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/types/vote_dash.go b/types/vote_dash.go index b8fc4363d..aae8f430b 100644 --- a/types/vote_dash.go +++ b/types/vote_dash.go @@ -1,6 +1,6 @@ package types -import tmproto "github.com/tendermint/tendermint/proto/tendermint/types" +import tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" // PopulateSignsFromProto updates the signatures of the current Vote with values are taken from the Vote's protobuf func (vote *Vote) PopulateSignsFromProto(pv *tmproto.Vote) error { diff --git a/types/vote_extension.go b/types/vote_extension.go index 4ddcbb3fc..dcce659a3 100644 --- a/types/vote_extension.go +++ b/types/vote_extension.go @@ -5,9 +5,9 @@ import ( "errors" "fmt" - abci "github.com/tendermint/tendermint/abci/types" - tmbytes "github.com/tendermint/tendermint/libs/bytes" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + abci "github.com/dashpay/tenderdash/abci/types" + tmbytes "github.com/dashpay/tenderdash/libs/bytes" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) var ( diff --git a/types/vote_set.go b/types/vote_set.go index 4f4782429..103e86dca 100644 --- a/types/vote_set.go +++ b/types/vote_set.go @@ -9,8 +9,8 @@ import ( "github.com/rs/zerolog" sync "github.com/sasha-s/go-deadlock" - "github.com/tendermint/tendermint/libs/bits" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/libs/bits" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( diff --git a/types/vote_set_test.go b/types/vote_set_test.go index fbbd109a9..6be1275fd 100644 --- a/types/vote_set_test.go +++ b/types/vote_set_test.go @@ -11,14 +11,13 @@ import ( "time" "github.com/dashpay/dashd-go/btcjson" - "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/dash/llmq" - tmrand "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/dash/llmq" + tmrand "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) func TestVoteSet_AddVote_Good(t *testing.T) { @@ -681,13 +680,13 @@ func withBlockHash(vote *Vote, blockHash []byte) *Vote { vote = vote.Copy() vote.BlockID.Hash = blockHash - ts, _ := types.TimestampProto(time.Date(2022, 1, 2, 3, 4, 5, 6, time.UTC)) + ts := uint64(time.Date(2022, 1, 2, 3, 4, 5, 6, time.UTC).UnixMilli()) vote.BlockID.StateID = tmproto.StateID{ AppVersion: StateIDVersion, Height: uint64(vote.Height), AppHash: blockHash, CoreChainLockedHeight: 1, - Time: *ts, + Time: ts, }.Hash() return vote } diff --git a/types/vote_test.go b/types/vote_test.go index e8bcb0534..0c05e9d50 100644 --- a/types/vote_test.go +++ b/types/vote_test.go @@ -9,15 +9,14 @@ import ( bls "github.com/dashpay/bls-signatures/go-bindings" "github.com/dashpay/dashd-go/btcjson" "github.com/gogo/protobuf/proto" - gogotypes "github.com/gogo/protobuf/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "github.com/tendermint/tendermint/crypto" - "github.com/tendermint/tendermint/crypto/bls12381" - "github.com/tendermint/tendermint/libs/log" - "github.com/tendermint/tendermint/libs/rand" - tmproto "github.com/tendermint/tendermint/proto/tendermint/types" + "github.com/dashpay/tenderdash/crypto" + "github.com/dashpay/tenderdash/crypto/bls12381" + "github.com/dashpay/tenderdash/libs/log" + "github.com/dashpay/tenderdash/libs/rand" + tmproto "github.com/dashpay/tenderdash/proto/tendermint/types" ) const ( @@ -59,7 +58,7 @@ func exampleVote(tb testing.TB, t byte) *Vote { AppHash: appHash, AppVersion: StateIDVersion, CoreChainLockedHeight: 3, - Time: gogotypes.Timestamp{}, + Time: 0, } return &Vote{ Type: tmproto.SignedMsgType(t), diff --git a/version/version.go b/version/version.go index 9482faa93..1cc234dd3 100644 --- a/version/version.go +++ b/version/version.go @@ -1,6 +1,6 @@ package version -import tmversion "github.com/tendermint/tendermint/proto/tendermint/version" +import tmversion "github.com/dashpay/tenderdash/proto/tendermint/version" var ( TMCoreSemVer = TMVersionDefault @@ -9,9 +9,9 @@ var ( const ( // TMVersionDefault is the used as the fallback version for Tenderdash // when not using git describe. It is formatted with semantic versioning. - TMVersionDefault = "0.12.0" + TMVersionDefault = "0.13.0" // ABCISemVer is the semantic version of the ABCI library - ABCISemVer = "0.20.0" + ABCISemVer = "0.23.0" ABCIVersion = ABCISemVer ) @@ -23,7 +23,7 @@ var ( // BlockProtocol versions all block data structures and processing. // This includes validity of blocks and state updates. - BlockProtocol uint64 = 12 + BlockProtocol uint64 = 13 ) type Consensus struct {