Replies: 4 comments 7 replies
-
Thank you for putting together this comprehensive explanation with diagrams 🙏 Currently the procedure for making a retrieval deal is typically:
From your explanation we understand that:
In practice the retrieval price is associated with a multi-address (eg /ip4/1.2.3.4/tcp/24001/p2p/Qm1234567890) and not with a miner ID (eg f0123445). For this reason we're not sure if it would make sense to include a miner ID in the query-ask and in the retrieval deal protocol. Our suggestion is that you use a similar approach to how a reverse proxy works:
|
Beta Was this translation helpful? Give feedback.
-
@Fatman13 I have some questions:
|
Beta Was this translation helpful? Give feedback.
-
Simple SummaryAdd a new param AbstractCurrent deal protocol as it is structured is not equipped to support multi miner use case. By adding Use caseFrom experiences working with enterprise SPs who has on-boarded PiBs of verified deal, venus-market team has developed features that focuses on multi SP support. The idea is that multiple SPs sharing the network infrastructure within a IDC could all share one market service to cut down costs and exposing just one multi-address on-chain. Key merits includes...
MotivationGiven the above architecture, imagine the following scenario...
SpecificationFor query-ask requestBefore: // Query is a query to a given provider to determine information about a piece
// they may have available for retrieval
type Query struct {
PayloadCID cid.Cid // V0
QueryParams // V1
} Proposed: // Query is a query to a given provider to determine information about a piece
// they may have available for retrieval
type Query struct {
PayloadCID cid.Cid // V0
MinerId *abi.ActorId
QueryParams // V1
} Responses will stay the same. For retrieval proposalBefore: // DealProposal is a proposal for a new retrieval deal
type DealProposal struct {
PayloadCID cid.Cid
ID DealID
Params
} Proposed: // DealProposal is a proposal for a new retrieval deal
type DealProposal struct {
PayloadCID cid.Cid
ID DealID
MinerId *abi.ActorId
Params
} Responses will stay the same. Product consideration
The above product concern is addressed by current Venus architecture where the endpoint (venus-market) will initiate a sign request to remote venus-wallet (under that particular miner's custody) by routing the request to venus chain service and thus getting the signature from the remote wallet. Request to different miner will be routed to respective wallet. |
Beta Was this translation helpful? Give feedback.
-
@Fatman13 thanks for putting this proposal together. I would imagine that it may be useful for a client to send a query for a particular payload CID to the endpoint, and to get back responses from several miners, each one specifying a price. For example
|
Beta Was this translation helpful? Give feedback.
-
Proposal
Add minerID as a params for retrieval deal.
Use case
From experiences working with enterprise SPs who has on-boarded PiBs of verified deal, venus-market team has developed features that focuses on multi SP support.
The idea is that multiple SPs sharing the network infrastructure within a IDC could all share one market service to cut down costs and exposing just one multi-address on-chain.
Key merits includes...
Motivation
In order to realize the above use case, we propose adding minerID as a params for retrieval deal.
Given the above architecture, imagine the following scenario...
Discussion
Please feel free to let us know if we should expand more on anything we have presented. Thank you!
Resources
Beta Was this translation helpful? Give feedback.
All reactions