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

RFC017: ABCI++ Vote Extension Propagation #8317

Merged
merged 33 commits into from
May 9, 2022

Conversation

sergio-mena
Copy link
Contributor

@sergio-mena sergio-mena commented Apr 12, 2022

This RFC reports on all discussions and recent findings on the matter of ABCI++ vote extensions as defined in our current spec.
The problems and situations we need to face and possible solutions are discussed.
There are two missing sections I'll update shortly; they will explain how the blocksync and consensus reactors do for catching up, but these are not really needed to review the rest if you are familiar with those reactors.

Rendered

docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
Comment on lines 362 to 363
Note that this does not apply to light blocks that might have been saved in the block store as a
result of running statesync at startup.
Copy link
Contributor

Choose a reason for hiding this comment

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

Would you mind expanding on this a bit? I think I'm not clear how light blocks apply here.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

My understanding of statesync is limited, but I saw in the code that statesync uses light block (i.e., the minimal information needed to light-client-verify the blockchain up to a certain height... I guess that of the snapshot). This minimal information, called signed header, contains the header and the commit, but e.g., not the transactions.

However, someone more knowledgeable on statesync might want to keep me honest here.

Anyway, back to your comment, I think I'll add a couple of sentences briefly explaining what a light block is and why we don't consider them.

Copy link
Contributor

Choose a reason for hiding this comment

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

There is also an unlikely corner case to address here: state sync puts the blockchain/application in height h and the latest height is h+1.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a good point. Let me add a TODO in the doc.
My first thought on this is: if a node statesyncs to h in your example, that means:

  • 2/3+ validators have got to h+1
  • some node has made a snapshot of the state just after applying h

Now, independently of statesync, you need (at least) those 2/3+ validators to keep on making progress, otherwise the chain halts anyway.
So, with our "Base Implementation" we are good, as we will stay in blocksync until we have, at least, blocksynced one block.

Again, these are my first thoughts, so take it with a pinch of salt.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@cason, after revisiting this, I see your comment is referring to the section describing the base solution. In this case there is no problem because we are protected by the exit condition imposed on blocksync (to switch to consensus). See the code, or the text in this RFC explaining it.

Also, in Solution 3 the condition that governs switching from consensus mode to catch-up mode, defined here, is also protecting us against this case.

Let me know if you still have concerns.

docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
@sergio-mena
Copy link
Contributor Author

Thanks a lot @williambanfield for your thorough review

Copy link
Contributor

@cason cason left a comment

Choose a reason for hiding this comment

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

The approach proposed in this RFC works. However, it seems too conservative to me, in terms of the amount of information that nodes need not only to store (this part seems unavoidable) but also to forward to lagging peers.

the decided block *b* and a *commit* for height *h*. In contrast, *v* MUST have *b* and an
*extended commit* in order to propose at height *h+1*.
The *extended commit* is a *commit* where a mandatory vote extension is attached to every
non-`nil` vote in the *commit*. This mandatory vote extension can be empty, but needs to be signed.
Copy link
Contributor

Choose a reason for hiding this comment

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

Commits do not contain nil votes.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

You're right. While going through the code (MakeCommit method of VoteSet) I somehow confused "absent" and "nil".
I'll make a pass over this text with this in mind.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@cason, just coming back to this comment after some findings in the code...
If commits don't have nil votes, then why is BlockIDFlagNil declared here for CommitSig?
I've looked a bit into the code and, when a precommit Vote is converted into a CommitSig here, we can set it to nil.
Should the code be fixed IYO?

docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
@cason
Copy link
Contributor

cason commented Apr 13, 2022

Another point to make clear after our discussion: we need some for of pruning, but not detached from block store pruning. That means that we assume that every block in the block store should have the associated vote extensions.

Co-authored-by: Daniel <daniel.cason@usi.ch>
@cmwaters
Copy link
Contributor

I think this is a really well written document on what is quite a challenging problem.

Given its complexity, I generally want to lean hard into whatever is the simplest solution, especially in regards to v0.36. With the potential opportunity of breaking the protocol in v0.37, the time to more deeply analyse the different edges, and feedback from the community using it, I'm far more comfortable with trying to formulate more cleverer solutions then.

Based on this, I'm currently of the opinion that:

  • We should have a consensus param to enable and disable the use of vote extensions
  • The catch up protocol in consensus should gossip Votes with VoteExtensions i.e. we should store all ExtendedCommits until the application wants us to prune it (RetainHeight)
  • Blocksync should not require VoteExtensions to function and should terminate at peer.MaxHeight - 1.

@sergio-mena sergio-mena added this to In progress in ABCI++ via automation Apr 14, 2022
@sergio-mena
Copy link
Contributor Author

Closes #8174

@thanethomson
Copy link
Contributor

We should have a consensus param to enable and disable the use of vote extensions

Any preferences as to what we should we call these params? Perhaps an ApplicationParams or ABCIParams struct with a single boolean field RequireVoteExtensions?

sergio-mena and others added 2 commits April 14, 2022 15:57
Co-authored-by: Callum Waters <cmwaters19@gmail.com>
sergio-mena and others added 3 commits April 27, 2022 17:17
Co-authored-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Thane Thomson <connect@thanethomson.com>
@sergio-mena sergio-mena moved this from In progress to Review in progress in ABCI++ May 5, 2022
ABCI++ automation moved this from Review in progress to Reviewer approved May 6, 2022
Copy link
Contributor

@josef-widder josef-widder left a comment

Choose a reason for hiding this comment

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

The changes to case (h) look great. Thanks for the clarifications.

docs/rfc/rfc-017-abci++-vote-extension-propag.md Outdated Show resolved Hide resolved
@sergio-mena sergio-mena merged commit cec0a97 into master May 9, 2022
ABCI++ automation moved this from Reviewer approved to Done May 9, 2022
@sergio-mena sergio-mena deleted the sergio/vote-extensions-rfc branch May 9, 2022 00:15
shotonoff referenced this pull request in dashpay/tenderdash Sep 7, 2022
* p2p: remove message type from channel implementation (#8452)

* build(deps): Bump github.com/creachadair/atomicfile from 0.2.5 to 0.2.6 (#8460)

Bumps [github.com/creachadair/atomicfile](https://github.com/creachadair/atomicfile) from 0.2.5 to 0.2.6.
- [Release notes](https://github.com/creachadair/atomicfile/releases)
- [Commits](https://github.com/creachadair/atomicfile/compare/v0.2.5...v0.2.6)

---
updated-dependencies:
- dependency-name: github.com/creachadair/atomicfile
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* docs: minor fixups to pbts overview (#8454)

* keymigrate: improve filtering for legacy transaction hashes (#8466)

This is a follow-up to #8352. The check for legacy evidence keys is only based
on the prefix of the key. Hashes, which are unprefixed, could easily have this
form and be misdiagnosed.

Because the conversion for evidence checks the key structure, this should not
cause corruption. The probability that a hash is a syntactically valid evidence
key is negligible.  The tool will report an error rather than storing bad data.
But this does mean that such transaction hashes could cause the migration to
stop and report an error before it is complete.

To ensure we convert all the data, refine the legacy key check to filter these
keys more precisely. Update the test cases to exercise this condition.

* Update upgrading instructions.

* RFC-018: initial research of BLS signature aggregation (#8358)

This provides an initial document for understanding the landscape of implementing a BLS signature aggregation scheme into Tendermint.

* build(deps): Bump github.com/vektra/mockery/v2 from 2.12.1 to 2.12.2 (#8474)

Bumps [github.com/vektra/mockery/v2](https://github.com/vektra/mockery) from 2.12.1 to 2.12.2.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/vektra/mockery/releases">github.com/vektra/mockery/v2's releases</a>.</em></p>
<blockquote>
<h2>v2.12.2</h2>
<h2>Changelog</h2>
<ul>
<li>ea4c438 Add deprecation notice to logs</li>
<li>735bc0c Add go-get deprecation note</li>
<li>bea853e Add missing mock</li>
<li>989253d Fix *unsafe.Pointer</li>
<li>9228ad4 Merge pull request <a href="https://github-redirect.dependabot.com/vektra/mockery/issues/457">#457</a> from LandonTClipp/readme_deprecation</li>
<li>1d92e73 Merge pull request <a href="https://github-redirect.dependabot.com/vektra/mockery/issues/460">#460</a> from grongor/fix-unsafe-pointer</li>
<li>2fcd83d Merge pull request <a href="https://github-redirect.dependabot.com/vektra/mockery/issues/462">#462</a> from LandonTClipp/deprecation</li>
<li>9f67b8a More explicit deprecation for go-get</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/vektra/mockery/commit/1d92e7320b158ed06b285e8717f15504f9374e29"><code>1d92e73</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/vektra/mockery/issues/460">#460</a> from grongor/fix-unsafe-pointer</li>
<li><a href="https://github.com/vektra/mockery/commit/2fcd83d746b7b9bf5e58f842995ecc33faa8b657"><code>2fcd83d</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/vektra/mockery/issues/462">#462</a> from LandonTClipp/deprecation</li>
<li><a href="https://github.com/vektra/mockery/commit/ea4c438a5358e48a3c4c13506882e77829005b88"><code>ea4c438</code></a> Add deprecation notice to logs</li>
<li><a href="https://github.com/vektra/mockery/commit/989253d1a4672c73dd000c3bee8b9bed91fcb067"><code>989253d</code></a> Fix *unsafe.Pointer</li>
<li><a href="https://github.com/vektra/mockery/commit/bea853e93dfb166e3749c00f2816f63f6d563028"><code>bea853e</code></a> Add missing mock</li>
<li><a href="https://github.com/vektra/mockery/commit/9f67b8afdc0b24f2894b7002743d094c5751a6e8"><code>9f67b8a</code></a> More explicit deprecation for go-get</li>
<li><a href="https://github.com/vektra/mockery/commit/9228ad4b4a7a0a2a8a1c4f515851380ebc987b70"><code>9228ad4</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/vektra/mockery/issues/457">#457</a> from LandonTClipp/readme_deprecation</li>
<li><a href="https://github.com/vektra/mockery/commit/735bc0c9f85aed76b132210e7b1ff0442041998f"><code>735bc0c</code></a> Add go-get deprecation note</li>
<li>See full diff in <a href="https://github.com/vektra/mockery/compare/v2.12.1...v2.12.2">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/vektra/mockery/v2&package-manager=go_modules&previous-version=2.12.1&new-version=2.12.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* Convert explicit zero comparison to a method. (#8475)

Fixes #8472.

I didn't see any other obvious cases of us doing this (although we do return zeroes in other places alongside errors, which is fine).

* Reintegrate docs deployment into the main TM repo (#8468)

Per https://github.com/tendermint/docs/issues/20, it is no longer necessary to
build the static documentation out of a separate repository.

This change:

- Adds an actions workflow to build and deploy the docs to GitHub Pages.
- Updates some build settings in a compatible manner.

This change does not affect the existing site deployment. To complete this
change, we will need to update the custom domain pointer and disable the
corresponding workflow in the tendermint/docs repository. Those changes can and
must be done after this is merged.

In the future should probably also move the build rule out of the Makefile and
into the workflow directly. That will also make it easier to manage caching of
build artifacts. For now, however, I've left it as-is, so that we do not break
the active workflow on tendermint/docs, which depends on it.

* test/fuzz: replace outdated reference to go-fuzz in README (#8477)

* RFC017: ABCI++ Vote Extension Propagation (#8317)

* 1st version

* Addressed (some of) @williambanfield's comments

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Sam Kleinman <garen@tychoish.com>

* Update docs/rfc/README.md

Co-authored-by: Sam Kleinman <garen@tychoish.com>

* Addressed some comments

* Addressed more comments. Improved description of Solution 3

* Work on 'definitions' section

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Callum Waters <cmwaters19@gmail.com>

* bottom

* Addressed Josef's valset-change comment. Other minor edits

* Improved wording of 'disjoint valsets' case

* Addressed TODOs: major revamp of various sections. First complete version.

* Fixed minor wording problem

* removed blank line

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Thane Thomson <connect@thanethomson.com>

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Thane Thomson <connect@thanethomson.com>

* Addressed some of Thane's comments

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Thane Thomson <connect@thanethomson.com>

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Thane Thomson <connect@thanethomson.com>

* Addressed outstanding comments

* Addressed @williambanfield's 'catch-up message' comment

* Removed TODO after confirming statesync is only run on nodes starting from scratch

* Removed TODO (after checking with Jasmina)

* Removed addressed TODO

* Addressed Josef's feedback on case (h)

* Typo

* Update docs/rfc/rfc-017-abci++-vote-extension-propag.md

Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>

* Added log line

Co-authored-by: Daniel <daniel.cason@usi.ch>
Co-authored-by: Sam Kleinman <garen@tychoish.com>
Co-authored-by: Callum Waters <cmwaters19@gmail.com>
Co-authored-by: Thane Thomson <connect@thanethomson.com>
Co-authored-by: Josef Widder <44643235+josef-widder@users.noreply.github.com>

* build(deps): Bump docker/setup-buildx-action from 1.7.0 to 2.0.0 (#8483)

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1.7.0 to 2.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/docker/setup-buildx-action/releases">docker/setup-buildx-action's releases</a>.</em></p>
<blockquote>
<h2>v2.0.0</h2>
<ul>
<li>Node 16 as default runtime by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a href="https://github-redirect.dependabot.com/docker/setup-buildx-action/issues/131">#131</a>)
<ul>
<li>This requires a minimum <a href="https://github.com/actions/runner/releases/tag/v2.285.0">Actions Runner</a> version of v2.285.0, which is by default available in GHES 3.4 or later.</li>
</ul>
</li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/docker/setup-buildx-action/compare/v1.7.0...v2.0.0">https://github.com/docker/setup-buildx-action/compare/v1.7.0...v2.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/docker/setup-buildx-action/commit/dc7b9719a96d48369863986a06765841d7ea23f6"><code>dc7b971</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/setup-buildx-action/issues/131">#131</a> from crazy-max/node16</li>
<li><a href="https://github.com/docker/setup-buildx-action/commit/f55bc08278651b656ee62b6ac783a728845412a8"><code>f55bc08</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/setup-buildx-action/issues/141">#141</a> from crazy-max/fix-test</li>
<li><a href="https://github.com/docker/setup-buildx-action/commit/aa877a9d36ddbed778ffbf41ea213fe5a457520b"><code>aa877a9</code></a> ci: fix standalone test</li>
<li><a href="https://github.com/docker/setup-buildx-action/commit/130c56f342d03a8e22596cda4ff8eeaff804eb7a"><code>130c56f</code></a> Node 16 as default runtime</li>
<li>See full diff in <a href="https://github.com/docker/setup-buildx-action/compare/v1.7.0...v2.0.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docker/setup-buildx-action&package-manager=github_actions&previous-version=1.7.0&new-version=2.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* build(deps): Bump docker/build-push-action from 2.10.0 to 3.0.0 (#8482)

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 2.10.0 to 3.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/docker/build-push-action/releases">docker/build-push-action's releases</a>.</em></p>
<blockquote>
<h2>v3.0.0</h2>
<ul>
<li>Node 16 as default runtime by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/564">#564</a>)
<ul>
<li>This requires a minimum <a href="https://github.com/actions/runner/releases/tag/v2.285.0">Actions Runner</a> version of v2.285.0, which is by default available in GHES 3.4 or later.</li>
</ul>
</li>
<li>Standalone mode support by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/601">#601</a> <a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/609">#609</a>)</li>
<li>chore: update dev dependencies and workflow by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/571">#571</a>)</li>
<li>Bump <code>@​actions/exec</code> from 1.1.0 to 1.1.1 (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/573">#573</a>)</li>
<li>Bump <code>@​actions/github</code> from 5.0.0 to 5.0.1 (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/582">#582</a>)</li>
<li>Bump minimist from 1.2.5 to 1.2.6 (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/584">#584</a>)</li>
<li>Bump semver from 7.3.5 to 7.3.7 (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/595">#595</a>)</li>
<li>Bump csv-parse from 4.16.3 to 5.0.4 (<a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/533">#533</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0">https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/docker/build-push-action/commit/e551b19e49efd4e98792db7592c17c09b89db8d8"><code>e551b19</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/564">#564</a> from crazy-max/node-16</li>
<li><a href="https://github.com/docker/build-push-action/commit/3554377aa377509838f2e53d71f7c4127b2bece4"><code>3554377</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/609">#609</a> from crazy-max/ci-fix-test</li>
<li><a href="https://github.com/docker/build-push-action/commit/a62bc1b22b6b959fa4fb8cffc6c46650e2388ee4"><code>a62bc1b</code></a> ci: fix standalone test</li>
<li><a href="https://github.com/docker/build-push-action/commit/c2085839e18b24c219aef4366ca2337979d7f194"><code>c208583</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/601">#601</a> from crazy-max/standalone-mode</li>
<li><a href="https://github.com/docker/build-push-action/commit/fcd91249e5fa3d8dd25f0a6d707cd1aa263e59d3"><code>fcd9124</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/607">#607</a> from docker/dependabot/github_actions/docker/metadata...</li>
<li><a href="https://github.com/docker/build-push-action/commit/0ebe720aed7e7e5bedf4d280fc1cca0a463b9a4e"><code>0ebe720</code></a> Bump docker/metadata-action from 3 to 4</li>
<li><a href="https://github.com/docker/build-push-action/commit/38b45804b51da93918ce9015ddf0398c77cb8cef"><code>38b4580</code></a> Standalone mode support</li>
<li><a href="https://github.com/docker/build-push-action/commit/ba317382dcde9f7deb318467fc6cd7230d8b1714"><code>ba31738</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/build-push-action/issues/533">#533</a> from docker/dependabot/npm_and_yarn/csv-parse-5.0.4</li>
<li><a href="https://github.com/docker/build-push-action/commit/43721d2346db18770b3b3a3e3450dc7c44d6db16"><code>43721d2</code></a> Update generated content</li>
<li><a href="https://github.com/docker/build-push-action/commit/5ea21bf2ba7bc46e8b4f6182a0bbb064eecab476"><code>5ea21bf</code></a> Fix csv-parse implementation since major update</li>
<li>Additional commits viewable in <a href="https://github.com/docker/build-push-action/compare/v2.10.0...v3.0.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docker/build-push-action&package-manager=github_actions&previous-version=2.10.0&new-version=3.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* build(deps): Bump docker/login-action from 1.14.1 to 2.0.0 (#8481)

Bumps [docker/login-action](https://github.com/docker/login-action) from 1.14.1 to 2.0.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/docker/login-action/releases">docker/login-action's releases</a>.</em></p>
<blockquote>
<h2>v2.0.0</h2>
<ul>
<li>Node 16 as default runtime by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a href="https://github-redirect.dependabot.com/docker/login-action/issues/161">#161</a>)
<ul>
<li>This requires a minimum <a href="https://github.com/actions/runner/releases/tag/v2.285.0">Actions Runner</a> version of v2.285.0, which is by default available in GHES 3.4 or later.</li>
</ul>
</li>
<li>chore: update dev dependencies and workflow by <a href="https://github.com/crazy-max"><code>@​crazy-max</code></a> (<a href="https://github-redirect.dependabot.com/docker/login-action/issues/170">#170</a>)</li>
<li>Bump <code>@​actions/exec</code> from 1.1.0 to 1.1.1 (<a href="https://github-redirect.dependabot.com/docker/login-action/issues/167">#167</a>)</li>
<li>Bump <code>@​actions/io</code> from 1.1.1 to 1.1.2 (<a href="https://github-redirect.dependabot.com/docker/login-action/issues/168">#168</a>)</li>
<li>Bump minimist from 1.2.5 to 1.2.6 (<a href="https://github-redirect.dependabot.com/docker/login-action/issues/176">#176</a>)</li>
<li>Bump https-proxy-agent from 5.0.0 to 5.0.1 (<a href="https://github-redirect.dependabot.com/docker/login-action/issues/182">#182</a>)</li>
</ul>
<p><strong>Full Changelog</strong>: <a href="https://github.com/docker/login-action/compare/v1.14.1...v2.0.0">https://github.com/docker/login-action/compare/v1.14.1...v2.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/docker/login-action/commit/49ed152c8eca782a232dede0303416e8f356c37b"><code>49ed152</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/login-action/issues/161">#161</a> from crazy-max/node16-runtime</li>
<li><a href="https://github.com/docker/login-action/commit/b61a9ce7bd93239c435d3a7e3d6fe56020bf38c3"><code>b61a9ce</code></a> Node 16 as default runtime</li>
<li><a href="https://github.com/docker/login-action/commit/3a136a8631bbc4ca05cc2f33d3a19059e9255bae"><code>3a136a8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/login-action/issues/182">#182</a> from docker/dependabot/npm_and_yarn/https-proxy-agent...</li>
<li><a href="https://github.com/docker/login-action/commit/b312880b6957654c92704d65c445d4db3157237f"><code>b312880</code></a> Update generated content</li>
<li><a href="https://github.com/docker/login-action/commit/795794e081a18060d5db5537d3e874e675d8d7c9"><code>795794e</code></a> Bump https-proxy-agent from 5.0.0 to 5.0.1</li>
<li><a href="https://github.com/docker/login-action/commit/1edf6180e07d2ffb423fc48a1a552855c0a1f508"><code>1edf618</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/login-action/issues/179">#179</a> from docker/dependabot/github_actions/codecov/codecov...</li>
<li><a href="https://github.com/docker/login-action/commit/8e66ad4089051ec73ac8b193deca830bd52edb83"><code>8e66ad4</code></a> Bump codecov/codecov-action from 2 to 3</li>
<li><a href="https://github.com/docker/login-action/commit/7c79b598eaa33458e78e8d0d71e0a9c217dd92af"><code>7c79b59</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/login-action/issues/176">#176</a> from docker/dependabot/npm_and_yarn/minimist-1.2.6</li>
<li><a href="https://github.com/docker/login-action/commit/24a38e0d6d99bc9b277904a244b17b7e511d994f"><code>24a38e0</code></a> Bump minimist from 1.2.5 to 1.2.6</li>
<li><a href="https://github.com/docker/login-action/commit/70e1ff84cbd75a9e03941a79f21f05f1b03a71bb"><code>70e1ff8</code></a> Merge pull request <a href="https://github-redirect.dependabot.com/docker/login-action/issues/170">#170</a> from crazy-max/eslint</li>
<li>Additional commits viewable in <a href="https://github.com/docker/login-action/compare/v1.14.1...v2.0.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=docker/login-action&package-manager=github_actions&previous-version=1.14.1&new-version=2.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* scripts/metricsgen: add the initial version of metricsgen (#8479)

This pull requests adds a new tool, metricsgen, for generating Tendermint metrics constructors from `Metrics` struct definitions. This tool aims to reduce the amount of boilerplate required to add additional metrics to Tendermint.

Its working is fairly simple, it parses the go ast, extracts field information, and uses this field information to execute a go template. 

This pull request also adds a proof-of-concept of the tool's output and working by using it to generate the [indexer metrics](https://github.com/tendermint/tendermint/pull/8479/files#diff-4b0c597b6fa05332a2f9a8e0ce079e360602942fae99dc5485f1edfe71c0a29e) using `//go:generate` directives and a simple `make` target.

The next steps for this tool are documented in https://github.com/tendermint/tendermint/issues/8485 and https://github.com/tendermint/tendermint/issues/8486, which detail using the tool to generate the `metrics.md` documentation file and using the tool to migrate away from `go-kit`.

* build(deps): Bump github.com/golangci/golangci-lint (#8490)

* RFC 016: Node Architecture (#8285)

* validate block before we persist it (#8493)

* consensus: add additional metrics for abci++ data (#8480)

This pull request adds an additional set of metrics targeted at providing more visibility into `abci++`. 

The following set of metrics are added and exposed through the `metrics` endpoint:

```
tendermint_consensus_proposal_receive_count{chain_id="test-chain-IrF74Y",status="accepted"} 34
tendermint_consensus_proposal_create_count{chain_id="test-chain-IrF74Y"} 34
tendermint_consensus_vote_extension_receive_count{chain_id="test-chain-IrF74Y",status="accepted"} 34
tendermint_consensus_round_voting_power_percent{chain_id="test-chain-IrF74Y",vote_type="precommit"} 1
tendermint_consensus_round_voting_power_percent{chain_id="test-chain-IrF74Y",vote_type="prevote"} 1
tendermint_state_consensus_param_updates{chain_id="test-chain-IrF74Y"} 0
tendermint_state_validator_set_updates{chain_id="test-chain-IrF74Y"} 0
tendermint_consensus_late_votes{chain_id="test-chain-IrF74Y",vote_type="precommit"} 16
```

This pull request also updates the `metrics.md` file to include some metrics that were previously missed. My hope is to generate the `metrics.md` file with a future version of the tool being architected in #8479

* Fixed math notation in ABCI++ app requirements (#8499)

* Fixed math notation in ABCI++ app requirements

* Update spec/abci++/abci++_app_requirements_002_draft.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

* Update spec/abci++/abci++_app_requirements_002_draft.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

* Update spec/abci++/abci++_app_requirements_002_draft.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

* Update spec/abci++/abci++_app_requirements_002_draft.md

Co-authored-by: Daniel <daniel.cason@usi.ch>

Co-authored-by: Daniel <daniel.cason@usi.ch>

* abci++: Propagate vote extensions (RFC 017) (#8433)

* Add protos for ExtendedCommit

Cherry-pick from e73f0178b72a16ee81f8e856aadf651f2c62ec6e just the
changes to the .proto files, since we have deleted the .intermediate
files.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* make proto-gen

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* BlockStore holds extended commit

Cherry-pick 8d504d4b50ec6afbdffe2df7ababbef30e15053d and fix conflicts.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Reshuffle ExtendedCommit and ExtendedCommitSig

Separate the data structures and functions from their Commit-oriented
counterparts to adhere to the current coding style.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix exit condition in blocksync

* Add note to remove TxResult proto

As Sergio pointed out in 3e31aa6f583cdc71e208ed03a82f1d804ec0de49, this
proto message can probably be removed. We should do this in a separate
PR.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Lift termination condition into for loop

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Enforce vote extension signature requirement

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Expand on comment for PeekTwoBlocks for posterity

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Isolate TODO more clearly

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* make mockery

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix comment

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Make panic output from BlockStore.SaveBlock more readable

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add helper methods to ExtendedCommitSig and ExtendedCommit

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix most tests except TestHandshake*

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix store prefix collision

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix TestBlockFetchAtHeight

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove global state from store tests

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Apply suggestions from code review

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>
Co-authored-by: Sergio Mena <sergio@informal.systems>

* blocksync: Just return error

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* make format

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Remove unused/commented-out code

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* blocksync: Change pool AddBlock function signature to return errors

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Improve legibility of switch statements

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* blocksync: Expand on extended commit requirement in AddBlock description

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* blocksync: Return error without also logging it

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* consensus: Rename short-lived local variable

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* consensus: Allocate TODO to Sergio

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* evidence/pool_test: Inline slice construction

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* state: Rename LoadBlockExtCommit to LoadBlockExtendedCommit

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* proto: Remove TODO on TxResult

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Minor format

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Reformat ExtendedCommitSig.BlockID

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Remove NewExtendedCommit constructor

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Remove NewCommit constructor

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Shorten receiver names for ExtendedCommit

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Convert ExtendedCommit.Copy to a deep clone

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Assign TODO to Sergio

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Fix legibility nits

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Improve legibility

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* store/state: Add TODO to move prefixes to common package

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Propagate validator info to PrepareProposal

In order to propagate validator voting power through to PrepareProposal,
we need to load the validator set info from the height corresponding to
the extended commit that we're passing through to PrepareProposal as the
"LocalLastCommit".

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Rename local var for clarity

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix TestMaxProposalBlockSize

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Rename local var for clarity

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove debug log

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove CommigSig.ForBlock helper

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove CommigSig.Absent helper

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove ExtendedCommitSig.ForBlock helper

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove ExtendedCommitSig.Absent helper

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* There are no extended commits below the initial height

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Fix comment grammar

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Remove JSON encoding from ExtendedCommit

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Embed CommitSig into ExtendedCommitSig instead of duplicating fields

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Rename ExtendedCommit vote_extension field to extension for consistency with domain types

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* blocksync: Panic if we peek a block without an extended commit

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Apply suggestions from code review

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* Remove Sergio from TODO

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Increase hard-coded vote extension max size to 1MB

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* state: Remove unnecessary comment

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* state: Ensure no of commit sigs equals validator set length

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* make format

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Minor legibility improvements

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Improve legibility

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Remove unused GetVotes function on VoteSet

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Refactor TestMaxProposalBlockSize to construct more realistic extended commit

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Refactor buildExtendedCommitInfo to resemble buildLastCommitInfo

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Apply suggestions from code review

Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* abci++: Disable VerifyVoteExtension call on nil precommits (#8491)

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* types: Require vote extensions on non-nil precommits and not otherwise

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Disable lint

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Increase timeout for TestReactorVotingPowerChange to counter flakiness

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Only sign and verify vote extensions in non-nil precommits

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Revert "Disable lint"

This reverts commit 6fffbf94028a1ae78289abbad1b602c251f6f652.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Add missing non-nil check uncovered non-deterministically in TestHandshakeReplayAll

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Expand error message for accuracy

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Only call ExtendVote when we make non-nil precommits

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Revert "Increase timeout for TestReactorVotingPowerChange to counter flakiness"

This reverts commit af514939dbdf72ce275ef290a34c390a5e982563.

Signed-off-by: Thane Thomson <connect@thanethomson.com>

* Refactor ValidateBasic for ExtendedCommitSig for legibility

Signed-off-by: Thane Thomson <connect@thanethomson.com>

Co-authored-by: Sergio Mena <sergio@informal.systems>
Co-authored-by: M. J. Fromberger <fromberger@interchain.io>

* build(deps): Bump github.com/creachadair/tomledit from 0.0.19 to 0.0.22 (#8504)

Bumps [github.com/creachadair/tomledit](https://github.com/creachadair/tomledit) from 0.0.19 to 0.0.22.
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/creachadair/tomledit/commit/f7ad71d86c568c2a1601de67a60b841825e31bc2"><code>f7ad71d</code></a> cli: accept @ prefixed value arguments for strings</li>
<li><a href="https://github.com/creachadair/tomledit/commit/2cb36fdb8155dd283f437a556920f50ee843b72c"><code>2cb36fd</code></a> Release v0.0.21</li>
<li><a href="https://github.com/creachadair/tomledit/commit/f56c9925a3e65443f5cf6d9ddf5bff066945946a"><code>f56c992</code></a> cli: move subcommands to a separate file</li>
<li><a href="https://github.com/creachadair/tomledit/commit/0271385b7afc8d4f3f2d77197923a5dd7d254422"><code>0271385</code></a> cli: allow list arguments as prefix filters</li>
<li><a href="https://github.com/creachadair/tomledit/commit/6e4454ec9d0cfad8d62963614e997c3bbc5a03e6"><code>6e4454e</code></a> cli: add subcommand &quot;add&quot;</li>
<li><a href="https://github.com/creachadair/tomledit/commit/d59f49c18bb2041e03086395c15aeb7895481a9d"><code>d59f49c</code></a> Add a basic command-line tool to read and set keys.</li>
<li><a href="https://github.com/creachadair/tomledit/commit/9f9039fa9b9e231e3218b10caef175ced086f068"><code>9f9039f</code></a> Add a test for top-level comment blocking.</li>
<li>See full diff in <a href="https://github.com/creachadair/tomledit/compare/v0.0.19...v0.0.22">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=github.com/creachadair/tomledit&package-manager=go_modules&previous-version=0.0.19&new-version=0.0.22)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* scripts/metricsgen: add metricsdiff tool (#8501)

Adds the `metricsdiff` tool. The metricsdiff tool parses two files containing prometheus metrics and calculates the sets of metrics that were added or removed between the two files or have changed labels. This tool is added to ensure that the metrics been generated for `metricsgen` match the bespoke metrics.

The following metrics were found to be different between master and the the tool was built with. The output makes sense given that the metrics branch does _not_ contain https://github.com/tendermint/tendermint/pull/8480. 

```
./metricsdiff metrics_master metrics_generated
Removes:
--- tendermint_consensus_proposal_create_count
--- tendermint_consensus_vote_extension_receive_count
--- tendermint_consensus_round_voting_power_percent
--- tendermint_consensus_proposal_receive_count
```

* rpc: make block.height visible to event subscription (#8508)

Although we index block.height for blocks in the KV indexer, this reserved
attribute was not previously exposed to the event subscription API. Despite
being advertised in the OpenAPI spec, neither the old (websocket) nor new
(events) query interface could see it.  This change exposes block.height to the
/events API.

In addition: Remove a non-public constant from types (finalize_block). This
value is used only as an internal tag by the indexer, and should not be exposed
to users of the public interface. (We could probably drop it entirely, as it
was previously a disambiguator for BeginBlock vs. EndBlock events, but keeping
a tag here simplifies the cleanup).

* metrics: transition all metrics to using metricsgen generated constructors.  (#8488)

## What does this change do?

This pull request completes the change to the `metricsgen` metrics. It adds `go generate` directives to all of the files containing the `Metrics` structs.

Using the outputs of `metricsdiff` between these generated metrics and `master`, we can see that there is not a diff between the two sets of metrics when run locally.
```
[william@sidewinder] tendermint[wb/metrics-gen-transition]:. ◆ ./scripts/metricsgen/metricsdiff/metricsdiff metrics_master metrics_generated
[william@sidewinder] tendermint[wb/metrics-gen-transition]:. ◆
```

This change also adds parsing for a `metrics:` key in a field comment. If a comment line begins with `//metrics:` the rest of the line is interpreted to be the metric help text. Additionally, a bug where lists of labels were not properly quoted in the `metricsgen` rendered output was fixed.

* docs: update event subscription documentation for new API (#8509)

Update the static documentation about event subscription to include the new
/events API, and to add more details about how queries work. Mention that the
streaming API is deprecated.

* update protos (#8515)

* Consolidate Dependabot checks for GitHub Actions deps. (#8518)

We currently have Dependabot check for updates to GitHub actions once a week on
master, but daily on the backport branches. This is unnecessarily noisy.

As a first step to reducing this noise, consolidate all the settings onto the
default branch (master).

* build(deps): Bump golangci/golangci-lint-action from 3.1.0 to 3.2.0 (#8525)

Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3.1.0 to 3.2.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/golangci/golangci-lint-action/releases">golangci/golangci-lint-action's releases</a>.</em></p>
<blockquote>
<h2>v3.2.0</h2>
<h2>What's Changed</h2>
<ul>
<li>Expire cache periodically to avoid unbounded size by <a href="https://github.com/ezimanyi"><code>@​ezimanyi</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/466">golangci/golangci-lint-action#466</a></li>
</ul>
<h3>misc</h3>
<ul>
<li>docs: update version to v3 by <a href="https://github.com/zaunist"><code>@​zaunist</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/450">golangci/golangci-lint-action#450</a></li>
<li>modify examples using setup-go by <a href="https://github.com/3100"><code>@​3100</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/451">golangci/golangci-lint-action#451</a></li>
</ul>
<h3>dependencies</h3>
<ul>
<li>build(deps): bump actions/checkout from 2 to 3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/409">golangci/golangci-lint-action#409</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.12.1 to 5.13.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/410">golangci/golangci-lint-action#410</a></li>
<li>build(deps-dev): bump eslint-config-prettier from 8.4.0 to 8.5.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/412">golangci/golangci-lint-action#412</a></li>
<li>build(deps-dev): bump typescript from 4.5.5 to 4.6.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/413">golangci/golangci-lint-action#413</a></li>
<li>build(deps-dev): bump eslint from 8.10.0 to 8.11.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/418">golangci/golangci-lint-action#418</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.14.0 to 5.15.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/421">golangci/golangci-lint-action#421</a></li>
<li>build(deps-dev): bump prettier from 2.5.1 to 2.6.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/422">golangci/golangci-lint-action#422</a></li>
<li>build(deps): bump <code>@​actions/cache</code> from 1.0.9 to 1.0.10 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/423">golangci/golangci-lint-action#423</a></li>
<li>build(deps): bump <code>@​actions/tool-cache</code> from 1.7.1 to 1.7.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/426">golangci/golangci-lint-action#426</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 5.14.0 to 5.15.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/425">golangci/golangci-lint-action#425</a></li>
<li>build(deps): bump <code>@​actions/exec</code> from 1.1.0 to 1.1.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/424">golangci/golangci-lint-action#424</a></li>
<li>build(deps): bump minimist from 1.2.5 to 1.2.6 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/427">golangci/golangci-lint-action#427</a></li>
<li>build(deps-dev): bump prettier from 2.6.0 to 2.6.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/428">golangci/golangci-lint-action#428</a></li>
<li>build(deps-dev): bump typescript from 4.6.2 to 4.6.3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/429">golangci/golangci-lint-action#429</a></li>
<li>build(deps): bump <code>@​actions/cache</code> from 1.0.10 to 2.0.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/432">golangci/golangci-lint-action#432</a></li>
<li>build(deps-dev): bump prettier from 2.6.1 to 2.6.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/436">golangci/golangci-lint-action#436</a></li>
<li>build(deps): bump <code>@​actions/github</code> from 5.0.0 to 5.0.1 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/437">golangci/golangci-lint-action#437</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.16.0 to 5.17.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/438">golangci/golangci-lint-action#438</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 5.16.0 to 5.18.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/441">golangci/golangci-lint-action#441</a></li>
<li>build(deps-dev): bump eslint-plugin-import from 2.25.4 to 2.26.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/444">golangci/golangci-lint-action#444</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.17.0 to 5.18.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/445">golangci/golangci-lint-action#445</a></li>
<li>build(deps-dev): bump eslint from 8.12.0 to 8.13.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/446">golangci/golangci-lint-action#446</a></li>
<li>build(deps): bump actions/setup-go from 2 to 3 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/443">golangci/golangci-lint-action#443</a></li>
<li>build(deps-dev): bump <code>@​vercel/ncc</code> from 0.33.3 to 0.33.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/452">golangci/golangci-lint-action#452</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 5.18.0 to 5.19.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/453">golangci/golangci-lint-action#453</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.18.0 to 5.19.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/454">golangci/golangci-lint-action#454</a></li>
<li>build(deps): bump <code>@​actions/cache</code> from 2.0.0 to 2.0.2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/447">golangci/golangci-lint-action#447</a></li>
<li>build(deps-dev): bump eslint from 8.13.0 to 8.14.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/456">golangci/golangci-lint-action#456</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.19.0 to 5.20.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/455">golangci/golangci-lint-action#455</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 5.19.0 to 5.20.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/457">golangci/golangci-lint-action#457</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 5.20.0 to 5.21.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/460">golangci/golangci-lint-action#460</a></li>
<li>build(deps-dev): bump typescript from 4.6.3 to 4.6.4 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/461">golangci/golangci-lint-action#461</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.20.0 to 5.22.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/464">golangci/golangci-lint-action#464</a></li>
<li>build(deps): bump github/codeql-action from 1 to 2 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/459">golangci/golangci-lint-action#459</a></li>
<li>build(deps-dev): bump eslint from 8.14.0 to 8.15.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/467">golangci/golangci-lint-action#467</a></li>
<li>build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> from 5.21.0 to 5.22.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/469">golangci/golangci-lint-action#469</a></li>
<li>build(deps): bump <code>@​actions/core</code> from 1.6.0 to 1.8.0 by <a href="https://github.com/dependabot"><code>@​dependabot</code></a> in <a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/pull/468">golangci/golangci-lint-action#468</a></li>
</ul>
<h2>New Contributors</h2>

</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/537aa1903e5d359d0b27dbc19ddd22c5087f3fbc"><code>537aa19</code></a> Expire cache periodically to avoid unbounded size (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/466">#466</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/f70e52dcc9a3908ab1421560bc372a0baf6c035f"><code>f70e52d</code></a> build(deps): bump <code>@​actions/core</code> from 1.6.0 to 1.8.0 (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/468">#468</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/a304692ecbc77504d0245255bea26af807b8a497"><code>a304692</code></a> build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/469">#469</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/eeca7c5026b9cae185dd3682f3ea5699ec53cb48"><code>eeca7c5</code></a> build(deps-dev): bump eslint from 8.14.0 to 8.15.0 (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/467">#467</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/dfbcd2aee16cd3d1d30d5906bc7ed1790f04ceb2"><code>dfbcd2a</code></a> build(deps): bump github/codeql-action from 1 to 2 (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/459">#459</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/4421331437269ff7b8a61397e7edaac70dea2051"><code>4421331</code></a> build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.20.0 to 5.22.0 (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/464">#464</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/5e6c1bb9e23a92cc4d15b79e2212c83776602712"><code>5e6c1bb</code></a> build(deps-dev): bump typescript from 4.6.3 to 4.6.4 (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/461">#461</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/44eba43bae2cbec2522d36382ad58e0ac0fd14f5"><code>44eba43</code></a> build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/460">#460</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/358a5e374f3007ce0d0093f1c46648800a329409"><code>358a5e3</code></a> build(deps-dev): bump <code>@​typescript-eslint/eslint-plugin</code> (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/457">#457</a>)</li>
<li><a href="https://github.com/golangci/golangci-lint-action/commit/b9c65a53a16f61cc19431ad477d73a9ebd7d89fb"><code>b9c65a5</code></a> build(deps-dev): bump <code>@​typescript-eslint/parser</code> from 5.19.0 to 5.20.0 (<a href="https://github-redirect.dependabot.com/golangci/golangci-lint-action/issues/455">#455</a>)</li>
<li>Additional commits viewable in <a href="https://github.com/golangci/golangci-lint-action/compare/v3.1.0...v3.2.0">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=golangci/golangci-lint-action&package-manager=github_actions&previous-version=3.1.0&new-version=3.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)


</details>

* Fix protobuf generated code. (#8545)

* Revert "update protos (#8515)"

This reverts commit f094fd204a90921e7b6aac633520e262f964d8aa.

It appears that #8515 may have been generated with an out-of-date version of
either buf or the gogo plugin. using the latest versions (buf 1.4.0 and gogo
1.3.2) reverts those changes.

* Add a script to re-generate protos with the latest tools.

This script is just a wrapper for the Make rule, but it runs the build inside a
container with the latest versions of buf and gogo installed. This reduces the
chance that an out-of-date ambient installation on a developer machine will get
us outdated output.

* chore: update generated mocks (#8546)

* build: add CI check that generated files are up-to-date (#8521)

Add an actions workflow that verifies that generated files are up-to-date
during a pull request. If not, give the reader instructions about what to do to
update the PR.

Checks are included for protobuf and mockery.

* build(deps): Bump github.com/prometheus/client_golang (#8540)

Bumps [github.com/prometheus/client_golang](https://github.com/prometheus/client_golang) from 1.12.1 to 1.12.2.
- [Release notes](https://github.com/prometheus/client_golang/releases)
- [Changelog](https://github.com/prometheus/client_golang/blob/v1.12.2/CHANGELOG.md)
- [Commits](https://github.com/prometheus/client_golang/compare/v1.12.1...v1.12.2)

---
updated-dependencies:
- dependency-name: github.com/prometheus/client_golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

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: M. J. Fromberger <fromberger@interchain.io>

* mempool: do not continue checking transactions if context was cacneled (#8549)

* Fix typo (#8550)

* build(deps): Bump github.com/prometheus/common from 0.32.1 to 0.34.0 (#8557)

Bumps [github.com/prometheus/common](https://github.com/prometheus/common) from 0.32.1 to 0.34.0.
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a href="https://github.com/prometheus/common/releases">github.com/prometheus/common's releases</a>.</em></p>
<blockquote>
<h2>v0.34.0</h2>
<ul>
<li>[ENHANCEMENT] Enable selecting minimum TLS version. <a href="https://github-redirect.dependabot.com/prometheus/common/issues/375">#375</a></li>
</ul>
<h2>v0.33.0</h2>
<ul>
<li>[ENHANCEMENT] Make HTTP2 User Visible <a href="https://github-re…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Development

Successfully merging this pull request may close these issues.

None yet

8 participants