Node setup issues

What are the hardware requirements for running nodes?

The hardware requirements are listed below:

Validator
Light Node
Full/Bridge Node

Memory

8 GB RAM

500 MB RAM

16 GB RAM

CPU

8 cores

Single Core

8 Cores

Disk

1 TB SSD Storage

40 GB SSD Storage

10 TB SSD Storage

Bandwidth

1 Gbps Upload/Download

0.1 Mbps Upload/Download

1 Gbps Upload/Download


How shall I confirm my node is running correctly?

After running curl -sL1 https://nubit.sh | bash, you should see the following message:

/_____/  /_____/  /_____/  /_____/  /_____/ 
Started nubit DA node 
node version:
node type:      light
network:        nubit-alphatestnet-1
/_____/  /_____/  /_____/  /_____/  /_____/ 

For further check:

$HOME/nubit-node/bin/nubit das sampling-stats --node.store $HOME/.nubit-light-nubit-alphatestnet-1

You will receive a response similar to the following to verify that your node is running successfully:

{
  "result": {
    "head_of_sampled_chain": 143124,
    "head_of_catchup": 143124,
    "network_head_height": 143124,
    "concurrency": 0,
    "catch_up_done": true,
    "is_running": true
  }
}

How shall I check whether I am running the latest node?

If you have watched this hint during the execution of nubit.sh, you are running the latest node and we'll do a hot update after this version.

NAME: my_nubit_key
ADDRESS: nubit1xxxx
MNEMONIC (save this somewhere safe!!!): 
xxxx xxxx xxxx xxxx

** PUBKEY **
A9wxxxx

...

For early supporters who executed nubit.sh before this version, please re-execute curl -sL1 https://nubit.sh | bash again.


How shall I check my status if any error happens?

Currently, the light node uses an absolute path, and generally, there's no need to manually set environment variables. Here are some environment variable values for your reference. If any of them is broken, please go to $HOME/nubit-node and fix it. Thanks for your patience!

Environment Variable
Content

NETWORK

nubit-alphatestnet-1

NODE_TYPE

light

NKEY

$HOME/nubit-node/bin/nkey

NUBIT

$HOME/nubit-node/bin/nubit

STORE

$HOME/.nubit-light-nubit-alphatestnet-1

AUTH_TYPE

admin

PEERS

/dns4/seed.nubit-alphatestnet-1.com/tcp/12121/p2p/12D3KooWGaGKTtZVPM3FkY5nENsZUc2noK8m7iE7P8tyoYGUzTAP,

/dns4/seed.nubit-alphatestnet-1.com/tcp/22121/p2p/12D3KooWMURBHu6fnamXG5PdRJ2gK7qMGeFUJoZU3sVYzwknRk7G,

/dns4/seed.nubit-alphatestnet-1.com/tcp/32121/p2p/12D3KooWMooixvkxAMvYEF5GYtHXwRJbdnB8hY9rMdPyBxb3Y3ma,

/dns4/seed.nubit-alphatestnet-1.com/tcp/42121/p2p/12D3KooWLg5vMKrmVtHY6ykeekJWy8ZqAH2h856e19WhPetmxodR

VALIDATOR_IP

validator.nubit-alphatestnet-1.com

GENESIS_HASH

AD1DB79213CA0EA005F82FACC395E34BE3CFCC086CD5C25A89FC64F871B3ABAE

NUBIT_CUSTOM

nubit-alphatestnet-1:AD1DB79213CA0EA005F82FACC395E34BE3CFCC086CD5C25A89FC64F871B3ABAE:/dns4/seed.nubit-alphatestnet-1.com/tcp/12121/p2p/12D3KooWGaGKTtZVPM3FkY5nENsZUc2noK8m7iE7P8tyoYGUzTAP


How shall I uninstall nubit-node?

The operation would never be reverted!

To uninstall nubit-node, please run the following command:

rm -rf $HOME/nubit-node
rm -rf $HOME/.nubit-${NODE_TYPE}-${NETWORK}

Please make sure to save your wallet and Nubit address mnemonic or key so you can re-import them later. For instructions on importing an existing key, please refer to Manage Keys.


Does running a light node create transactions?

A light node itself doesn't create transactions; it verifies and relays transactions created by wallets or other nodes. It's a more resource-efficient way to participate in the Bitcoin network while maintaining a level of security and decentralization.

To explore more interactions with Nubit DA such as transfer and submit blob, please get NUB first and refer to Interact with Nubit DA and Access Nubit DA Explorer.


Will running multiple nodes on the same IP address cause any issues?

Yes, running multiple nodes on the same IP address can cause issues. It is not recommended to do so.


Error: panic: reflect.Value.Addr of unaddressable value

// xxxx
panic: reflect.Value.Addr of unaddressable value

goroutine 1 [running]:
reflect.Value.Addr({0x0?, 0x0?, 0x140004bd550?})
        reflect/value.go:283 +0x64
// xxxx

Please add --rpc.skip-auth to your light node start command.


Error: inverted_index/XXXXX.mem: invalid argument

A syncing-up problem causes this error. We kindly ask you to remove the old inverted_index folder.

The commands will be:

// Remove inverted_index
rm -rf $HOME/.nubit-light-nubit-alphatestnet-1/inverted_index
mkdir $HOME/.nubit-light-nubit-alphatestnet-1/inverted_index

Then:

// Re-start your light node
curl -sL1 https://nubit.sh | bash

For Windows users utilizing WSL, we apologize if this solution does not address your issue. We are currently unable to support all Windows versions. If possible, we kindly suggest switching to a Linux or Mac system. Thank you for your understanding and patience.


Error: config.toml: no such file or directory

