Setup BRP Node
Prerequisites for Validator & Operator nodes
Provide Covalent with two public addresses
- Staking Address: This is the address of the wallet holding your CXT on Ethereum mainnet.
- Operator Address: This is a public address tied to the private-public key pair an operator will use to sign proof transactions to the proof-chain contract on moonbeam.
- Please provide the public address to this pair to Covalent. Keep the private key secret and safe. Please make sure that the Staking address and Operator Address are separate.
CXT
Min 35,000 CXT & Max 70,000 CXT on Ethereum mainnet.
GLMR is needed to pay for gas on Moonbeam
In order to send proofs of block specimens. This costs approximately 5 GLMR per day. This should be held at the same address as the Operator Address.
Access the Covalent Network Operator Dashboard
Import your Validator private key into Metamask, select the Ethereum mainnet network and connect your Staking wallet to the operator dashboard.Your operator should be currently disabled.
Self-Stake the Minimum CXT Staking requirement on Ethereum (35,000 CXT) for BRP. This is done using the Change Stake button in your operator dashboard. Proceed to first set Stake Amount to 35000 and click Approve.
After the on chain approval transaction completes, click on Stake. Once the staking transaction completes, your Staking Status should display Sufficiently Staked and Enabled.
Get access to a reliable Moonbeam https RPC. Providers and RPC URLs can be found here . Ping the Covalent team on discord for recommendations.
Validators can create a web3.storage account and have did key
, W3-agent-key
and proof.out
for ipfs-pinner
file or can reach out to covalent team on discord for these details.
Install Dependencies:
As we discussed in previous section, We can setup the nodes two ways so here in this section, you can follow dependencies accordingly:
-
Run with Docker Compose (Recommended method - Beginner)
-
Build & Run from Source (Optional method - Advanced)
Dependencies to Run with Docker Compose:
- Install Docker
Follow the docker install instructions for your platform/architecture.
Onboarding instructions will be based on Ubuntu 22.04 LTS x86_64 / amd64
- Install
direnv
Debian/Ubuntu
MacOS 12.x (M1/Intel)
Dependencies to Run with Source:
Prerequisites
MacOS 12.x (M1/Intel) Installation requirements
Install XCode (skip if you already have xcode and have been developing on your mac)
You must also Install brew (for mac m1/intel) with this script. This installs all the minimum necessary terminal/command-line tools to get started with easy software development on a mac.
Installation Time: 35-40 mins depending on your machine and network.
Install git
, go
, asdf
, erlang
, elixir
, direnv
, go-ipfs
- Git is used as the source code version control manager across all our repositories.
- Go is the programming language that is used to develop on go-ethereum, bsp-agent, erigon (EVM plugin) all which are entirely written in go.
- Asdf is a CLI tool that can manage multiple language runtime versions on a per-project basis.
- Erlang is a programming language used to build massively scalable soft real-time systems with requirements on high availability.
- Elixir is a programming language that runs on the Erlang VM, known for creating low-latency, distributed, high concurrency fault-tolerant systems.
- IPFS as the InterPlanetary File System (IPFS) is a protocol, hypermedia and file sharing peer-to-peer network for storing and sharing data in a distributed file system.
- Direnv is used for secret management and control. Since all the necessary parameters to the agent that are sensitive cannot be passed into a command line flag. Direnv allows for safe and easy management of secrets like ethereum private keys for the operator accounts on the Covalent Network and redis instance access passwords etc. As these applications are exposed to the internet on http ports it’s essential to not have the information be logged anywhere. To enable “direnv” on your machine add these to your ~./bash_profile or ~./zshrc depending on which you use as your default shell after installing it using brew.
Here, are the commands that can be used to install the dependencies select based on your OS accordingly
MacOS 12.x (M1/Intel) Install dependencies
For setting up asdf on other shells please refer to this guide.
Linux x86_64 (Ubuntu 22.04 LTS) Install dependencies
Install required asdf version manager plugins for erlang and elixir
Add to your bash shell for asdf (for any other shell, check the asdf guide.
Install Erlang and Elixir using the plugins
Set the versions
This will create a
.tool-versions
file in your home directory. ASDF will use these versions whenever a project doesn’t specify versions of its own.
Enable direnv for shell/zsh
After adding this line do not forget to source your bash / powershell config with the following, by running it in your terminal
Install latest go-ipfs (kubo) and initialize go-ipfs
MacOS 12.x (M1/Intel)
Linux x86_64 (Ubuntu 22.04 LTS)
Note: To avoid permissions and netscan issues execute the following against ipfs binary home directory application