We believe that direct human-to-human interactions are at the core of what make decentralized technology valuable. Online user-to-user interactions (social, economic, email etc) have come to rely almost exclusively on centralized intermediaries. It should be easy for blockchain application developers to facilitate secure hear-to-heart connections.

What it does

We propose a Decentralized Session Negotiation Protocol (DSNP). DSNP is a collection of economic incentives and tooling that support a decentralized session negotiation ecosystem. DSNP works by piggybacking on existing blockchain networks such as Bitcoin. The current implementation functions as a decentralized signaling service.

How we built it

We created a bcoin plugin that runs a signaling server. We utilized web-sockets to facilitate a p2p connection between node-connected clients. We modified bcoin-docker to make it easy for developers to deploy bcoin nodes with our plugin, We created an Angular web application to demonstrate how developer would create and deploy applications using our bcoin plugin. The web application uses bcoin as a signaling server to establish a p2p connection between browsers using WebRTC.

Challenges we ran into

  • ssl certificate for Websocket can be a challenge in decentralized apps
  • economic incentive design is tricky
  • sending custom message types over Bitcoin network

Accomplishments that we're proud of

  • high level protocol specification is complete
  • our bcoin plugin is fully tested
  • our demo works

What we learned

  • bcoin is awesome and easy to extend
  • lightning network backs incentive structure

What's next for DSNP

  • implement ICE / TURN server functionality for bDSNP
  • integrate DSNP as service on Cosmos that interacts with the Cosmos Hub
  • bitcoin core implementation of DSNP
  • off-chain reward payments with Lightening
  • DSNP on Ethereum as a TCR (Token Curated Registry)
  • R&D on implementing DSNP in an Ethereum Plasma Chain
  • power peer discovery and session negotiation in browser based blockchain applications
  • decentralized telephony
Share this project: