Neo-Express is a Private Net that is optimized for development scenarios. It is built on the same Neo platform core as neo-cli and neo-gui ensuring that blockchain application code runs the same in production as it does in the Neo-Express development environment.
Neo-Express provides the following features:
- Blockchain instance management
- Wallet management
- Asset management
- Smart contract management
- Blockchain checkpoint and rollback
Docs are somewhat limited at this point. Please review the Command Reference to get an understanding of Neo-Express capabilities.
Note, Neo-Express has been updated to use a similar branch structure as other repos in the Neo project. The
master
branch is for the Neo N3 compatible version of Neo-Express and themaster-2.x
branch is for the Neo Legacy compatible version.
Neo-Express is distributed as a .NET Core Tool. Different versions of Neo-Express require different versions of .NET Core.
Neo-Express Version | .NET Core Version |
---|---|
v3.1 | v6.0 |
v3.0 | v5.0 |
v1.1 | v3.1 |
v1.0 | v3.1 |
v0.9 | v3.0 |
v0.8 | v2.2 |
To install Neo-Express, open a terminal window and enter the following command:
> dotnet tool install Neo.Express -g
To upgrade Neo-Express, enter the following command in a terminal window:
> dotnet tool update Neo.Express -g
Installing on Ubuntu 18.04 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
.NET 5 supports Macs with Apple Silicon via Rosetta 2.
To run Neo-Express on a Mac with Apple Silicon, you need to install homebrew under Rosetta by using the arch
command.
Note, while NeoExpress has been upgraded to .NET 6, it has not been enabled for native execution on Apple Silicon yet.
> arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
One you have Homebrew installed under emulation, you can then run it under emulation to install rocksdb and it's dependencies. Note, if you have installed Homebrew both natively and under emulation, you'll need to provide the full path to the correct version. As per install instructions, Homebrew is installed under /usr/local for macOS Intel and under /opt/homebrew for Apple Silicon.
> arch -x86_64 /usr/local/bin/brew install rocksdb
Neo-Express has a public build server and artifacts feed. You can install preview builds of Neo-express by specifying the nuget feed source when running the dotnet tool install or update command.
> dotnet tool install Neo.Express -g --add-source https://pkgs.dev.azure.com/ngdenterprise/Build/_packaging/public%40Local/nuget/v3/index.json --version <insert version>
Note, if the version isn't specified, the most recent release branch build will be installed. For preview releases, the explicit version must be specified. For more information, please see the dotnet tool install command documentation.
In addition to NeoExpress, this repo contains the NeoTrace tool. NeoTrace 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
NeoTrace depends on the Neo 3.0.3 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://seed1t4.neo.org:20332
) are configured to
run the StateService plugin with FullState
enabled.
Like NeoExpress, NeoTrace is distributed as a .NET Core Tool.
It can be installed via the dotnet tool
command.
> dotnet tool install Neo.Trace -g
Note, NeoTrace has no additional dependencies beyond .NET 6.
Thanks for checking out NeoExpress and NeoTrace! I am eager to hear your opinion of the product.
If you like these tools, please let me know on Twitter, email or the Neo Discord server.
If there are things about these tools you don't like, please file issues in our GitHub repo. You can hit me up on Twitter, Discord or email as well, but GitHub issues are how we track improvements we make. So don't be shy - file an issue if there is anything you'd like to see changed in the product.
Most software is built by teams of people. However, NeoExpress and NeoTrace so far have been a solo effort. I'm looking forward to having other folks contribute in the future, but so far it's just been me. That means that these tools have been designed around my experiences and my perspective. I can't help it, my perspective is the only one I have! :) So while I find these tools intuitive, I realize that you may not feel the same. Please let me know if this is the case! I didn't build these tools for me, I built it for the Neo developer community at large. So if there are changes we can make to make NeoExpress and/or NeoTrace more accessible, intuitive, easier to use or just flat-out better - I want to hear about them.
Thanks again for checking out Neo-Express. I look forward to hearing from you.
- Harry Pierson (aka DevHawk), Chief Architect NGD Seattle