Waku Service Marketplace for all services

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:

  1. Waku discovery to find node that provide a service
  2. Waku reputation logic to select service node
  3. Waku protocol to negotiate price with the service
  4. Waku smart contract to proceed with payment of the service
  5. Waku protocol to send proof of payment to the service node
  6. Service delivery is can be on or off Waku, depending on the service
  7. Assessment of service delivery may be done with or without Waku protocol, depending on the service
  8. Waku reputation to update service node reputation

Let’s dig in same example as above and a new one:

WebRTC STUN/TURN server

  1. Use Waku discovery protocol to fund a STUN and a TURN node
  2. Waku reputation logic (local or global) to select best node
  3. Negotiate price with the service - this could be a req-res Waku protocol (libp2p protocol + specific protobuf format)
  4. 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
  5. ZK proof of ongoing streaming are regularly being sent to service node - again might be either over Waku or via a req-res protocol
  6. Service delivery is “off” Waku: usage of the service node for STUN/TURN protocols
  7. Assessment of the service is custom logic: Was STUN successful? Any disconnection during TURN? What was TURN latency? etc
  8. Convert those criteria into Waku reputation mechanism for later re-use or not of the same service node

AI inference - prompt reply

  1. Use Waku discovery protocol to fund an AI inference with specific model/context ready on GPU
  2. Waku reputation logic (local or global) to select best node
  3. Negotiate price with the service - this could be a req-res Waku protocol (libp2p protocol + specific protobuf format)
  4. 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
  5. 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
  6. Service delivery is “on” Waku: text prompt and text response are sent over Waku Relay
  7. Assessment of the service is custom logic: Was the response delivered? Maybe user can enter some feedback? etc.
  8. Convert those criteria into Waku reputation mechanism for later re-use or not of the same service node
3 Likes