retrieval_flow_v0
sequenceDiagram
participant Client as RetrievalClient participant Node participant Provider as RetrievalProvider participant BSC as BlockStore (Client) participant BSP as BlockStore (Provider) participant StorageMiner as Storage Miner Subsystem
opt Discovery Client ->> Node : Query Chain For Providers w/ PieceID activate Node Node -->> Client : Providers With PieceID deactivate Node end
Client ->> Provider : Send Query for Piece activate Provider Provider -->> Client : Send information about Piece (price, size, etc) deactivate Provider Client ->> Provider : Send RetrievalDealProposal activate Provider Provider -->> Client : Send RetrievalDealResponse, accepting opt Create Payment Channel activate Client Client ->> Node : Create Payment Channel activate Node Node -->> Client : Message For Channel Gets On Chain deactivate Client deactivate Node end opt Unsealing Provider ->> StorageMiner : Unseal Sector activate StorageMiner StorageMiner -->> Provider : Unsealed Piece Data deactivate StorageMiner Provider ->> BSP: Write Piece Blocks to BlockStore activate BSP BSP -->> Provider : Blocks written deactivate BSP end loop Retrieve In Pieces loop Sending Data until Payment Required Provider ->> BSP: Read Blocks from BlockStore activate BSP BSP -->> Provider : Blocks deactivate BSP Provider ->> Client : Send Blocks activate Client Client ->> Client : Verify Blocks Client ->> BSC : Write Blocks activate BSC BSC --> Client: Blocks written deactivate BSC deactivate Client end Provider ->> Client : Request Payment activate Client Client ->> Node : Create Voucher On Payment Channel activate Node Node -->> Client : Message For Voucher Gets On Chain deactivate Node Client -->> Provider : Send Reference To Payment Voucher deactivate Client Provider ->> Node : Redeem Voucher On Payment Channel activate Node Node -->> Provider : Message For Voucher Redeemed On Chain deactivate Node end deactivate Provider
Last updated