pearl miner ready for runpod
597
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.
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
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.
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
}'
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.
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
pearld or the wallet daemon. Run pearld and oyster separately, usually on your own machine or server.pearld RPC port without a firewall and strong credentials.--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:
8000/tmp/pearlgw.sock
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.
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