用語集
Raiznetのプロトコルとドキュメント全体で使われる用語です。(設計) とマークされたエントリは、仕様化されているがまだ実装されていない概念を表します — ロードマップ を参照してください。
BIP-39 人間が読めるシードフレーズ(12または24語)を生成し、決定論的に暗号鍵を生む標準。Raiznetはユーザーアイデンティティとサーバーノードアイデンティティに12語のフレーズを使います。
Crop(作物) 作物プロファイル: pH、EC、温度、湿度の理想範囲、収穫時間、宣言的な気候調整(adjustments)。ファームウェアに保存され、ESP32でのローカルなアラート評価に使われます。
CropCatalog (設計) サーバーノードが公開する Crop エントリの追記専用カタログ。フィルターに類似しますが、作物の知識のためのものです。任意のサーバーや機関が公開でき、ユーザーがどれを有効化するか選びます。
DeviceClaim (設計) プロビジョニング時にデバイスの所有権を宣言する、ユーザー鍵で署名されたイベント。所有者の公開イベントログに公開されます。
DeviceTransfer (設計) デバイスの所有権を移転する、売り手と買い手の双方が署名したイベント。デュアル署名が双方の同意を保証します。
Disposition(処分) 特定の宛先に対する単一センサーフィールドの可視性ポリシー: PLAIN(平文)、ENCRYPTED(AES-256-GCM)、OMIT(送らない)。ワイヤ値: 1, 2, 0。
Ed25519 Raiznetのすべてのアイデンティティと署名に使われる楕円曲線署名アルゴリズム。高速で、署名が小さく(64バイト)、公開鍵が小さい(32バイト)。
EncryptedBlob センサーフィールドの暗号化ペイロード: 16バイトのAES-GCM認証タグを付加したciphertextと、別個の12バイトのnonce。JSONワイヤ上では { "cipher": "<hex>", "nonce": "<hex>" } として現れます。
ESP-NOW (計画中) ルーターなしのデバイス間直接通信のためのEspressifのWi-Fiベースのプロトコル。ESP32デバイス間のローカルセンサーメッシュに計画されています。
Event log(イベントログ) (設計) ノードの将来のソースオブトゥルース: 署名されたイベント(デバイス登録、テレメトリブロック、キュレーションイベント)の追記専用・ハッシュチェーンされたシーケンス。SQLiteはログの再生で再構築される派生インデックスになります。ノード間の複製はこのログ上で動作します(ADR-004)。
FieldPolicydefault_disposition と per_destination マップ(キー: サーバーpubkeyのhexまたはネットワークtopic)を含む、フィールドごとのポリシーオブジェクト。各センサーフィールドが各宛先でどう扱われるかを制御します。
Filter(フィルター) (設計) サーバーノードが公開するMACキュレーションイベント(mac_verified, mac_flagged, mac_banned, mac_unflagged)の追記専用ログ。どのデバイスがAPIレスポンスや集計に現れるかを制御するためクエリ時に適用されます — 保存されるものには決して影響しません。
H3 Uberの階層的六角形ジオ空間インデックスシステム。各H3セルは地球上の六角形領域を識別する64ビット整数です。Raiznetはデバイスの位置を、所有者が選んだ解像度のH3セルとして保存します(粗いほどプライベート)。
identity.mnemonic サーバーの12語のBIP-39シードフレーズを含む DATA_DIR/identity.mnemonic のファイル。初回起動時に権限 0600 で作成されます。バックアップが必要です — ノードのアイデンティティです。
Lazy registration(遅延登録) リファレンスファームウェアは、セットアップ中に POST /v1/devices を呼んで自身を登録します。409 device_already_exists 応答は成功としてカウントされるため、呼び出しは安全に繰り返せます。
local_servers プロビジョニング時にデバイスに設定されるサーバーアドレスのリスト。local_only または both のデバイスデータがどこへ送られるかを決めます。空の場合、プライベート処分のフィールドはESP32のフラッシュにのみ留まります — ローカルサーバーはそれらを受け取りません。
MCP(Model Context Protocol) (計画中) データとツールを標準化された方法でLLMに公開するためのオープンプロトコル。計画中の @raiznet/mcp パッケージがRaiznetデータをMCPツールとして公開します。
nanopb (計画中) 組み込みシステム向けのProtocol Buffersの軽量C実装。正規バイナリフォーマットのESP32側に計画されています。
NetworkManifest (設計) ネットワーク創設者のユーザー鍵で署名され、ネットワークの名前、topic、既定フィルターを宣言するイベント。創設者のフィルターはUIの優先順位を受け取ります — これが創設者が持つ唯一の区別です。
Protobuf(Protocol Buffers) Googleのバイナリシリアライズ形式。packages/protocol/proto/ の .proto スキーマがRaiznetの計画中の正規エンコーディングを定義します(ADR-001); 現在のワイヤフォーマットはJSONです。
publish_to データを受け取る宛先カテゴリを制御するデバイス設定: 0 local_only(local_servers のみ)、1 public(ネットワークtopicのみ)、2 both。
raiznet_private.db ローカル取り込みのみで供給されるSQLiteデータベース。local_only デバイスのデータとプライベート処分のフィールドを含みます。ローカルエンドポイントのみが提供します。ノードから決して出ません。
raiznet_public.db 公開可能なデバイスと読み取りを保持するSQLiteデータベース。公開エンドポイントが提供します; ネットワークが入るとイベントログ複製で供給されます。
raw デバイスが各テレメトリブロックのために組み立てて署名する、パイプ区切りASCIIストリング: pubkey|seq|timestamp|key_version|field=value|…。Ed25519署名はrawバイトをカバーし、JSONエンベロープはカバーしません。テレメトリ を参照。
Relay (設計) NAT越しの2つのピアが直接接続を確立するのを助け — ホールパンチングが失敗したとき(地方の4Gの対称CGNATで一般的)トラフィックを運ぶ、到達可能なノード。任意のコミュニティノードがリレーになれます; リレーは決して特権的ゲートウェイではありません(ADR-004)。
Roaring Bitmap (計画中) フィルター内のMACリストを表現することを意図した圧縮ビットセットのデータ構造で、多数のフィルターにわたる高速な集合演算を可能にします。
Safra アクティブな植え付けロット: 1つのデバイス、1つのCrop、開始日、任意の収穫日、任意の収量。テレメトリデータを農業の結果に結びつけます。
seq デバイスごとに生成される単調増加のシーケンス番号。フラッシュに優しいブロックで割り当てられ(リファレンスファームウェアはNVSで一度に100予約)、冪等な重複排除に使われます — サーバーは (device_pubkey, seq) ごとに最大1つの読み取りを保存し、重複は成功としてカウントされます。
Sodiumsodium-universal / libsodium — hypercore-crypto の基盤となる暗号プリミティブ(Ed25519署名、乱数バイト)を提供し、@raiznet/crypto が使用します。
TelemetryBlock 1つのデバイスのある時点での1組のセンサー読み取りで、デバイスのEd25519鍵で署名されます。今日はJSONオブジェクト; 計画中の正規フォーマットではProtobufメッセージ。
topic (設計) 公開ネットワークの発見キーとして使われる文字列(例 raiznet:public:arateki:v1)。topicを知る任意のサーバーが対応するネットワークに参加できます。topicは秘密ではありません — 本当のプライバシーは local_only モードで動かすことから来ます。
User key(ユーザー鍵) 所有者のBIP-39シードフレーズから導出されるEd25519鍵ペア。所有者が制御するすべてのデバイスとネットワークに対する権威の根。DeviceClaim、DeviceTransfer、NetworkManifest、フィルターのイベントへの署名に使われます。テレメトリの署名には決して使われません。