Skip to content

Latest commit

 

History

History
48 lines (36 loc) · 2.83 KB

extensions.md

File metadata and controls

48 lines (36 loc) · 2.83 KB

Extensions

Extensions are used to adapt the core protocol to a multitude of different needs and experiment with new patterns atop telehash. This is the place for application developers to look through to see if there are any existing solutions that closely match their needs. Sometimes these extensions are supported by an implementation or a module for one, and sometimes they are just definitions of best practices for an application.

This is also where any switch implementers use as a reference to add new features and support for additional network transports.

There are four primary categories of extensions:

  • Channels - Any use of common channel types or patterns of how to use a channel
  • Networks - Definitions of how to use the protocol on different network transports
  • Bindings - Mappings of existing common protocols onto telehash
  • Core - These are proposals and ideas around extending the core protocol
# Channels
  • box - Asynchronous communication between two hashnames
  • verb - Version information/negotiation, capabilities detection
  • chat - Chat/Messaging, 1:1, small groups, public and private
# Networks
  • HTTP - Using HTTP as a network transport (for when UDP isn't available)
  • WebRTC - For switches in browsers, they can still use telehash P2P via WebRTC Data
  • Bluetooth/BLE - How to send/bridge telehash over Bluetooth and use BLE for discovery
  • LAN - Local Area Network seed discovery
  • TCP - Sending packets over TCP instead of UDP, very limited/special case utility
  • 802.15.4 - Using telehash for device/sensor RF mesh networks
# Bindings/Mappings
  • TeleSocket - Implementing the WebSocket simplified interaction over telehash
  • XMPP - How XMPP clients can use telehash for direct messaging and media with end-to-end encryption
  • THTP - Running HTTP over telehash
  • NTP - Using NTP for time sync between hashnames
  • IP - Tunneling IP traffic over telehash
  • SOCK - Minimal TCP-style socket mapping
  • Serial - Mapping a serial port interface into a channel
# Core
  • ORT - Opaque Routing Tree, ability to connect w/o knowing source/destination network addresses
  • Shaping - Packet shaping to obscure size or timing based traffic analysis
  • Mesh - How to add support for local mesh routing/discovery decisions (sensor networks, neighborhood wireless, etc)