cryptonetlab / retriev

Home of Retriev protocol (by CryptoNet + YOMI)
https://retriev.org
18 stars 6 forks source link
blockchain decentralized-storage ethereum filecoin ipfs

Protocol Labs - Retriev

Retriev is a Protocol designed by CryptoNetLab and developed by YOMI that allows end users to create retrieval deals with a subset of IPFS providers. It leverages a reliable system of “missed retrieval” penalties that increases the confidence in decentralized storage networks.

If you want to go deeper on how the protocol works please read our light paper.

Active deployments

v0.0.1 - Current release available at retriev.org

Deployment on Polygon mainnet:

Deployment on Ethereum testnet (Goerli):

This release can be found at retriev.org.

v0.1.0 - Active development release

Deployment on Ethereum testnet (Goerli):

This release can be found at dev.retriev.org.

Architecture

The protocol consists of three main elements:

Of course the end users (who wants to store data and make deals) can interact directly with the protocol using the blockchain, however we created a simple interface to make deals.

This is an extended diagram which explains current architecture:

Retriev Architecture

Technologies used

We used a bunch of different technologies to create the protocol:

Project is divided by subfolders, any folder contains a different piece of the protocol:

How to install nodes

Installing a node is required only if you want to be part of the referee consortium or you want to be a provider. There are very few requirements to run the node, it depends if you want to run it using Docker or you want to build from source using NodeJS.

Since we're using blockchain you need a web3 provider, in our case we need a Goerli or Polygon provider and we suggest to signup for a free account at Infura. Please be sure to have your API_KEY (it will be provided by Infura's interface) before can continue following this guide.

Install Node using Docker

To use docker follow these simple follow steps:

# Clone repository
git clone https://github.com/protocol/retrieval-pinning

# Run first building script
bash docker/scripts/build.sh API_KEY

# Run a node as referee
bash docker/scripts/start.sh referee

# Run a node as provider
bash docker/scripts/start.sh provider

# Stop node
bash docker/scripts/stop.sh

Clients CLI

If you're looking for specific documentation to interact with protocol as a client please go here.

Providers CLI

If you're looking for specific documentation to interact with protocol as a provider please go here.

Smart contract docs

If you're looking for specific documentation for the smart contract please go here.

Support

If you need support please feel free to jump into our Slack channel and ask for it.