The latest preview version of Neo3 – Neo3 Preview3 has been released with the implementation of Neo3 governance committee mechanism while introducing multiple new features and enhancements for smart contracts including the exception handling mechanism. This release also delivers an optimized overall performance and developer friendliness with a series of improvements such as reduced database read and faster block synchronization.
The comprehensive list of improvements and optimizations in this version:
Governance Committee Mechanism
The governance committee mechanism has been implemented in this release. In Neo3, the governance committee can make changes to a series of on-chain metrics such as:
- Maximum block size;
- Maximum amount of transactions in blocks;
- Maximum block system fee;
- Network fee;
- Address blocking/unblocking, and etc.
Smart Contract Enhancements
Added new features such as the exception handling mechanism, as well as enhancements to improve contract functionality and developer friendliness, making contract development easier and more efficient:
- Exception handling mechanism is now added to provide developers with more powerful and reliable smart contracts. (Please refer to this page for cases of exception handling).
- Contract ABI offsets are now recorded upon compiling allowing developers to call contracts directly by offsets. This simplifies the workflow in contract coding and calling.
- Added new cryptographic algorithms including RIPEMD160;
- Added support for callback functions;
- Added support for smart contract calls by native contracts;
- Enriched the content of the error message upon exceptions to improve developer friendliness;
- Improved compatibility between different data types in NeoVM.
- Added caching for the previous block, to reduce database read and improve performance.
- Optimized the block height synchronization logic from synching all historical block heads, to only synching the latest block height. Nodes can now request for blocks base on indexing and the block synchronization time is significantly reduced.
- Optimized SYSCALL and GetPrice methods;
- Added support for ECC Secp256k1 curve.
Please refer to this page for the full changelog.