It is no secret that the world is facing significant challenges in the face of the COVID-19 pandemic. Neo is a global community with contributors from all over Europe, Asia, North America, South America, and Australia, and everyone's way of life has been touched in some way by our shared adversity.

Neo is lucky in that our work is distributed and remote by nature, and so we are able to continue our mission during this crisis in ways that others are not. However, we are cognizant of the fact that in times of hardship, above all else, taking care of ourselves and our loved ones is the number one priority. We encourage the community to stay safe and follow directions issued by your local governmental authorities so that together we may defeat COVID-19 and return to a sense of normalcy.

Neo3 continued to progress in March with much discussion around its governance mechanism and the ongoing development of oracles and state root features. As a result, Neo3 Preview2 is expected to be deployed soon, which will include new features such as improved Neo CLI commands and performance, updated Akka for better P2P, a refactored plugin engine, and more.

The Neo Foundation completed its financial review for 2019 and expects to release the 2019 Fiscal Year Financial Report in April. The report will detail expenditures and financial positioning of the Neo Foundation up until December 31st, 2019.

March also saw milestone releases from projects within the ecosystem. Incognito completed a privacy bridge between the Incognito Wallet/DEX and the Neo blockchain, offering users in the Neo ecosystem access to anonymous transactions. The NeoLogin team developed the SmartBNB protocol, a cross-chain solution intended to allow tokens on Binance Chain to use Neo smart contracts. And, Moonlight launched its MVP dubbed “Copernicus,” allowing for the creation and sharing of professional profiles, basic analytics tools, examples for attribute verification, and automated self-sovereign identity creation.

The full monthly report can be read below.

Protocol Development

During March, Neo core development focused on preparation of the Preview2 release, which is intended to enable developers to begin work on tools and applications that will integrate with Neo3. New features such as the GasLeft syscall are designed to help make Neo3 contracts more flexible, and a C# NEP-5 template for Neo3 will be available in the devpack for testing.

Additionally, priority has been placed on finalizing the Neo3 governance mechanism, which is hoped to be completed by the middle of Q2. As discussions are ongoing, details will be revealed once the initial implementation is finalized. Further, Neo continued to work on the development of the built-in oracle and state root features. During the implementation, new ideas were discovered that could potentially improve these solutions; these directions are currently being researched.

Neo Core

Renamed OracleResult to OracleResponse

Updated Akka to 1.4.2

Added GasLeft syscall

Send RelayResult to event stream

Limit the max height for some syscalls

Replaced THROWIFNOT with ASSERT

Added system fee burn mechanism

Adjusted charges for storage writing and added payback for deletes

Completed Oracle Syscall

Added Oracle policy native contract

Removed parallel transaction verification

Optimized the wallet UT

Fixed change password function

Fixed UT for manifest modifications

Fixed bug in contract update/destroy

Fixed BigInteger0 storage outputs null

Fixed ExtendTimerByFactor precision

Completed 62.12% of PR test coverage in February

Completed 90.56% of automated test tool development

Began work on the documentation, the latest version will be published alongside Preview2

Neo VM

Added tests for KEYS, VALUES instructions

Added TryPopInterface

Added ASSERT and ABORT opcodes

TryPop shouldn't change the state of the stack when it returns false

neo-node

Refactored node commands

Fixed GAS decimals

neo-modules

Removed GetBlockSysFee

Deal with contract destroy

Adapted RpcClient to modules

Fixed balance not changing for non-transfer tx

Fixed FASTER plugin

neo-devpack-dotnet

Added Runtime.GasLeft

Added Features in Template.CSharp project

Added support for static string array

Added type convert

Updated opcodes

Disabled warnings

Created NEP5 Template for Neo3

Resolved visual studio messages

Using attributes to fill manifest Extra property

Updated nugets

Renamed commands

Changed -o not required

Optimizer for NEF scripts

Fixed a bug about convert func

Fixed a vb value convert problem

