展示HN:一款具有双网络模式(快速和Tor)的P2P即时通讯工具
Show HN: A P2P messenger with dual network modes (Fast and Tor)

原始链接: https://github.com/Realman78/Kiyeovo/

## Kiyeovo:去中心化消息 Beta 总结 Kiyeovo 是一款目前处于 Beta 阶段的对等消息传递应用,优先考虑隐私和去中心化。它提供端到端加密的直接消息,并具有离线投递功能。用户可以选择**快速模式**(低延迟,中继,1:1 音频/视频通话)或**匿名模式**(Tor 路由,速度较慢但更私密)。 主要功能包括群聊、加密文件传输以及个人资料导入/导出。Kiyeovo 没有中央服务器运行;用户可以使用默认设置或自行托管。其核心使用 Electron、React 和 libp2p 构建。 本次 Beta 测试重点收集核心功能反馈。完整版本将增加群组音频/视频通话、屏幕共享、性能改进、安全增强、本地 API 以及表情符号。 Kiyeovo 目前在 Linux 和 macOS 上测试,它通过双网络方法和对 DHT 的依赖来处理离线消息,从而与 Briar、Session、Tox 和 Ricochet 等类似应用区分开来。预配置节点可用于测试,设置说明在文档中提供。

对不起。
相关文章

原文

Beta notice: this is the beta version of Kiyeovo. Expect rough edges, missing polish, and behavior changes before the first full release. Tested on: Linux (Debian, Ubuntu, Lubuntu, EndeavourOS) and macOS.

Kiyeovo is a decentralized peer-to-peer messenger.

  • realtime direct messages are end-to-end encrypted
  • messages can fall back to offline delivery when the other side is not online
  • fast mode is for normal day-to-day use: lower latency, relays, and 1:1 audio/video calling
  • anonymous mode is for Tor-routed messaging. Better anonymity, but slower and less convenient
  • group chats, encrypted file transfer, and trusted profile import/export
  • no central account or message server; you can use the default bootstrap/relay setup or self-host (see the guide)

For technical readers, contributors, and coding agents, start with Kiyeovo_desktop_technical_documentation.md. That is the source-of-truth architecture overview.

The purpose of this beta release is to gain feedback on the core app functionality and feel.

The full version will come with:

  • big UX improvements
  • group audio/video calls (fast mode)
  • screen sharing in calls (fast mode)
  • performance improvements
  • security hardening
  • easier self-hosted infrastructure setup
  • local API interface for agents and external tools
  • emojis 🪐

If you want to try out the beta without self-hosting immediately, you can do that by connecting to one of my nodes listed here.

There is also a tutorial here, but you can just follow the steps below

Requirements for running:

Clone the repo:

git clone https://github.com/Realman78/Kiyeovo.git
cd Kiyeovo
npm run setup
npm run start:local

npm run setup installs dependencies and sets up Tor. If you only plan to use fast mode, npm install is enough.

Local development / testing

npm run setup
DEBUG_MODE=true npm run dev

You can omit DEBUG_MODE=true if you don't plan on reporting any bugs

Technical detail: In the beta version, npm run dev starts Electron with --no-sandbox.

If your machine is not low-end, consider increasing IDENTITY_SCRYPT_N and PROFILE_SCRYPT_N in src/core/constants.ts for stronger protection against local brute-force password attacks, but at the cost of slower unlock/import.

Bootstrap and relay setup

  1. Install dependencies
ROLE=bootstrap npm install
  1. Start a bootstrap node:
BOOTSTRAP_NETWORK_MODE=fast \
BOOTSTRAP_ANNOUNCE_ADDRS=/ip4/YOUR_PUBLIC_IP/tcp/9000 \
npm run bootstrap

The fast bootstrap listener defaults to 0.0.0.0:9000. If you need a different local port, set BOOTSTRAP_LISTEN_ADDRESS.

  1. Start a relay node (if you already ran ROLE=bootstrap npm install):
