Payment manager for Filecoin retrieval market
The goal of this project is to enhance the payment experience for Filecoin retrieval providers. Myel is a secondary retrieval market on Filecoin. We provide a desktop app to allow anyone to monetize their available storage and become a content provider on the Filecoin retrieval market. For ETHOnline, we decided to focus on the payment user experience and solve some problems we have faced as retrieval providers. Our solution is built on top of our retrieval market implementation and our desktop app and focuses on the payment flow. When a retrieval deal is successfully completed, our storage provider stores a voucher as well as a payment channel address sent by the client. First we settle and update the payment channel with the last voucher. Our provider then sends a transaction to our contract on Ethereum with a reference to this payment channel. Our contract verifies the payment channel validity using a Chainlink oracle which queries a lotus node to get the actor state. If the state is valid we issue a load in ETH directly to our provider's wallet. A the time of this submission we have yet to implement a collateral system although we are confident we will achieve it using Filecoin multisig actors so the providers give us permission to collect payment channel funds once the wait period is over.How it's made
Our retrieval market implementation utilizes most components from lotus and go fil markets implementations including datatransfer and graphsync although we have modified many components to fit our custom architecture. We use the go-ethereum client library to interact with our Ethereum contract, Ganache for modeling the Ethereum chain behaviors and the full Chainlink operator to validate the payment channel. We also used Metamask as a quick Ethereum wallet solution although our Myel app will directly integrate an Ethereum wallet utilizing the same keys as Filecoin to make verifiability easier.