Joining the beta network¶
The beta network exists for the purpose of conducting certain network-wide activites including load testing and new node releases and features testing. These activities can cause the network to become unstable or inaccessible at times due to heavy traffic, occasional resetting of the genesis/ledger or the introduction of bugs due to new features. As a result, an alternative test network is also available which will be more stable and is a better fit for learning node setup and management, and testing out upgrades and other activities for Nano before moving to production.
With those things in consideration, if you are interested in helping with testing on the beta network we are excited to help you out - so keep reading!
Node release testing¶
The Nano Foundation maintains a few beta nodes on the network and various community members also setup nodes to help provide an environment more similar to the main network. During each development cycle Development Builds (DB) are prepared and shared in the Discord Beta Testing section of channels where early testing is coordinated. Once features are stabilized and included, release builds are published as Release Candidates (RC). Starting with RC1 and incrementing with each published build if needed (RC2, RC3, etc.). Final release of a version typically follows quickly once the RC is observed to be stable.
Warning
Development Builds (DBs) are only recommended for use on the beta network, and Release Candidate builds (RCs) are only recommended for use on the test and beta networks
Running a beta node¶
Setting up a node on the beta network is similar to the main network. To start you should install docker and be familiar with the general setup and Docker management processes.
Network ports¶
Port | Protocol | Required? | Purpose |
---|---|---|---|
54000 | TCP | Yes, open to all traffic | For live network activity and bootstrap network activity. |
55000 | TCP | No, recommended | For communication with RPC server. Do not expose this outside of your production environment. Anyone with access to this port can control your node's RPC. |
56000 | TCP | No, optional | For communication via IPC (advanced). See IPC integration guide for more details. |
57000 | TCP | No, optional | For communication with websocket server. Depending on configuration, data throughput can be very high. |
Directory locations¶
OS | Location |
---|---|
Windows | C:\Users\<user>\AppData\Local\NanoBeta\ |
macOS | /Users/<user>/Library/NanoBeta/ |
Linux | /home/<user>/NanoBeta/ |
Docker | As defined by the -v flag in the docker run command |
.deb/rpm | /var/nanocurrency/NanoBeta |
Pulling the Docker image¶
Pulls the latest release of the Nano Node:
docker pull nanocurrency/nano-beta
Pulls a specific version of the Nano node:
docker pull nanocurrency/nano-beta:<tag>
A list of beta tags can be found at the official Nano Currency Docker Hub
Starting the Docker container¶
docker run --restart=unless-stopped -d \
-p 54000:54000 \
-p 127.0.0.1:55000:55000 \ # (1)
-p 127.0.0.1:57000:57000 \ # (2)
-v ${NANO_HOST_DIR}:/root \
--name ${NANO_NAME} \
nanocurrency/nano-beta:${NANO_TAG}
- Port 55000 is optional, but recommended, for querying via RPC
- Port 57000 is optional for connecting via WebSockets
Tip
- For an explanation of the options included in the Docker
run
command, see Starting the Container details for the main network. - See Docker management for other related commands
Separate host directories
Be sure to use a different host directory for main network and beta network Docker node setups. Attempting to use the same directory will result in issues.
Additional beta resources¶
URL | Description |
---|---|
https://beta.nanobrowse.com | Beta Explorer |
https://nanoticker.bnano.info/ | Beta node details and stats |
Differences from the main network¶
Parameter | Main Network | Beta Network | Comment |
---|---|---|---|
Epoch 1 difficulty threshold | ffffffc000000000 |
fffff00000000000 |
64 times lower on the beta network |
Epoch 2 send/change threshold | fffffff800000000 |
fffff00000000000 |
Same as epoch 1 on the beta network |
Epoch 2 receive threshold | fffffe0000000000 |
ffffe00000000000 |
2 times lower than epoch 1 |
Testing Builds¶
Most of the resources needed to participate on the beta network can be found within the #beta-xxxxxxx
channels on our Discord server. As much of the discussion, planning and engagement happens here, all participants are highly encouraged to join there.
Binaries¶
In addition to the Docker details above, the latest binary builds of the node for the beta network are shared in the #beta-announcements
channel on our Discord server. These assets are also available on the GitHub repository Releases page under RC#
and DB#
tags, which can also be used to manually build if necessary.
Beta fund distribution¶
The funds used for testing transactions on the beta network are generated from a new genesis block and distributed in bulk to various testers running nodes on the network. For small amounts suitable for most basic integration, you can get beta Nano from the #beta-faucet
channel on Discord. If you plan to consistently run a node on beta and want to participate in consensus as a Representative, please connect with ThiagoSFS#1554
in the #beta-net
channel on our Discord server.
Beta ledger file¶
To help get beta nodes in sync more quickly it is recommended that an updated ledger file is downloaded and placed into the data directory. Often referred to as a "fast sync", more details around this approach can be found in the Ledger Management guide. Since the beta network contains no value, validating the blocks, voting weights and confirmation heights isn't necessary.
The following command will download and unzip a recent ledger snapshot. Any existing ledger files should be backed up elswhere as this will override them. From within the data directory run:
curl -O https://s3.us-east-2.amazonaws.com/beta-snapshot.nano.org/data.tar.gz; tar -xzvf data.tar.gz; rm -fr data.tar.gz
Build contents and test cases¶
With each DB a GitHub Project board will be created in the Nano GitHub Organization containing all the Pull Requests newly added in the DB, changes from previous DBs that still need network testing, and issues with the various test cases that are targeted to be run with that build. For those looking to assist with these tests, we encourage connecting with the other beta network participants in the #beta-net
channel on our Discord server.