> For the complete documentation index, see [llms.txt](https://zenofchain.gitbook.io/redstone-quick-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zenofchain.gitbook.io/redstone-quick-guide/guide/lets-try-to-know-how-to-run-a-redstone-node.md).

# Let's try to know how to run a RedStone Node

**Note: RedStone is not currently onboarding new Data Providers, but this guide will be helpful when onboarding resumes in the near future. Thank you for your interest!**

**Running an Oracle Node from Source**

While you have the option to run the RedStone oracle node using its source code, it's recommended to utilize Docker for its ease and efficiency. The code is regularly built and deployed from the Github repository, eliminating the need for a full development environment.

**Data Availability**

Data published by your oracle node will be accessible to RedStone consumers across all supported chains. For more in-depth information on RedStone Oracles' architecture, refer to our dedicated resource.

**1. Running a Node Locally**

**Requirements**

Before proceeding, ensure your system meets the necessary requirements as outlined on the requirements page.

**Installation of Docker**

You'll need Docker to run the oracle node in a container. Follow these steps to install Docker:

1. Download Docker using:

   ```sql
   sqlCopy codecurl -fsSL https://get.docker.com -o get-docker.sh
   sudo sh get-docker.sh
   sudo usermod -aG docker $USER
   ```

**Node Configuration**

Configuration of the RedStone oracle node relies on environment variables. You can set these variables in your preferred manner, such as using a local `.env` file.

**Quick Start Configuration**

For an easy and rapid setup of your first oracle node, we've prepared a sample `.env` file and a bash script. Find them [here](https://chat.openai.com/link-to-file).

**Additional Environment Variables**

Refer to the table below for the primary environment variables needed to run a node. To view a complete list of supported variables, including optional ones, consult this [file](https://chat.openai.com/link-to-file).

| Param                                  | Description                                                                           | Example value                                                                      |
| -------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- |
| ECDSA\_PRIVATE\_KEY                    | Your ECDSA private key                                                                | ECDSA\_PRIVATE\_KEY=0x123...                                                       |
| OVERRIDE\_DIRECT\_CACHE\_SERVICE\_URLS | Your personal private URLs of gateways to the RedStone Data Distribution Layer (DDL). | OVERRIDE\_DIRECT\_CACHE\_SERVICE\_URLS=\["[https://xxx.yyy](https://xxx.yyy/)...", |
| OVERRIDE\_MANIFEST\_USING\_FILE        | Path to your manifest file.                                                           | OVERRIDE\_MANIFEST\_USING\_FILE=./manifests/dev/dev.json                           |
| LEVEL\_DB\_LOCATION                    | Path to the level DB.                                                                 | LEVEL\_DB\_LOCATION=/oracle-node-level-db                                          |

**Launching Using Docker**

1. Ensure your environment variables are set in the `.env` file.
2. Launch the RedStone oracle node with this command:

   ```bash
   bashCopy codedocker run --env-file .env -d --restart=always -v redstone-oracle-node:/oracle-node-level-db --name redstone-oracle-node public.ecr.aws/y7v2w8b2/redstone-oracle-node:6c5e4bf
   ```

**Docker Image Tags**

Each Docker image comes with a tag (e.g., 6c5e4bf), a short commit hash from the RedStone monorepo. This tag helps identify the source code version.

**Custom Local Manifest**

To run the oracle-node from Docker with your custom manifest, mount the manifest file to the container and update the `OVERRIDE_MANIFEST_USING_FILE` environment variable.

**2. Running a Production Node**

For information about running a production node, reach out to the RedStone team.

**Important Information**

Currently, we manually validate and check external data providers to ensure they understand the requirements. In the future, smart-contracts may automate this process. To get started:

1. Send your Ethereum address and public key to the RedStone team.
2. Your address and public key will be added to the data providers registry.
3. Top up your Ethereum wallet on Polygon with a small amount of MATIC tokens required for stream creation after the first node execution.
4. Use trusted infrastructure for interacting with your private keys.

**Deploy Your Node**

After being added to the data providers registry and receiving private gateway URLs, you can deploy the oracle node using Docker on your preferred server or cloud provider. The deployment process will closely resemble the steps for running a local node.

**Conclusion**

By following this guide, you've gained the knowledge to set up and operate a RedStone oracle node using Docker. While RedStone is not currently onboarding new Data Providers, this guide will be invaluable when onboarding resumes. Your contributions will enhance data availability across the RedStone ecosystem. Keep an eye on future developments and best practices to further optimize your oracle node's performance.
