Skip to content
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

Merged
merged 7 commits into from
Dec 10, 2020

Conversation

robert-zaremba
Copy link
Collaborator

@robert-zaremba robert-zaremba commented Sep 8, 2020

Description

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.
  • fixed some old linter issue.

TODO:

  • add small benchmark

closes: #7215

  • Targeted PR against correct branch (see CONTRIBUTING.md)
  • Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
  • Code follows the module structure standards.
  • Wrote unit and integration tests
  • Updated relevant documentation (docs/) or specification (x/<module>/spec/)
  • Added relevant godoc comments.
  • Added a relevant changelog entry to the Unreleased section in CHANGELOG.md
  • Re-reviewed Files changed in the Github PR explorer
  • Review Codecov Report in the comment section below once CI passes

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
Copy link

codecov bot commented Sep 8, 2020

Codecov Report

Merging #7259 (4e277f0) into master (eb71698) will increase coverage by 0.02%.
The diff coverage is 100.00%.

Impacted file tree graph

@@            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     
Impacted Files Coverage Δ
snapshots/store.go 74.31% <100.00%> (+5.84%) ⬆️

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
Copy link
Contributor

@amaury1093 amaury1093 Sep 8, 2020

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?

Copy link
Contributor

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.

Copy link
Member

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 !

@alessio
Copy link
Contributor

alessio commented Sep 8, 2020

@amaurymartiny dixit:

Is this library audited? If not, are we okay to use this library from just another guy on the internet?

Exactly my thoughts.

@robert-zaremba dixit:

Blake3 improves on security and speed compared to sha256.

Speaking of performance, could you provide benchmarks please?

@robert-zaremba
Copy link
Collaborator Author

robert-zaremba commented Sep 8, 2020

Speaking of performance, could you provide benchmarks please?

They are in the link in OP: https://blake3.io/
here are more benchmarks: https://github.com/zeebo/blake3/blob/master/README.md

@tac0turtle
Copy link
Member

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.

@alessio
Copy link
Contributor

alessio commented Sep 8, 2020 via email

@robert-zaremba
Copy link
Collaborator Author

Is this library audited? If not, are we okay to use this library from just another guy on the internet?

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.

@robert-zaremba
Copy link
Collaborator Author

robert-zaremba commented Sep 8, 2020

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 blake2b. Some blockchains are using blake2b for hashing.

@robert-zaremba
Copy link
Collaborator Author

robert-zaremba commented Sep 8, 2020

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?

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.

@tac0turtle
Copy link
Member

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?

BLAKE3 was designed by:

* @oconnor663 (Jack O'Connor)

* @sneves (Samuel Neves)

* @veorq (Jean-Philippe Aumasson)

* @zookozcash (Zooko)

The development of BLAKE3 was sponsored by Teserakt and Electric Coin Company.

So basically ZCash is on 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.

@robert-zaremba
Copy link
Collaborator Author

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).

@erikgrinaker
Copy link
Contributor

erikgrinaker commented Sep 8, 2020

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.

Later it will be a breaking change (snapshot hashes will change). Now it's easy.

Snapshot formats are versioned, so the hash can be changed later by simply bumping the format number.

@ValarDragon
Copy link
Contributor

ValarDragon commented Sep 9, 2020

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.

  • SHA2 - You have hardware implementations on many new Intel computers / servers, which beats blake2 by a large factor. Great support everywhere.
  • Blake2b - Much faster in software than SHA2. Mildly (30%) better in a zkp circuit than SHA2. Supported in ~all software languages now, I don't know what the hardware support is.
  • Blake3 - the in software speed is much faster than SHA2 in hardware. Very limited support across languages/ecosystems, cutting edge / not battle tested so security relies on how closely its internals mirror blake2s.

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.

So basically ZCash is on it.

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.

@robert-zaremba
Copy link
Collaborator Author

Initially I was thinking about blake2b (check the issue: #7215). But the I noticed that blake3 is endorsed at the beginning of the official page, so this built up my confidence.

@ValarDragon , if we don't count exotic languages, then blake2b support is close to 100%.

@robert-zaremba
Copy link
Collaborator Author

If change to blake2b will make us reaching an approval faster, then I'm for that.

@zmanian
Copy link
Member

zmanian commented Sep 9, 2020

I'm sort of opposed to randomly adding new cryptographic dependencies to the Cosmos stack.
Blake2 & Blake3 are great but only really worth adding if the performance benefits are large.

@robert-zaremba
Copy link
Collaborator Author

This is not a random dependency add on. There is a good motivation explained here and if we go with blake2b we have a solid, verified choice.
You know... little by little, and you make a step. This one is easy and solid. Google is optimizing for fraction of a percent.

@alessio
Copy link
Contributor

alessio commented Sep 10, 2020

@zmanian dixit:

Blake2 & Blake3 are great but only really worth adding if the performance benefits are large.

That's exactly the reason why I asked for benchmarks. And I'm yet to be shown figures.

@robert-zaremba
Copy link
Collaborator Author

Do we have some scripts / tools to make such a benchmark (create blockchain, populate with data, start doing transactions and do some trace timing?)

@robert-zaremba
Copy link
Collaborator Author

@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.

@robert-zaremba
Copy link
Collaborator Author

Also if this is extremely I/O bound, why are we concerned about the CPU here?

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.

@alessio
Copy link
Contributor

alessio commented Oct 23, 2020

@ValarDragon dixit:

Also if this is extremely I/O bound, why are we concerned about the CPU here?

I have avoided commenting on that deliberately.

@robert-zaremba dixit:

Because we can.

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:

Also, there are other threads which may compete for CPU usage.

That's always the case in most scenarios and not an excuse to patchwork new cryptographic functions because we can.

@robert-zaremba
Copy link
Collaborator Author

robert-zaremba commented Oct 23, 2020

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.

Sorry if this doesn't sound informative enough. There is a whole thread about it here. To summarize:

  1. We agree that blake2 is a better choice: it's well supported and it's faster (PoS chains don't have any advantage of using ASICS, and are rather run on standard servers / racks). New blockchains rather don't use sha2.
  2. The snapshot sync use case is not related to a consensus so it's less critical for changes.
  3. We can use something better, which doesn't increase a security risk - so it's a low hanging fruit, simple improvement without complexity change.

Overall this things will need to be refactor in the future to allow anyone use their own hashing algorithm in the whole chain.

@ValarDragon
Copy link
Contributor

ValarDragon commented Oct 23, 2020

We agree that blake2 is a better choice: it's well supported and it's faster (PoS chains don't have any advantage of using ASICS, and are rather run on standard servers / racks). New blockchains rather don't use sha2.

We don't agree that its better on all fronts. See my comment:

SHA2 - You have hardware implementations on many new Intel computers / servers, which beats blake2 software speeds by a large factor. Great support everywhere.

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?)

@sneves
Copy link

sneves commented Oct 23, 2020

SHA2 - You have hardware implementations on many new Intel computers / servers, which beats blake2 software speeds by a large factor. Great support everywhere.

I see no reason to not be considering the SHA2 in-hardware speed vs the blake2b software speed (where sha2 vastly outperforms)

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:

  • SHA-256: 7.57 cycles per byte using no SHA extensions;
  • BLAKE2b: 2.87 cycles per byte using AVX2.

On Intel Icelake:

  • SHA-256: 2.44 cycles per byte using SHA-NI instructions;
  • BLAKE2b: 2.60 cycles per byte using AVX2 + AVX512VL for the native rotation instructions.

On AMD Zen2:

  • SHA-256: 2.00 cycles per byte using SHA-NI instructions;
  • BLAKE2b: 3.27 cycles per byte using AVX2.

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.

@ValarDragon
Copy link
Contributor

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.

@sneves
Copy link

sneves commented Oct 23, 2020

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.

@github-actions
Copy link
Contributor

github-actions bot commented Dec 8, 2020

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.

@github-actions github-actions bot added the stale label Dec 8, 2020
@robert-zaremba robert-zaremba changed the title Snapshot sync: use blake3 for chunk hashes (#7215) Snapshot sync: use blake2 for chunk hashes (#7215) Dec 8, 2020
@robert-zaremba
Copy link
Collaborator Author

What shall we do with this PR?

  1. we remove it
  2. continue with sha256 and I extract only optimization parts (hasher constructions)
  3. re-discuss blake2 usage here

@zmanian
Copy link
Member

zmanian commented Dec 8, 2020

I prefer 2.

@alessio
Copy link
Contributor

alessio commented Dec 8, 2020

I'd go with 2

@robert-zaremba robert-zaremba changed the title Snapshot sync: use blake2 for chunk hashes (#7215) Snapshot sync: use hasher for chunk hashes (#7215) Dec 10, 2020
@robert-zaremba
Copy link
Collaborator Author

I reverted to sha256. Please review.

Copy link
Contributor

@alessio alessio left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK - pending tests

Copy link
Contributor

@erikgrinaker erikgrinaker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice cleanups, thanks!

@robert-zaremba robert-zaremba added A:automerge Automatically merge PR once all prerequisites pass. C:Crypto labels Dec 10, 2020
@mergify mergify bot merged commit 6de6858 into master Dec 10, 2020
@mergify mergify bot deleted the robert/snapshot-hashes branch December 10, 2020 19:02
Raumo0 pushed a commit to mapofzones/cosmos-sdk that referenced this pull request Feb 13, 2022
* 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

…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A:automerge Automatically merge PR once all prerequisites pass. C:Crypto
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Decide about hash function in Snapshot Sync for chunk hashes.
10 participants