Skip to content

Releases: storacha/piri

v0.0.16

08 Oct 15:54

Choose a tag to compare

What's Changed

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

v0.0.15

07 Oct 19:06

Choose a tag to compare

Piri v0.0.15: Egress Tracking & Contract Upgrade

This release upgrades the PDP contract used by Piri for proof submission, and introduces egress tracking.

โš ๏ธ Breaking Changes

PDP Verifier v2.1.0 Upgrade

This release upgrades to the PDP Verifier v2.1.0 smart contract. 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:

Egress Tracking

Piri now tracks and reports data served to clients. This allows the Storacha billing service to accurately account for bandwidth usage.

Change Log

  • feat: implement proof set state inspection by @frrist in #239
  • Implement Auto update of piri node as managed service by @frrist in #240
  • fix(aws): return store.ErrNotFound by @hannahhoward in #260
  • feat: add EgressBatchStore by @volmedo in #245
  • feat: check consolidated records and clean receipt batches by @volmedo in #264
  • fix: incremental SHA hashing works for fsjournal resume by @frrist in #267
  • Fast follows to piri auto update by @frrist in #244
  • feat: only auto update patch releas changes. by @frrist in #268
  • refactor: hide auto update commands till ready by @frrist in #270
  • Upgrade to PDP Verifier v2.1.0 by @frrist in #256

Full Changelog: v0.0.14...v0.0.15

v0.0.14

25 Sep 15:59
b60bc37

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.0.13...v0.0.14

v0.0.13

29 Aug 19:16
697f880

Choose a tag to compare

Piri v0.0.13: A simpler way to run Piri

This release rethinks how Piri works. Based on your feedback about complexity and reliability issues, we've rebuilt the system to be much simpler to operate. The changes are significant enough that you'll need to start fresh with your node, but the result is worth it.

Release: https://github.com/storacha/piri/releases/tag/v0.0.13

Setup Guide: https://github.com/storacha/piri/blob/v0.0.13/docs/guides/piri-server.md

Why we made these changes

Running a Piri node was complicated. You had to manage multiple processes, visit external websites for registration and handle dozens of configuration flags. We heard you, and we fixed it.

What's different now

Your entire node runs as one process

Before, you had to run piri serve ucan and piri serve pdp separately and keep both running. Now everything runs through a single piri serve full command. This means fewer things to monitor, simpler systemd configurations, and clearer logs.

Setup happens automatically

The new init command handles all the complex setup that used to be manual. It creates your proof sets, registers with the Storacha network, and generates a proper configuration file. No more visiting https://staging.delegator.storacha.network/ or figuring out which flags to use.

Configuration lives in one place

Instead of passing a mixture of command line flags and environment variables, everything now lives in a single TOML configuration file that the init command generates for you. We hope this change makes it easier to actually understand what your node is configured to do.

Data works immediately

This was a major pain point: after uploading data, it wouldn't be readable for a while, causing errors, retry loops, and failures. Now data is accessible as soon as it's uploaded. This makes the whole network faster and more reliable. You can test this yourself at https://staging.delegator.storacha.network/test-storage to see the difference (after upgrading of course ๐Ÿ˜ƒ).

How to upgrade your node

Because we've fundamentally changed how Piri works, you need to completely reset your node. Think of this as setting up a new node rather than updating an existing one. Here's the complete process:

Step 1: Stop and remove your current setup

First, stop any running Piri processes.
Then remove the old installation:

# Find where Piri is currently installed
which piri

# Remove the binary (adjust the path based on what 'which' shows you)
sudo rm /usr/local/bin/piri  # or wherever it's installed

# Remove your data directory completely
# This is whatever you specified with --data-dir or PIRI_DATA_DIR
rm -rf /path/to/piri/data  # or your custom data directory path

Note: You should continue to use the service.pem file you used previously for your Piri nodes identity. Do not delete this file.

Step 2: Clean up your web server configuration

Since Piri now uses just one endpoint instead of two, you can remove the extra configuration. If you set up separate domains for UCAN and PDP services (like up.piri.example.com for PDP), here's how to clean that up:

For nginx users:

# Remove the extra server configuration
sudo rm /etc/nginx/sites-available/up.piri.example.com
sudo rm /etc/nginx/sites-enabled/up.piri.example.com

# Delete the SSL certificate for the old endpoint
sudo certbot delete --cert-name up.piri.example.com

# Test that your nginx configuration is still valid
sudo nginx -t

# If the test passes, reload nginx
sudo systemctl reload nginx

Also remove the DNS A record for up.piri.example.com from your domain provider's control panel. You only need the main domain now (like piri.example.com).

