# Node Installation

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

* **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 clang pkg-config libssl-dev curl git wget htop tmux build-essential jq make lz4 gcc unzip -y


# Install Go
cd $HOME
VER="1.22.2"
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 SOMMELIER_CHAIN_ID="sommelier-3"" >> $HOME/.bash_profile
echo "export SOMMELIER_PORT="9"" >> $HOME/.bash_profile
source $HOME/.bash_profile


# Download Binary
cd $HOME
rm -rf sommelier
git clone https://github.com/PeggyJV/sommelier sommelier
cd sommelier
git checkout v7.0.1
make install


# Config and Init App
sommelier init $MONIKER --chain-id $SOMMELIER_CHAIN_ID


# Add Genesis File and Addrbook
wget -O $HOME/.sommelier/config/genesis.json https://testnet-files.syanodes.my.id/sommelier-m-genesis.json
wget -O $HOME/.sommelier/config/addrbook.json https://testnet-files.syanodes.my.id/sommelier-m-addrbook.json


#Configure Seeds and Peers
SEEDS=""
PEERS="4b301813e7db41ed3c8109994e18c0e701b29acd@35.185.11.168:26656,c94fd60124e3656df54ff965d178e36c760c195d@65.108.57.224:26656,4a5b215ae51affa285f70298db3fe826ddc5e871@37.27.114.100:26656,e8e3359cfe774d0cad774a0bf34f53cc5b872703@95.216.161.87:26656,04def519ec8b578bc6d9efaa56eb957a131cf6f3@135.181.192.166:26656,362d69cdada0d5926181c602c40f7a7d97186d87@157.90.95.15:26656,163d9989fb6ff216db571b2a95ce47fb9282f93f@157.90.26.189:26658,9a3795cef9443b37db9f0e769902729e9865f383@51.15.206.33:26656,281bca9514fe002d90a4b3db2a1567f66a0ec357@159.69.66.149:26646,7bb0b626fe74992f07447e5f9239a188317517a7@45.83.104.218:2000,41caa4106f68977e3a5123e56f57934a2d34a1c1@95.214.55.227:27176,733ee0a5a74de20745c5236df015642aa53060bc@57.128.96.155:14156,ebc272824924ea1a27ea3183dd0b9ba713494f83@95.214.52.139:27176,ae3df68c1ac6b7a493504e2871b0ab26e1b9c542@38.109.200.33:26656,75b526dd317ebb1d5500cfa5425c9c7af75f7ebe@51.77.56.47:2000,15861ad4a98ee9a872f85fdace2b23422c796cdf@146.59.81.92:36656,0c3fa55c4308e43cb9761e551998da701435fa1b@47.147.226.147:33656,2a31a7bfadfa1b1365fb2427421845da52b610cd@185.165.170.72:26656,ee74b3c6d5037e2c56bc95b989b0a26643d79aa4@81.0.220.94:24556,75c7972462772278129cb6585f63b94fa4ee81a7@44.196.14.252:26656,6e42ef37b18bd6547c4ce7a76111d5377c25e684@34.145.250.69:26656,d87359b6d0f7c736282d48bd38525e2f50cb60d3@35.245.9.232:26656,9ffc9ade220b0a0fc0c9abded0b032f94f3cbb38@65.108.109.103:10656,24a9d13e9e95ecf030253b64c1ef6f283f37d155@34.125.175.228:26656,3cade0e5deb5bbd8adfa98f62eca48b7d8f87414@34.16.142.53:26656,6de25884c1ebe3cdaf8a53faaa876e62baef5e08@15.235.115.155:15400,ea1e0b10ee696dc1a0d1e74329456f34c283bc15@216.66.9.67:30330,03d22833a8b8e414c2da861cab1cbe8f5694063b@5.78.93.29:26656,be0f0de2c77ad41401711d6a395dd6c6440ef124@144.217.158.217:26656,3cfe6e50a07cce40881a5648c54a823769e9bf47@135.181.129.122:15656,e4de0b2171d28fec191e85cf67772f09d17520de@65.109.59.19:2070,5e6678fc29b62e1a81144bf010dfd1228dff1031@63.229.234.75:26656,ed7ef7587d0d7552e973d6fa480ce0ff7f9f39ee@34.70.157.247:26656,db1748aee7658ce2614e27acb38d184654027194@34.150.158.73:26656,1f3736062f874d214e132084644c6a3f357936de@35.186.165.222:26656,6468a9a418bb1f0bff15a826d07cb62dbd680d2b@144.76.62.93:26656,c9a794387928277b7eba6c8428cd2bc08b2e722b@65.108.201.240:14156,2a93608577083485a3e09997159446ab8cfd6b68@54.199.153.43:26656,ad242fe3d7e5abffcae24af91fdcbd004daa3d0f@65.21.84.223:14156,51de9f38f9e3d0b262db301d5147b17750af7795@89.58.12.236:26656,c08eced51e376d9314b313cbece53b1059931ba6@65.108.238.103:14156,fde339de96b78d7d602dc653d88c8064c85cbf0f@128.140.76.182:26658,f3251d67547f88595966101562094ca538d39f8e@65.108.106.135:26696,f2e5d94bd8e11ec722e9a92546b793f8e4e0ea5d@178.63.123.34:2000,302cb1aa66e2ce8be9a766b6e40d98747cdcf906@65.109.90.96:60656,ccfc7878d4a328f4af815d1f13cd334f6073a474@195.201.171.135:26656,159115602e05697aaa48578ba70c09067f4998c3@95.216.116.57:26656,6f5a9c8ea772264f4f968e4510daae3147247380@79.127.196.35:36656,7e041096585d12b99d9f575979744251409dd0a0@93.115.25.106:36656,6d5241c556fd8c461d971584dbd41b007a940a16@65.109.30.53:14156,074bc7d2ded6b568aa5b3df1ed1f530804cd2c66@89.58.29.219:26656,3fb643a2e4bcd9e79ea745c0e61a06fa3ab99ecf@15.235.87.217:26656,52933b1a578465f5e7cd718a41cd97fd2072fab2@65.109.23.55:1076,e15ca4ba5ee5dd515ba73c53737bb3f6deb051a1@65.108.121.190:2130,402902424e92850107cd0d5b35fcf40b54256b91@79.13.57.85:26656,ad7312bcf1beac7ceb817cb6a47b6697d63daf5e@34.134.46.169:26656,8663e7da214559e6dd094a1dde7b877cf9571b6f@37.59.18.132:20002,896e1d89e0e085ab09cb264ed7b83047d2e73f40@107.161.145.162:33656,65df4d055f805666712b600e6789989167029be1@51.195.105.50:26656,0943faa7209a90cb1f2c0758407ec98bcb641d02@51.159.16.49:26656,e6c0d56e8c220b835eb5f4a2786cbcd4ea56696a@107.150.119.135:26656,5a214fdeae9f98e909da4f497b6a84119e04f5d4@209.38.234.219:32357,86cbeedea81c89192f5a57f2916c4c89e0f2686a@46.166.140.167:26656,4d95665a3b60b478c4191c090a1e8ba5bfda448c@139.177.182.181:26656,50ce1794942a3f28adef700caf51b49d3e3beacb@35.203.182.18:26656,044d2fcd404d84b8b0f7953c37da7ed0f5511cff@57.129.36.75:26656,ac65237d8760a58be6818566139d33713983d9ef@135.181.210.171:2076,6542f21c020d67b01dcfa84685b3e389f123ec7e@65.108.232.93:14156,a96d69179e4b72f728b9dd4dbe40400701515fee@80.64.208.51:26656,ff826c4b26ddfb7d5d79612585624115712b0a27@80.64.208.52:26656,f6f62e2914b38b2a21ab5f8162c22a2d6c5b1003@65.108.207.231:26656,e0f4ddb8ebd2130f633bdcd43a40e4e668f08a4b@148.113.8.181:14156,5f5cfac5c38506fbb4275c19e87c4107ec48808d@65.21.198.100:11010"
sed -i -e "s/^seeds *=.*/seeds = \"$SEEDS\"/; s/^persistent_peers *=.*/persistent_peers = \"$PEERS\"/" $HOME/.sommelier/config/config.toml
sed -i -e "s/^minimum-gas-prices *=.*/minimum-gas-prices = \"0usomm\"/" $HOME/.sommelier/config/app.toml
sed -i -e 's|^indexer *=.*|indexer = "null"|' $HOME/.sommelier/config/config.toml
sed -i 's|^prometheus *=.*|prometheus = true|' $HOME/.sommelier/config/config.toml


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


