Experimental field recipe
Run a reference CHIRP host
Boot the maintained filesystem UHRP server with BRC-167 complete-host routes, persistent object storage, closure validation, and a readiness check.
- Git
- Docker
- A free local port 8080
Local runbook
Start it, then inspect it
- 01
Fetch the complete-host server
CHIRP support lives in the basic filesystem UHRP server. Its /chirp/v1 routes implement staged object upload and complete-closure commit.
Terminalgit clone --depth 1 https://github.com/bsv-blockchain/ts-stack.git cd ts-stack/infra/uhrp-server-basic cp .env.example .env - 02
Build and run with persistent objects
Override the placeholder server key at runtime and retain the CHIRP object store in a named volume.
Terminalexport SERVER_PRIVATE_KEY="$(openssl rand -hex 32)" docker build -t local/chirp-host . docker run --rm --name chirp-host \ --env-file .env \ -e SERVER_PRIVATE_KEY \ -p 8080:8080 \ -v chirp-data:/data \ local/chirp-hostBoundary: This boots a local reference host. Public operation also requires HTTPS, a durable wallet/storage configuration, ingress limits, monitoring, backup, and an explicit retention policy.
- 03
Check readiness
The ready endpoint confirms the process and its required dependencies are ready to serve.
Terminalcurl --fail --show-error http://127.0.0.1:8080/ready
Code callout
Exercise the reference client
Keep the example small enough to understand. Follow the linked source before adding funds, users, or public traffic.
mkdir chirp-client && cd chirp-client
npm init -y
npm install @bsv/chirp @bsv/sdk
npx chirp --help
# Publication requires a BRC-100 wallet module:
npx chirp publish ./large.bin \
--host http://127.0.0.1:8080 \
--wallet-module ./wallet.mjs \
--retention-seconds 2592000 \
--allow-insecure-http Carry it further
Turn the local proof into a deployment plan
Read before shipping