Deploy a DSL Node
An easy guide for deploying an RSS3 Node on the Data Sublayer.
Introduction
This guide provides instructions for a deployment using containerized solutions including Docker and Kubernetes. The deployment focuses on the Decentralized component. For deploying more components, refer to the respective guides. It is assumed that the user has a basic understanding of terminal commands and containerization concepts.
The guide is opinionated towards a containerized deployment solution, the source code is available at: https://github.com/RSS3-Network/Node, if one prefers an alternative deployment method.
It's important to note that while the Node itself is production-ready, the deployment methods we outline here may not be universally applicable in all environments. Adaptation of these methods may be necessary to fit the specific requirements of your own setup.
Deployment
Prerequisites
- Basic command line proficiency
- Have your Node registered on the VSL
- Have docker, docker-compose installed on the server
Alternative Deployment Methods
You can also choose alternative deployment methods like:
Light Mode
Learn how to deploy an RSS3 Node in light mode.
Serverless
An easy guide for deploying an RSS3 Node on serverless platforms.
Hardware Requirements
Since RSS3 Node's coverage is highly customizable, there is no universal configuration applicable to all.
Our interactive deployment configurator will provide an estimated hardware requirement.
We recommend a minimal configuration of 16 Core, 64 GB RAM, 500 GB SSD * 3 to operate a Node with full coverage to boost your work rate. For that, AlloyDB should be used to replace PostgreSQL, as AlloyDB generally requires fewer resources than a PostgreSQL cluster to achieve the same performance.
Local AI Capability
Running local AI models requires additional resources (mainly GPUs). It is currently in an internal testing phase, where OpenAgent will be part of the Node to provide AI capabilities.
We will release the relevant documentation soon.
Meanwhile, you can try out OpenAgent on your own server.
Deploy via docker-compose
A configuration file is required for deploying your Node.
👍 We strongly recommend that everyone use the interactive deployment configurator to minimize the risk of manual errors.
-
During your Node registration https://explorer.rss3.io/nodes/register, follow the steps and generate a
config.yaml
, and download it. -
In the same directory as your
config.yaml
, download the automated deployment script by executing the following command:
🎉 And you are done! (Yes it's that simple.)
A successful deployment will generate the following containers:
- rss3_node_core: This container is used to process incoming requests from Global Indexers.
- rss3_node_broadcaster: This container is used to broadcast the Node's status to Global Indexers.
- rss3_node_monitor: This container is used to monitor worker status.
- rss3_node_alloydb: This container is used to store data.
- rss3_node_redis: This container is used to cache data.
- rss3_node_agentdata: This container is used to provide AI capabilities.
- worker containers: These containers are used to index data from their corresponding sources. (if you have enabled at least 1 decentralized/federated worker)
Sample config.yaml
For your reference, a config.yaml
that contains the Decentralized component only should look like this:
Deploy via Kubernetes
Prerequisites
Create a Kubernetes cluster via kind
Create our Kubernetes cluster with the following command
kind create cluster --name node
Deploy using RSS3's Helm Chart
Since Helm uses a chart file for deployment. We can easily deploy a Node by using the chart files provided.
Get Help
In case you run into any issues, please reach out to us on Discord.
Conclusion
This guide provides basic instructions for deploying an RSS3 Node in containerized environments. For more advanced configurations, refer to the respective Docker or Kubernetes documentation.
This guide adopts an opinionated stance in favor of containerized deployment. We advocate for this approach due to its benefits in ensuring consistency and scalability, promoting ease of portability across various environments. However, we appreciate the diverse preferences and needs within our community, for those who wish to compile and run the application locally, the source code is available on: https://github.com/RSS3-Network/Node.