go-fil-markets
![codecov](https://codecov.io/gh/filecoin-project/go-fil-markets/branch/master/graph/badge.svg)
This repository contains modular implementations of the storage and retrieval market subsystems of Filecoin. They are guided by the v1.0 and 1.1 Filecoin specification updates.
Separating implementations into a blockchain component and one or more mining and market components presents an opportunity to encourage implementation diversity while reusing non-security-critical components.
Components
- filestore: a submodule branch that is a side effect of using the ffi to generate commP
- pieceio: utilities that take IPLD graphs and turn them into pieces
- piecestore:
- storage market: for finding, negotiating, and consummating deals to store data between clients and providers (storage miners)
- retrieval market: for finding, negotiating, and consummating deals to retrieve data between clients and providers (retrieval miners)
Related components in other repos:
- data transfer: for exchanging piece data between clients and miners, used by storage & retrieval market modules.
Background reading
Usage
Requires go 1.13
Install the go-fil-markets module(s) that you want to use. Available modules are:
filestore
pieceio
piecestore
retrievalmarket
storagemarket
Install with:
go get "github.com/filecoin-project/go-fil-markets/<MODULENAME>"
TODO: usage for each module (maybe in subdirectories)
Contributing
Issues and PRs are welcome! Please first read the background reading and CONTRIBUTING guide, and look over the current code. PRs against master require approval of at least two maintainers.
Day-to-day discussion takes place in the #fil-components channel of the Filecoin project chat. Usage or design questions are welcome.
Project-level documentation
The filecoin-project has a community repo with more detail about our resources and policies, such as the Code of Conduct.
License
This repository is dual-licensed under Apache 2.0 and MIT terms.
Copyright 2019. Protocol Labs, Inc.