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.
- storagemarket: for finding, negotiating, and consummating deals to store data between clients and providers (storage miners).
- retrievalmarket: for finding, negotiating, and consummating deals to retrieve data between clients and providers (retrieval miners).
- filestore: a wrapper around os.File for use by pieceio, storagemarket, and retrievalmarket.
- pieceio: utilities that take IPLD graphs and turn them into pieces. Used by storagemarket.
- piecestore: a database for storing deal-related PieceInfo and CIDInfo. Used by storagemarket and retrievalmarket.
Related components in other repos:
- go-data-transfer: for exchanging piece data between clients and miners, used by storage & retrieval market modules.
- The Markets in Filecoin section of the Filecoin Specification contains the canonical spec.
- GoDoc for Storage Market contains an architectural overview and robust API documentation
- GoDoc for Retrieval Market contains an architectural overview and robust API documentation
go get "github.com/filecoin-project/go-fil-markets/<MODULENAME>"`
Documentation is in the README for each module, listed in Components.
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.
The filecoin-project has a community repo with more detail about our resources and policies, such as the Code of Conduct.
This repository is dual-licensed under Apache 2.0 and MIT terms.
Copyright 2019. Protocol Labs, Inc.