Hacker News Viewer

Show HN: A P2P messenger with dual network modes (Fast and Tor)

by Realman78 on 4/2/2026, 3:32:45 PM

Hello HN,<p>I have been working on a desktop P2P messenger called Kiyeovo for the last ~8 months, and I just published its beta version.<p>Quick backstory: It started out as a CLI application for my Graduate Thesis, where I tried to make the most secure and private messenger application possible. Then, I transformed it into a desktop application, gave it &quot;clearnet&quot; support and added a bunch of features.<p>Short summary:<p>The app runs in 2 completely isolated modes:<p>- fast mode: relay&#x2F;DCUtR -&gt; lower latency, calls support<p>- anonymous mode: Tor message routing -&gt; slower, anonymous<p>These modes use different protocol IDs, DHT namespaces, pubsub topics and storage scopes so there’s no data crossover between them.<p>Messaging works peer-to-peer when both parties are online, but falls back to DHT &quot;offline buckets&quot; when one of them is not. To ensure robustness, messages are ACK-ed and deleted after being read.<p>Group chats use GossipSub for realtime messaging. Group messages are also saved to offline buckets in order for offline users to be able to read them upon logging in. Kick&#x2F;Join&#x2F;Leave events are also propagated using the DHT. Group metadata and all offline data is of course encrypted.<p>Other features: Chats are E2E, file sharing is supported, 1:1 audio&#x2F;video calls are supported (only in fast mode though, using WebRTC)<p>Tradeoffs: Tor has noticeable latency, offline delivery is not immediately guaranteed, but rather &quot;eventually consistent&quot;; beta version does not have group calls yet.<p>I’d appreciate feedback, that&#x27;s why I posted this as a beta version<p>Repo: <a href="https:&#x2F;&#x2F;github.com&#x2F;Realman78&#x2F;Kiyeovo" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;Realman78&#x2F;Kiyeovo</a>

https://github.com/Realman78/Kiyeovo/

Comments

by: kvisner

So most messaging apps rely on a phone number or centralized server to provide a means of making atleast the initial connection. In a purely P2P messaging system, how do I, as a user, find the other person I might want to talk to?

4/2/2026, 10:21:55 PM


by: blamestross

I don&#x27;t recommend DHTs with public participants being made from scratch. Use mainline bittorrent DHT instead. Small networks are really easy to eclipse and censor.<p>DHTs of trusted participants are great.

4/2/2026, 9:49:19 PM


by: kopitev174

I worked on a p2p group chat app for a short time (no central server, same as this), but the group updates were a real problem. how do they get distributed?

4/2/2026, 4:19:20 PM