Concurrency-Limited SHA-256 Anchoring in Node.js: Semaphore Queuing, Retry, and Resumable Checkpoints
You 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-submi