Neo Global Monthly Report - Development

September 2022

Neo Global Monthly Report - Development


Another month of development has been completed in the Neo ecosystem, and with it come new conveniences and opportunities for developers. In September, Neo’s core developers completed the work to support dynamic scripts at contract runtime, creating new and unexplored possibilities for smart contracts. Other notable improvements include a new native contract method to simplify iteration over contracts on a network, and various enhancements for NeoCLI plugin modules.

On the infrastructure side, community teams also sought to provide conveniences of their own for developers and users alike. NEXT enhanced the NeoLine wallet to make it the first option for Neo users looking to transfer tokens via NeoNS names, and AxLabs began building out its NeoFS module for the neow3j SDK, which will open the door for Java applications integrating with decentralized storage.

Also this month, COZ initiated work on a Mamba SDK improvement to make invoking contracts over RPC more user-friendly, and Neo SPCC brought its historic invocation functionality to the NeoGo CLI, allowing builders to integrate more deeply with the Neo blockchain by accessing past states.

The full Neo global monthly development report for September can be found below.



Neo Core

Support for running dynamic scripts at contract runtime merged into the Neo Core

Work over the past months to facilitate execution of dynamically loaded scripts at contract runtime was completed in September. This update enables new use cases and possibilities for contracts where users may want to submit custom logic to be executed. For security, these scripts may only be executed in read-only mode and can not affect state.

New API to retrieve a contract by its ID added to the ContractManagement native contract

The GetContractById method makes it possible for users to retrieve a contract using its designated ID, a number that is deterministically generated based on the historic deployment order of contracts on a Neo network. This makes it convenient for developers who wish to iterate over contracts, and is also useful in networks where non-native contracts have well known IDs but may have different contract hashes between networks, such as in NeoFS development environments.

Consensus logic modified to prevent unnecessary ChangeView delays

The DBFT mechanism used by consensus nodes received a small change in September. The improvement ensures that the round timer will only be extended if a commit is received from the current consensus view, rather than any previous views. This avoids the potential for desynchronization, caused by a node being late to trigger a ChangeView when chosen to process a RecoveryRequest.

Assorted improvements and bug fixes completed for Neo Modules

Several of the core Neo plugins received changes this month. A new plugin, SQLite wallet, was created to encapsulate the logic for handling .db3 wallets. An issue that causes node crashes in the NEP-11 tracker was resolved, and an error when reinstalling the ApplicationLogs plugin via the reinstall command was also fixed. The RPC Client’s getBlockHash method was also updated to correct the data type for the index parameter, and finally the DBFT plugin received a bug fix for prepare requests in recovery messages.





Project Milestones


NeoGo by Neo SPCC

Development on NeoGo was primarily split between CLI enhancements, continuation of the team’s RPC refactoring, and general changes for compatibility with the upcoming Neo v3.5 release. In the CLI, users will find support for historic invocations and offline signing, and improved examples/documentation for client usage will help developers get up to speed with the latest RPC changes.


neow3j by AxLabs

AxLabs turned its attention to NeoFS this month, scoping the design for a new module to handle all related interactions. Development on the SDK and API is now underway. Additionally, the team improved neow3j’s RPC error handling with more informative exceptions to improve developer experience.

Mamba by COZ

In September, COZ began implementation of a new facade designed to make it easy for Python developers to invoke smart contracts over RPC. Initial efforts resulted in the implementation of base contract wrappers and helper functions for processing invocation results.


Neo Blockchain Toolkit by NGD Enterprise

NGD Enterprise unveiled the latest addition to the Neo Blockchain Toolkit this month. The Neo WorkNet tool makes it possible for developers to easily fork existing public networks such as MainNet and TestNet into a locally operated private network.

The feature works on the same principle as the Neo Trace tool, but on a much larger scale, and makes it possible for developers to locally test complex scripts and multi-stage contract interactions using real production data.


NeoLine by NEXT

The Mobile and Chrome Extension versions of the NeoLine wallet received NeoNS support in September, making it possible for users to send and receive assets using their domain names as identifiers instead of public addresses. Bugs were resolved in the Mobile version, and the Chrome version was migrated to the Manifest V3 platform.


NeoFS by Neo SPCC

Neo SPCC completed a large assortment of NeoFS improvements in September. Core upgrades focused primarily on the NeoFS node implementation, providing access control in public containers, improved control over configuration management, and assorted other changes.

The S3 Gateway received a number of software quality improvements this month, in the form of bug fixes and better credential management. The REST Gateway was also launched in an effort to improve the experience of building web applications that integrate with NeoFS.


Auditing by Red4Sec

This month, Red4Sec began auditing a new smart contract planned for the Flamingo Finance platform, and continued to make their usual contributions to the Neo core.