Diverse Facilitators and URL Protocols for SHIP and SLAP Overlay Advertisements
Ty Everett (ty@projectbabbage.com)
Status
This document is currently aspirational rather than descriptive of the interoperable behavior implemented by bsv-blockchain/ts-sdk.
Current resolver and broadcaster implementations:
expect concrete host base URLs in SHIP and SLAP advertisements,
use
https:in production,allow plain
http:only for the SDK'slocalpreset,and do not currently negotiate composite schemes such as
https+bsvauth+smf:or non-HTTP transports directly from advertisement URLs.
Implementers SHOULD therefore treat the mechanisms described below as future extension ideas, not as present-day interoperability requirements.
Currently, there are only HTTPS URLs within SHIP and SLAP advertisements.
This https: scheme indicates that, according to pre-defined rules (like headers and the /submit or /lookup paths), submission or lookups are facilitated over the HTTPS protocol.
However, sometimes we want to do things like:
Authenticate users before accepting transactions or facilitating lookup
Charge a payment for transaction submission, or pay the sender if a transaction is accepted
Charge a payment for lookup queries
Submit private or off-chain values alongside a transaction
Submit non-final transactions that deal with interim states
Facilitate real-time lookups with WebSocket or based on live / non-final transactions
Advertise certain IPv6 capabilities and bridges
Advertise non-HTTPS or non-internet communications systems like radio / JS8 Call
In these scenarios, other schemes can be used within the "protocol" portion of the URL.
For example, current SHIP/SLAP only contemplates URL schemes like https://example.com.
However, a new URL might be something like:
SHIP https+bsvauth+smf://example.com (HTTPS with BSV Auth and Service Monetization Framework enabled)
SHIP https+bsvauth+scrypt-offchain://example.com (HTTPS with BSV Auth and sCrypt off-chain values for transaction submission)
SHIP https+rtt://example.com (HTTPS with real-time transacting support, e.g. non-finals accepted)
SLAP wss://example.com (real-time event-listening live web-socket lookup response streaming)
SLAP js8c+bsvauth+smf:?lat=40&long=130&freq=40meters&radius=1000miles (lookup is advertised using JS8 Call protocol at a given set of GPS coordinates, a given frequency and radius, with BSV Auth and Service Monetization Framework enabled.
These proposed SHIP and SLAP schemes would allow the advertisement of Overlay Services with more advanced capabilities, including real-time updates from lookup services, non-final transaction submission, mutual authentication, payment, off-chain/private value submission, and non-HTTP transport mechanisms.
Compared to plain HTTPS, they may eventually provide a significant improvement. However, until a concrete facilitator specification and interoperable implementation exist, wallets and overlay clients SHOULD assume plain HTTPS base URLs (or local HTTP for development) when processing SHIP and SLAP advertisements.
Last updated
Was this helpful?

