In this brief walk-through we will show you how to build the NEO•ONE Node from source code.
This can be useful for local debugging and if you would like to make your own contribution to the node repository.
Once you have cloned the NEO•ONE repository (or preferably your own fork of the repository) you can run the following to build the node entry point
cd neo-one
rush install
rush build -t @neo-one/node-bin
cd ./packages/neo-one-node-bin/bin
rush build -t @neo-one/node-bin will build a bin for the node as well as the @neo-one packages that it depends on. For this tutorial we will cd into the entry point’s build directory to save time. Running the new node then is as simple as
node neo-one-node
When running the node locally it is quite easy to apply a configuration file compared to docker since we don’t have to mount it to a container. An example configuration for syncing the node
## path/to/config.json
{
"node": {
"rpcURLs": {
"http://seed6.ngd.network:10332",
"http://seed10.ngd.network:10332"
}
}
}
Can be run using:
node neo-one-node --config /path/to/config.json
Individual options can also be layered on top of our configuration:
node neo-one-node --config /path/to/config.json --environment.logger.level=trace
You can also add a .neo-onerc configuration file anywhere in the app directory (recommended at the root of the repo directory) to apply your configuration by default. See rc for more informatio on how NEO•ONE will find and apply the node configuration with an rc file.
Make sure you add these environment variables to get the NEO•ONE node working:
On Windows:
EDGE_USE_CORECLR=1EDGE_APP_ROOT=<path/to/project>/node_modules/@neo-one/node-vm/lib/bin/Debug/net5.0
EDGE_APP_ROOT=<path/to/project>/node_modules/@neo-one/node-vm/lib/bin/Debug/net5.0
EDGE_APP_ROOT and EDGE_USE_CORECLR to the shell environment you still get errors then add the same EDGE_APP_ROOT variable before the shell command that you are trying to run with NEO•ONE. For example: EDGE_APP_ROOT=<path/to/project>/node_modules/@neo-one/node-vm/lib/bin/Debug/net5.0 npx neo-one start network.On macOS:
EDGE_USE_CORECLR=1EDGE_APP_ROOT=<path/to/project>/node_modules/@neo-one/node-vm/lib/bin/Debug/net5.0
EDGE_APP_ROOT and EDGE_USE_CORECLR to the shell environment you still get errors then add the same EDGE_APP_ROOT variable before the shell command that you are trying to run with NEO•ONE. For example: EDGE_APP_ROOT=<path/to/project>/node_modules/@neo-one/node-vm/lib/bin/Debug/net5.0 npx neo-one start network.pkgconfig on macOS with Homebrew: brew install pkgconfig
PKG_CONFIG_PATH=/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfignode_modules folder and then running npm install againTesting your setup:
npx neo-one start network. The output should be something like {"level":30,"time":1625855073745,"service":"node","service":"blockchain","name":"neo_blockchain_start","msg":"Neo blockchain started.","v":1}. You may need to use sudo depending on your project configuration.