neo-go/ROADMAP.md
2024-11-15 11:05:42 +01:00

3 KiB

Roadmap for neo-go

This defines approximate plan of neo-go releases and key features planned for them. Things can change if there is a need to push a bugfix or some critical functionality.

Versions 0.7X.Y (as needed)

  • Neo 2.0 support (bug fixes, minor functionality additions)

Version 0.107.0 (~Jun-Jul 2024)

  • protocol updates
  • bug fixes
  • node resynchronisation from local DB
  • CLI library upgrade

Version 1.0 (2024, TBD)

  • stable version

Deprecated functionality

As the node and the protocol evolve some external APIs can change. Usually we try keeping backwards compatibility for some time (like half a year) unless it's impossible to do for some reason. But eventually old APIs/commands/configurations will be removed and here is a list of scheduled breaking changes. Consider changing your code/scripts/configurations if you're using anything mentioned here.

GetPeers RPC server response type changes and RPC client support

GetPeers RPC command returns a list of Peers where the port type has changed from string to uint16 to match C#. The RPC client currently supports unmarshalling both formats.

Removal of Peer unmarshalling with string based ports is scheduled for Jun-Jul 2024 (~0.107.0 release).

NEOBalance from stack item

We check struct items count before convert LastGasPerVote to let RPC client be compatible with old versions.

Removal of this compatiblility code is scheduled for Jun-Jul 2024.

serv_node_version Prometheus gauge metric

This metric is replaced by the new neogo_version and server_id Prometheus gauge metrics with proper version formatting. neogo_version contains NeoGo version hidden under version label and server_id contains network server ID hidden under server_id label.

Removal of serv_node_version is scheduled for Jun-Jul 2024 (~0.107.0 release).

RPC error codes returned by old versions and C#-nodes

NeoGo retains certain deprecated error codes: neorpc.ErrCompatGeneric, neorpc.ErrCompatNoOpenedWallet. They returned by nodes not compliant with the neo-project/proposals#156 (NeoGo pre-0.102.0 and all known C# versions).

Removal of the deprecated RPC error codes is planned for Jun-Jul 2024 (~0.107.0 release).

Block based web-socket waiter transaction awaiting

Web-socket RPC based waiter.EventWaiter uses header_of_added_block notifications subscription to manage transaction awaiting. To support old NeoGo RPC servers (older than 0.105.0) that do not have block headers subscription ability, event-based waiter fallbacks to the old way of block monitoring with block_added notifications subscription.

Removal of stale RPC server compatibility code from waiter.EventWaiter is scheduled for Jun-Jul 2024 (~0.107.0 release).

Dump*Slot() methods of vm.Context

The following new methods have been exposed to give access to VM context slot contents with greater flexibility:

  • ArgumentsSlot
  • LocalsSlot
  • StaticsSlot.

Removal of the Dump*Slot() methods are scheduled for the 0.108.0 release.