Just to re-iterate on this because the wording can be a bit confusing.
What we are building right now is a “Waku-service marketplace”.
Meaning that it is a marketplace, where users can buy “Waku services”, and providers can sell “Waku services”.
Waku services are:
- Waku Store
- Waku Filter
- Waku Lightpush
Once we have that, it may be interesting to expand the market place to “non-Waku services”. Or “Generalized off-chain service marketplace”.
Meaning users and providers would use the same Waku infrastructure, beyond message routing:
- Waku discovery to find node that provide a service
- Waku reputation logic to select service node
- Waku protocol to negotiate price with the service
- Waku smart contract to proceed with payment of the service
- Waku protocol to send proof of payment to the service node
- Service delivery is can be on or off Waku, depending on the service
- Assessment of service delivery may be done with or without Waku protocol, depending on the service
- Waku reputation to update service node reputation
Let’s dig in same example as above and a new one:
WebRTC STUN/TURN server
- Use Waku discovery protocol to fund a STUN and a TURN node
- Waku reputation logic (local or global) to select best node
- Negotiate price with the service - this could be a req-res Waku protocol (libp2p protocol + specific protobuf format)
- Proceed to payment of the service using an anonymous streaming smart contract to remove linkability between IP and user’s wallet address and avoid full upfront payment
- ZK proof of ongoing streaming are regularly being sent to service node - again might be either over Waku or via a req-res protocol
- Service delivery is “off” Waku: usage of the service node for STUN/TURN protocols
- Assessment of the service is custom logic: Was STUN successful? Any disconnection during TURN? What was TURN latency? etc
- Convert those criteria into Waku reputation mechanism for later re-use or not of the same service node
AI inference - prompt reply
- Use Waku discovery protocol to fund an AI inference with specific model/context ready on GPU
- Waku reputation logic (local or global) to select best node
- Negotiate price with the service - this could be a req-res Waku protocol (libp2p protocol + specific protobuf format)
- Proceed to payment of the service using an anonymous streaming smart contract to remove linkability between IP and user’s wallet address and avoid full upfront payment
- ZK proof of ongoing streaming are being sent to service node with each prompt this could just be a protobuf format, that leaves space for application payload - here being the user’s “prompt” to use for AI generation
- Service delivery is “on” Waku: text prompt and text response are sent over Waku Relay
- Assessment of the service is custom logic: Was the response delivered? Maybe user can enter some feedback? etc.
- Convert those criteria into Waku reputation mechanism for later re-use or not of the same service node