Skip to content

Latest commit

 

History

History
250 lines (175 loc) · 6.62 KB

README.md

File metadata and controls

250 lines (175 loc) · 6.62 KB

Lum Network - Private testnet

⚠️ Deprecated repository ⚠️

This repository was only useful during the private testnet phase of the Lum Network.

We invite all validators from the testnet program to shutdown their testnet nodes.


Information

You already know the drill, but you'll find all the informations here!

Private testnet program

  • The main communication channel is Discord
  • If you have been invited to join this testnet then you should have access to the internal validators channels
  • The Lum Foundation will grant 1,000,000 LUM to all the validators succesfully passing the testnet phases
    • 6 months cliff; 24 months linear continous vesting; staking capability over vested assets
    • receiving the testnet grant does not mean you will receive the mainnet grant
    • validators must have a production like setup in order to pass the testnet phase completely
  • 20 experienced validators have been invited, we definitely expect to have every single one of you pass this phase easily

Timeline

Phase 1: Gentx submission deadline

November 21st, 1:00PM UTC

You must submit your gentx (see instructions below) by this time to be included in the genesis.

./config-genesis.json contains the genesis configuration (without any account yet). Feel free to comment on that over Discord.

Phase 2: Testnet Genesis Launch

November 23rd, 4:00PM UTC

You must have your validator up and running by this time and be available for further instructions if necessary.

Phase 3: Tests period

From November 23rd, 4:00PM UTC - Until December 10th, 1:00PM UTC

During this phase everyone's invited to test the network.

We will run a variety of tests to ensure the final validator set selected for the mainnet launch is strong and stable.

Do not hesitate to report any kind of issues on Discord as it is one of the goals of this phase.

Phase 4: Results

December 10th, 1:00PM UTC

Announcement of the validators that passed the testnet phase with success. We definitely expect all validators invited to the private testnet to easily pass the test phase since only experienced validators have been invited.

Key informations

Chain ID

lum-network-testnet-1

Genesis file

Available in this repository: ./genesis.json

curl -s  https://raw.githubusercontent.com/lum-network/testnet/master/genesis.json > ~/.lumd/config/genesis.json

sha256sum ~/.lumd/config/genesis.json
32e7ff02671b9935d15e083c3086364dc4ef0ad35ea8abfdb064019152922160

Seed nodes

Available here: ./seeds.txt

2876429a72dd112275a983141dce78ebe820de2a@peer-1.testnet.lum.network:26656

Persistent peers

Available here: ./persistent_peers.txt

c8d11fffad6aa4fdc8f63e4a6c9a9e482e01c852@peer-0.testnet.lum.network:26656,[email protected]:26656,[email protected]:26656

lumd version

$ lumd version --long
name: lum
server_name: lumd
version: 1.0.4
commit: e3068181b029af45bcbbe4678804b776eef6087b

Installation

Prerequisites: Make sure to have Golang >=1.17.

Make sure your Go configuration looks like that one (especially the GO111Module):

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin

Clone the repository

git clone https://github.com/lum-network/chain.git
cd chain
git checkout v1.0.4
make install

Check that you have the right lumd version installed:

lumd version --long
name: lum
server_name: lumd
version: 1.0.4
commit: e3068181b029af45bcbbe4678804b776eef6087b

Minimum hardware requirements

  • 4 CPU ores
  • 16 GB RAM
  • 200 GB of disk space
  • 100 mbps bandwidth

Setup validator node

Generate genesis transaction (gentx)

  1. Initialize the Lum Network directories and create the local genesis file with the correct chain-id:

    lumd init <moniker-name> --chain-id=lum-network-testnet-1
  2. Create a local key pair:

    lumd keys add <key-name>
  3. Add your account to your local genesis file with the following amount (1Mi LUM + 1 LUM) and the key you just created.

    lumd add-genesis-account $(lumd keys show <key-name> -a) 1000001000000ulum
  4. Create the gentx, use 1000000000000ulum (1Mi LUM):

    lumd gentx <key-name> 1000000000000ulum \
        --chain-id=lum-network-testnet-1 \
        --moniker="<moniker>" \
        --commission-rate="0.01" \
        --[other custom params]

    If all goes well, you will see a message similar to the following:

    Genesis transaction written to "/home/user/.lumd/config/gentx/gentx-******.json"

Submit genesis transaction

  • Fork the testnet repo into your Github account

  • Clone your repo using

    git clone https://github.com/<your-github-username>/testnet
  • Copy the generated gentx json file to <repo_path>/gentxs/

    > cd testnet
    > cp ~/.lumd/config/gentx/gentx-*****.json ./gentxs/gentx-<moniker-name>.json
  • Commit and push to your repo

  • Create a PR onto https://github.com/lum-network/testnet

  • Only PRs from invited validators will be accepted. This is to ensure the network successfully starts on time.

Running in production

Download Genesis file when the time is right.

curl -s  https://raw.githubusercontent.com/lum-network/testnet/master/genesis.json > ~/.lumd/config/genesis.json

sha256sum ~/.lumd/config/genesis.json
32e7ff02671b9935d15e083c3086364dc4ef0ad35ea8abfdb064019152922160

Create a systemd file for your Lum Network service:

sudo nano /etc/systemd/system/lumd.service

Copy and paste the following and update <YOUR_HOME_PATH>:

[Unit]
Description=Lum Network daemon
After=network-online.target

[Service]
User=lum
ExecStart=/<YOUR_HOME_PATH>/go/bin/lumd start --p2p.laddr tcp://0.0.0.0:26656 --home /<YOUR_HOME_PATH>/.lumd
Restart=on-failure
RestartSec=3
LimitNOFILE=4096

[Install]
WantedBy=multi-user.target

2 This assumes $HOME/go to be your Go workspace, and $HOME/.lumd to be your directory for config and data. Your actual directory locations may vary.

Enable and start the new service:

sudo systemctl enable lumd
sudo systemctl start lumd

Check status:

lumd status

Check logs:

journalctl -u lumd -f