# 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;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://node-setup.webhash.com/gcp-google-cloud.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
