Public scripts to launch near devnet, betanet and testnet node
Before you proceed, make sure you have the following software installed:
- Python 3
- git (used for updates)
- cURL
Here is the installation command:
sudo apt update
sudo apt install python3 git curl
curl --proto '=https' --tlsv1.2 -sSfL https://up.near.dev | python3
Nearup automatically adds itself to PATH: restart the terminal, or issue the command source ~/.profile
.
On each run, nearup self-updates to the latest version.
Heads up, you need Docker installed before you proceed. Ubuntu users can install it with the following command:
sudo apt update sudo apt install docker.io
Also, you need to make sure that your user belongs to
docker
group:sudo usermod -aG docker `whoami`
You will need to re-login to the system so the group changes get effective.
Once all the prerequisites are met, just run:
nearup betanet
Where betanet
is the weekly release; use devnet
for the nightly releases, or testnet
for the stable releases.
Currently, officially compiled binaries are available for Linux and Mac OS X
nearup betanet --nodocker
Replace betanet
with devnet
or testnet
if you want to use a different network.
Clone and compile nearcore with make release
or make debug
first.
nearup betanet --nodocker --binary-path path/to/nearcore/target/{debug, release}
Replace betanet
with devnet
or testnet
if you want to use a different network.
Clone and compile nearcore with make release
or make debug
first.
nearup localnet --binary-path path/to/nearcore/target/{debug, release}
By default it will spawn 4 nodes validating in 1 shard. RPC ports of each nodes will be consecutive starting from 3030. Access one node status using http://localhost:3030/status
nearup stop
nearup betanet --help
To change code and run local version of nearup:
- fork/clone this repo and checkout to your branch
- change code
- run
python3 main.py <net> ...
. If your changes merge to master branch, this will be equivalent tonearup <net> ...
nearup runs also on Apple macOS. Requirements:
- At least 40GB of storage space
- Docker for Mac
- Xcode Command Line Tools
- Python3 No need to install with macOS 10.15 Catalina
-
Important: launch
Docker
from your Applications folder. You don't need a Docker Hub account to run nearup -
If you haven't already, install Xcode Command Line Tools
xcode-select --install
-
Download nearup via
curl
curl --proto '=https' --tlsv1.2 -sSfL https://up.near.dev | python3
The output shoud be
Nearup is installed to ~/.nearup!
. You may receive an alert to install or update Xcode Command Line Tools. Follow the steps. Once completed, try again the command above. -
Restart the terminal, or issue the command
source ~/.profile
No output is expected.
-
Launch the nearup with the command
nearup betanet
The output will look like this:
Pull docker image nearprotocol/nearcore:beta Setting up network configuration. Enter your account ID (leave empty if not going to be a validator): lakecat Generating node key... Node key generated Generating validator key... Validator key generated Stake for user 'lakecat' with 'ed25519:HigQXU4QkAvfsuMPTyL5f65coWnCAkR4Yi7RiJPcQKNv' Starting NEAR client docker... Node is running! To check logs call: docker logs --follow nearcore
Nearup will ask your
account ID
, for now you can leave it empty. If you already have a wallet on https://wallet.betanet.near.org, feel free to input youraccount ID
for future use as a validator. -
Check if your node is running correctly by issuing the command
docker logs --follow nearcore --tail 100
The output will look like this:
Telemetry: https://explorer.betanet.near.org/api/nodes Bootnodes: Mar 25 01:38:59.607 INFO near: Did not find "/srv/near/data" path, will be creating new store database Mar 25 01:39:00.161 INFO stats: Server listening at ed25519:[email protected]:24567 Mar 25 01:39:10.598 INFO stats: # 0 Downloading headers 0% -/4 5/5/40 peers ⬇ 57.9kiB/s ⬆ 0.8kiB/s 0.00 bps 0 gas/s CPU: 42%, Mem: 39.2 MiB Mar 25 01:39:20.798 INFO stats: # 0 Downloading headers 2% -/4 5/5/40 peers ⬇ 144.0kiB/s ⬆ 0.9kiB/s 0.00 bps 0 gas/s CPU: 49%, Mem: 50.5 MiB Mar 25 01:39:30.800 INFO stats: # 0 Downloading headers 3% -/4 5/5/40 peers ⬇ 239.9kiB/s ⬆ 0.9kiB/s 0.00 bps 0 gas/s CPU: 46%, Mem: 58.8 MiB Mar 25 01:39:40.804 INFO stats: # 0 Downloading headers 4% -/4 5/5/40 peers ⬇ 335.6kiB/s ⬆ 1.0kiB/s 0.00
If you need to export the logs for troubleshooting, issue the command:
docker logs nearcore --tail 5000 2>&1 | tee nearcore$(date +"%Y%m%d%H%M").log
This command will generate a file in your current folder called 'nearcoreYYYYMMDDHHMM.log' containing the last 5,000 lines of nearcore logs. You can change the switch
--tail 5000
to any other number to export more or less data.
Nearup provides an automated process to verify that your node is using the current network, by analyzing genesis.json
. If your node is not up to date, it will not be able to dowload new blocks, and will disconnect automatically:
Apr 10 18:10:15.873 ERROR network: Attempting to connect to a node (ed25519:[email protected]:24567@node2) with a different genesis block. Our genesis: GenesisId { chain_id: "betanet", hash: `BAtdJLUtNabWVJnnvYUuot7TfRf9VcqKh4b8FKAXbXSD` }, their genesis: GenesisId { chain_id: "betanet", hash: `3MKug5MgUnBYBeymCL8P9KXYSJoAhTfcKJzhPKPo8iXQ` }
To automatically update your node, stop nearup:
nearup stop
Wait a few seconds, and restart nearup:
nearup betanet
The output will show a new genesis checksum:
Warning: current deployed version on betanet is 650b69863207ac6be5b55d2b2f8761dc89821b49, but local binary is 56622f45. It might not work
Remote genesis protocol version md5 997a44a7b94fdb680d87548d7dd9a572, ours is 309f5819133d4399f4a0bab054fa3c38
Update genesis nearkat with 'ed25519:A5DL4iByp1EbYYpRVrpoKwBBA5YKkPdK6L1hLsTmcQrv'
Starting NEAR client...
If the process is completed without errors, the node will be in sync within a few minutes.
This is the step-by-step guide to remove nearup from your macOS system:
-
Stop nearcore container
nearup stop
The output will be
Stopping docker near
-
Prune Docker warning: you may want to skip this step if you have other containers on your system
docker system prune --volumes
The output will require your confirmation
WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all volumes not used by at least one container - all dangling images - all dangling build cache Are you sure you want to continue? [y/N]
-
Open your
$HOME
directorycd $home
-
Remove .near folder with the command
rm -ri .near
The output will require your confirmation to delete every file and folder
Nearkats-MacBook-Pro:.nearup nearkat$ rm -ri $HOME/.near examine files in directory /Users/nearkat/.near? yes remove /Users/nearkat/.near/genesis.json? yes remove /Users/nearkat/.near/config.json? yes remove /Users/nearkat/.near/node_key.json? yes examine files in directory /Users/nearkat/.near/data? yes remove /Users/nearkat/.near/data/IDENTITY? y remove /Users/nearkat/.near/data/000003.log? y remove /Users/nearkat/.near/data/LOCK? y remove /Users/nearkat/.near/data/OPTIONS-000078? y remove /Users/nearkat/.near/data/CURRENT? y remove /Users/nearkat/.near/data/LOG? y remove /Users/nearkat/.near/data/MANIFEST-000004? y remove /Users/nearkat/.near/data/OPTIONS-000080? y remove /Users/nearkat/.near/data? y remove /Users/nearkat/.near/validator_key.json? y remove /Users/nearkat/.near? y
You may save the LOG directory for future use. Alternatively, you can use
rm -rf .near
to skip any confirmation. -
Eventually uninstall
Docker
, by moving it from applications folder to the trash -
Eventually uninstall Xcode Command Line Tools by removing the folder
/Library/Developer/CommandLineTools
- from the official Apple guide