Sign inSign up

freebyte/vllm_miner

By freebyte

•Updated 5 months ago

pearl miner ready for runpod

Image
Networking
Machine learning & AI
Data science
0

597

freebyte/vllm_miner repository overview

Use this as the Docker Hub repository overview / README for your image repo.

# Pearl vLLM Miner for RunPod

Docker image for running a Pearl AI vLLM miner on GPU cloud providers such as RunPod.

This image is based on the Pearl vLLM miner stack and is intended to serve Pearl-compatible models through vLLM while connecting to a remote `pearld` full node through `pearl-gateway`.

Tested with:

- `pearl-ai/Llama-3.3-70B-Instruct-pearl`
- RunPod H100 80GB
- CUDA 12.9 image stack
- vLLM Pearl miner plugin
- External `pearld` node + local wallet

## Image purpose

This image packages the pieces needed to run the Pearl miner on RunPod:

- `pearl-gateway`
- vLLM server
- Pearl vLLM mining plugin
- CUDA toolkit / `nvcc`
- Linux build toolchain required by DeepGEMM JIT
- Patched startup behavior for RunPod

The original miner image waited on a `/metrics` endpoint before starting vLLM. In this runtime image, the entrypoint is patched to start `pearl-gateway`, wait briefly, and then start `vllm serve`.

## Example RunPod command

For a single H100 80GB, the known working command is:

```bash
pearl-ai/Llama-3.3-70B-Instruct-pearl \
  --host 0.0.0.0 \
  --port 8000 \
  --enforce-eager \
  --max-model-len 8192 \
  --no-enable-prefix-caching

The --max-model-len 8192 setting is important for 1× H100 80GB. The 70B Pearl model fits, but leaves limited KV cache memory. Higher context lengths may fail during vLLM startup.

⁠Required environment variables

Set these in RunPod or your container runtime:

PEARLD_RPC_URL=http://YOUR_PEARLD_HOST:44107
PEARLD_RPC_USER=your_rpc_user
PEARLD_RPC_PASSWORD=your_rpc_password
PEARLD_MINING_ADDRESS=your_prl_address
HF_TOKEN=your_huggingface_token
HF_HOME=/workspace/.cache/huggingface

Recommended RunPod persistent volume path:

/workspace

Expose HTTP port:

8000

⁠Test the API

After startup completes, test:

curl -i http://127.0.0.1:8000/v1/models

From outside RunPod:

curl -i https://YOUR_POD_ID-8000.proxy.runpod.net/v1/models

Expected result: HTTP 200 with the served model listed.

⁠Example chat request

curl https://YOUR_POD_ID-8000.proxy.runpod.net/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pearl-ai/Llama-3.3-70B-Instruct-pearl",
    "messages": [
      {"role": "user", "content": "Say hello in one short sentence."}
    ],
    "max_tokens": 32
  }'

⁠Mining load example

For a prefill-heavy mining workload on 1× H100:

nohup env \
  PEARL_WORKERS=2 \
  PEARL_MAX_TOKENS=3 \
  PEARL_PROMPT_WORDS=1400 \
  python3 /workspace/pearl_mine_load.py \
  > /workspace/pearl_mine_load.log 2>&1 &

This workload is intended to keep requests long-prompt / low-generation, which is more suitable for Pearl mining than ordinary chat-style generation.

⁠Useful monitoring commands

nvidia-smi
curl -s http://127.0.0.1:8000/metrics

Search logs for mining-related events:

grep -iE "Block found|Submitted|accepted|orphan|proof|height" /workspace/*.log 2>/dev/null

⁠Notes

  • This image does not include pearld or the wallet daemon. Run pearld and oyster separately, usually on your own machine or server.
  • Do not expose your pearld RPC port without a firewall and strong credentials.
  • Do not bake RPC passwords, wallet seeds, or Hugging Face tokens into the image.
  • Rotate your RPC password if it appears in logs.
  • Rewards are probabilistic. Successful inference requests do not guarantee immediate rewards.

⁠Known working single-H100 settings

--enforce-eager
--max-model-len 8192
--no-enable-prefix-caching

Recommended mining load:

PEARL_WORKERS=2
PEARL_MAX_TOKENS=3
PEARL_PROMPT_WORDS=1400

Observed stable behavior:

  • vLLM API serves on port 8000
  • Pearl gateway connects through /tmp/pearlgw.sock
  • GPU utilization reaches 100%
  • Prompt throughput around ~5k prompt tokens/sec on 1× H100

A short Docker Hub description could be:

```text
RunPod-ready Pearl vLLM miner image with patched entrypoint, CUDA nvcc/build tools, DeepGEMM JIT support, and working H100 configuration for pearl-ai/Llama-3.3-70B-Instruct-pearl.

Tag summary

Content type

Image

Digest

sha256:9d33217f4…

Size

10.1 GB

Last updated

5 months ago

docker pull freebyte/vllm_miner:pearl-vllm-cu129-devel-ssh