tendermint/CHANGELOG_PENDING.md

3.8 KiB

Pending

BREAKING CHANGES:

  • CLI/RPC/Config

    • [config] #2169 Replace MaxNumPeers with MaxNumInboundPeers and MaxNumOutboundPeers
    • [config] #2300 Reduce default mempool size from 100k to 5k, until ABCI rechecking is implemented.
    • [rpc] #1815 /commit returns a signed_header field instead of everything being top-level
  • Apps

    • [abci] Added address of the original proposer of the block to Header
    • [abci] Change ABCI Header to match Tendermint exactly
    • [abci] #2159 Update use of Validator (see ADR-018):
      • Remove PubKey from Validator (so it's just Address and Power)
      • Introduce ValidatorUpdate (with just PubKey and Power)
      • InitChain and EndBlock use ValidatorUpdate
      • Update field names and types in BeginBlock
    • [state] #1815 Validator set changes are now delayed by one block
      • updates returned in ResponseEndBlock for block H will be included in RequestBeginBlock for block H+2
  • Go API

    • [lite] #1815 Complete refactor of the package
    • [node] #2212 NewNode now accepts a *p2p.NodeKey
    • [libs/common] #2199 Remove Fmt, in favor of fmt.Sprintf
    • [libs/common] SplitAndTrim was deleted
    • [libs/clist] Panics if list extends beyond MaxLength
    • [crypto] #2205 Rename AminoRoute variables to no longer be prefixed by signature type.
  • Blockchain Protocol

    • [state] #1815 Validator set changes are now delayed by one block (!)
      • Add NextValidatorSet to State, changes on-disk representation of state
    • [state] #2184 Enforce ConsensusParams.BlockSize.MaxBytes (See ADR-020).
      • Remove ConsensusParams.BlockSize.MaxTxs
      • Introduce maximum sizes for all components of a block, including ChainID
    • [types] Updates to the block Header:
      • #1815 NextValidatorsHash - hash of the validator set for the next block, so the current validators actually sign over the hash for the new validators
      • #2106 ProposerAddress - address of the block's original proposer
    • [consensus] #2203 Implement BFT time
      • Timestamp in block must be monotonic and equal the median of timestamps in block's LastCommit
    • [crypto] #2239 Secp256k1 signature changes (See ADR-014):
      • format changed from DER to r || s, both little endian encoded as 32 bytes.
      • malleability removed by requiring s to be in canonical form.
  • P2P Protocol

    • [p2p] #2263 Update secret connection to use a little endian encoded nonce
    • [blockchain] #2213 Fix Amino routes for blockchain reactor messages

FEATURES:

  • [types] #2015 Allow genesis file to have 0 validators
    • Initial validator set can be determined by the app in ResponseInitChain
  • [rpc] #2161 New event ValidatorSetUpdates for when the validator set changes
  • [crypto/multisig] #2164 Introduce multisig pubkey and signature format
  • [libs/db] #2293 Allow passing options through when creating instances of leveldb dbs

IMPROVEMENTS:

  • [docs] Lint documentation with write-good and stop-words.
  • [scripts] Added json2wal tool, which is supposed to help our users restore corrupted WAL files and compose test WAL files (@bradyjoestar)
  • [mempool] #2234 Now stores txs by hash inside of the cache, to mitigate memory leakage

BUG FIXES:

  • [config] #2284 Replace db_path with db_dir from automatically generated configuration files.
  • [mempool] #2188 Fix OOM issue from cache map and list getting out of sync
  • [state] #2051 KV store index supports searching by tx.height
  • [rpc] #2327 /dial_peers does not try to dial existing peers
  • [node] #2323 Filter empty strings from config lists
  • [abci/client] #2236 Fix closing GRPC connection