Pearl
Blockchain / Build and Test
Integration Tests CI
Miner CI
Miner GPU CI
Desktop Wallet CI/CD
Plonky2 Tests
Rust CI
ISC License
Pearl은 Proof-of-Useful-Work 프로토콜을 기반으로 하는 L1 블록체인이며, 마이닝은 임의 행렬 곱셈(arbitrary matrix multiplication)의 부산물로 수행됩니다 (본 논문에서 제안됨: https://arxiv.org/abs/2504.09971).
이 모노레포지토리(monorepo)에는 풀 노드(full node), 지갑(wallet), SPV 라이트 클라이언트(SPV light client), ZK 증명 시스템, vLLM 마이너 및 지원 도구들이 포함되어 있습니다.
Repository Layout
| Directory | Description |
|---|
node/ | pearld — Pearl Protocol의 참조 구현(full node) |
| ... | |
설치 (사전 빌드 바이너리)
macOS / Linux:
curl -fsSL https://raw.githubusercontent.com/pearl-research-labs/pearl/master/install.sh | sh
Windows:
irm https://raw.githubusercontent.com/pearl-research-labs/pearl/master/install.ps1 | iex
pearld, prlctl, oyster, 그리고 oystercli를 설치하며, 이들은 로컬호스트 전용 메인넷 기본값과 공유 RPC 자격 증명(oyster는 기본적으로 SPV 사용)을 가집니다. 바이너리는 macOS/Linux에서는 ${XDG_BIN_HOME:-$HOME/.local/bin}에, Windows에서는 %LOCALAPPDATA%\Pearl\bin에 저장됩니다.
| Tool | Linux | macOS | Windows |
|---|
| pearld | ~/.pearld/pearld.conf | ~/Library/Application Support/Pearld/pearld.conf | %LOCALAPPDATA%\Pearld\pearld.conf |
| ... | | | |
Pin a version or install directory with --version / --bin-dir (또는 Windows의 경우 -Version / -BinDir). 업그레이드, 제거 및 기타 세부 정보는 node/docs/installation.md를 참조하세요. 소스에서 빌드하려면 아래 Building을 참고하세요. | | | |
필수 조건 (Prerequisites)
빌드 (Building)
task build
task build:blockchain
task build:miner
...
노드 및 vLLM 마이너 실행 (Running a Node and vLLM Miner)
설정 흐름: 빌드(build) > 지갑 생성(create wallet) > 노드 시작(start node) > vLLM 마이너 시작(start vLLM miner).
1. 지갑을 생성하고 채굴 주소 얻기 (Create a wallet and get a mining address)
대화형 방식 — oystercli는 oyster를 자동으로 구성하고, 지갑 생성, 데몬 시작 및 주소 생성(Receive 메뉴) 과정을 안내합니다. 릴리스 설치 프로그램으로 사용하면 이미 PATH에 포함되어 있습니다 (oystercli); 소스 빌드 시에는 다음을 따르세요:
또는 수동으로:
./bin/oyster -u rpcuser -P rpcpass --create
프레이즈를 설정하고 시드(seed)를 기록하라는 안내에 따라 진행한 후, 지갑을 시작하고 Taproot 채굴 주소를 생성합니다:
./bin/oyster -u rpcuser -P rpcpass &
./bin/prlctl -u rpcuser -P rpcpass -s https://localhost:44207 getnewaddress
2. 노드 시작 (Start the node)
./bin/pearld \
--rpcuser=rpcuser \
--rpcpass=rpcpass \
...
주요 플래그: 메인넷이 아닌 경우 --testnet / --simnet, TLS를 비활성화하려면 --notls, 상세 로그가 필요하면 --debuglevel=debug. 모든 옵션은 node/sample-pearld.conf를 참조하세요.
| 네트워크 | RPC | P2P | 지갑 서버 |
|---|
| Mainnet | 44107 | 44108 | 44207 |
| ... | | | |
3. vLLM 마이너 시작하기
vLLM 마이너는 두 가지 구성 요소로 이루어져 있습니다: pearl-gateway (노드로의 브릿지)와 vllm-miner (vLLM을 통한 GPU 채굴).
export PEARLD_RPC_URL="http://localhost:44107"
export PEARLD_RPC_USER="rpcuser"
export PEARLD_RPC_PASSWORD="rpcpass"
...
게이트웨이는 JSON-RPC를 통해 pearld에 연결하고 /tmp/pearlgw.sock (UDS) 또는 포트 8337 (TCP, MINER_RPC_TRANSPORT=tcp 설정)에서 채굴 인터페이스를 노출합니다.
Docker로 전체 스택을 실행하는 방법:
docker buildx build -t vllm_miner . -f miner/vllm-miner/Dockerfile
docker run --rm -it --gpus all --network host \
...
테스트 (Testing)
task test
task test:go
task test:python
...
task fmt
task lint:python
task tidy
범위별 변형이 가능합니다: task fmt:go, task fmt:rust, task fmt:python, task lint:go, task lint:rust, task lint:python.
기여 (Contributing)
CONTRIBUTING.md를 참조하세요.
보안 (Security)
SECURITY.md를 참조하세요.
라이선스 (License)
Pearl은 copyfree ISC License 하에 라이선스가 부여되었습니다. 자세한 내용은 LICENSE를 참조하세요.
감사의 글 (Acknowledgments)
Pearl의 블록체인 인프라는 원래 다음 오픈 소스 프로젝트에서 포크되었습니다:
- btcd — 전체 노드 구현(full node implementation)
- btcwallet — 지갑 데몬(wallet daemon)
- neutrino — SPV 경량 클라이언트(SPV light client)