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.

255 lines
6.4 KiB

8 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.8.0 (TBD)
  3. BREAKING CHANGES:
  4. - [client] all XxxSync methods now return (ResponseXxx, error)
  5. - [types] all methods on Application interface now take RequestXxx and return (ResponseXxx, error).
  6. - Except `CheckTx`/`DeliverTx`, which takes a `tx []byte` argument.
  7. - Except `Commit`, which takes no arguments.
  8. - [types] removed Result and ResultQuery
  9. - [types] removed CodeType - only `0 == OK` is defined here, everything else is left to convention at the application level
  10. - [types] switched to using `gogo/protobuf` for code generation
  11. - [types] use `customtype` feature of `gogo/protobuf` to replace `[]byte` with `data.Bytes` in all generated types :)
  12. - this eliminates the need for additional types like ResultQuery
  13. - [types] `pubKey` -> `pub_key`
  14. - [types] `uint64` -> `int64`
  15. - [abci-cli] codes are printed as their number instead of a message, except for `code == 0`, which is still printed as `OK`
  16. FEATURES:
  17. - [types] ResponseDeliverTx: added `tags` field
  18. - [types] ResponseCheckTx: added `gas` and `fee` fields
  19. - [types] RequestBeginBlock: added `absent_validators` and `byzantine_validators` fields
  20. - [dummy] DeliverTx returns an owner tag and a key tag
  21. - [abci-cli] added `log_level` flag to control the logger
  22. ## 0.7.1 (November 14, 2017)
  23. IMPROVEMENTS:
  24. - [cli] added version command
  25. BUG FIXES:
  26. - [server] fix "Connection error module=abci-server error=EOF"
  27. ## 0.7.0 (October 27, 2017)
  28. BREAKING CHANGES:
  29. - [cli] consolidate example apps under a single `abci-cli` binary
  30. IMPROVEMENTS:
  31. - [cli] use spf13/cobra instead of urfave/cli
  32. - [dummy] use iavl instead of merkleeyes, and add support for historical queries
  33. BUG FIXES:
  34. - [client] fix deadlock on StopForError
  35. ## 0.6.0 (September 22, 2017)
  36. BREAKING CHANGES:
  37. - [types/client] app.BeginBlock takes RequestBeginBlock
  38. - [types/client] app.InitChain takes RequestInitChain
  39. - [types/client] app.Info takes RequestInfo
  40. IMPROVEMENTS:
  41. - various linting
  42. ## 0.5.0 (May 18, 2017)
  43. BREAKING CHANGES:
  44. - `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.
  45. - `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.
  46. FEATURES:
  47. - [types] new method `func (res Result) IsSameCode(compare Result) bool` checks whether two results have the same code
  48. - [types] new methods `func (r *ResponseCheckTx) Result() Result` and `func (r *ResponseDeliverTx) Result() Result` to convert from protobuf types (for control over json serialization)
  49. - [types] new method `func (r *ResponseQuery) Result() *ResultQuery` and struct `ResultQuery` to convert from protobuf types (for control over json serializtion)
  50. IMPROVEMENTS:
  51. - Update imports for new `tmlibs` repository
  52. - Use the new logger
  53. - [abci-cli] Add flags to the query command for `path`, `height`, and `prove`
  54. - [types] use `data.Bytes` and `json` tags in the `Result` struct
  55. BUG FIXES:
  56. ## 0.4.1 (April 18, 2017)
  57. IMPROVEMENTS:
  58. - Update dependencies
  59. ## 0.4.0 (March 6, 2017)
  60. BREAKING CHANGES:
  61. - Query takes RequestQuery and returns ResponseQuery. The request is split into `data` and `path`,
  62. can specify a height to query the state from, and whether or not the response should come with a proof.
  63. The response returns the corresponding key-value pair, with proof if requested.
  64. ```
  65. message RequestQuery{
  66. bytes data = 1;
  67. string path = 2;
  68. uint64 height = 3;
  69. bool prove = 4;
  70. }
  71. message ResponseQuery{
  72. CodeType code = 1;
  73. int64 index = 2;
  74. bytes key = 3;
  75. bytes value = 4;
  76. bytes proof = 5;
  77. uint64 height = 6;
  78. string log = 7;
  79. }
  80. ```
  81. IMPROVEMENTS:
  82. - Updates to Makefile
  83. - Various cleanup
  84. - BaseApplication can be embedded by new apps to avoid implementing empty methods
  85. - Drop BlockchainAware and make BeginBlock/EndBlock part of the `type Application interface`
  86. ## 0.3.0 (January 12, 2017)
  87. BREAKING CHANGES:
  88. - TMSP is now ABCI (Application/Asynchronous/A BlockChain Interface or Atomic BroadCast Interface)
  89. - AppendTx is now DeliverTx (conforms to the literature)
  90. - BeginBlock takes a Header:
  91. ```
  92. message RequestBeginBlock{
  93. bytes hash = 1;
  94. Header header = 2;
  95. }
  96. ```
  97. - Info returns a ResponseInfo, containing last block height and app hash:
  98. ```
  99. message ResponseInfo {
  100. string data = 1;
  101. string version = 2;
  102. uint64 last_block_height = 3;
  103. bytes last_block_app_hash = 4;
  104. }
  105. ```
  106. - EndBlock returns a ResponseEndBlock, containing the changed validators:
  107. ```
  108. message ResponseEndBlock{
  109. repeated Validator diffs = 4;
  110. }
  111. ```
  112. - Hex strings are 0x-prefixed in the CLI
  113. - Query on the Dummy app now uses hex-strings
  114. FEATURES:
  115. - New app, PersistentDummy, uses Info/BeginBlock to recover from failures and supports validator set changes
  116. - New message types for blockchain data:
  117. ```
  118. //----------------------------------------
  119. // Blockchain Types
  120. message Header {
  121. string chain_id = 1;
  122. uint64 height = 2;
  123. uint64 time = 3;
  124. uint64 num_txs = 4;
  125. BlockID last_block_id = 5;
  126. bytes last_commit_hash = 6;
  127. bytes data_hash = 7;
  128. bytes validators_hash = 8;
  129. bytes app_hash = 9;
  130. }
  131. message BlockID {
  132. bytes hash = 1;
  133. PartSetHeader parts = 2;
  134. }
  135. message PartSetHeader {
  136. uint64 total = 1;
  137. bytes hash = 2;
  138. }
  139. message Validator {
  140. bytes pubKey = 1;
  141. uint64 power = 2;
  142. }
  143. ```
  144. - Add support for Query to Counter app
  145. IMPROVEMENT:
  146. - Don't exit the tmsp-cli console on bad args
  147. BUG FIXES:
  148. - Fix parsing in the Counter app to handle invalid transactions
  149. ## 0.2.1 (September 12, 2016)
  150. IMPROVEMENTS
  151. - Better error handling in console
  152. ## 0.2.0 (July 23, 2016)
  153. BREAKING CHANGES:
  154. - Use `oneof` types in protobuf
  155. FEATURES:
  156. - GRPC support
  157. ## PreHistory
  158. ##### Mar 26h, 2016
  159. * Introduce BeginBlock
  160. ##### Mar 6th, 2016
  161. * Added InitChain, EndBlock
  162. ##### Feb 14th, 2016
  163. * s/GetHash/Commit/g
  164. * Document Protobuf request/response fields
  165. ##### Jan 23th, 2016
  166. * Added CheckTx/Query ABCI message types
  167. * Added Result/Log fields to DeliverTx/CheckTx/SetOption
  168. * Removed Listener messages
  169. * Removed Code from ResponseSetOption and ResponseGetHash
  170. * Made examples BigEndian
  171. ##### Jan 12th, 2016
  172. * Added "RetCodeBadNonce = 0x06" return code
  173. ##### Jan 8th, 2016
  174. * Tendermint/ABCI now comes to consensus on the order first before DeliverTx.