# Install Ojo node

By [Rustem | Gaz](https://paragraph.com/@rustem-gaz) · 2023-03-28

---

Install Ojo node
----------------

### Update packages, install dependencies

    cd $HOME
    sudo apt update && sudo apt upgrade -y
    sudo apt install make clang pkg-config libssl-dev build-essential git jq ncdu bsdmainutils htop -y < "/dev/null"
    

### Install go

    cd $HOME
    wget -O go1.19.1.linux-amd64.tar.gz https://golang.org/dl/go1.19.1.linux-amd64.tar.gz
    rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz && rm go1.19.1.linux-amd64.tar.gz
    echo 'export GOROOT=/usr/local/go' >> $HOME/.bash_profile
    echo 'export GOPATH=$HOME/go' >> $HOME/.bash_profile
    echo 'export GO111MODULE=on' >> $HOME/.bash_profile
    echo 'export PATH=$PATH:/usr/local/go/bin:$HOME/go/bin' >> $HOME/.bash_profile && . $HOME/.bash_profile
    go version
    

### Download and build binaries

    git clone https://github.com/ojo-network/ojo && cd ojo
    git checkout v0.1.2
    make install
    cd $HOME
    
    ojod version --long
    # HEAD-ad5a2377134aa13d7d76575b95613cf8ed12d1e4
    # commit: ad5a2377134aa13d7d76575b95613cf8ed12d1e4
    

### Initialize node and download genesis:

> Make up your own name for the node and replace it with <>
> 
>     ojod init <<node_name>> --chain-id ojo-devnet
>     
>     wget -O $HOME/.ojo/config/genesis.json https://raw.githubusercontent.com/88Mikhail88/My_Testnets/main/Ojo/genesis.json
>     wget -O $HOME/.ojo/config/addrbook.json https://raw.githubusercontent.com/88Mikhail88/My_Testnets/main/Ojo/addrbook.json
>     
> 
> ### Adding peers
> 
>     peers="17a5fad48064ee3da42f435925f7bbe055e6348d@ojo-testnet.nodejumper.io:37656,239caa37cb0f131b01be8151631b649dc700cd97@95.217.200.36:46656,b133dde2713a216a017399920419fcb1e084cdb2@136.243.88.91:7330,2c40b0aedc41b7c1b20c7c243dd5edd698428c41@138.201.85.176:26696,7d6706d7ee674e2b2c38d3eb47d85ec6e376c377@49.12.123.87:56656,9ebe723eef929e9eff748f4046d6130ee349a398@65.108.203.149:24017,8fbfa810cb666ddef1c9f4405e933ef49138f35a@65.108.199.120:54656,0d4dc8d9e80df99fdf7fbb0e44fbe55e0f8dde28@65.108.205.47:14756,8b6c75d20ac3ceeb7f0f1d4b5fc89a69e567c47b@65.108.231.238:36656,7bf4e4a18bf2006f79f50c79903f77d4e2a5a303@65.21.77.175:33307,3147dcfa5c320f31b083a1d1319cbcb010108f9f@65.108.233.220:17656,bdd24cab3246503ae261aea82f077ffb66d56ce3@95.216.39.183:28656,d6318facf0de085644dcf8ba57bcc1725b6ec515@89.58.59.75:36656,406466cf9c390c0fd1784a197f2bb38a786da35e@185.111.159.115:28656,d5519e378247dfb61dfe90652d1fe3e2b3005a5b@65.109.68.190:50656,7416a65de3cc548a537dbb8bdf93dbd83fe401d2@78.107.234.44:26656,2720b3b9e1a318d5b4abdad65714c55e09f43965@82.208.21.78:36656,f702b19a4dae5ad813dabe3f529bf31c160a74e0@5.189.176.202:26656,f474a520009496972515f843cdb835fc7d663779@65.109.23.114:21656,1879aa588b4d6431bf40543f3a44129dcf60a043@144.91.77.68:50656"
>     sed -i "s/^persistent_peers *=.*/persistent_peers = \"$peers\"/;" $HOME/.ojo/config/config.toml
>     
> 
> ### Config pruning
> 
>     recent=100
>     every=0
>     interval=10
>     
>     sed -i.back "s/pruning *=.*/pruning = \"custom\"/g" $HOME/.ojo/config/app.toml
>     sed -i "s/pruning-keep-recent *=.*/pruning-keep-recent = \"$recent\"/g" $HOME/.ojo/config/app.toml
>     sed -i "s/pruning-keep-every *=.*/pruning-keep-every = \"$every\"/g" $HOME/.ojo/config/app.toml
>     sed -i "s/pruning-interval *=.*/pruning-interval = \"$interval\"/g" $HOME/.ojo/config/app.toml
>     
> 
> ### Creating service file
> 
>     echo "[Unit]
>     Description=Ojo
>     After=network.target
>     
>     [Service]
>     User=$USER
>     Type=simple
>     ExecStart=$(which ojod) start
>     Restart=on-failure
>     LimitNOFILE=65535
>     
>     [Install]
>     WantedBy=multi-user.target" > $HOME/ojod.service
>     sudo mv $HOME/ojod.service /etc/systemd/system
>     sudo tee <<EOF >/dev/null /etc/systemd/journald.conf
>     Storage=persistent
>     EOF
>     
> 
> ### Start servise
> 
>     sudo systemctl restart systemd-journald
>     sudo systemctl daemon-reload
>     sudo systemctl enable ojod 
>     
>     sudo systemctl restart ojod
>     
> 
> ### Create a wallet, save mnemonics
> 
> > Think of a name for your wallet and replace it with <>
> > 
> >     ojod keys add <<wallet_name>>
> >     
> > 
> > > (Optional) Recovering a wallet using mnemonics:
> > 
> >     ojod keys add <<wallet_name>> --recover
> >     
> > 
> > > Check if the node is synchronized, if the result is false - then the node is synchronized:
> > 
> >     curl -s localhost:26657/status | jq .result.sync_info.catching_up
> >     
> > 
> > ### Check your wallet balance
> > 
> >     ojod q bank balances <<address>>
> >     
> > 
> > > If your wallet does not show any balance than probably your node is still syncing. Please wait until it finish to synchronize and then continue
> > 
> > ### Creating a validator (Replace: <>, <>) ojod tx staking create-validator \\ --moniker="<<node\_name>>" \\ --amount=1000000uojo \\ --pubkey=$(ojod tendermint show-validator) \\ --chain-id=ojo-devnet \\ --commission-max-change-rate=0.01 \\ --commission-max-rate=0.20 \\ --commission-rate=0.05 \\ --min-self-delegation=1 \\ --from=<<wallet\_name>> \\ --yes **_Don't forget to buckup priv\_validator\_key.json file_** Official Ojo Links: Ojo Website: [https://ojo.network/](https://ojo.network/) Ojo Discord: [https://discord.gg/7qGQUnRgZf](https://discord.gg/7qGQUnRgZf) Ojo Twitter: [https://twitter.com/ojo\_network](https://twitter.com/ojo_network) Ojo Telegram: [https://t.me/OjoNetwork](https://t.me/OjoNetwork) Ojo Documentation: [https://docs.ojo.network/](https://docs.ojo.network/) Ojo GitHub: [https://github.com/ojo-network](https://github.com/ojo-network) Ojo Reddit: [https://www.reddit.com/r/OjoNetwork](https://www.reddit.com/r/OjoNetwork)

---

*Originally published on [Rustem | Gaz](https://paragraph.com/@rustem-gaz/install-ojo-node)*
