Releases: storacha/piri
v0.2.4
What's Changed
- fix: repair proofset gas usage by @frrist in #463
- fix: reduce cardinality of replication-metric by @frrist in #461
- fix: skip RetryWait for new tasks in scheduler (#459) by @frrist in #460
- fix: flatfs sharding for blobstore keys by @alanshaw in #458
- docs: write CLI docs for proofset repair command by @frrist in #464
Full Changelog: v0.2.3...v0.2.4
v0.2.3
What's Changed
- feat: periodic retrieval journal rotation by @alanshaw in #423
- fix: do not add to advert publishing batch if error during decode by @alanshaw in #426
- feat: implement dynamic config for manager by @frrist in #409
- Add PostgreSQL as Optional Database Backend by @frrist in #416
- docs: update docs on configuration and CLI by @frrist in #418
- ci: only publish docs on releases by @frrist in #438
- docs: write operator guide docs by @frrist in #427
- fix: base config telemetry integration and env var binding by @frrist in #430
- feat: add simple health check to piri api by @frrist in #432
- config: fix default config setting for init by @frrist in #433
- config: add config for insecure did resolution by @frrist in #435
- config: make metrics and traces user configurable by @frrist in #434
- revert: allocation store key format hack by @alanshaw in #428
- Add S3-Compatible Storage Backend by @frrist in #417
- remove unused ucan cli method by @frrist in #443
- feat: Docker build with amd64 and arm64 support by @frrist in #431
- feat(pdp): add repair command to reconcile stuck roots with on-chain state by @frrist in #439
- fix: remove the blob store interface by @frrist in #441
- docker: use nobody user remove emulation by @frrist in #445
- fix: proper docker metadata version by @frrist in #447
- fix: ensure flatfs datastore path exists by @frrist in #451
- docs: add settlement docs by @frrist in #450
- fix: permit postgres and/or minio config at init by @frrist in #442
- feat: configurable max gas fee with message deferral by @hannahhoward in #456
Full Changelog: v0.2.2...v0.2.3
v0.2.2
v0.2.1
What's Changed
- fix: never sample unless parent is sampled by @alanshaw in #385
- docs: implement docs website with mkdocs by @frrist in #375
- feat(service): only calculate piece cids once by @hannahhoward in #390
- feat: enable tracing by default by @alanshaw in #395
- telemetry: add deeper metrics to piri by @frrist in #400
Full Changelog: v0.1.2...v0.2.1
v0.1.2
What's Changed
Full Changelog: v0.1.1...v0.1.2
v0.1.1
What's Changed
- docs: seperate guide for forge production by @alanshaw in #373
- telemetry: add metric collection to all http routes by @frrist in #370
- docs: best practices by @alanshaw in #374
- fix: use passed context when stopping not background context by @alanshaw in #377
- fix: remove unnecessary RUnlock by @alanshaw in #380
- feat: allow operators to use minio for blob storage by @alanshaw in #378
- fix: go back to default MaxBatchSizeBytes egress tracker setting by @volmedo in #381
- docs: add link to best practices doc by @alanshaw in #376
- Fix config regressions and improve config validation error messages by @frrist in #383
- Expand OTEL HTTP histograms by @frrist in #382
Full Changelog: v0.1.0...v0.1.1
v0.1.0
Highlights
- Added configuration allowing node deployment to the production network.
- Implemented a logging API that allows logs for various sub-systems to be turned on or off at your leisure.
- Fixed many issues uncovered by upload, replication and retrieval testing.
- UX improvements to
piri initcommand.
Upgrading from v0.0.18
This release is NOT a breaking change. You do NOT need to remove your data directory.
- Stop your Piri process.
- Upgrade your Piri binary to
v0.1.0. - Start your Piri process
Note: migrating from any version less than v0.0.18 requires a node reset, per the previous release docs.
Migrating to Production
Piri nodes can now be run on the production network! This is how you move a Piri node running on the Staging network to the Production network.
If you want to setup a new Piri node for the production network then these are not the instructions you want, please read the next section.
- Satisfy Filecoin Mainnet prerequisites.
- Setup a Lotus node on the Filecoin Mainnet.
- Create a Funded Delegated Wallet on the Filecoin Mainnet.
- Run:
lotus wallet new delegated - Add funds (At least 5 FIL to cover one time network joining fee).
- Verify funds:
lotus wallet balance YOUR_DELEGATED_ADDRESS
- Run:
- Read our Filecoin prerequisites guide for full details.
- 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 yourservice.pemkey file! - Upgrade your Piri binary to
v0.1.0. - Prepare your wallet for import into Piri:
# Export wallet from Lotus to hex format lotus wallet export YOUR_DELEGATED_ADDRESS > wallet.hex
- Run
piri initwith the following parameters, updated as appropriate (note: new--networkparameter):piri init \ --network=forge-prod \ --data-dir=/path/to/data \ --temp-dir=/path/to/temp \ --key-file=/path/to/service.pem \ --wallet-file=/path/to/wallet.hex \ --lotus-endpoint=wss://YOUR_LOTUS_ENDPOINT/rpc/v1 \ --operator-email=your-email@example.com \ --public-url=https://piri.example.com > config.tomlℹ️ All parameters other than
--networkMUST be updated. - Start your Piri node using the config you generated:
piri serve --config=config.toml
ℹ️ If the
--configoption is not provided, Piri will automatically load config from your user config directory e.g.~/.config/piri/config.toml.
Setting up on Production from scratch
Follow the Piri getting started guide for the Forge Production Network.
What's Changed
- update docs for release by @frrist in #353
- fix: watcher_eth_test by @frrist in #355
- feat: more feedback during registration by @alanshaw in #356
- chore: upgrade go-ucanto dependency by @alanshaw in #359
- feat(ipni): move to double step ipni publish by @hannahhoward in #331
- feat: implement logging api by @frrist in #354
- feat: implement minimal tracing in piri for upload and download by @frrist in #357
- fix: panic when handling unallocated stored blob by @frrist in #361
- fix: transfer promise selector by @alanshaw in #358
- fix:
ucan/concludeinvocation facts by @alanshaw in #360 - feat: forge production presets and preset overhaul by @volmedo in #334
- feat: mainnet smart contract presets by @volmedo in #362
- fix: network is the right variable name by @volmedo in #364
- feat: add delete method to objectstore interface by @alanshaw in #369
- fix: write the blob outside of the transaction by @frrist in #368
- fix: adjust client config by @volmedo in #367
- fix: do not display usage when init error by @alanshaw in #363
Full Changelog: v0.0.18...v0.1.0
v0.0.18
Piri v0.0.18: Enhanced Smart 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:
- Piri nodes now show up in https://pdp.vxb.ai/calibration
- Monitor payment rails in https://pay.filecoin.cloud/console
- Improved storage efficiency via flafFS
- Enhanced aggregation pipeline for faster uploads
- Improved root addition logic for fast records on chain
What's Changed
- chore: upgrade go-ucanto to v0.7.0 by @volmedo in #324
- docs: fix 404s by @alanshaw in #325
- feat: flatfs object store by @alanshaw in #304
- fix: retrieval service trusts attestations issued by the upload service by @alanshaw in #326
- tests: remove FX deps logs for test setup by @frrist in #322
- Remove PDP Code that is never used by @frrist in #329
- feat: implement deduping job queue by @frrist in #332
- fix: remove unnecessary list after put by @alanshaw in #337
- fix: blake3 bug by @alanshaw in #336
- feat(cli):
piri serveto start a "full" server by @alanshaw in #310 - Implement async commp and propoer piece resolution by @frrist in #330
- fix: handle errors correctly with middleware by @frrist in #341
- fix: BlobRetrieve doesn't provide range [alternate take] by @Peeja in #346
- feat: Use flexible version of
failureby @Peeja in #340 - refactor: aggregation pipeline to use dedup queue by @frrist in #342
- Frrist/contractsv2 by @frrist in #347
- feat: UCAN authorized signing service by @alanshaw in #343
- feat: add jwt token to pdp server methods by @frrist in #349
- fix: set message MinConfidence to 6 by @frrist in #350
- reduce contract interface requirements; memoize constant calls to contracts by @frrist in #351
Full Changelog: v0.0.17...v0.0.18
v0.0.17
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