diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9bc0ec948b..4b41672941 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 f0bfd723d6..d5523b6f9d 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 e6c15eebe6..aff9dc0f66 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 082484dd58..64dba8c761 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 aa4670f503..15afabe990 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 04e599564a..5a947f928c 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 0affc7a510..846eef16b3 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 82a8b11c12..d8e6ac6e75 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 37324acadd..6f28587aeb 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 271decc37e..65b894272e 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 b90ab8ba2b..0992fad38d 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 aa7578b6f5..5d98b88e38 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 c1232d7778..596afdac06 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 329b00aa52..c5afa771e2 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 459dfaf9a7..91e848f7bb 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 1002c64e81..ecaa2e8300 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 8d77c50c42..984e97ef7e 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 3867845e85..26adc2318f 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 f5c0f62e96..6680a8aefe 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 a2b56bb407..293e828f64 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 54b6506528..d1f38df68d 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 abd56d751e..4edebf81a1 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 fe3ec1c825..6fe1208a7c 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 e9b6fbe482..41e9c2e52d 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 14a36d4a3c..0041c0e4ff 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 919f640d1d..13eb2ebb2f 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 0000000000..2b75b9b391 --- /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 0c32913c5a..fc4b2321c8 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 452db37171..e2ba12102d 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 12743afbb2..53a4b1987f 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 6ddad0002e..5e81aa18a1 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 88b37268d0..cb381a9fc9 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 9aab08fd49..00821a843c 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 0e731d404d..738c2c25c7 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 4bd6aa7994..ac40a604bb 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 fe213313d4..9fd6ca813f 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 b18eaa580b..c7edf1231a 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 15c1db2ecb..f95c124e5b 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 f3a40c242a..162f1a0007 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 f42f185eb1..19b52612f3 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 bfcd392b38..4a749fc83a 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 404d552225..7e79f1d353 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 be32ed8e17..e7767821d9 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 f3e26886b8..3d82902597 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 e1f6c277ce..5b4fd87a45 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 bd8695d4f0..b55ffe8bec 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 dfb56fc878..dbdcc9c3cf 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 c1ab558d3f..f05d359efe 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 3200c50e9b..1e9f2fad86 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 2505ef61cd..7739a7967a 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 aaf25ca43c..9e5ee5e839 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 90ea6f0ab2..872400a0cd 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 2347e7ba76..2e60a40b25 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 3de891a2c5..e29e8b15ed 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 36f29eee74..871a63ecb7 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 6d84aa65c0..15fb4447ff 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 9014221450..0866830269 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 56f4998470..93903f3dad 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 7fd5b030f7..284dc7776e 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 d84f6e10aa..4797b33b49 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 7755817a63..c137475a98 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 24626207f5..4bc169b4fa 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 dbd22d19cd..3141662058 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 7ad8e99983..196b280a76 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 bbe09e9127..23214e38b7 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 ce94f7b950..9cd4b28640 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 9c12ef5cf6..84bbb1e18f 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 88b9dfe715..cf20d76a02 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 9ebff8e275..acbe7ac21b 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 797819449f..961a60e635 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 e88d4fb009..37f58d9529 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 fb6f19e55d..57059ae975 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 38beffb629..a8c491dcfe 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 fd3963e885..673afd772c 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 a604341783..1dd88ccb6e 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 55817cc9c4..00294a403a 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 fdee638bcb..2c2b2bff84 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 a4f4fb08d5..f3719220cd 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 d5a47e84af..8abe55755c 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 ffc6c4d5e0..d9e381d1b0 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 548b2a3c51..67a2be4cb6 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 8b1dbaebab..3906f740dc 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 4927ea1348..71c504b00d 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 fb879c3446..6ab26dc628 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 103f50bfcc..985236acef 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 bbc2869446..19874b1dab 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 954ec3752b..d3e7aa2eca 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 465aeffef4..cdbf535bbf 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 4544aa5373..46fbf08093 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 b09cd837c5..f9bb042dd9 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 14d9eae588..8a05069ba0 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 c7631cd937..48a51193b7 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 49fcd15041..ece3518759 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 d865a38503..9e45e98972 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 4aa107dcb0..a854059cc8 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 8ca540ecd2..9d6cabd861 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 aae0720f50..37e6f23389 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 0bb5448d71..42deb46b70 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 226e24b9d5..8dce4774b3 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 038037cf53..bbdfe756bc 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 02866de931..5c6cddccf9 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 2379b8858a..1d1aca2b8a 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 443656c175..4e9dbaf4e3 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 72b260178f..384749c6a5 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 34f7372fe2..67b6af3f3b 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 1655472028..1827a126f8 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 6cd53704c5..0ee45013f9 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 7547a29ba2..370a65136b 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 b3cd0f051a..9752be7174 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 0000000000..9768a9b41e --- /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 0adb1c8094..e396f646a7 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 0000000000..8f5b8e7ba6 --- /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 0423879758..e94d5d23a7 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 13fb0813ad..19ee0ec23d 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 c84c7f5e84..25827eea10 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 4c8ca2d49a..9a94ea73bd 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 ee9e2aab08..0710d32ab3 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 e9ad714451..a86954e90f 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 49d1d9a64a..287d93f078 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 2999bc7328..01a0b8ff1b 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 791ae26059..2491eb3e0d 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 35ff19f8f8..602a918308 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 943154b507..108d6134c0 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 5bdfb6a8b8..09455d3f17 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 36e90d6e52..972efc5577 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 a0887d039a..f83f19eab1 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 35cee87d84..21f7a46ee8 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 4c54a43931..ffad0b475b 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 2966466544..e5fb35705c 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 ca9d1da40a..5ca6829807 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 76c196b8d2..38a3debc47 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 f4ee50c045..7627519eb7 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 0fcaebb7f4..e74beaf565 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 a8a10a935f..535782197a 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 528efd8d51..1fe63d0de3 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 382a76f4d2..a7f57b832d 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 7c9a455597..9701f151d9 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 123293ebd6..16af32b27e 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 9f4ef98e5f..bdf95bee04 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 9613dd2bad..d54174cc9e 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 eac2a603e2..babb5966de 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 993a1ab5c8..2e85d1c1e0 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 750352ffcc..2ec26cbb1b 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 d662ce9a0b..a954b604ca 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 afb51c3fba..822550f165 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 6054fecbbc..a882b2e2a4 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 442bcbb279..f035fd56b4 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 b4fb653511..8c9c544c10 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 762586afad..c2beffcb46 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 2e89c565e6..842d0495cf 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 62e211d6c3..79ec408e07 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 15ed677fa7..807dbea5d0 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 80d485e2f5..227d40bf56 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 6356185eee..01984346c7 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 49c7db2054..d9bddb8c8c 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 5983e2895f..efacd73674 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 3e6ee648f9..21a544a92a 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 9e7d6f0e39..15684d9520 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 524b16dd14..ca9e8c79cd 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 95b744c4f9..23edd6b80c 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 8e14bb3022..4a3dc5991c 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 00bcb0fe42..09d0cd9347 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 135e4a037d..7864364a45 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 5ec265c654..679bbedde9 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 e3af7caf49..a3f75e729e 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 bdf0eb412c..2ffe67920b 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 a5dd87f9d2..3857e95063 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 06886de27b..ea4907e268 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 f9c69f9752..b2f91225a9 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 b4473bfc72..8477e812b1 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 dfc9a3fc4c..7fe524e789 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 d0bafa575f..0507e10c39 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 b69af6d4c8..bde6a81353 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 e68b15e3c4..73b5a1dede 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 1618593582..203fc32f46 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 1847c57f36..607fc3be86 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 97be569ff0..9c4b6fdcbc 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 3950fbbf02..d2c376453c 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 b99a2281c7..bd789bfeec 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 3f10ad6025..fde234c87a 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 4f45b8cbe7..d0b769b428 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 eacf22081c..0c13b4dd27 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 d2188a4388..e02fc9e728 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 ceb4480f6f..a82fe66731 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 5e796a2b21..6cb6e3c646 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 0606c3b0ef..06605849aa 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 984c245304..a6df0c9369 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 0fa433b01d..91af6fac30 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 fb5180009c..17981f909f 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 945282ec03..bf2b5d4376 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 c7e55ab0ac..0644beb518 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 1c1b14a1ed..c1caff2734 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 68c104cf23..4fa2d9ad61 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 62b717f312..b0f4240ebe 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 e4591b70de..519d60175a 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 55678f4d35..09824c9bfa 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 fc8daa194b..723f3ba710 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 f0049b6884..d38bed9e90 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 75c306e811..41e53b1075 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 cc1a0dd1ac..7e32071b93 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 5c5e15df17..e9ae2075c8 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 95951d47be..875d0bb928 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 b68f1c2e05..fdc7913603 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 57e8620f53..efd8f7ee07 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 8c8b40cbfb..48848927b7 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 e9c4e58cde..9d98ddf956 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 efa79daeac..2c3587b114 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 4fb7474677..4537d37a2d 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 bdd1097cf8..dacdd443f6 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 2594f96aaa..a768854c6f 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 34112ac847..2730f41c42 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 4e43a9599e..19223279b3 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 1de9c8d7b2..e5e2e3e6fb 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 6d76750a76..cbd59d6d45 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 1eef19644e..8c9181b9a0 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 b2bd40fc8e..55dbb373db 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 727dd405ac..62ef6cee30 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 43ca8582cd..c9b2369691 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 94f9483c74..b615058bb1 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 8d73ba4652..15a1a9d9c6 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 bbe45aa769..5e52b11e87 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 d6550c26ba..74e7d05fa5 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 77fb3f7a3f..cdc703da21 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 0743b04b09..05dbdcbc82 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 d1899d4019..c0d5b3bb79 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 31701ddf79..fc3947d7a1 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 eb8f08b7ff..a778186e77 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 c90fce7ed0..8344b1ebaf 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 f1f43b46d0..8d834b289e 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 e61c4e0aeb..344c2f7992 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 117c002819..bf8f607ffc 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 378be22e67..1669a47146 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 e59b951aeb..79478761f8 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 5c39ff0adf..5fb858511c 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 473999b217..c71783a273 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 58c4c4a2d3..8e4d7998dc 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 43c093b05d..39e678f51c 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 573b63f406..4db926bdb3 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 8159285d24..f5e7fcdb1b 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 d706168346..16a9dc53c5 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 223e25c343..8e666cebbf 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 c51480f4d7..7f2dcc0ee8 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 c3c4665038..d1bacbbb71 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 34097c1953..fbc77fde01 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 4f5e346c2a..337e36f729 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 cdc173ee53..b33ab21aa3 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 a9449fa228..872964fcc8 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 dc0042fe59..4ef1574d3e 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 4420ad7863..4c57005e47 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 520bac1f6b..d1a3a8cee0 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 067f31ffc3..fb5b1c7856 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 b63dc5eb1f..ed99d96e77 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 aee540c591..7e984b85a5 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 140ea9791b..7dfbff2b47 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 28867023ae..74ca28001b 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 6601706bcd..42fb4412ab 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 c885351076..e75707e306 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 e4d84a700a..bf79d32598 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 50b6f73c84..61796affa6 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 e244c765de..890e3d7b41 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 de44b8782b..c93fc6177d 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 02b2d8ea0f..b9d39793bf 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 91ad7aad6c..6794e8a62a 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 df34c33293..6ebbdae2ca 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 eef2d283c3..e27b19905e 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 d4e552c96f..28b3dc7f34 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 0f4066fafd..45224f506f 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 bd1dda75cb..f8c0572d73 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 3a416001f9..9e8cb3283d 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 c7e685cb44..8a0aa8418b 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 59e8657b08..e49c3994f4 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 0f32bd9d7d..fffc4a36df 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 c401ebaabb..5a02123db0 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 3308c4e158..6038737d7b 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 328db810b5..cfacda0267 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 cd428e08b6..b094d38ccb 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 0000000000..e2eb8d643d --- /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 824788efd0..1ecdd1a4dc 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 578bc3ef2d..55c2460c65 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 fe213959c4..08d426e9bd 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 54a1903bbf..caf3150528 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 a29d9aaf84..1c544354da 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 e787626a24..64d70ecff3 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 d4df287926..9e1ad2d05c 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 98523fe822..e9404dd722 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 9890baac6c..ebee0c7670 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 520c7e6894..447bb925ab 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 7135a7ce4f..0901d27c84 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 f2fde10e34..97a008d025 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 b8ea7bcd2a..5c0163ab0f 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 50358e2c0b..af49bc18eb 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 43fc16d286..2483dee0bb 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 a0f7de5a92..e38b7751b1 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 717123b173..0ca50775cc 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 a2f8d5452c..7440c4a929 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 758f5ef520..79bfada9bc 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 005587ef90..cd66af1421 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 4ebbe1e102..350c38ce0b 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 d1057ac7e2..3e1594d79c 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 1649f80601..7adc3d0dfa 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 217be8d322..e0aea8cfa7 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 20c3cb6dc9..f316c23bde 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 8a16c9750b..37aa4e2c76 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 da67cacaf7..1caaecbdb1 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 07a9f6adcb..7d4b3d046f 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 6fafd01aeb..3cbcac3dc3 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 6bdc9506be..c4c5873a99 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 33d96cdb84..2d5a759ab5 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 d58c23955b..d22dbb9e28 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 bee99a4fe6..882ea9e02a 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 60af994933..4ed8395759 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 9fb321ae73..700ee47a65 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 fd5acef7d8..67a1f7e382 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 e515cb784e..996bc2eef2 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 0b3f06ad70..4b438e16a5 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 1107570285..b3ab1898b1 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 c4b5dc5c94..17fa950294 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 f2317e00e5..063aba5681 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 e366977b54..ca4a8432b8 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 0916e9c8af..008898f34b 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 cba494729a..db954fa82e 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 f6affb2d92..d6ec236d92 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 ac0473beb1..03b80becde 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 eadb193af2..b22072cde6 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 fd1a239296..fd8c7cee58 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 fa45c6b456..5de75ea5ee 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 3eabb3636d..85e6f79903 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 3cb810e72d..3138210e28 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 8de2612f7d..ecacb6f1c0 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 702413ab89..8d6b099ec7 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 ab46003a04..fd16d667d4 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 3f289bfa70..023d45a2d7 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 5de93d2c2b..f87e5ec162 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 c55aa58dca..438f994859 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 a5c22195f5..adfd86176f 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 b18f1e2fc5..3914ecb85e 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 107b0e226d..49c493e1fa 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 85a788094d..c83cb30f86 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 cd643b8441..1258ae41ee 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 046680a383..b88ed95a59 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 d20c689dc6..50c55e1ee6 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 77078a1c21..14e9486b95 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 fbc1aaaa13..359d9aedc6 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 7f3f2c34c1..cdcdbf2bb4 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 5f41108653..d99b509777 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 51d0e7ba63..699f855b56 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 1b9a3120b9..ccba695093 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 0bca43848b..20cda5a82c 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 fd68462739..57b841d370 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 7d5453848e..e864490aa4 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 9b4d6f5614..1aa1882c84 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 7ff6733db3..6a366833b0 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 d6db82806a..8a857aba2c 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 6dc1bdf504..b3a3843a75 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 c62ad7ee7d..45d3f22c8a 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 ff54cd32b8..e160b9f8e3 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 10282fd340..688841097a 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 d4b110f4ae..690e9d5be0 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 c436bdf0f1..6632eeb8f5 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 9af66027f6..c6cdc6c6e0 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 57f5e5c3d6..9d8c68761f 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 0ef9218d28..17c457530e 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 cae861416c..1bc6d4cc92 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 ef362425bd..d9e93f2c8a 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 7007d5bb5b..c0e4d89ae7 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 8004c0f27e..79f8b32173 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 dea5d570f8..d6a1be056f 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 e4e2bb4aed..f4a0636d78 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 9f2d2daf3c..6d2d679432 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 4d90d986a5..162d1035d3 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 0539d96753..daa92ee0dc 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 086b3f06bf..8f8fc65857 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 9818b8da22..5f077c70b1 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 02c939f56d..4ca126c110 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 c8f4ffe5ee..ad104641dc 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 8a9fd03c7b..0b7b994d5b 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 128994c877..5c2e05056d 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 56549e10b2..0c97f9af30 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 6d38a9131d..153fa4bd7b 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 d17330a79d..d6ff4f237a 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 f0ba76a1ad..4b1afd8d87 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 7df56d2f01..bec5162434 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 76d236533d..ceb0884f6b 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 950c7ff18b..281ac4eb7e 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 123ff89c91..04ff84f6fd 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 64c1216804..5b3d0bc05b 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 0b6753118e..bd9d23e880 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 85cc23a806..0ecb01946e 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 3a7fef5dd1..5ded294ca1 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 88add1e06b..b80884e7ab 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 b4d5caa12c..91c83fb657 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 a8a3af9152..b1aea963c3 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 108ae499bc..b4301dffcb 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 0000000000..bc53201de1 --- /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 0000000000..23d6d0d7f8 --- /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 0943586ec2..d1b64b329a 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 1bd5487d9d..17a6895c1a 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 0000000000..fa5fb4084d --- /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 0000000000..9376e449ff --- /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 05f70ef57b..e7fad3c3a2 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 08cb08269d..fd2d37da81 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 85cf42e814..2d98e82c51 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 03bedb75e4..24ce2eb0a6 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 94ae2d74fb..e5934608a1 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 f023a7ab4c..04d3d8ccdc 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 58101f06b7..1b03e7ef25 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 f483df7457..13a1f8e8f1 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 720b8e8245..80c52ea7e8 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 6cdc2aed96..aa21964188 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 d57522ce93..899c654162 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 e2edcba6a4..ed5afba6bf 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 1dda2b4092..dcbe137a2e 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 a252222f41..c544312440 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 710723a0a8..45ccddcd63 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 b4f69fe84a..40c0a33c40 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 442aae7501..5083a36d59 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 e4bf45c387..fb7af5dd16 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 0000000000..99e471c066 --- /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 0000000000..15a96f0252 --- /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 263bb72349..3cd1476229 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 6ea723c519..5d828a5444 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 ca7050156d..28bf73ce90 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 907e8d2929..2062c06c0d 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 431cafe06a..43d2fa3133 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 9c8c18c7f8..548b8861b3 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 0000000000..aa0d3779b8 --- /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 0000000000..d57d7d2361 --- /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 0000000000..47db3cbf67 --- /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 786f9bbb42..7a90b7a0c1 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 f304cc4ded..c706deaa1c 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 bbe3b1ea9a..97312ab776 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 ee3b9e3374..62dbe1664c 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 e37da257f6..d31157f51e 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 e05f943e37..d4fbf86fc5 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 852c9cbbbe..34daf19e03 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 78d148b749..e5464be9d6 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 8ceed4b76d..a1465e6471 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 ae452f1c77..55e9a33164 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 2d703c2135..4b68cfc953 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 a906a9582d..e54a220a1f 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 f65262b420..546d2334d4 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 fc69274900..a62c52444e 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 dd6a7487a7..93042ab3dc 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 d1b3304daa..31204f6a45 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 6e7a5ff2a6..bea109e490 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 df8b5f9dba..e00091dc70 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 9c6df91bf2..af282d6fa6 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 117df9f2bf..deb22f7d2a 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 a6c3e6703b..9733802e0b 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 c72898f140..30b3a50026 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 e1d8c8be28..a0742c5af6 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 a4991f0cc6..019e255ff3 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 2257781765..b46ec76b08 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 9c6930b2d8..4376202e41 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 66b7492700..db1b80530a 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 e0023c9c5f..9142fedee2 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 aba51f7a8b..f78d8f4f47 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 96a1a5ba20..5eb6a909d3 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 4ba7c51d0f..a096320dff 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 8a5627f434..56185952b4 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 9842328ace..3f6492841f 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 257be0af0f..2a89fa1925 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 851b6840ac..7a031f3680 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 31f9cf6a3b..9b3fca568d 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 9e911a27dc..928f031691 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 fcfe78f3cd..219134e15c 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 a3ea6c532d..46b0ba12de 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 1480ce7c87..b0056ad4ba 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 36e23a6c23..bbb4d5f339 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 20128d259c..c3590f85fd 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 ba651d7553..2c69517a39 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 ab6baeaf97..8b5a74c80f 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 994b5fc0f5..73496b82fd 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 b291a7ef5e..e68c45e37a 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 8795268c42..96ae1f5564 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 bb6104dfc5..fd1b40dd62 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 6049c62450..42a818528d 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 636f946731..5431e17c7c 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 2de8b68274..20554332f3 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 9be84e02d7..befb0ab45e 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 7ec8fe30f6..4e7100f7c4 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 1ae95634a4..3e5ab7c56c 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 e91d111d00..02a959bca7 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 a2cbbf5014..5b51da4f19 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 604fdf2b74..e5d66e39f6 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 acb1317365..b969b4abd4 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 457b52284f..3b229350d0 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 21c3c4faa0..8c1a2c9a97 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 859ddabc70..076ffe4a37 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 034cf503dd..1ade2d0a27 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 fd80819cd0..c4722100f2 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 44afa2c0c3..e2adeb0b27 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 35b568c62a..f1b862ea75 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 e9228e38dc..9b4b64df3c 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 82fb943fcd..5ece1e5579 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 975df76853..36a5acf084 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 c0ebcb9760..29bb8e901d 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 3111d113a5..48ab07aa9f 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 c3a80bcde6..ab074c9c35 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 fff3e93e56..0bddaea436 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 16ee463a6a..3a2727cd08 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 b12de6c827..82cd0161ac 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 11a8b9a076..de9d60414f 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 4f7bf0a2df..750596fa0a 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 04e17256c8..dcc8367d1c 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 937d2b1427..14aeefe3cb 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 5c8d2fa7ce..9baa663eca 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 59ace7536a..7b0d696549 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 4ceac5695a..07f2fc55e1 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 540d82d094..7074783799 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 205899ae41..11ec14b39f 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 c4b931f04b..69ed892f8c 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 f104881401..5445ac9922 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 6f52e1dbb1..bac29edb94 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 8b8bf1ccbf..fa18b6e350 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 4018535261..915151f4da 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 bcd9e8a93c..bcb111dbbd 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 281abb8089..57042ce27f 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 97615fd677..62114e67d9 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 a8724a17a0..c88923b7a5 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 b75988719e..661526d33a 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 ad9f558ce5..237c3ed768 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 a9aa26a799..0dc9c69941 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 a1e5cc498d..f823b7f958 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 d791c7b967..741a8bd40d 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 b09ae65715..00fcf75929 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 0eb30849b9..1d48708289 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 b8139b20be..302ca71971 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 3073c7a99f..c32a9a1406 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 8cd8fb82cf..07ec7decc8 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 b63e830009..ea64fa29dc 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 56308a0f0b..117a4c0fe8 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 08df629cd7..a37aacd837 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 914278046a..9c0fe6ab17 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 76a94fd3c0..2d0162356b 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 37124dd4e7..5bcc0a4000 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 e59fcc83b1..e5f285253f 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 59cfc8b5f0..807f3e8e59 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 8cd9df30f8..84813ea108 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 0a1e9ae6a7..5789e6a648 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 7cb2f795af..d2deedd5fe 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 05694afff0..7c1b158f91 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 eb13e8d77e..29891762c9 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 c8d7b0bdba..7708e96196 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 a0128e845c..088beb2aae 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 169671fd61..7f011a828a 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 6ed7cff684..bfcb39d590 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 4749efee20..a8d4777949 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 c692fe0da4..1bdbfe2d8c 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 a10575abf9..deed35017e 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 bca155f744..4c368ace44 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 22548e8911..1a446896e8 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 fb70ca9d93..7eb2b9ae14 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 504c4efd87..fc06ed551d 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 daf2207c8b..22533b3666 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 0e158f9cd2..092e7b15e6 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 9c95244d2d..1b7817a0f1 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 3e7d6f0541..280e1738a1 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 3ac15fc2eb..66c296e1fd 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 d09b3c8dcf..f365a8a4c3 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 ddb932981c..a09c863c8f 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 aa192a75c3..9d312d993d 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 801bd3112c..7094efff07 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 580809a8e1..512da36df5 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 e35da5e889..7544c9f846 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 ed90a11655..18870f50f3 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 565394362d..329e1dc397 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 e1049cfa65..1ae6456207 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 2babcf70c3..2b7da2d942 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 0fd81aaba7..d5d6ae8e3e 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 5df137f4aa..ed91fdec15 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 ff8196d47c..663973cc9f 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 0586e3019f..b171de3cc3 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 4f9e28faa8..9ff030e5ec 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 dd4a9d8e23..033b39d9ff 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 fffc002f39..6d82f99980 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 ac8f2886ec..646f120adc 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 c755bbaf13..469c041009 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 4a0e92ad13..c95cacf79f 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 818ebb42e1..677106414f 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 3a259757b9..bb897680e4 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 ce1bcd9737..55ac0704eb 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 2ed013c177..d1b5928981 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 ded68bea2a..8e922b8f6d 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 c988cadb08..e2e64deabc 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 29c5bb7531..5f284ea2a4 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 c37bc5ba75..0e05ccf623 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 e8d3fcf932..28d0591a51 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 ec27ef1e9b..56e1add7f1 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 f3c97854de..423417f3e4 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 2d6f40e638..3c7e8d3e46 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 c8e1d94900..643dce671f 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 900a15f857..3527e5d7af 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 7ee7561068..22da871e16 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 d128257557..eebd8feef0 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 33ec7085d9..b3c1f9d2f5 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 bb6251b349..aa250c4dd9 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 ff7f1e639b..a238be37b3 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 ce2f86c312..66143562cd 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 1edfa5fba3..55771c27d5 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 a74fb0637e..d1349aa9bc 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 b2e1b24ffe..8eb9ee74a7 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 3cd3576963..caf90c2ac4 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 8291d73961..a9453d8609 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 de0033e325..361c46308d 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 382576c91d..f0b0902c8c 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 2fa7c5ad97..2cefa337e6 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 cc768f8784..9bd98e0a64 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 ef26284e87..9a3880f837 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 edcfb3ca41..2d75db66e3 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 7e8cada563..6ec8295ea4 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 9082dda487..5f58a1d0b0 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 91c748ff73..d5f6ef553e 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 5332af29cb..547aabf220 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 bb5e4c35f7..84192cf2a1 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 eac2d682af..2a5eba24d8 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 9a24f11417..e50b1eafd9 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 76a209ea24..edc238cced 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 f3538cc057..02875d6902 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 4ba9cfb250..7e6a3ae23b 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 5d5c2e7a96..3b45597fb9 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 3d680d910d..c44f58acd4 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 b8e8d0d4de..eac337823b 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 5560fbf4b3..7fe54e4f06 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 3ecbd8c001..d900a8b4ab 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 56db285fb7..c8e72d0b68 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 43cab77e8a..194d3c68f3 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 6e7da9d13d..23c4c2c3da 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 bd14d43b46..7e65a8f6fb 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 65f268a7bf..b3227847ff 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 67dee9ef28..e62d586865 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 353f2b5d13..df65dc7be3 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 5864735543..4af248c6b5 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 2a6d953475..f91a44a173 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 6379177bf0..600b5592c4 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 202e32f7e0..f9a4af6489 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 dabca9da7f..e4c5d74f51 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 97f50638d9..ab05d0b323 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 431967d22b..b6c9d3b1c2 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 d0a731499e..28a238793a 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 29ba52b690..90568bbc92 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 ad782d747f..86e3f08631 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 df3e345bf5..edee9d7248 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 5ce8b00f1c..75c8f034f4 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 bd6c8a8203..c98872fdd9 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 7e29b5e8dc..92a918f01d 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 0197a41294..0fdec40355 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 72a275bc4b..bcb1bad17f 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 b77fd67527..8cd1f3d266 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 194fb36dba..9f75bf3771 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 a5db401598..e355a6f971 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 be6e3bebaa..eb3720f890 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 f769d0255b..b600df5820 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 927e17065d..91fbe09b31 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 0dea771eaf..c58d3220ab 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 66b4b7ae39..04ceda4693 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 37a334bbb6..7e74c21315 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 2f098c3217..044a68358c 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 760abe9224..04b342087f 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 e4b5056a07..723d21af69 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 4844ccb059..9525556a0b 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 b54b777284..a7f9d5ab9a 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 73d5d3c267..2bfa083b94 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 7db7e6211b..4069c59d81 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 a8a66a86f7..5e0a5c7e67 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 d090c0d2e0..9607131d6e 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 e6a56ba502..54467ab895 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 b2af3b3733..2b379ed744 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 4ab5685a76..fb9c8ac264 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 77a4088ba5..d9e7afdfa9 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 0df694e287..e805df56f8 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 bf045e2027..1f0ca2b7f7 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 f815af80cb..6c5abb898a 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 77afa1b23f..19bcdf18a6 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 7a1fd885da..0dfd8aceba 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 295e8d00c4..8f5809cd44 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 426d0e0caf..9316f96b53 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 3fb3b6faed..caa74ecd15 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 ea794715dc..7929000587 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 4ffb469849..01e0cf2925 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 e9578e666e..bc31df9dd8 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 fcb377b71a..72d9051100 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 a5901b3d3a..bf6b19c205 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 b8fc4363d8..aae8f430b8 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 4ddcbb3fcf..dcce659a33 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 4f4782429a..103e86dcab 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 fbbd109a94..6be1275fde 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 e8bcb0534e..0c05e9d502 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 9482faa936..1cc234dd30 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 {