Skip to content

Releases: storacha/piri

v0.2.4

01 Apr 23:11

Choose a tag to compare

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

20 Mar 08:01
e502d8b

Choose a tag to compare

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

05 Feb 18:34

Choose a tag to compare

What's Changed

  • refactor: ucan handler options method names by @alanshaw in #396
  • fix: allow host and port to be passed to init by @frrist in #419
  • Payments Settle and Withdraw Implementation w/ TUI by @frrist in #421

Full Changelog: v0.2.1...v0.2.2

v0.2.1

16 Dec 03:31
4ab1301

Choose a tag to compare

What's Changed

Full Changelog: v0.1.2...v0.2.1

v0.1.2

10 Dec 15:10

Choose a tag to compare

What's Changed

  • fix: pass client config to client status by @frrist in #387

Full Changelog: v0.1.1...v0.1.2

v0.1.1

09 Dec 17:53
bb5f026

Choose a tag to compare

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

01 Dec 16:36
7876a20

Choose a tag to compare

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 init command.

Upgrading from v0.0.18

This release is NOT a breaking change. You do NOT need to remove your data directory.

  1. Stop your Piri process.
  2. Upgrade your Piri binary to v0.1.0.
  3. 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.

  1. 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
    • Read our Filecoin prerequisites guide for full details.
  2. Stop your Piri process.
  3. 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!

  4. Upgrade your Piri binary to v0.1.0.
  5. Prepare your wallet for import into Piri:
    # Export wallet from Lotus to hex format
    lotus wallet export YOUR_DELEGATED_ADDRESS > wallet.hex
  6. Run piri init with the following parameters, updated as appropriate (note: new --network parameter):
    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 --network MUST be updated.

  7. Start your Piri node using the config you generated:
    piri serve --config=config.toml

    ℹ️ If the --config option 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

Full Changelog: v0.0.18...v0.1.0

v0.0.18

18 Nov 06:44
c9fe3fe

Choose a tag to compare

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:

  1. Stop your piri process
  2. 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
  3. Re-initialize and start your node following the setup guide: https://github.com/storacha/piri/blob/main/docs/guides/piri-server.md

Benefits:

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 serve to 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 failure by @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

31 Oct 15:47

Choose a tag to compare

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:

  1. Stop your piri process
  2. 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
  3. 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/grant capability by @alanshaw in #273
  • feat: implement blob/retrieve capability 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

v0.0.16

08 Oct 15:54

Choose a tag to compare

What's Changed

Full Changelog: v0.0.15...v0.0.16