Skip to main content

Run an RPC Node (with nearup)

We encourage you to set up your node with Neard instead of Nearup as Nearup is not used on Mainnet. Please head to Run a Node for instructions on how to setup a RPC node with Neard.

Heads up

The README for nearup (linked above) may be all you need to get a node up and running in testnet and localnet. nearup is exclusively used to launch NEAR testnet and localnet nodes. nearup is not used to launch mainnet nodes.

Prerequisites


Steps to Run an RPC Node using nearup

Running a RPC node is very similar to running a validator node as both types of node use the same nearcore release. The main difference for running a validator node is requiring validator_key.json to be used by the validator node to support its work of validating blocks and chunks on the network.

First, clone the nearcore repo:

git clone https://github.com/near/nearcore.git
cd nearcore

Checkout the version you wish to build:

git checkout <version>

You can then run:

make neard

This will compile the neard binary for the version you have checked out, it will be available under target/release/neard.

Note that compilation will need over 1 GB of memory per virtual core the machine has. If the build fails with processes being killed, you might want to try reducing number of parallel jobs, for example: CARGO_BUILD_JOBS=8 make neard.

NB. Please ensure you build releases through make rather than cargo build --release. The latter skips some optimizations (most notably link-time optimisation) and thus produces a less efficient executable.

nearup run testnet --binary-path path/to/nearcore/target/release

You will then be prompted for an Account ID below. You should leave this empty as you are running an RPC node, not a validator node.

Enter your account ID (leave empty if not going to be a validator):

Wait until initialization finishes, use the following command to follow logs:

  $ nearup logs --follow

Then run:

  $ nearup stop

Retrieve a copy of the latest RPC snapshot from S3:

$ aws s3 --no-sign-request cp s3://near-protocol-public/backups/testnet/rpc/latest .
$ LATEST=$(cat latest)
$ aws s3 --no-sign-request cp --no-sign-request --recursive s3://near-protocol-public/backups/testnet/rpc/$LATEST ~/.near/data

Finally, run the following command and the node should start syncing headers:

  $ nearup run testnet

Got a question?

Ask it on StackOverflow!