Fixed template neon format

Fixed coverage results

Fixed the number of NEWARR

Governance and economic model

Finalizing discussions on the Neo3 governance mechanism

Added system fee burn mechanism

Discussed free transactions for NEO transfers and voting

Neo Proposal

Reverted NEP-3 and NEP-6

Amended NEP3

Amended NEP6 for Neo3

Fixed broken link

Built-in Oracle

Completed 40% of the built-in oracle: connect OracleCache, oracle service.

Some new schemes were proposed, more details are available in PR#1513.

Infrastructure and Tools Development

Through March, NGD and Neo's development communities continued to balance their efforts between maintaining existing infrastructure and working on Neo3 integrations. NGD Seattle noted that its toolkit architecture has been made ready for Neo3 integration, which it intends to support alongside Neo2. The toolkit has also been updated with support for Python smart contract development and debugging.

Neo SPCC continued to cover ground on its object storage service NeoFS, improving the node reputation system and releasing the NeoFS CDN. The team also achieved feature parity with the core C# client with its Go node implementation, NeoGo. Development is now underway on the Neo3 version, beginning with contract manifests and native contracts.

With its version 2.4.0 release, neow3j provided an added layer of convenience for Java developers that wish to interact with NEP-5 contracts on the Neo2 network. Work is also underway to integrate the library with Neo3, with several OpCode related updates and automatic network fee calculation now implemented.

Neo-GUI

Basic core functions have been mostly developed, including wallet, contract, and blockchain data display, ready to follow the Neo3 Preview 2 release.

Cross-chain

Development of support for Neo2 access to the cross-chain protocol test network.

Neo Blockchain Toolkit for .NET

Architecture is ready for Neo3 and will support Neo3 alongside Neo2.

Added AVM debug info support for Python (i.e. the debug info format used by Neo Blockchain Toolkit Debugger).

Toolkit now has first-class support for smart contract development in Python.

Neo Visual DevTracker

Added pre-load support and the new Storage Explorer.

NeoFS

NeoFS ACL (Access Control List) has been designed; basic prototype of NeoFS ACL has been implemented.

New data replication model and scheduler have been implemented.

Adaptive queue size for object replication routine has been implemented.

Sharded index/blob storage for NeoFS preliminary design.

Billing (in/out) traffic metrics for Object Service have been added.

Reputation system improvements have been implemented.

Http-gate and services improvements.

Mathematical models for behavior assessment of nodes in the NeoFS reputation system have been created and methods for calculating threshold values for a node ban have been received; a node ban procedure has been implemented.

Object transformers library improvements.

Inner Ring nodes recovery after failures (or complete data loss) has been implemented.

Code refactoring of the NeoFS object service for coming v0.6 release and a set of performance improvements and bug fixes.

Released NeoFS CDN (Content Delivery Network). Now the content uploaded to NeoFS network can be requested via an independent CDN network layer with caching, geo proximity optimizations and other “big CDN” features.

Releases: Neofs-node: v0.5.1, v0.5.2, v0.5.3; Neofs-api: v0.4.1, v0.4.2; Neofs-gw: v0.4.0.



NeoGo

neo-go version 0.74.0 (Neo 2.0 track), including: C# node compatibility fixes. Complete wallet implementation. Complete RPC (both client and server) implementation.

Neo 3.0 development with contract manifest and native contracts mechanism implementation has been started.

Events

St. Petersburg State University student workshop (showcasing Neo smart contract development in Go using neo-go) on 13th of March.

Neon Wallet

Addition of Chinese, Portuguese, Arabic, Italian, and Turkish translations.

Clean up of various small UI bugs stemming from changes.

Implementation of language settings toggle on the main login screen.

Updates to circleCI build configuration to fix issues related to electronuserland docker image updates and fixed broken build steps.

Full npm security audit and updates to core dependencies that Neon relies on - ASLint, Jest, React etc.

Removal of storybook library and associated dependencies and files.

