You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

343 lines
8.9 KiB

8 years ago
7 years ago
7 years ago
7 years ago
7 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
8 years ago
  1. # Changelog
  2. ## 0.11.0
  3. *TBD*
  4. BREAKING CHANGES:
  5. - [example/dummy] Remove. See example/kvstore
  6. - [types] Upgrade many messages:
  7. - RequestInitChain takes all fields from a Genesis file
  8. - RequestBeginBlock provides a list of all validators and whether or not
  9. they signed
  10. - Header: remove some fields, add proposer
  11. - BlockID, PartSetHeader: remove
  12. - Validator: includes address
  13. - PubKey: new message with `type` and `data`
  14. - Evidence: add type and more fields
  15. FEATURES:
  16. - [types] Add some fields
  17. - ResponseInitChain includes ConsensusParams and Validators
  18. - ResponseBeginBlock includes tags
  19. - ResponseEndBlock includes tags
  20. ## 0.10.3 (April 9, 2018)
  21. IMPROVEMENTS:
  22. - Update tmlibs dep
  23. ## 0.10.2 (March 23, 2018)
  24. Hot fix to remove `omitempty` from `fee` and to actually run `make
  25. protoc`
  26. ## 0.10.1 (March 22, 2018)
  27. FEATURES:
  28. - [types] ResponseCheckTx and ResponseDeliverTx are now the same.
  29. - [example] `dummy` is duplicated as `kvstore`.
  30. IMPROVEMENTS:
  31. - glide -> Godep
  32. - remove pkg/errors
  33. - improve specification.rst
  34. ## 0.10.0 (February 20, 2018)
  35. BREAKING CHANGES:
  36. - [types] Socket messages are length prefixed with real protobuf Varint instead of `<len of len><big endian len>`
  37. - [types] Drop gogo custom type magic with data.Bytes
  38. - [types] Use `[(gogoproto.nullable)=false]` to prefer value over pointer for the types
  39. - [types] Field re-ordering ...
  40. - [types] KVPair: replace with common.KVPair. Add common KI64Pair too (for fees).
  41. - [types] CheckTx/DeliverTx: updates for tags, gas, fees
  42. - [types] Commit: Remove code and log from Commit
  43. - [types] SetOption: Remove code
  44. - [example/dummy] remove dependence on IAVL
  45. - [types] IsOk/IsErr: methods removed
  46. FEATURES:
  47. - [types] SetOption/Query/CheckTx/DeliverTx: Add `info string` field to responses
  48. - [types] RequestInitChain.AppStateBytes for app's genesis state
  49. IMPROVEMENTS:
  50. - [all] remove go-wire and go-crypto dependencies :)
  51. ## 0.9.0 (December 28, 2017)
  52. BREAKING CHANGES:
  53. - [types] Id -> ID
  54. - [types] ResponseEndBlock: renamed Diffs field to ValidatorUpdates
  55. - [types] changed protobuf field indices for Request and Response oneof types
  56. FEATURES:
  57. - [types] ResponseEndBlock: added ConsensusParamUpdates
  58. BUG FIXES:
  59. - [cmd] fix console and batch commands to use a single persistent connection
  60. ## 0.8.0 (December 6, 2017)
  61. BREAKING CHANGES:
  62. - [client] all XxxSync methods now return (ResponseXxx, error)
  63. - [types] all methods on Application interface now take RequestXxx and return (ResponseXxx, error).
  64. - Except `CheckTx`/`DeliverTx`, which takes a `tx []byte` argument.
  65. - Except `Commit`, which takes no arguments.
  66. - [types] removed Result and ResultQuery
  67. - [types] removed CodeType - only `0 == OK` is defined here, everything else is left to convention at the application level
  68. - [types] switched to using `gogo/protobuf` for code generation
  69. - [types] use `customtype` feature of `gogo/protobuf` to replace `[]byte` with `data.Bytes` in all generated types :)
  70. - this eliminates the need for additional types like ResultQuery
  71. - [types] `pubKey` -> `pub_key`
  72. - [types] `uint64` -> `int32` for `Header.num_txs` and `PartSetHeader.total`
  73. - [types] `uint64` -> `int64` for everything else
  74. - [types] ResponseSetOption includes error code
  75. - [abci-cli] codes are printed as their number instead of a message, except for `code == 0`, which is still printed as `OK`
  76. FEATURES:
  77. - [types] ResponseDeliverTx: added `tags` field
  78. - [types] ResponseCheckTx: added `gas` and `fee` fields
  79. - [types] RequestBeginBlock: added `absent_validators` and `byzantine_validators` fields
  80. - [dummy] DeliverTx returns an owner tag and a key tag
  81. - [abci-cli] added `log_level` flag to control the logger
  82. - [abci-cli] introduce `abci-cli test` command for simple testing of ABCI server implementations via Counter application
  83. ## 0.7.1 (November 14, 2017)
  84. IMPROVEMENTS:
  85. - [cli] added version command
  86. BUG FIXES:
  87. - [server] fix "Connection error module=abci-server error=EOF"
  88. ## 0.7.0 (October 27, 2017)
  89. BREAKING CHANGES:
  90. - [cli] consolidate example apps under a single `abci-cli` binary
  91. IMPROVEMENTS:
  92. - [cli] use spf13/cobra instead of urfave/cli
  93. - [dummy] use iavl instead of merkleeyes, and add support for historical queries
  94. BUG FIXES:
  95. - [client] fix deadlock on StopForError
  96. ## 0.6.0 (September 22, 2017)
  97. BREAKING CHANGES:
  98. - [types/client] app.BeginBlock takes RequestBeginBlock
  99. - [types/client] app.InitChain takes RequestInitChain
  100. - [types/client] app.Info takes RequestInfo
  101. IMPROVEMENTS:
  102. - various linting
  103. ## 0.5.0 (May 18, 2017)
  104. BREAKING CHANGES:
  105. - `NewSocketClient` and `NewGRPCClient` no longer start the client automatically, and don't return errors. The caller is responsible for running `client.Start()` and checking the error.
  106. - `NewSocketServer` and `NewGRPCServer` no longer start the server automatically, and don't return errors. The caller is responsible for running `server.Start()` and checking the error.
  107. FEATURES:
  108. - [types] new method `func (res Result) IsSameCode(compare Result) bool` checks whether two results have the same code
  109. - [types] new methods `func (r *ResponseCheckTx) Result() Result` and `func (r *ResponseDeliverTx) Result() Result` to convert from protobuf types (for control over json serialization)
  110. - [types] new method `func (r *ResponseQuery) Result() *ResultQuery` and struct `ResultQuery` to convert from protobuf types (for control over json serializtion)
  111. IMPROVEMENTS:
  112. - Update imports for new `tmlibs` repository
  113. - Use the new logger
  114. - [abci-cli] Add flags to the query command for `path`, `height`, and `prove`
  115. - [types] use `data.Bytes` and `json` tags in the `Result` struct
  116. BUG FIXES:
  117. ## 0.4.1 (April 18, 2017)
  118. IMPROVEMENTS:
  119. - Update dependencies
  120. ## 0.4.0 (March 6, 2017)
  121. BREAKING CHANGES:
  122. - Query takes RequestQuery and returns ResponseQuery. The request is split into `data` and `path`,
  123. can specify a height to query the state from, and whether or not the response should come with a proof.
  124. The response returns the corresponding key-value pair, with proof if requested.
  125. ```
  126. message RequestQuery{
  127. bytes data = 1;
  128. string path = 2;
  129. uint64 height = 3;
  130. bool prove = 4;
  131. }
  132. message ResponseQuery{
  133. CodeType code = 1;
  134. int64 index = 2;
  135. bytes key = 3;
  136. bytes value = 4;
  137. bytes proof = 5;
  138. uint64 height = 6;
  139. string log = 7;
  140. }
  141. ```
  142. IMPROVEMENTS:
  143. - Updates to Makefile
  144. - Various cleanup
  145. - BaseApplication can be embedded by new apps to avoid implementing empty methods
  146. - Drop BlockchainAware and make BeginBlock/EndBlock part of the `type Application interface`
  147. ## 0.3.0 (January 12, 2017)
  148. BREAKING CHANGES:
  149. - TMSP is now ABCI (Application/Asynchronous/A BlockChain Interface or Atomic BroadCast Interface)
  150. - AppendTx is now DeliverTx (conforms to the literature)
  151. - BeginBlock takes a Header:
  152. ```
  153. message RequestBeginBlock{
  154. bytes hash = 1;
  155. Header header = 2;
  156. }
  157. ```
  158. - Info returns a ResponseInfo, containing last block height and app hash:
  159. ```
  160. message ResponseInfo {
  161. string data = 1;
  162. string version = 2;
  163. uint64 last_block_height = 3;
  164. bytes last_block_app_hash = 4;
  165. }
  166. ```
  167. - EndBlock returns a ResponseEndBlock, containing the changed validators:
  168. ```
  169. message ResponseEndBlock{
  170. repeated Validator diffs = 4;
  171. }
  172. ```
  173. - Hex strings are 0x-prefixed in the CLI
  174. - Query on the Dummy app now uses hex-strings
  175. FEATURES:
  176. - New app, PersistentDummy, uses Info/BeginBlock to recover from failures and supports validator set changes
  177. - New message types for blockchain data:
  178. ```
  179. //----------------------------------------
  180. // Blockchain Types
  181. message Header {
  182. string chain_id = 1;
  183. uint64 height = 2;
  184. uint64 time = 3;
  185. uint64 num_txs = 4;
  186. BlockID last_block_id = 5;
  187. bytes last_commit_hash = 6;
  188. bytes data_hash = 7;
  189. bytes validators_hash = 8;
  190. bytes app_hash = 9;
  191. }
  192. message BlockID {
  193. bytes hash = 1;
  194. PartSetHeader parts = 2;
  195. }
  196. message PartSetHeader {
  197. uint64 total = 1;
  198. bytes hash = 2;
  199. }
  200. message Validator {
  201. bytes pubKey = 1;
  202. uint64 power = 2;
  203. }
  204. ```
  205. - Add support for Query to Counter app
  206. IMPROVEMENT:
  207. - Don't exit the tmsp-cli console on bad args
  208. BUG FIXES:
  209. - Fix parsing in the Counter app to handle invalid transactions
  210. ## 0.2.1 (September 12, 2016)
  211. IMPROVEMENTS
  212. - Better error handling in console
  213. ## 0.2.0 (July 23, 2016)
  214. BREAKING CHANGES:
  215. - Use `oneof` types in protobuf
  216. FEATURES:
  217. - GRPC support
  218. ## PreHistory
  219. ##### Mar 26h, 2016
  220. * Introduce BeginBlock
  221. ##### Mar 6th, 2016
  222. * Added InitChain, EndBlock
  223. ##### Feb 14th, 2016
  224. * s/GetHash/Commit/g
  225. * Document Protobuf request/response fields
  226. ##### Jan 23th, 2016
  227. * Added CheckTx/Query ABCI message types
  228. * Added Result/Log fields to DeliverTx/CheckTx/SetOption
  229. * Removed Listener messages
  230. * Removed Code from ResponseSetOption and ResponseGetHash
  231. * Made examples BigEndian
  232. ##### Jan 12th, 2016
  233. * Added "RetCodeBadNonce = 0x06" return code
  234. ##### Jan 8th, 2016
  235. * Tendermint/ABCI now comes to consensus on the order first before DeliverTx.