# Set Custom Port
sed -i.bak -e "s%:1317%:${SOMMELIER_PORT}317%g;
s%:8080%:${SOMMELIER_PORT}080%g;
s%:9090%:${SOMMELIER_PORT}090%g;
s%:9091%:${SOMMELIER_PORT}091%g;
s%:8545%:${SOMMELIER_PORT}545%g;
s%:8546%:${SOMMELIER_PORT}546%g;
s%:6065%:${SOMMELIER_PORT}065%g" $HOME/.sommelier/config/app.toml
sed -i.bak -e "s%:26658%:${SOMMELIER_PORT}658%g;
s%:26657%:${SOMMELIER_PORT}657%g;
s%:6060%:${SOMMELIER_PORT}060%g;
s%:26656%:${SOMMELIER_PORT}656%g;
s%^external_address = \"\"%external_address = \"$(wget -qO- eth0.me):${SOMMELIER_PORT}656\"%;
s%:26660%:${SOMMELIER_PORT}660%g" $HOME/.sommelier/config/config.toml
sed -i \
  -e 's|^chain-id *=.*|chain-id = "sommelier-3"|' \
  -e 's|^node *=.*|node = "tcp://localhost:9657"|' \
  $HOME/.sommelier/config/client.toml


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

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

[Install]
WantedBy=multi-user.target
EOF


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

## Auto Installation

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