Skip to content

Latest commit

 

History

History
127 lines (81 loc) · 4.96 KB

getting-started.md

File metadata and controls

127 lines (81 loc) · 4.96 KB

Getting Started

Installation

Building from source

Prerequisites: The Go compiler version 1.15 (we use go modules) or later and GNU make. The go bin path (usually $HOME/go/bin) should be in your system $PATH.

Run make install to build the code. The regen binary serves as both the blockchain daemon, as well as the command line blockchain client.

Configuring the command line client

By default the command line client will connect to a local node. To connect to a testnet or devnet, you must know the network's chain ID and the address of a public node. More information on the current testnets and devnet can be found in the testnets repository.

regen can be configured to connect to a testnet node automatically by setting these parameters in $HOME/.regen/config/config.toml, under the rpc.laddr field. If this file doesn't exist yet, it can be generated automatically by running:

regen init [moniker] --chain-id [chain ID]

If you're wanting to connect to our devnet that launched during the Open Climate Collabathon, the chain-id is regen-devnet-1.

If not connecting to a live testnet or devnet, initialize the node config for local development:

regen init [moniker]

Running a Node

Running a node consists of first generating a valid genesis file, and then running the regen start command to start the node.

::: tip

Starting a node is not necessary if you're only wanting to interact with a live blockchain. In that case, you can use the regen binary purely as a CLI for interacting with a live network. Just make sure you always provide a --node flag with a valid peer address. See the API documentation for more info.

:::

Connecting to an Existing Network

If you're wanting to connect to our devnet that launched during the Open Climate Collabathon, you can fetch the genesis file here: http://18.220.101.192:26657/genesis. Save it in the $HOME/.regen/config/ folder:

curl http://18.220.101.192:26657/genesis | jq .result.genesis > ~/.regen/config/genesis.json

Be sure to also add well-known seed nodes for your local node's initial peer discovery:

PERSISTENT_PEERS="[email protected]:26656"
sed -i 's#tcp://127.0.0.1:26657#tcp://0.0.0.0:26657#g' ~/.regen/config/config.toml
sed -i '/persistent_peers =/c\persistent_peers = "'"$PERSISTENT_PEERS"'"' ~/.regen/config/config.toml

Finally, run the node with

regen start

and you should start syncing the chain.

Running a Localnet

::: tip

Running a localnet with a new genesis file will effectively create a new chain.

:::

Once you configured your CLI client, you need to populate the genesis file with an initial validator set, which, in our case, will be a singleton with your own validator node.

As a validator who signs blocks, your node must have a public/private keypair. Regen Ledger keys can be managed with the regen keys subcommand. A new key pair can be generated using:

KEY_NAME=my_validator # Or choose your own key name.
regen keys add $KEY_NAME

# We will also save the generated address in a variable for later use.
MY_VALIDATOR_ADDRESS=$(regen keys show $KEY_NAME -a)

If you'd like to use a custom keyring backend, you can find more information on the Cosmos SDK keyring docs.

Make sure you save the seed mnemonic in a safe place!

Afterwards, run the following commands to add this newly generated validator to the genesis file:

# Populate the validator account with some funds.
# The default bonding token in local networks is called "stake",
# but if you're connecting one of our devnets or testnet, you may
# need to use the denom "tree" instead.
regen add-genesis-account $MY_VALIDATOR_ADDRESS 100000000stake

# Create a gentx.
regen gentx $KEY_NAME --amount 100000stake --chain-id [chain-id]

# Add the gentx to the genesis file.
regen collect-gentxs

If you wish to learn more about each individual command in the snippet above, the Cosmos SDK documentation is a good place to start.

Finally, start the node with

regen start

and your node should start producing blocks.

Check the Node's Status

Regardless of whether you're running a local node (as above), or connecting directly to a live network, you can run regen status to verify that the CLI is able to connect to the blockchain node. If connecting to a live network, make sure you provide a --node flag with the correct address of a live peer. For connecting to regen-devnet-1, use the following:

regen status --node http://18.220.101.192:26657

Local node config will be saved to ~/.regen and the chain ID can be found in ~/.regen/config/genesis.json.