CSCraig Solomonincraigsolomon.hashnode.dev·Aug 13 · 6 min readGating CI/CD Deploys with Offline Blockchain Proof Verification in PythonA release pipeline builds an artifact, anchors its hash, and ships it. Weeks later a hotfix branch gets merged out of order, a build cache serves a stale layer, or someone hand-edits a file in the dep00
CSCraig Solomonincraigsolomon.hashnode.dev·Aug 13 · 6 min readA Zero-Dependency File Watcher for Automated Blockchain Anchoring in Node.jsTable of Contents Watching a Directory Without a Watcher Library Hashing and Submitting the Proof Handling Rate Limits and Retries Take It From Here A claims intake folder gets a new file every 00
CSCraig Solomonincraigsolomon.hashnode.dev·Aug 6 · 7 min readConcurrency-Limited SHA-256 Anchoring in Node.js: Semaphore Queuing, Retry, and Resumable CheckpointsYou hash a file, POST the digest, get a proof ID back. Simple for one file. At 2,000 files, three things break: the process terminates before it's done, a rate limit interrupts mid-batch, and re-submi00
CSCraig Solomonincraigsolomon.hashnode.dev·Aug 2 · 8 min readCombining C2PA Content Credentials with Blockchain Timestamps in PythonYou build a document intake pipeline. Files arrive with C2PA signing: device model, capture time, GPS coordinates, a cryptographic hash of the original frame. Rich provenance data, all embedded in the00
CSCraig Solomonincraigsolomon.hashnode.dev·Jul 30 · 8 min readIdempotent File Anchoring in Node.js: Hash-First DeduplicationA document intake pipeline processes the same file twice. Different filenames, same bytes. Or a client resubmits a packet of evidence that was timestamped last month. Every duplicate call to a rate-li11R