Run a point-of-presence within Myel, the community powered content delivery network.
- Libp2p, IPFS and Filecoin protocols for data transfer.
- Content is routed via Gossipsub.
- New content to cache is directly replicated by connected peers.
- Payments to retrieve content are made via Filecoin payment channels.
Our mission is to build a community powered content delivery network that is resilient 🦾, scalable 🌏, and peer-to-peer
We're currently using Filecoin building blocks and are aspiring to make this library as interoperable as possible with existing Web3 backends such as IPFS.
This library is still experimental so feel free to open an issue if you have any suggestion or would like to contribute!
As a CLI:
$ go install github.com/myel/pop/cmd/pop@latest
As a library:
$ go get github.com/myelnet/pop/exchange
Run any command with -h
flag for more details.
$ pop
USAGE
pop subcommand [flags]
This CLI is still under active development. Commands and flags will
change until a first stable release. To get started run 'pop start'.
SUBCOMMANDS
start Starts a POP daemon
off Gracefully shuts down the Pop daemon
ping Ping the local daemon or a given peer
put Put a file into an exchange transaction for storage
status Print the state of any ongoing transaction
commit Commit a DAG transaction
get Retrieve content from the network
list List all content indexed in this pop
wallet Manage your wallet
FLAGS
-log info Set logging mode
pop
nodes can push statistics measuring the performance of retrievals to an
InfluxDB v2 database if certain
environment variables are set.
Set these variables as follows:
export INFLUXDB_URL=<INSERT InfluxDB ENDPOINT>
export INFLUXDB_TOKEN=<INSERT TOKEN>
export INFLUXDB_ORG=<INSERT ORG>
export INFLUXDB_BUCKET=<INSERT BUCKET>
pop
supports auto-updating via GitHub webhooks.
To activate it pass the flag -upgrade-secret
to pop start
such that it matches the GitHub webhook secret set for your server. Make sure you run as sudo, or that your current user has authorization to modify your pop
binary.
Your pop
will then automatically download and install new releases.
You can deploy a cluster of nodes on AWS using kubernetes, as detailed in infra/k8s
.
See go docs.