The upgrading from the oldest version problem causes this error. We kindly ask you to download the config.toml from our website.

The commands will be:

// Download config.toml
cd $HOME/.nubit-light-nubit-alphatestnet-1
curl -o config.toml https://nubit.sh/config.toml

Then:

// Re-start your light node
curl -sL1 https://nubit.sh | bash

Error: can't open Badger Datastore: file does not exist for table xxxx

The upgrading from the oldest version problem causes this error. We kindly ask you to download the config.toml from our website.

The commands will be:

// Remove data
rm -rf $HOME/.nubit-light-nubit-alphatestnet-1/data
mkdir $HOME/.nubit-light-nubit-alphatestnet-1/data

Then:

// Re-start your light node
curl -sL1 https://nubit.sh | bash

Error: rpc error: code = NotFound desc = account nubitxxx not found / Why can't I find my Nubit address in the browser?

You need to claim some tokens from the faucet page. Please refer to Get NUB for more details.


Error: GLIBC Issue on Linux x86-64

Q: If you encounter the following error messages when executing the nubit binary on Ubuntu x86-64 (version 20.04 or earlier):

nubit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by nubit)
nubit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by nubit)

A: This issue is caused by the absence of GLIBC 2.32 / 2.34 in older versions of x86-64 Ubuntu. To resolve this issue, you can:

  1. Switch to an OS that includes GLIBC 2.32 / 2.34, such as ARM64 Ubuntu 20.04 or x86-64 Ubuntu 22.04.

  2. Or you can manually configure the GLIBC dependencies if you prefer to handle it yourself.


Error: nubit: command not found

Q: What preparations are needed when using `nubit state` to query addresses and balances, or encountering a "nubit: command not found" error when interacting with Nubit DA?

A: First, ensure that the node is continuously running. Running curl -sL1 https://nubit.sh | bash will help fix this bug automatically. For more details, please refer to environment variables.


Error: nubit-node: Permission denied

This is an affair due to user permission of your local env. Please grant enough permission to your current path, like:

sudo chmod 775 your_current_path

Error: store is in use

This error typically occurs because another light node is already running and has locked the store.


Error: head request to peer failed

Q: Why does the PEER ERROR appear when starting the light node?

A: Firstly, please note that this error does not affect the normal operation of your node.

The error may occur due to one of the following reasons:

  1. Scenario 1: The peer you are trying to connect to has registered their address on the p2p network but has subsequently stopped their node. This results in an inability to establish a connection.

  2. Scenario 2: The peer you are trying to connect to has restarted their light node after stopping it and deleting the $HOME/.nubit-light-nubit-alphatestnet-1 directory. This causes your key to change. Although your IP and port remain the same, the key change leads to authentication failure, and thus, the connection cannot be established.

We hope this clarifies the issue. If you have any further questions, please feel free to reach out to our support team.


Error: invalid memory address or nil pointer dereference

If you encounter an error similar to the following when running your node:

running node but about every 10 minutes it crashes with this error panic: runtime error: invalid memory address or nil pointer dereference [signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1bde476]

This is often caused by conflicts due to multiple keys in your Nubit node. Please follow these steps to resolve the issue:

Use the following command to list your Nubit addresses:

$HOME/nubit-node/bin/nkey list --p2p.network nubit-alphatestnet-1 --node.type light

Use the following command to delete any additional keys:

nkey delete <The Name of Key> -f --node.type light --p2p.network nubit-alphatestnet-1

For optimal management, we recommend saving only one set of keys named my_nubit_key and avoiding the retention of multiple keys.

When you initialize your node, a set of my_nubit_key key is automatically generated for you.


Are batches supported? Is there a limit on batch requests?

We don’t support batch requests.


Are WS connections supported? What is available for WS connections?

Yes, WS connections are supported.

First, initialize your own light/full node. Assume you have finished Run a Node (Advanced) step by step.

After the node initialization, you should export the environment variables:

# The rpc ip and port your node listens to.
export NODE_RPC_IP="ws://localhost:26658"

The node RPC could be accessed by the websocket protocol directly.


How many different paths does the node serve?

Please refer to Nubit DA Node APIs.


What are the suggested caching rules for each RPC method?

The following methods could be cached / saved to database:

  • Blob: Get, GetAll, GetProof, Included

  • Header: GetBtcHeight, GetByHash, GetByHeight, GetHeightRangeAtBtcHeight, GetRangeByHeight

  • Share: GetEDS, GetShare, GetSharesByNamespace, SharesAvailable

Other methods are not recommended to be cached since they will change with time or be light enough to be not cached.


What is the best method to get the latest block and check that the node is healthy and in sync?

Use header.SyncState , this method will return the latest block height in its responded field height .

Use header.SyncWait to check whether the node is healthy or not. This method will block until the node is synced to the network's latest head.


What are the heaviest RPC methods? How much time does it take a node to respond to the request with such a method?

  • Blob: Get, GetAll, GetProof, Included (~1s)

  • Header: GetHeightRangeAtBtcHeight (~2s)


Is archive node provision a requirement?

Yes, the full node (archive node) is the only node that stores all data in the network.


Are there snapshots available for full/archive nodes?

There is no need to sync the snapshot now.


What is the role of the consensus-node (validator node)?

The consensus-node is a validator node that does not produce blocks. It needs to be run as a data source for the bridge. It can also produce blocks, but currently, we have not delegated tokens to these validators.


Does the DA node need to provide RPC to users?

It is not necessary to provide RPC to users. The node's RPC is for internal use. Users can run their own light nodes for accessing RPC.


How do bridge nodes handle P2P connections for light node users?

Bridge nodes, when exposed to the public network, can automatically provide P2P connections to light node users.

Last updated