piri

module
v0.2.5-0...-e54658e Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 28, 2026 License: Apache-2.0, MIT

README

Piri

A storage node that runs on the Forge network.

What is Piri?

What's Piri? It's the Provable Information Retention Interface - a Go-based storage node that's part of the Forge network backbone. It works alongside other services like the indexing service and upload service to enable decentralized storage with cryptographic proofs.

Documentation

Get started with Piri by exploring our comprehensive documentation:

Setup Guides

Follow these guides in order to set up Piri:

  1. Prerequisites - System, network, and Filecoin requirements
  2. Installation - Download and install Piri
  3. Key Generation - Create your cryptographic identity
  4. TLS Configuration - Set up HTTPS for your domains
  5. Server Setup - Deploy the Piri server

Deploying to the dev node

Every merge to main publishes ghcr.io/fil-forge/piri:main and dispatches the digest it just pushed to infra-nodes. That workflow rewrites the pin the FilOne Appliance dev node runs and opens a pull request with auto-merge armed. Merging queues the image; the node picks it up on its next reconcile pass, waits for a safe proving window, and then restarts.

The dispatch needs two repository credentials: the Actions variable FORGE_BOT_APP_ID and the Actions secret FORGE_BOT_PRIVATE_KEY, which mint a token scoped to infra-nodes alone. Without them the publish step fails and the image still lands in GHCR.

Contributing

All welcome! Piri is open-source. Please feel empowered to open a PR or an issue.

Reporting Issues

Found a bug or have a feature request? Please open an issue on our GitHub repository.

License

Dual-licensed under Apache 2.0 OR MIT

Directories

Path Synopsis
cmd
cli
internal
ipldstore
Package ipldstore provides a small KV-store adapter that round-trips cborgen-marshalable values to a SimpleStore.
Package ipldstore provides a small KV-store adapter that round-trips cborgen-marshalable values to a SimpleStore.
lib
jobqueue/internal/testing
Package testing provides test utilities for the jobqueue package.
Package testing provides test utilities for the jobqueue package.
jobqueue/worker
Package jobqueue provides a Worker which can run registered job [Func]s by name, when a message for it is received on the underlying queue.
Package jobqueue provides a Worker which can run registered job [Func]s by name, when a message for it is received on the underlying queue.
pkg
curiopdp
Package curiopdp adapts Piri's storage to the storage interfaces that Curio's tasks/pdpv0 pipeline depends on, so Piri can run the shared prove / proving-period tasks over its own S3 blobstore.
Package curiopdp adapts Piri's storage to the storage interfaces that Curio's tasks/pdpv0 pipeline depends on, so Piri can run the shared prove / proving-period tasks over its own S3 blobstore.
curiopdp/schema
Package schema holds Piri's curated PDP closure schema (pdp_* plus the harmonytask / eth-message / parked-piece closure — NOT Curio's full migration set) and builds harmonydb handles that apply it.
Package schema holds Piri's curated PDP closure schema (pdp_* plus the harmonytask / eth-message / parked-piece closure — NOT Curio's full migration set) and builds harmonydb handles that apply it.
internal/revision
Package revision provides the vsc revision, embedded by the compiler, as a global variable.
Package revision provides the vsc revision, embedded by the compiler, as a global variable.
internal/testutil/pdpfake
Package pdpfake provides in-memory fakes of the PDP storage backend for tests.
Package pdpfake provides in-memory fakes of the PDP storage backend for tests.
pdp/aggregation/aggregator/policy
Package policy binds the aggregation threshold to the dynamic config registry, so an operator can retune it at runtime without a restart.
Package policy binds the aggregation threshold to the dynamic config registry, so an operator can retune it at runtime without a restart.
pdp/aggregation/commp
Package commp defines the aggregation pipeline's ingress seam.
Package commp defines the aggregation pipeline's ingress seam.
pdp/piecesize
Package piecesize is the single source of truth for how large a piece Piri will accept, and for converting between the two units the question is asked in.
Package piecesize is the single source of truth for how large a piece Piri will accept, and for converting between the two units the question is asked in.
pdp/piecesize/policy
Package policy binds the piece-size limits to the dynamic config registry, so an operator can retune them at runtime via `piri client admin config set` or PATCH /admin/config without restarting the node.
Package policy binds the piece-size limits to the dynamic config registry, so an operator can retune them at runtime via `piri client admin config set` or PATCH /admin/config without restarting the node.
pdp/pipeline
Package pipeline implements Piri's aggregation pipeline as harmonytask tasks on Curio's harmonydb: commP calculation (PDPCommP), aggregate folding (PDPAggregate), batched on-chain root submission (PDPAddRoots), and the asynchronous blob-removal sweep (PDPRemoveSweep).
Package pipeline implements Piri's aggregation pipeline as harmonytask tasks on Curio's harmonydb: commP calculation (PDPCommP), aggregate folding (PDPAggregate), batched on-chain root submission (PDPAddRoots), and the asynchronous blob-removal sweep (PDPRemoveSweep).
pdp/tasks
Package tasks retains the eth-client interface contracts and constants used by the PDP service.
Package tasks retains the eth-client interface contracts and constants used by the PDP service.
store/objectstore/flatfs
Package flatfs is a Datastore implementation that stores all objects in a two-level directory structure in the local file system, regardless of the hierarchy of the keys.
Package flatfs is a Datastore implementation that stores all objects in a two-level directory structure in the local file system, regardless of the hierarchy of the keys.
ucanhandlers/ucanfxtest/base
Package base provides testify/suite scaffolding for end-to-end integration tests of piri's UCAN HTTP surface (both the body-CAR RPC server and the header-container retrieval server).
Package base provides testify/suite scaffolding for end-to-end integration tests of piri's UCAN HTTP surface (both the body-CAR RPC server and the header-container retrieval server).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL