ข้ามไปที่เนื้อหา

Mining Pearl บน Apple Silicon (และ CPU host อื่นๆ)

OpenJarvis สามารถขุดเชน Pearl บน Mac ที่ใช้ Apple Silicon (M1/M2/M3/M4) ด้วย provider cpu-pearl นี่คือ v1: การขุดด้วย CPU แบบแยกอิสระ เวิร์กโฟลว์ LLM ในเครื่องที่คุณใช้อยู่แล้ว (Ollama, MLX-LM, llama.cpp, vLLM) จะไม่ถูกแตะต้อง การขุดรันเป็น process แยก อยู่เบื้องหลัง

ความคาดหวังที่ตรงไปตรงมา

Hashrate บน CPU ของ Apple Silicon ต่ำกว่าที่ H100 ทำได้ด้วย vllm-miner ของ Pearl มาก กฎง่ายๆ คร่าวๆ (ขึ้นอยู่กับความยากของเครือข่าย):

  • M2 Max / M4 Max: ≪ 1 share ต่อวินาที ที่ความยากทั่วไปของ mainnet
  • H100 พร้อม vllm-miner: สูงกว่าอย่างมีนัยสำคัญ และงานขุดยังถูก amortize ไปกับการอนุมาน LLM จริงด้วย

หากคุณต้องการขุดเพื่อผลตอบแทน นี่ไม่ใช่เส้นทางนั้น หากคุณต้องการมีส่วนร่วมใน เครือข่ายด้วยฮาร์ดแวร์ที่คุณมีอยู่แล้ว โดยไม่ต้องซื้อฮาร์ดแวร์พิเศษ นี่คือเส้นทางนั้น

มี provider ทดลอง apple-mps-pearl สำหรับนักพัฒนา มันใช้ PyTorch MPS สำหรับ matmul ของ NoisyGEMM ในขณะที่การ hash transcript และการสร้าง proof ยังคงรัน บน CPU สิ่งนี้พิสูจน์ว่าเส้นทาง Apple-GPU สร้าง PlainProof ที่ validator ยอมรับได้ แต่ยังไม่ใช่เส้นทาง Metal kernel ประสิทธิภาพสูง

