Skip to content

Tantalization

Compare
Choose a tag to compare
@roman-khimov roman-khimov released this 14 Jul 15:56
· 5090 commits to master since this release

The first Neo 3 compatible release of neo-go! We've targeted to make it compatible with preview2 release of Neo 3, so it only contains features available there, but at the same time this makes the node more useful until we have some more up to date reference version. It's a completely different network, so almost everything has changed and it's hard to describe it with the same level of details we usually do (but we'll provide them for subsequent releases where the changeset is going to be lower in size). Please note that this is a preview-level release and there won't be long-term support provided for it, Neo 3 is evolving and the next release won't be compatible with this one.

Main Neo 3 features in this release:

  • no UTXO
  • native contracts
  • new VM
  • scoped witnesses for transaction
  • updated interop/syscalls set
  • contract manifests
  • more efficient P2P protocol

Things that have also changed:

  • transaction format
  • block format
  • address format
  • wallets
  • RPC protocol
  • notification subsystem
  • executable format output for compiler

Compatibility level of this neo-go release:

  • identical storage changes compared to C# node for 378K blocks of preview2 testnet
  • debugging info produced is compatible with preview2-compatible neo-debugger
  • running consensus nodes in heterogeneous setup is possible (2 neo-go CNs with 2 C# CNs, for example)

Changes specific to neo-go:

  • some CLI parameters like wallet path or RPC endpoint URL have been unified across all commands and thus have changed in some of them (refer to CLI help for details)
  • as an extension we support post-preview2 cosigners parameter for invokefunction RPC calls (see neo-project/neo-modules#260)
  • Go compiler now supports comparisons with nil properly
  • we no longer provide bootstrapping 6k block dump for private networks, you have 30000000 GAS right in the genesis block and it's not hard to make use of it (see neo-go-sc-wrkshp for an example of how to use it)
  • we have a conversion tool for your old Neo 2 wallets (wallet convert command), so you can reuse keys on Neo 3 networks
  • util.Equals interop function may not function the way you expect it to due to Neo VM changes, it still is an EQUAL opcode though. This interop may be removed in the future.