Source Network and Decentralized Data (D2) Foundation, the physical embodiment of the ecosystem, are made up of WEB3 developers who seek to democratize data. The network was founded based on the idea of a social movement to return control to users through privacy, security and consent.
Node type: Testnet.
CPU: 4.
RAM: 8GB.
Storage: 150GB.
wget -O sources https://raw.githubusercontent.com/111STAVR111/props/main/Source/Testnet/sources && chmod +x sources && ./sources
Server preparation
sudo apt update && sudo apt upgrade -y
sudo apt install curl tar wget clang pkg-config libssl-dev jq build-essential bsdmainutils git make ncdu gcc chrony liblz4-tool -y
Installing GO 1.21.6
ver="1.21.6"
wget "https://golang.org/dl/go$ver.linux-amd64.tar.gz"
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf "go$ver.linux-amd64.tar.gz"
rm "go$ver.linux-amd64.tar.gz"
echo "export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin" >> $HOME/.bash_profile
source $HOME/.bash_profile
go version
Version 01.08.24
cd $HOME && mkdir $HOME/go/bin/
git clone https://github.com/Source-Protocol-Cosmos/source.git
cd ~/source
git checkout v.3.0.2
make install
Installation
sourced init STAVR_guide --chain-id=source-1
sourced config chain-id source-1
Create/Restore Wallet
sourced keys add <walletname>
OR
sourced keys add <walletname> --recover
Install Genesis
curl -s https://raw.githubusercontent.com/Source-Protocol-Cosmos/testnets/master/sourcetest-1/genesis.json > ~/.source/config/genesis.json
Setting up minimum gas price and Peers/Seeds
sed -i.bak -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = "0.25usource"/;" ~/.source/config/app.toml
external_address=$(wget -qO- eth0.me)
sed -i.bak -e "s/^external_address *=.*/external_address = "$external_address:26656"/" $HOME/.source/config/config.toml
peers=""
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = "$peers"/" $HOME/.source/config/config.toml
seeds=""
sed -i.bak -e "s/^seeds =.*/seeds = "$seeds"/" $HOME/.source/config/config.toml
sed -i 's/max_num_inbound_peers =.*/max_num_inbound_peers = 50/g' $HOME/.source/config/config.toml
sed -i 's/max_num_outbound_peers =.*/max_num_outbound_peers = 50/g' $HOME/.source/config/config.toml
Pruning (optional)
pruning="custom"
pruning_keep_recent="1000"
pruning_keep_every="0"
pruning_interval="100"
sed -i -e "s/^pruning *=.*/pruning = "$pruning"/" $HOME/.source/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = "$pruning_keep_recent"/" $HOME/.source/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = "$pruning_keep_every"/" $HOME/.source/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = "$pruning_interval"/" $HOME/.source/config/app.toml
Indexer (optional)
indexer="null" &&
sed -i -e "s/^indexer *=.*/indexer = "$indexer"/" $HOME/.source/config/config.toml
Installing addrbook
wget -O $HOME/.source/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Source/Testnet/addrbook.json"
Creating a service file
sudo tee /etc/systemd/system/sourced.service > /dev/null <<EOF
[Unit]
Description=source test
After=network-online.target
[Service]
User=$USER
ExecStart=$(which sourced) start
Restart=on-failure
RestartSec=3
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF
SnapShot Testnet updated every 5 hours
cd $HOME
sudo systemctl stop sourced
cp $HOME/.source/data/priv_validator_state.json $HOME/.source/priv_validator_state.json.backup
rm -rf $HOME/.source/data
curl -o - -L https://source-t.snapshot.stavr.tech/source-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.source --strip-components 2
curl -o - -L https://source-t.wasm.stavr.tech/wasm-snap.tar.lz4 | lz4 -c -d - | tar -x -C $HOME/.source/data --strip-components 3
mv $HOME/.source/priv_validator_state.json.backup $HOME/.source/data/priv_validator_state.json
wget -O $HOME/.source/config/addrbook.json "https://raw.githubusercontent.com/111STAVR111/props/main/Source/addrbook.json"
sudo systemctl restart sourced && journalctl -u sourced -f -o cat
Startup
sudo systemctl daemon-reload
sudo systemctl enable sourced
sudo systemctl restart sourced && sudo journalctl -fu sourced -o cat
Create validator
sourced tx staking create-validator
--amount=1000000usource
--pubkey=$(sourced tendermint show-validator)
--moniker=STAVR_guide
--chain-id=sourcetest-1
--commission-rate="0.10"
--commission-max-rate="0.20"
--commission-max-change-rate="0.1"
--min-self-delegation="1"
--fees=100usource
--from=<walletName>
--identity=""
--website=""
--fees 5000usource
--details="" -y
Deleting a node
sudo systemctl stop sourced
sudo systemctl disable sourced
rm /etc/systemd/system/sourced.service
sudo systemctl daemon-reload
cd $HOME
rm -rf .source
rm -rf source
rm -rf $(which sourced)
Information
sourced status 2>&1 | jq .NodeInfo
sourced status 2>&1 | jq .SyncInfo
sourced status 2>&1 | jq .ValidatorInfo
Check node logs
sudo journalctl -fu sourced -o cat
Check service status
sudo systemctl status sourced
Restarting the service
sudo systemctl restart sourced
Stopping the service
sudo systemctl stop sourced
Service start
sudo systemctl start sourced
Restart/shutdown/enable
sudo systemctl daemon-reload
sudo systemctl disable sourced
sudo systemctl enable sourced
Your Peer
echo $(sourced tendermint show-node-id)'@'$(wget -qO- eth0.me)':'$(cat $HOME/.source/config/config.toml | sed -n '/Address to listen for incoming connection/{n;p;}' | sed 's/.*://; s/".*//')
New key or Restore key
sourced keys add Wallet_Name
OR
sourced keys add Wallet_Name --recover
Check all keys
sourced keys list
Balance check
sourced query bank balances address....jkl1yjgn7z09ua9vms259j
Delete key
sourced keys delete Wallet_Name
Export key
sourced keys export wallet
Import key
sourced keys import wallet wallet.backup
Edit Validator
sourced tx staking edit-validator
--new-moniker "Your_Moniker"
--identity "Keybase_ID"
--details "Your_Description"
--website "Your_Website"
--security-contact "Your_Email"
--chain-id source-1
--commission-rate 0.05
--from Wallet_Name
--gas 350000
--fees "7000"usource -y
Your Valope address
sourced keys show Wallet_Name --bech val
Your Valcon address
sourced tendermint show-address
Information about your validator
sourced query staking validator valoperaddress......
Jail information
sourced query slashing signing-info $(sourced tendermint show-validator)
Unjail
sourced tx slashing unjail --from Wallet_name --chain-id source-1 --gas 350000 --fees "7000"usource -y
List of active validators
sourced q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_BONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " t " + .description.moniker' | sort -gr | nl
List of inactive validators
sourced q staking validators -oj --limit=3000 | jq '.validators[] | select(.status=="BOND_STATUS_UNBONDED")' | jq -r '(.tokens|tonumber/pow(10; 6)|floor|tostring) + " t " + .description.moniker' | sort -gr | nl
Checking keys for validator matches(Win
- good. Lose
- bad)
VALOPER=Enter_Your_valoper_Here
[[ $(sourced q staking validator $VALOPER -oj | jq -r .consensus_pubkey.key) = $(sourced status | jq -r .ValidatorInfo.PubKey.value) ]] && echo -e "nYou winn" || echo -e "nYou losen"
Withdraw all rewards from all validators
sourced tx distribution withdraw-all-rewards --from Wallet_Name --chain-id source-1 --gas 350000 --fees "7000"usource -y
Withdraw funds and commission from your Validator
sourced tx distribution withdraw-rewards valoper1amxp0k0hg4edrxg85v07t9ka2tfuhamhldgf8e --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 --commission -y
Delegate tokens to your validator
sourced tx staking delegate Your_valpoer........ "100000000"usource --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 -y
Delegate tokens to another validator
sourced tx staking delegate valpoer........ "100000000"usource --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 -y
Transfer tokens from wallet to wallet
sourced tx bank send Your_address............ address........... "1000000000000000000"usource --gas 350000 --fees "7000"usource --chain-id=source-1 -y
View all offers
sourced query gov proposals
View a specific proposal
sourced query gov proposal 1
Vote in favor
sourced tx gov vote 1 yes --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 -y
Vote against
sourced tx gov vote 1 no --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 -y
Abstain
sourced tx gov vote 1 abstain --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 -y
Vote against with veto
sourced tx gov vote 1 no_with_veto --from Wallet_Name --gas 350000 --fees "7000"usource --chain-id=source-1 -y
IBC transfer
sourced tx ibc-transfer transfer transfer channel-2 Your_OSMOaddress............ "100000"usource --from Your_Source_Wallet_Name ---gas 350000 --fees "70000"usource --chain-id=source-1 -y