Awesome
go-fil-markets
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.
Disclaimer: Reporting issues
This repo shared the issue tracker with lotus. Please report your issues at the lotus issue tracker
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.
Background reading
- The Markets in Filecoin section of the Filecoin Specification contains the canonical spec.
Technical Documentation
- GoDoc for Storage Market contains an architectural overview and robust API documentation
- GoDoc for Retrieval Market contains an architectural overview and robust API documentation
Installation
go get "github.com/filecoin-project/go-fil-markets/<MODULENAME>"`
Usage
Documentation is in the README for each module, listed in Components.
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.