# Raspberry Pi

Turn your Raspberry Pi into a powerful contributor to the decentralized web with Webhash. This lightweight setup enables censorship-resistant website hosting — right from your desk.

***

#### ✅ Prerequisites

Ensure you have:

* **Raspberry Pi 4 or 5** with at least **4GB RAM**
* An **external SSD** (recommended)
* **Raspberry Pi OS** (64-bit recommended)
* Static public IP or NAT forwarding configured
* A **new wallet** funded with **Sepolia ETH on Base**

***

#### 🪙 Step 1: Create a New Wallet & Fund It

1. Create a new wallet using MetaMask or any EVM-compatible wallet
2. Export the private key (⚠️ Do NOT use your main wallet)\
   📺 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund the wallet with Sepolia ETH on Base using:\
   👉 [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 💻 Step 2: Flash Raspberry Pi OS & Update

1. Use **Raspberry Pi Imager** to flash **Raspberry Pi OS (64-bit)**
2. Boot the Pi, open terminal, and run:

```bash
sudo apt update && sudo apt upgrade -y
```

***

#### ⚙️ Step 3: Run the Webhash Node Setup Script

Run this command:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 🛠 During Setup – You Will Be Prompted For:

1️⃣  WebSocket url for **Base Sepolia**\
2️⃣  WebSocket url for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### **3️⃣** Enter Your Email for Updates

After entering your Base Sepolia WebSocket URL & Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

***

**4️⃣ Storage Directory Selection**

You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` if you want to use a custome path:
  * Enter the mounted path, e.g., `/mnt/webhash`
* Type `n` to use the **default path**:\
  `/root/.webhash-node-data`

📌 Ensure the SSD is mounted before choosing `y`

***

#### 🌐 Step 4: Configure NAT & Static IP

Access your router settings and do the following:

* **Forward TCP/UDP port 4001** to your Pi’s local IP
* Assign a **static IP** to your Raspberry Pi in the router settings\
  (or configure static IP on the Pi directly)

***

#### ✅ Step 5: Confirm Node Registration Output

Once the setup is complete, your terminal should show:

```
✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 If you see **“Node registered successfully,”** your Raspberry Pi node is officially live and contributing to Webhash!

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

**⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# Home PC

Running a Webhash Node on your home PC allows you to contribute to decentralized website hosting and earn rewards. This guide provides a step-by-step process to set up and run a node on your personal computer.

***

#### ✅ Step 1: System Requirements

Before running the setup, ensure your system meets the following minimum requirements:

* **Operating System:** Ubuntu, Debian, RHEL, CentOS, Fedora
* **Admin Access:** You need root/sudo privileges
* **Internet Connection:** Required for downloading dependencies & connecting to Webhash
* **Hardware Requirements:**
  * **CPU:** At least 2 vCPUs
  * **RAM:** 4GB minimum
  * **Storage:** 100GB+ (SSD recommended)

***

#### 🔐 Step 2: Create a New Wallet & Fund It

Before setting up your node, you must create a new wallet and fund it with Sepolia ETH on Base for node registration.

1. Generate a new wallet using MetaMask or any EVM-compatible wallet.
2. Export the **private key** (⚠️ DO NOT use your primary wallet).

   📺 [Watch this video](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s) to learn how to export your private key securely.
3. Fund the wallet with Sepolia ETH on Base using the official faucet:\
   👉 [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🔌 Step 3:  Get Your WebSocket URLs (Base Sepolia + Ethereum Mainnet)

Webhash requires **two WebSocket URLs**:\
1️⃣ One for **Base Sepolia**\
2️⃣ One for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### ⚙️ Step 4: Run the Setup Script

Open your terminal and run:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 🛠️ Setup Prompts

During the setup process, you’ll be prompted for the following:

1️⃣ **Enter Base Sepolia WebSocket URL**\
Paste the wss\:// URL you obtained from Alchemy or QuickNode.

2️⃣ **Enter Ethereum Mainnet WebSocket URL**\
Paste the wss\:// URL from the provider you chose.

**3️⃣** Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

4️⃣ **Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

***

#### ✅ Step 5: Confirm Node Registration

After setup is complete, your terminal should show output like this:

```
✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 If you see **"Node registered successfully"**, your setup is complete and your node is now live and contributing to the Webhash network.

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

**⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# AWS - Amazon Cloud Service

Running a Webhash Node on AWS allows you to contribute to decentralized website hosting using reliable cloud infrastructure — and earn rewards for uptime and content storage.

***

#### ✅ Prerequisites

Make sure you have the following before getting started:

* AWS account with access to EC2
* Instance type: `t3.medium` or `t3.large`
* 100 GB EBS storage (attach during setup)
* Elastic IP (for static public IP)
* New Wallet (for node registration and rewards)

***

#### 🪙 Step 1: Create a Wallet & Fund It

This wallet will be used for node registration and earning Webhash rewards.

1. Create a wallet using MetaMask or any EVM-compatible wallet
2. Export the **private key** (⚠️ **don’t use your primary wallet**)

   🎥 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund the wallet with **Sepolia ETH on Base** via the faucet:\
   👉 [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🔌 Step 2: Get Your WebSocket RPC URLs

Webhash requires **two WebSocket URLs**:\
1️⃣ One for **Base Sepolia**\
2️⃣ One for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### 💻 Step 3: Launch EC2 Instance

1. Go to AWS Console → EC2 → Launch Instance
2. Select **Ubuntu 22.04 LTS**
3. Choose instance type: `t3.medium` or `t3.large`
4. Attach a **100 GB EBS volume**
5. Under **Security Group Settings**, allow:
   * TCP/UDP on port **4001** (for IPFS swarm)

***

#### 🌐 Step 4: Attach an Elastic IP

1. Go to **Elastic IPs** under EC2
2. Allocate a new IP
3. Attach it to your EC2 instance\
   ✅ This ensures your node has a **static public IP**

***

#### ⚙️ Step 5: Run the Webhash Node Setup Script

From your EC2 dashboard:

1. Go to your instance → Click **Connect** → Use browser-based terminal
2. Run the following command:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 📥 Setup Prompts

You’ll be prompted for:

1️⃣ **Base Sepolia WebSocket URL**\
Paste the `wss://` URL from Alchemy or QuickNode

2️⃣ **Ethereum Mainnet WebSocket URL**\
Paste the `wss://` URL for Ethereum Mainnet&#x20;

**3️⃣** Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

4️⃣ **Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

***

#### ✅ Step 6: Confirm Node Registration Output

When setup finishes, your terminal should show something like this:

```
✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 **If you see "Node registered successfully" — your setup is complete and your node is live!**

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

**⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# GCP - Google Cloud

Run a Webhash Node on GCP to contribute to the decentralized web while benefiting from scalable infrastructure and earning token incentives for uptime and storage.

***

#### ✅ Prerequisites

Make sure you have:

* GCP account with billing enabled
* Instance type: `e2-standard-2` or `n2-standard-2`
* 100 GB Persistent Disk
* Static external IP
* A new EVM-compatible wallet (for node registration and rewards)

***

#### 🪙 Step 1: Create a New Wallet & Fund It

1. Create a wallet using MetaMask or any EVM-compatible wallet
2. Export the **private key**\
   ⚠️ **Never use your main wallet for node operation**

   📺 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund it with **Sepolia ETH on Base** using the Alchemy faucet:\
   👉  [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🔌 Step 2: Get Your WebSocket URLs

Webhash requires **two WebSocket URLs**:\
1️⃣ One for **Base Sepolia**\
2️⃣ One for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### 🖥 Step 3: Launch a VM Instance on GCP

1. Go to Google Cloud Console → Compute Engine → Create VM
2. OS: **Ubuntu 22.04 LTS**
3. Machine type: `e2-standard-2` or `n2-standard-2`
4. Add a **100 GB Persistent Disk**

***

#### 🔐 Step 4: Configure Firewall Rules

1. Navigate to **VPC Network → Firewall**
2. Create a new rule:
   * Allow **TCP/UDP** on port **4001**
   * Apply rule to your VM instance

***

#### 🌍 Step 5: Assign a Static IP

1. Go to **VPC Network → External IP Addresses**
2. Reserve a new static IP
3. Assign it to your VM instance

***

#### ⚙️ Step 6: Run the Setup Script

SSH into your VM instance and run:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 📥 Setup Prompts

You’ll be prompted for:

1️⃣ **Base Sepolia WebSocket URL**\
Paste your `wss://` URL from Alchemy or QuickNode

2️⃣ **Ethereum Mainnet WebSocket URL**\
Paste the `wss://` URL for Mainnet (for ENS integration)

**3️⃣** Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

4️⃣ **Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

***

#### ✅ Step 7: Confirm Node Registration Output

Once setup completes, your terminal should show:

```
vbnetCopyEdit✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 If you see **“Node registered successfully”**, your Webhash node is live!

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

#### **⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# Vultr

Run a Webhash Node on Vultr’s High-Frequency Compute to support decentralized hosting while earning rewards — optimized for performance and ease of setup.

***

#### ✅ Prerequisites

Ensure you have the following:

* Vultr account
* Instance type: **High-Frequency Compute** (2 vCPUs, 4GB RAM, 100GB SSD)
* Static IP (automatically assigned by Vultr)
* A new EVM-compatible wallet (for registration & rewards)

***

#### 🪙 Step 1: Create a New Wallet & Fund It

1. Create a wallet using MetaMask or another EVM-compatible wallet
2. Export the **private key**\
   ⚠️ **Do NOT use your main wallet**

   📺 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund it with **Sepolia ETH on Base** using the Alchemy faucet:\
   👉  [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🧠 Step 2: Get Two WebSocket URLs

Webhash requires **two WebSocket URLs**:\
1️⃣ One for **Base Sepolia**\
2️⃣ One for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### ⚙️ Step 3: Deploy a Vultr Instance

1. Go to **Vultr Dashboard** → Deploy New Instance
2. Choose:
   * Server type: **Cloud Compute** → **High-Frequency**
   * OS: **Ubuntu 22.04 LTS (64-bit)**
   * Plan: **2 vCPUs, 4GB RAM, 100GB SSD**
3. Deploy your instance

***

#### 🌐 Step 4: Configure Firewall Rules

1. In your instance's **Firewall tab**:
   * Create a new firewall group
   * Allow **TCP/UDP on port 4001**
   * Assign it to your node instance

***

#### 🧪 Step 5: Run the Webhash Node Setup Script

1. SSH into the instance using Vultr’s dashboard or terminal
2. Run the setup script:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 📥 Setup Prompts

During installation, you’ll be prompted to:

1️⃣ **Enter Base Sepolia WebSocket URL**\
Paste your `wss://` URL from Alchemy or QuickNode

2️⃣ **Enter Ethereum Mainnet WebSocket URL**\
Paste your `wss://` URL&#x20;

**3️⃣** Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

4️⃣ **Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

***

#### ✅ Step 6: Confirm Node Registration Output

Once setup completes, look for this output:

```
✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 If you see **“Node registered successfully”**, your Vultr node is live and ready!

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

**⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# DigitalOcean

Run a Webhash Node on a premium DigitalOcean Droplet and contribute to the future of decentralized, censorship-resistant web hosting — while earning rewards for uptime and storage.

***

#### ✅ Prerequisites

Make sure you have:

* A **DigitalOcean** account
* Droplet type: **Premium AMD** (2 vCPUs, 4GB RAM, 100GB SSD)
* **Floating IP** for static public access
* A **new EVM-compatible wallet** (with Sepolia ETH on Base) for node registration

***

#### 🪙 Step 1: Create a New Wallet & Fund It

1. Create a wallet using MetaMask or any EVM-compatible wallet
2. Export your private key (⚠️ Don’t use your main wallet)\
   📺 [Watch: How to Export Private Key from MetaMask](https://www.youtube.com/watch?v=ke9j2wuYhPE\&t=96s)
3. Fund your wallet with **Sepolia ETH on Base** using the faucet:\
   👉  [Base Sepolia Faucet – Alchemy](https://www.alchemy.com/faucets/base-sepolia)

***

#### 🧠 Step 2: Get Your WebSocket URLs (Base Sepolia + Ethereum Mainnet)

Webhash requires **two WebSocket URLs**:\
1️⃣ One for **Base Sepolia**\
2️⃣ One for **Ethereum Mainnet**&#x20;

***

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

#### 🖥️ Step 3: Deploy a Droplet on DigitalOcean

1. Log in to DigitalOcean → **Create Droplet**
2. Select **Ubuntu 22.04 LTS** as your OS
3. Choose:
   * Plan: **Premium AMD**
   * Specs: **2 vCPUs**, **4GB RAM**, **100GB SSD**
4. Launch the droplet

***

#### 🔐 Step 4: Configure Firewall & Networking

1. Open the droplet's settings → **Cloud Firewalls**
2. Allow **TCP/UDP traffic on port 4001**
3. You can also run the following inside your droplet:

```bash
sudo ufw allow 4001/tcp
sudo ufw allow 4001/udp
sudo ufw enable
```

***

#### 🌐 Step 5: Assign a Floating IP

1. Go to **Networking → Floating IPs**
2. Reserve and assign a **Floating IP** to your droplet\
   📌 This ensures your public IP remains static.

***

#### 🧪 Step 6: Run the Webhash Node Setup Script

1. SSH into your droplet
2. Run the setup command:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

#### 🛠️ During Setup – Required Inputs

You will be prompted for:

1️⃣ **WebSocket URL – Base Sepolia**\
Paste the `wss://` endpoint from Alchemy or QuickNode

2️⃣ **WebSocket URL – Ethereum Mainnet**\
Paste your second `wss://` URL&#x20;

**3️⃣** Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

4️⃣ **Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

***

#### ✅ Step 7: Confirm Node Registration Output

After setup, you should see:

```
✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

📌 If you see **“Node registered successfully”**, your Webhash node is now live and contributing to decentralized hosting.

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

**⚠️ Troubleshooting & Support**

If you run into any issues while setting up your **Webhash Node**, we’re here to help!

📌 Join our Discord and create a support ticket – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# Technical Specifications

The WebHash Hosting Node is designed for ultra-low barrier to entry, enabling anyone to participate in decentralized website hosting, including home users, developers, and enthusiasts with minimal hardware.\
✅ Runs on low-cost hardware (Raspberry Pi, Linux servers, home PCs).\
✅ Simple one-command installation (No technical expertise required).\
✅ Fully automated setup & updates (No manual intervention).

WebHash nodes store, serve, and verify website content on IPFS, ensuring permanent, censorship-resistant hosting with no reliance on centralized pinning services.

***

#### **1. Node Requirements**

**A. Minimum Hardware Requirements**

The WebHash Node Software is lightweight, allowing low-power devices like Raspberry Pi 5 to participate.

| Component      | Minimum                          | Recommended            |
| -------------- | -------------------------------- | ---------------------- |
| CPU            | Quad-Core ARM64 / x86\_64        | 8-Core ARM64 / x86\_64 |
| RAM            | 4 GB                             | 8 GB+                  |
| Storage        | 100 GB SSD                       | 200 GB SSD+            |
| Internet Speed | 50 Mb                            | 100 Mbps+              |
| OS             | Linux (Ubuntu, Debian, Raspbian) | Latest LTS version     |

✅ Any device meeting these specs can run a WebHash node, including low-cost Raspberry Pi setups.

***

#### **2. Super Simple Installation (One-Command Setup)**

To simplify node deployment, WebHash provides a single command to install everything, including IPFS, dependencies, and WebHash software.

**A. Install & Run a WebHash Node**

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

✅ Automatically installs:

* IPFS (Kubo)
* WebHash Node Client
* WebHash Auto-Updater
* Required dependencies

After installation, the node starts automatically and begins participating in storage.

**B. Check Node Status**

```bash
sudo docker ps
```

Displays all running containers. You should see `node`, `pinner`, and `telegraf` in running state.

***

#### **3. Node Functions & Responsibilities**

**A. Storing Website Data**

Each node:\
✔ Pins website data using IPFS.\
✔ Participates in Selective Replication to store only relevant content.\
✔ Stores content based on available disk space.

**B. Serving Website Data**

✔ Provides fast, decentralized access to stored content.\
✔ Uses IPFS Distributed Hash Table (DHT) for peer discovery.\
✔ Automatically caches frequently accessed data for better performance.

**C. Automated Proof of Storage**

**Coming soon** in mainnet.


# Node update for existing node operators - April 2025

If you've already set up a Webhash node, please rerun the updated setup script to apply **three important changes**:

1. Provide your own **Base Sepolia WebSocket URL.**
2. Provide your own **Ethereum Mainnet WebSocket URL.**
3. Choose a **custom storage directory.**

***

#### 🛠 Step-by-Step for Existing Users

**1️⃣ Rerun the Setup Script**

Open your terminal and run:

```bash
curl -fsSL https://raw.githubusercontent.com/WebHash-eth/hash-node-setup/refs/heads/main/scripts/setup.sh > setup.sh && chmod +x setup.sh && ./setup.sh
```

***

**2️⃣ Enter Base Sepolia WebSocket URL & Ethereum Mainet WebSocket URL**

**🔹 Option A: Using Alchemy (Recommended)**

You only need **one app** to get **both URLs**:

1. Go to the Alchemy Dashboard and log in
2. Click **"Create App"**
   * **Name**: Webhash Node
   * **Chain**: Base
   * **Network**: Base Sepolia
3. After the app is created, click **"Configure"** (top right)
4. Under **"Add Chains"**, enable **Ethereum → Mainnet**
5. Now go back to the app dashboard:
   * Click the **"Network"** tab
   * Copy the WebSocket URL for **Base Sepolia**
   * Then switch to **Ethereum Mainnet** and copy its WebSocket URL

✅ Examples:

* **Base Sepolia**: `wss://base-sepolia.g.alchemy.com/v2/your-api-key`
* **Ethereum Mainnet**: `wss://eth-mainnet.g.alchemy.com/v2/your-api-key`

📌 *Ensure both URLs start with `wss://`. HTTP URLs are not supported.*

***

**🔹 Option B: Using QuickNode**

1. Go to [QuickNode](https://www.quicknode.com)
2. Create **two endpoints**:
   * One for **Base Sepolia**
   * One for **Ethereum Mainnet**
3. Go to each endpoint’s dashboard
4. Copy the **WebSocket URL** from the **WebSockets tab**

✅ Examples:

* **Base Sepolia**: `wss://your-node.base-sepolia.quiknode.pro/your-key/`
* **Ethereum Mainnet**: `wss://your-node.ethereum.quiknode.pro/your-key/`

📌 *Again, make sure to copy the `wss://` URLs only. HTTP endpoints won't work.*

***

4️⃣  Enter Your Email for Updates

After entering your Ethereum Mainnet WebSocket URL, you’ll be prompted to enter your email:\
**Please enter your email address:**\
This helps us send you important updates, community news, and reward announcements related to your node activity.\
📌 *Your email is stored securely and never shared.*

**5️⃣  Select Storage Directory** You'll see this prompt:

```
Do you want to use a separate disk for storage? (y/n)
```

* Type `y` to specify a custom directory (e.g., `/mnt/webhash`)
* Type `n` to use the default path: `/root/.webhash-node-data`

The script will continue automatically after your input.

✅ Example Output:

```
✓ Using default path: /root/.webhash-node-data
Moving IPFS data to /root/.webhash-node-data/ipfs
Existing IPFS dir: /var/lib/docker/volumes/webhash-node_node_data/_data
Moving export data to /root/.webhash-node-data/export
Existing export dir: /var/lib/docker/volumes/webhash-node_node_export/_data
Starting node with public IP: xxx.xxx.xxx.xxx...
```

***

&#x20;**6️⃣  Confirm Node Is Running**

After setup completes, your terminal will show:

```
✔ Container node       Healthy
✔ Container pinner     Started
Waiting for node container to be ready...
Configuring node...
Node started with peer ID: 12D3KooW...
Registering node with peer ID: 12D3KooW...
Node registered successfully with peer ID: 12D3KooW...
```

✅ If you see **“Node registered successfully”**, your node is running perfectly!

***

**🧹 Optional: Clean Up Old Docker Volumes**

Free up space by removing legacy volumes **after confirming** your new setup is working:

```bash
sudo docker volume rm webhash-node_node_data
sudo docker volume rm webhash-node_node_export
```

⚠️ **Only perform this cleanup after verifying your node is healthy and registered.**

***

#### 📢 Final Step – Join the Webhash Community

Once your node is successfully registered, you’ll see a message prompting you to join our official Discord and Telegram channels.\
👉 **Join our**[ Discord](https://discord.gg/zUpBGJ4uh5) **to claim your exclusive “🥷Node Ninja” role** and connect with other node operators!

Stay connected, get support, and earn early contributor perks by being part of the Webhash community.

***

**⚠️ Troubleshooting & Support**

If you run into any issues while doing this, we’re here to help!

📌 Create a support ticket on discord – Our team will assist you instantly.

🔗 [Join Webhash Discord](https://discord.gg/zUpBGJ4uh5)&#x20;


# What happens if my device (PC/Raspberry Pi/Server) shuts down?

If your device shuts down due to a **power outage or manual restart**, your Webhash Node will **automatically restart** when the system powers back on. No manual intervention is required.


# What happens if my internet gets disconnected?

If your internet disconnects temporarily, your node will attempt to **automatically reconnect** once the connection is restored. However, during the downtime, your node won’t be able to serve or retrieve data. If the disconnection lasts too long, it may impact uptime-based rewards. Ensure a stable internet connection for optimal performance.


# How can I check if my Webhash Node is running?

To verify if your node is running, open your terminal and execute the following command:

```
sudo docker ps
```

You should see an output displaying **three containers** in a **running** state:

* **node** (Core Webhash Node)
* **pinner** (Handles data persistence)
* **telegraf** (Monitors node performance)

If all three are running, your node is fully operational. If any container is missing or stopped, let us know in Discord for assistance.


