Skip to content

Release v0.9.0 #401

@ebuchman

Description

@ebuchman

v0.9.0

Summary

  • ABCI Query message has more structure and returns Merkle proofs
  • Various improvements in using Docker and Continuous Integration
  • PEX fixes and other P2P improvements
  • More handshake/replay stability
  • New rpc endpoint /commit
  • RPC Client API in Go

Breaking

  • ABCI Query structure (multiple arguments and return values)
  • BlockMeta structure (uses BlockID)
  • tendermint gen_validator command output (pure JSON)
  • ValidatorSet structure (exposes Proposer field and renames Proposer() to GetProposer())

Details

Node

  • Node is now a BaseService
  • Simplify starting Tendermint in-process from another application

Coding and Testing

  • Makefile better organized
  • Scripts for auto-building binaries across platforms
  • Docker image improved, slimmed down (using Alpine), and changed from tendermint/tmbase to tendermint/tendermint
  • CONTRIBUTING.md and github ISSUE_TEMPLATE
  • Improvements on CircleCI for managing build/test artifacts
  • Tests for the PEX reactor and DialSeeds

ABCI

  • Query message is now Query(reqQuery RequestQuery) ResponseQuery where
type RequestQuery struct {
	Data   []byte `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
	Path   string `protobuf:"bytes,2,opt,name=path" json:"path,omitempty"`
	Height uint64 `protobuf:"varint,3,opt,name=height" json:"height,omitempty"`
	Prove  bool   `protobuf:"varint,4,opt,name=prove" json:"prove,omitempty"`
}

type ResponseQuery struct {
	Code       CodeType `protobuf:"varint,1,opt,name=code,enum=types.CodeType" json:"code,omitempty"`
	Index      int64    `protobuf:"varint,2,opt,name=index" json:"index,omitempty"`
	Key        []byte   `protobuf:"bytes,3,opt,name=key,proto3" json:"key,omitempty"`
	Value      []byte   `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
	Proof      []byte   `protobuf:"bytes,5,opt,name=proof,proto3" json:"proof,omitempty"`
	LastHeight uint64   `protobuf:"varint,6,opt,name=last_height,json=lastHeight" json:"last_height,omitempty"`
	Log        string   `protobuf:"bytes,7,opt,name=log" json:"log,omitempty"`
}

Consensus

  • Block replay for app handshake is now done through consensus package, possibly using a mockApp.
  • Check peer.Send for failure before updating PeerState

Types

  • BlockMeta now contains BlockID instead of the Hash and PartSetHeader (so not compatible with older dbs)
  • ValidatorSet.Proposer is exported and persisted

RPC

  • /commit?height=X endpoint returns header and commit
  • new client API for each endpoint, including mocks for testing

CLI

  • tendermint gen_validator now produces machine readable output

Pull Requests

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions