January was a short month for the Neo ecosystem, with development communities in the West returning from Christmas and New Year’s holidays and communities in the East preparing for the Chinese New Year holidays. Nevertheless, a great deal was still achieved throughout the month.

Neo Core Developers and NGD teams focused on bringing libraries in line with the latest NeoVM changes and made progress on dBFT 3.0 as well as supporting these efforts through ongoing quality assurance and testing of critical PRs. The community development groups continued to work on infrastructure, both improving upon available Neo 2.x products and moving forward on Neo3 preparations.

A highlight of January was the addition of a consensus node hosted by Everstake, a Kyiv-based staking service platform, to the Neo3 Preview1 TestNet. The Everstake node marks the beginning of decentralization on the Neo3 TestNet, and as more Neo3 Preview versions become available, the current Neo 2.x consensus node hosts will gradually join the Neo3 TestNet.

The Coronavirus epidemic has caught the world by surprise but the government and the society is managing the situation with utmost efforts. NGD members are all back at work safe and sound, and all operations are running as usual. Although we have to delay some planned offline events such as the much anticipated Neo DevCon due to recent travel and visa restrictions, we are already working hard for a more exciting event which will showcase more progress on Neo3 and ecosystem projects.

Core Development

In January we focused on bringing libraries such as neo and neo-devpack-dotnet in line with the latest NeoVM changes, and fixed some hidden vulnerabilities. These updates form a critical part of Neo3 Preview2, aiming to reduce many contract development constraints and better facilitate the needs of developers.

Another interesting area of progress was dBFT 3.0. NeoResearch has published a pre-release recently, which focuses on multiple redundant proposals to reduce the burden of a single Primary. More details are still being researched, including potential changes to the economic model and improvements to node distribution.

Neo3

Neo

Upgraded to latest NeoVM version (Neo.VM.3.0.0-CI00201). #1374

Added contract ID by using a global counter. #1405 #1400

Allowed client to verify imported blocks. #1415

Added data size non-negative check in DecompressLz4. #1381

Set limits in MerkleBlockPayload. #1377

Removed notifications from ReferenceCounter. #1422

Fixed undefined layout behaviours: UInt160, UInt256. #1387

Fixed parallel transaction verification bug. #1408

Continued dBFT 3.0 discussion

NeoVM

Reverted boolean type removal. #274

Added new unit tests. #276

Added pointer script check. #280

Allow the use ofOperandSizeAttribute outside NeoVM. #285

Fixed INITSLOT bug. #283

Neo Node

Updated Neo nuget. #530

Updated .NET SDK version in dockerfile. #527

Fixed bug with create address. #532

Added dependencies on fedora. #529

Neo Modules

Updated FASTER storage plugin. #180

Improved network fee calculation. #178

Updated NuGet versions of all modules. #174

Neo Devpack .NET

Fixed notequal with null problem. #183

Updated to support the latest NeoVM version. #182

Unified returns. #180

NGD Shanghai

During the first month of 2020, the main focus of NGD Shanghai continues to be the acceleration of the development of Neo3 as well as continued quality assurance for all critical PRs in order to get all of Neo3’s components ready for the next big preview release. We also launched an in-depth investigation into Neo’s infrastructure, looking for ways to upgrade and enhance the development experience of Neo3.

Other areas where we are making great progress are the Neo3 economic model and interoperability protocol. Following preliminary discussions around the Neo3 governance and economic model, a refined proposal has been created to facilitate its implementation. In terms of the interoperability protocol, we have been implementing MPT (Merkle Patricia Trie) in order to add StateRoot to Neo and also to develop the Neo cross-chain relayer and required contracts to support asset transformation between blockchains.

Neo3

Assisted in adding smart contract ID to solve the contract redirection problem.

Added boundary checking for the Neo cryptographic library.

Replaced FIFOCache with HashSetCache for caching transactions in order to improve Node performance.

Fixed a bug for Nep5Tracker not updating account balances under certain scenarios

Finished testing neo-celer channel locally.

Performed in-depth investigation of Neo development tools and upgrade points to advance and improve Neo3 infrastructure.

Continued to develop components required for cross-chain protocols, including Go SDKs, cross-chain contracts, etc.

Neo3-GUI: started to develop wallet model while designing UI/UX in parallel.

Neo3 PR quality control: finished 37 PR tests, following up 10 PRs.

Implementing Merkle Patricia Trie for Neo3, 80% complete.

Implementing new block syncing mechanism based on block index, 80% complete.

Simulating node performance tests under different locales, 80% complete.

NGD Seattle

NGD Seattle made progress in supporting Python in the Neo Toolkit for .NET, targeting a preview release for Neo DevCon. Version 1 of the Neo Toolkit for .NET was launched alongside the Lunar New Year and reported strong community feedback. In regards to Neo3, NGD Seattle is in the planning stages of creating Neo 2.x to Neo3 migration tools for C# smart contracts and will sim-ship the Neo3 version of the Neo Toolkit for .NET shortly after preview availability.

Neo2.x

Neo Toolkit for .NET v1 launched with the Lunar New Year. Very strong feedback from community and input has provided momentum for this release.

Neo Toolkit support for Python is now in progress; we anticipate providing our community with a preview release at DevCon to continue the feedback cycle.

Planning in progress for Migration Tools from Neo 2.x to Neo3 for C# Smart Contracts. More to come on this. Please watch this space.

Neo3

Neo Toolkit for .NET support for Neo3 will sim-ship very shortly after the preview availability.

Community Development

Much of the work completed by community development groups in January comprised of improvements to existing projects or further iterations on the path to Neo3.

Next resolved several bugs in its NeoLine mobile wallet and implemented UI optimizations, while the NeoLine browser plugin also received some attention. Next made various updates to its NeoTube explorer, providing additional statistics for GAS transactions, and making some infrastructure changes.

NEL made some adjustments to its own blockchain explorer, modifying styles and making other quality of life improvements. Further, a language selection option was added to the Teemo extension’s wallet creation page.

Neo SPCC continued development on NeoFS and NeoGo and made over a dozen new version releases across its entire suite of projects. Notable NeoFS achievements included stability improvements regarding memory allocation and fault recovery, while a prototype of the reputation system was also implemented.

COZ released a new version of Neon Wallet that included split-key wallet imports that can be leveraged as an alternative to multi-sig wallets, and also to allow third parties to compute vanity public addresses. Extensive work was also dedicated to the continued design and development of Neo3-Python.

Full details of all community development progress in January can be found below.

Neo Saint Petersburg Competence Centre

NeoFS

Improvements to memory allocation in NeoFS Node.

New Object-model for PUT: pipeline as a stream without pre-processing before upload.

Persistent consensus state for NeoFS nodes has been implemented: Inner Ring nodes have the possibility to repair their state or load it locally after faults.

Extended object’s read operations functionality (raw read, non-assembled node).

The prototype of the Reputation system for nodes has been implemented.

Implemented historical weight estimate of global trust (Reputation system).

dBFT in the NeoFS has been updated (improvements and bug fixing).

Verify object and session token routines now perform locally without Inner Ring key manager.

New releases:

Neofs-node v0.2.7, v0.2.8, v0.2.9, v0.2.10 Neofs-cli v0.2.4, v0.2.5 Neofs-dropper v0.2.7, v0.2.8 Neofs-api (old neofs-proto) v0.2.9, v0.2.10, v0.2.11, v0.2.12 Neofs-crypto v0.2.3 Neofs-gw v0.2.7 Neofs-proto (new) v0.0.1

NeoGo

Reworked logging using uber/zap.

Added support for single-node setups.

Improved networking and consensus subsystem based on benchmarking results.

Extended Go smart contract compiler support for language features.

Benchmark tool for Neo nodes in Go and C# implementation.

COZ

Neo3-Python

Added smart contract manifest support (with ABI, features, permissions and groups) + ~50% test coverage.

Updated the cryptography core package to support ECDSA signing and verification to support the previous point.

Studied up on CFFI, Python.boost, pybind11 and CPython’s extension API. Prototyped some in order to be able to make a sound choice for the neo3-python VM extension.

Started the extension implementation.

Studied neo-vm 3.x changes to clarify/validate design intentions.

Neon Wallet

Performed work and refactoring related to integrating neon-js v5.0.0-next into Neon wallet in order to support Neo3.x (WIP).

Rewrote authentication modules to work with Neo3.

Full regression testing and bug triage on Neon 2.4.

Release of Neon 2.4.

Project planning around Neo 2.x => Neo3 migration as related to Neon.

Design, planning, and copy gather for internationalization/translation effort

Dependency updates.

Neo3-preview

Implemented responsive styled README.md.

Other

Continued R&D on education platform.

R&D on neo-local / neo-halite merge integration.

NeoResearch

Neo2.x

Finished detailed report on dBFT technology and perspectives. Proposal of a dBFT 2.0+ consensus, with extra resilience against synchrony attacks.

Neo3

Finished detailed report on dBFT technology and perspectives. Proposal of some variants for dBFT 3.0 consensus, with multiple block proposals and safe participation for staked p2p guest nodes during consensus.

Fixes and Changes

LibBFT project has fixed major memory leaks and is ready for large scale testing.

neocompiler.io platform backend was renewed and improved by adopting kind security recommendations from Red4Sec community.

NEXT

NeoLine mobile terminal

Android latest version 1.4.1 & iOS latest version 1.6.1

Added message center module to optimize message push function.

Optimized the UI layout of some application models.

Optimized the third-party application jump process.

Optimized application search box logic.

Fixed the problem of adapting the page size of newsletter sharing on some models.

Fixed known and reported bugs.

NeoLine wallet plugin

Updated asset logos.

Updated exchange rate conversion methods.

Updated RPC node request logic to add protections against timeouts.

NeoTube browser

Added GAS statistics for each address in the last 30 and 90 days.

Fixed known bugs surrounding GAS change statistics for each address.

Updated the server data node.

TestNet data maintenance: deleted data related to invalid assets, positions, transactions, etc.

NewEconoLabs

Neo 2.x

NEL Blockchain Browser:

Fixed bugs that caused small numbers to be displayed in scientific notation.

Modified the style of all transaction information lists in the Neo 2.x version and the transaction information list under the query address. Added UTXO asset change and transaction fee information to the list.

Added transaction fee item to NEP-5 transaction list when viewing contracts.

Teemo Wallet Plugin:

Added language switching option on wallet creation page.

Added Teemo.NEO.addEventListener.

Added Teemo.NEO. RemoveEventListener.

Neo3

Modified the content of neo-debug to adapt to the changes of neo-vm and neo-project, output dumpinfo.

Neow3j

Neo3

Continued the implementation of the Neo3 transaction model.

Implemented Neo3 addresses.

Performed refactoring to simplify APIs and code complexity for Neo3.

Started the migration from Travis to GitHub Actions.

Red4Sec

Neo2.x

Reviewed all the January pull requests in all Neo 2.x projects.

Neo3

Reviewed all the January pull requests in all Neo3 projects.

Update neo-resilience in order to test the latest Neo3 changes:

Fix txgen node build.

Fix Logs export bug.

Better error handling for docker builds and executions.

Updated consensus wallets.

Updated txgen wallet.

Compile LevelDB, SystemLog, and RpcServer plugins from source.

Updated Stats plugin.

Updated TxFlood plugin.

New Basic test.

Renamed neo repo names.

Alienworks

Interactive Tutorial

Completed Lesson1 (Typescript).

Monitor

neonode.io

Added mempool function.

Added analysis function.

neostate.io

Updated UI.

MainNet service is online.

All problems on were solved on TestNet and the platform is ready to provide service in February.

Marketing

January was rather a shorter month due to the New Year and Chinese New Year holidays. Besides celebrating the festive spirit with the community, the marketing team also hosted several important NeoLive guests who shared insights on the latest happenings within the Neo ecosystem.

Marketing Activities