# Node Installation

### Hardware requirements The following requirements are recommended for running CHAIN4ENERGY:

* **6 or more physical CPU cores**
* **At least 1TB of SSD disk storage**
* **At least 16GB of memory (RAM)**
* **At least 500mbps network bandwidth**

## Manual Installation

```bash
# Update & install dependencies
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 git jq htop tmux chrony liblz4-tool fail2ban -y

# Install Go
cd $HOME
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"
[ ! -f ~/.bash_profile ] && touch ~/.bash_profile
echo "export PATH=$PATH:/usr/local/go/bin:~/go/bin" >> ~/.bash_profile
source $HOME/.bash_profile
[ ! -d ~/go/bin ] && mkdir -p ~/go/bin
go version


# Set Vars
MONIKER=<YOUR_MONIKER_NAME_GOES_HERE>
echo "export MONIKER=$MONIKER" >> $HOME/.bash_profile
echo "export C4E_CHAIN_ID="perun-1"" >> $HOME/.bash_profile
echo "export C4E_PORT="114"" >> $HOME/.bash_profile
source $HOME/.bash_profile


# Download Binary
cd $HOME
rm -rf $HOME/c4e-chain
git clone https://github.com/chain4energy/c4e-chain
cd c4e-chain
git checkout v1.4.3
make install


# Config and Init App
c4ed config node tcp://localhost:${C4E_PORT}57
c4ed config chain-id $C4E_CHAIN_ID
c4ed init $MONIKER --chain-id $C4E_CHAIN_ID


# Add Genesis File and Addrbook
wget -O $HOME/.c4e-chain/config/genesis.json https://snapshot.syanodes.my.id/mainnets/c4e/genesis.json
wget -O $HOME/.c4e-chain/config/addrbook.json https://snapshot.syanodes.my.id/mainnets/c4e/addrbook.json


#Configure Seeds and Peers
SEEDS=""
PEERS="fdaf76c3d8c19c1d2e4d00b1557b441ffa6dc934@23.88.13.39:26656,6e07322479eb7e31c1b33513544e03245b6de561@185.252.235.83:26656,a8d513fa1cfd23d500344eb81a80485c7ad55a06@168.119.226.107:26956,b536d1816a220dc5894769c94c865d2c4252608e@38.46.220.210:13456,e72f3b554c5580ced0e4fa1e493ca9cb4a2541bf@198.244.213.92:28656,3b45ee54d6250747d439f209d7cefc5ea128d9f3@144.76.97.251:29656,eb6d4504241599224cd4e9e3c28a0d7d6dce0bab@139.144.96.120:26656,e8086cf746917cbe7090e5879d4a51147a1a6c61@65.21.167.185:27256,a9bdcae2527c4a27a6f4882e852329241a945699@46.4.81.204:30656,1bae86fca1b0ed46d1169e830afb7b3d2940f8b6@185.11.248.93:26656,5e7688ac669671ef7837a5536760e5fa35946858@148.251.9.235:26656,6aae2a2c38ce6eb243988f4c54d6f9afada38114@143.110.248.56:26656,61a1e4bbc0844df04b8938c17f15f307e5f89cc9@65.21.247.218:26656,06adb18017d6c1041220e4bc3f2a85641f1f2979@172.105.229.177:26656,bb7d1cbdbba4eed8e48998c144a1ca91aa95ba7e@207.120.6.252:46656,088136fd5cd59b3806d1c79f9ef26bcdd7de6c0f@65.109.70.100:24656,5ced5f8ac86ea701636ee92507ff94403c88fae4@94.130.230.164:26644,32a412aee27e0f4691ab7eee0680109faa66f093@65.108.124.219:31656,d81f51b4a1aae66792fb1717589fa28975f328b0@164.68.125.243:26656,7fdb48b6eda39ceda2749960292b4ba73b6ad92e@176.9.183.45:29656,bb9cbee9c391f5b0744d5da0ea1abc17ed0ca1b2@159.69.56.25:26656,d4c6f17b49af7f96c587613cbdb6e41b179079c2@185.208.206.217:26656,595dca937ee92264687424478a316cdcb8b53ae3@78.46.174.72:27256,a397ca5fe59de57b3d3b2b3ea8389c64d2b7267a@163.172.18.162:26656,d1c10bb6a139ddb29af596fc888bd57c143124b7@93.189.30.124:26656,1a9c055259e67b36def5c978a02f20545722e8e7@62.212.65.138:27656,4ab999fbc7333fc03b15cc3b8ab7e581ed1941d1@149.50.96.147:41656,2f6141859c28c088514b46f7783509aeeb87553f@141.94.193.12:11656,d09b54188bda615c13cdd92a18bef11bed8d4735@79.137.68.96:26656,f4b30afd4f46eedfc421272280242cc2fd39e55f@38.242.220.64:16656,4890f5eeb33048ee1a10e52c328a776e6d454745@168.119.139.86:32656,7c7c5158c5b67797f85a4e376db8b79da0dadbac@212.109.147.99:26656,5be2027950e249c42e20390c94fc1e8f3cd16657@65.108.70.119:33656,01d209a3166c85193a7c922eae43a4d8972f40e4@65.109.125.189:26656,00eb92db69a4848f8ac1c84e7b8b2d9b01b95dff@157.90.0.102:30656,b1a90de2596e73493f3ef5fda723acd0e80e1bf2@85.10.200.232:26956,e32345e23f702978a6d34a54066c853e11fb4dc0@167.86.82.140:26656,bf78d9bd64cf7e83357966aa3b4ca19d996ef1ef@51.75.55.49:26656,47be6c595d4c2c417e754098d70778a059c145b8@152.53.36.47:30056"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.c4e-chain/config/config.toml
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0.00025uc4e\"/" $HOME/.c4e-chain/config/app.toml
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.c4e-chain/config/config.toml
sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.c4e-chain/config/config.toml


# Config Pruning
pruning="custom"
pruning_keep_recent="100"
pruning_keep_every="0"
pruning_interval="10"
sed -i -e "s/^pruning *=.*/pruning = \"$pruning\"/" $HOME/.c4e-chain/config/app.toml
sed -i -e "s/^pruning-keep-recent *=.*/pruning-keep-recent = \"$pruning_keep_recent\"/" $HOME/.c4e-chain/config/app.toml
sed -i -e "s/^pruning-keep-every *=.*/pruning-keep-every = \"$pruning_keep_every\"/" $HOME/.c4e-chain/config/app.toml
sed -i -e "s/^pruning-interval *=.*/pruning-interval = \"$pruning_interval\"/" $HOME/.c4e-chain/config/app.toml


# Set Custom Port
sed -i -e "s%:1317%:${C4E_PORT}17%; s%:8080%:${C4E_PORT}80%; s%:9090%:${C4E_PORT}90%; s%:9091%:${C4E_PORT}91%; s%:8545%:${C4E_PORT}45%; s%:8546%:${C4E_PORT}46%; s%:6065%:${C4E_PORT}65%" $HOME/.c4e-chain/config/app.toml
sed -i -e "s%:26658%:${C4E_PORT}58%; s%:26657%:${C4E_PORT}57%; s%:6060%:${C4E_PORT}60%; s%:26656%:${C4E_PORT}56%; s%:26660%:${C4E_PORT}61%" $HOME/.c4e-chain/config/config.toml


# Set Service File
sudo tee /etc/systemd/system/c4ed.service > /dev/null <<EOF
[Unit]
Description=c4e-mainnet
After=network-online.target

[Service]
User=$USER
ExecStart=$(which c4ed) start --home $HOME/.c4e-chain
Restart=on-failure
RestartSec=3
LimitNOFILE=65535

[Install]
WantedBy=multi-user.target
EOF


# Enable and Start Service
sudo systemctl daemon-reload
sudo systemctl enable c4ed
sudo systemctl start c4ed && sudo journalctl -fu c4ed -o cat
```

## Auto Installation

```bash
wget https://snapshot.syanodes.my.id/auto/mainnet/c4e_auto && chmod +x c4e_auto && ./c4e_auto 
```
