You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Apr 13, 2026. It is now read-only.
Copy file name to clipboardExpand all lines: docs/build/abci/03-vote-extensions.md
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,10 +8,10 @@ defined in ABCI++.
8
8
## Extend Vote
9
9
10
10
ABCI 2.0 (colloquially called ABCI++) allows an application to extend a pre-commit vote with arbitrary data. This process does NOT have to be deterministic, and the data returned can be unique to the
11
-
validator process. The Cosmos SDK defines [`baseapp.ExtendVoteHandler`](https://github.com/cosmos/cosmos-sdk/blob/v0.53.0/types/abci.go#L32):
11
+
validator process. The Cosmos SDK defines [`sdk.ExtendVoteHandler`](https://github.com/cosmos/cosmos-sdk/blob/v0.53.0/types/abci.go#L32):
An application can set this handler in `app.go` via the `baseapp.SetExtendVoteHandler`
@@ -38,7 +38,7 @@ other validators when validating their pre-commits. For a given vote extension,
38
38
this process MUST be deterministic. The Cosmos SDK defines [`sdk.VerifyVoteExtensionHandler`](https://github.com/cosmos/cosmos-sdk/blob/v0.50.1/types/abci.go#L29-L31):
39
39
40
40
```go
41
-
type VerifyVoteExtensionHandler func(Context, *abci.VerifyVoteExtensionRequest) (*abci.VerifyVoteExtensionResponse, error)
41
+
type VerifyVoteExtensionHandler func(Context, *abci.RequestVerifyVoteExtension) (*abci.ResponseVerifyVoteExtension, error)
42
42
```
43
43
44
44
An application can set this handler in `app.go` via the `baseapp.SetVerifyVoteExtensionHandler`
@@ -49,7 +49,7 @@ validators will share the same view of what vote extensions they verify dependin
49
49
on how votes are propagated. See [here](https://github.com/cometbft/cometbft/blob/v0.38.0-rc1/spec/abci/abci++_methods.md#verifyvoteextension)
50
50
for more details.
51
51
52
-
Additionally, please keep in mind that performance can be degraded if vote extensions are too big (https://docs.cometbft.com/v0.38/qa/cometbft-qa-38#vote-extensions-testbed), so we highly recommend a size validation in `VerifyVoteExtensions`.
52
+
Additionally, please keep in mind that performance can be degraded if vote extensions are too big (https://docs.cometbft.com/v0.38/qa/cometbft-qa-38#vote-extensions-testbed), so we highly recommend a size validation in `ValidateVoteExtensions`.
53
53
54
54
55
55
## Vote Extension Propagation
@@ -78,7 +78,7 @@ will be available to the application during the subsequent `FinalizeBlock` call.
78
78
An example of how a pre-FinalizeBlock hook could look like is shown below:
`CheckTxHandler` allows users to extend the logic of `CheckTx`. `CheckTxHandler` is called by passing context and the transaction bytes received through ABCI. It is required that the handler returns deterministic results given the same transaction bytes.
24
-
25
-
:::note
26
-
we return the raw decoded transaction here to avoid decoding it twice.
27
-
:::
23
+
`CheckTxHandler` allows applications to extend the logic of `CheckTx`. It is invoked with the ABCI request and a `RunTx` function that executes the standard `CheckTx` pipeline (ante handlers, gas accounting and mempool interaction). The implementation of `CheckTxHandler` MUST be deterministic for a given `RequestCheckTx`.
Setting a custom `CheckTxHandler` is optional. It can be done from your app.go file:
29
+
The provided `RunTx` function does not override ante handlers and does not allow changing the execution mode; it simply runs the transaction through the normal `CheckTx` path and returns the result that can be used to construct a `ResponseCheckTx`.
30
+
31
+
Setting a custom `CheckTxHandler` is optional. It can be done from your `app.go` file by setting the handler on `BaseApp`:
When `RequestCheckTx.Type` is `abci.CheckTxType_New`, the transaction is evaluated for admission into the mempool; when it is `abci.CheckTxType_Recheck`, the existing mempool transaction is re-evaluated and may be removed if it no longer passes validation. Successful `CheckTx` executions update an internal CheckTx state, which is reset when a block is committed.
Copy file name to clipboardExpand all lines: docs/build/architecture/adr-006-secret-store-replacement.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ This is not desirable for a number of reasons. Perhaps the biggest reason is ins
15
15
16
16
All modern desktop computers OS (Ubuntu, Debian, MacOS, Windows) provide a built-in secret store that is designed to allow applications to store information that is isolated from all other applications and requires passphrase entry to access the data.
17
17
18
-
We are seeking solution that provides a common abstraction layer to the many different backends and reasonable fallback for minimal platforms that don’t provide a native secret store.
18
+
We are seeking a solution that provides a common abstraction layer to the many different backends and reasonable fallback for minimal platforms that don’t provide a native secret store.
Copy file name to clipboardExpand all lines: docs/build/architecture/adr-030-authz-module.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -25,7 +25,7 @@ The concrete use cases which motivated this module include:
25
25
delegated stake
26
26
* "sub-keys" functionality, as originally proposed in [\#4480](https://github.com/cosmos/cosmos-sdk/issues/4480) which
27
27
is a term used to describe the functionality provided by this module together with
28
-
the `fee_grant` module from [ADR 029](./adr-029-fee-grant-module.md) and the [group module](https://github.com/cosmos/cosmos-sdk/tree/main/x/group).
28
+
the `fee_grant` module from [ADR 029](./adr-029-fee-grant-module.md) and the [group module](https://github.com/cosmos/cosmos-sdk/tree/main/contrib/x/group).
29
29
30
30
The "sub-keys" functionality roughly refers to the ability for one account to grant some subset of its capabilities to
31
31
other accounts with possibly less robust, but easier to use security measures. For instance, a master account representing
Copy file name to clipboardExpand all lines: docs/build/architecture/adr-038-state-listening.md
+19-19Lines changed: 19 additions & 19 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,7 +7,7 @@
7
7
* 10/14/2022:
8
8
* Add `ListenCommit`, flatten the state writes in a block to a single batch.
9
9
* Remove listeners from cache stores, should only listen to `rootmulti.Store`.
10
-
* Remove `HaltAppOnDeliveryError()`, the errors are propagated by default, the implementations should return nil if they don't want to propagate errors.
10
+
* Remove `HaltAppOnDeliveryError()`, the errors are propagated by default, the implementations should return nil if don't want to propagate errors.
11
11
* 26/05/2023: Update with ABCI 2.0
12
12
13
13
## Status
@@ -20,7 +20,7 @@ This ADR defines a set of changes to enable listening to state changes of indivi
20
20
21
21
## Context
22
22
23
-
Currently, KVStore data can be remotely accessed through [Queries](https://docs.cosmos.network/main/build/building-modules/messages-and-queries#queries)
23
+
Currently, KVStore data can be remotely accessed through [Queries](https://github.com/cosmos/cosmos-sdk/blob/master/docs/building-modules/messages-and-queries.md#queries)
24
24
which proceed either through Tendermint and the ABCI, or through the gRPC server.
25
25
In addition to these request/response queries, it would be beneficial to have a means of listening to state changes as they occur in real time.
26
26
@@ -40,7 +40,7 @@ type MemoryListener struct {
40
40
stateCache []StoreKVPair
41
41
}
42
42
43
-
// NewMemoryListener creates a listener that accumulates the state writes in memory.
43
+
// NewMemoryListener creates a listener that accumulate the state writes in memory.
44
44
funcNewMemoryListener() *MemoryListener {
45
45
return &MemoryListener{}
46
46
}
@@ -114,7 +114,7 @@ func (s *Store) Delete(key []byte) {
114
114
115
115
### MultiStore interface updates
116
116
117
-
We will update the `CommitMultiStore` interface to allow us to wrap a `MemoryListener` to a specific `KVStore`.
117
+
We will update the `CommitMultiStore` interface to allow us to wrap a `Memorylistener` to a specific `KVStore`.
118
118
Note that the `MemoryListener` will be attached internally by the concrete `rootmulti` implementation.
119
119
120
120
```go
@@ -224,9 +224,9 @@ so that the service can group the state changes with the ABCI requests.
224
224
// ABCIListener is the interface that we're exposing as a streaming service.
225
225
typeABCIListenerinterface {
226
226
// ListenFinalizeBlock updates the streaming service with the latest FinalizeBlock messages
227
-
ListenFinalizeBlock(ctx context.Context, req abci.FinalizeBlockRequest, res abci.FinalizeBlockResponse) error
228
-
// ListenCommit updates the streaming service with the latest Commit messages and state changes
229
-
ListenCommit(ctx context.Context, res abci.CommitResponse, changeSet []*StoreKVPair) error
227
+
ListenFinalizeBlock(ctx context.Context, req abci.RequestFinalizeBlock, res abci.ResponseFinalizeBlock) error
228
+
// ListenCommit updates the steaming service with the latest Commit messages and state changes
229
+
ListenCommit(ctx context.Context, res abci.ResponseCommit, changeSet []*StoreKVPair) error
230
230
}
231
231
```
232
232
@@ -267,16 +267,16 @@ We will modify the `FinalizeBlock` and `Commit` methods to pass ABCI requests an
267
267
to any streaming service hooks registered with the `BaseApp`.
We propose a `RegisterStreamingPlugin` function for the App to register `NewStreamingPlugin`s with the App's BaseApp.
531
531
Streaming plugins can be of `Any` type; therefore, the function takes in an interface vs a concrete type.
532
-
For example, we could have plugins of `ABCIListener`, `WasmListener` or `IBCListener`. Note that `RegisterStreamingPlugin` function
532
+
For example, we could have plugins of `ABCIListener`, `WasmListener` or `IBCListener`. Note that `RegisterStreamingPluing` function
533
533
is helper function and not a requirement. Plugin registration can easily be moved from the App to the BaseApp directly.
534
534
535
535
```go
@@ -720,5 +720,5 @@ These changes will provide a means of subscribing to KVStore state changes in re
720
720
721
721
### Neutral
722
722
723
-
* Introduces additional—but optional—complexity to configuring and running a cosmos application
723
+
* Introduces additional- but optional- complexity to configuring and running a cosmos application
724
724
* If an application developer opts to use these features to expose data, they need to be aware of the ramifications/risks of that data exposure as it pertains to the specifics of their application
0 commit comments