update CHANGELOG and ROADMAP, release 0.72.0

This commit is contained in:
Roman Khimov 2020-02-06 21:35:43 +03:00
parent ab14a4619d
commit 6677678520
2 changed files with 110 additions and 4 deletions

View file

@ -2,6 +2,111 @@
This document outlines major changes between releases.
## 0.72.0 "Crystallization" (06 Feb 2020)
Starting at the end of the year 2019 we've spent a lot of effort to
stress-test our node with transaction load and this allowed us to uncover
some problems in various parts of the system. This release addresses all of
them and brings with it updated networking, consensus and mempool components
that can handle quite substantial transaction traffic and successfully produce
new blocks while being stressed. There are also important updates in VM that
fix incompatibilities with C# node and interesting improvements in compiler
based on our experience porting neofs smart contract to Go.
New features:
* `dump` command for wallet to dump it (replaced non-functional `open`
command, #589)
* support for single-node consensus setup (#595)
* ping/pong P2P messages are now supported with PingInterval and PingTimeout
configuration options (#430, #610, #627, #639)
* VM now fully supports calculating GAS spent during execution (#424, #648)
* Fixed8 type now supports YAML marshalling (#609)
* RPC invoke* calls can now be GAS-limited with MaxGasInvoke configuration
option (#609)
* gas limit for free invocation transactions can now be configured with
FreeGasLimit option which default to 10.0 for mainnet and testnet (#609)
* new compiler interop VerifySignature to verify ECDSA signatures (#617)
* compiler now supports loops with single condition (no init/post, #618)
* memory pool size is now configurable with MemPoolSize option which defaults
to 50000 for all configurations (#614)
* support for variables in slice literals in the compiler (#619)
* support for map literals in the compiler (#620)
* AppCall interop function (#621)
* `string` to `[]byte` conversion was implemented in the compiler (#622)
* Docker images now contain a dump of 1600 blocks for single-node setups and
one can choose which dump to use for restore with ACC environment variable
(#625)
* switch statement support in the compiler (#626)
* panic support in the compiler (#629)
Behaviour changes:
* NEP2Decrypt function in keys package now returns a pointer to PrivateKey
rather than a WIF-encoded string (#589)
* DecryptAccount function in wallet package was moved to Decrypt method of
Account (#589)
* logging was moved from logrus to zap which changed messages format a little
(#284, #598)
* Block, BlockBase and Header structures were moved into their own `block`
package (#597)
* MemPool was moved into its own `mempool` package (#597)
* Sign method of PrivateKey no longer returns an error (#604)
* wallet is now compatible with C# node wallets (#603)
* consensus service now gets its keys from the wallet file instead of
plain-text WIF in the configuration (#588)
* `image` Makefile target was updated to nspccdev repo (#625)
* serializing invalid Transaction structures (that have no Data) is now
forbidden (#640)
* Item is no longer exposed by the mempool package (#647)
Improvements:
* better testing of keys, wallet, compiler and mempool packages (#589, #568,
#647)
* smart use of previous proposal for block generation after dBFT's ChangeView
(#591)
* peer-server interaction refactored (#606)
* peer message queues were introduced with different priorities reducing
delays in consensus messages delivery and improving unicast communication
(#590, #615, #639)
* more efficient code generated by the compiler in some cases (#626, #629,
#637)
* mempool redesign leading to better performance (#647), it also doesn't
store unverified transactions now
Bugs fixed:
* consensus service was not really requesting transactions from peers when it
was missing some locally (#602)
* build failing with newer rfc6979 package (#592)
* wrong integer serialization/deserialization in VM leading to
inconsistencies in state with C# node (#501/#605)
* consensus service was not processing node election results to
enable/disable dBFT (#603)
* in some cases peers were not unregistered after disconnect (#606)
* different execution results with C# node because of missing invocation fee
calculations (#607)
* RPC server now properly returns the amount of gas spent during execution
for invoke* calls (#609)
* FromAddress interop was translated improperly by the compiler (#621)
* compiler emitting wrong integers (#624)
* EOF errors on recovery consensus messages decoding (#632)
* wrong handling of assignments to underscore variable in the compiler (#631)
* wrong answers to getunspents/getaccountstate RPC requests for unknown
addresses (#633)
* multiple dBFT issues leading to consensus stalls, attempts to add wrong
block to the chain, message processing using wrong height and other
problems (#635, #641)
* duplicate connections were not detected before the handshake completion
which can happen too late (#639)
* attempts to connect to peer that has already connected to node (#639)
* unregistration of connected addresses (#639)
* ArrayReverse function was not copying arrays of size 1 (#644)
* race in transaction verification/addition to the mempool leading to
potential double spends (#647)
* wrong concurrent attempts to add new block to the chain (#647)
* blocks were not relayed properly by non-consensus nodes (#647)
* mempool memory leak (#647)
* missing reverification after block acceptance for transactions in mempool
(#647)
## 0.71.0 "Celebration" (30 Dec 2019)
Version 0.71.0 ends the year 2019 of neo-go development with a solid release

View file

@ -4,10 +4,11 @@ This defines approximate plan of neo-go releases and key features planned for
them. Things can change if there a need to push a bugfix or some critical
functionality.
## Version 0.72.0 (end of January 2019)
* wallet CLI functionality
* completing P2P protocol implementation
* fix remaining inconsistencies in mainnet transaction processing wrt C# implementation
## Versions 0.7X.Y (as needed)
* Neo 2.0 support (bug fixes, minor functionality additions)
## Version 0.90.0 (April 2020)
* Neo 3.0 features preview
## Version 1.0 (2020, aligned with NEO 3.0 release)
* full NEO 3.0 support