-
Notifications
You must be signed in to change notification settings - Fork 3.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Snapshot sync: use hasher for chunk hashes (#7215) #7259
Conversation
Blake3 improves on security and speed compared to sha256. https://blake3.io/ In this PR: + use optimized blake3 hashes (with dedicated SIMD code) instead of sha256 + reuse resources on hashing chunks. + cleaned few error return statements.
Codecov Report
@@ Coverage Diff @@
## master #7259 +/- ##
==========================================
+ Coverage 61.80% 61.83% +0.02%
==========================================
Files 609 609
Lines 35144 35124 -20
==========================================
- Hits 21722 21719 -3
+ Misses 11146 11137 -9
+ Partials 2276 2268 -8
|
go.mod
Outdated
@@ -42,6 +42,7 @@ require ( | |||
github.com/tendermint/go-amino v0.15.1 | |||
github.com/tendermint/tendermint v0.34.0-rc3 | |||
github.com/tendermint/tm-db v0.6.2 | |||
github.com/zeebo/blake3 v0.0.4 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blake3 indeed does seem like an improvement, but I'm always a bit wary about new and shiny tech that's "better, faster, stronger".
Some questions I have:
- Has any project (blockchain or not) used blake3 in production for a longer period of time (say >6 months), and has some data/insights about it?
- Is this library audited? If not, are we okay to use this library from just another guy on the internet?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm sure @ValarDragon would have excellent input here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Blake3 looks amazing at first glance. And I tend to agree with @amaurymartiny. Would love to have those questions answered and hear what others think. Thanks for working on this @robert-zaremba !
@amaurymartiny dixit:
Exactly my thoughts. @robert-zaremba dixit:
Speaking of performance, could you provide benchmarks please? |
They are in the link in OP: https://blake3.io/ |
Has sha256 been shown to be a performance inhibitor in this area? I am hesitant to be trying to optimize this without testing and benchmarks for our use case and for the above mentioned reasons. |
On Tue, Sep 8, 2020 at 2:42 PM Robert Zaremba ***@***.***> wrote:
They are in the link in OP: https://blake3.io/
here are more benchmarks: https://github.com/zeebo/blake3/blob/master/README.md
Yes, I saw those :) I was wondering whether you could benchmark your
changes, i.e.
1. write a benchmark for the functions affected by your patch
2. run it on the current implementation and collect results
3. apply your patch, run the test again and collect results
4. compare results
How about that?
…--
AT
|
The library is a rewrite of a reference and audited implementation in Rust. Moreover, this change impact the security of a blockchain. The hashes we are checking are used only to do a quick fallback if data doesn't match. For security we are still using standard Merkle Tree and compare the state of Merkle Tree with the state in the block Merkle Root. |
The performance impact should be small, because most of the work in snapshot is IO based. If you want I can do the benchmark using the tests which are already there. (it's just time consuming). Also, if the source of the code is questionable I can swap it to |
BLAKE3 was designed by:
The development of BLAKE3 was sponsored by Teserakt and Electric Coin Company. So basically ZCash is on it. Moreover Blake3 it's recommended by the blake2 team, and there is lot of research and use behind it. |
Okay, this is known. I think it would be beneficial to bring some benchmarks. I agree there will be a performance increase, but the amount may not be worth it at this time. If performance is a bottleneck here then something should be done with the implementation not only the hashing function. This could easily be a post stargate issue. There are issues & PRs that still need work, these will pay larger dividends immediately than this IMO. |
Later it will be a breaking change (snapshot hashes will change). Now it's easy. Even if the overall impact is tiny, why not having it? It's done and we have a good test coverage for this functionality. The only risk I see here is that the source library is not audited. But again, this doesn't impact the security of a blockchain. Worst case this will cause problems with snapshot sync. But this we will be testing anyway soon (with the RC). |
Snapshotting is currently IO-bound due to IAVL access patterns, so this seems to have limited upside - but feel free to benchmark it. Apart from that, LGTM.
Snapshot formats are versioned, so the hash can be changed later by simply bumping the format number. |
I think in general, we should have a larger strategy for what cryptographic hash functions we want to use as default everywhere (aside from addresses), and also not hard-code the choice of hash function. Chains pay in complexity by using different cryptographic hash algorithms for different things, instead we ought to have a cohesive plan (even if changes get merged across different SDK/TM versions!) There are valid reasons for the following three hashes as defaults, for which getting more input would be helpful.
I prefer Blake2b as the default hardcoded function at this time. I'm personally in favor of holding off on Blake3 until it gets implemented / bound to more languages.
This isn't the right conclusion, they funded it. (And Zooko worked on it) There is no current plan AFAIK to use it in ZCash. |
Initially I was thinking about @ValarDragon , if we don't count exotic languages, then blake2b support is close to 100%. |
If change to blake2b will make us reaching an approval faster, then I'm for that. |
I'm sort of opposed to randomly adding new cryptographic dependencies to the Cosmos stack. |
This is not a random dependency add on. There is a good motivation explained here and if we go with |
@zmanian dixit:
That's exactly the reason why I asked for benchmarks. And I'm yet to be shown figures. |
Do we have some scripts / tools to make such a benchmark (create blockchain, populate with data, start doing transactions and do some trace timing?) |
@alessio , Re "And I'm yet to be shown figures.", for unit type of benchmarks, you have charts in the links above. Like I wrote, I don't expect to have this much difference in the functional setup (as we both noted with Erik, the whole process is IO bound). My motivation here was to: do some small improvements with the idea of "little by little" without adding any complexity. |
Because we can. Also, there are other threads which may compete for CPU usage. Google pays lot of $$$ if you optimize their code by a fraction of a per-cent. |
@ValarDragon dixit:
I have avoided commenting on that deliberately. @robert-zaremba dixit:
That's not an answer to Dev's question. I'd strongly advise to focus on addressing the technical concern raised by @ValarDragon, who is a long time contributor of Tendermint Core and Cosmos SDK. Plus:
That's always the case in most scenarios and not an excuse to patchwork new cryptographic functions because we can. |
Sorry if this doesn't sound informative enough. There is a whole thread about it here. To summarize:
Overall this things will need to be refactor in the future to allow anyone use their own hashing algorithm in the whole chain. |
We don't agree that its better on all fronts. See my comment:
My bad for not giving more context for my preference of a blake2b default everywhere. There are environments where you don't get to use the SHA2 in-hardware support (e.g. JS AFAIU), which would matter for lite clients. For snapshot hashes, I see no reason to not be considering the SHA2 in-hardware speed vs the blake2b software speed (where sha2 vastly outperforms) as this is not a computation lite clients perform. Things like that are reasons why I prefer blake2b in consensus rather than SHA2, and then I'd want blake2b defaulted everywhere for consistency. I don't view an isolated change to blake2b in an area lite clients don't benefit from as an incremental improvement (even ignoring the complexity tradeoffs). Also using different hashes & security assumptions for different things is definitely a complexity change, which now several people have noted. By using blake2b here, we aren't actually gaining anything since it doesn't improve wall time as has been noted, so I don't see why we'd take the tradeoff. (I still don't see why CPU time matters here when wall time is what is important - is there a scenario you're envisioning where the CPU time starts taking a significant portion of time?) |
I have absolutely no dog in this fight, but I was subscribed to this thread for some reason, and this stood out to me. I'm not sure what this "vast difference" is. Let's look at some Intel numbers. On Intel Skylake:
On Intel Icelake:
On AMD Zen2:
There is a difference, I suppose, but I'm not sure I would call it vast. The SHA-2 instructions really are a great upgrade compared to SHA-2 without them, though. Parallel hashes like BLAKE2sp, BLAKE2bp, or BLAKE3 will be faster than hardware SHA-256 on any of the above platforms. |
Thank you for the correction there, I appreciate it! Must have misremembered it. Do you know what Intel Icelake blake2b speeds are without AVX512? We definitely don't want the AVX512 downclock for hyperthreaded processes. |
The code only ever works with with 256-bit vectors (the AVX512VL is purely to use new instructions on 256-bit ymm vectors), so the frequency hit from going to 512-bit wide vectors does not apply. It's the same as if only using AVX2. |
This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
What shall we do with this PR?
|
I prefer 2. |
I'd go with 2 |
69ad410
to
43d5ac2
Compare
I reverted to |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ACK - pending tests
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice cleanups, thanks!
* crypto/hd: add 'm/' prefix to hd path (#7970) * crypto/hd: add 'm/' prefix to hd path * update fundraiser path * fix some tests * tests * fix test case * changelog * fix ledger tests * ibc: commit packet and hash (#7808) * ibc: commit packet and hash * minor changes * fix build * update err msgs * don't use Any * update commitment hash to used fixed length preimage The commitment hash will now use 8 bytes timeout timestamp + 8 bytes timeout height version number + 8 bytes timeout height version height + sha 256 hash of data * remove error from CommitPacket return values * update godoc * rm proto-tools-stamp Co-authored-by: Colin Axner <[email protected]> Co-authored-by: colin axnér <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Fix StatusCommand (#7974) Co-authored-by: SaReN <[email protected]> * Bech32 PubKey: use protobuf in slashing keeper * remove unused function * changelog update * ADR-031: elaborate consequences and encapsulation of module client-se… (#7839) * ADR-031: elaborate consequences and encapsulation of module client-server implementation * Update docs/architecture/adr-031-msg-service.md Co-authored-by: Aaron Craelius <[email protected]> Co-authored-by: Aaron Craelius <[email protected]> * exclude *.pb.gw.go files from codecov.io report (#7981) * revert tiny portion of #7970 (#7984) Testable examples were accidentally converted into tests. * docs: x/bank: Atlas Doc (#7961) * CI: Fix codecov flag project config (#7994) * Bump Tendermint v0.34.0 (#7995) * init commit * ibc: remove redundant casting * ci: attempt fix liveness job * types/Coin: compile and reuse Regexps to reduce massive RAM+CPU burn (#7989) * types/Coin: compile and reuse Regexps to reduce massive RAM+CPU burn Fixes a resource (CPU+RAM) burn from recompiling Regexps which would consume 1.2+MiB of RAM and 1.1ms per ParseCoin invocation, which means that 1,000 invocations would consume 1.2GiB of RAM and >1second. With the change, ParseCoin now takes 3.2us down from 1.1ms, with dramatic results: name old time/op new time/op delta ParseCoin-8 1.04ms ± 4% 0.00ms ± 1% -99.69% (p=0.000 n=9+10) name old alloc/op new alloc/op delta ParseCoin-8 1.20MB ± 0% 0.00MB ± 0% -99.94% (p=0.000 n=10+10) name old allocs/op new allocs/op delta ParseCoin-8 17.8k ± 0% 0.0k ± 0% -99.89% (p=0.000 n=10+10) Fixes #7986. * replace the CoinDenomRegex variable with SetCoinDenomRegex() (#7998) Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * Fix tendermint misbehaviour trusted consensus state age check (#8006) * use TrustingPeriod instead of UnbondingPeriod when verifying the age of the trusted consensus state * update comment * Update ADR status (#8009) * Update adr-034-account-rekeying.md * Show height on legacy REST endpoints (#7997) * Fix showing height in rest endpoints * Fix query height * Manually inject req.Height * Small tweaks * Use withHeight Co-authored-by: Aleksandr Bezobchuk <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Add ConsensusState to IBC Upgrades (#7919) * upgrade progress * fix build minus cli * write state at block before upgrade height * refix build * Apply suggestions from code review Co-authored-by: colin axnér <[email protected]> * fix upgrade and start with tests * fix tendermint tests * add tests and remove unnecessary relayer options on upgradedClient * fix all tests except weird msg panic * add invalid final client test and codec stuff * fix everything but msg issue * remove problematic test for now * safer self validation * upgrade fixes * proto-linting * remove unnecessary last height * add timestamp to committed upgrade consensus state * address final nits * address nit Co-authored-by: colin axnér <[email protected]> Co-authored-by: Federico Kunze <[email protected]> * check clients against params and consensus against clients (#8016) Co-authored-by: colin axnér <[email protected]> * docs: Add REST endpoints migration guide (#8011) * Add REST endpoints migration guide * add bank, distrib, evidence * Add slashing, mint * Add staking * Add query * Add todo * Typos * Add link to interact node * grammar * Better wording * Update docs/migrations/rest.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/rest.md * Add footnote Co-authored-by: Robert Zaremba <[email protected]> * Update "Core Concepts" docs (#7948) * Update "Core Concepts" docs * Update tags * Update more subsctions * Revert basics * ADd link to run-node * Typo * Add sign modes * Finish transaction.md * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Wording * Update docs/core/baseapp.md Co-authored-by: Marie Gauthier <[email protected]> * Revert basics changes * revert space change * typo * Update docs/core/transactions.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/core/node.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/core/store.md Co-authored-by: Robert Zaremba <[email protected]> Co-authored-by: Marie Gauthier <[email protected]> Co-authored-by: Robert Zaremba <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Deterministic connection and channel identifiers (#7993) * add generate identifier functions for connection and channel * update proto types and begin open init changes remove unnecessary field from open init msgs. Update connectionopeninit handshake, begin updating channel handshake * finish connection handshake chanes and some channel handshake changes Finish updating connection handshake changes, update genesis for connection and channel, some channel handshake changes, fix build for tests but still failing * finish channel handshake changes * fix more tests * fix connection handshake tests * fix more tests * fix build * changes from self review * address @fedekunze review suggestions * update spec * fix build * fix tests * Update x/ibc/testing/chain.go Co-authored-by: Aditya <[email protected]> * Update x/ibc/core/03-connection/types/msgs.go Co-authored-by: Aditya <[email protected]> * address @AdityaSripal comments * reflect spec changes * address @AdityaSripal review suggestions * nit * add connection/channel identifier parsing and validation as per @AdityaSripal suggestion, cc @fedekunze * Fix auth rest test Change dummy channel id to a valid channel id given the updated stricter channel identifier checks cc @amaurymartiny Co-authored-by: Aditya <[email protected]> * Rename Version to Revision in IBC Height (#8020) * rename Version to Revision in ibc Height * lint Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * CopyTx also copies timeoutHeight (#8015) Co-authored-by: Aleksandr Bezobchuk <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * CLI `migrate` command for x/{upgrade,params} proposals (#7875) * Add v038 upgrade types * Add migrate x/upgrade * remove nolint * Add ParameterChangeProposal * Revert change * Don't register crypto twice Co-authored-by: Anil Kumar Kammari <[email protected]> Co-authored-by: Federico Kunze <[email protected]> * Makefile: use docker run --rm whenever possible (#8026) Remove terminated containers once their execution has finished. This saves the users a bit of disk space. Closes: #8023 * Fix legacy querying tx ("unregistered type" bug) (#7992) * Add tests for query txs * Add test for IBC * Refactor checkSignModeError * Fix lint * Add successful IBC test * Remove logs * break * Remove known errors * Update error message * Better comments * Revert variable renaming * Fix lint * Add mention of gRPC as TODO * gRPC-gateway routes as alternative to legacy tendermint REST endpoints (#7965) * WIP * WIP setup * WIP setup testsuite * add node_info * add GetLatestBlock,GetBlockByHeight grpc endpoints * add GetValidatorSetByHeight, GetLatestValidatorSet * fix lint * fix tests * proto format * Update Makefile * review changes * Makefile format * handle nil pagination * rename query.go to service.go * format Makefile * format Makefile * review changes * review changes Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * cli: ParseCoin doesn't do normalize (#7954) follow up on https://github.com/cosmos/cosmos-sdk/pull/7777 ParseCoin need to be treated similarly. Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Add an IBC prefix to transfer escrow addresses (#7967) * add IBC prefix to escrow addresses * use ADR 028 AddressHash construction * remove extra space * apply @AdityaSripal suggestion; prefix from ibc -> ibc-transfer-escrow-prefix * Use alternative 1 proposed by @andrey-kuprianov * anticpate necessary build fix * add escrow address issue link into module.go * Update x/ibc/applications/transfer/types/keys.go Co-authored-by: Andrey Kuprianov <[email protected]> * Update x/ibc/applications/transfer/types/keys.go Co-authored-by: Andrey Kuprianov <[email protected]> * apply @andrey-kuprianov review suggestions Deduplicate code into a helper function as suggested. Add unit tests for max transfer channels test. Co-authored-by: Andrey Kuprianov <[email protected]> * docs: Remove legacy Msg/queriers in "Basics" section (#7782) * docs: Remove legacy Msg/queriers in Basics * Service * Update links * Update to rc2 * Update refs * Use TM hashes * REformulate * Remove deep copy * Update docs/DOCS_README.md Co-authored-by: Cory <[email protected]> Co-authored-by: Cory <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Use generated client identifiers (#8034) * add client identifier generation * update proto and start fixing tests * fix ibc tests * fix auth rest test * update spec * fix lint * add parsing tests and fix bugs * fix regexp * add godoc * address @AdityaSripal review suggestions for identifier parsing * address rest of @AdityaSripal's review comments * remove unnecessary comment * typos * fix lint * Apply suggestions from code review Co-authored-by: Aditya <[email protected]> * add more heigh tests as per @AdityaSripal suggestion Co-authored-by: Aditya <[email protected]> * Add panic handler on queries (#8039) * Add test that panics * Add panic in abci query * Move proto gen files to correct place * Add panic handler in grpc server * Fix test * Fix build * Use %v * Better panic message * Fix tests Co-authored-by: Aleksandr Bezobchuk <[email protected]> * multistore: fix SetInitialVersion (#8048) * client/keys: support export of unarmored private key (#8043) The --unarmored-hex and --unsafe flags are added to the keys export command. Users must use both to export private keys material. The output would be in hexadecimal format and unarmored. See #8042 for scope and motivations. introduce new UnsafeKeyring interface. Unsafe operations are supported by UnsafeKeyring types. By doing so, we try to make the client developer aware of the risks. Co-authored-by: Sunny Aggarwal <[email protected]> * Fix QueryByEvents with multiple events and empty pagination request (#8029) * fix pagination issue * Fix querying with multiple events * reuse ParsePagination * update tests * change event type to array * fix test * review changes * add test case for escape params * review changes * resolve conflicts * fix test * fix test Co-authored-by: anilCSE <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Fix CryptoCdc inconsistent (#7987) * simple fix * refactor crypto * just use codec/legacy.Cdc * revert armor * add changelog entry Co-authored-by: Aleksandr Bezobchuk <[email protected]> * Add tx broadcast gRPC endpoint (#7852) * WIP tx/broadcast grpc endpoint * fix lint * fix proto lint * Update service.proto * resolve conflicts * update service.proto * Update service.proto * review changes * proto lint * Switch to txraw * Add check breaking at the end * Fix broadcast * Send Msg on SetupSuite * Remove proto-check-breaking * 1 validator in test * Add grpc server tests for broadcast * Fix grpc server tests * Add some changes * Add ress comments * Add table tests for tx service * Add test for mode * Add simulate tests * Add build flag back * Revert custom stringer for enum * Remove stray logs * Use /txs/{hash} Co-authored-by: Amaury Martiny <[email protected]> Co-authored-by: Aleksandr Bezobchuk <[email protected]> * evidence: fix query command (#8066) * evidence: fix query command * evidence: add CLI tests Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * fix: Metadata is not initialized in x/bank InitGenesis #7951 (#8065) * fix: Metadata is not initialized in x/bank InitGenesis #7951 * remove commented code Co-authored-by: Aleksandr Bezobchuk <[email protected]> * Update signbatch multisig to work online (#7801) * add test for signbatch multisig * update test * fix sign batch multisig * update offline usage * address comments Co-authored-by: Alessio Treglia <[email protected]> * Refactor Logging using Zerolog (#8072) * init commit * server: use flags * server: godoc++ * updates * baseapp: update logging * logging updates * x/bank: update logging * logging updates * lint++ * logging updates * logging updates * logging updates * logging updates * cl++ * build(deps): bump vuepress-theme-cosmos from 1.0.175 to 1.0.176 in /docs (#8052) Bumps [vuepress-theme-cosmos](https://github.com/cosmos/vuepress-theme-cosmos) from 1.0.175 to 1.0.176. - [Release notes](https://github.com/cosmos/vuepress-theme-cosmos/releases) - [Commits](https://github.com/cosmos/vuepress-theme-cosmos/commits) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Audit through legacy endpoints to find breaking changes (#8037) * Add error msg on staking * Add tests for legacy staking and gov * Add test for encode * Fix broadcast too * Add comments * update changelog Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * fix: bank gRPC error status codes (#7814) Co-authored-by: SaReN <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * Rename GRPCRouter (#8079) * rename GRPCRouter * Update store/types/store.go Co-authored-by: Robert Zaremba <[email protected]> * Fix gofmt Co-authored-by: Robert Zaremba <[email protected]> * build(deps): bump vuepress-theme-cosmos from 1.0.176 to 1.0.177 in /docs (#8075) Bumps [vuepress-theme-cosmos](https://github.com/cosmos/vuepress-theme-cosmos) from 1.0.176 to 1.0.177. - [Release notes](https://github.com/cosmos/vuepress-theme-cosmos/releases) - [Commits](https://github.com/cosmos/vuepress-theme-cosmos/commits) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * increase ibc basic genesis validation (#8081) * increase client basic genesis validation * add connection/channel genesis validation * fix tests * apply @AdityaSripal suggestion Co-authored-by: Christopher Goes <[email protected]> * x/bank/keeper: fix a missing gRPC error in AllBalances (#8085) * x/bank/keeper: fix a missing gRPC error in AllBalances Fixes an incoherent return which had: (non-nil value, non-nil-non-grpc error) to (nil value, non-nil-gRPC error) and it is a follow-up of PR #7814. * types/query: fix pagination test (#8096) Co-authored-by: Alessio Treglia <[email protected]> * build(deps): bump vuepress-theme-cosmos from 1.0.177 to 1.0.178 in /docs (#8098) Bumps [vuepress-theme-cosmos](https://github.com/cosmos/vuepress-theme-cosmos) from 1.0.177 to 1.0.178. - [Release notes](https://github.com/cosmos/vuepress-theme-cosmos/releases) - [Commits](https://github.com/cosmos/vuepress-theme-cosmos/commits) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * fix typo (#8097) Co-authored-by: Jonathan Gimeno <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Implement Connection-specified delay (#8069) * start with initialization and metadata * start by fixing delay period during connection handshake * fix connection handshake tests * add delay period logic to packet verification * proto format * fix err issue * appease linter * document upgrade special case * Update x/ibc/light-clients/07-tendermint/types/client_state.go Co-authored-by: colin axnér <[email protected]> * Update x/ibc/light-clients/07-tendermint/types/store.go * add sanity check * fix build * fix tests Co-authored-by: colin axnér <[email protected]> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Colin Axner <[email protected]> * change TmService's validator pubkey type to any (#8060) * change validator pubkey type to any * add test for vslidator pubkey * change address to string Co-authored-by: Jonathan Gimeno <[email protected]> * x/ibc/core/23-commitment/types: fix MerkleProof.Empty comparisons (#8092) * x/ibc/core/23-commitment/types: fix MerkleProof.Empty comparisons Fixes invalid pointer creation, reduces on unnecessary allocations inside MerkleProof.Empty, and changes the method to a pointer; the invalid pointer creation was symptomatic of broad use of values. With this change we have improvements whose benchmarks produce: ```shell name old time/op new time/op delta Empty-8 311ns ± 5% 232ns ± 5% -25.49% (p=0.000 n=20+19) name old alloc/op new alloc/op delta Empty-8 56.0B ± 0% 8.0B ± 0% -85.71% (p=0.000 n=20+20) name old allocs/op new allocs/op delta Empty-8 3.00 ± 0% 1.00 ± 0% -66.67% (p=0.000 n=20+20) ``` Fixes #8091 * Move Empty godoc to right place + add comments for blank* * removed gov docs bug (#8105) * Move and update codec.MarshalAny functions to codec.Marshaler interface (#8080) * Changelog update * Rename codec.MarshalAny * move codec.MarshalInterface to codec.Marshaler * fix tests * Update amino_codec for compliance with MarshalerInterface * update tests and comments * add tests * change order of args in UnmarshalInterface to a canonical one * uplift MarshalInterface to take ProtoMessage as an argument * wip * add nil check * make tests working * tests cleanup * add support for *JSON methods * Update changelog * linter fixes * fix test types * update evidence genesis_test * adding test * review updates Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * x/ibc/light-clients: simplify max time comparison (#8089) The prior code that tried to get the newest/larger time between the too performed: * 2 time.Time.UnixNano() retrievals: 2 multiplications, 2 additions * 1 math.Max comparison * 1 time.Unix(0, minTime) creation but really this code could just use native operations on: time.Time.After() simply. This now becomes a single operation, single comparison for the same effect. * docs: docs-staging → master (#8084) * Fix package-lock * Fix package-lock * update package-lock * bump docs theme to 1.0.171 * Fix typo, chinese character in URL * update dead doc links * bump docs theme to 1.0.172 * [favicons] add favicons * makefile: change build-docs target for shells other than bash * docs: set master as default version * docs: add v0.40.x to versions * bump vuepress-theme-cosmos 1.0.175 * docs: fix broken url in cn/basics/app-anatomy.md * bump docs theme to 1.0.176 * add versions to config.js * docs: bump docs theme to 1.0.177 * docs: bump docs theme to 1.0.178 * docs: tweak config.js versions with label and key Co-authored-by: Denis Fadeev <[email protected]> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: vms <[email protected]> Co-authored-by: Helder Moreira <[email protected]> Co-authored-by: Amaury Martiny <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Recover private validator key (#8099) * Recover private validator key Added the ability to recover the private validator key from a given mnemonic when initializing the node * Added CHANGELOG entry * Reverted dependencies * Added tests * Fixed mnemonic checking as suggested and added tests * Run make format and fixed go.sum checksum * Run make format * fix imports * fix TestInitializeNodeValidatorFilesFromMnemonic * Update CHANGELOG.md Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * Robert/api clientctx (#8107) * rename clientCtx.PrintOutput to PrintObject * rename clientCtx.PrintOutputLegacy to PrintObjectLegacy * Changelog update * Rename PrintObject to PrintProto * ADR template: add Further Discussions (#8108) * ADR template: add Further Discussions * language update * Update docs/architecture/adr-template.md Co-authored-by: Amaury <[email protected]> Co-authored-by: Amaury <[email protected]> * Add UnpackInterfaces to BroadcastReq (#8118) * add test case for decoding & re-encoding a full transaction using amino * drop equal assertion for tx and txRequest * Fix BroadcastReq UnpackInterfaces * Remove unrelated files * order imports * sort imports again Co-authored-by: Cory Levinson <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * fix ibc-transfer receiving denom bug (#8119) * fix receiving denom bug * Update x/ibc/applications/transfer/keeper/relay.go * add testing sending 2 hops and back one Co-authored-by: Aleksandr Bezobchuk <[email protected]> * testutil: new TempFile function, simplify WriteToNewTempFile (#8123) Files returned by WriteToNewTempFile are cleaned up automatically at the end of a test case execution. WriteToNewTempFile now relies on the TB.TempDir() function provided by the testing std package. TempFile returns a temporary file that can be used within a test case and is automatically removed at the end of the test execution. * go.mod: update cosmos/go-bip39 to v1.0.0 (#8127) Updates cosmos/go-bip39 to version v1.0.0 which features performance upgrades that bring 12+ searches down from 24.3us to 1.4us (so 108.33ns per fetch) after PR https://github.com/cosmos/go-bip39/pull/2. * make it exit gracefully. (#8101) * make it exit gracefully. * add kig message * git update error code * exit with error code * exit with 0 * Update server/start.go Co-authored-by: SaReN <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * add page flags for staking validators (#8103) * add page flags for staking validators * add test * fix test * add build flag Co-authored-by: aleem1413 <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * use testutil in test cases (#8130) Also replace defer calls with testing.T.Cleanup() * x/bank: update atlas manifest (#8137) * atlas: x/auth v0.39.1 (#7996) * x/auth: atlas manifest (#8140) * Switch LogFormat to Plain by default (#8131) Co-authored-by: Federico Kunze <[email protected]> * build(deps): bump vuepress-theme-cosmos from 1.0.178 to 1.0.179 in /docs (#8125) Bumps [vuepress-theme-cosmos](https://github.com/cosmos/vuepress-theme-cosmos) from 1.0.178 to 1.0.179. - [Release notes](https://github.com/cosmos/vuepress-theme-cosmos/releases) - [Commits](https://github.com/cosmos/vuepress-theme-cosmos/commits) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * build(deps): bump gaurav-nelson/github-action-markdown-link-check (#8126) Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1.0.8 to 1.0.9. - [Release notes](https://github.com/gaurav-nelson/github-action-markdown-link-check/releases) - [Commits](https://github.com/gaurav-nelson/github-action-markdown-link-check/compare/1.0.8...7481451f70251762f149d69596e3e276ebf2b236) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Snapshot sync: use hasher for chunk hashes (#7215) (#7259) * snapshot sync: use blake3 for chunk hashes (7215) Blake3 improves on security and speed compared to sha256. https://blake3.io/ In this PR: + use optimized blake3 hashes (with dedicated SIMD code) instead of sha256 + reuse resources on hashing chunks. + cleaned few error return statements. * linter issues fixes * revert blake2 hashing to sha256 * revert go.mod Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * server: init commit (#8144) Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Update CONTRIBUTING.md Point Release Procedure (#7999) * Update CONTRIBUTING.md * Update CONTRIBUTING.md Co-authored-by: billy rennekamp <[email protected]> * Update CONTRIBUTING.md Co-authored-by: billy rennekamp <[email protected]> * Update CONTRIBUTING.md Co-authored-by: billy rennekamp <[email protected]> * Update CONTRIBUTING.md Co-authored-by: billy rennekamp <[email protected]> * Update CONTRIBUTING.md Co-authored-by: billy rennekamp <[email protected]> * updates to concept & release approval process * update codeowners addition process * time bound updates * Update CONTRIBUTING.md Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Aleksandr Bezobchuk <[email protected]> Co-authored-by: billy rennekamp <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Cory Levinson <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * build(deps): bump gaurav-nelson/github-action-markdown-link-check (#8148) Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1.0.9 to 1.0.10. - [Release notes](https://github.com/gaurav-nelson/github-action-markdown-link-check/releases) - [Commits](https://github.com/gaurav-nelson/github-action-markdown-link-check/compare/1.0.9...72d871b8c64d67e2161dc16596734334b188429d) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Use SignModeLegacyAminoJSON when signer is ledger key (#8136) * Use SignModeLegacyAminoJSON when signer is ledger key * Fix tests * Fix lint * Fix tests * Add warning message Co-authored-by: Alessio Treglia <[email protected]> * Model-based tests for relay functions of ICS-20 token transfer (#8145) * start on MBT for ICS20: setting and checking bank balances * add bank struct for subtracting banks * reconstruct ibc denominations in the bank * add some static tests with bank changes tracking * small fixes * better error handling * add Jsonatr transform from Apalache conterexample into OnRecvPacket test * add example Apalache CE and transformed test * changed apalache-to-recv-test.json to output arrays instead of records * add datastructures for parsing TLA+ tests * remove accidentally committed code * add conversion from TLA+ structs to Go structs * encode abstract ids into addresses via hashes * first run of auto-generated MBT tests * first run of auto-generated MBT tests: fix ports and channels * fix small inconsistencies * fix mbt_relay_test by not setting the bank balances in every iteration * add test for onTimeoutPacket * add handling of OnRecvAcknowledgement to mbt relay test * add handling of SendTransfer * add relay-test.json * revert manual changes in relay-test.json * fix handling of denominations for SendTransfer * setup two test channels A-B, B-C; fix escrow address encoding * a test for all handlers passing * generalize denom handling to arbitrary length + failing denom test * rename test function * MBT test for unsecrow tokens * add model-based generated tests * add model-based tests (prev commit: addded model) * transformed json tests with jsonatr * modify mbt_relay_test.go to execute all MBT tests * cleanup * move jsonatr transforms into another dir * add MBT_README.md Co-authored-by: Federico Kunze <[email protected]> * docs: Add grpc & rest endpoints overview (#8064) * docs: Add grpc & rest endpoints overview * Finish overview * -Merge branch 'master' of ssh://github.com/cosmos/cosmos-sdk into am-7657-grpc * Update READMEs * Add grpcurl * Finish docs * Add gRPC historical blocks * Add historical queries * Small tweaks * Update docs/core/grpc_rest.md Co-authored-by: Marie Gauthier <[email protected]> Co-authored-by: Marie Gauthier <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * update error message and add tests (#8166) * support upgrade on same revision (#8165) Co-authored-by: colin axnér <[email protected]> * fix: Signature only flag bug on tx sign command 7632 (#8106) * fix: Signature only flag bug on tx sign command 7632 * Update client/context.go Co-authored-by: Cory <[email protected]> * Update client/context.go Co-authored-by: Cory <[email protected]> * use named return value and closure (#8111) This is to correctly handle deferred Close() calls on writable files. * set the right 'append' logic for signing transactions * cleanup * update tx.Sign interface by adding overwrite option * Update Changelog * sign command cleanup * implementation and changelog update * fix SignTx and tx.Sign calls * fix: sign didn't write to a file * update flags description * Add tx.Sign tests * fix grpc/server_test.go * Update client/tx/tx.go Co-authored-by: Cory <[email protected]> * changelog update * Add test to verify matching signatures * cli_test: add integration tests for sign CMD * add output-file flag test * add flagAmino test * Update x/auth/client/cli/tx_sign.go Co-authored-by: Alessio Treglia <[email protected]> * Update x/auth/client/cli/tx_sign.go * update amino serialization test * TestSign: adding unit test for signing with different modes * Add test with Multi Signers into Robert's TxSign PR (#8142) * Add test with Multi Signers * remove true false * Use SIGN_MODE_DIRECT * Fix litn * Use correct pubkeys * Correct accNum and seq * Use amino * cleanups * client.Sign: raise error when signing tx with multiple signers in Direct + added more unit tests * add more tests * Update client/tx/tx_test.go Co-authored-by: Cory <[email protected]> * fix TestGetBroadcastCommand_WithoutOfflineFlag * Any.UnsafeSetCachedValue * fix note packed messages in tx builder * reorder unit tests * Changelog update * cleaning / linting * cli_tes: copy validator object instead of modifying it's shared codec * x/auth cli_test: remove custom codec creation in tests * Update CHANGELOG.md * updates to CHANGELOG.md * remove unused method * add new instance of transaction builder for TestSign Co-authored-by: Cory <[email protected]> Co-authored-by: SaReN <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Amaury <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Combine client.ReadTxCommandFlags with GetClientContextFromCmd (#8155) * Update codebase to simplify clientCtx loading from cmd * make ReadTxCommandFlags and ReadQueryCommandFlags private * fix build error * fix conflicts * Add msg on CLI for migrating GenesisDoc (#8164) * Add msg on CLI for migrating GenesisDoc * Fix build * Better indentation * Add table tests * typo * Rename variables * Fix validate tests * Add warning println Co-authored-by: Cory <[email protected]> * update changelog for v0.40.0-rc5 (#8156) * add Increment method to Height interface (#8157) Co-authored-by: colin axnér <[email protected]> * build(deps): bump github.com/cosmos/iavl from 0.15.0-rc5 to 0.15.2 (#8168) * build(deps): bump github.com/cosmos/iavl from 0.15.0-rc5 to 0.15.2 Bumps [github.com/cosmos/iavl](https://github.com/cosmos/iavl) from 0.15.0-rc5 to 0.15.2. - [Release notes](https://github.com/cosmos/iavl/releases) - [Changelog](https://github.com/cosmos/iavl/blob/master/CHANGELOG.md) - [Commits](https://github.com/cosmos/iavl/compare/v0.15.0-rc5...v0.15.2) Signed-off-by: dependabot[bot] <[email protected]> * go.sum Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * build(deps): bump github.com/armon/go-metrics from 0.3.4 to 0.3.5 (#8163) * build(deps): bump github.com/armon/go-metrics from 0.3.4 to 0.3.5 Bumps [github.com/armon/go-metrics](https://github.com/armon/go-metrics) from 0.3.4 to 0.3.5. - [Release notes](https://github.com/armon/go-metrics/releases) - [Commits](https://github.com/armon/go-metrics/compare/v0.3.4...v0.3.5) Signed-off-by: dependabot[bot] <[email protected]> * go.sum Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * build(deps): bump gaurav-nelson/github-action-markdown-link-check (#8158) Bumps [gaurav-nelson/github-action-markdown-link-check](https://github.com/gaurav-nelson/github-action-markdown-link-check) from 1.0.10 to 1.0.11. - [Release notes](https://github.com/gaurav-nelson/github-action-markdown-link-check/releases) - [Commits](https://github.com/gaurav-nelson/github-action-markdown-link-check/compare/1.0.10...2a60e0fe41b5361f446ccace6621a1a2a5c324cf) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * x/upgrade: fix software upgrade proposals from automatically failing, add unpackinterfaces function (#8169) * fix unpack interfaces bug * remove unnecessary ; * x/ibc: fix ClientUpdateProposal unpacker (#8170) * x/ibc: fix ClientUpdateProposal unpacker * rm duplicate line * docs: typo fix (#8172) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * build(deps): bump github.com/otiai10/copy from 1.2.0 to 1.3.0 (#8160) * build(deps): bump github.com/otiai10/copy from 1.2.0 to 1.3.0 Bumps [github.com/otiai10/copy](https://github.com/otiai10/copy) from 1.2.0 to 1.3.0. - [Release notes](https://github.com/otiai10/copy/releases) - [Commits](https://github.com/otiai10/copy/compare/v1.2.0...v1.3.0) Signed-off-by: dependabot[bot] <[email protected]> * go.sum Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: Federico Kunze <[email protected]> * build(deps): bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0 (#8159) * build(deps): bump gopkg.in/yaml.v2 from 2.3.0 to 2.4.0 Bumps [gopkg.in/yaml.v2](https://github.com/go-yaml/yaml) from 2.3.0 to 2.4.0. - [Release notes](https://github.com/go-yaml/yaml/releases) - [Commits](https://github.com/go-yaml/yaml/compare/v2.3.0...v2.4.0) Signed-off-by: dependabot[bot] <[email protected]> * go.sum Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * client: remove redundant/repeated code (#8182) Follows up PR #4876 which removed the return on non-nil errors to always return a non-nil REST response regardless of error. The checks performed seem benign and the return result is the same. This change uses the reverse conditional refactoring method to gut out nesting and many conditions. Noticed while hunting through types.ParseABCILogs. Fixes #8181 * change gentx cmd amount field to arg from flag (#8183) * Read gentx amount as argument * Update gentx command usage * Update gentx tests * Update docs of gentx Co-authored-by: Alessio Treglia <[email protected]> * Fix IBC upgrade: manually tested (#8187) * commit at plan.Height key * fix upgrade tests * remove debugging prints * Update x/ibc/light-clients/07-tendermint/types/upgrade.go Co-authored-by: colin axnér <[email protected]> Co-authored-by: colin axnér <[email protected]> * Update default historical header number for stargate (#8178) * Update default historical header number * Update x/staking/types/params.go Co-authored-by: Amaury <[email protected]> * fix tests * duh Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: Amaury <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * Tulasi/export homepath (#8194) * homepath added * temp added * changes done * modified * modified * Update simapp/simd/cmd/root.go * Update simapp/simd/cmd/root.go * Update simapp/simd/cmd/root.go Co-authored-by: Naga Tulasi <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * Clean Any interface (#8167) * Clean Any interface + removed Any.Pack method. This method is not needed, because we have specialized functions for createing new Any values. It could be used inappropriately with existing Any objects. * removed deprecated PackAny function * fix linter issue * update nil handling * NewAnyWithValue returns error on nil instead of panic * NewMsgCreateValidator: handle nil pubkey * Remove AsAny and tx builder workarounds * fix linter issue * Add AsAny methods to TxBuilder and StdTxConfig, but keep intoAny interface private * remove tx.PubKeyToAny * cosmetic updates * fix method interface * move ProtoTxProvider to x/auth/tx * update x/upgrade docs (#8196) * fix timeout bug (#8200) * types: unconditionally divide by 2 because of integer truncation ⌊x/2⌋ (#8202) Simplify the code in Dec.Power to unconditionally divide by 2, since: x /= 2 is the same result for both even and odd integers, and produces the floor of the result of x/2 -> ⌊x/2⌋: 99/2 ~> 49.5 ⌊49.5⌋ = 49 98/2 ~> 49.0 ⌊49.0⌋ = 49 aka "integer truncation". Fixes #7924 * Fix proto-swagger-gen (#8184) * Fix proto-swagger-gen * Fix script * Run script Co-authored-by: Anil Kumar Kammari <[email protected]> Co-authored-by: SaReN <[email protected]> * build(deps): bump codecov/codecov-action from v1.0.15 to v1.1.0 (#8195) Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * go.mod: update to cosmos/[email protected] for performance updates (#8214) Fixes #8205 * build(deps): bump codecov/codecov-action from v1.1.0 to v1.1.1 (#8215) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.1.0 to v1.1.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v1.1.0...1fc7722ded4708880a5aea49f2bfafb9336f0c8d) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * simulation: close opened files and check for error while creating files (#8217) * Read gentx amount as argument * Update gentx command usage * Update gentx tests * Update docs of gentx * Close opened files and check for error while creating files Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Anil Kumar Kammari <[email protected]> * Fix Unregistered interface types.Evidence (#8221) * fix Unregistered interface * add test Co-authored-by: Anil Kumar Kammari <[email protected]> * x/ibc: minor channel fixes (#8229) * test: Use the bond denomination from the configuration, not the default (#8225) Co-authored-by: Aleksandr Bezobchuk <[email protected]> * build(deps): bump github.com/otiai10/copy from 1.3.0 to 1.4.0 (#8227) * build(deps): bump github.com/otiai10/copy from 1.3.0 to 1.4.0 Bumps [github.com/otiai10/copy](https://github.com/otiai10/copy) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/otiai10/copy/releases) - [Commits](https://github.com/otiai10/copy/compare/v1.3.0...v1.4.0) Signed-off-by: dependabot[bot] <[email protected]> * tidy Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: Federico Kunze <[email protected]> * Fix tendermint query proto scoping (#8236) The following errors are occurring when these protos are compiling because they exist in a sub-package `cosmos.base.tendermint` but are trying to refer to toplevel `.tendermint` types: ``` cosmos/base/tendermint/v1beta1/query.proto:87:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope. cosmos/base/tendermint/v1beta1/query.proto:88:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope. cosmos/base/tendermint/v1beta1/query.proto:96:3: "tendermint.types.BlockID" is resolved to "cosmos.base.tendermint.types.BlockID", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.BlockID") to start from the outermost scope. cosmos/base/tendermint/v1beta1/query.proto:97:3: "tendermint.types.Block" is resolved to "cosmos.base.tendermint.types.Block", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.types.Block") to start from the outermost scope. cosmos/base/tendermint/v1beta1/query.proto:113:3: "tendermint.p2p.DefaultNodeInfo" is resolved to "cosmos.base.tendermint.p2p.DefaultNodeInfo", which is not defined. The innermost scope is searched first in name resolution. Consider using a leading '.'(i.e., ".tendermint.p2p.DefaultNodeInfo") to start from the outermost scope. ``` Here is one issue where I observed these errors: https://github.com/cosmos/cosmos-sdk/issues/8171 However note it is also breaking the build on `cosmos-rust`: https://github.com/cosmos/cosmos-rust/issues/23 Adding a `.` before `tendermint` references the package in toplevel scope, which appears to be what is intended. * Update randomfees selection of non-zero coins (#8209) * Update randomfees selection of non-zero coins * fix randomfees * fixing account test * fix broadcast.go * fixing * Revert "fixing" This reverts commit b6eaa8d281977451d95e3f5e17792bef642ff65c. * Revert "fix broadcast.go" This reverts commit 2275ea1303b3f5f8c61774a42f17d8a539c3c00a. * Revert "fixing account test" This reverts commit d0d4aa7d5d9421b810bd6582db33ea7dda66a008. * fix randomfees * fix randomfees * remove commented code Co-authored-by: Likhita Polavarapu <[email protected]> Co-authored-by: Anil Kumar Kammari <[email protected]> * x/distribution: fix setting withdraw address (#8240) * Add script to generate proto-docs (#8238) * init protobuf-docs * update template * update docs/core/README.md * update proto files * update template Co-authored-by: Federico Kunze <[email protected]> * Add grpc gateway missing endpoints to swagger docs (#8232) * Add missing endpoints * Fix swagger gen * update * Update static.go * Fix format * Fix tests * Fix ConsensusStates grpc query (#8246) * fix consensus states grpc query * Update x/ibc/core/02-client/keeper/grpc_query.go * simplify * contrib: fix path for statik files (#8248) * update appd export (#8228) * update appd export * Update export.go * Update export.go * Update server/export.go Co-authored-by: Alessio Treglia <[email protected]> * Update export.go Co-authored-by: Likhita Polavarapu <[email protected]> Co-authored-by: MD Aleem <[email protected]> Co-authored-by: Anil Kumar Kammari <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * build(deps): bump github.com/otiai10/copy from 1.4.1 to 1.4.2 (#8242) * build(deps): bump github.com/otiai10/copy from 1.4.1 to 1.4.2 Bumps [github.com/otiai10/copy](https://github.com/otiai10/copy) from 1.4.1 to 1.4.2. - [Release notes](https://github.com/otiai10/copy/releases) - [Commits](https://github.com/otiai10/copy/compare/v1.4.1...v1.4.2) Signed-off-by: dependabot[bot] <[email protected]> * go.sum Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * v0.40.0-rc6 Changelog Update (#8249) * rc6 changelog update * Update CHANGELOG.md Co-authored-by: Anil Kumar Kammari <[email protected]> * rc6 changelog update * drop newline * more changelog entries Co-authored-by: Anil Kumar Kammari <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * build(deps): bump codecov/codecov-action from v1.1.1 to v1.2.0 (#8252) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.1.1 to v1.2.0. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v1.1.1...a92c414703a4bba586f6df7fcc885c9d0bdff772) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix gentx command setting wrong amount (#8255) Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * docs: cache-wrapping and virtual store (#8102) * docs: cache-wrapping and virtual store * Finish the docs update * Update docs/building-modules/msg-services.md Co-authored-by: Amaury <[email protected]> * Update docs/building-modules/msg-services.md Co-authored-by: Aleksandr Bezobchuk <[email protected]> Co-authored-by: Amaury <[email protected]> Co-authored-by: Aleksandr Bezobchuk <[email protected]> * Fix upgrade tx commands not showing up in CLI (#8261) * add upgrade tx subcommands to cli * update CLI help to direct to cosmovisor repo * Update IBC Application Guide (#8256) * fix app doc * finish updating guide * Update docs/ibc/overview.md Co-authored-by: colin axnér <[email protected]> * apply @colin-axner suggestions Co-authored-by: colin axnér <[email protected]> Co-authored-by: Federico Kunze <[email protected]> * [docs]: Stargate migration guides (#7771) * init * Add page contents * Update migrate a module to stargate * Update links * Add querier * add baseapp migration guide * Add upgrade instructions * Add TODO for missing udpates * Add dependencies * address review comments * remove unused * gaiad => simd * Add ibc state jq cmd * Update docs/migrations/README.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/README.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/README.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/README.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/chain-upgrade-guide-040.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/chain-upgrade-guide-040.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/chain-upgrade-guide-040.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/migrations/chain-upgrade-guide-040.md Co-authored-by: Marie Gauthier <[email protected]> * Created a modules.md file * Update chain migration guide * Rename to App migration * Add new paragraph * Add some initial sections * Add msg and queries * Finish modules * Add client * Add update guide * Rename title * More tweaks * Update chain upgrade one * Remove useless change * Don't repeat * Update docs/migrations/chain-upgrade-guide-040.md Co-authored-by: Marie Gauthier <[email protected]> * Small update * Use rc6 * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/chain-upgrade-guide-040.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * Update docs/migrations/app_and_modules.md Co-authored-by: Robert Zaremba <[email protected]> * reviews * Review Co-authored-by: Amaury <[email protected]> Co-authored-by: Marie Gauthier <[email protected]> Co-authored-by: Robert Zaremba <[email protected]> * build(deps): bump codecov/codecov-action from v1.2.0 to v1.2.1 (#8263) Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from v1.2.0 to v1.2.1. - [Release notes](https://github.com/codecov/codecov-action/releases) - [Changelog](https://github.com/codecov/codecov-action/blob/master/CHANGELOG.md) - [Commits](https://github.com/codecov/codecov-action/compare/v1.2.0...e156083f13aff6830c92fc5faa23505779fbf649) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * appcreator: Reuse encoding config instead of recreating it (#8250) * appcreator: Reuse encoding config instead of recreating it * Update tests * merge tests * fix export_test.go * fix genesis_test.go * fix withGenesis flag * fix setup parameters * Update server/README.md Co-authored-by: Alessio Treglia <[email protected]> * Update server/README.md Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * Revert "Fix upgrade tx commands not showing up in CLI" (#8262) * Revert "Fix upgrade tx commands not showing up in CLI (#8261)" This reverts commit 893f2262a7ccc8584be4968f0416f52f0c239927. * Update x/upgrade/client/cli/tx.go Co-authored-by: Alessio Treglia <[email protected]> * ibc: add proto message to Header and Misbehaviour (#8278) * add proto message to Header and Misbehaviour * format * build(deps): bump github.com/tendermint/tendermint from 0.34.0 to 0.34.1 (#8274) Bumps [github.com/tendermint/tendermint](https://github.com/tendermint/tendermint) from 0.34.0 to 0.34.1. - [Release notes](https://github.com/tendermint/tendermint/releases) - [Changelog](https://github.com/tendermint/tendermint/blob/master/CHANGELOG.md) - [Commits](https://github.com/tendermint/tendermint/compare/v0.34.0...v0.34.1) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Federico Kunze <[email protected]> * x/evidence doc general audit & cleanup (#8277) * Update x/evidence doc * Update x/evidence spec * Create docs for signing & broadcasting txs (#8257) * Add structure of tx page * WIP * Finish CLI * Add go examples * Add golang examples * Tweaks * Update links * Update docs/run-node/interact-node.md Co-authored-by: Marie Gauthier <[email protected]> * Update docs/run-node/interact-node.md Co-authored-by: Marie Gauthier <[email protected]> * Put code snippets in functiosn * Put snippet in functions Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: Marie Gauthier <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Update tendermint to v0.34.1 (#8281) * update tendermint to v0.34.1 * update changelog Co-authored-by: Alessio Treglia <[email protected]> * update changelog for rc7 (#8275) * Stargate Release PR -- v0.40.0 Final (#8284) * v0.40.0 final changelog & release notes * Trigger Build * Backport/reproducible builds (#8381) * fix reproducible builds (#8300) * fix library file path (#8301) Co-authored-by: SaReN <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * fix GET /upgrade/current query (#8280) (#8372) From: #8282 Co-authored-by: MD Aleem <[email protected]> Co-authored-by: SaReN <[email protected]> * build(deps): bump github.com/armon/go-metrics from 0.3.5 to 0.3.6 (#8273) (#8373) From: #8273 Co-authored-by: Federico Kunze <[email protected]> * fix zero time checks (#8282) (#8374) From #8282 Co-authored-by: Robert Zaremba <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * build(deps): bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 (#8291) (#8376) From #8291 Bumps [github.com/gogo/protobuf](https://github.com/gogo/protobuf) from 1.3.1 to 1.3.2. - [Release notes](https://github.com/gogo/protobuf/releases) - [Commits](https://github.com/gogo/protobuf/compare/v1.3.1...v1.3.2) Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Fix sequence value in auth sign signature only (#8287) (#8383) From: #8287 Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: SaReN <[email protected]> * fix: wrappedError.Is (#8355) (#8377) From: #8385 Co-authored-by: Alessio Treglia <[email protected]> * fix: wrappedError.Is (#8355) (#8377) From: #8385 Co-authored-by: Alessio Treglia <[email protected]> * Update gogo proto deps with v1.3.2 security fixes (#8350) (#8386) * Update gogo proto deps with v1.3.2 security fixes * Regenerate proto files Co-authored-by: Aaron Craelius <[email protected]> * Fix ibc client (#8341) (#8375) * fix-ibc-client * add changelog Co-authored-by: Segue <[email protected]> * fix proto generation (#8361) (#8389) * fix proto generation * merge grpc_gateway into gocosmos_out * change env variable names Co-authored-by: Marko <[email protected]> * Add missing unpack interfaces functions to IBC (#8359) (#8379) * add missing UnpackInterfaces functions * fix build * add tests cc @fedekunze Co-authored-by: Federico Kunze <[email protected]> Co-authored-by: colin axnér <[email protected]> Co-authored-by: Federico Kunze <[email protected]> * backport: client denom metadata queries (#8364) From: #8317 Co-authored-by: Amaury <[email protected]> * Backport/changelog (#8390) * Update changelog for 0.40.1 * add tendermint * Add release notes * add known issues * update * update release notes * fix a few things in CHANGELOG * Update RELEASE_NOTES.md Co-authored-by: Alessio Treglia <[email protected]> * update to tendermint v0.34.3 (#8388) (#8391) * update to tendermint v0.34.3 * go.mod replace with grpc v1.33.2 Co-authored-by: Amaury Martiny <[email protected]> Co-authored-by: Alessio Treglia <[email protected]> * stargate: balance and metadata validation (#8421) From: #8417 * backport #8418 (#8424) Co-authored-by: Alessio Treglia <[email protected]> * Reorder IBC channel callbacks (#8441) From: #8404 Thanks: @fedekunze @colin-axner * ibc: MsgTransfer amino JSON, commits from @fedekunze (#8440) From: #8437 Closes: #8266 Thanks: @fedekunze * chore: update RELEASE_NOTES.md (#8443) Co-authored-by: Alessio Treglia <[email protected]> * backport #8479 (#8486) * snapshots: fix flaky tests [o.41-cherry-pick] (#8484) From: #8475 * Fix keyring import from older versions. (#8489) From: #8436 Co-authored-by: Jonathan Gimeno <[email protected]> * Add packet_connection attribute to packet lifecycle methods (#8483) From #8458 Co-authored-by: Ethan Frey <[email protected]> * fix: tendermint subcommands should not create missing files (#8493) From: #8481 Thanks: @michaelfig for the patch. * bank: don't ignore errors returned by Balance.GetAddress() (#8534) Closes: #8530 From: #8531 Thanks: @odeke-em for pointing this out. * add cosmovisot to running a node (#8320) * Update chain-upgrade-guide-040.md (#8326) Still a problem with `cat` - a tmp_genesis file needs to be created and then moved to the old location Co-authored-by: Amaury <[email protected]> Co-authored-by: Cory <[email protected]> * docs: Update x/staking spec (#8395) * Finish updating state * Add messages * Update events * proto-gen * Update proto/cosmos/staking/v1beta1/staking.proto Co-authored-by: Anil Kumar Kammari <[email protected]> * progo-gen * Update Msg with slash * Rerun proto docs Co-authored-by: Anil Kumar Kammari <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Misc documentation fixes (#8452) * EndBlock: "beginning" => "end" * misc fixes * beginning => end * fix error in run-node tutorial * Use correct keyring backend when interacting * multiply stakes by 1000 * query accounts with the bank submodule, not accounts * specify key backend for transactions Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * fixing typo at 'os' backend session (#8477) Co-authored-by: SaReN <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Update cosmovisor.md (#8552) Co-authored-by: Alessio Treglia <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Run pro-gen again * docs: rest_grpc updates (#8582) * [backport/v0.41.x] Removed GetValidator caching to fix concurrency error (#8546) (#8583) * Removed GetValidator caching to fix concurrency error (#8546) * Removed GetValidator caching to fix concurrency error * Fixed linting and added CHANGELOG entry * Moved benchmark test into its own file * Moved CHANGELOG entry to bug fix * Update CHANGELOG.md Co-authored-by: Cory <[email protected]> Co-authored-by: Amaury <[email protected]> Co-authored-by: Cory <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Fix changelog conflicts Co-authored-by: Riccardo Montagnin <[email protected]> Co-authored-by: Cory <[email protected]> Co-authored-by: mergify[bot] <37929162+mergify[bot]@users.noreply.github.com> * Make gRPC requests go through tendermint Query (#8549) (#8585) * Make gRPC requests go through tendermint Query * Remove commented code * Dry run in InitChain? * Save type of first run * Add metadata in repsonse * Factorize some code * Fix lint * Update comments * Fix md test * Fix test expected …
Description
Blake3 improves on security and speed compared to sha256.
https://blake3.io/
In this PR:
instead of sha256
TODO:
closes: #7215
docs/
) or specification (x/<module>/spec/
)godoc
comments.Unreleased
section inCHANGELOG.md
Files changed
in the Github PR explorerCodecov Report
in the comment section below once CI passes