# KYVE Network **Published by:** [GLCstaked](https://paragraph.com/@glcstaked/) **Published on:** 2022-06-02 **URL:** https://paragraph.com/@glcstaked/kyve-network ## Content 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 EcosystemArweave: 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 availableThe following guides are now deprecated to the run a Protocol node on Korellia test network see the followinghttps://mirror.xyz/0xf3bF9DDbA413825E5DdF92D15b09C2AbD8d190dd/Vab7jT5DR4-YrmhfKTjLmM28WIRfy8vNbAsyhRDTQJ4To 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 LTS1. Install Pre-requiste softwareupdate devicesudo 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 binariesinstall prebuilt binaries for the chain from Kyves github repositorywget 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 genesiswget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/genesis.json move to the chain-node directorymv 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 peersstop the node with ctrl+C, it will be started again and set up to run as a background service later. Add Persistent Peerscd .kyve/config ls -la you should find the files, we should have a config.toml in this directorynano config.toml This will open your config in the terminal window for editing, scroll down to ‘persistent peers’ and add in the following70556c82352b9919fb6f339b9da0ebc587e9148c@3.68.232.117:26656 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 CosmovisorCosmovisor is a tool that listens to on-chain governance proposals and automatically replaces the binary. Download Binarieswget https://github.com/KYVENetwork/chain/releases/download/v0.0.1/cosmovisor_linux_amd64 && \ mv cosmovisor_linux_amd64 cosmovisor && \ chmod +x cosmovisor Setup the directorymkdir -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 variablesexport 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 step4. Set up Daemon-serviceThis 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 Daemonsudo 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 Daemonsudo systemctl stop kyved To Check the Logsjournalctl -u kyved -f Check Sync Statuscurl -s localhost:26657/status | jq .result.sync_info.catching_up you may need to install jq to do this, you can with5. Run the ValidatorPENDING -WORKING ONHOW TO RUN PROTOCOL NODE- (Validator)Protocol Node/Validator with Kysorhttps://kysor.kyve.network/ 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 hereProtocol Node Kyve with Kysor supportFor this guide, I took information from the project\'s github https://github.com/kyve-org/kysorhttps://teletype.inRestart Node - for changeswith 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 Nodesudo systemctl stop kyved confirm service is not activesudo systemctl status kyved 2. Edit config filenano $HOME/kysor/kysor.conf.ts make any changes here, for changing pools or stake amount 3. restart the servicesudo systemctl daemon-reload sudo systemctl enable kyved sudo systemctl restart kyved 4. check logsjournalctl -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//kyvereplace user with the user of your device move to directory in terminal cd /home//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//releases/download// unzip then delete the downloaded zip file sudo unzip sudo rm 4. change permissions and confirm version sudo chmod +x sudo <./evm-linux> --version this should return the correct version number 5. Place Arweave.json copy the arweave .json file to the /home//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 kyvedif no errors logs should appear similarLogs and troubleshootingMaking 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 exceededincrease the space by using the -sp flag. This is added to the ExecStart line (line 8) on your kyved.service add this -sp 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 kyvedoutputs the statusLogs to output logs sudo journalctl -f -u kyved searching for specific terms, like warnings (WARN) sudo journalctl -f -u kyved | grep WARNPOOL MigrationShould 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//kyve/ 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 ## Publication Information - [GLCstaked](https://paragraph.com/@glcstaked/): Publication homepage - [All Posts](https://paragraph.com/@glcstaked/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@glcstaked): Subscribe to updates