Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
73 commits
Select commit Hold shift + click to select a range
a8c7776
update planning
vbloher Sep 14, 2023
9fc2ba7
update instructions
vbloher Sep 14, 2023
6439e1d
update readme
vbloher Sep 14, 2023
0dadac9
fix future genesis file location
vbloher Sep 14, 2023
37b6783
set new timings for gentx submissions
vbloher Sep 14, 2023
5cb31ec
Create dvs-gentx.json
vbloher Sep 14, 2023
c66c284
Create arctic-gentx.json
nsnezhinsky Sep 14, 2023
2392a48
Create hilonom-gentx.json
szhelonkin Sep 15, 2023
b1568b5
Create Yan-gentx.json
Host228 Sep 15, 2023
6afd5aa
Create gentx-sponbender.json
spoonbender1312 Sep 16, 2023
c20fbe0
Create yuri-gentx.json
inso32 Sep 16, 2023
0f260d9
add pre-genesis
vbloher Sep 18, 2023
6ed9d2f
Update dvs-gentx.json
vbloher Sep 18, 2023
dbcb12e
Merge pull request #1 from vbloher/master
vbloher Sep 18, 2023
70c04f0
Merge pull request #2 from nsnezhinsky/master
vbloher Sep 18, 2023
dce6d8f
Merge pull request #3 from szhelonkin/master
vbloher Sep 18, 2023
1134143
Merge pull request #4 from Host228/master
vbloher Sep 18, 2023
73732c7
Merge pull request #6 from spoonbender1312/master
vbloher Sep 18, 2023
77cf110
Merge pull request #7 from inso32/master
vbloher Sep 18, 2023
82657e6
update genesis_time
vbloher Sep 18, 2023
5bf5454
fix Yan's gentx
vbloher Sep 18, 2023
d8dca17
fix Yan's gentx second time
vbloher Sep 18, 2023
aef5471
fix Yan's gentx third time
vbloher Sep 18, 2023
37a9a81
add accounts with balances
vbloher Sep 18, 2023
a790ddc
fix Yan's gentx fourth time
vbloher Sep 18, 2023
6b94933
add genesis.json
vbloher Sep 18, 2023
f51bdf7
add genesis time to planning
vbloher Sep 18, 2023
a7de51b
add Artic's peer
vbloher Sep 18, 2023
e98651a
Add hilonom peer
szhelonkin Sep 18, 2023
ed475d3
fix Yan's gentx fifth time
vbloher Sep 18, 2023
a836579
fix testnet denom
vbloher Sep 18, 2023
d42e8a0
Create arctic.txt
nsnezhinsky Sep 18, 2023
35edc41
update genesis.json
vbloher Sep 18, 2023
b093c6b
add explorer link
vbloher Sep 18, 2023
8d7030f
Merge pull request #9 from szhelonkin/master
vbloher Sep 18, 2023
ba3e0f2
Merge pull request #10 from nsnezhinsky/master
vbloher Sep 18, 2023
61887b9
Update hilonom.txt
szhelonkin Sep 18, 2023
4d7324a
Merge pull request #12 from szhelonkin/master
vbloher Sep 18, 2023
c5d002d
add more peers
vbloher Sep 18, 2023
1fb3492
add peers command
vbloher Sep 18, 2023
02c69b4
remove min-self-delegation
vbloher Sep 18, 2023
9c26198
update create validator tx
vbloher Sep 19, 2023
c0b64b1
add gradebook
vbloher Sep 21, 2023
5d1b01c
fix gov module doc link
vbloher Sep 21, 2023
ea5d22b
Create hilonom-tweet.txt
szhelonkin Sep 21, 2023
3bc0f3a
Create mms_team.txt
spoonbender1312 Sep 24, 2023
d02dc41
Create Yan_tweet
Host228 Sep 25, 2023
cedd15c
Merge pull request #14 from szhelonkin/master
vbloher Sep 25, 2023
8e4caeb
Merge pull request #15 from spoonbender1312/master
vbloher Sep 25, 2023
6566915
Merge pull request #16 from Host228/patch-1
vbloher Sep 25, 2023
c6f7af4
fix phase 2 timings
vbloher Sep 25, 2023
871c61a
add Phase 2 to gradebook
vbloher Sep 25, 2023
a7ebb6e
update phase 3 details
vbloher Sep 25, 2023
8449ce5
add rewards for memo task
vbloher Sep 25, 2023
d35d40b
fix typo
vbloher Sep 25, 2023
2d7304a
fix layout of phase 3
vbloher Sep 25, 2023
511c353
fix layout of bonus challenges
vbloher Sep 25, 2023
f75357e
Create hilonom_txs.txt
szhelonkin Sep 25, 2023
35daac2
Create arctic_tx
nsnezhinsky Sep 27, 2023
fac409c
Create transactionsvoyage
voyagerD Sep 28, 2023
d013510
Create voyage
voyagerD Sep 28, 2023
4c1a86e
Create Yan tx
Host228 Sep 28, 2023
c44040e
Merge pull request #17 from szhelonkin/master
vbloher Oct 2, 2023
828ef5d
Merge pull request #18 from nsnezhinsky/master
vbloher Oct 2, 2023
095cfcc
Merge pull request #19 from voyagerD/master
vbloher Oct 2, 2023
0b22c49
Merge pull request #21 from Host228/patch-3
vbloher Oct 2, 2023
209764f
update gradebook
vbloher Oct 2, 2023
b490e3e
update sputnik app-chain testnet info
vbloher Apr 25, 2024
ba269bf
update sputnik app-chain testnet info
vbloher Apr 25, 2024
1cb44c7
add chain-id
vbloher Apr 25, 2024
3c00a62
add sputnik app chain repo
vbloher Apr 25, 2024
71fd8f1
Update testnet_instructions.md
Antropocosmist Apr 25, 2024
6aa0f86
Create pavel-gentx.json
PavelGorozhin Apr 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
33 changes: 17 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,63 +1,64 @@
# Validators School testnet
# Validators School Sputnik Testnet


