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
-[evidence][\#5361](https://github.com/tendermint/tendermint/pull/5361) Add LightClientAttackEvidence and change evidence interface (@cmwaters)
53
53
-[params][\#5319](https://github.com/tendermint/tendermint/issues/5319) Remove `ProofofTrialPeriod` from evidence params (@marbar3778)
54
-
-[crypto/secp256k1][\#5280](https://github.com/tendermint/tendermint/issues/5280)`secp256k1` has been removed from the Tendermint repo. (@marbar3778)
55
54
-[light][\#5347](https://github.com/tendermint/tendermint/issues/5347)`NewClient`, `NewHTTPClient`, `VerifyHeader` and `VerifyLightBlockAtHeight` now accept `context.Context` as 1st param (@melekes)
56
55
-[state][\#5348](https://github.com/tendermint/tendermint/issues/5348) Define an Interface for the state store. (@marbar3778)
if you want to learn more about State Sync, or if you'd like your application to use it.
19
+
(If you don't want to support State Sync in your application, you can just implement these new
20
+
ABCI methods as no-ops, leaving them empty.)
21
+
22
+
*`KV.Pair` has been replaced with `abci.EventAttribute`. The `EventAttribute.Index` field
23
23
allows ABCI applications to dictate which events should be indexed.
24
24
25
-
* The blockchain can now start from an arbitrary initial height,
25
+
* The blockchain can now start from an arbitrary initial height,
26
26
provided to the application via `RequestInitChain.InitialHeight`.
27
27
28
-
* ABCI evidence type is now an enum with two recognized types of evidence:
29
-
`DUPLICATE_VOTE` and `LIGHT_CLIENT_ATTACK`.
30
-
Applications should be able to handle these evidence types
28
+
* ABCI evidence type is now an enum with two recognized types of evidence:
29
+
`DUPLICATE_VOTE` and `LIGHT_CLIENT_ATTACK`.
30
+
Applications should be able to handle these evidence types
31
31
(i.e., through slashing or other accountability measures).
32
32
33
-
* The [`PublicKey` type](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/crypto/keys.proto#L13-L15)
34
-
(used in ABCI as part of `ValidatorUpdate`) now uses a `oneof` protobuf type.
35
-
Note that since Tendermint only supports ed25519 validator keys, there's only one
33
+
* The [`PublicKey` type](https://github.com/tendermint/tendermint/blob/master/proto/tendermint/crypto/keys.proto#L13-L15)
34
+
(used in ABCI as part of `ValidatorUpdate`) now uses a `oneof` protobuf type.
35
+
Note that since Tendermint only supports ed25519 validator keys, there's only one
36
36
option in the `oneof`. For more, see "Protocol Buffers," below.
37
37
38
-
* The field `Proof`, on the ABCI type `ResponseQuery`, is now named `ProofOps`.
39
-
For more, see "Crypto," below.
38
+
* The field `Proof`, on the ABCI type `ResponseQuery`, is now named `ProofOps`.
39
+
For more, see "Crypto," below.
40
40
41
41
### P2P Protocol
42
42
43
43
The default codec is now proto3, not amino. The schema files can be found in the `/proto`
44
-
directory. For more, see "Protobuf," below.
44
+
directory. For more, see "Protobuf," below.
45
45
46
46
### Blockchain Protocol
47
47
48
-
*`Header#LastResultsHash` previously was the root hash of a Merkle tree built from `ResponseDeliverTx(Code, Data)` responses.
48
+
*`Header#LastResultsHash` previously was the root hash of a Merkle tree built from `ResponseDeliverTx(Code, Data)` responses.
49
49
As of 0.34,`Header#LastResultsHash` is now the root hash of a Merkle tree built from:
50
50
*`BeginBlock#Events`
51
51
* Root hash of a Merkle tree built from `ResponseDeliverTx(Code, Data,
52
52
GasWanted, GasUsed, Events)` responses
53
53
*`BeginBlock#Events`
54
54
55
55
* Merkle hashes of empty trees previously returned nothing, but now return the hash of an empty input,
56
-
to conform with [RFC-6962](https://tools.ietf.org/html/rfc6962).
56
+
to conform with [RFC-6962](https://tools.ietf.org/html/rfc6962).
57
57
This mainly affects `Header#DataHash`, `Header#LastResultsHash`, and
58
58
`Header#EvidenceHash`, which are often empty. Non-empty hashes can also be affected, e.g. if their
59
59
inputs depend on other (empty) Merkle hashes, giving different results.
60
60
61
61
### Transaction Indexing
62
62
63
-
Tendermint now relies on the application to tell it which transactions to index. This means that
64
-
in the `config.toml`, generated by Tendermint, there is no longer a way to specify which
63
+
Tendermint now relies on the application to tell it which transactions to index. This means that
64
+
in the `config.toml`, generated by Tendermint, there is no longer a way to specify which
65
65
transactions to index. `tx.height` & `tx.hash` will always be indexed when using the `kv` indexer.
66
66
67
-
Applications must now choose to either a) enable indexing for all transactions, or
67
+
Applications must now choose to either a) enable indexing for all transactions, or
68
68
b) allow node operators to decide which transactions to index.
69
-
Applications can notify Tendermint to index a specific transaction by setting
69
+
Applications can notify Tendermint to index a specific transaction by setting
70
70
`Index: bool` to `true` in the Event Attribute:
71
71
72
72
```go
@@ -82,19 +82,19 @@ Applications can notify Tendermint to index a specific transaction by setting
82
82
83
83
### Protocol Buffers
84
84
85
-
Tendermint 0.34 replaces Amino with Protocol Buffers for encoding.
86
-
This migration is extensive and results in a number of changes, however,
85
+
Tendermint 0.34 replaces Amino with Protocol Buffers for encoding.
86
+
This migration is extensive and results in a number of changes, however,
87
87
Tendermint only uses the types generated from Protocol Buffers for disk and
88
-
wire serialization.
88
+
wire serialization.
89
89
**This means that these changes should not affect you as a Tendermint user.**
90
90
91
91
However, Tendermint users and contributors may note the following changes:
92
92
93
-
* Directory layout changes: All proto files have been moved under one directory, `/proto`.
94
-
This is in line with the recommended file layout by [Buf](https://buf.build).
93
+
* Directory layout changes: All proto files have been moved under one directory, `/proto`.
94
+
This is in line with the recommended file layout by [Buf](https://buf.build).
95
95
For more, see the [Buf documentation](https://buf.build/docs/lint-checkers#file_layout).
96
-
* ABCI Changes: As noted in the "ABCI Changes" section above, the `PublicKey` type now uses
97
-
a `oneof` type.
96
+
* ABCI Changes: As noted in the "ABCI Changes" section above, the `PublicKey` type now uses
97
+
a `oneof` type.
98
98
99
99
For more on the Protobuf changes, please see our [blog post on this migration](https://medium.com/tendermint/tendermint-0-34-protocol-buffers-and-you-8c40558939ae).
100
100
@@ -114,30 +114,27 @@ Tendermint 0.34 includes new and updated consensus parameters.
114
114
115
115
#### Keys
116
116
117
-
* Keys no longer include a type prefix. For example, ed25519 pubkeys have been renamed from
118
-
`PubKeyEd25519` to `PubKey`. This reduces stutter (e.g., `ed25519.PubKey`).
117
+
* Keys no longer include a type prefix. For example, ed25519 pubkeys have been renamed from
118
+
`PubKeyEd25519` to `PubKey`. This reduces stutter (e.g., `ed25519.PubKey`).
119
119
* Keys are now byte slices (`[]byte`) instead of byte arrays (`[<size>]byte`).
120
-
* The multisig functionality that was previously in Tendermint now has
121
-
a new home within the Cosmos SDK:
120
+
* The multisig functionality that was previously in Tendermint now has
* Similarly, secp256k1 has been removed from the Tendermint repo.
124
-
There is still [a secp256k1 implementation in the Cosmos SDK](https://github.com/cosmos/cosmos-sdk/tree/443e0c1f89bd3730a731aea30453bd732f7efa35/crypto/keys/secp256k1),
125
-
and we recommend you use that package for all your secp256k1 needs.
126
123
127
124
#### `merkle` Package
128
125
129
126
*`SimpleHashFromMap()` and `SimpleProofsFromMap()` were removed.
130
-
* The prefix `Simple` has been removed. (For example, `SimpleProof` is now called `Proof`.)
131
-
* All protobuf messages have been moved to the `/proto` directory.
132
-
* The protobuf message `Proof` that contained multiple ProofOp's has been renamed to `ProofOps`.
133
-
As noted above, this affects the ABCI type `ResponseQuery`:
127
+
* The prefix `Simple` has been removed. (For example, `SimpleProof` is now called `Proof`.)
128
+
* All protobuf messages have been moved to the `/proto` directory.
129
+
* The protobuf message `Proof` that contained multiple ProofOp's has been renamed to `ProofOps`.
130
+
As noted above, this affects the ABCI type `ResponseQuery`:
134
131
The field that was named Proof is now named `ProofOps`.
135
132
*`HashFromByteSlices` and `ProofsFromByteSlices` now return a hash for empty inputs, to conform with
0 commit comments