Step 3: Install v0.0.13 and set up your new node

Now you're ready to install the new version and get your node running. Follow the complete setup guide here:https://github.com/storacha/piri/blob/v0.0.13/docs/guides/piri-server.md

The guide walks you through:

  1. Installing the new Piri binary
  2. Running piri init to set everything up automatically
  3. Starting your node with the generated configuration file

The whole process is much simpler than before. Where you previously had to coordinate multiple moving parts, now it's essentially just two commands after installation.

Change Log

  • chore: upgrade go-ucanto by @alanshaw in #167
  • docs: fix example .env by @alanshaw in #184
  • fix: indexer UCAN endpoint by @alanshaw in #181
  • fix(docs): --proof-set is required when using --pdp-server-url by @volmedo in #185
  • feat: unify pdp client and server on common interface by @frrist in #169
  • fix: join HTTP path to multiaddr by @alanshaw in #180
  • feat: implement proofset list cli/client/api by @frrist in #186
  • Frrist/refactor/task engine start by @frrist in #187
  • fix(docs): add --public-url flag to serve ucan command and prefix envโ€ฆ by @volmedo in #189
  • Frrist/refactor/simplify config by @frrist in #190
  • Single Process Piri Node by @frrist in #192
  • fix: explicitly log handler execution errors by @alanshaw in #196
  • fix: do not smother HTTP handler errors by @alanshaw in #197
  • Implement Piri init command for automatic registration with the delegator by @frrist in #200
  • feat: make data upload synchronous by @frrist in #201
  • fix: include telemetry metrics for full server by @frrist in #204
  • Revamp docs for single process operation. by @frrist in #203

Full Changelog: v0.0.12...v0.0.13

v0.0.12

08 Aug 17:02
1a2d9b4

Choose a tag to compare

What's Changed

  • feat: server info as JSON by @alanshaw in #159
  • refactor: move ucan service methods to own package by @frrist in #160
  • chore: Upgrade go-ucanto by @Peeja in #130
  • refactor: migrate service http handlers to echo by @frrist in #161
  • Frrist/fix/piece polling by @frrist in #165
  • fix: chain scheduler robustness by @frrist in #163
  • fix: add timeout to eth api requests to prevent infinite hanging by @frrist in #164
  • fix: skip test dialing real service by @frrist in #172
  • refactor(testutil): use external testutil library by @hannahhoward in #170
  • fix: correctly resub to chain notifications by @frrist in #168
  • Implement (gradual) dependency injection via uber.fx by @frrist in #144
  • feat: implement telemetry package for metrics by @frrist in #157
  • feat: print configuration details when starting servers by @frrist in #178
  • fix: trim trailing slashes from public URLs by @volmedo in #176

Full Changelog: v0.0.11...v0.0.12

v0.0.11

17 Jul 04:26
5071aa0

Choose a tag to compare

What's Changed

  • docs: add steps for upgrading piri release by @frrist in #152
  • debugging: attempting to find issue with unpadded size by @frrist in #154

Full Changelog: v0.0.10...v0.0.11

v0.0.10

16 Jul 17:53
3effde7

Choose a tag to compare

What's Changed

  • feat: implement object store via minio by @frrist in #129
  • feat: resolve did:key from did:web by @frrist in #143
  • Add (back) version command and fix goreleaser config by @frrist in #145
  • docs: update with detailed steps for self-testing piri by @frrist in #147
  • fix: tasks are retried correctly when they fail by @frrist in #148
  • feat: make build date more human-friendly by @volmedo in #149

Full Changelog: v0.0.9...v0.0.10

v0.0.9

01 Jul 20:37
7c2fc88

Choose a tag to compare

What's Changed

  • fix: build binary for go releaser by @frrist in #137
  • Update docs and fix issues with CLI flag validation by @frrist in #138

Full Changelog: v0.0.8...v0.0.9

v0.0.8

01 Jul 15:32

Choose a tag to compare

What's Changed

Full Changelog: v0.0.7...v0.0.8

v0.0.7

01 Jul 00:12
493a095

Choose a tag to compare

What's Changed

  • docs: recommend pre-compiled binaries over building from source by @frrist in #121
  • feat: migrate CLI to Cobra/Viper (#93) by @frrist in #110
  • fix: don't fail to create pdp state dir when it exists by @frrist in #124
  • Create CODEOWNERS by @frrist in #123
  • fix: handle API timeouts in MessageWatcherEth task by @frrist in #127
  • docs: update to refect new cli by @frrist in #125

Full Changelog: v0.0.6...v0.0.7