Parley:単なるIRCで通じる分散型の連合チャット

2026/09/28 19:30

Parley:単なるIRCで通じる分散型の連合チャット

RSS: https://news.ycombinator.com/rss

要約▶

Japanese Translation:

Parley は、IRC を基盤とした連合型チャットネットワークであり、プラグイン不要の標準クライアントを用いてインスタンス間での通信を可能にします。これは、E メールのようなアイデンティティをニックネームに変換する仕組みと、DNS SRV レコードおよび

/.well-known
JSON ドキュメント(Ed25519 公開鍵を含む)を利用して、接続発見、アイデンティティ認証、署名確認を実現することにより達成されています。システムは、インスタンス同士がグシッププロトコルを通じてピア情報を自動的に交換し、手動構成なしで動的なクラスターを形成する分散メッシュとして動作します。Parley は現在、ロータリー SQLite データストレージ per インスタンスを持ち、OpenID Connect などのモダンな認証方式をサポートする機能性のある概念実証段階ですが、エンドツーエンド暗号化、ユーザ固有の鍵、チャネル運営者/モード、Web ベースのクライアント、
/nick
などの伝統的な IRC コマンドといった重要なプロダクション準備状態の機能を欠いています。また、モデレーションはチャネル所有権ではなくブロックリストに依存しています。WeeChat や irssi などのツールに対するセットアップが簡略化されるという利点がある一方で、セキュリティ、機能、データ整合性に関するこれらの現行の制限により、安全なエンタープライズ展開への即時適性は限られています。

本文

Parley: 連邦化された非集中型チャットネットワーク

Parley は、中央管理者を持たない、標準的な IRC 言語を使用する分散型のチャットネットワークです。各ユーザーやチームが独自ドメイン上の小型インスタンスを運用し、DNS とアイデンティティドキュメントを通じて互いを見出し、署名されたメッセージを交換することで、プラグインなしで通常の IRC クライアント(irssi, WeeChat, Textual など)から連邦化されたネットワークとして機能します。


基本概念と仕組み

アーキテクチャ

  • 非集中型構造: 中央サーバーではなく、各ドメイン (
    alice@foo.com
    ,
    bob@bar.com
    など) が独立したインスタンスを運用します。
  • アイデンティティ管理: メールアドレス形式を採用し、各インスタンスが互いを発見・通信します。
  • 現在のステータス: 実用的な概念検証(PoC)段階です。設計全体のエンドツーエンド動作は確認済みですが、完全に強化されているわけではありません。

クライアントとの連携

既存の IRC クライアントで動作し、以下の機能を拡張しています:

主要機能

  • 標準 IRC プロトコル: PASS または SASL PLAIN でログイン可能な標準 IRC 形式を前面に配置。IRCv3(サーバー時刻、メッセージタグ、マルチプレキシングなど)をサポート。
  • タイプインジケーター: TAGMSG を介してクライアント固有のタグを連邦間でリレー。履歴から復帰しても
    +reply
    が正しく機能し、ドラフトや複数行テキストを 1 つのメッセージとして扱えます。
  • スクロールバック (Scrollback): CHATHISTORY でチャンネルと DM をページネート可能。参加時に見られなかった内容を再生(リプレイ)できます。スマホで「既読」にマークするとデスクトップ表示も同期され、再開位置を自動検知します。
  • アカウント管理: 設定ファイルではなくインスタンスデータディレクトリ内に保存。
    parleyctl
    、管理ページ、HTTP API、または OpenID Connect (SSO) で作成・管理可能。ボットも「ボットロール」を持つアカウントとして扱われます。
  • 発見機能: DNS (
    _parley._tcp.<domain>
    ) と WKID による自動ピアリング。Salty IM の仕組みと同様のアプローチを採用。
  • 署名された HTTP 連邦化 (Federation): JSON ドキュメントに ed25519 署名を付与し、相互検証可能な通信を実現。開放型(Open)フェデレーションに対応。
  • 自動ピアリング: 新しいドメインとのメッセージ送信時、インスタンス間が自動的にリンクされ、設定なしでメッシュネットワーク形成。

チャネルとモデレーション

  • チャンネル種類:
    • #dev
      (グローバル): 全連携インスタンスに複製される共有空間。トピックやオペレーター機能はありません。
    • &notes
      (ローカル): インスタンス内限定のチャンネル。外部からは不可視であり、トピック管理用の場所です。
  • モデレーション方針: チャンネル所有権がないため、「追い出し」は行えません。代わりにマスクベースのブロックリスト (
    /ban
    ) を使用します。
    • 個人制限:
      /ban quark@example.com
    • インスタンス全体制限:
      /ban *!*@example.com

アドレスと履歴

  • IRC アイデンティティ: ユーザーニックネームはホスト名なしのローカル部分のみを使用(例:
    alice
    )。表示は
    alice!alice@foo.com
    となり、WHOIS コマンドなどでドキュメントにアクセス可能です。
  • 永続的履歴: チャンネルログは SQLite に保存され、全文インデックス付き検索が可能。ピアが復旧すると不足した履歴を自動プルします。

設定と実装ガイド

インスタンスの起動(Quick Start)

本番環境では以下の要件を満たす必要があります:

  1. 実際のドメインと DNS:
    _parley._tcp
    SRV レコードをセットアップ。
  2. TLS/HTTPS: リバースプロキシで TLS を終端し、ポート
    8443
    で HTTPS を提供。
  3. IRC プロキシ化: クライアントへの IRC 接続 (
    6697
    ) は TLS 経由とし、前面で TLS を終端する設定が必要。
  4. SRV レコード: 他インスタンスの発見用として必須(欠落すると well-known ドキュメントにフォールバック)。

Docker Compose の基本構成

# docker-compose.example.yml の出発点
version: '3'
services:
  parley:
    image: prologic/parley
    ports:
      - "8443:8443"
      - "6697:6697" # IRC ポート(プロキシ化済みの場合)
    volumes:
      - ./data:/data
    environment:
      - PARLEY_DOMAIN=chat.example.com
      - PARLEY_DATA_DIR=/data
    # TLS 証明書や認証設定を追加

アカウント作成

  • 管理者トークンがない場合、ブラウザで
    /setup
    URL を表示して初期管理者を作成。
  • OpenID Connect (SSO) またはリバースプロキシヘッダーでのログインも対応。
  • ユーザーは設定ページから IRC トークンを発行可能。

コマンドラインツール: parleyctl

  • parleyctl check
    : SRV レコード、well-known ドキュメント、TLS ポートなどをプローブし、問題を報告(トークン不要)。
  • parleyctl peers
    : ピアリング状況の確認と制御。
  • parleyctl settings import
    : 設定ファイルからの一括適用(
    config.json
    -> データベース移行)。

重要設定項目一覧

パラメータは環境変数 (

PARLEY_...
) またはフラグ (
-flag
) で指定します。データベース保存後の変更は再起動不要です。

フラグ/設定項目環境変数対応デフォルト備考
PARLEY_DOMAIN-domain必須アイデンティティドメイン
PARLEY_DATA_DIR-data./data鍵、DB、ピア情報の保存先
PARLEY_IRC_LISTEN-irc:6667IRC リスナー(平文)
PARLEY_HTTP_LISTEN-http:8443Web UI / Discover リスナー
PARLEY_ADMIN_TOKEN-admin-tokenオフ管理 API の認証トークン
PARLEY_TRUSTED_PROXIES- (ヘッダー)オフリバースプロキシへの対応設定

プロキシとアドレス制限の設定注意

  • TCP プロキシ背後:
    irc_proxies
    で PROXY ヘッダーを追加し、クライアントアドレスを正確に把握する必要があります。
    • 設定変更時は同時に変更し、元に戻せる準備を。
    • max_conns_per_addr
      : アドレスごとの接続制限を有効にするにはオン(デフォルトオフ)。
  • ウェブリスナー:
    http_proxies
    で X-Forwarded-For を信頼。
    • auth.trusted_headers.proxies
      ではなく、
      PARLEY_TRUSTED_PROXIES
      を使用してください。

アップグレードとメンテナンス

バージョン履歴と注意点

  • v0.6.0: アカウント別のメッセージレート制限導入(デフォルト:1 秒あたり 1 通)。旧動作に戻すには
    message_rate=0
    を設定。
  • v0.5.0:
    • ユーザーID表記変更 (
      alice:foo.com
      )。
    • history_replay
      デフォルト値が 20→50 に増大。
    • /api/v1/status
      がチャンネルメンバー情報を公開しなくなった(セキュリティ強化)。
  • v0.4.x 以前:
    -user
    パラメータは廃止され、データ移行が必要になる場合があります。

データバックアップと鍵の管理

  • 重要:
    <data_dir>/identity.key
    は復元不可能。このファイルを失うと、信頼関係が切断され修復には全ピアからの再信頼が必要です。必ずバックアップしてください。
  • 鍵の更新: 漏洩時や破棄時は、新しい鍵ペアを生成して
    parleyd
    を再起動するだけで自動回復します。古い鍵は
    .bak
    ファイルとして保持されます。

制限事項とロードマップ

現在の制限

  • 暗号化: インスタンスレベルの鍵のみ。ユーザー別鍵または E2EE (Salty IM 風) は将来的に追加予定。
  • チャンネル機能: モードやオペレーター機能は設計上存在しません(グローバルチャンネルは所有者不在)。
  • ニックネーム: アカウントにバインドされており、
    /nick
    コマンドは使用できません。
  • クライアント: 専用の Web チャットクライアントは用意されていません(既存 IRC クライアントが対象)。

今後の計画(ロードマップ)

  • WKID を介したユーザー別鍵公開と E2EE DM の実装。
  • IRCv3 機能の追加(メッセージ改ざん防止、ユーザーメタデータレジストリの充実など)。

ライセンス

MIT ライセンスを適用しています。詳細は

LICENSE
ファイルを参照してください。

同じ日のほかのニュース

一覧に戻る →

2026/09/29 5:23

ジェフ - ホームで学習した Jev 互換の 08B 意思決定モデル、約 30ms

## Japanese Translation: 「Jeff」スートは、**Qwen3.5**および**Gemma 4**アーキテクチャに基づく独立したファインチューニング済みモデルの集合であり、テキスト生成や外部パースなしで超高速なゼロショット分類を可能にします。これらの Apache 2.0 ライセンス付きモデル(NVIDIA GPU/PyTorch または Apple silicon MLX 経由の `uv` で入手可能)は、単一のフォワードパスで校正された確率を返し、ハイエンド消費者向けハードウェア上での意思決定時間は約**22–30ms**(より大きな独立したプロジェクトに比べて著しく高速)です。従来の手法とは異なり、TypeSafe Jev エコシステムとは互換性を持つが affiliated ではないリクエストフォーマットを用いて、ローカルコードに直接スロットリングします。ベンチマークでは、Jeff モデルが分類やグラウンディングタスクにおいて未トレーニングのベースモデルと同等かそれ以上に優ることが示されています(例:Jeff-Qwen3.5-2B のスコアは 83.1 で、Jev の 83.0 を上回っています)が、小さいパラメータ数においては推論能力には限界があります。重要な点は、成功は特定のプロンプトフォーマットに依存しており(標準的な Jev プロンプトでは機能せず、結果の文言を明記する必要がある)、選択肢の構造が一貫していることです。このスートは軽量パイプライン向けの展開で独自の利点を提供し、一部のバリエーションはファインチューニングを通じて特定のゲーム様態タスクにおいてより大きなモデルを上回るパフォーマンスを示しますが、開発者は 2B バリエントにおける潜在的なリスク回避傾向や、高いベンチマークスコアが必ずしもプレイアビリティの信頼性を保証するわけではないという注意点に対処する必要があります。

