KYVE Network

KYVE network is a decentralized archival framework that standardizes, validates, and permanently stores data streams using Arweave’s permaweb.

This turns data streams into permanent resources, such streams are blockchain data which are storage intensive taking a long time to synchronize, Kyve by validating authenticity and using Arweave’s permaweb makes this data easily accessible. This benefits applications that need fast, guaranteed access to such data without the burden of sync times and catch up.

Kyve Ecosystem

Arweave: A protocol that specializes on decentralized file storage that allows its users to store data permanently, sustainably, with a single upfront fee to Arweave’s permaweb: A global, permanent web of pages and applications that live forever. Arweave achieves this by matching people who have hard drive space to spare with those individuals and organizations that need to store data or host content permanently

KYVE Nodes

KYVE Chain Node (Consensus Validator): Chain-Nodes are the backbone of KYVE. The chain layer is a completely sovereign Proof of Stake blockchain built on Cosmos SDK with Ignite, the chain node is the consensus layer of KYVE which handles security/consensus and settlement of KYVE.

KYVE Protocol Node (Validator): The Protocol or Validator Node collects data from a data source, bundling and uploading them to Arweave and verifying it, these data sources are pools that you can decide to validate on.

some pools on kyve, many more are available
some pools on kyve, many more are available

The following guides are now deprecated to the run a Protocol node on Korellia test network see the following

To run a Chain Node on Korellia Network see the following

(Pending)

HOW TO RUN CHAIN NODE- (Consensus Validator)

Hardware requirements: 4vCore CPU, 8GB RAM, 250GB recommend 500GB allow to allow buffer. You can run on lower specs, but as you are providing a service these are recommended to allow suitable performance.

Running on a fresh instance of Ubuntu 20.04 LTS

1. Install Pre-requiste software

update device

sudo apt update && sudo apt upgrade -y

install software you will need to continue, you may already have these.

sudo apt install wget tar git -y

2. download binaries

install prebuilt binaries for the chain from Kyves github repository

wget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/chain_linux_amd64.tar.gz
tar -xvzf chain_linux_amd64.tar.gz

initiate chain moniker, this is your validator name

./chaind init [moniker] --chain-id korellia

Example

./chaind init GLCstaked --chain-id korellia

Obtain the genesis

wget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/genesis.json

move to the chain-node directory

mv genesis.json ~/.kyve/config/genesis.json

It is important to start with the oldest version v0.0.1 (the genesis version).

Start the chain the first time

./chaind start --p2p.seeds=02dd2c26948ea758a25d3dbc91744f8897681652@3.73.27.185:26656

this should start to sync the chain, but you may get errors like so, without persistent peers

stop the node with ctrl+C, it will be started again and set up to run as a background service later.

Add Persistent Peers

cd .kyve/config

ls -la you should find the files, we should have a config.toml in this directory

nano config.toml

This will open your config in the terminal window for editing, scroll down to ‘persistent peers’ and add in the following

70556c82352b9919fb6f339b9da0ebc587e9148c@3.68.232.117:26656
add as seen here
add as seen here

(this is as of writing an available peer to use, may change in future and you will likely find updates to this in the discord) CTRL+O to write the changes, CTRL+X to exit back to the terminal.

We won’t start the node yet, as we have to set up cosmovisor, the latest update:

3. Set up Cosmovisor

Cosmovisor is a tool that listens to on-chain governance proposals and automatically replaces the binary.

Download Binaries

wget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/cosmovisor_linux_amd64 && \
mv cosmovisor_linux_amd64 cosmovisor && \
chmod +x cosmovisor

Setup the directory

mkdir -p ~/.kyve/cosmovisor/genesis/bin/ && \
echo "{}" > ~/.kyve/cosmovisor/genesis/upgrade-info.json

Copy the binary from the first section to the Cosmovisor directory.

cp chaind ~/.kyve/cosmovisor/genesis/bin/chaind

export the following environment variables

export DAEMON_HOME="$HOME/.kyve"
export DAEMON_NAME="chaind"
export DAEMON_ALLOW_DOWNLOAD_BINARIES="true"

simple node setup leave this true. This enables auto-download. If set to false, you need to Obtain binaries manually during updates.

start cosmovisor

./cosmovisor start

do this to see if there are any glaring errors, or should it stop/exit. If its outputting logs and appears to run fine then proceed

stop cosmovisor with ctrl+C we will be setting up as a service in the next step

4. Set up Daemon-service

This is for both chaind and the cosmovisor now installed, $USER is the Linux user which runs the process, change to your own user name. This will allow the validator to run continuously in the background.

sudo tee <<EOF > /dev/null /etc/systemd/system/kyved.service
[Unit]
Description=KYVE Chain-Node daemon
After=network-online.target

[Service]
User=$USER
ExecStart=/home/$USER/cosmovisor start
Restart=on-failure
RestartSec=3
LimitNOFILE=infinity

Environment="DAEMON_HOME=/home/$USER/.kyve"
Environment="DAEMON_NAME=chaind"
Environment="DAEMON_ALLOW_DOWNLOAD_BINARIES=true"

[Install]
WantedBy=multi-user.target
EOF

Start the Daemon

sudo systemctl enable kyved
sudo systemctl start kyved

From here your node should be syncing, and we need to wait until fully synced before moving to step 5.

To stop the Daemon

sudo systemctl stop kyved

To Check the Logs

journalctl -u kyved -f

Check Sync Status

curl -s localhost:26657/status | jq .result.sync_info.catching_up

you may need to install jq to do this, you can with

sudo apt install jq

5. Run the Validator

PENDING -WORKING ON

HOW TO RUN PROTOCOL NODE- (Validator)

Protocol Node/Validator with Kysor

