Find answers instantly with AI search. Start typing your prompt below and let AI do the digging for you!

Mainnet Pre-genesis validator setup

Initialize your repository

To initialize your repository, run

sscd init <moniker> --chain-id ssc-1

where moniker is any name you would like to give your validator.

This will create the home directory for the Saga Security Chain. By default, the folder should be located in your home directory ~/.ssc on Linux/Mac machines and the \Users\<username>\.ssc directory on Windows.

Loading in keys

Before creating a validator, you must add a key to your keyring.

New validators can create their keys by running

sscd keys add <your-validator-key-name>

If you have an existing key, you can load in your sscd key by passing in the --recover flag to the command above.

For details on how to manage keys on SSC, please see the key management section of these docs.

Ensure that your validator key is added to sscd by typing

sscd keys list

This should print out some output like this:

- address: saga1nlv6stt25sdest7fl2fxxp3lncxruegfwqsmw0
  name: mykey1
  pubkey: '{"@type":"/cosmos.crypto.secp256k1.PubKey","key":"A923CFCYWYBK58XocadjTaEm+F2g6iebyf2F9lZ1vMF7"}'
  type: local

Provide your key address (starts with saga) to the Saga Support Team and wait for further instructions before proceeding.

Gentx setup

Creating a validator genesis transaction

When joining a network as a genesis validator, we need to collect the genesis transaction a.k.a. gentx, from each validator.

What you will need to create the genesis transaction:

  1. The genesis.json file provided by the Saga team. Copy the genesis file provided by the Saga team to your sscd config directory. The following command does this:

git clone [email protected]:sagaxyz/mainnet.git
cp mainnet/genesis/genesis.json ~/.ssc/config/genesis.json
  1. The account-number, associated with your key, from the genesis file genesis.json (see the image below for reference)

Note that you will have to use the same key that you provided to the Saga team in order to create the genesis transaction.

You can find <your-validator-address> running sscd keys show -a <your-validator-key-name>

Then you can run this command to find your account number:

cat ~/.ssc/config/genesis.json | jq -r '.app_state.auth.accounts[] | select( .address == "your-validator-address>") | .account_number'
  1. A public IP address for your node where your validator can be accessed

Now, you are ready to create the gentx or the genesis transaction.

  1. Create the genesis transaction using the sscd daemon:

    sscd gentx <validator-key-name> 8000000usaga \
        --chain-id ssc-1 \
        --account-number X \
        --ip X.X.X.X
  2. This should create a gentx-*.json file under your ~/.ssc/config/gentx/ folder on your machine. Verify that this file exists.

  3. Create a new branch in the mainnet repository.

  4. Add your gentx file to the <gentx folder of public testnet> folder, commit it to the repo and then push your branch to the SSC public testnet repository in Github.

  5. Create a PR to merge your branch into main branch.

The gentx will be processed by the team and a new genesis file will be created prior to the actual network launch. This updated genesis file will also be provided to you.

Last updated