Piri v0.0.17: Smart Contract Contract Upgrade
This release upgrades all contracts used by Piri enabling support for automatic storage payments.
⚠️  Breaking Changes
Smart Contract Upgrade
This release upgrades to the Smart Contracts used by Piri. This is a breaking change that requires a full node reset.
Required Migration Steps:
- Stop your piri process
 - Delete your data directory (preserving 
service.pem):rm -rf /path/to/piri/data # or your custom data directory path Important: Keep your service.pem key file - Re-initialize and start your node following the setup guide: https://github.com/storacha/piri/blob/main/docs/guides/piri-server.md
 
Benefits:
- Payments are now issued to Storage Node operators proportional to the amount of data stored.
 
Enhancements
- Significant Gas Savings when adding roots to Piri
 - Authorized retrievals support extended to support "service" retrievals e.g. replications. Only retrievals authorized by UCAN are allowed.
 
Bug Fixes
- #307 fixed a bug that would cause proofs to fail on occasion due to invalid root submissions
 
What's Changed
- fix: concurrent IPNI advert publishing by @alanshaw in #276
 - feat: deploy to prod on workflow dispatch by @alanshaw in #278
 - feat: add temporary lambda to add orphan adverts to chain by @alanshaw in #279
 - fix: return the error by @alanshaw in #282
 - fix: add more and faster retries by @alanshaw in #283
 - feat: implement provider registration by @frrist in #266
 - fix: test flake by using random port by @frrist in #285
 - test: add docker and CI test util methods by @frrist in #288
 - feat: implement 
access/grantcapability by @alanshaw in #273 - feat: implement 
blob/retrievecapability by @alanshaw in #284 - feat: authorized retrieval for replica transfer by @alanshaw in #286
 - feat: add dead letter queue and PermanentError support by @frrist in #289
 - feat(publisher): add queue based ipni publisher by @hannahhoward in #287
 - deps: update to go1.25.3 by @frrist in #290
 - configure and wire up signer by @frrist in #291
 - Upgrade to v0.0.1 storacha constracts by @frrist in #292
 - fix: expose egress batch size so that it can be configured by @volmedo in #296
 - chore: smaller egress tracking batches for testing by @volmedo in #297
 - fix: egress batch size config by @volmedo in #298
 - feat: implement aggregate batching system for efficient root submissions by @frrist in #294
 - feat: wire up signing service by @frrist in #299
 - fix: provide principal resolver to retrieval server by @alanshaw in #302
 - feat: implement delegator approval flow by @frrist in #300
 - fix: only track egress caused by space/content/retrieve invocations by @volmedo in #303
 - Frrist/fix/register params by @frrist in #305
 - feat: point to the registrar service at its new location by @volmedo in #301
 - fix: downgrade piece retrieval logs by @alanshaw in #311
 - fix:(pdp): calculate piece offset per root & correct aggregate pieceCIDV2 Size Calculation by @frrist in #307
 - fix: add test util to wait for healthy piri by @alanshaw in #306
 - fix: increase allowed transfer time by @alanshaw in #318
 - fix: use lifecycle context not background context when stopping aggregate manager by @alanshaw in #319
 - fix: use lifecycle context not background for egress tracker cleanup by @alanshaw in #320
 
Full Changelog: v0.0.16...v0.0.17