MEME Chain
How to Join MEME Mainnet
Recommended system setup
- 4 core CPU
- Memory: 4GB
- Disk: 100GB
- Ubuntu 20.04
Meme Validator Node Snapshot & State-Sync
Thanks polkachu.com and theamsolutions.info are providing a nodes State-Sync, snapshot and RPC to support fellow validators.
Polkachu.com:
https://polkachu.com/tendermint_snapshots/meme
https://polkachu.com/state_sync/meme
Theamsolutions.info:
https://www.theamsolutions.info/meme-services
Full chain setup guidelines
1. Prerequisites
# update the local package list and install any available upgrades
sudo apt-get update && sudo apt upgrade -y
# install toolchain and ensure accurate time synchronization
sudo apt-get install make chrony build-essential gcc git jq -y
2. Install Go
Follow the instructions here to install Go.
Alternatively, for Ubuntu LTS, you can do:
wget -q -O - https://git.io/vQhTU | bash -s -- --version 1.17.8
source ~/.bashrc
Unless you want to configure in a non standard way, then set these in the .profile
in the user's home (i.e. ~/
) folder.
cat <<EOF >> ~/.profile
export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export GO111MODULE=on
export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin
EOF
source ~/.profile
go version
Output should be: go version go1.17.8 linux/amd64
3. Install meme from source
Fetch and install the current Mainnet MEME version.
git clone https://github.com/MEMECosmos/meme
cd meme
git checkout main
make install
Note: there is no tag to build off of, just use main for now
Init chain
memed init $MONIKER_NAME --chain-id meme-1
Download Genesis
Please download the genesis file, with the chain-id and double check the hash of the genesis.
wget -O $HOME/.memed/config/genesis.json https://raw.githubusercontent.com/memecosmos/mainnet/main/meme-1/genesis.json
echo "6e8e0e14fbdc2d978584a2af735c255f1d17bf6c50e8889aec83df33104851b8 genesis.json" | sha256sum -c
Setup seeds
Add these seeds here to the ~/.memed/config/config.toml file Make sure to add the provided peers found in peers.txt
by filling the persistent_peers
fields resp.
Or type command
export PEERS="[email protected]:26656,[email protected]:26651,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:47656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26666,[email protected]:36656,[email protected]:26686,[email protected]:26656,[email protected]:26656,[email protected]:24656,[email protected]:26613,[email protected]:30511,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656,[email protected]:26656"
sed -i.bak -e "s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" ~/.memed/config/config.toml
min-gas-price
to 0.025umeme
in app.toml
Setup sed -i -E 's/minimum-gas-prices = \"\"/minimum-gas-prices = \"0.025umeme\"/g' ~/.memed/config/app.toml
Add/recover Wallet
# To create new keypair - please make sure you save the mnemonics!
memed keys add <WALLET-NAME>
# Restore existing wallet with mnemonic seed phrase.
# You will be prompted to enter mnemonic seed.
memed keys add <WALLET-NAME> --recover
Backup critical files
Private key to use as a validator in the consensus protocol. File priv_validator_key.json in ~/.memed/config/
priv_validator_key.json
Show your validator public key
memed tendermint show-validator
Starting memed as a service
tee /etc/systemd/system/memed.service > /dev/null <<EOF
[Unit]
Description=MEME Daemon
After=network-online.target
[Service]
User=$USER
ExecStart=$GOBIN/memed start
Restart=always
RestartSec=3
LimitNOFILE=65535
StandardOutput=file:/var/log/memed.log
StandardError=file:/var/log/memed.log
[Install]
WantedBy=multi-user.target
EOF
Initialize the log file:
touch /var/log/memed.log
Start the memed service like this:
systemctl enable memed
systemctl start memed
Create the validator
Note : All validators set commission to at least 5% Create your validator using the following transaction:
Create MEME validator
memed tx staking create-validator \
--pubkey=$(memed tendermint show-validator) \
--amount=1000000umeme \
--chain-id meme-1 \
--identity="<KEYBASE-ID>" \
--moniker="<MONIKER>" \
--details "<DESCRIPTION>" \
--website="<WEBSITE>" \
--security-contact="<EMAIL>" \
--commission-max-change-rate=0.01 \
--commission-max-rate=0.20 \
--commission-rate=0.05 \
--gas-prices=0.025umeme \
--min-self-delegation="1" \
--from=<WALLET-NAME>
Please backup critical files
priv_validator_key.json
Frequently used commands
Redeem commission rewards
memed tx distribution withdraw-rewards <Operator Address> --from <WALLET-NAME> --commission --chain-id=meme-1 --fees 10000umeme
Your validator : memevaloperxxxxxxxxxxxx
Unjail validator
memed tx slashing unjail --from <WALLET-NAME> --chain-id meme-1
Local testnet node
You can use Meme dapp developer installer.
One-line installer: https://github.com/memecosmos/testnet/tree/main/local-testnet
Manual installation:
#customize the name of your key, the moniker, chain-id, keyring backend, and log level
KEY="mykey"
MONIKER="localtestnet"
CHAINID="meme-testnet-1"
KEYRING="test"
LOGLEVEL="info"
#Initialize the chain
memed init $MONIKER --chain-id=$CHAINID
#Create account
memed keys add $KEY --keyring-backend $KEYRING
#Allocate genesis accounts (cosmos formatted addresses)
memed add-genesis-account $KEY 1000000000umeme --keyring-backend $KEYRING
#Sign genesis transaction
memed gentx $KEY 100000000umeme --keyring-backend $KEYRING --chain-id $CHAINID
#Add the gentx to the genesis file
memed collect-gentxs
#Check the correctness of the genesis.json file
memed validate-genesis
#Start MEME testnet node
memed start