piri

module
v0.0.4 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2025 License: Apache-2.0, MIT

README

Storacha piri node logo

Storage Node

A piri node that runs on the Storacha network.

Usage

Getting Started

Install Go v1.23.3 or higher.

Next, generate a private key for your piri node. This can be done on any computer, not necessarily the deployment target.

Clone the repo and cd into the repo directory:

git clone https://github.com/storacha/piri.git
cd piri

Build and install the CLI tool:

make install

Generate a new identity:

piri identity gen

Make a note of your node identity. The string beginning Mg is your private key. Do not share this with anyone!

Next, obtain a delegation allowing your node to publish claims to the Storacha Indexer node(s). Contact the engineers in #node-providers on the Storacha Discord - give them your public key (the string beginning with did:key:).

System Requriements

TODO

Deployment

Environment Variables

The environment variables required to start a node are:

PIRI_PRIVATE_KEY=                # string beginning Mg...
PIRI_PUBLIC_URL=                 # URL the node will be publically accessible at
PIRI_PORT=                       # local port to bind the server to
PIRI_INDEXING_SERVICE_PROOF=     # delegation(s) from the Storacha Indexing node(s)
Deployment to a VM/Bare Metal

Clone the repo and build the binary as per the getting started section. Set environment variables as above. The following command will start the Storage Node daemon:

piri start
Deployment to DigitalOcean

The Dockerfile allows a Storage Node to be deployed to DigitalOcean Apps platform. You'll need to setup a "Spaces Object Storage" bucket to persist data. You must configure the following additional environment variables:

PIRI_S3_ENDPOINT=
PIRI_S3_REGION=
PIRI_S3_BUCKET=
PIRI_S3_ACCESS_KEY=
PIRI_S3_SECRET_KEY=
Deployment to AWS

The Terraform scripts in /deploy allow a Storage Node to be deployed to AWS. See deploy/README.md for instructions.

Contributing

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

License

Dual-licensed under Apache 2.0 OR MIT

Directories

Path Synopsis
cmd
aggregate command
do command
lambda/getclaim command
lambda/getroot command
lambda/postroot command
lambda/putblob command
storage command
internal
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
pkg
aws
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.
pdp
pdp/aggregator/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.
pdp/scheduler
Package scheduler implements a session-based task scheduler with the following features:
Package scheduler implements a session-based task scheduler with the following features:
pdp/service/contract/mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

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