|
| 1 | +--- |
| 2 | +title: How To Run A Node On A Linux VPS |
| 3 | +sidebar_position: 2 |
| 4 | +--- |
| 5 | + |
| 6 | +Experienced users may want to set up their own Fuse Ember Node on a Linux system. The following instructions are provided as a guideline only, and information may be incomplete or out of date. Ensure that you back up your data before starting. You can read the official Fuse Checker Node documentation or contact Fuse support for more information. |
| 7 | + |
| 8 | +**1. Generate a burner wallet** |
| 9 | + |
| 10 | +Start by creating a new wallet with a random seed phrase, using a service like [https://chaintool.tech/generateWallet/evmWallet](https://chaintool.tech/generateWallet/evmWallet) or [https://iancoleman.io/bip39/](https://iancoleman.io/bip39/). You can run these offline for better security. |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | +Once you have generated a new mnemonic, private key, and address, you can export these by clicking Download, or copy and paste them. |
| 15 | + |
| 16 | +**2. Delegate your node** |
| 17 | + |
| 18 | +Go to [Fuse testnet Nodes](https://console.fuse.io/nodes/testnet), connect your wallet containing your Fuse Node NFT, and delegate it to the wallet address you generated in the previous step. |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | +**3. Set up your VPS** |
| 23 | + |
| 24 | +There are lots of VPS providers to choose from, but you should ensure you select at least the minimum hardware requirements, and ideally more: |
| 25 | + |
| 26 | +**Minimum:** |
| 27 | + |
| 28 | +* CPU with 1+ cores |
| 29 | +* 2 GB RAM |
| 30 | +* 4 MBit/sec download speed |
| 31 | + |
| 32 | +**Recommended:** |
| 33 | + |
| 34 | +* Fast CPU with 2+ cores |
| 35 | +* 4 GB+ RAM |
| 36 | +* 8+ MBit/sec download speed |
| 37 | + |
| 38 | +This guide uses Hostinger, with a KVM 2 setup, which provides 2 vCPU cores. |
| 39 | + |
| 40 | + |
| 41 | + |
| 42 | +Select Ubuntu to run the Fuse client. |
| 43 | + |
| 44 | + |
| 45 | + |
| 46 | +After setup, go to the VPS Terminal. |
| 47 | + |
| 48 | + |
| 49 | + |
| 50 | +**4. Update System and Install Dependencies** |
| 51 | + |
| 52 | +Make sure everything is up to date by running the following code in the terminal: |
| 53 | + |
| 54 | +<CodeBlock language="Bash"> |
| 55 | + \# Update system packages |
| 56 | + |
| 57 | + apt-get update |
| 58 | + |
| 59 | + \# Install required dependencies including libssl1.1 |
| 60 | + |
| 61 | + apt-get install -y wget tar |
| 62 | + |
| 63 | + \# Install libssl1.1 (required by the binary) |
| 64 | + |
| 65 | + echo "deb [http://security.ubuntu.com/ubuntu](http://security.ubuntu.com/ubuntu) focal-security main" > /etc/apt/sources.list.d/focal-security.list |
| 66 | + |
| 67 | + apt-get update |
| 68 | + |
| 69 | + apt-get install -y libssl1.1 |
| 70 | +</CodeBlock> |
| 71 | + |
| 72 | +You should see a response like the following: |
| 73 | + |
| 74 | + |
| 75 | + |
| 76 | +**5. Create directory and download the Fuse Ember client** |
| 77 | + |
| 78 | +<CodeBlock language="Bash"> |
| 79 | + \# Create directory for the client |
| 80 | + |
| 81 | + mkdir -p \~/fuse-light && cd \~/fuse-light |
| 82 | + |
| 83 | + \# Download the pre-built binary |
| 84 | + |
| 85 | + wget [https://github.com/fuseio/avail-light/releases/download/v1.0.4/fuse-light-client-v1.0.4.tar.gz](https://github.com/fuseio/avail-light/releases/download/v1.0.4/fuse-light-client-v1.0.4.tar.gz) |
| 86 | + |
| 87 | + \# Extract the archive |
| 88 | + |
| 89 | + tar -xzf fuse-light-client-v1.0.4.tar.gz |
| 90 | + |
| 91 | + \# Check what files were extracted |
| 92 | + |
| 93 | + ls -la |
| 94 | +</CodeBlock> |
| 95 | + |
| 96 | +You should see a response as follows: |
| 97 | + |
| 98 | + |
| 99 | + |
| 100 | +**6. Create your configuration file** |
| 101 | + |
| 102 | +<CodeBlock language="Bash"> |
| 103 | + \# Create config file with only the required fields |
| 104 | + |
| 105 | + cat > config.yaml \<\< EOF |
| 106 | + |
| 107 | + sync\_start\_block = 1 |
| 108 | + |
| 109 | + genesis\_hash = "DEVTST" |
| 110 | + |
| 111 | + avail\_path = "avail\_path" |
| 112 | + |
| 113 | + avail\_secret\_key = "bottom drive obey lake curtain smoke basket hold race lonely fit walk//Alice" |
| 114 | + |
| 115 | + check\_nft\_interval=300 |
| 116 | + |
| 117 | + check\_nft\_endpoint="[https://monitoring.avail.fuse.io/check-nft](https://monitoring.avail.fuse.io/check-nft)" |
| 118 | + |
| 119 | + commission\_rate = "10" |
| 120 | + |
| 121 | + operator\_name = "SELF\_RUN" |
| 122 | + |
| 123 | + reward\_collector\_address = "0xYOUR\_REWARD\_ADDRESS" |
| 124 | + |
| 125 | + private\_key = "0xYOUR\_PRIVATE\_KEY" |
| 126 | + |
| 127 | + EOF |
| 128 | +</CodeBlock> |
| 129 | + |
| 130 | +For reward\_collector\_address you should set whatever address you want to receive rewards, while private\_key should be the private key from the wallet you created in step 1. Your NFT is delegated to this wallet. |
| 131 | + |
| 132 | +**7. Make Binary executable** |
| 133 | + |
| 134 | +<CodeBlock language="Bash"> |
| 135 | + \# Make the binary executable |
| 136 | + |
| 137 | + chmod +x avail-light-client |
| 138 | +</CodeBlock> |
| 139 | + |
| 140 | +**8. Create Systemd service** |
| 141 | + |
| 142 | +<CodeBlock language="Bash"> |
| 143 | + \# Create a systemd service file with the --network mainnet flag |
| 144 | + |
| 145 | + cat > /etc/systemd/system/fuse-light.service \<\< EOF |
| 146 | + |
| 147 | + \[Unit] |
| 148 | + |
| 149 | + Description=Fuse Light Client |
| 150 | + |
| 151 | + After=network.target |
| 152 | + |
| 153 | + \[Service] |
| 154 | + |
| 155 | + User=root |
| 156 | + |
| 157 | + WorkingDirectory=/root/fuse-light |
| 158 | + |
| 159 | + ExecStart=/root/fuse-light/avail-light-client --config config.yaml --network mainnet |
| 160 | + |
| 161 | + Restart=on-failure |
| 162 | + |
| 163 | + RestartSec=3 |
| 164 | + |
| 165 | + LimitNOFILE=65535 |
| 166 | + |
| 167 | + \[Install] |
| 168 | + |
| 169 | + WantedBy=multi-user.target |
| 170 | + |
| 171 | + EOF |
| 172 | +</CodeBlock> |
| 173 | + |
| 174 | +**9. Start and Enable the service** |
| 175 | + |
| 176 | +<CodeBlock language="Bash"> |
| 177 | + \# Reload systemd |
| 178 | + |
| 179 | + systemctl daemon-reload |
| 180 | + |
| 181 | + \# Enable and start the service |
| 182 | + |
| 183 | + systemctl enable fuse-light |
| 184 | + |
| 185 | + systemctl start fuse-light |
| 186 | + |
| 187 | + \# Check the status |
| 188 | + |
| 189 | + systemctl status fuse-light |
| 190 | +</CodeBlock> |
| 191 | + |
| 192 | +This should result in the following output: |
| 193 | + |
| 194 | + |
| 195 | + |
| 196 | +**10. Monitor the logs** |
| 197 | + |
| 198 | +Finally, you can monitor the node with the following command: |
| 199 | + |
| 200 | +<CodeBlock language="Bash"> |
| 201 | + \# View logs |
| 202 | + |
| 203 | + journalctl -u fuse-light -f |
| 204 | +</CodeBlock> |
| 205 | + |
| 206 | +That's it, you're all done! You can contact Support via Discord if you need more assistance. |
0 commit comments