0
votes

I want to design a market place for certain tasks on Corda. The network should have two types of users, requesting parties, that require certain information and fulfilling parties that deliver the information. It should function like this:

  1. A party posts a request for certain data to all fulfilling participants on the network.
  2. Every fulfilling party that is able to provide the data can now fulfil the request and update the state.

How I would currently solve this:

  1. The requesting party creates a state which also describes what data is requested. All fulfilling parties on the network would have to participate in the state to see it.
  2. Any fulfilling party that wishes to fulfil the request can update the state and supply the requested data.

I see the following problems with the architecture

  • The requesters need to keep track of all fulfilling parties in the network to include as participants
  • Multiple parties might be racing to fulfil a request first
  • The vaults of fulfilling parties would become cluttered with requests they didn't want to fulfil

Does anyone have some advice on how to efficiently design such a system?

1

1 Answers

1
votes

Here my idea. You could think the other way round:

  • The requester issues a temporary "call for info" state on the ledger with the only scope to show the existence of such request to everybody offline (via a web page connected to his vault, for example). This state is a one-off state;
  • All the other parties see this state through the webpage where there are also the indication of how to start the transaction chain (let's call it "StarterFlow") to send the requested information;
  • Requester receives the "StarterFlow" from the other party. The "call for info" state (on the webpage) becomes historic;
  • Requester now starts another flow (or keep using the "StarterFlow") with the party where he asks the information that he needs.

This way you avoid the parties to receive lots of requests from the requester also when they are not interested. Also, it is a first come first serve process. The fulfilling race has to be managed by the requester.

Of course the marketplace is something visible only by the members of the private network.