Releases: radixdlt/babylon-node
RCnet v2 (Phase 2) - Revision 3
This is the node version that will be run on ansharnet as of this afternoon. Note - the full stack Phase 2 release will not be out this week.
Some further small bug-fixes for RCnet v2 Phase 2.
We recommend node runners to run this version, but see RCnet v2 Phase 1 for the release / install notes.
RCnet v2 (Phase 2) - Revision 2
This is the node version that will be run on ansharnet as of this evening. Note - the full stack Phase 2 release will not be out this week.
Some small bug-fixes for RCnet v2 Phase 2.
We recommend node runners to run this version, but see RCnet v2 Phase 1 for the release / install notes.
RCnet v2 (Phase 2) - Revision 1
This is the node version that will be run on ansharnet as of this morning. Note - the full stack Phase 2 release will not be out this week.
Some small bug-fixes for RCnet v2 Phase 2.
We recommend node runners to run this version, but see RCnet v2 Phase 1 for the release / install notes.
RCnet v2 (Phase 1) - Revision 4
A small bug-fix which fixes the decompilation of certain transaction manifests in the Core API.
We recommend node runners to run this version, but see RCnet v2 Phase 1 for the release / install notes.
RCnet v2 (Phase 1) - Revision 3
This is RCnet v2 Phase 1 revision 3 - which contains a very minor patch to RCnet v2 Phase 1 concerning limits at end-of-epoch.
This fixes an issue affecting the ability to commit end-of-epoch transactions.
We recommend node runners to run this version, but see RCnet v2 Phase 1 for the release / install notes.
RCnet v2 (Phase 1)
This is RCnet v2 Phase 1 - which just covers radixdlt-scrypto and the node. A full stack (including Gateway, Dashboard, Wallet etc) will come with RCnet v2 Phase 2 in a few weeks - see announcement blog post for further details.
This build will be used for running the trial Stokenet migration - this Monday 10th July! Please see details here and come discuss in the #node-runners
channel on our discord server.
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 thercnet-v2-phase1
build (such as migrated stokenet). - This build can be used for running the Olympia to Babylon stokenet migration - further details on how to take part in the Stokenet migration are here.
Node Runners
- Links to all the API docs are here
- Basic docs on node running are here.
Running with the Node Runner CLI
NOTE: This isn't available just yet for RCnet-v2 - we expect it to be out early next week
Our recommended approach. See the docs here and the latest release can be obtained from here: Node Runner CLI.
Running via docker
- Image
rcnet-v2-phase1-r2
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-phase1.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-phase1.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
- 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:
This isn't easy to do at present, due to a lack of a full stack
Details will be here when available: https://docs-babylon.radixdlt.com/main/node-and-gateway/register-as-validator.html
RCnet-V1.2
Overview
Fixes an issue with the /core/lts/state/account-fungible-resource-balance
endpoint which was returning {"error_type":"Basic","code":500,"message":"Server error mapping response"}
in some instances.
Running a node
Please see the release notes under the RCnet-V1 release
RCnet-V1.1
Overview
This is a small update to the first release candidate of the Radix Babylon mainnet, with some small tweaks to make developing integrations against the node even easier. Nodes running this version are compatible with other nodes on kisharnet
.
Notably:
- Small tweaks to the
LTS
Core API to make it easier to use. - Fixes a couple of LTS endpoints, including the
/core/lts/stream/account-transaction-outcomes
endpoint living at the wrong path not consistent with the Open API schema. - Additional index for account-transactions, which will be indexed when the node is switched on.
- Release of a docker image for local development.
- A new Typescript Core API client: @radixdlt/babylon-core-api-sdk which will work well with the Typescript Engine Toolkit: @radixdlt/radix-engine-toolkit
Updating
Note that, upon start-up, this node will attempt to create a new index - so it may take about 10 minutes to come up the first time the node is loaded.
Images are available on docker hub here: rcnet-v1.1-682b897
Running a node
Please see the release notes under the RCnet-V1 release
RCnet-V1.0
Overview
This is the first release candidate of the Radix Babylon mainnet. The network which runs RCnet-v1 has a logical name of kisharnet
- which you will see in some places.
Integrators
Integrators looking to prepare for the Radix Babylon launch should start by considering if running their own node and using the Core API would work instead of running a Gateway and using the Gateway API, as they would have in Olympia.
Running just a node is simpler than running a node and Gateway, and the Core API has a "long term support" section of the API, designed for tracking fungible balances and accounts, which is guaranteed to be compatible with mainnet launch - enabling integrators to prepare for mainnet launch immediately.
Node Runners
- Links to all the API docs are here
- Basic docs on node running are here.
Better docs are coming shortly, but for now, details on configuration for different versions are below - and please ask any questions in the node-runners channel on our discord server.
In general, the configuration is as-per Olympia nodes, except with the following differences:
Running with the Node Runner CLI
Our recommended approach. See the docs here and the latest release can be obtained from here: Node Runner CLI.
Running via docker
- Image
rcnet-v1-c6360105d-build-2
is available from docker hub - Supported environment variable configuration is here - as well as normal configuration, you will need to set up environment variables for RCNet-V1 as follows:
RADIXDLT_NETWORK_ID=12
RADIXDLT_NETWORK_SEEDS_REMOTE=radix://node_tdx_c_1qvmhdlpvu3ym369ehjcmnmuam79vhs03gv0nqwhusewmvnjlfth3jpgr5ga@54.229.1.127,radix://node_tdx_c_1qfz58amtc2x8jz33uzfj9ymn8t2thhuatrt9w67he2w9x2f6eve4g20qctn@15.206.142.82,radix://node_tdx_c_1qtvxv7259j0l48gycv0zdze6he56c5sx4vjhljc7jsgkxaamnf3kccv4k4w@3.234.147.175,radix://node_tdx_c_1q2axr7xr4utg3a7hxstxdfjd7udqxzp5dqf6vgg0d0krmyrvzw775xa6nu4@3.24.207.200
RADIXDLT_GENESIS_TXN=02d86679542c9ffa9d04c31e268b3abe69ac5206ab257fcb1e94116377bb9a636c033776fc2ce449b8e8b9bcb1b9ef9ddf8acbc1f1431f303afc865db64e5f4aef19024543f76bc28c790a31e0932293733ad4bbdf9d58d6576bd7ca9c53293acb335402ba61f8c3af1688f7d7341666a64df71a0308346813a6210f6bec3d906c13bdea
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-v1-c6360105d.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 some platforms - eg the contents of
babylon-node-rust-arch-linux-x86_64-release-rcnet-v1-c6360105d.zip
. - If you need an architecture other than linux x86-64, for now you will need to compile it yourself on the desired target - see section below.
- We prebuild this for some platforms - 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 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=12
network.p2p.seed_nodes=radix://node_tdx_c_1qvmhdlpvu3ym369ehjcmnmuam79vhs03gv0nqwhusewmvnjlfth3jpgr5ga@54.229.1.127,radix://node_tdx_c_1qfz58amtc2x8jz33uzfj9ymn8t2thhuatrt9w67he2w9x2f6eve4g20qctn@15.206.142.82,radix://node_tdx_c_1qtvxv7259j0l48gycv0zdze6he56c5sx4vjhljc7jsgkxaamnf3kccv4k4w@3.234.147.175,radix://node_tdx_c_1q2axr7xr4utg3a7hxstxdfjd7udqxzp5dqf6vgg0d0krmyrvzw775xa6nu4@3.24.207.200
network.genesis_txn=02d86679542c9ffa9d04c31e268b3abe69ac5206ab257fcb1e94116377bb9a636c033776fc2ce449b8e8b9bcb1b9ef9ddf8acbc1f1431f303afc865db64e5f4aef19024543f76bc28c790a31e0932293733ad4bbdf9d58d6576bd7ca9c53293acb335402ba61f8c3af1688f7d7341666a64df71a0308346813a6210f6bec3d906c13bdea
Compiling the native library for your architecture
If you need an architecture other than linux x86-64, for now 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)
(for example, the prepackaged rust-1.62-all on Ubuntu is insufficient, yet)
Build steps
On your node:
- Clone the repository https://github.com/radixdlt/babylon-node.git
- Run ./gradlew installDist in babylon-node
- Run cargo build --release in babylon-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 the java.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.
New 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:
See this guide for how to set up as a validator. Everyone is welcome to try to run an RCNet node, but due to bandwidth, the RDX Works team can't promise to support or stake to people outside of the initial validator alpha programme at this stage
If you don't want to use a phone, you can use the Kotlin Client to generating a keypair on your machine and send transactions programmatically via your Core API or the RCnet Gateway API.
Related software releases
- Node Runner CLI
- Kotlin Client - on Maven Central as
com.radixdlt:babylon-client:rcnet-v1-1.0.0
- Gateway
Betanet-V2.1
This release includes improvements to the BFT consensus protocol, which are fully backward compatible with v2.0