All Versions
157
Latest Version
Avg Release Cycle
26 days
Latest Release
-

Changelog History
Page 16

  • v0.9.0 Changes

    March 06, 2017

    ๐Ÿ’ฅ BREAKING CHANGES:

    • โšก๏ธ Update ABCI to v0.4.0, where Query is now Query(RequestQuery) ResponseQuery, enabling precise proofs at particular heights:
    message RequestQuery{
        bytes data = 1;
        string path = 2;
        uint64 height = 3;
        bool prove = 4;
    }
    
    message ResponseQuery{
        CodeType          code        = 1;
        int64             index       = 2;
        bytes             key         = 3;
        bytes             value       = 4;
        bytes             proof       = 5;
        uint64            height      = 6;
        string            log         = 7;
    }
    
    • BlockMeta data type unifies its Hash and PartSetHash under a BlockID:
    type BlockMeta struct {
        BlockID BlockID `json:"block_id"` // the block hash and partsethash
        Header  *Header `json:"header"`   // The block's Header
    }
    
    • โšก๏ธ ValidatorSet.Proposer is exposed as a field and persisted with the State. Use GetProposer() to initialize or update after validator-set changes.

    • tendermint gen_validator command output is now pure JSON

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ†• New RPC endpoint /commit?height=X returns header and commit for block at height X
    • โœ… Client API for each endpoint, including mocks for testing

    ๐Ÿ‘Œ IMPROVEMENTS:

    • Node is now a BaseService
    • Simplified starting Tendermint in-process from another application
    • ๐Ÿ‘ Better organized Makefile
    • ๐Ÿ— Scripts for auto-building binaries across platforms
    • ๐Ÿณ Docker image improved, slimmed down (using Alpine), and changed from tendermint/tmbase to tendermint/tendermint
    • ๐Ÿ†• New repo files: CONTRIBUTING.md, Github ISSUE_TEMPLATE, CHANGELOG.md
    • ๐Ÿ‘Œ Improvements on CircleCI for managing build/test artifacts
    • ๐Ÿ“ฆ Handshake replay is doen through the consensus package, possibly using a mockApp
    • Graceful shutdown of RPC listeners
    • ๐Ÿ‘€ Tests for the PEX reactor and DialSeeds

    ๐Ÿ› BUG FIXES:

    • โšก๏ธ Check peer.Send for failure before updating PeerState in consensus
    • ๐Ÿ›  Fix panic in /dial_seeds with invalid addresses
    • ๐Ÿ›  Fix proposer selection logic in ValidatorSet by taking the address into account in the accumComparable
    • ๐Ÿ›  Fix inconcistencies with ValidatorSet.Proposer across restarts by persisting it in the State
  • v0.8.0 Changes

    January 13, 2017

    ๐Ÿ’ฅ BREAKING CHANGES:

    • ๐Ÿ†• New data type BlockID to represent blocks:
    type BlockID struct {
        Hash        []byte        `json:"hash"`
        PartsHeader PartSetHeader `json:"parts"`
    }
    
    • Vote data type now includes validator address and index:
    type Vote struct {
        ValidatorAddress []byte           `json:"validator_address"`
        ValidatorIndex   int              `json:"validator_index"`
        Height           int              `json:"height"`
        Round            int              `json:"round"`
        Type             byte             `json:"type"`
        BlockID          BlockID          `json:"block_id"` // zero if vote is nil.
        Signature        crypto.Signature `json:"signature"`
    }
    
    • โšก๏ธ Update TMSP to v0.3.0, where it is now called ABCI and AppendTx is DeliverTx
    • ๐Ÿ›  Hex strings in the RPC are now "0x" prefixed

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ†• New message type on the ConsensusReactor, Maj23Msg, for peers to alert others they've seen a Maj23, in order to track and handle conflicting votes intelligently to prevent Byzantine faults from causing halts:
    type VoteSetMaj23Message struct {
        Height  int
        Round   int
        Type    byte
        BlockID types.BlockID
    }
    
    • ๐Ÿ”ง Configurable block part set size
    • Validator set changes
    • Optionally skip TimeoutCommit if we have all the votes
    • ๐Ÿ”€ Handshake between Tendermint and App on startup to sync latest state and ensure consistent recovery from crashes
    • GRPC server for BroadcastTx endpoint

    ๐Ÿ‘Œ IMPROVEMENTS:

    • ๐ŸŒฒ Less verbose logging
    • ๐Ÿ‘ Better test coverage (37% -> 49%)
    • Canonical SignBytes for signable types
    • ๐ŸŒฒ Write-Ahead Log for Mempool and Consensus via tmlibs/autofile
    • ๐Ÿ‘ Better in-process testing for the consensus reactor and byzantine faults
    • ๐Ÿ‘ Better crash/restart testing for individual nodes at preset failure points, and of networks at arbitrary points
    • ๐Ÿ‘ Better abstraction over timeout mechanics

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fix memory leak in mempool peer
    • ๐Ÿ›  Fix panic on POLRound=-1
    • Actually set the CommitTime
    • Actually send BeginBlock message
    • ๐Ÿ›  Fix a liveness issues caused by Byzantine proposals/votes. Uses the new Maj23Msg.
  • v0.7.4 Changes

    December 14, 2016

    ๐Ÿ”‹ FEATURES:

    • Enable the Peer Exchange reactor with the --pex flag for more resilient gossip network (feature still in development, beware dragons)

    ๐Ÿ‘Œ IMPROVEMENTS:

    • โœ‚ Remove restrictions on RPC endpoint /dial_seeds to enable manual network configuration
  • v0.7.3 Changes

    October 20, 2016

    ๐Ÿ‘Œ IMPROVEMENTS:

    • Type safe FireEvent
    • โœ… More WAL/replay tests
    • ๐Ÿ“„ Cleanup some docs

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Fix deadlock in mempool for synchronous apps
    • Replay handles non-empty blocks
    • ๐Ÿ›  Fix race condition in HeightVoteSet
  • v0.7.2 Changes

    September 11, 2016

    ๐Ÿ› BUG FIXES:

    • Set mustConnect=false so tendermint will retry connecting to the app
  • v0.7.1 Changes

    September 10, 2016

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ†• New TMSP connection for Query/Info
    • ๐Ÿ†• New RPC endpoints:
      • tmsp_query
      • tmsp_info
    • ๐Ÿ‘ Allow application to filter peers through Query (off by default)

    ๐Ÿ‘Œ IMPROVEMENTS:

    • TMSP connection type enforced at compile time
    • All listen/client urls use a "tcp://" or "unix://" prefix

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ’พ Save LastSignature/LastSignBytes to priv_validator.json for recovery
    • ๐Ÿ›  Fix event unsubscribe
    • ๐Ÿ›  Fix fastsync/blockchain reactor
  • v0.7.0 Changes

    August 07, 2016

    ๐Ÿ’ฅ BREAKING CHANGES:

    • Strict SemVer starting now!
    • โšก๏ธ Update to ABCI v0.2.0
    • Validation types now called Commit
    • ๐Ÿ†• NewBlock event only returns the block header

    ๐Ÿ”‹ FEATURES:

    • ๐Ÿ‘ TMSP and RPC support TCP and UNIX sockets
    • โž• Addition config options including block size and consensus parameters
    • ๐Ÿ†• New WAL mode cswal_light; logs only the validator's own votes
    • ๐Ÿ†• New RPC endpoints:
      • for starting/stopping profilers, and for updating config
      • /broadcast_tx_commit, returns when tx is included in a block, else an error
      • /unsafe_flush_mempool, empties the mempool

    ๐Ÿ‘Œ IMPROVEMENTS:

    • Various optimizations
    • โœ‚ Remove bad or invalidated transactions from the mempool cache (allows later duplicates)
    • โœ… More elaborate testing using CircleCI including benchmarking throughput on 4 digitalocean droplets

    ๐Ÿ› BUG FIXES:

    • ๐Ÿ›  Various fixes to WAL and replay logic
    • Various race conditions