Skip to content

Install


Latest Version TagChain ID

Install dependencies

Update system and install build tools
Terminal window
sudo apt -q update
sudo apt -qy install curl git jq lz4 build-essential
sudo apt -qy upgrade
Synchronize date and time
Terminal window
timedatectl

If the NTP service parameter is set to no, then your node’s time may get out of sync. Set up time synchronization by running the command:

Terminal window
timedatectl set-ntp on
Install file2ban

more here and here

Terminal window
# set and copy the config that will have higher priority
sudo apt install fail2ban -y && \
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local && \
sudo nano /etc/fail2ban/jail.local
# uncomment and add your IP: ignoreip = 127.0.0.1.1/8 ::1 [ip]
sudo systemctl restart fail2ban
# check status
sudo systemctl status fail2ban
# check which jails are active (by default only sshd)
sudo fail2ban-client status
# check sshd statistics
sudo fail2ban-client status sshd
# look at the logs
sudo tail /var/log/fail2ban.log
# stop work and remove from autoloading
#sudo systemctl stop fail2ban && sudo systemctl disable fail2ban

Setup and Connect a node to the Mainnet

Terminal window
cd ~
git clone _repo_path_

The binary files required to run JuneoGo are:

  • juneogo
  • jevm
  • srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e

To grant execution permissions of the binary files, please execute the following commands:

Terminal window
chmod +x ~/juneogo-binaries/_project_name_
chmod +x ~/juneogo-binaries/plugins/jevm
chmod +x ~/juneogo-binaries/plugins/srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e

After this, the juneogo binary should be moved to the home directory. The remaining two binaries should be moved to the ~/.juneogo/plugins directory.

To do so, please execute the following commands:

Terminal window
mv ~/juneogo-binaries/_project_name_ ~
mkdir -p ~/.juneogo/plugins
mv ~/juneogo-binaries/plugins/jevm ~/.juneogo/plugins
mv ~/juneogo-binaries/plugins/srEr2XGGtowDVNQ6YgXcdUb16FGknssLTGUFYg7iMqESJ4h8e ~/.juneogo/plugins

Create service file

Terminal window
sudo tee /etc/systemd/system/juneod.service > /dev/null <<EOF
[Unit]
Description=JUNEO Node
After=network.target
[Service]
User=$USER
Type=simple
ExecStart=/home/juneo/juneogo-binaries/_project_name_
Restart=on-failure
LimitNOFILE=65535
[Install]
WantedBy=multi-user.target
EOF

Start service and check the logs

Terminal window
sudo systemctl daemon-reload && \
sudo systemctl enable juneod && \
sudo systemctl start juneod && \
sudo systemctl status juneod

Wait for synchronization.

Check logs

Terminal window
sudo journalctl -u juneod.service -f --no-hostname -o cat

This will start fetching blocks and bootstrapping your node.

Add a Node to the Validator Set

  1. Retrieve Your nodeID, publicKey and proofOfPossession:
Terminal window
curl -X POST --data '{
"jsonrpc":"2.0",
"id" :1,
"method" :"info.getNodeID"
}' -H 'content-type:application/json' 127.0.0.1:9650/ext/info

Output should look like this:

{
"jsonrpc": "2.0",
"result": {
"nodeID": "NodeID-4JfgcoMWBpxCQL5VmyQ1f6L36mUbLLBga",
"nodePOP": {
"publicKey": "MyBLSKey",
"proofOfPossession": "MyBLSSignature",
}
},
"id": 1
}
  1. Copy the value for the nodeID, publicKey, and proofOfPossession from the response.

  2. Log into mcnwallet.io.

You can use your own seed phrase to connect or create new for this node project.

  1. Go to Stake and open the Validate window.

Enter the Node ID, BLS key, and BLS signature that you previously saved. Add at least 100 JUNE token and set the validation period to at least 90 days.