Note: This repo uses a branch structure similar to other repos in the Neo project. The
master
branch contains Neo N3 version of Neo-Express and Neo-Trace.
Developers can choose installing Neo-Express from release packages or using .NET tool.
Download the latest release package from neo-express releases for your operation system, and unzip it in your local computer.
Configure the path of neoxp.exe to the environment variable in your computer.
Neo-Express and Neo-Trace are distributed as
.NET Tools.
.NET tools are NuGet packages containing console applications
that can be installed on a developer's machine via the dotnet tool
command.
As of Neo v3.6, Neo-Express and Neo-Trace require version 7.0 of the .NET developer platform to be installed.
Note: Neo-Express has additional, platform-specific requirements beyond .NET 7. These requirements are detailed below. Neo-Trace has no additional dependencies beyond .NET 7.
Note: the Neo v3.0 version of Neo-Express and Neo-Trace used .NET 5. .NET 5 is no longer supported by Microsoft. We strongly recommend using .NET 7 and the latest version of Neo-Express and Neo-Trace.
To install the latest version of Neo-Express as a global tool, run the
dotnet tool install
command in a terminal window.
> dotnet tool install Neo.Express -g
To update Neo-Express to the latest version, run the dotnet tool update
command in a terminal window.
> dotnet tool update Neo.Express -g
Note: The process for installing and updating Neo-Trace is identical to Neo-Express except the Neo-Trace NuGet package is
Neo.Trace
.
.NET tools also supports "local tool" installation. This allows for different versions of a .NET tool to be installed in different directories. Full details on installing and updating .NET tools are available in the official documentation.
The Neo Blockchain Toolkit has a public build server and package feed. The public package feed contains unreleased builds of Neo-Express and Neo-Trace.
You can install preview builds of Neo-Express or Neo-Trace by using the --add-source
option to specify the Neo Blockchain Toolkit package feed.
For example, to update to the latest release branch version of Neo-Express, you would run this command:
> dotnet tool update Neo.Express -g --add-source https://www.myget.org/F/neo/api/v3/index.json
You can also install master branch releases of these tools by using the --version
and/or --prerelease
command line options. For more details, please see the
official dotnet tool documentation.
If you regularly use unreleased versions of these tools in a given project, you can specify the Neo Blockchain Toolkit package feed in a NuGet.config file. Several Neo sample projects like NeoContributorToken use a NuGet.config file.
Neo-Express is a privatenet optimized for development scenarios. It is built on the same Neo platform core as neo-cli and neo-gui to maximize compatibility between local development and public chain environments.
Neo-Express provides the following features:
- Blockchain instance management
- Wallet management
- Asset management
- Smart contract management
- Blockchain checkpoint and rollback
Note:While Microsoft has instructions for installing .NET via Snap, there is a known issue with this approach that leads to a segmentation fault in Neo Express. Unfortunately, this issue with the .NET snap installer has been closed and will not be fixed. As such, we recommend using APT to install .NET on Ubuntu instead.
Installing on Ubuntu requires installing libsnappy-dev, libc6-dev and librocksdb-dev via apt-get
> sudo apt install libsnappy-dev libc6-dev librocksdb-dev -y
Installing on MacOS requires installing rocksdb via Homebrew
> brew install rocksdb
Note: .NET 6 Arm64 has full support for Apple Silicon. Homebrew likewise also supports Apple Silicon. If you have any issues running Neo-Express on Apple Silicon hardware, please open an issue in the Neo-Express repo.
Neo-Trace is a tool to generate Neo Smart Contract Debugger trace files for existing blocks or transactions. You can specify a block by index or hash or a transaction by hash.
> neotrace block 365110 --rpc-uri testnet
> neotrace block 0xd2421d88919dccc1ac73647bf06089bae78ce02060302eff861a04e381bc91ad --rpc-uri testnet
> neotrace tx 0xef1917b8601828e1d2f3ed0954907ea611cb734771609ce0ce2b654bb5c78005--rpc-uri testnet
Neo-Trace depends on the
StateService plugin module
running with FullState
enabled. The official JSON-RPC nodes for MainNet and TestNet
(such as http://seed1.neo.org:10332
and http://seed1t5.neo.org:20332
) are configured to
run the StateService plugin with FullState
enabled.
Docs are somewhat limited at this point. Please review the Command Reference to get an understanding of Neo-Express capabilities.
Thanks for checking out Neo-Express and Neo-Trace! We are eager to hear your opinion to make these tools more accessible, intuitive, easier to use or just flat-out better.
GitHub issues are how we track improvements we make. If you found a problem when using these tools, or there is anything you'd like to see changed in the product, check the issues page to see if the bug or change was already reported, if not just file an issue.
When creating a new issue, try to keep the title and description concise, and give some context of the issue, like a snippet of the code where the problem is happening or a example of a feature, and its expected behavior.