BLOG September 18, 2021
Neo N3 has launched. Mass migration of NEO and GAS is safely underway. Now it’s time to build the Smart Economy.
This special edition of the Neo Global Monthly Report focuses on the development progress achieved during July and August which brought us to this momentous time. Further, it documents the Neo N3 readiness of best-in-class support for all the most popular languages, prepared for delivery directly into the hands of developers.
July was a particularly lively month for the Neo ecosystem as hackathon participants made progress on their projects. The Neo Frontier Launchpad had begun in late May, and hackers had until July 12th to submit their concepts. The esteemed panel of judges spent the next week judging the entries, and completed their deliberations on the 20th.
On the same day, the N3 RC4 node version was released, quickly proving itself capable of stable operations within a TestNet setting. This milestone release would later become the formal N3 release, used for the official Neo N3 TestNet.
Testing went well. N3 was here, proven technically capable and ready to be put to work for developers. The team moved forward, and the Neo N3 MainNet launched at 9.00 a.m. (UTC) on August 2nd.
Alongside the launch came the beginning of early bird migration, allowing Neo Legacy users to become Neo N3 MainNet users for the first time. The process was initially facilitated by NEXT and O3 Labs' NeoLine and O3 wallets respectively, each recently updated for N3. COZ soon followed with its own built-in migration tool within Neon Wallet.
NEO tokens migrated to Neo N3 would be quickly put to task voting for one of the initial council members, made up of community and NF/NGD-operated nodes. With so few votes active within the first few weeks of migration, voters received accelerated GAS rewards for playing their part in N3's decentralization.
With the end of August began the start of mass migration from Neo Legacy to Neo N3. Over the coming months, we expect to see new users and dApps arriving on the network, ready to be the first pioneers in the next era of Neo.
Adoption of the network is now on the minds of many. All those involved in the Neo ecosystem are eager to see the first rounds of dApps on the network, many playing their own part in the transition. Though the onboarding process for any new technology is often slow initially, the first contracts have already made their way onto the N3 MainNet.
GhostMarket, an NFT minting and trading platform, claimed the prestigious title of first Neo N3 dApp. Since it was deployed on August 24th, over 400 NFTs have been minted via GhostMarket on Neo N3, 75 of which were successfully sold to patrons.
As the number of migrated assets continues to increase, more and more Neo users join the new network. With the ecosystem prepared to support a thriving dApp ecosystem, Neo now opens the doors to other first-comers. The Early Adoption grant initiative has been launched to this end, curating the best new projects while seeking to further bolster the Neo infrastructure.
N3 by language
Below, you’ll find the latest updates and state of tooling across all the languages with support for Neo developers on the new network.
C# is the language used by the core Neo protocol and tooling. Neo’s core developers, together with support from Neo Global Development and other contributors, oversee protocol-level changes and maintain the official node clients, plugin modules, and C# devpack.
As the reference implementation of Neo N3, the C# codebase is usually the first place to receive the new pieces of functionality before they begin to find their way into alternative tools and languages.
As the final release date neared, the core development team focused more heavily on code optimization over introducing functionality. Inefficiencies in binary serialization, JSON deserialization, and an out-of-memory error in JSON serialization were all uncovered and rectified in August.
By mid July, the core development team had released N3 RC4, which included logic fixes for the network fee, verification fee, and gas limit calculations. Alongside other optimizations, this new version also improved the client's compatibility with OSX and introduced the latest features, such as the getnetwork and getrandom syscalls.
The milestone N3 release was achieved on August 1st and deployed to MainNet on the 2nd. Minor updates on the 3rd and 6th followed in quick succession as core developers worked to fix an issue with VerifyStateIndependent and remove the recently added Refuel command on account of potential DoS vectors, for which it could behave as an amplifier.
Assorted other improvements have been completed in the remainder of August, intended for inclusion in the v3.0.3 planned for release in September. Examples include a fix for CheckWitness for custom contract groups, a new witness scope, and a fix for a bug in Storage.Put that caused a variation in node state.
Work on the C# port of NeoFS has continued. The collaborative effort between developers from NGD and Neo SPCC has yielded the release of the NeoFS.API v3.0.0, and in July testing began on the Inner Ring nodes used to govern the storage network.
Through August, the team progressed on the NeoFS client and began running tests for the storage and CLI components.
As in previous months, the Microsoft alumni of the NGD Enterprise office have continued their work to make Neo the most developer-friendly blockchain platform. Ever since it was unveiled, the Neo Blockchain Toolkit has become a must-have tool in any developer's arsenal.
Similar to Ethereum's Truffle suite, the Neo Blockchain Toolkit provides a suitable local environment for spinning up private networks; creating, compiling, and deploying smart contracts; and performing invocations or automated testing.
While key components such as Neo Express can be used as standalone tools, the Toolkit truly shines when used together with the included DevTracker & Debugger within VS Code. With the GUI, developers can access all the same functionality in a more convenient form, while also taking advantage of the additional block/transaction exploration and debugging tools.
In August, N3 release versions of all the included components were published, and various updates have followed since then. The team also shipped a preview of the Smart Contract Debugger for Visual Studio, following requests from the Neo community. Other components are planned to follow in the near future.
Alongside language-agnostic development infrastructure, NGD Enterprise also frequently contributes to the ecosystem through new tutorials, example C# smart contracts, core development, and strategic outreach at the enterprise and government levels.
Support for Go developers is spearheaded by Neo St Petersburg Competence Center, or Neo SPCC for short. The major contributions to the Neo ecosystem from the team are NeoFS and NeoGo.
NeoFS is a decentralized distributed object storage system designed for sleek integration with both traditional applications and smart contracts. Through the use of Neo’s native oracle system, contracts can fetch data stored off-chain on NeoFS to enable dApps to operate on large quantities of data in a cost-effective manner.
Through July, the team worked to enhance the NeoFS specification and launch its TestNet iteration, which aligned with N3 RC4. New versions of the HTTP and S3 gateways were released, upgrading them with various bug fixes and other improvements. Examples include support for HEAD requests in the HTTP gateway.
The team also released new utilities in this time: neofs-adm, used to simplify side chain deployment, and neofs-aio, an all-in-one docker image for running a full NeoFS network.
Neo SPCC went on to achieve N3 MainNet compatibility for NeoFS in August with the v0.23.1 node version. New features included a new API search prefix implementation and a proof of concept for enhancements to notary event listening.
Particular attention was also placed on the S3 gateway, resulting in performance improvements and other changes intended to enhance compatibility with AWS.
Under the hood, NeoFS makes heavy use of NeoGo. It’s no surprise then that Neo SPCC spent considerable effort improving the node with impressive optimizations. In July, most changes maintained a focus on core compatibility—the v0.96.0 releases were quickly put to test on the RC4 network as Neo SPCC’s council node.
The RC4 versions boasted a number of substantial improvements over the previous iterations: up to 5-10 times improvement in JSON and binary serialization or deserialization, and up to 5-6 times faster block processing from a TestNet dump. Various inconsistencies between the Go and C# implementations were corrected, and the team measured an estimated 10% TPS improvement.
The v0.97 releases, with MainNet compatibility, would follow closely afterwards in August. Alongside security research and a number of fixes, Neo SPCC also completed work on a P2P state exchange implementation that it had finished drafting in the previous month.
Final node optimizations also made their way into these MainNet-ready releases. In benchmark tests, NeoGo reached an impressive new high of 8,800 TPS measured in a networked test, while also reducing memory consumption when compared to the last round of benchmarking.
At this time, NeoGo remains the only alternative Neo node implementation capable of participating in consensus. This makes it a vital tool, both for helping ensure correctness across the core protocol and other infrastructure, and for improving the robustness of the N3 network itself.
Indeed, at the time of the report’s writing, the Neo SPCC council node has claimed the top spot as the most highly voted node on the network. This means NeoGo has already joined the ranks of the consensus nodes on the N3 MainNet, a milestone accomplishment in itself and a great step forward in decentralization.
AxLabs is the driving force behind support for Java on Neo. The Switzerland-based team maintains neow3j, a development toolkit built to streamline the production of tools and dApps on the Java platform (including Android and Kotlin).
Functionality is primarily split between an SDK and devpack, used for building applications that integrate with the N3 network and development of smart contracts written in Java.
The team produced two milestone releases, v3.12.0 and 3.13.0, in July and August respectively. The former made the library compatible with the Neo N3 MainNet for the first time, while the latter tidied up key functionality, such as the APIs for transaction building and for retrieving values from contract storage in their appropriate types.
The newest versions also include a number of changes that improve neow3j’s integration with Neo Blockchain Toolkit components, including support for Neo Express-specific RPC calls. The team also added a new interface for use with NFT smart contracts.
Whether you want to write your smart contracts in Java, add wallet functionality to a JVM-based game, or parse network data retrieved over RPC, neow3j has the tools you need. AxLabs now sets its sights on future enhancements that will further boost the toolkit’s developer friendliness and accessibility.
Python support arrived on the original Neo blockchain thanks to the efforts of the COZ development community, and that legacy was continued with the shift to N3. Over the previous two months, its contributors have produced N3-compatible versions of its Python smart contract compiler and SDK, named Boa and Mamba respectively.
COZ levelled up its Python contract compiler with support for various new builtins. Examples include the count method for lists, tuples, and strings, the is keyword, and reversed.
In July, the team added support for user module imports, making it possible for developers to compile contracts which import code from other modules. This solves the inability to compile multi-file contracts while also providing an avenue for vetted contract libraries, similar to OpenZeppelin on Ethereum.
By early August, MainNet-compatibility was completed, adding the missing interops from prior releases as well as the latest ones used for random numbers and network magic checks. The v0.9.0 release also packaged a new OracleRequestCode enum, intended to improve the developer experience when using the N3 oracle system.
As with Boa, Mamba received various updates through the months to maintain compatibility with N3 protocol development. Two N3-ready releases were published in August, v0.9.0 and v0.9.1, which adjusted for RC4 and the MainNet v3.0.2 core node builds.
Some new features were introduced in August, such as support for the new network and random number syscalls. However, these were mostly limited to changes made at the N3 protocol level, rather than direct functionality expansions to the SDK itself.
That doesn’t mean Mamba isn’t ready for integration with Python applications, however—it can already be used as a simple node with fast blockchain synchronization, and following a fix added at the end of August, correctness has been audited up to MainNet height 127,057.
Likewise, wallet functionality also remains available in Mamba, giving developers a way to create/import wallets or sign transactions in their applications.
Most changes to neon-js over the last two months have revolved around N3 compatibility, meaning changes required due to alterations in the core Neo protocol. Additions such as the nonce field in block headers, updated magic numbers, and others all fall under this umbrella.
Other merged pull requests involved bug fixes and other necessary improvements, such as the addition of signers to validation flow and fixes for NEP-17 transaction validation. Various other improvements to the TransactionBuilder and signing procedures were also committed. Changes include new convenience methods for adding signers and witnesses to transactions, the removal of script hash sorting on signer lists, and an altered signing function designed to accommodate Ledger devices.
The team completed an upgrade of the original NEP-9 URI package, remaining focused on the original use case of token transfers but also adding support for voting URIs. This feature built on what was originally an Ethereum proposal to add prefixes that specify URI intent. Methods for URI creation were added alongside the changes to enable applications to take advantage of the functionality.
COZ also strove to pioneer the adoption of WalletConnect in the Neo N3 ecosystem. As an open-source and network-agnostic protocol, WalletConnect has quickly become popular across numerous blockchain networks.
The SDK is designed for integration in JS applications, with examples for both React and non-React apps. Since a compatible wallet is also necessary for applications to test WalletConnect integrations, COZ also produced Aero, a lightweight web wallet which acts as a testing ground for the protocol.
The team released an integration guide for dApps with WalletConnect and Aero on Dojo, its Neo developer hub.
July saw the release of NEO•ONE v3.6.1-rc4 by the NEO Tracker team, rendering its node implementation capable of syncing the RC4 TestNet. As with other tools in the ecosystem, most changes were related to core protocol advancements—new syscalls, the nonce field in block headers, a config for the initial N3 GAS distribution, and a helper for the new POW opcode in the compiler.
After completing RC4 support, the team moved on to MainNet compatibility. While implementing the latest changes, such as the removal of the Refuel method, the developers also found time to clean up various other areas of the codebase. Notable fixes include improved blockchain logging and P2P message parsing, the addition of MethodTokens to the compiler, and removal of various unused types and unnecessary methods.
Towards the end of August, other new features were also added for inclusion as part of the first N3 MainNet release version. Various new sources of information were added to blockchain storage, dead code was removed, and helpful comments and new error messages were implemented to better document complicated code and explain transaction verification failures respectively.
NEO Tracker continues to iterate on its node and client packages in NEO•ONE with bug fixes, and is currently pursuing updates to its eponymous blockchain explorer in order to prime it for N3.
Marketing and Operations
- Jul.1 - NGD launched the #NeoIsHere creative content competition to celebrate the impending launch of the Neo N3 MainNet. Participants could submit 30 second videos, GIFs, digital art, or other visual content to win a share in a $7,000 reward pool.
- Jul.2 - Stanislav Bogatyrev, CIO of Neo SPCC, appeared on the Neo News Today Podcast to discuss NeoFS.
- Jul.5 - Neo participated in the Asia Innovation Summit as an Associate Sponsor.
- Jul.16 - Director of Neo EcoGrowth, Lili Zhao, participated in an online interview with DukascopyTV, introducing Neo N3 and making predictions about future ecosystem development.
- Jul.22 - The Neo Frontier Launchpad winners were announced. The three major prizes were awarded to Rentfuse (best NFT project), Lyrebird (best DeFi project), and Intellij Plugin for Neo Blockchain (best general project). They each received more than $12,000 in NEO tokens and a custom vested NEO package through the Early Adoption Program. The eight excellence-award winners included Impel, HumSwap, NekoHit, Tantalis, ArGo, NOTAI, TOTHEMOON UNIVERSE, and Cattery.
- Jul.23 - 26 - NGD hosted the Neo Frontier Launchpad demo week - a week-long showcase of the top projects from the Neo Frontier Launchpad. 13 teams from the hackathon event gave live online demonstrations of their work, and recordings of the presentations have been uploaded to the official Neo YouTube channel.
- Jul.25 - NGD announced the #NeoIsHere creative content competition winners. Over 700 people participated in submitting content and voting. In the end, the 12 best entries and nine lucky voters were awarded.
- Jul.27 - Da Hongfei was invited to an exclusive interview with CoinTelegraph China to discuss the growth of the on-chain ecosystem after the launch of N3.
- Jul.27 - Vincent Geneste, founder of GhostMarket, appeared on the Neo News Today Podcast to discuss the growing NFT marketplace.
- Jul.29 - Head of Neo EcoGrowth, John Wang, participated in an online AMA with ChainNode to discuss the governance optimizations and technological innovations found in Neo N3.
- Aug.10 - Humswap founders Jason Tezanos and Mario Lopez appeared on the Neo News Today Podcast to discuss their Excellence Award winning submission from the Neo Frontier Launchpad.
- Aug.24 - NGD hosted its first trivia competition in the Neo Telegram, offering GAS rewards as prizes.
- Aug.24 - Thomas Geyer, the project lead for Chain.Game, appeared on the Neo News Today Podcast to discuss his Excellence Award winning submission from the Neo Frontier Launchpad.
- Aug.27 - NGD announced TOTHEMOON as the first project accepted into the N3 Early Adoption Program. The Early Adoption Program is intended to incentivize the development of new dApps on the Neo N3 blockchain.
- Aug.30 - NGD hosted its second trivia competition in the Neo Telegram, offering GAS rewards as prizes.
- The Neo Foundation announced the initial 21 members of the Neo Council. The council assumed its responsibilities upon the launch of Neo N3 MainNet. Community run nodes included AxLabs, ChainNode, COZ, Everstake, InfStones, Nash Exchange, Neo News Today, Neo SPCC, NEXT, and Switcheo.
- GhostMarket became the first usable dApp to be deployed to the Neo N3 MainNet, with support for minting, selling, and trading NFTs. Shortly after, GhostMarket open-sourced a new NEP-11 NFT contract template for Neo N3. Written in Python for use with the Boa compiler by COZ, the template makes it easy for developers to deploy a contract capable of minting NFTs that can integrate with GhostMarket. GhostMarket also launched the second version of its cross-chain NFT marketplace and explorer, implementing new features and UX improvements.
- Gate.io, CEX.io, and OKEx confirmed that they will support Neo N3 in September, including Neo Legacy to Neo N3 token migration, providing Token Migration Incentive rewards to users. BTC TURK and Indodax completed technical support and are expected to go live with Neo N3 in September. BIGONE closed Neo Legacy deposits and withdrawal, and will reopen the Neo N3 deposits and withdrawals in the near future.
- Built-in token migration functionality was added to NeoLine mobile, Neon, and ONTO wallets. Infinito is ready to release Moonstake web and mobile plugins with Neo N3 support. COZ completed its WalletConnect POC and is preparing Neon integration.
- O3 Labs integrated support for Polygon, allowing users to participate in cross-chain swaps. It also added USDC trading. O3 Swap’s TVL reached $700 million, while its daily trading volume exceeded $153 million.
- Switcheo achieved over US $200k in available liquidity on SushiSwap’s SWTH/WETH pair. It is also beta testing its ETH-ZilBridge and is preparing to launch new projects such as cross collateral/cross margins, a perpetual protocol, a DEMEX token, and a DeFi ETF.
- MyWish integrated Neo N3 TestNet support into its smart contract generation platform. The first template release is for creating NEP-17 tokens, allowing users to launch a token on N3.
- TranslateMe announced a beta testing partnership with New View, forming its first such collaboration. New View’s translation bot operates in the Discord messaging application and has more than 400,000 active users.
- Nash announced the release of its new yield-generating service, Nash Earnings. Now open for European users, the service allows deposits in Euros and returns interest to users received from participation in Aave, a non-custodial liquidity protocol.
- Neo News Today announced it is offering $8,000 in grants to developers who would like to explore building on Neo N3 for the first time. Two grants of $4,000 each are available, directly funded by Neo Council rewards.