RELAY_ANNOUNCE_ADDRS=/ip4/YOUR_PUBLIC_IP/tcp/4002 \
npm run relay
  1. Make sure your firewall rules allow TCP on:
9000  # bootstrap
4002  # relay
  1. You should be all set now. You can add the addresses to the list of known bootstrap and/or relay addresses in Kiyeovo by clicking on the network status text in the sidebar header - a dialog shall open up:
/ip4/YOUR_PUBLIC_IP/tcp/9000/p2p/<BOOTSTRAP_PEER_ID>
/ip4/YOUR_PUBLIC_IP/tcp/4002/p2p/<RELAY_PEER_ID>
  1. Run the setup script
ROLE=bootstrap npm run setup
  1. Install and start a Tor daemon on the host. Example on linux:
apt update
apt install tor
systemctl start tor
systemctl enable tor # if you want to enable it on startup
systemctl status tor # verify it's running
  1. Configure a hidden service that forwards the public onion port to the local bootstrap listener. Example on linux - add the below config to /etc/tor/torrc:
HiddenServiceDir /var/lib/tor/kiyeovo-bootstrap/ # you will find your onion hostname here later
HiddenServicePort 9000 127.0.0.1:9001

After changes, restart the tor service: systemctl restart tor

Find your onion host: cat /var/lib/tor/kiyeovo-bootstrap/hostname

  1. Start a bootstrap node in anonymous mode:
BOOTSTRAP_NETWORK_MODE=anonymous \
BOOTSTRAP_LISTEN_ADDRESS=/ip4/127.0.0.1/tcp/9001 \
BOOTSTRAP_ANNOUNCE_ADDRS=/onion3/YOUR_ONION_HOST:9000 \
npm run bootstrap

If you host both fast and anonymous bootstrap nodes on the same machine, keep fast mode on 0.0.0.0:9000 and anonymous mode on local 127.0.0.1:9001.

  1. The setup is done. Now you can add the address to the list of known bootstrap addresses in Kiyeovo by clicking on the network status text in the sidebar header - a dialog shall open up:
/onion3/YOUR_ONION_HOST:9000/p2p/<BOOTSTRAP_PEER_ID>

The relay is not needed in anonymous mode.

(Optional) STUN/TURN for calls in Fast mode

Calls are currently fast-mode direct 1:1 calls.

If you want to self-host calls, a simple path is outlined below. Keep in mind, depending on your and the other party's router setting, you might not even need the TURN server.

  1. Set up a TURN server such as coturn. Example on linux:
    • install coturn with apt install coturn
    • run sed -i 's/^#TURNSERVER_ENABLED=.*/TURNSERVER_ENABLED=1/' /etc/default/coturn
    • add the configuration below to /etc/turnserver.conf:
listening-port=3478
fingerprint
lt-cred-mech
realm=kiyeovo
user=USERNAME:PASSWORD
external-ip=PUBLIC_IP
min-port=49160
max-port=49200
no-cli
  1. Set up firewall (if firewall is enabled)

    • ALLOW TCP and UDP on port 3478
    • ALLOW UDP on port range 49160:49200.
    • From before: if you are running bootstrap and relay, ALLOW TCP on ports 9000 (bootstrap) and 4002 (relay)
  2. Run systemctl enable --now coturn

  3. The servers should be running now. You can add the server addresses inside Kiyeovo by clicking on the network status text in the sidebar header - a dialog shall open up:

You can add multiple ICE servers. Kiyeovo supports stun, turn, and turns entries.

The desktop app is built with Electron, React, and libp2p.

How this differs from similar solutions (roughly)

