Join us on the Road to Neo3 and learn about the technological advances made by the Neo development community.

Exception Handling

The exception handling series looks at the NeoVM's new exception handling mechanism, intended to make Neo smart contracts behave more like traditional applications that can recover from unexpected errors.

filter_1

Exception Handling


This article introduces the Neo Virtual machine and the initial Try-Catch proposal that enables programs for exceptions ahead of time to avoid crashes.

READ MORE
filter_2

Try-Catch implementation


This article follows the lifecycle of a Neo smart contract in order to better understand how the new mechanism for exception handling is applied.

READ MORE

Block Synchronization

The block sync series introduces the reader to the header-first synchronization approach commonly used in blockchain networks, and how dBFT enables Neo to benefit from a more efficient synchronization method currently in development.

filter_1

Block Sync Optimization


This article covers past discussion on network optimization with a particular focus on improving the block synchronization process, followed by the exploration of a new block synchronization method for Neo3.

READ MORE
filter_2

Index Synchronization


This article dives into an index-based block synchronization mechanism under development for Neo3, originating from past community discussion on new P2P commands designed to reduce network overhead during block syncing.

READ MORE
filter_3

SyncManager & Test Results


This article looks at the implementation of the index synchronization mechanism, facilitated by the new SyncManager class, in addition to initial test results comparing the new design to the previous header-first sync mechanism.

READ MORE

State Determinism & Persistence

The state series concentrates on issues stemming from the lack of state persistence on Neo, notes unique considerations for determining global state on the Neo blockchain, and walks the reader through the different components required for the implementation.

filter_1

State Root & Trust Problems


The first article in this feature explores the current lack of global state on Neo2 and notes the first proposed solution for Neo3, the inclusion of a state root in block headers.

READ MORE
filter_2

Performance & Bug Fixing


This article discusses the downsides to publishing the state root in block headers, such as potential performance reduction and the loss of Neo’s unique bug fixing capabilities.

READ MORE
filter_3

Distributing State Over P2P


This article looks at the alternate, decoupled approach currently under development for global state persistence on Neo3 — distribution of state through P2P messages.

READ MORE
filter_4

Merkle Roots & Patricia Tries


This article aims to provide more information on Merkle roots and Patricia tries, fundamental components required for state root derivation, and how they can be used for simplified payment verification by light clients.

READ MORE
filter_5

Merkle Patricia Trie


For the final episode in the state root series, we explore how implementation of Merkle Patricia tries will provide strong storage consistency guarantees on both full nodes and light nodes on the Neo network.

READ MORE

Contract IDs

The contract ID feature introduces known issues with script hashes used on Neo2, explaining the benefits to a different approach that will be used on Neo3 to generate deterministic unique contract identifiers.

filter_1

Script Hashes & Migration


We begin by looking into the development process behind a new feature that is intended to improve the smart contract system for developers by resolving issues with script hashes.

READ MORE
filter_2

Unique Contract Identifiers


In this article we examine Zhang's proposal with a naive unique contract ID implementation, replacing script hashes with UIDs and providing a deterministic UID generation scheme.

READ MORE

Oracles

The oracle feature aims to provide readers with a primer on the role and applicability of blockchain oracles on a smart contract platform, then introduces the components under development for the native oracle service on Neo3.

filter_1

Introduction to Oracles on Neo3


The feature begins with a primer on blockchain oracles and potential use cases, and provides some context and goals for the native oracle implementation under construction for Neo.

READ MORE
filter_2

Transactions & Broadcast Model


This article looks at oracle transactions, which are responsible for carrying oracle requests through the network, and examines the proposed transaction structure and broadcast mechanism.

READ MORE
filter_3

Request Execution & Consensus


This article looks at how oracle requests are executed in NeoVM, how consensus can be achieved on the results, and outlines the initial protocols, filters, and response formats.

READ MORE
filter_4

Decentralization & Economic Model


For the final article in the feature on oracles, we’ll cover how the oracle network aims to decentralize and explore current progress into designing the economic model.

READ MORE