Search…
Running a Node

Prerequisites

Dependencies

The Provide CLI is used to run a local instance of the Provide stack and exposes functions of the stack via the command line. Instructions for installing the CLI can be found here. We recommend following the full installation of the CLI in order to take advantage of the full stack , but If you only intend to run a Baseledger node you only need to install the dependencies listed here.
Golang (1.16 recommended; only required when building from source)
Golang is an open source programming language that makes it easy to build efficient and trusted distributed network tooling. For detailed information about Golang, see The Go Progamming Language website.

Hardware Requirements

The following are the minimum hardware requirements recommended for running a Baseledger validator or null node:
    2+ CPU cores
    4GB RAM minimum
    SSD; recommended minimum free disk space >= 10GB as of September 2021

Setup

1
git clone [email protected]:baseledger/baseledger-core.git
2
make build
Copied!

Creating a Vault

Using the Provide CLI, you can easily setup a secure vault instance to secure your Baseledger keys. Baseledger currently supports Ed25519 keys for peer-to-peer authorization and validator keys.
If you have not previously created a Provide user, first create one:
1
❯ prvd users create
2
First Name: John
3
Last Name: Young
5
Password: **********
6
created user: dc670a09-3acb-4338-82f1-3fc034bc1651
Copied!
Then, authenticate the user:
1
❯ prvd authenticate
3
Password: **********
4
2021/09/24 18:34:08 Authentication successful
Copied!
Next, create a vault for the authenticated user. Capture the UUID returned upon vault creation; this is the vault_id and will be required to run a full node:
1
❯ prvd vaults init --name 'Baseledger Vault'
2
12df6cf5-b9b2-4146-8d4c-5552a35dbc08 Baseledger Vault
Copied!
Create an Ed25516 key inside the newly created vault:
1
❯ prvd vaults keys init
2
Use the arrow keys to navigate: ↓ ↑ → ←
3
? Select a vault:
4
▸ Baseledger Vault
Copied!
After selecting the vault, you'll be prompted to select an Application followed by an Organization. For the purposes of this quickstart guide, we'll be creating a key for the authenticated userand don't need to provide an Application or Organization. Bypass the Application and Organization selection prompts by pressing control + cfor each prompt:
1
❯ prvd vaults keys init
2
✔ Baseledger Vault
3
Use the arrow keys to navigate: ↓ ↑ → ←
4
? Select an application:
5
6
No results
7
8
Copied!
An Ed25516 key is an asymmetric type key used to sign/verify node interactions, so select the asymmetric type when prompted, followed by the sign/verify usage designation:
1
✔ asymmetric
2
Use the arrow keys to navigate: ↓ ↑ → ←
3
? Usage:
4
encrypt/decrypt
5
▸ sign/verify
Copied!
Create a name and description for the key, then select Ed25519 when prompted for the spec. The returned UUID is the vault_key_id and will be needed to run a node:
1
❯ prvd vaults keys init
2
✔ Baseledger Vault
3
Use the arrow keys to navigate: ↓ ↑ → ←
4
? Select an application:
5
6
No results
7
8
✔ asymmetric
9
✔ sign/verify
10
Name:
11
Description:
12
✔ Ed25519
13
89eec21b-d7a7-4244-89bb-88517f529116
14
Copied!
After obtaining the vault_key_id, authorize a refresh token for the authenticated user by running the following:
1
prvd api_tokens init --offline-access
Copied!
After capturing the refresh_token, vault_id and vault_key_id, you're ready to proceed to the next section and run a full Baseledger node.

Running a Full Node

You can use the command below to run a full node on the Baseledger "peachtree" testnet. Use the values obtained in previous steps where necessary:
1
VAULT_REFRESH_TOKEN= <your refresh_token \
2
VAULT_ID= <your vault_id> \
3
VAULT_KEY_ID= <your vault_key_id> \
4
BASELEDGER_MODE=full \
5
LOG_LEVEL=debug \
6
BASELEDGER_LOG_LEVEL='main:debug,abci-client:debug,blockchain:debug,consensus:debug,state:debug,statesync:debug,*:error' \
7
BASELEDGER_GENESIS_URL=http://genesis.peachtree.baseledger.provide.network:1337/genesis \
8
BASEL[email protected]genesis.peachtree.baseledger.provide.network:33333 \
9
BASELEDGER_PEER_ALIAS= <name your Baseledger peer> \
10
PROVIDE_REFRESH_TOKEN= <your refresh_token> \
11
NATS_URL=nats://35.174.77.159:4222,nats://35.172.123.165:4222 \
12
NATS_CLIENT_PREFIX=baseledger \
13
./.bin/node
Copied!
Key
Value
VAULT_REFRESH_TOKEN
refresh_token
VAULT_ID
vault_id
VAULT_KEY_ID
vault_key_id
PROVIDE_REFRESH_TOKEN
refresh_token

Monitoring the Node

In a web browser, visit localhost:1337
Last modified 20d ago