2026/09/26 19:16

12,000年前のゲベクレテペ墓から分骨の謎が解明された

## Japanese Translation: 考古学者は、トルコの Göbeklitepe における埋葬慣行を解明し、先陶器新石器時代 B 期(紀元前 8700–8000 年頃)に属する未発掘の地下 2 つの埋葬を検出しました。Burial 1 は、L09-65 トレンチ内の長方形建物の床下に発見され、少なくとも 3 名の遺骸が含まれていました:女性(35 歳以上)、男性(20–30 歳)、少女(11–14 歳)。Burial 2 は DR1 トレンチに位置し、左側を向いて屈曲した東向きで寝ている 20–30 歳の青年女性でした。どちらの埋葬も切断痕、熱損傷、またはオクロを使用していない点で特徴的であり、骨は齧歯類による咬み跡および圧力あるいは石灰質堆積物による骨折を示していました(これらは Burial 2 の大部分を破片化しました)。これらの通常の床下墓は後に土壌移動や斜面崩壊によって乱され、緩い骨の断片が斜面を下ってモニュメンタルな建物へと運ばれました。このプロセスは、1995 年以来回収された数百個の散在する断片(単独の頭蓋を含む)を説明し、遺骸の混雑が単一の異常な儀式の結果ではなく、主に自然な移動によるものであることを示しています。これにより多くの証拠の説明が可能となりますが、以前の意図的な頭蓋変形や頭蓋骨断片のより高い比率は、一部の個人が依然として特別扱いを受けたことを示しており、複数の慣習が共存していた可能性が高いです。これらの発見は Göbeklitepe の新石器時代埋葬伝統の解釈を再構築させ、研究者が各断片が独特な儀式に属するとは見なすことなく人口動態パターンを再構築することを可能にします。今後の研究では、直接年代測定と詳細な骨分析を通じてこれらの異なる慣行が発生した時期を特定することに焦点を当てます(PloS One, 2026 年発表)。

2026/09/29 3:58

マイクロLLM ラブブラウザで7つの超小型LLMを試せ

## 日本語訳: ## まとめ: 本システムでは、ブラウザセッション内での持続的なデコード速度と精度を測定することで AI モデルのパフォーマンスベンチマークを行い、すべてのデータがプライバシー保護された状態かつローカル環境で留まることを保証します。このアプローチは、外部の歴史的な基準値よりもリアルタイム評価を優先し、ユーザーのマシーン上で直接迅速な反復を可能にします。特に、テストフレームワークは、1.35 億パラメータ版のような小型モデルであっても特定のチェックで失敗するよう許容しており、限界を隠蔽せずに正確な機能報告を保証します。パフォーマンス推定値では、利用可能な場合、ユーザーの最新のトークン/秒(tps)値をデフォルトとして採用し、即時的な文脈を提供します。セキュリティと一貫性を確保するため、JavaScript 評価エンジンではページのカレントオリジン内で厳密に `eval()` を使用し、外部コードの注入を防ぎつつ信頼性を維持します。モデルが評価されるにつれ、最新設定されたスイートに基づいてグラフが自動的に生成され、各ランのデコード済みテキスト出力に対する具体的なパフォーマンスを反映します。このローカリゼーションされた手法により、ベンチマークは直近の環境に厳密に紐づけられ、クラウドストレージやサーバーサイド履歴への依存を排除しつつ、現在の機能を透明視認可能にし、迅速かつプライバシー保護されたモデル比較を促進します。

Parley:単なるIRCで通じる分散型の連合チャット | そっか~ニュース