Neo3-preview

Various UI enhancements (reviewing/testing pull requests and discussions on slack).

Neo2-explorer

Patched moto3 library to persist S3 objects in Docker.

Built custom Lambda router to replace AWS API Gateway service in Docker.

Created Dockerfile for DynamoDB-local, moto, and Lambda router container.

Updated the Lambda functions to work with locally emulated S3 service.

Deployed Docker image to public IP and began indexing of Neo2 TestNet.

Began research of API documentation platforms.

Neon-js

Fixed all major vulnerabilities from NPM packages.

Created a transition method for Neo2 to Neo3 wallets.

Moved timeout out of headers in RPCClient.

Discord security/support

Provided support to multiple new Neo developers via public chat and DM.

Manually banned at least 350 spambots raiding the server.

Researched spambot filtering methods for Discord.

Built Discord plugin to facilitate mass banning of spambots during a raid.

Automatically banned/prevented at least 500 more spam bots from joining.

Built Discord plugin to track known admin imposter accounts' username changes.

Built Discord plugin to monitor GitHub for new Neo-related malware repositories.

Neo3-python

Continued neo-vm extension implementation.

NeoCompiler Eco 3

Now operational with up-to-date features of Neo3 as of the master branch on March 31st, with online availability for the community planned by the end of Q2/2020.

The MILP model

The Mixed Integer Linear Programming (MILP) model has been completed and optimized with assistance of a Branch & Cut technique provided by CPLEX.

Initial results proved the sporks of dBFT 1.0 and also allowed initial studies on scalability. The model has also been extended to cover dBFT 2.0 with additional phases. For the latter, sporks were not found. In addition, a proposal for dBFT 3.0 that contains more than one primary in each consensus round has been formulated.

Additional research and development is being done on plotting the results provided by the mathematical model in a didactic manner. As soon as this is finished the team will proceed with the writing of a scientific paper with the findings. The current three available models can be found here.

Neo Tracker

New version released with updated color scheme and logo to match Neo’s branding style.

Coin balances are now more reliable and in-sync with the rest of the blockchain.

Added a new “Ecosystem” page to Neo Tracker that promotes projects and groups working on Neo.

NeoLine Wallet Mobile

Changed the main UI color.

Optimized the visual presentation of the transfer page.

Adjusted the data structure of the message notification.

Corrected inaccurate expressions in some international languages.

Added account module.

Android (Latest version 1.4.4) Added Korean and Japanese versions. Fixed the issue where the assets on the transfer page showed unknown. Fixed the issue where the amount displayed on the transfer details page was incorrect. Fixed the problem where the more information data could not be loaded. Fixed version update progress bar.

iOS (Latest version 1.6.6) Added Korean and Japanese versions. Fixed transfer amount display issues. Optimized the transfer code.



NeoLine server

Developed a wallet in-app draw tool,

Cloud wallet service development, adding Golang SDK.

Optimized on-chain transfer costs.

Optimized message push.

Neodapp.store

Preparations are underway to migrate neodapp.store to ndapp.org.

The page style and color system have been re-designed.

Banner and event promotion positions have been added.

The Neo dApp page has been filtered and optimized.

NeoRay

Added the ability to switch networks according to the wallet network and display current network information, including MainNet, TestNet, Neo3. We have built a Neo3 private chain to implement Neo3 contract release and debugging. NeoRay is temporarily connected to the Neo3 private chain and will be connected to the Neo3 TestNet after Neo3 Preview2 is launched.

The contract deployment page and contract call page have been modified so that the corresponding content can be displayed in different networks.

Added the Neo3 version of the compiler so developers can compile the Neo3 code. Manifest and NEF files can be downloaded after compilation.

In the Neo3 version of the compiler, details of code compilation errors have been added.

The contract deployment function of Neo3 version has been realized.

Upgraded the transaction assembly method for contract calls.

The Neo3 node has been upgraded so that it can return to the dumpinfo of the trial contract to later allow developers to debug the contract without sending the transaction.