สิ่งที่ต้องมีก่อน

  • macOS arm64 (M1, M2, M3, M4) — หรือ Linux x86_64 / aarch64
  • Python 3.12 (brew install python@3.12 หรือใช้ uv venv --python 3.12)
  • Rust toolchain (brew install rust หรือ curl https://sh.rustup.rs -sSf | sh)
  • node pearld ของคุณเอง ที่กำลังรันอยู่ โดย RPC เข้าถึงได้ที่ http://localhost:44107
  • ที่อยู่ Pearl Taproot wallet จาก oyster (wallet CLI ของ Pearl)
  • พื้นที่ว่างดิสก์ ~1 GB สำหรับ clone source ของ Pearl และ build artifact

ติดตั้ง

# from your OpenJarvis repo
uv sync --extra mining-pearl-cpu

หาก wheel ของ Pearl ยังไม่มีบน PyPI (ยังเป็นเช่นนั้น ณ 2026-05-05) uv sync จะสำเร็จ แต่ไม่ได้ติดตั้งแพ็กเกจ Python ของ Pearl จริง ต้อง build/ติดตั้งจาก Pearl checkout ในเครื่องเอง:

cd /path/to/pearl/py-pearl-mining
maturin build --release
uv pip install target/wheels/py_pearl_mining-*.whl
uv pip install ../miner/miner-utils ../miner/pearl-gateway ../miner/miner-base

ตั้งค่า

สร้าง Pearl wallet และเริ่ม pearld ที่ sync แล้วแยกต่างหาก ตาม README ของ Pearl จากนั้นเขียน config การขุดของ OpenJarvis:

export PEARLD_RPC_PASSWORD="rpcpass"

jarvis mine init \
  --provider cpu-pearl \
  --wallet-address "<your-prl1...address>" \
  --pearld-rpc-url http://127.0.0.1:44107 \
  --pearld-rpc-user rpcuser \
  --pearld-rpc-password-env PEARLD_RPC_PASSWORD

บน Apple Silicon --provider auto จะเลือก apple-mps-pearl ให้ ใช้ --provider cpu-pearl สำหรับเส้นทาง CPU แบบระมัดระวัง เส้นทาง MPS เป็นแบบ ทดลองและปัจจุบันมีประโยชน์สำหรับการ validate/profiling ไม่ใช่รายได้

คำสั่งนี้จะเขียน:

[mining]
provider = "cpu-pearl"
wallet_address = "prl1..."
submit_target = "solo"
fee_bps = 0

[mining.extra]
pearld_rpc_url = "http://127.0.0.1:44107"
pearld_rpc_user = "rpcuser"
pearld_rpc_password_env = "PEARLD_RPC_PASSWORD"
gateway_host = "127.0.0.1"
gateway_port = 8337
metrics_port = 9109

รัน

jarvis mine doctor        # capability matrix
jarvis mine start         # launch gateway + miner-loop subprocesses
jarvis mine status        # check sidecar + gateway metrics
jarvis mine logs -n 120   # print recent logs
jarvis mine stop          # stop mining subprocesses

การอ่านผลลัพธ์ mine doctor

แต่ละแถวคือหนึ่งการตรวจสอบ ✓ หมายถึงผ่าน ✗ แสดงวิธีแก้ที่ทำได้

$ jarvis mine doctor
Hardware
  GPU vendor          apple                            ✓
  Apple chip          M2 Max                           ✓
Pearl install
  py-pearl-mining     0.1.0 (cp312-abi3-macos-arm64)   ✓
  miner-base          0.1.0                            ✓
  pearl-gateway       0.1.0                            ✓
Pearl node
  RPC                 http://localhost:44107           ✓
  Block height        442107 (synced)                  ✓
Wallet
  Address format      prl1q...                         ✓
Provider capability
  cpu-pearl           SUPPORTED  (calibrated 0.X share/h on M2 Max)
Notes
  - This is decoupled mining: your normal LLM inference is unaffected
  - Hashrate is far below H100 mining; see this doc above
  - MPS mining: available as experimental apple-mps-pearl
Session
  Sidecar             absent (not running)

ข้อจำกัด

  • v1 ยังไม่รองรับ Windows ตัวขุดแบบ pure-Rust ของ Pearl build บน Windows ได้ในทางทฤษฎี แต่เส้นทางติดตั้งข้ามแพลตฟอร์มยังไม่ผ่านการทดสอบ ใช้ WSL2 หากจำเป็นต้องใช้
  • ยังไม่เชื่อมโยงกับ inference v1 เป็น process แยก CPU ของคุณทำการขุด GPU ของคุณทำ inference ทั้งสองไม่แชร์งานกัน v2 จะเปลี่ยนสิ่งนี้
  • PyTorch-MPS ยังเป็นแบบทดลองเท่านั้น apple-mps-pearl ย้าย matmul ของ NoisyGEMM ไปที่ MPS แต่ยังต้อง readback กลับ CPU สำหรับการ hash transcript และการสร้าง proof ใช้เพื่อการ validate และ profiling ไม่ใช่เพื่อคาดหวังรายได้
  • ไม่มี pool แบบหลาย host รองรับเฉพาะการขุดเดี่ยว (solo mining) งาน pool เป็น spec แยกต่างหาก

การแก้ปัญหา

อาการ สาเหตุที่เป็นไปได้ วิธีแก้
mine doctor แจ้งว่า Pearl Python packages not installed ยังไม่ได้ build wheel รัน jarvis mine init
log ของ pearl-gateway แสดง connection refused ไปยัง http://localhost:44107 pearld ไม่ได้รันอยู่ เริ่ม pearld ตาม README ของ Pearl
mine status แสดง last_error: gateway metrics unreachable pearl-gateway crash ตรวจสอบ ~/.openjarvis/logs/mining/pearl-gateway.log
Build ล้มเหลวด้วย error: linker 'cc' not found ยังไม่ได้ติดตั้ง Xcode CLT xcode-select --install
maturin build แจ้งเตือนเกี่ยวกับ tikv-jemallocator macOS SDK เก่าเกินไป อัปเดต macOS / Xcode

สำหรับอะไรที่ไม่อยู่ในรายการนี้ เก็บ ~/.openjarvis/logs/mining/ แล้วเปิด issue ที่ https://github.com/open-jarvis/OpenJarvis/issues

สิ่งที่เปลี่ยนใน v2 / v3

  • v2: ปรับปรุงเส้นทาง apple-mps-pearl ปัจจุบัน แล้วอาจต่อเข้ากับ MLX-LM หรือ llama-cpp-python เพื่อให้ matmul ของ inference กลายเป็นงาน ขุดด้วย
  • v3 (เฉพาะถ้าประสิทธิภาพของ v2 ไม่เพียงพอ): Metal kernel เนทีฟในฐานะ contribution ต้นน้ำให้ Pearl ไม่มีการเปลี่ยนแปลงที่ผู้ใช้เห็นได้ นอกจาก hashrate ที่สูงขึ้น