/go-fil-markets

Shared Implementation of Storage and Retrieval Markets for Filecoin Node Implementations

Primary LanguageGoOtherNOASSERTION

go-fil-markets

CircleCI codecov GoDoc

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

Technical 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.