Hi! Recently, I’ve made a proposal on the subject — A preliminary discussion of the “Workswap” protocol.
In particular, my answers to the mentioned questions are the following:
On what criteria would service 1 chose to use service 2 or service 3?
For example, I can train this set of algorithms (services 2 and 3) through regression, after a while, I will be able to predict better or worse which is the best solution for a specific input.
- Each peer, that uses services, accumulates statistics about the service provider peers. These statistical data then is used to rank the providers as “good” and “bad” and for prediction.
- The providers are ranked with various values including their availability, percent of communication errors, communication rate and communication ratio.
- The communication ratio between the peers is the same thing as the credit/debt balance in the Bitswap protocol, but this time it counts for both static and dynamic traffic between the peers giving a way to trade static content for dynamic content and vice versa.
- The accumulated statictic of a peer can itself be made public in a form of a service helping the others to select between yet unknown providers.
How will service 1 discover service2 and 3? (And 4 and 5)?
You could also add another competent service to 2 and 3 to your training and selection service.
I see the discovery procedure following way:
- service maintainers publish services descriptors on their IPNS;
- these descriptors include the list of endpoints that actually provide the described services;
- the endpoint peers (the providers) publish some counter-authorization data on their IPNS to confirm the fact they are active providers of the corresponding services;
- in addition to endpoints the service maintainer can publish downlinks — the links to sub-maintainers.