PSYC is skipping version 1 as it never really came to a fully implemented version and is likely to move on directly to version 2. The main difference not being the syntax upgrade we made in the late 2000s which applies to both and is implemented in libpsyc, but a fundamental change in architecture.

By combining the PSYC message format with pseudonymous routing technology such as GNUnet some fundamental concepts of previous PSYC are obsoleted. The routing layer using uniforms no longer makes sense since DNS and federation are deprecated and senders and recipients are potentially implicit in the applied public key cryptography.

In any case the routing layer is to be integrated with GNUnet, leaving the most interesting challenge somewhere in the mix of layers: the multicast implementation.

This cryptographically implicit and authenticated routing information simplifies various aspects. An entity is distinguished by the fact that it has its own cryptographic identity, not by a string in a uniform. Distributed authority over a context also becomes simple: Anyone who owns a copy of the private key is in charge.

The complex protections against DNS spoofing implemented in psyced become obsolete for PSYC2. Also X.509 certification is happily unnecessary since it cannot replace a solid web of trust. Instead P2P technology brings us advanced DHT capabilities, check out resolution by GNS in particular, which allows to look-up any parameters that we used to append to a uniform in a single go with the public key of the respective entity.

Most of the rest of the PSYC thinking however remains in place, so this website is still of relevance in order to understand many aspects of it.

In fact the page on pseudonymous routing actually discussed the differences of the approaches back in 2010. It pointed out that lacking a server it becomes tricky to implement advanced chatrooms and answering machines. Some thoughts about that:

  • We can have decent default behaviour which works for the majority of users and chatrooms.
  • We can leave our devices on. We can make smartphones not be bothered for much traffic and yet in charge of certain things.
  • We can allow some nodes to have special server style jobs.
  • We can implement actually distributed context masters, and have multiple nodes run their specific code. Look up distributed conference control for this.