## Cosmos Hub binaries installation (gaiad)
## Sputnik app-chain binaries installation (sputnikd)

Sputnik app testnet binary repo
https://github.com/Distributed-Validators-Synctems/sputnik-app-chain-practice

For the sake of simplicity we decided to use Cosmos Hub service binary. In order to install it please follow steps from this [instruction](https://hub.cosmos.network/main/getting-started/installation.html). It is based on the `v7.0.2` version of `gaiad` binary.
Please check versiob of used bianry by running this command `gaiad version --long`. You should get big list of text and at the beginig of it you should have following lines:
```
name: gaia
server_name: gaiad
version: v7.0.2
commit: cd27aaaf39cc7819b5164e4baf3fd5aad23ec52a
name: SputnikApp
server_name: sputnikd
version: v15.2.0
commit: 7281c9b9dc4e3087ee87f5b24e416802b52e8661
build_tags: netgo ledger
```

## GenTx generation

### Init
```bash:
gaiad init "<moniker-name>" --chain-id <current course chain id>
sputnikd init "<moniker-name>" --chain-id <current course chain id>
```

### Generate keys

```bash:
# To create new keypair - make sure you save the mnemonics!
gaiad keys add <key-name>
sputnikd keys add <key-name>
```

or
```
# Restore existing odin wallet with mnemonic seed phrase.
# You will be prompted to enter mnemonic seed.
gaiad keys add <key-name> --recover
sputnikd keys add <key-name> --recover
```
or
```
# Add keys using ledger
gaiad keys show <key-name> --ledger
sputnikd keys show <key-name> --ledger
```

Check your key:
```
# Query the keystore for your public address
gaiad keys show <key-name> -a
sputnikd keys show <key-name> -a
```

### Create account to genesis

```
gaiad add-genesis-account <key-name> 1000000000uatom --keyring-backend <os | file>
sputnikd add-genesis-account <key-name> 1000000000uatom --keyring-backend <os | file>
```

### Create GenTX

```
# Create the gentx.
# Note, your gentx will be rejected if you use any amount greater than 1000000000uatom.
gaiad gentx <key-name> 1000000000uatom --output-document=gentx.json \
--chain-id=dvs-protocol-v1 \
sputnikd gentx <key-name> 1000000000uatom --output-document=gentx.json \
--chain-id=<current course chain id> \
--moniker="<moniker-name>" \
--website=<your-node-website> \
--details=<your-node-details> \
Expand Down
62 changes: 62 additions & 0 deletions gentx/pavel-gentx.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
{
"body": {
"messages": [
{
"@type": "/cosmos.staking.v1beta1.MsgCreateValidator",
"description": {
"moniker": "pavel",
"identity": "",
"website": "",
"security_contact": "",
"details": ""
},
"commission": {
"rate": "0.100000000000000000",
"max_rate": "0.200000000000000000",
"max_change_rate": "0.010000000000000000"
},
"min_self_delegation": "0",
"delegator_address": "sputnik1adxlv98tncu2cxldv8hd7z78nd4e8ln454wtks",
"validator_address": "sputnikvaloper1adxlv98tncu2cxldv8hd7z78nd4e8ln40fft09",
"pubkey": {
"@type": "/cosmos.crypto.ed25519.PubKey",
"key": "1YUbv9gEpx2AmvUmb+H5f1/sPLMrE/7/CgmZtrkhqyg="
},
"value": {
"denom": "usputnik",
"amount": "10000000"
}
}
],
"memo": "[email protected]:26656",
"timeout_height": "0",
"extension_options": [],
"non_critical_extension_options": []
},
"auth_info": {
"signer_infos": [
{
"public_key": {
"@type": "/cosmos.crypto.secp256k1.PubKey",
"key": "A91CspwDo82R4WVPiVVUp9OQpijHhmS549u1B66E3hDZ"
},
"mode_info": {
"single": {
"mode": "SIGN_MODE_DIRECT"
}
},
"sequence": "0"
}
],
"fee": {
"amount": [],
"gas_limit": "200000",
"payer": "",
"granter": ""
},
"tip": null
},
"signatures": [
"41SCQOAx2ZlcXc6QMu0xhiyAfR2VwhgEphlxDp9cZAFfRb5ACxzt4vIKrtLsUNlklHVoI2uv7RHm6MehaxBBeg=="
]
}
138 changes: 94 additions & 44 deletions testnet_instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@

## **Quick Links**

Genesis: `link`
Genesis: TBD

Block explorer: `TBA`
Block explorer: TBD

Seeds: TBA
Peers: TBD

Chain Id: TBA
Chain Id: `sputnik-practice-1`

## **Hardware Requirements**

Expand All @@ -20,73 +20,77 @@ Here are the minimal hardware configs required for running a validator/sentry no

## **Software Requirements**

- Ubuntu 20.04+ or Debian 10+
- [Go v1.18+](https://golang.org/doc/install)
- Ubuntu 22.04+
- [Go v1.21+](https://golang.org/doc/install)

## **Install Gaiad, Generate Wallet and Submit GenTx**
## **Install sputnikd, Generate Wallet and Submit GenTx**

### ****Cosmos Hub binaries installation (gaiad)****
### ****Sputnik app-chain binaries installation (sputnikd)****

For the sake of simplicity we decided to use Cosmos Hub service binary. In order to install it please follow steps from official Cosmos HUB [instructions](https://hub.cosmos.network/main/getting-started/installation.html). It is based on the `v7.0.2` version of `gaiad` binary. Please check version of used binary by running this command `gaiad version --long`. You should get big list of text and at the beginning of it you should have following lines:
Sputnik app testnet binary repo
https://github.com/Distributed-Validators-Synctems/sputnik-app-chain-practice

```
name: gaia
server_name: gaiad
version: v7.0.2
commit: cd27aaaf39cc7819b5164e4baf3fd5aad23ec52a
name: SputnikApp
server_name: sputnikd
version: v15.2.0
commit: 7281c9b9dc4e3087ee87f5b24e416802b52e8661
build_tags: netgo ledger
```

### Network init

`cd ~`
`gaiad init "<moniker-name>" --chain-id <current course chain id>`
```bash
cd ~
sputnikd init "<moniker-name>" --chain-id sputnik-school-testnet
```

example:

`gaiad init course-participant-1 --chain-id dvs-course-testnet-1`
```bash
sputnikd init course-participant-1 --chain-id dvs-course-testnet-4
```

### **Create Validator Key**

It's very important that after you run this command that you save the seed phrase that is generated. If you do not save you phrase, you will not be able to recover this account.

`gaiad keys add <your validator key name>`
`sputnikd keys add <your validator key name>`

or restore existing wallet with mnemonic seed phrase. You will be prompted to enter mnemonic seed.

`gaiad keys add <key-name> --recover`
`sputnikd keys add <key-name> --recover`

or add keys using ledger

`gaiad keys add <key-name> --ledger`
`sputnikd keys add <key-name> --ledger`

Check your key:

`gaiad keys show <key-name> -a`
`sputnikd keys show <key-name> -a`

### ****Create account to genesis****

This command will help you to create account in your local genesis file. It will add funds to your address. Otherwise `gaiad getntx` command will fail because of lack of funds.
This command will help you to create account in your local genesis file. It will add funds to your address. Otherwise `sputnikd getntx` command will fail because of lack of funds.

`gaiad add-genesis-account <key-name> 1000000000uatom`
`sputnikd add-genesis-account <key-name> 1000000000uatom`

### ****Create GenTX****

Create the gentx file. Note, your gentx will be rejected if you use any amount greater than 1000000000uatom.

```
gaiad gentx <key-name> 1000000000uatom --output-document=gentx.json \
--chain-id=dvs-course-testnet-1 \
sputnikd gentx <key-name> 1000000000uatom \
--chain-id=sputnik-school-testnet \
--moniker="<moniker-name>" \
--website=<your-node-website> \
--details=<your-node-details> \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1"
--commission-max-change-rate="0.01"
```

After gentx will be ready you can find it in the `~/.gaiad/config/gentx` directory. After that you will be required to upload it into `gentxs` directory of this repository. Please name it using following template `gentx-<validator name>.json`.
After gentx will be ready you can find it in the `~/.sputnikd/config/gentx` directory. After that you will be required to upload it into `gentxs` directory of this repository. Please name it using following template `gentx-<validator name>.json`.

In order to upload this file you will need to create fork of this repository. Please click on “Fork” button in the top right corner of this page, and name it somehow or leave repository name unchanged.

Expand All @@ -107,49 +111,77 @@ Please “Open pull request”, check data, put some description into text box f
### Create validator after genesis

```
gaiad tx staking create-validator \
sputnikd tx staking create-validator \
--amount=1000000000uatom \
--pubkey=$(gaiad tendermint show-validator) \
--chain-id=dvs-course-testnet-1 \
--pubkey=$(sputnikd tendermint show-validator) \
--chain-id=sputnik-school-testnet \
--moniker="<moniker-name>" \
--website=<your-node-website> \
--commission-rate="0.10" \
--commission-max-rate="0.20" \
--commission-max-change-rate="0.01" \
--min-self-delegation="1" \
--gas="auto" \
--gas-prices="0.0025uatom" \
--gas-adjustment=1.3 \
--gas-prices="0.1usignal" \
--from=<key_name>
```

## Run node

### ****Set Up Cosmovisor****
Install `curl`
```
sudo apt install curl -y
```

### ****Download genesis****

To download `genesis.json` file
```
curl https://raw.githubusercontent.com/Distributed-Validators-Synctems/sputnik-school-testnet/master/genesis.json > ~/.gaia/config/genesis.json
```
After downloading you need to verify your `genesis.json` checksum

```
sha256sum ~/.gaia/config/genesis.json
```

Set up cosmovisor to ensure any future upgrades happen flawlessly. To install Cosmovisor:
you should see `16f4193398f60a06925a35afe89a164b374634a7397c198a3bb55133cdb5fbea` in the output.

`go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]`
Set the peers
```bash
PEERS="[email protected]:26656,[email protected]:27656,[email protected]:26656,[email protected]:26656"
sed -i 's|^persistent_peers *=.*|persistent_peers = "'$PEERS'"|' $HOME/.gaia/config/config.toml
```

Create the required directories:
### ****Set Up Cosmovisor****

Set up cosmovisor to ensure any future upgrades happen flawlessly. To install Cosmovisor
```
mkdir -p ~/.gaiad/cosmovisor/genesis/bin
mkdir -p ~/.gaiad/cosmovisor/upgrades
go install github.com/cosmos/cosmos-sdk/cosmovisor/cmd/[email protected]
```

After directories will be ready please copy `gaiad` binaries created in the “Cosmos Hub binaries installation (gaiad)” section into `~/.gaiad/cosmovisor/genesis/bin` directory. You can do it using `cp ~/go/bin/gaiad ~/.gaiad/cosmovisor/genesis/bin/gaiad` command.
Create the required directories and files
```
mkdir -p ~/.gaia/cosmovisor/genesis/bin
mkdir -p ~/.gaia/cosmovisor/upgrades
echo "" | sed 's/.*/{}/' > ~/.gaia/cosmovisor/genesis/upgrade-info.json
```

### ****Set Up Gaiad Service****
After directories will be ready please copy `sputnikd` binaries created in the “Cosmos Hub binaries installation (sputnikd)” section into `~/.sputnikd/cosmovisor/genesis/bin` directory. You can do it using next command
```
cp ~/go/bin/sputnikd ~/.gaia/cosmovisor/genesis/bin/sputnikd
```

Set up a service to allow cosmovisor to run in the background as well as restart automatically if it runs into any problems:
### ****Set Up sputnikd Service****

Set up a service to allow cosmovisor to run in the background as well as restart automatically if it runs into any problems:
```
echo "[Unit]
Description=Cosmos Hub daemon
After=network-online.target
[Service]
Environment="DAEMON_NAME=gaiad"
Environment="DAEMON_HOME=${HOME}/.gaiad"
Environment="DAEMON_NAME=sputnikd"
Environment="DAEMON_HOME=${HOME}/.gaia"
Environment="DAEMON_RESTART_AFTER_UPGRADE=true"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=false"
Environment="DAEMON_LOG_BUFFER_SIZE=512"
Expand All @@ -166,8 +198,26 @@ WantedBy=multi-user.target
```

Move this new file to the systemd directory:
```
sudo mv cosmovisor.service /lib/systemd/system/sputnikd.service
```

`sudo mv cosmovisor.service /lib/systemd/system/gaiad.service`
And start service:
```
sudo systemctl daemon-reload
sudo systemctl enable sputnikd
sudo systemctl restart sputnikd
```

How you can check the logs
```
sudo journalctl -u sputnikd -f
```

Set chain-id to `sputnik-school-testnet` (for CLI)
```
sputnikd config chain-id sputnik-school-testnet
```

## **More about validators**

Expand Down
Loading