BLOG July 10, 2020
Neo Monthly Report - June 2020
For many, June will be remembered for the announcement of the InterWork Alliance (IWA). The IWA is an organization that aims to accelerate the adoption of token powered technologies through the creation of protocol agnostic standards and frameworks.
Neo is proud to be one of five founding sponsor members, alongside Microsoft, Accenture, SDX, and Digital Asset. Other launch members include companies such as IBM, Nasdaq, UBS, Hedera Hashgraph, DID Alliance, Hyperledger, and more.
NGD Seattle’s own John deVadoss sits on the IWA’s Board of Directors and also serves as the head of the tools steering committee. Standards set by the IWA’s Token Taxonomy Framework (TTF) have already been implemented in NGD Seattle’s Visual Token Designer.
Another notable achievement for June was the upgrade of the Neo TestNet to neo-cli v2.10.3-neox-preview1. Building on the work from last month, this update provided two important new pieces of functionality; a new state root feature, and support for the Secp256k1 curve in Neo’s cryptography module.
Together, these two features provide the functionality required for the first implementation of Neo’s cross-chain technologies.
June was also a good month for many ecosystem projects. Both Nash and Switcheo achieved volume milestones, with Nash reaching one million USD in daily exchange volume, and Switcheo tripling its exchange volume compared to May.
NEXT, O3 Labs, Moonlight, and Bridge Protocol also made notable progress, with all projects publishing new releases during the month.
The full Neo Global Monthly Report for June can be found below:
Protocol Development
In June, Neo began merging code related to the state root functionality, and completed the integration of the new index synchronization method. The new mechanism brings dramatic improvements to the block synchronization speed by allowing nodes to request blocks by index rather than first needing to synchronize each block header.
Neo also worked to finalize the design of the Neo3 economic model. Following thorough discussion, an initial implementation has now been developed and is currently undergoing code review.
Neo3
neo-core
- Added plugin Description field
- Added base64 SYSCALLs
- Added StrictUTF8
- Added event name to System.Runtime.Notify
- Added MaxBlockSystemFee
- Added RIPEMD160 syscall
- Added MPT
- Added verification for StateRoot synchronization on neox
- Updated StorageContext.cs
- Allowed to iterate buffer
- Updated to Neo.VM.3.0.0-CI00230
- Allowed call from native contract
- Restricted notifications, which can’t be modified by using clone data.
- Created callback
- Updated to Neo.VM.3.0.0-CI0026
- A value will always be returned now for public methods
- Checked Json.Serialize map keys
- Checked return value of contracts
- Refactored NativeContract
- Checked the parameters count
- GetBlocks now uses block index
- Optimized TransactionAttribute
- Refactored InteropService
- Inventory message stream optimization
- Fixed DataCache.Find
- Fixed ContractEventDescriptor
- Fixed return value check
- Fixed MethodCallback
- Fixed duplicate connection
- Fixed policy check
- Asked for mempool after sync
- PR test coverage reached 63%
neo-vm
- Allowed throw in SYSCALLs
- Added convert methods to types
- Removed RVCount from debug information
- Replaced TryPop by Pop, which can throw exception
- Added DeepCopy for StackItem
- Removed RVCount
- Ensured valid JSON UT files
- Fixed Equal and GetHashCode
neo-node
- Updated neo nuget
- Added 'nativecontract' command
- Now supporting json extension in wallets
- Added description and uninstall restriction for “SystemLog”
- Removed StackItem.ToParameter()
- Added plugins description field
- Updated neo-core nuget
- Added fields to protocol.json
- Moved SystemLog to neo-cli
- Fixed engine.ResultStack.Pop()
- Fixed relay tx
neo-modules
- Updated to Neo.VM.3.0.0-CI00958
- Changed json field names for GetVersion
- Removed system log
- Converted StackItem directly to json
- Added plugin desc and fix ut
- Deleted SystemLog plugin
- Added issue template
- Created generic getunclaimedgas and renamed wallet ones
- Fixed relay tx
neo-devpack-dotnet
- Added hash256 and hash160, RIPEMD160
- Added support for switch integer
- Added support for switch string
- Included path when compiling from source or project
- Updated NEO/GAS/Policy hash
- Created and call pointers
- Fixed ret bug
- Fixed mapping between c# types and NeoVM types
- Fixed operations of string “Concat” and “Substr”
- Fixed enumerator
- Fixed callback with args
- Fixed gen error
Neo2
- Fixed neox 2.x root sync
- Fixed stateroot index check
Infrastructure and Tools Development
During June, Neo development teams continued efforts to update infrastructure to bring it in line with Neo3 Preview2. NGD Seattle released compatible versions of Neo Express and the Smart Contract Debugger to work with Preview2, and Neo SPCC found its NeoGo implementation for Neo3 to have fully compatible storage with the core C# TestNet nodes.
COZ published a public preview of its neon-js SDK for Neo3, alongside internal releases of its Neo3 Python compiler and a Neoscan redesign. Development is also underway on a universal VM implementation.
Community efforts also showed a trend towards producing resources for new Neo developers, such as code snippets and guides. Notable examples include neow3j, which has produced updated Neo2 and Neo3 examples for developers working with Java or Kotlin, and Alienworks, which completed the Python version of its first two interactive contract tutorial lessons.
NGD Seattle
Developer Experience Product Development
- Released previews of Neo Express and the Smart Contract Debugger for Neo3 Preview2. Now available for download from GitHub.
- Preparing for Visual Token Designer Preview release.
Events and Partnership
- John deVadoss assumed the role of chair of the Tools Steering Committee of the InterWork Alliance.
Neo Saint Petersburg Competence Centre
NeoFS
- Switched NeoFS to a new Inner Ring prototype based on Neo sidechain contracts.
- Implemented basic NeoFS ID adapter; everything is ready to be integrated with NeoID or another identity provider for key sync; the next step is to design possible sync solutions.
- Extended ACL support has been implemented.
- Bearer Token (eACL) has been completed.
- Storage Engine Prototype - New MetaBase has been implemented.
- Added Storage stats and metrics (monitoring improvements, container space accounting and etc.).
- Additional tool to compile eACL in JSON format into protobuf binary format has been released.
- NeoFS node releases: v0.8.1, v0.9.0
- API releases: v1.1.0
- NeoFS Golang API releases: v1.1.0
- NeoFS CLI releases: v0.8.1, v0.8.2, v0.9.0
NeoFS Services
- Multi-language support has been added to fs.neo.org and translation is in progress.
- New development environment has been completed and implemented to the development process.
- New CI and automated tests have been implemented for the development process.
NeoGo
- NeoGo TestNet consensus node has been updated with NeoX support.
- RPC adjustments for Neo3 have been made.
- Interop adjustments for Neo3 have been made.
- neox-2.x branch has been merged into master-2.x.
- NeoGo 0.76.0 has been released with NeoX support.
- NeoGo has been tested against neo3-preview2 TestNet, we’re now compatible for storage changes with C# node.
- NeoX documentation has been written.
- neo-debugger support has been updated for Neo3 Preview 2 support.
COZ
Neoscan
- All pages of the new design were completed for an internal release.
- CI/CD integrated.
- Environment moved to staging.
- Completed mobile responsiveness.
- Added new API enhancements.
- Completed domain mapping.
Neon.js
- Released the preview SDK for neo3.
- Completed initial documentation and examples for Neo3.
Universal VM
- Implemented Python bindings and tests.
- BigInteger integration and associated tests completed.
- Identified a clean cross-platform distribution solution.
- Performed work on the interop layer.
Neo-Python
- CI/CD cross platform workflows implemented.
- Performed work on native contract support.
Boa
- Internal neo3 release published.
- Patch release for neo2 to fix a script hash issue in the ABI file.
- Added support for several types.
- CI/CD workflows implemented.
- Main method autogeneration.
NeoResearch
neo-cpp-core
- Embedded wallet functionalities.
- NEP-6 standard will soon be completed using Neo3 standard.
- Encryption of AES has been added with an integration of OpenSSL.
- Other cryptographic operations of the elliptic curve have been revised and tests were improved.
- The model has been migrated to a new tool for Mixed Integer Linear Programming Models in Python.
- dBFT 2.0 has been fully migrated and tested with more integrated tools and Google Colab Python project.
- More experiments were conducted on the search for sporks in dBFT 3.0 and none were found.
- A new speed-up formula was obtained for the proposed dBFT 3.0, in which no additional phase will be required in most of the cases where two speakers are proposing blocks.
Publications
- A dBFT report is being migrated to a journal version in order to be submitted as a paper.
- Another paper involving the MILP model is being written for a Special Session dedicated to Blockchain until middle August.
NEO-ONE
NEO•ONE
- Evaluated then abandoned plan to use Neo C# node in NEO•ONE.
- Began work on using Neo C# VM or COZ C++ VM in NEO•ONE for Neo3 upgrade.
- Fixed race-condition issue with `createClient()` function in NEO•ONE setup.
- Added end-to-end test for the new `neo-one compile` command to increase test coverage.
- Updated the NEO•ONE default network options to include the new live NEO•ONE TestNet node at testnet.neotracker.io.
- Decoupled NEO Tracker dependency from NEO•ONE so users will always have the latest version of NEO Tracker in NEO•ONE.
- Added documentation on deploying smart contracts with NEO•ONE.
- Added initial support for AVM outputs and the Neo Toolkit debug format.
NEO Tracker
- Launched fiat-to-NEO on-ramp feature with MoonPay.
- Evaluated then abandoned plan to use Neo C# node in NEO Tracker.
- Fixed RPX token infinite loading problem.
- Fixed NEO Tracker downtime problems, now at 100% uptime.
Red4Sec
Neo-resilience
- Updated to work with backward incompatible changes in Neo3 development, such as wallet formats, leveldb usage, internal classes, etc.
Code Documentation
- neo3.code-doc.com has been updated with latest changes.
Code Security
- All PRs reviewed within the neo, neo-cli, neo-vm, devpack, neo.org, and neo-modules GitHub repos.
- June security pentest and open vulnerabilities review and reporting.
NEXT
NeoLine mobile
- Android version 2.4.1
- Added NFT support (transactions, transaction records, NFT lists, etc.).
- Refactored API request, including data structure, request method, etc.
- Enhanced user experience and fixed some issues causing flashback.
- Continued to refactor code.
- iOS version 2.4.1
- Add NFT support (transactions, transaction records, NFT lists, etc.).
- Optimized application module rendering mechanism.
- Continued to refactor code.
NeoLine API
- Adjusted the NFT API.
- Adjusted event plan logic.
- Continued to refactor code.
NeoTube
- Adjusted part of NFT API.
- Added NFT transaction logo.
NewEconoLabs
NEL Browser
- Added contract page for Neo MainNet to view the list of all contracts deployed, including contract hashes, deployment time, contract names and authors.
- Fixed the bug where previous versions of updated contracts were also displayed in the list.
NeoRay
- Added a template for the new contract document. When the user creates a C# contract, a standard contract template now opens instead of a blank file.
- Added the debugging function for contract trial run.
- Optimized syntax hints in the contract coding for some common fields.
- Optimized stack information display. Stack information is now updated in real time.
- Fixed a problem where the contract information was displayed incorrectly after the contract was compiled.
Others
- Recompiled and redeployed NELSwap to modify the display of default module and fix incorrect balance display in payments.
- Updated some underlying services to adapt to updates in Neo nodes.
neow3j
Neo3 Adaptations
- Finished JSON RPC integration tests - #94.
- Implemented NEP-9 URI wrapper class - #115.
- Refactored Account and Wallet - #135.
- Checked feasibility for Jackson annotations for deserializing subclasses - #131.
- Restructured Java examples - #1.
- Wrote Kotlin examples for Neo3 - #1.
neow3j-devpack & neow3j-compiler
- Implemented generation of NEF and manifest files - #148.
- Implemented store and load of method-local variables.
- Implemented method calls to syscall- and opcode-annotated methods.
- Implemented support for Runtime syscalls - #144.
- Implemented support for Storage syscalls - #145.
- Implemented support for custom collection classes (e.g. Iterator).
Alienworks
Monitor
- neonodes.io
- Added scatter and heatmap graph to show nodes' exception status.
- Fixed mempool list bug & add function of "copy to clipboard" for transaction hash.
- Added pagination and upgrade style to hash list and exception list.
- Added copy function and upgrade UI style to mempool page.
- Added ID column and scroll bar in API matrix page.
- Refactored and added tooltip to statistics page.
- neostate.io
- Completed the first version of Redis service to optimize initializing performance.
- Tested Redis service for caching ConsensusRewards, Transactions.LastActiveAddresses, ActiveAddresses, BlockTimes, BlockSizes.
Tutorial
- Added smart contract alienfinder.py for Lesson01 and Lesson02.
- Completed python version of L01 & L02 (both Chinese and English).
- Refactored chapter numbering to all lessons.
- Upgraded alien figures.
- Preparing for the alpha version release.
Marketing and Operations
Neo started the month by announcing itself as one of five founding sponsor members of the InterWork Alliance (IWA). The IWA is a platform-neutral, non-profit organization which aims to encourage mainstream token adoption at the business level by developing and promoting network agnostic token standards. Other founding members include Microsoft, Accenture, Digital Asset, and SIX Digital Exchange.
NGD Seattle head, John deVadoss, holds a position on the Board of Directors and will serve as Chair of the Tools Steering Committee.
Neo is also cooperating with the IWA to raise awareness and provide the community with updates via articles and online AMA sessions.
Towards the end of the month, Neo began preparing for presentations for July events, and Da Hongfei published a guest article on Cointelegraph focusing on the macro role of USDT.
- June 2nd, John deVadoss appeared on the second instalment of a two part series on the Neo News Today Podcast to discuss the NGD Seattle branch and its products.
- June 2nd, Neo initiated the InterWork Alliance to accelerate blockchain mass adoption as one of five sponsor members.
- June 18th, John deVadoss hosted a RoundTable session on Enterprise Blockchain at Blockdown 2020.
- June 30th, Da Hongfei published an article titled “USDT: Challenging the USD’s Hegemony, Championing CBDC, and Beyond”.
- Throughout the month, Neo Column writers continued to publish English and Chinese articles on various topics.
Ecosystem Growth
A range of ecosystem projects achieved milestones in June.
It was a good month for exchanges with Nash reaching one million USD in daily volume for the first time, and Switcheo experiencing a 300% increase in volume when compared to May. Switcheo also underwent a rebrand, designed to refocus its identity and reflect its values.
There was also progress in the wallet space, with O3 Labs taking another step towards its full relaunch. Beta versions of the O3 desktop and mobile wallets were released with an updated UI, which was followed by an AMA hosted on the Neo Reddit to allow the community to get to know the new team.
NEXT launched its NFT platform which allows users to send and receive NFTs from within the NeoLine wallet. To promote the new functionality, a competition was held that allowed Chinese mainland users to claim a T-Shirt NFT token and use it to claim a physical shirt.
In the identity space, Bridge Protocol released v3.0 of it’s Bridge Identity Platform, which included features such as Ethereum and Neo cross chain support and a restructured SKD.
Moonlight released v1.1 of its platform, which added new analytics functionality to its profile and link dashboards along with various other general improvements. The update is intended to provide users with direct access to useful insights that can be used to aid networking efforts.
The Neo ecosystem also welcomed MADANA, a German company who specializes in confidential computing - specifically, hardware-based Trusted Execution Environment (TEE) technology. MADANA will collaborate with Neo to evaluate the use of NeoFS alongside its secure processing applications.
A summary of ecosystem growth in June can be found below:
- Nash reached one million USD in daily exchange volume for the first time on June 2nd.
- Neo and MADANA announced a partnership on June 8th. MADANA is a German cybersecurity and privacy company that will explore NeoFS for confidential computing.
- Switcheo launched new branding and experienced a 300% increase in exchange volume compared to May.
- NEXT launched its Neo-based NFT platform, where users can issue, query and transfer Neo-based NFTs via the NeoLine wallet. An NFT browser has also been added to NeoTube.
- Bridge Protocol launched v3.0 of the Bridge Identity platform, which includes cross-chain support for Neo and Ethereum.
- Moonlight released a v1.1 release of its platform, adding new analytics functionality for the profile and link dashboards along with various other general improvements.
- QLC Chain released its 2020 Q2 quarterly report, highlighting nearly 78,000 daily active QWallet users, integrated support for decentralized finance (DeFi) projects, and growth in the use of QGAS for mobile payments.
- O3 released a new beta version for all platforms with a new UI, and hosted an AMA session on Reddit.
- Neo collaborated with OKEx for the Summer rewards series and hosted an AMA session on Neo’s official Telegram group.