January Technical Development Monthly Report
Having delivered the milestone Neo 3.1 version in the final weeks of 2021, the core development team began the New Year at a more relaxed pace. The planning of new updates and roadmap items took precedence, though several smaller improvements were still successfully completed in January.
The relatively low number of commits from the Neo core meant that community teams would take the spotlight this month. Neo’s globally distributed development communities made considerable progress in further refining available Neo infrastructure and tooling across all supported languages.
AxLabs and COZ provided new solutions and resources for developers, especially for those who are working on smart contracts. In particular, new helper methods and similar conveniences across neow3j and Boa would expose new areas of the Neo N3 platform to projects working on their own dApps.
Neo’s alternate node implementation, NeoGo, received a large mix of improvements from Neo SPCC, the team responsible for its maintenance. Of particular note, upgrades to the consensus and storage subsystems would further accelerate the already highly performant node.
The full January Neo global monthly development report can be found below.
Coming out of the holiday period, January was a slower month for the core development team, though several enhancements to Neo repositories were still committed over the course of January, driven in part by Neo Global Development’s Digital Asset Unit.
In the C# smart contract compiler, support for destructuring assignment to tuples was completed, and the 160/256 bit UInt data types used in NeoVM received security improvements in the form of size checks.
Adjustments were also made to the callflag permissions for the ContractManagement native contract’s deploy and update methods, and the DBFT consensus plugin received improvements to its message logging components.
Infrastructure and Tools Development
Refined the neow3j devpack with upgraded contract parameter handling and a new find method for iteration on StorageMaps.
Resolved crashes in NeoLine mobile for some phone models and improved the code for calculating system fees in the Chrome extension version.
Further optimized the NeoGo node with improvements to the consensus and storage systems.
Began exploring web extension counterparts of the Visual DevTracker and other Neo Blockchain Toolkit components for N3.
Updated Neon wallet with initial support for NFTs and finished implementing a range of new math built-in methods in Boa.
Neo SPCC released version 0.98.1 of NeoGo at the end of January, bringing new performance highs and features. Enhanced state root support, consensus throughput optimizations, and a range of changes to the compiler all made it into the update. The team also merged the storage of transaction and application logs, further bolstering the node’s performance by approximately 13% by reducing the total number of storage writes.
Other notable updates included improved signer handling in the recently launched test framework, a new NEP-11 example contract for divisible NFTs, and miscellaneous internal refactoring work.
Smart Contract Compiler
A large number of commits were completed in January by COZ on the Boa project. New built-in methods for use with integers were added, including math.floor, math.ceil, and math.pow alternatives. Other improvements include constructors for integer and boolean values, implicit boolean conversion, and support for manifest ABI method modifiers, including safe and trusts.
Bug fixes were also included in the updates: one in the creation of lists of lists, and another which caused methods and variables in classes to not be correctly compiled if there was another variable or method with the same name in a different scope.
Through January, the AxLabs team focused on the neow3j devpack, used during smart contract development. Developers will benefit from several improvements in the v3.15.0 release, including enhancements to the code used to handle contract parameters and the new find method for easy iteration on StorageMaps. A bug in the creation of multi-sig verification scripts caused by keys being out of order was also located and corrected.
Smart Contract & dApp framework
The NGD Enterprise team spent January exploring new web extension versions of the Visual DevTracker and other N3 Blockchain Toolkit components. These integrations would extend the reach of Neo’s tooling and integrate closely with existing web capabilities of VS and VS Code. The team also spent time working on the Visual Token Designer, including further integration with the Token Taxonomy Framework and prototyping for Carbon Market initiatives.
Neon received two new releases in January. The first, v2.12.3, added preliminary support for NFT balances, accompanied with a link to GhostMarket to provide additional details and token images. Activity tab defects and a fix to remove the need for a manual refresh after switching between networks was also included. The next version, v2.12.4, was a hotfix build which resolved further issues in the activity and send tabs when performing transactions or viewing pending transactions.
Minor updates and bug fixes were completed by NEXT in January. The NeoLine Chrome extension received optimizations to code for displaying asset logos and calculating system fees for contract calls. In the mobile client, the team resolved an issue that would cause crashes in some phone models.
Neo SPCC released new versions of the NeoFS node and contracts in January. The updates mostly consisted of bug fixes and other minor improvements, though an extended ACL builder was one notable addition to the node implementation. Preparations for the NeoFS SDK v1 release are also underway, including client examples to aid developer integrations. The team also began collecting reputation data from storage nodes, used to refine the reputation subsystem.
In the NeoFS Services, the team completed work to improve compatibility with Amazon S3 compatibility and finished building a billing component into the CDN.
Auditing by Red4Sec (https://red4sec.com/en)
Red4Sec continued its auditing streak for Neo N3 ecosystem projects in January. A review of the fixes to issues detected in the Flamingo stack was concluded, and the team moved its attention to a security audit of the Lyrebird project. The Lyrebird review will involve an assessment of the Lyrebird Token and Lyrebird USD token in addition to the Cage, Aviary, and Hatchery contracts.