Releases: radixdlt/babylon-node
RCnet v3.1 - Revision 5
Set-up instructions
Please see:
- The babylon migration documentation for instructions on running this node in preparation for Babylon mainnet. Note that a replacement final node version will be available next Friday, 22nd September. This will be a required update for a successful Babylon switchover.
- The RCnet v3.1 r4 release notes for instructions on running this node as a zabanet node.
For those running on Zabanet
Not a required update (unless you're running a Core API and with to update to newest Gateway when it launches).
Adds a resolution of GenericSubstitution::Remote
in the stream transactions endpoint for use by the Gateway.
RCnet v3.1 - Revision 4
Overview
This is the fourth release candidate of the Radix Babylon mainnet.
The network which will run our public RCnet v3.1 network will be zabanet
(it will replace RCnet v3 running on Zabanet with a ledger wipe, when we publish later this week). As such you may see zabanet
in some docs - particularly where we want to differentiate between this network, and other networks running an RCnet v3.1 build (such as migrated stokenet).
IMPORTANT: If you were running a node for RCnet v2 or RCnet v3, please delete your ledger during your update to the v3.1 node.
Node Runners
- Links to all the API docs are here
- Basic docs on node running are here.
Running with the Node Runner CLI
Our recommended approach. See the docs here and the relevant release can be obtained from here: https://github.com/radixdlt/babylon-nodecli/releases/tag/2.0.rcnet-v3-rc5
Please let us know in #node-runners in Discord if you encounter problems.
Running via docker
- Image
rcnet-v3.1-r4
is available from docker hub - An example docker compose file is available here
- Supported environment variable configuration is here - as well as normal configuration, you will need to set up environment variables for RCnet v3.1 / Zabanet as follows:
RADIXDLT_NETWORK_ID: 14
RADIXDLT_NETWORK_SEEDS_REMOTE: radix://node_tdx_e_1q0gm3fwqh8ggl09g7l8ru96krzlxdyrc694mqw8cf227v62vjyrmccv8md5@13.126.65.118,radix://node_tdx_e_1q0juzf2gnhfhy2aj6x88x4f459tf2a2mdk56jm3ffhzp94fn8k0q5lkse34@52.64.209.45,radix://node_tdx_e_1qdzlwtjn9wcmcyt3mp3g4qaerr6fgrl86ze6t20427tf4rmnu670y0cgszc@54.72.0.65,radix://node_tdx_e_1qfz9r8xp95vuzjq503l856ywukrdnukcz4232tr4nsx7ff2efvfnwvaq080@35.168.132.18
RADIXDLT_GENESIS_DATA: /wYAAHNOYVBwWQDRAgBo6NIQvgoUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQkoOyCkOtRDo+1mgUYGQEgoAAAZKeztuANGRMJARU7FQkgoAAAEGMtXsdrFYENAeAgIgMEASAhAQKA0fJ+apHv10KbZw/zq1+awjGS4SYu/i7pxk+BCLnNoAAAAGCKph7+xG3S1QgAAAAVArABICEEBiAHIQPRuKXAudCPvKj3zj4XVhi+ZpB40WuwOPhKleZpTJEHvAEBAQFiswDwkCAhAgIMBG5hbWUiAAEME0RlZmF1bHQgdmFsaWRhdG9yIDECDAN1cmwiDQEMGGh0dHBzOi8vd3d3LnJhZGl4ZGx0LmNvbYDRk4ZR64ZKF0UXY8UqyV6ghwcOhTBATZMlYRUFrK8GIAchA+XBJUid03IrstGOc1U1oVaVdVttqaluKU3EEtUzPZ4KAQEBAaAAAGRSWQGCpgAEMgKOpgBw6qD7P5CmKE5Vw2wD57719pXjLq07Mg+HaguVWgMlTHxF9y5TK7G8EXHYYoqDuRj0lA/n0LOlqfVXlpqPc+a88vZMAQAzkqYAcKvDUcvEhfpU9zJiX0WLTYhldkUKzZWgKxkIj7BjAaaAAkRRnMEtGcFIFHx+emiO5YbZ8tgVVRUsdZwN5KVZSxM39qYAADSSpgCQ4Bhb5cGHtROfCGYqZsBNXyin+4PMPOq2HReDCj0BAiCAAdHyfmrZAgwgIQQCjr4CECAhAQIJQfUwoAAAAOg8gNCfPC47AwEREQEFRxDlwSVInWpfAppHAH4AApZHAIKhAYZHAAHuJEDq7XRG0JwsnwwR60wAAAAgDAYMdHJhbnNmZXJfeHJkCGGJkHN3YXAIbWV0YWRhdGERZnVuZ2libGVfcmVzb3VyY2UVbm9uX2Y+FgB0HWFjY291bnRfYXV0aG9yaXplZF9kZXBvc2l0b3Jz
Running natively
The main change to Olympia is that the node now has its core written in Rust, but still uses java as the system orchestrator.
To run the node, you will need both:
- The attached JAR (in
babylon-node-rcnet-v3.1-r4.zip
) - The native library, compiled for your node's system architecture. This will have a name like
libcorerust.so
/corerust.dll
/libcorerust.dylib
depending on the platform.- We prebuild this for many platforms - see the attached zip files. EG the contents of
babylon-node-rust-arch-linux-x86_64-release-rcnet-v3.1-r4.zip
can be used for x86_64 linux deployments. Note they need to use a version of libc at least as recent as Ubuntu 22.04.2.0 LTS (Jammy Jellyfish). - If you need another architecture, you will need to compile it yourself on the desired target - see section below.
- We prebuild this for many platforms - see the attached zip files. EG the contents of
You will then need to run the JAR, but make the native library available for java to connect via JNI. This can be done in one of multiple ways:
- On Linux:
- Put the native library in
/usr/lib/jni
or/usr/lib
- be sure it's namedlibcorerust.so
- Start the jar with an environment variable
LD_PRELOAD=/path/to/native_library.so
.
- Put the native library in
- General:
- Put the library at one of the java.library.paths (on Ubuntu: e.g. /usr/lib/jni, on OSX: e.g. ~/Library/Java/Extensions/)
- Run the jar with
-Djava.library.path=<path_to_library_directory>
and put the library there. EG on windows, the library will need to be calledcorerust.dll
.
Configuration to use with your RCnet v3 / zabanet node is as follows. This can be specified in a file called "default.config" alongside the home directory of the node, or put in another file and referenced via a --config=path/to/config-file
command line parameter.
network.id=14
network.p2p.seed_nodes=radix://node_tdx_e_1q0gm3fwqh8ggl09g7l8ru96krzlxdyrc694mqw8cf227v62vjyrmccv8md5@13.126.65.118,radix://node_tdx_e_1q0juzf2gnhfhy2aj6x88x4f459tf2a2mdk56jm3ffhzp94fn8k0q5lkse34@52.64.209.45,radix://node_tdx_e_1qdzlwtjn9wcmcyt3mp3g4qaerr6fgrl86ze6t20427tf4rmnu670y0cgszc@54.72.0.65,radix://node_tdx_e_1qfz9r8xp95vuzjq503l856ywukrdnukcz4232tr4nsx7ff2efvfnwvaq080@35.168.132.18
network.genesis_data=/wYAAHNOYVBwWQDRAgBo6NIQvgoUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQkoOyCkOtRDo+1mgUYGQEgoAAAZKeztuANGRMJARU7FQkgoAAAEGMtXsdrFYENAeAgIgMEASAhAQKA0fJ+apHv10KbZw/zq1+awjGS4SYu/i7pxk+BCLnNoAAAAGCKph7+xG3S1QgAAAAVArABICEEBiAHIQPRuKXAudCPvKj3zj4XVhi+ZpB40WuwOPhKleZpTJEHvAEBAQFiswDwkCAhAgIMBG5hbWUiAAEME0RlZmF1bHQgdmFsaWRhdG9yIDECDAN1cmwiDQEMGGh0dHBzOi8vd3d3LnJhZGl4ZGx0LmNvbYDRk4ZR64ZKF0UXY8UqyV6ghwcOhTBATZMlYRUFrK8GIAchA+XBJUid03IrstGOc1U1oVaVdVttqaluKU3EEtUzPZ4KAQEBAaAAAGRSWQGCpgAEMgKOpgBw6qD7P5CmKE5Vw2wD57719pXjLq07Mg+HaguVWgMlTHxF9y5TK7G8EXHYYoqDuRj0lA/n0LOlqfVXlpqPc+a88vZMAQAzkqYAcKvDUcvEhfpU9zJiX0WLTYhldkUKzZWgKxkIj7BjAaaAAkRRnMEtGcFIFHx+emiO5YbZ8tgVVRUsdZwN5KVZSxM39qYAADSSpgCQ4Bhb5cGHtROfCGYqZsBNXyin+4PMPOq2HReDCj0BAiCAAdHyfmrZAgwgIQQCjr4CECAhAQIJQfUwoAAAAOg8gNCfPC47AwEREQEFRxDlwSVInWpfAppHAH4AApZHAIKhAYZHAAHuJEDq7XRG0JwsnwwR60wAAAAgDAYMdHJhbnNmZXJfeHJkCGGJkHN3YXAIbWV0YWRhdGERZnVuZ2libGVfcmVzb3VyY2UVbm9uX2Y+FgB0HWFjY291bnRfYXV0aG9yaXplZF9kZXBvc2l0b3Jz
Compiling the native library for your architecture
If you need an architecture other than those offered in the attached zip files, you will need to compile it yourself on the desired target.
Pre-requisites
- clang
- git
- openjdk-17-jdk-headless
- rustup (e.g.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
) - note: the prepackaged rust-1.62-all on Ubuntu is insufficient
Build steps
On your node:
- Clone the repository
git clone https://github.com/radixdlt/babylon-node.git
, change directory tobabylon-node
, and checkout the branchrelease/rcnet-v3.1
- Run
./gradlew installDist
inbabylon-node
- Run
cargo build --release
inbabylon-node/core-rust
- Copy the created rust library found in
babylon-node/core-rust/target/release/libcorerust.so
(libcorerust.dylib
on OSX,corerust.dll
on Windows) to one of thejava.library.paths
(on Ubuntu: e.g./usr/lib/jni
, on OSX: e.g.~/Library/Java/Extensions/
)
You can then start your node as normal, eg with env RADIX_NODE_KEYSTORE_PASSWORD=[validator.ks passphrase] ./core/build/install/core/bin/core
Note: ./core/build/install/
directory can be safely moved to a directory under /opt
, e.g. /opt/radixdlt
.
Service files for Debian
A .deb
for the node containing a useful base .service
can be created as follows:
- Clone the repository and
cd babylon-node
- Run
./gradlew deb4Docker
- Install the package that was created with
dpkg -i
- Fine-tune the installed service file - e.g. by adding the
RADIX_NODE_KEYSTORE_PASSWORD
environment variable.
APIs/Monitoring:
APIs now live here:
- Core (bound to localhost:3333) - Core API docs here
- System (bound to localhost:3334) - System API docs here
- Prometheus (bound to localhost:3335) - they have been rehashed a lot to be a lot more consistent and powerful, although we don't have a great guide for these just yet.
Validator Registration:
Details are available here: https://docs-babylon.radixdlt.com/main/node-and-gateway/register-as-validator.html
RCnet v3.1 - Revision 3
NOTE: Please use https://github.com/radixdlt/babylon-node/releases/tag/rcnet-v3.1-r4
Another small consensus-related bug fix on top of rncet-v3.1-r2
. A straightforward swap-in update for rcnet-v3.1-r2
.
When this release finishes building, it is recommended to be run by validators on babylon-stokenet
.
RCnet v3.1 - Revision 2
NOTE: Please use https://github.com/radixdlt/babylon-node/releases/tag/rcnet-v3.1-r4
A small consensus-related bug fix on top of rncet-v3.1-r1
. A straightforward swap-in update for rcnet-v3.1-r1
.
When this release finishes building, it is recommended to be run by validators as part of the Stokenet switchover.
RCnet v3.1 - Revision 1
NOTE: Please now use/see https://github.com/radixdlt/babylon-node/releases/tag/rcnet-v3.1-r4
RCnet v3 - Revision 4
Overview
This is the third release candidate of the Radix Babylon mainnet.
The network which runs our public RCnet v3 network has a logical name of zabanet
- which you will see in some places - particularly where we want to differentiate between this network, and other networks running an RCnet v3 build (such as migrated stokenet).
IMPORTANT: If you were running a node for RCnet v2, please delete your ledger during your update to the phase 3 node.
Node Runners
- Links to all the API docs are here
- Basic docs on node running are here.
Running with the Node Runner CLI
Our recommended approach. See the docs here and the relevant release can be obtained from here: COMING SOON
Please let us know in #node-runners in Discord if you encounter problems.
Running via docker
- Image
rcnet-v3-r4
is available from docker hub - An example docker compose file is available here
- Supported environment variable configuration is here - as well as normal configuration, you will need to set up environment variables for RCnet v3 / Zabanet as follows:
RADIXDLT_NETWORK_ID: 14
RADIXDLT_NETWORK_SEEDS_REMOTE: radix://node_tdx_e_1q0gm3fwqh8ggl09g7l8ru96krzlxdyrc694mqw8cf227v62vjyrmccv8md5@13.126.65.118,radix://node_tdx_e_1q0juzf2gnhfhy2aj6x88x4f459tf2a2mdk56jm3ffhzp94fn8k0q5lkse34@52.64.209.45,radix://node_tdx_e_1qdzlwtjn9wcmcyt3mp3g4qaerr6fgrl86ze6t20427tf4rmnu670y0cgszc@54.72.0.65,radix://node_tdx_e_1qfz9r8xp95vuzjq503l856ywukrdnukcz4232tr4nsx7ff2efvfnwvaq080@35.168.132.18
RADIXDLT_GENESIS_DATA: /wYAAHNOYVBwWQDRAgBo6NIQvgoUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQkoOyCkOtRDo+1mgUYGQEgoAAAZKeztuANGRMJARU7FQkgoAAAEGMtXsdrFYENAeAgIgMEASAhAQKA0fJ+apHv10KbZw/zq1+awjGS4SYu/i7pxk+BCLnNoAAAAGCKph7+xG3S1QgAAAAVArABICEEBiAHIQPRuKXAudCPvKj3zj4XVhi+ZpB40WuwOPhKleZpTJEHvAEBAQFiswDwkCAhAgIMBG5hbWUiAAEME0RlZmF1bHQgdmFsaWRhdG9yIDECDAN1cmwiDQEMGGh0dHBzOi8vd3d3LnJhZGl4ZGx0LmNvbYDRk4ZR64ZKF0UXY8UqyV6ghwcOhTBATZMlYRUFrK8GIAchA+XBJUid03IrstGOc1U1oVaVdVttqaluKU3EEtUzPZ4KAQEBAaAAAGRSWQGCpgAEMgKOpgBw6qD7P5CmKE5Vw2wD57719pXjLq07Mg+HaguVWgMlTHxF9y5TK7G8EXHYYoqDuRj0lA/n0LOlqfVXlpqPc+a88vZMAQAzkqYAcKvDUcvEhfpU9zJiX0WLTYhldkUKzZWgKxkIj7BjAaaAAkRRnMEtGcFIFHx+emiO5YbZ8tgVVRUsdZwN5KVZSxM39qYAADSSpgCQ4Bhb5cGHtROfCGYqZsBNXyin+4PMPOq2HReDCj0BAiCAAdHyfmrZAgwgIQQCjr4CECAhAQIJQfUwoAAAAOg8gNCfPC47AwEREQEFRxDlwSVInWpfAppHAH4AApZHAIKhAYZHAAHuJEDq7XRG0JwsnwwR60wAAAAgDAYMdHJhbnNmZXJfeHJkCGGJkHN3YXAIbWV0YWRhdGERZnVuZ2libGVfcmVzb3VyY2UVbm9uX2Y+FgB0HWFjY291bnRfYXV0aG9yaXplZF9kZXBvc2l0b3Jz
Running natively
The main change to Olympia is that the node now has its core written in Rust, but still uses java as the system orchestrator.
To run the node, you will need both:
- The attached JAR (in
babylon-node-rcnet-v3-r4.zip
) - The native library, compiled for your node's system architecture. This will have a name like
libcorerust.so
/corerust.dll
/libcorerust.dylib
depending on the platform.- We prebuild this for many platforms - see the attached zip files. EG the contents of
babylon-node-rust-arch-linux-x86_64-release-rcnet-v3-r4.zip
can be used for x86_64 linux deployments. Note they need to use a version of libc at least as recent as Ubuntu 22.04.2.0 LTS (Jammy Jellyfish). - If you need another architecture, you will need to compile it yourself on the desired target - see section below.
- We prebuild this for many platforms - see the attached zip files. EG the contents of
You will then need to run the JAR, but make the native library available for java to connect via JNI. This can be done in one of multiple ways:
- On Linux:
- Put the native library in
/usr/lib/jni
or/usr/lib
- be sure it's namedlibcorerust.so
- Start the jar with an environment variable
LD_PRELOAD=/path/to/native_library.so
.
- Put the native library in
- General:
- Put the library at one of the java.library.paths (on Ubuntu: e.g. /usr/lib/jni, on OSX: e.g. ~/Library/Java/Extensions/)
- Run the jar with
-Djava.library.path=<path_to_library_directory>
and put the library there. EG on windows, the library will need to be calledcorerust.dll
.
Configuration to use with your RCnet v3 / zabanet node is as follows. This can be specified in a file called "default.config" alongside the home directory of the node, or put in another file and referenced via a --config=path/to/config-file
command line parameter.
network.id=14
network.p2p.seed_nodes=radix://node_tdx_e_1q0gm3fwqh8ggl09g7l8ru96krzlxdyrc694mqw8cf227v62vjyrmccv8md5@13.126.65.118,radix://node_tdx_e_1q0juzf2gnhfhy2aj6x88x4f459tf2a2mdk56jm3ffhzp94fn8k0q5lkse34@52.64.209.45,radix://node_tdx_e_1qdzlwtjn9wcmcyt3mp3g4qaerr6fgrl86ze6t20427tf4rmnu670y0cgszc@54.72.0.65,radix://node_tdx_e_1qfz9r8xp95vuzjq503l856ywukrdnukcz4232tr4nsx7ff2efvfnwvaq080@35.168.132.18
network.genesis_data=/wYAAHNOYVBwWQDRAgBo6NIQvgoUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQkoOyCkOtRDo+1mgUYGQEgoAAAZKeztuANGRMJARU7FQkgoAAAEGMtXsdrFYENAeAgIgMEASAhAQKA0fJ+apHv10KbZw/zq1+awjGS4SYu/i7pxk+BCLnNoAAAAGCKph7+xG3S1QgAAAAVArABICEEBiAHIQPRuKXAudCPvKj3zj4XVhi+ZpB40WuwOPhKleZpTJEHvAEBAQFiswDwkCAhAgIMBG5hbWUiAAEME0RlZmF1bHQgdmFsaWRhdG9yIDECDAN1cmwiDQEMGGh0dHBzOi8vd3d3LnJhZGl4ZGx0LmNvbYDRk4ZR64ZKF0UXY8UqyV6ghwcOhTBATZMlYRUFrK8GIAchA+XBJUid03IrstGOc1U1oVaVdVttqaluKU3EEtUzPZ4KAQEBAaAAAGRSWQGCpgAEMgKOpgBw6qD7P5CmKE5Vw2wD57719pXjLq07Mg+HaguVWgMlTHxF9y5TK7G8EXHYYoqDuRj0lA/n0LOlqfVXlpqPc+a88vZMAQAzkqYAcKvDUcvEhfpU9zJiX0WLTYhldkUKzZWgKxkIj7BjAaaAAkRRnMEtGcFIFHx+emiO5YbZ8tgVVRUsdZwN5KVZSxM39qYAADSSpgCQ4Bhb5cGHtROfCGYqZsBNXyin+4PMPOq2HReDCj0BAiCAAdHyfmrZAgwgIQQCjr4CECAhAQIJQfUwoAAAAOg8gNCfPC47AwEREQEFRxDlwSVInWpfAppHAH4AApZHAIKhAYZHAAHuJEDq7XRG0JwsnwwR60wAAAAgDAYMdHJhbnNmZXJfeHJkCGGJkHN3YXAIbWV0YWRhdGERZnVuZ2libGVfcmVzb3VyY2UVbm9uX2Y+FgB0HWFjY291bnRfYXV0aG9yaXplZF9kZXBvc2l0b3Jz
Compiling the native library for your architecture
If you need an architecture other than those offered in the attached zip files, you will need to compile it yourself on the desired target.
Pre-requisites
- clang
- git
- openjdk-17-jdk-headless
- rustup (e.g.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
) - note: the prepackaged rust-1.62-all on Ubuntu is insufficient
Build steps
On your node:
- Clone the repository
git clone https://github.com/radixdlt/babylon-node.git
, change directory tobabylon-node
, and checkout the branchrelease/rcnet-v3
- Run
./gradlew installDist
inbabylon-node
- Run
cargo build --release
inbabylon-node/core-rust
- Copy the created rust library found in
babylon-node/core-rust/target/release/libcorerust.so
(libcorerust.dylib
on OSX,corerust.dll
on Windows) to one of thejava.library.paths
(on Ubuntu: e.g./usr/lib/jni
, on OSX: e.g.~/Library/Java/Extensions/
)
You can then start your node as normal, eg with env RADIX_NODE_KEYSTORE_PASSWORD=[validator.ks passphrase] ./core/build/install/core/bin/core
Note: ./core/build/install/
directory can be safely moved to a directory under /opt
, e.g. /opt/radixdlt
.
Service files for Debian
A .deb
for the node containing a useful base .service
can be created as follows:
- Clone the repository and
cd babylon-node
- Run
./gradlew deb4Docker
- Install the package that was created with
dpkg -i
- Fine-tune the installed service file - e.g. by adding the
RADIX_NODE_KEYSTORE_PASSWORD
environment variable.
APIs/Monitoring:
APIs now live here:
- Core (bound to localhost:3333) - Core API docs here
- System (bound to localhost:3334) - System API docs here
- Prometheus (bound to localhost:3335) - they have been rehashed a lot to be a lot more consistent and powerful, although we don't have a great guide for these just yet.
Validator Registration:
Details are available here: https://docs-babylon.radixdlt.com/main/node-and-gateway/register-as-validator.html
RCnet v3 - Revision 3
Not for public running - please see Revision 4
RCnet v3 - Revision 2
Not for public running - please see Revision 4
RCnet v3 - Revision 1
Not for public running - please see Revision 4
RCnet v2 (Phase 2) - Revision 4
Overview
This is the second release candidate of the Radix Babylon mainnet.
The network which runs our public RCnet v2 network has a logical name of ansharnet
- which you will see in some places - particularly where we want to differentiate between this network, and other networks running an RCnet v2 build (such as migrated stokenet).
IMPORTANT: If you were running a node for RCnet v2 phase 1, please delete your ledger during your update to the phase 2 node.
Node Runners
- Links to all the API docs are here
- Basic docs on node running are here.
Running with the Node Runner CLI
Our recommended approach. See the docs here and the relevant release can be obtained from here: Babylon Node Runner CLI (2.0.rcnet-v2-rc2).
Please let us know in #node-runners in Discord if you encounter problems.
Running via docker
- Image
rcnet-v2-phase2-r4
is available from docker hub - An example docker compose file is available here
- Supported environment variable configuration is here - as well as normal configuration, you will need to set up environment variables for RCnet v2 / Ansharnet as follows:
RADIXDLT_NETWORK_ID: 13
RADIXDLT_NETWORK_SEEDS_REMOTE: radix://node_tdx_d_1qwq2nfe6vxqwe3mqmfm9l2xl97as7lkwndval63cymvc3qszn8nqx6g2s3m@3.109.161.178,radix://node_tdx_d_1q29f3zz9w9uqjcmm6pm9hy80urqtj45hul4lv7n322vevperxs6ejcrv3w9@108.129.33.91,radix://node_tdx_d_1qt0yksvn7hq58dnwnnhz55vvy82q2q2zc38e0ew2sqwmtcvu9cufxj8zefm@18.209.234.164,radix://node_tdx_d_1qfynwk8lwzfzf4dl3ey5l3x2aw5para950q6psd6gknfnj5nqjkayjw6ugt@13.54.49.156
RADIXDLT_GENESIS_DATA: /wYAAHNOYVBwWQDGAgAyyI7FiAsUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQkoOyCkOtRDo+1mgUYRgEAIKAAAGSns7bgDUYbAAkBFUsVCSCgAAAQYy1ex2sVkToBAOAgIgMEASAhAQKA0fJ+apHv10KbZw/zq1+awjGS4SYu/i7pxk+BCLnNoAAAAGCKph7+xG3S1QgAAABCAgCwASAhBAYgByEDgKmnOmGA7Mdg2nZfqN8vuw9+zptZ3+o4JtmIggKZ5gMBAQEBgssA8JAgIQICDARuYW1lIgABDBNEZWZhdWx0IHZhbGlkYXRvciAxAgwDdXJsIg0BDBhodHRwczovL3d3dy5yYWRpeGRsdC5jb22A0Zb3rL7jVbgR3xbIbJsYSQNlONYuVDX8m+SrMBe9BiAHIQJJN1j/cJIk1b+OSU/EyuuoHo+lo8GgwbpFppnKkwSt0gEBAQGgAABkcnkBgq4ABDICjq4AcGK+4QndJF19+AtkEtsWr116M1rwDZezHWsary+vIVyAAoqYiEVxeAlje9B2W5Dv4MC5Vpfn6/Z6cVKZlgcjNDWZ/lwBKVwAM5KuAHD6QUsV/HSyClvdYh9Wu+Ousi36/G8F0lb3W9Om5gWufN5LQZP1wUO2bpzuKlGMIdQFAULET5flyoAdteGcLjiT/q4ACa4ANJKuAJAdbq5nt52TcwToTdEhi8DNaAQOt8wwNGGRzKCnggECIIAB0fJ+agEDDCAhBAKO3gIQICEBAglhHTCgAAAA6DyA0J88LjsDARE+AQABTwQCSXp/ArpPAH4gArpPAH7BAaZPACEOJEDq7XRG0Jwsnww+CwFMAAAAIAwFDHRyYW5zZmVyX3hyZAhhydBzd2FwCG1ldGFkYXRhEWZ1bmdpYmxlX3Jlc291cmNlFW5vbl9mdW5naWJsZV9yZXNvdXJjZQ==
Running natively
The main change to Olympia is that the node now has its core written in Rust, but still uses java as the system orchestrator.
To run the node, you will need both:
- The attached JAR (in
babylon-node-rcnet-v2-phase2-r4.zip
) - The native library, compiled for your node's system architecture. This will have a name like
libcorerust.so
/corerust.dll
/libcorerust.dylib
depending on the platform.- We prebuild this for many platforms - see the attached zip files. EG the contents of
babylon-node-rust-arch-linux-x86_64-release-rcnet-v2-phase2-r4.zip
can be used for x86_64 linux deployments. Note they need to use a version of libc at least as recent as Ubuntu 22.04.2.0 LTS (Jammy Jellyfish). - If you need another architecture, you will need to compile it yourself on the desired target - see section below.
- We prebuild this for many platforms - see the attached zip files. EG the contents of
You will then need to run the JAR, but make the native library available for java to connect via JNI. This can be done in one of multiple ways:
- On Linux:
- Put the native library in
/usr/lib/jni
or/usr/lib
- be sure it's namedlibcorerust.so
- Start the jar with an environment variable
LD_PRELOAD=/path/to/native_library.so
.
- Put the native library in
- General:
- Put the library at one of the java.library.paths (on Ubuntu: e.g. /usr/lib/jni, on OSX: e.g. ~/Library/Java/Extensions/)
- Run the jar with
-Djava.library.path=<path_to_library_directory>
and put the library there. EG on windows, the library will need to be calledcorerust.dll
.
Configuration to use with your RCnet v2 / ansharnet node is as follows. This can be specified in a file called "default.config" alongside the home directory of the node, or put in another file and referenced via a --config=path/to/config-file
command line parameter.
network.id=13
network.p2p.seed_nodes=radix://node_tdx_d_1qwq2nfe6vxqwe3mqmfm9l2xl97as7lkwndval63cymvc3qszn8nqx6g2s3m@3.109.161.178,radix://node_tdx_d_1q29f3zz9w9uqjcmm6pm9hy80urqtj45hul4lv7n322vevperxs6ejcrv3w9@108.129.33.91,radix://node_tdx_d_1qt0yksvn7hq58dnwnnhz55vvy82q2q2zc38e0ew2sqwmtcvu9cufxj8zefm@18.209.234.164,radix://node_tdx_d_1qfynwk8lwzfzf4dl3ey5l3x2aw5para950q6psd6gknfnj5nqjkayjw6ugt@13.54.49.156
network.genesis_data=/wYAAHNOYVBwWQDGAgAyyI7FiAsUXCEGCgEACQEABQkHKAAAIQoJZAAAAAr0DRoICrgLCRsMCuCTBAUKFTQkoOyCkOtRDo+1mgUYRgEAIKAAAGSns7bgDUYbAAkBFUsVCSCgAAAQYy1ex2sVkToBAOAgIgMEASAhAQKA0fJ+apHv10KbZw/zq1+awjGS4SYu/i7pxk+BCLnNoAAAAGCKph7+xG3S1QgAAABCAgCwASAhBAYgByEDgKmnOmGA7Mdg2nZfqN8vuw9+zptZ3+o4JtmIggKZ5gMBAQEBgssA8JAgIQICDARuYW1lIgABDBNEZWZhdWx0IHZhbGlkYXRvciAxAgwDdXJsIg0BDBhodHRwczovL3d3dy5yYWRpeGRsdC5jb22A0Zb3rL7jVbgR3xbIbJsYSQNlONYuVDX8m+SrMBe9BiAHIQJJN1j/cJIk1b+OSU/EyuuoHo+lo8GgwbpFppnKkwSt0gEBAQGgAABkcnkBgq4ABDICjq4AcGK+4QndJF19+AtkEtsWr116M1rwDZezHWsary+vIVyAAoqYiEVxeAlje9B2W5Dv4MC5Vpfn6/Z6cVKZlgcjNDWZ/lwBKVwAM5KuAHD6QUsV/HSyClvdYh9Wu+Ousi36/G8F0lb3W9Om5gWufN5LQZP1wUO2bpzuKlGMIdQFAULET5flyoAdteGcLjiT/q4ACa4ANJKuAJAdbq5nt52TcwToTdEhi8DNaAQOt8wwNGGRzKCnggECIIAB0fJ+agEDDCAhBAKO3gIQICEBAglhHTCgAAAA6DyA0J88LjsDARE+AQABTwQCSXp/ArpPAH4gArpPAH7BAaZPACEOJEDq7XRG0Jwsnww+CwFMAAAAIAwFDHRyYW5zZmVyX3hyZAhhydBzd2FwCG1ldGFkYXRhEWZ1bmdpYmxlX3Jlc291cmNlFW5vbl9mdW5naWJsZV9yZXNvdXJjZQ==
Compiling the native library for your architecture
If you need an architecture other than those offered in the attached zip files, you will need to compile it yourself on the desired target.
Pre-requisites
- clang
- git
- openjdk-17-jdk-headless
- rustup (e.g.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
) - note: the prepackaged rust-1.62-all on Ubuntu is insufficient
Build steps
On your node:
- Clone the repository
git clone https://github.com/radixdlt/babylon-node.git
, change directory tobabylon-node
, and checkout the branchrelease/rcnet-v2-phase-2
- Run
./gradlew installDist
inbabylon-node
- Run
cargo build --release
inbabylon-node/core-rust
- Copy the created rust library found in
babylon-node/core-rust/target/release/libcorerust.so
(libcorerust.dylib
on OSX,corerust.dll
on Windows) to one of thejava.library.paths
(on Ubuntu: e.g./usr/lib/jni
, on OSX: e.g.~/Library/Java/Extensions/
)
You can then start your node as normal, eg with env RADIX_NODE_KEYSTORE_PASSWORD=[validator.ks passphrase] ./core/build/install/core/bin/core
Note: ./core/build/install/
directory can be safely moved to a directory under /opt
, e.g. /opt/radixdlt
.
Service files for Debian
A .deb
for the node containing a useful base .service
can be created as follows:
- Clone the repository and
cd babylon-node
- Run
./gradlew deb4Docker
- Install the package that was created with
dpkg -i
- Fine-tune the installed service file - e.g. by adding the
RADIX_NODE_KEYSTORE_PASSWORD
environment variable.
APIs/Monitoring:
APIs now live here:
- Core (bound to localhost:3333) - Core API docs here
- System (bound to localhost:3334) - System API docs here
- Prometheus (bound to localhost:3335) - they have been rehashed a lot to be a lot more consistent and powerful, although we don't have a great guide for these just yet.
Validator Registration:
Details are available here: https://docs-babylon.radixdlt.com/main/node-and-gateway/register-as-validator.html