BLOG March 9, 2020
February saw the world begin to come to terms with the spread of the coronavirus, which has caused disruption to travel, events, and everyday workplace routines. Neo Global Development employees in Shanghai are safe and well, although encouraged to work from home wherever possible. We encourage all community members to stay vigilant and follow recommended guidelines for protecting themselves and their families against infection.
As of this month, we have broken the monthly report into four new categories: Protocol Development, Infrastructure and Tools Development, Marketing and Operations, and Ecosystem Growth. It is our hope that the new format will allow readers to more easily gain insights into the work completed by Neo’s global community and the growth of the Neo ecosystem.
The development of Neo3 continued in various aspects in February. Some highlights included detailed discussions concerning key aspects of Neo3 such as its governance and economic models.
Noteworthy efforts from development groups included the milestone release of Neo Toolkit for .NET v1.0 by NGD Seattle, which included major improvements to the Visual DevTracker component, and a new Mixed-Integer Linear Programming (MILP) model for generating dBFT proofs, designed by NeoResearch to help refine its final proposal for dBFT 3.0.
The NGD Shanghai marketing team launched a new version of Neo Live, building upon the Q&A Telegram concept and expanding into a webinar format for more detailed conversations. The first guest of the new format was Andrey Bugaevski, head of growth from IncognitoChain, who discussed privacy in the blockchain world.
Finally, the efforts of the Ecosystem Growth department bore many fruits in the way of partnerships with: Tor.us, a gateway to decentralized ecosystems via Google, Facebook and other OAuth logins; Blockgeeks, a blockchain education platform; Van Lang University in Vietnam; Suterusu, a privacy-preserving blockchain protocol; and more.
The full Neo Monthly Report can be read below.
In February, the Neo development community held in-depth discussions regarding the Neo3 governance model and focused on the development of built-in oracles and state root. Neo is hoping to complete these critical Neo3 components by the middle of Q2 to achieve a more efficient on-chain governance model, provide more accessibility to network resources, and ensure better block data consistency.
Good progress was also made regarding the Neo3 economic model which many are interested in. Neo is currently exploring adjustments for all kinds of network fees Neo3, which will be greatly beneficial to all users.)
- Updated to the latest neo-vm version.
- Allowed multisig contract in wallets.
- Added salt and NEP2 to db3 wallet.
- Fixed dotnet-format.
- Fixed ToStackItem null item.
- Completed 20% of stateroot: add mpt.
- Designed node health and security mechanism.
- Discussed storage payback mechanism.
- Discussed alias service.
- Completed 68% of PR test coverage in February.
- Completed 91% of automated test tool development.
- Fixed dotnet-format.
- Completed 80% of try-catch mechanism.
- Upgraded neo to 3.0.0-CI00855.
- Fixed dotnet-format.
- Fixed NEP5 test.
- Updated Neo nuget to 3.0.0-CI00855.
- Fixed dotnet-format.
- Fixed RpcServer getstorage.
- Globally formated engineering codes.
- Fixed dotnet-format.
Governance and Economic model
- Discussed Neo3 governance mechanism.
- Discussed fee structure adjustments.
- Completed 30% of built-in oracle: syscall, policy contract.
Determined the architecture design scheme, and implemented the execution plan. Meanwhile, the data module of the wallet is under development, with the overall progress of 20%.
- Added checkwitness on invokescript.
- Fixed SpentCoinState.Clone.
Infrastructure and Tools Development
During February, community development groups maintained the course set during the previous month. Efforts are ongoing to migrate existing tools from Neo2 to Neo3, ensuring that infrastructure is ready to meet the needs of developers building on Neo3. In addition to Neo3-focused developments, teams have also continued the improvement of resources for use on the existing network.
NeoResearch announced a new Mixed-Integer Linear Programming (MILP) model for generating dBFT proofs, designed to help refine its final proposal for dBFT 3.0. The team also began development of a Neo3 version of its nvm-learn project, an interactive tutorial for learning how NeoVM works. The new version, nef-learn, highlights changes in the Neo3 VM and Neo Execution Format (NEF).
NGD Seattle released the milestone 1.0 version of its Neo Toolkit for .NET, which brought major improvements in particular to the Visual DevTracker component. In addition to facilitating block exploration across multiple Neo networks, the DevTracker UI now provides user-friendly alternatives to many of the toolkit's command line operations.
COZ completed integration of react-intl into the Neon wallet as part of its internationalization efforts, adding with it translations for Korean, French, German, and Vietnamese. Team members working on neo3-python also began discussions with NGD Seattle, considering potential neo-boa improvements required for its inclusion in the Neo Blockchain Toolkit for .NET.
Neo SPCC rolled out a reputation system for nodes on NeoFS, decoupled the service’s API from the neo-fs proto library, and completed the NeoFS core smart contract in Go. Updates were also pushed to NeoGO, solving issues with networking and dBFT that intend to ensure compatibility with the core C# node.
Full details of all community development progress in February can be found below.
Completed the go-sdk for the interoperability protocol, developing the interoperability contract and relayer.
Ecosystem projects support
- The integration of NEO into Edge wallet is under development with code expected to be submitted in March.
- Continuous communication with TradeTrust to develop the technical architecture.
Neo Toolkit for .NET
- The Neo Toolkit for .NET v1.0 was released as a milestone version with some major improvements, such as the ability to pre-load GAS in Neo-Express and the inclusion of a UI for the Visual DevTracker.
- A video walkthrough released by NeoNewsToday is here.
Development on Neo-FX C# and Neo Managed Service on Azure.
- Data Audit procedure review and improvements.
- Reputation system for storage nodes and Inner Ring nodes has been implemented.
- Procedure for adding or removing Inner Ring nodes has been implemented.
- NeoFS API has been separated from neofs-proto,
- NeoFS C# API has been started.
- NeoFS smart-contract in Golang has been created.
- GetRange and Search operations now support streams.
- Get operation has been improved to work with sliding window for complex objects.
- A new component to synchronize epochs in storage nodes has been implemented.
- Signatures of validators to Inner Ring events.
- Signatures of all dBFT messages and transactions to RFC-6979.
- A large number of performance improvements, timeouts and bug fixes.
- All new releases versions summary:
- Neofs-node: v0.2.11, v0.2.12, v0.3.0, v0.3.1, v0.4.0, v0.5.0
- Neofs-cli: v0.2.6, v0.2.7, v0.3.0, v0.3.1, v0.4.0
- Neofs-dropper: v0.2.9, v0.3.0
- Neofs-api (old neofs-proto): v0.2.13, v0.2.14, v0.3.0, v0.3.1, v0.3.2, v0.4.0
- Neofs-gw: v0.2.8, v0.3.0, v0.3.1, v0.3.2
- Fixed networking and dBFT issues (including compatibility with C#), added policy support.
- Redesigned mempool, refactored RPC code.
- Added missing wallet functionality (key management, asset management, GAS claims).
- Improved Go smart contract compiler.
- Implemented voting processing.
- Implemented gettxout, getcontractstate, getstorage RPC methods.
- Implemented improved CHECKMULTISIG implementation that is ~20% faster.
- All new releases summary:
- NeoGo: v0.72.0, v0.72.1, v0.72.2, v0.73
- Full integration of react-intl library to support internationalization effort.
- Full language support for Korean, French, German, and Vietnamese translations.
Addition of light theme.
- NPM security audit and updates to fix numerous serious security vulnerabilities related to NPM dependents.
- Fixed emitAppCall issue with adding a 00 argument when no parameters are passed.
- Continued neo-vm extension implementation.
- Discussed various `neo-boa` enhancements with NGD-Seattle to support neo-express, and processed CLI creation and some other minor items.
- Ported DynamoDBPublisher C# plugin to handle Neo2 blocks/transactions/UTXOs.
- Modified Neo3 Python AWS Lambda functions to work with Neo2 data.
- Created Serverless config to store data in either AWS or localstack.
- Implemented split-data scheme to store overly large blocks/transactions in AWS S3.
- Setup and testing of localstack as possible local AWS store; determined it is not stable enough.
- Began creation of custom Docker image to replace localstack with DynamoDB-local, moto and custom Lambda router.
Updated jquery, mixin-deep and lodash NPM packages to latest versions.
Updated DetectImposters Discord plugin to fix issue caused by removal of markGuildAsRead API call.
New research initiatives
- Inspired by the positive feedback on the NeoVM tutorial, a new tutorial focused on NeoVM3 and Neo Execution Format (NEF): neoresearch.io/nef-learn (still under construction) has been started.
- A new Mixed-Integer Linear Programming (MILP) model has been drafted for proof of dBFT involving concepts of optimality and lower bounds
Events and publications
- Some NeoResearch members participated in the “Creating.City” event in Niterói-RJ, Brazil on February 17th. The event was held to launch a book that focuses on smart and digital cities, covering technologies such as state-of-the-art computational techniques to current discussions regarding drones, blockchain, smart contracts and cryptocurrencies. The book is published by Springer in a series on Urban Computing.
- Published the paper "Mobility, Citizens, Innovation and Technology in Digital and Smart Cities" on Future Internet, Volume 12, Issue 2 (February 2020), which includes a draft smart contract developed on the Neo blockchain for managing transportation systems of smart cities. The scientific work mentions Neo in several parts of the study, and as of March 3rd, is the most viewed contribution of the issue with 904 visualization and 324 downloads of the full-text.
NeoLine mobile terminal
- Android version updated to 1.4.2, iOS version updated to 1.6.4.
- Optimized pop-up window logic for application modules.
- Support for languages under development.
- Bug fixes.
NeoLine wallet plugin
- Latest version 1.2.1.
- Added invokeMulti dAPI & docs.
- Updated block browser logo.
- Fixed known bugs.
- Increased the number of assets supported by MainNet and TestNet.
- Updated the detection and execution module for NEP-5 asset migration.
- Fixed a bug where in some cases NEP-5 transfer records were not recognized due to special contract bytecode.
- Set up a Neo3 test environment and deployed the NEO-CLI v3.0.0-preview1 node.
- Started the squirrel project for parsing block data (including all transaction data) and database storage.
NEL blockchain browser
- New transaction list page is now mobile compatible.
- Fixed an issue causing transaction UTXO data analysis to stop.
- Added 2019 active address statistics in the background.
- Developed a project to analyze the internal transactions of contracts, including the operations of calling, creating, upgrading, and destroying between contracts. The background interface and some data analysis on Neo2 TestNet have been completed and front-end pages are now being developed.
Neo3 contract debugger
- Modified the code of Neo3 nodes and added the contract debugging function.
- Modified the contract compiler to increase data output.
- Deployed related projects to the server.
- Modified the NeoRay compilation API project and fixed the problem where it did not properly return nef and map files.
- Modified the local DebugGUI project to test and debug the contract.
- Upgraded pubkey's address conversion method, modified transaction structure related methods, and completed SDK transfer function.
- Added SmartContract module, support for the analysis of nef and manifest files, and completed the function for deploying contracts.
- Modified the Contract class to upgrade related functions such as deployment calls.
- Finalized the migration from Travis to GitHub Actions - only for Neo3, branch develop-3.x and master-3.x.
- Adapted the VerificationScript to Neo3 (work in progress).
- Adapted the multisig addresses to Neo3.
- Evaluated the ASM library to manipulate .class files (to be used by the neow3j-compiler).
- Started adapting JSON-RPC methods to Neo3 (work in progress).
- Updated lesson 1 content and smart contract.
- Developed lesson 2 and completed topics:
- Class properties
- Maintained project's documentation.
- Developed API matrix function.
- Added one seed node on Neo3 TestNet
- Began to test and integrate with Neo3 TestNet.
- Fixed RPC module.
- Upgraded to .NET core 3.1.
Marketing and Operations
February was rather a turbulent month for Neo and the entire world. Some of Neo’s planned offline events were affected due to the worldwide spread of the coronavirus. Although the NGD Shanghai marketing team had to spend the first half of the month working remotely from home, it still worked hard to deliver more ecosystem exposure and community engagement, especially via online spaces.
5th Feb, the second issue of Neo Insights was published, discussing how blockchain could help to resolve some of the social issues that arose with the coronavirus outbreak.
17th Feb, the NGD marketing team started calling for content contributors to join as Neo columnists for exposure on various channels. Apply here.
20th Feb, a new format for NeoLive was successfully held via Zoom Webinar with Andrey Bugaevski, head of growth from IncognitoChain and Sarah Song, EcoGrowth manager from NGD discussing the topic of “Privacy in the Blockchain World.”
26th Feb, Sergey Vasylchuk, the founder of Everstake, represented Neo by giving a speech at the Binance Meetup in Kharkiv, Ukraine. Everstake hosts a consensus node on the Neo3 Preview1 TestNet.
27th Feb, Huang Lin, CTO from Suterusu joined the Chinese community on WeChat for a NeoLive session to discuss the recent partnership between Neo and Suterusu, and how could Suterusu help to build a layer 2 privacy protocol on Neo.
February was quite a fruitful month. The Neo ecosystem saw some significant progress in DeFi projects such as Liquefy, Nash and Switcheo. On the other hand, Neo has reached out to more potential blockchain developers around the world through partnerships with online and offline educational platforms. We have also welcomed Torus and Suterusu joining the Neo ecosystem as integral parts of the Next-gen Internet.
Neo will become a node on Torus, a gateway to decentralized ecosystems via Google, Facebook and other OAuth logins, who will add support for Neo in the second half of the year.
NEO tokens are now listed on Cex.io and Simex.Global.
Privacy-preserving blockchain protocol Suterusu will develop a Layer 2 privacy protocol based on Neo.
Neo development courses are now available on the Blockgeeks education platform.
Neo partnered with Van Lang University in Vietnam to enhance academic interactions between lecturers and professionals, organise courses on Neo and blockchain for students, and plan other educational activities as services to students and the public.
Neo joined the Blockchain Education Alliance, linking top global universities, and gaining access to developer and business talents. Neo will contribute by creating course curriculum and conducting online and offline courses.
Updates from current projects：
- Liquefy, a Hong Kong-based firm specializing in digitization of assets and digital securities, has completed integration of NeoID into its platform based on Seraph ID.
- New leadership took over the Narrative project and renamed it to pubNooks.
- Nash added support for claiming GAS on both its web and mobile (iOS and Android) wallets.
- Guarda Wallet added support for claiming GAS.
- NeoHealth, a project aiming to remove technologic barriers between care providers and patients, recently released Evidence-Based Medical Guidelines, which is a library of medical guidelines based on verified research and real cases. The system will be utilizing NeoFS, although it is not yet built with blockchain technologies.
- The NeoFish game launched a series of events to celebrate its 300-day anniversary.
- Switcheo Exchange’s SWTH redemption program began on the 6th of March.
- 0xGames started its pre-sale for the Neo version of 0xRacers with special promotions.