about DSNP

about DSNP

DSNP is yet another web-oriented server-centric decentralized social network, but it doesn't have to be. The core routing daemon is written in C++, runs a custom half binary half textual protocol and does some pretty smart things with it.

The outer social logic however is unfortunately implemented in PHP. Users are expected to use some friend's server but you could run it locally on your computer.

We pointed out some particularities of this technology in the comparison document.

The protocol has an outer routing and encryption shell, while the actual content messages are in a syntax halfway between IRC and HTTP. A more evolution-friendly syntax is recommendable here.

One thing is quite unusual: DSNP has a super complicated model of 1-1 "relationships" with 4 levels of private and public key pairs for each couple of users. The purpose of this is explained deeper in the protocol specification.

What needs to be fixed

Should we consider DSNP for secushare, here are some things to improve:

  • Throw out the inefficient base64 encoding of binary data!! Maybe this is part of the text-based protocol so replacing it with libpsyc solves this.
  • Don't do automatic connection killing (called "timeouts").
  • Think of strategies how this can be operated P2P to avoid the server-centric approach and its trust implications.
  • Add (optional) padding of packets to achieve unobservability.
  • Add optional routing via other peers to add untraceability.
  • Add multicasting.

DSNP is cool but it is still too federation- and web-oriented, so it would need too much work to go where we want to go.