feat(storage): add CHIRP reference implementation - #494
Conversation
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
|
Before merge, I think four CHIRP issues need to be addressed:
Relatedly, |
|
Addressed on exact head
The companion BRC-167 update also fixes the v1 child-count ceiling at 256 independently of profiles, relaxes Exact-head hosted evidence is green: CI, container runtime contracts, CodeQL, and conformance. The Sonar PR API reports zero open/confirmed findings and the exact-analysis zero-findings gate passed. CHIRP has 109 passing tests; conformance executes 6,479 of 6,690 vectors with 211 governed skips. Ready for re-review. |
BraydenLangley
left a comment
There was a problem hiding this comment.
Approved! Just CI issues need resolved on main.
|



Program and scope
947fadf34b39bebf98584e3ee465abfbf48302b9The wire format follows the exact draft serialization in BRC-167. Until that proposal is merged, this implementation and release must track any normative BRC change.
Impact
Affected packages/services and intended patch versions (publication occurs only through the release workflow after approval):
@bsv/chirp@0.1.0ESM/browser/Node package andchirpCLI.@bsv/uhrp-lite@0.1.33with filesystem-backed CHIRP object/session/lease/GC support and Docker volume wiring.@bsv/uhrp-storage-server@0.2.35with GCS-backed CHIRP object/session/lease/GC support.StorageUploader,StorageDownloader,StorageUtils, BRC-26 identifiers,/upload,/find,/list,/renew, and legacy object serving remain unchanged and covered by regression tests.Verification
pnpm build,pnpm typecheck,pnpm test,pnpm lint,pnpm format:check,pnpm health:check,pnpm check-versions,pnpm conformance,pnpm docs:examples,pnpm codegen:check,pnpm audit:security,pnpm license:pack-check, and the exact Node 24.18 npm release-artifact stage/verify/dry-run all pass. Both standalone storage services pass build/lint/test, anddocker compose config --quietpasses with validation placeholders.Security and dependencies
Quality Gate passedverdict alone is not merge evidenceNegative coverage includes canonical CompactSize rejection, critical extensions, malformed/oversized/cyclic closures, hash and length mismatches, abort/timeout behavior, redirect and private-network protection, URL policy enforcement, checkpoint poisoning, incomplete/mismatched commits, authorization, expiry, rollback, lease renewal, and live-set garbage collection.
The existing governed
uhrp-standalone-servicesduplication boundary now has precise CPD exclusions for byte-synchronized CHIRP copies. Those files remain in Sonar source analysis; only intentional copy/paste detection is excluded, and byte equality remains enforced by repository health.Dependency evidence
@bsv/chirpis a new release unit documented in package/release governance. The conformance runner links it as a workspace-only development dependency to execute required vectors.@bsv/sdk ^2.4.1is the only peer; Node 22/24 and browser targets are governed. Existing UHRP services retain their current runtime model.pnpm install --offlinesucceeds with the committed workspace lock; both standalone npm lockfiles install and test successfully.@bsv/chirp@0.1.0,@bsv/uhrp-lite@0.1.33,@bsv/uhrp-storage-server@0.2.35.Release and operations
CHIRP routes are additive and authenticated. Hosts advertise a root only after closure validation and successful commit. Partial hosting remains representable at the object layer but incomplete closures are never advertised as complete roots. Rollback is removal/disablement of the additive CHIRP routes and data namespaces; legacy UHRP data and endpoints are unaffected.
Completion evidence