Added the ability for NeoRay to deploy contracts on MainNet.

Teemo for Neo3

The Teemo wallet now supports NeoRay Neo3 private chain.

Replaced SDK, modified the method of address generation and private key import.

Updated transfer, invoke, invokeGroup, invokeRead and other methods for Teemo functions such as transaction sending and contract invocation.

Updated the deployContract interface for the contract deployment function of NeoRay.

Updated the contract invocation function of the sendScript interface for NeoRay.

Neo3 Integration

Adapted the process of building and parsing address scripts.

Updated OpCodes and InteropServiceCodes (e.g. replaced THROWIFNOT with ASSERT or addition of PUSHINTs) and introduction of their GAS prices.

Updated the ScriptBuilder due to recent OpCode changes.

Implementation of automatic network fee calculation.

Updates and fixes for Neo 2.x

Released version 2.4.0.

Added NEP-5 class, bringing a convenience layer to users for interacting with NEP-5 smart contracts. Resolves #70.

More unit tests (increased overall test coverage from 67% to 70%), due to issues #70, #34, and others.

Updated reactive library from rxJava1 to rxJava2. Resolves #35.

Various code style fixes.

Monitor

neonodes.io Currently designing script for API matrix function. Analyzing api error logs. Drafted new version of product description.

neostate.io Fixed time extension module. Frontend performance optimization.



Tutorial

C# Adding L02 Ch02-Ch10. Fixing bugs in previous content. Updating L01 Chinese version.

TypeScript Adding unit test for L02. Adding L02 Ch03&Ch04 script.



Neo3 Integration

Testing all JSON-RPC API in Neo3 and preparing to extend functions of API matrix feature to support Neo3.

Marketing and Operations

In March, the NGD Shanghai marketing team worked on many online campaigns, with Neo Column and Neo Live as main focus areas. Several authors have already begun providing content to the Neo column by publishing articles on a wide range of topics, from macro discussions on DeFi trends to the technical aspects of blockchain development.

Efforts have also continued in fine tuning the format and promotion strategy of the Neo Live Webinar to encourage more community engagement. In addition, the marketing team is also busy preparing to deliver an immersive Neo experience at upcoming blockchain events in the first half of the year as many of them are going virtual.

Another project under development is a Neo3 knowledge contest mini-program on WeChat, aiming to raise awareness of Neo3 within the Chinese community.

Throughout the month, articles have been regularly published to the new Neo Column Collection page.

5th March, Ying Liu, co-founder of NeoFish, and Longfei Wang, full-stack manager at NGD appeared on the Neo Live Webinar to talk about NFTs, the NeoFish game, and NFT in-game economics.

12th March, Edson, co-founder of NEXT and creator of NeoLine wallet joined the Chinese community on Neo Live WeChat to share the latest developments of NeoLine and discussed how quality products would enhance community engagement. (English Transcript here)

25th March, the Neo Foundation announced that it had completed the financial review for fiscal year 2019 and would release the Neo Foundation FY 2019 Financial Report in early April.

30th March, Tyler Adams, co-founder of COZ and Moonlight, and Justin Jin, Senior Engineer from NGD, joined Neo Live to discuss how blockchain empowers digital identity. As a follow up, a Q&A thread was set up on Reddit until the 6th April to collect questions from the community regarding the topic, to be answered by Tyler and Justin.

30th March, NGD released a Chinese infographic on recent updates from various projects within the Neo Ecosystem.

30th March, NGD community operations, Songping Que, appeared on the Neo News Today Podcast to discuss the effects of the coronavirus on China-based operations and Neo’s global development community.

Ecosystem Growth

Several projects within the Neo ecosystem achieved milestones in March. Development within the Neo ecosystem is growing in multiple areas such as privacy, DeFi, identity, and social communications. Many of these ecosystem projects are positioning themselves to contribute to the establishment of the next-gen internet.