This comparison reflects the current beta version. The final version differences may differ.

  • Briar: Briar runs everything over Tor and also supports syncing via Bluetooth, Wi-Fi or memory cards. Kiyeovo instead has two separate, and completely isolated, network modes -> Fast (clearnet) and Anonymous (Tor) - you can choose between performance (and additional features) and anonymity
  • Session: Session uses its own network of nodes to send and store messages. Kiyeovo uses pure libp2p and stores offline messages in the DHT - simpler, but not guaranteed "always-on".
  • Tox: Tox runs as one global P2P network. Kiyeovo splits things into two separate networks depending on the mode.
  • Ricochet: Ricochet is simple Tor-based messaging. Kiyeovo is more full-featured, with groups, offline messages, file transfer, and calls (in fast mode).

Connect to already existing nodes

These nodes will be shut down on April 19th 2026.

  1. Frankfurt

    • Anonymous mode Bootstrap: /onion3/rnuq4snx4mpxu26z5t6kkimba2gkjmvuqbc3p5vkgwzafc346fxwb3yd:9000/p2p/12D3KooWM8ZWvVdr2SGo7S2zZ2mCfJoeg6YH6x9KYnM1adzq56Uu
    • Fast mode Bootstrap: /ip4/188.166.161.63/tcp/9000/p2p/12D3KooWBWfaXd9YLkA2VwRAggsiG3ccTmEwGCdn7uJc3fE8qai9
    • Relay: /ip4/188.166.161.63/tcp/4002/p2p/12D3KooWLYvrbj3mXSM32Jfie9apftrNsBsJN2Ewv1EPWsGY5nei
    • STUN: stun:188.166.161.63
    • TURN: turn:188.166.161.63:3478?transport=udp kiyeovo:marinparin
  2. Amsterdam

    • Anonymous mode Bootstrap: Coming on April 2nd 2026
    • Fast mode Bootstrap: /ip4/68.183.15.8/tcp/9000/p2p/12D3KooWEL2tNuaYNxKE9fh4KufvW9TnjzmnS1xBFdbUYtq8N5qx
    • Relay: /ip4/68.183.15.8/tcp/4002/p2p/12D3KooWRpVU72wHWFEQidYtNhGNvWNHq4rYgk4a8oy2gsEDitcU
    • STUN: stun:68.183.15.8:3478
    • TURN: turn:68.183.15.8:3478?transport=udp kiyeovo:marinparin
  3. New York

    • Anonymous mode Bootstrap: /onion3/yzwpxyhhydqka3zbip4om6ufhsbhoyp4bvzakimtj6eeqothaybrayyd:9000/p2p/12D3KooWDXLMQhUJQ3CQzhkQTwN8PiCYvdACfUXmV4tvdy79SfLp
    • Fast mode Bootstrap: /ip4/157.230.222.64/tcp/9000/p2p/12D3KooWRDGQrpo1rFBLuhjzkj5dX89u1UuRizKYcYtdwop3rc8V
    • Relay: /ip4/157.230.222.64/tcp/4002/p2p/12D3KooWBEEs9DJiBSExDYdT92FBeDuAnABrBQgN9WB6k98UAUPF
    • STUN: stun:157.230.222.64:3478
    • TURN: turn:157.230.222.64:3478?transport=udp kiyeovo:marinparin
  4. San Francisco

    • Anonymous mode Bootstrap: /onion3/pxp6m3daukt7yrn7h76vryazz3azurwspnc75rtduphyo5qua77g7iqd:9000/p2p/12D3KooWPoLM2YyAgfACU27Dds7ELL4DwabrsUH39kdjv9SKRuFw
    • Fast mode Bootstrap: /ip4/143.198.137.240/tcp/9000/p2p/12D3KooWL9V168N9rzJ2HP5aWKdJMUDtbYWca5ojDtELWWggddVu
    • Relay: /ip4/143.198.137.240/tcp/4002/p2p/12D3KooWKx9xPFweD6isahRpjkNR6BxEtJKpbZvvfskb44E8q83x
    • STUN: stun:143.198.137.240:3478
    • TURN: turn:143.198.137.240:3478?transport=udp kiyeovo:antique_cash_123
联系我们 contact @ memedata.com