KYVE has brought in Cosmovisor, a process manager for Cosmos SDK application binaries that monitors the governance module for incoming chain upgrade proposals.

Using KYSOR to run protocol nodes will allow you to use only one program for running nodes on every pool. It will also automate the installation of protocol binaries for every pool so that your node will not get slashed for not having upgraded after the version update.

Running a Validator

a guide on setting up a validator since Kysor upgrade can be found here

Restart Node - for changes

with Kysor you don’t need to download different binaries for certain pools when migrating but you will need to change pool ID. You don’t need to update Kysor node versions as the process is auto, however you may need to restart node if you encounter any problems, or need to change Pool ID, or make other changes

This is a process for restarting node for changes

1. Stop the Node

sudo systemctl stop kyved

confirm service is not active

sudo systemctl status kyved

2. Edit config file

nano $HOME/kysor/kysor.conf.ts

make any changes here, for changing pools or stake amount

3. restart the service

sudo systemctl daemon-reload
sudo systemctl enable kyved
sudo systemctl restart kyved

4. check logs

journalctl -u kyved -f -o cat

KYVE Protocol Node- Validator (Deprecated)

NOTE: THIS GUIDE IS NOW OUT OF DATE
Kyve Protocol Node has been upgraded with Kysor Release
10/6/2022

This guide is for running on a local device with a fresh install of Ubuntu 20.04LTS. To get started you should have a Keplr wallet (self custody) and Arweave wallet with a .json wallet file. You will also need $KYVE and $AR to pay for Transactions, familiarity with Kyve app UI, for pool information.

1. Install pre-requisite software

Update, install unzip and git

sudo apt update
sudo apt install unzip sudo apt install git

2. Create working directory in home folder

mkdir -p /home/<USER>/kyvereplace user with the user of your device

move to directory in terminal
cd /home/<user>/kyve

3. Download the Pool files

whichever pool you wish to join from the Kyve app, you will need to look for the location on GitHub, change contents of <> to fit the correct pool name.

wget https://github.com/KYVENetwork/<evm>/releases/download/<v1.0.3>/<evm-linux.zip>

unzip then delete the downloaded zip file
sudo unzip <evm-linux.zip>
sudo rm <evm-linux.zip>

4. change permissions and confirm version

sudo chmod +x <evm-linux>
sudo <./evm-linux> --version

this should return the correct version number

5. Place Arweave.json

copy the arweave .json file to the /home/<user>/kyve folder, rename this file to arweave.json
ENSURE YOU HAVE AR IN YOUR WALLET TO PAY FOR FEES

6. Create a service (config) file

ensure in the correct directory, copy and paste the following to the terminal


1. sudo tee /etc/systemd/system/kyved.service > /dev/null <<EOF 
2. [Unit] 
3. Description=Kyve Node 
4. After=network-online.target 
5. [Service] 
6. User=root 
7. WorkingDirectory=/home/<user>/kyve/ 
8. ExecStart=/home/kyve/<evm-linux> -m “mnemonic phrase” -k 
/home/<user>/kyve/arweave.json -p <Pool ID here> -v -s <your amount stake> 
9. Restart=on-failure 
10. RestartSec=3 
11. LimitNOFILE=65535 
12. [Install]
13. WantedBy=multi-user.target
14. EOF

note: need to be careful with syntax, ensure the ” are correct format, follow the line numbering above, omitting the number. and space. if easier copy and paste into a text file make edits and then copy the entire contents into the terminal.

7. Run the Service

Restart the service and start
sudo systemctl daemon-reload
sudo systemctl enable kyved
sudo systemctl start kyved

To output the Logs
sudo journalctl -f -u kyved

if no errors logs should appear similar
if no errors logs should appear similar

Logs and troubleshooting

Making changes to the service

Stop the service firstsudo systemctl stop kyved

open the service file
sudo nano /etc/systemd/system/kyved.service
this will open in your terminal for editing, ctrl+o to write changes, then ctrl+x to exit back to terminal.

Restart the service
sudo systemctl daemon-reload
sudo systemctl enable kyved
sudo systemctl start kyved

Running out of Space

Node allocates a certain amount of storage for your node, easily exceeded if you have this error this space has been exceeded

increase the space by using the -sp flag. This is added to the ExecStart line (line 8) on your kyved.service

add this -sp <number> The size of disk space in bytes the node is allowed to use
EG: -sp 53687091200would be 50GB of allocated space

**Check service status
**sudo systemctl status kyved

outputs the status
outputs the status

Logs

to output logs
sudo journalctl -f -u kyved

searching for specific terms, like warnings (WARN)
sudo journalctl -f -u kyved | grep WARN

POOL Migration

Should you wish to migrate your protocol node to another pool, if you have been kicked from a pool then skip steps 2 as you should have tokens returned.

1. Stop your Protocol node from the terminal
sudo systemctl stop kyved

2. Unstake KYVE, on https://app.kyve.network/#/ Pools> Validators> select your Node and click manage Stake. Unstake and confirm on your wallet, wait for tokens to arrive.

3. confirm the ‘pool ID’ and ‘minimum stake’ from the new pool you wish to join.

4. Delete the old executable
locate and delete from your working directory
sudo rm /home/<user>/kyve/<kyve-evm-linux>

5. download new executable, follow steps 3-4 in protocol node guide with the correct information for your new pool

6. Edit kyved.service
sudo nano /etc/systemd/system/kyved.service
ensure to change the following executable name & pool id.

7. Restart the service
sudo systemctl daemon-reload
sudo systemctl enable kyved
sudo systemctl start kyved

Subscribe to GLCstaked
Receive the latest updates directly to your inbox.
Mint this entry as an NFT to add it to your collection.
Verification
This entry has been permanently stored onchain and signed by its creator.