pearld is the reference implementation of the Pearl Protocol. It is a full node that downloads, validates, and serves the Pearl blockchain. pearld includes zero-knowledge proof-of-work verification and XMSS post-quantum signature support.
pearld properly relays newly mined blocks, maintains a transaction pool, and relays individual transactions that have not yet made it into a block. It ensures all transactions admitted to the pool follow the consensus rules and also includes stricter checks which filter transactions based on miner requirements ("standard" transactions).
pearld does not include wallet functionality. That is provided by the Oyster wallet.
- Go 1.26 or newer
- Rust toolchain (for ZK verification library)
- C compiler (for XMSS library)
- Task runner
From the repository root:
task build:pearldOr to build all binaries (pearld, prlctl, oyster):
task build:blockchainBinaries are placed in bin/.
pearld has several configuration options available to tweak how it runs, but all of the basic operations work with zero configuration.
./bin/pearldSee sample-pearld.conf for the full list of options.
Documentation is located in the docs folder.
The integrated GitHub issue tracker is used for this project.
pearld is licensed under the copyfree ISC License.