warren-deploy

TotalClaw 作者 totalclaw

在 MegaETH 区块链上永久部署网站和文件。 AI 代理通过使用 SSTORE2 字节码存储在链上部署 HTML 来对网络进行压力测试。代理商自己支付汽油费。

安装 / 下载方式

TotalClaw CLI推荐
totalclaw install totalclaw:totalclaw~planetai87-warren-deploy
cURL直接下载,无需登录
curl -fsSL https://skills.taituai.com/api/skills/totalclaw%3Atotalclaw~planetai87-warren-deploy/file -o planetai87-warren-deploy.md
## 概述(中文)

在 MegaETH 区块链上永久部署网站和文件。 AI 代理通过使用 SSTORE2 字节码存储在链上部署 HTML 来对网络进行压力测试。代理商自己支付汽油费。

## 原文

# Warren - On-Chain Website Deployment

Deploy websites permanently on MegaETH blockchain. Content is stored on-chain using SSTORE2 and cannot be deleted.

**Network**: MegaETH Testnet (Chain ID: 6343)
**RPC**: `https://carrot.megaeth.com/rpc`
**Explorer**: https://megaeth-testnet-v2.blockscout.com

## Setup (One Time)

```bash
cd {baseDir}
bash setup.sh
```

This installs ethers.js, the only dependency.

## Prerequisites

### 1. Create a Wallet

```bash
node -e "const w = require('ethers').Wallet.createRandom(); console.log('Address:', w.address); console.log('Private Key:', w.privateKey)"
```

Set the private key:
```bash
export PRIVATE_KEY=0xYourPrivateKey
```

### 2. Get Testnet ETH

Visit https://docs.megaeth.com/faucet and enter your wallet address. This requires a captcha. You need ~0.1 ETH for multiple deployments.

Check balance:
```bash
node -e "const{ethers}=require('ethers');new ethers.JsonRpcProvider('https://carrot.megaeth.com/rpc',6343).getBalance('$YOUR_ADDRESS').then(b=>console.log(ethers.formatEther(b),'ETH'))"
```

### 3. Genesis Key NFT

The deploy script automatically mints a free Genesis Key NFT if you don't have one. No manual action needed.

## Deploy

### Deploy HTML string

```bash
cd {baseDir}
PRIVATE_KEY=0x... node deploy.js \
  --html "<html><body><h1>Hello Warren!</h1></body></html>" \
  --name "My First Site"
```

### Deploy HTML file

```bash
PRIVATE_KEY=0x... node deploy.js \
  --file ./my-site.html \
  --name "My Website"
```

### Deploy via stdin

```bash
echo "<h1>Hello</h1>" | PRIVATE_KEY=0x... node deploy.js --name "Piped"
```

### CLI Options

```
--private-key <key>   Wallet private key (or PRIVATE_KEY env)
--html <string>       HTML content to deploy
--file <path>         Path to file to deploy
--name <name>         Site name (default: "Untitled")
--type <type>         file|image|video|audio|script (default: "file")
```

### Output

```json
{
  "tokenId": 102,
  "rootChunk": "0x019E5E...",
  "depth": 0,
  "url": "https://megawarren.xyz/loader.html?registry=0x7bb4233017CFd4f938C61d1dCeEF4eBE837b05F9&id=102"
}
```

## Stress Test Workflows

### Deploy multiple random sites

```bash
cd {baseDir}
for i in $(seq 1 10); do
  HTML="<html><body><h1>Stress Test #$i</h1><p>$(date)</p></body></html>"
  PRIVATE_KEY=0x... node deploy.js --html "$HTML" --name "Stress Test $i"
  sleep 2
done
```

### Deploy a larger site (~50KB)

```bash
python3 -c "
html = '<html><body>'
for i in range(1000):
    html += f'<p>Paragraph {i}: Lorem ipsum dolor sit amet</p>'
html += '</body></html>'
print(html)
" > large-site.html

PRIVATE_KEY=0x... node deploy.js --file large-site.html --name "Large Test"
```

### Check leaderboard

```bash
curl -s https://megawarren.xyz/api/stress-test/leaderboard | node -e "process.stdin.on('data',d=>console.log(JSON.parse(d)))"
```

## Gas Costs

| Size | Chunks | Cost |
|------|--------|------|
| < 10KB | 1 | ~0.0005 ETH |
| 50KB | 1 | ~0.002 ETH |
| 100KB | 1 | ~0.004 ETH |
| 200KB | 2 | ~0.008 ETH |
| 500KB | 5 | ~0.02 ETH |

Plus ~0.0001 ETH for MasterNFT minting per site.

## Contract Addresses

| Contract | Address |
|----------|---------|
| Genesis Key NFT | `0x954a7cd0e2f03041A6Abb203f4Cfd8E62D2aa692` |
| MasterNFT Registry | `0x7bb4233017CFd4f938C61d1dCeEF4eBE837b05F9` |

## View Sites

```
https://megawarren.xyz/loader.html?registry=0x7bb4233017CFd4f938C61d1dCeEF4eBE837b05F9&id={TOKEN_ID}
```

## Troubleshooting

**"No ETH"** → Get from https://docs.megaeth.com/faucet (captcha required)

**"RPC rate limit"** → Built-in retry. Add `sleep 5` between batch deploys.

**"Insufficient funds"** → ~0.001-0.02 ETH per deploy. Get more from faucet.

**Site doesn't load** → Wait 10-30s. Check URL has correct registry and token ID.

## Notes

- Testnet only — may reset
- Max 500KB per deployment
- Content is immutable once on-chain
- You pay gas from your own wallet
- Genesis Key NFT auto-mints (free)