Nostr Compassへようこそ、Nostrに関する毎週のガイドです。

今週: GitWorkshopはgit-over-Nostrを、ブラウザ内PRマージボタン、Starsとリポジトリフォロー、帯域効率の良いgitエクスプローラ、kind 1111のインラインレビューコメント、暗号化されたマルチデバイス通知状態を備えた、より充実したコードレビューの場へと発展させました。RoutstrdはNostrのkind 38421アナウンスを介してモデルプロバイダを発見し、Cashuで支払いを行うローカルデーモンをローンチしました。タグ付けされたリリースにはngit v2.4.2Wisp v1.0.0grain v0.5.2およびv0.5.3Mostro Core v0.10.0とMostro Mobile v1.2.5marmot-ts v0.5.0CruxCoach v0.1.3Meiso v1.3.0、NoorNote、Nostria、Nostr Calendar、nos2x-fox、applesauce、nostr-double-ratchetなどが含まれます。未リリースの変更はAmethyst NestsnostreamのNIP-65およびNWCFIPSのNostrベースudp:natブートストラップstrfryの可観測性Sproutオーナ証明Zap Cookingレシピパックを扱います。新規追跡プロジェクトにはNostrordClaveTreasuressmeshSurveilFundstr、Nod City、deploy-nsite-to-pages、null–nostrが含まれます。月末の振り返りは2021年から2026年までのNostrの4月を扱います。

トップストーリー

GitWorkshopがブラウザ内PRマージ、リポジトリフォロー、帯域効率の良いgitエクスプローラを出荷

Dan ConwayによるNIP-34 git-over-Nostr向けのウェブベース共同作業レイヤーであるGitWorkshopは、今週メジャーリリースを出荷しました。これにより、コメント、リポジトリリスト、通知を署名済みNostrイベント内に保ちながら、開発者がGitHubやGitLabに期待するワークフローに大きく近づきました。

目玉の追加は、GRASPリレーを使用するリポジトリ向けの長らく待ち望まれていたブラウザ内PRマージボタンです。このリリースでは、リアクションとNIP-51リストの上に構築されたStarsおよびリポジトリフォロー機能も追加され、ピン留めされたリポジトリセットは順序付きaタグを介してkind 30617のリポジトリアナウンスを指すkind 10617イベントとして発行されます。プロフィールページには、ポータブルなリポジトリリストを表示できるようになりました。

帯域効率の良いgitエクスプローラが、これまでのブラウザ内の浅いクローンに取って代わりました。新しいエクスプローラはGRASPが構築されている基盤のgitクライアント/サーバプロトコルに依存しているため、ブラウザに完全なパックの取得を強制することなく大規模なリポジトリを扱えます。検索はユーザー名とリポジトリメタデータを対象とし、NIP-50と、ネットワーク全体でリポジトリアナウンスを発見・同期するngit-indexerリレー実装によって動作します。ブラウザ内のリポジトリ作成ワークフローが、発見とオンボーディングの経路を完成させます。

レビューツールは、Files Changedタブ、パッチごとの差分ビューア、および一連の実験的な新しいプリミティブを中心に再構築されています。インラインコードレビューコメントはkind 1111を使用し、NIP-22の上に構築されています。各コメントはファイルパス(fタグ)、コミットSHA(cタグ)、選択された行範囲(lineタグ)を指すため、クライアントは差分内の正しい位置にコメントを表示できます。実験的プリミティブの第二階層は、作成者およびリポジトリメンテナによる権限付けが行われ、NIP-32ラベルを使用します。IssueまたはPRの件名を提出後にリネーム、提出後にハッシュタグを追加、編集可能な要約のためにバージョン管理されたCoverNoteをPRまたはIssueの先頭にピン留め、インラインコード議論のサブスレッドを解決済みとしてマークすることができます。判定イベントとsuggestionブロックは草案のままで、まだ出荷されていません。

デバイス間の通知状態もNostrを介して同期されますが、プライバシー保護のひねりが加えられています。GitWorkshopは専用の通知キーペアを生成し、そのnsecを暗号化し、kind 30078イベント内に格納します。通知nsecは実際の通知状態イベントに署名します。この間接化により、ユーザーのメイン署名者が読み取りやアーカイブ操作ごとの頻繁な暗号化・復号リクエストでスパムされることが防がれ、外部の観察者がユーザーが通知状態を触った時を容易に見ることができなくなります。ユーザーはデバイス間で読み取り状態とアーカイブ状態を同期でき、リレーは暗号化されたblobだけを見ます。

RoutstrdがNostr経由推論のローカルルータをローンチ

Routstrdは、ローカルツールにOpenAI互換のエンドポイントを提供し、各リクエストを競合するRoutstrプロバイダにルーティングする新しいTypeScriptデーモンです。デーモンはRoutstrのRIP-02仕様で定義されたNostrのkind 38421アナウンスを介してプロバイダを発見します。次に、RIP-06に基づいて価格、信頼、最近のパフォーマンスでプロバイダをスコアリングし、各リクエストを現在最良の選択肢に送信します。

支払いは、cocodによって管理されLightningで資金供給されるローカルCashuウォレットを介して行われます。これにより、Nostrリレーを通じてプロバイダ発見を公開かつパーミッションレスに保ちながら、クライアントにsats建ての決済経路を提供します。セッション中にプロバイダが失敗した場合、Routstrdは次にランク付けされたノードにフォールバックできます。インストール経路はbun install -g routstrd、続いてウォレットとリレー設定のためのroutstrd onboardです。

より広範なRoutstrオーガニゼーションは、デーモン、Pythonノードソフトウェア(routstr-core)、チャットUI、およびプロトコル仕様を保守しています。ユーザーにとって、ローカルポートが安定したインターフェースとなります。既存のOpenAI互換ツールがRoutstrdを指す一方、デーモンがプロバイダ発見、ルーティング、支払いを処理します。

タグ付きリリース

ngit v2.4.2はPR提出向けのGRASPサーバ検出を修正

ngitは、リポジトリのGRASPサーバ検出の修正を伴うv2.4.2を出荷し、提案がPR kindを使用する際のPR提出をハッピーパスに保ちます。ngitは現在、大規模でない限りほとんどの変更に対してデフォルトでPatch kindを使用することに注意してください。メンテナはデフォルトの変更に向けて作業中です。週の前半に出荷されたv2.4.1は、オープンPRのgitデータがリポジトリの指定されたgitサーバで利用できない場合のクローンおよびフェッチ中のfatalエラーを修正しました。

Wisp v1.0.0がベータから卒業

リレールーティング、プライバシー、および小さなネイティブUIに焦点を当てたKotlinとJetpack ComposeのAndroidクライアントであるWispは、v1.0.0を出荷し、続いてv1.0.2を出荷しました。1.0.0のマイルストーンは、Newsletter #19で扱ったNormie Modeの法定通貨表示切り替え、For Youフィード、NIP-29リレーベースのグループ設定、およびNIP-65リレーリスト配信をまとめたものです。v1.0.2はAndroid 15の16 KBページサイズサポート、ドロワーシートのQRスキャンタブ、インラインビデオコントロール用のダウンロードボタン、通知リストのパフォーマンス修正を追加します。

grain v0.5.2はWebSocketロックアップを修正、v0.5.3は仕上げを継続

0ceanSlim製のGoリレーであるgrainは、v0.5.0で導入されたWebSocketロックアップに対する重要なホットフィックスとしてv0.5.2をカットし、続いてv0.5.3を出荷しました。ロックアップは特定のフィルタおよびWebSocketパスの下で接続をハングさせていたため、v0.5.1またはv0.5.0のオペレータはアップグレードすべきです。grainはすべての主要なNostrイベントカテゴリを追跡し、NIP-11リレー情報を公開し、ホワイトリスト/ブラックリストのアクセス制御、kindごとのレート制限、ウェブダッシュボード、およびv0.5.xラインで追加されたGoクライアントライブラリをサポートします。

Mostro Core v0.10.0とMostro Mobile v1.2.5がNIP-59デュアルキーgift wrapを採用

Mostro Core v0.10.0は、識別鍵とトレード鍵を分割した新しいNIP-59 gift-wrapモジュールを追加します。以前のトランスポートコードは、トレードidentityとgift wrappingの両方に単一のidentity鍵を使用していました。v0.10.0は安定したトレードidentityをエフェメラルなwrapping鍵から分離するため、トレードプロトコルに必要なidentityを保ちながら、各トレードで新鮮なトランスポート鍵を使用できます。デーモン統合はMostro PR #718経由でランディングし、mostro-cli PR #165は同じ移行をコマンドラインクライアントにもたらします。

Mostro Mobile v1.2.5はプロトコル作業と並行して出荷されました。PR #581は、テイカーがメイカーのアカウント年齢によってオファーをフィルタリングできるようにし、ユーザーがオーダーブック内の新しく作成されたメイカーアカウントを避ける方法を提供します。PR #580はキャンセルされたオーダー詳細の役割ラベルを修正し、PR #576は協調的キャンセルボタンを整理します。

marmot-ts v0.5.0がアドレス可能KeyPackagesを出荷

marmot-tsは、TypeScript版Marmotクライアントの最初の計画された破壊的変更リリースである@internet-privacy/marmot-ts@0.5.0をカットしました。PR #68はアドレス可能KeyPackageサポートを追加します。KeyPackageManagerは今、レガシーのkind 443と新しいkind 30443の両方のKeyPackageイベントを扱えます。このリリースはKeyPackageStoreとグループ状態ストレージクラスを削除し、それらをKeyPackageManagerMarmotGroupに渡される汎用キーバリューストアに置き換えます。また、招待とグループ管理をMarmotClient.invitesMarmotClient.groupsに移動するため、直接埋め込むユーザーはアップグレード前にコンストラクタとストレージの変更が必要です。

CruxCoach v0.1.3がNostrとBlossomを使った暗号化クライミングデータバックアップを出荷

CruxCoachは、Kilter Boardクライマー向けの新しいオープンソースAndroidアプリです。Kilter Boardは、Bluetooth経由でホールドが光ってルートを表示する対話型トレーニングウォールです。アプリは4月14日にローンチし、4月26日にv0.1.3に到達しました。

v0.1.3はオプトイン暗号化クラウドバックアップを追加します。ユーザーのCruxCoachアカウントはNostrキーペアであり、秘密鍵はローカルバックアップ暗号化鍵への入力を兼ねます。アプリはクライミングデータをオンデバイスで暗号化し、暗号文をBlossomストレージサーバ(blossom.primal.netおよびnostr.download)にミラーリングします。リモート削除アクションはBlossomクリーンアップパスを呼び出します。バックアップに加えて、CruxCoachはAmberサポート用のNIP-46リモート署名、アプリ内開発者連絡用のNIP-17プライベートDM、リレー発見用のNIP-65リレーリスト、およびNostr配管用のVitor PamplonaのQuartzライブラリを使用します。ユーザーはZapstoreまたは直接Codeberg APKからインストールできます。

Meiso v1.3.0がサブタスク、Blossom添付、NIP-89タグ付けを追加

Meisoは、タスクをNIP-44で暗号化されたkind 30078アプリケーションデータとしてNostrリレーに格納する、Android向けのミニマリストなFlutterタスクマネージャです。4月6日にリリースされたv1.3.0は、親子関係を持つサブタスク、ブロック/被ブロック/関連/重複のタスクリンク、BlossomおよびNIP-96 HTTPファイルアップロードエンドポイントを介した画像添付、発行されたイベント上のNIP-89推奨アプリケーションclientタグ、およびGoコマンドライン同期ツールを追加します。v1.3.0はまた、コールドスタートリレー動作とAmberクライアント再利用を修正します。

NoorNote、Nostria、Nostr Calendar、nos2x-fox、およびライブラリリリース

NoorNotev0.8.7v0.8.8v0.8.9を発行しました。これらのリリースは引用リポストでの画像とビデオのクリック処理を修正し、長文記事画像のライトボックスサポートを追加し、空白のデスクトップ起動画面を修正します。Nostriav3.1.29v3.1.30v3.1.31をカットし、記事エディタの画像圧縮、ウォレットのUSDトグル、プロモーションカード制御、PDFサポート、およびモバイルレイアウトの磨き上げを追加しました。

Nostr Calendar v1.4.1は、カレンダーイベント発行をカレンダーリスト管理から切り離し、招待追跡を修正します。nos2x-fox v1.19.0は、Firefox NIP-07ブラウザ署名の許可にカスタム認可時間枠を追加します。nostr-double-ratchet v0.0.97は新しいバイナリを出荷します。nostr-wot-sdk 0.9.0はデフォルトでNostrSessionProviderをマウントし、nostr-tools PR #535はNIP-47ウォレットコネクト文字列のマルチリレー解析サポートを追加します。

週の後半に、Amber v6.1.0-pre1は、より良いconnect-new-appレイアウト、signer-dialog修正、通知許可処理の改善、およびリファクタリングされたアカウント選択を伴うプレリリースを出荷しました。nostr-vpn v0.3.14はmacOS Apple Silicon、Linux、Windowsの成果物を含む新しいビルドをカットしました。Bitcredit Core v0.5.7-hotfix-1およびv0.5.8は、orphaned-blockバリデーション問題への連続的な修正を出荷しました。Surveil v0.1.6はモバイルUIの磨き上げと刷新されたAboutページをもたらしました。プロジェクト自体は以下で紹介します。

applesauce 6.0.0がレガシーイベントファクトリを削除し、Blossom URI解析を追加

hzrd149のTypeScript Nostrツールキットであるapplesauceは、モノレポ全体で6.0.0リリーストレインを出荷しました。applesauce-core@6.0.0はレガシーのEventFactoryクラスと古いbuildEventmodifyEventcreateEventヘルパーを削除し、呼び出し元をapplesauce-core/factoriesapplesauce-common内の新しいファクトリクラスに移行させます。また、リンク解析へのIPアドレスとlocalhost処理、BUD-10 Blossom URI正規表現、およびtimeoutWithIgnorecombineLatestBycombineLatestByIndexcombineLatestByKeyなどの新しいobservableヘルパーを追加します。

パッケージレベルのリリースがNostr固有の部分を埋めます。applesauce-content@6.0.0はテキストとMarkdown向けBUD-10 Blossom URIノードを追加し、レンダラにコンテンツ内のBlossom参照を解析するファーストクラスの方法を提供します。applesauce-actions@6.0.0はリレー、ユーザー、アイテムをカバーするNIP-51リスト向けの基底ファクトリクラスを追加し、リスト構築をよりad hocでないものにします。applesauce-wallet-connect@6.0.0WalletConnect.connectURIを公開するため、アプリは既存のNIP-47ウォレットコネクトURIに直接アクセスできます。

未リリースの変更

AmethystがMoQ相互運用テストでNestsオーディオルームを推進

Amethystは今週、先週のMedia over QUICオーディオルームスタックの上に構築された、いくつかのNestsフォーカスなPRをマージしました。PR #2622は、Amethyst MoQクライアントをリファレンスウェブ実装に対して動作させるクロスクライアント相互運用ハーネスを追加します。目標は、Android/ブラウザのワイヤレベルの分岐をユーザーが遭遇する前に捕捉することです。PR #2625はピクチャインピクチャのスピーカーフォーカスと接続状態を改善し、PR #2620は参加者グリッド内のアバター、ミュート状態、発話状態を明確化します。週の後半に、PR #2634がフルスクリーンNestビューでのIMEパディングとウィンドウインセットを修正し、PR #2635がNestsフィードにプレゼンスベースの新鮮さフィルタリングを追加しました。別途、PR #2627がAmethystのカスタムC secp256k1実装を削除し、libschnorr256k1に移行しました。

nostreamがNIP-65リレーリストサポートとNWC決済を追加

nostreamは、先週の53 PRリレースプリントの後、3つの注目すべきPRをマージしました。NIP-65リレーリストメタデータサポートがPR #585でランディングし、リレーがkind 10002リレーリストイベントをインデックスして提供できるようになります。Nostr Wallet Connect決済プロセッサがPR #539で続き、pay-to-relay経路を追加します。接続クリーンアップはPR #438で改善され、アクティブなサブスクリプションを持つソケットが刈り取られず、長期間稼働するインスタンスでサブスクリプション数がドリフトするデッドコネクションのバグを修正します。

FIPSがNostrベースudp:natブートストラップを追加

Newsletter #6およびNewsletter #10で以前扱ったFree Internetworking Peering SystemであるFIPSは、Nostrベースのudp:natブートストラップを伴うPR #53をマージしました。この変更により、ノードはNostrアドバートを発行し、暗号化されたofferおよびanswerシグナリングを交換し、STUNを介して公開アドレスを発見し、UDPホールパンチングを実行し、パンチされたソケットを通常のFIPSトランスポートスタックに引き渡すことができます。実装は、シグナルペイロードのアイデンティティを実際のNostr送信者にバインドし、設定されたDMおよびアドバートリレーに問い合わせてインボックスルックアップを行い、失敗した採用トラバーサルハンドオフをロールバックして、孤立したUDPトランスポートが生き続けないようにします。これは正規のリポジトリjmcorgan/fipsで追跡すべきNostrアナウンスおよびNATトラバーサル作業です。

strfryが接続ごとの可観測性を追加

strfryPR #214をマージし、接続ごとの可観測性とPrometheus経由でエクスポート可能な接続レベルメトリクスを追加しました。PR #204はPrometheusラベルを正規化し、PR #215はstrfry上に構築されたNamecoin identityプロジェクトを扱うCommunity Integrationsセクションをドキュメントに追加します。

SproutがOwner Attestationとマルチワークスペースサポートを追加

BlockのNostrクライアントであるSproutは、NIP-OA (Owner Attestation)を実装するPR #406をマージしました。この機能は、自律エージェントに特定の人間のpubkeyがそのアクションを認可したという暗号学的証明を与えます。PR #409はデスクトップアプリにマルチワークスペースサポートを追加し、PR #411はモバイルcomposeに#channelオートコンプリートを追加し、PR #410はアクティブチャネルメッセージをドロップする可能性のあった競合ウィンドウを閉じます。PR #413はデバイス間の既読状態同期のためのNIP-RSを導入し、フォローアップのPR #420PR #422がその既読状態をモバイルの未読バッジに配線します。

Zap Cookingがレシピパック、削除リクエスト、bunkerログインを追加

Zap Cookingは生産的なレシピ発行作業の一週間をマージしました。ユーザー自身のRecipe Packsに対するNIP-09削除リクエストがPR #367でランディングします。発行の信頼性はPR #366を通じて改善され、新しいレシピをすべて強制的にgardenリレーに載せ、共有レシピセットのリトライキューを追加します。ワンクリックの著者パック発行がPR #365でランディングし、PR #331NIP-46 bunkerログインサポートを追加します。

Whitenoise-rsがローカルデータベースを暗号化

whitenoise-rsPR #758をマージし、Whitenoiseのオンディスクデータベースに対するSQLCipher暗号化を追加しました。これによりMarmotデーモンスタックの長年のat-restセキュリティギャップが閉じられます。PR #775はグループ必須機能を公開し、PR #772はグループメディア操作をセッション所有のMediaOpsに移行し、PR #773はsession-opsリファクタの一部としてSharedServicesホルダーを抽出します。モバイル側では、whitenoise PR #577がAndroidフォアグラウンドサービスのブート自動再起動を有効化し、デバイス再起動後にデーモンが戻らないケースを修正します。

新規追跡と発見

Nostrord: Kotlin MultiplatformとWASMで構築されたNIP-29クライアント

Nostrordは、Discord代替のユースケースをターゲットとする新しいNIP-29グループチャットクライアントです。グループはリレー強制のメンバーシップ、ロール、モデレーション、アクセス制御を持つNostrリレー上に存在するため、グループ状態は選択されたNIP-29リレーによってホストされます。クライアント開発者はそれらのグループのために別個のアプリケーションデータベースを制御しません。ウェブアプリはweb.nostrord.comで稼働し、WebAssemblyにコンパイルするKotlin Multiplatformで構築されており、ネイティブのAndroid、iOS、デスクトップビルドが開発中です。NostrordはOpenSats助成金の受領者であり、Flotilla、Chachi、0xChatが使用するのと同じNIP-29リレーと相互運用します。

ClaveがAPNs経由でNIP-46リモート署名をiOSにもたらす

Claveはベータ版のiOSリモート署名者で、アプリが開かれていないときにNostrイベントに署名します。秘密鍵はiPhone Keychainに残ります。クライアントがNIP-46リモート署名リクエストを送信すると、サーバサイドのプロキシがApple Push Notificationを配信し、Notification Service Extensionを最大30秒間起こします。その拡張はNIP-44暗号化でリクエストを復号し、Keychainの鍵で署名し、レスポンスを発行します。デバイストークン登録はトークンハイジャックを防ぐためにNIP-98 HTTP Authを使用します。Claveはbunker://nostrconnect://ペアリング、クライアントごとの信頼レベル、kindごとのオーバーライドをサポートし、Nosturとnastrudelでテスト済みです。

Treasures: Nostr上の分散型ジオキャッシング

Treasuresは、キャッシュと発見が署名済みNostrイベントであるジオキャッシングプラットフォームです。キャッシュ作成者はGPS座標を持つkind 37516アドレス可能イベントを発行します。発見者は物理キャッシュに添付されたQRコードをスキャンして発見を記録します。コードは作成者pubkey、キャッシュdタグ、および物理訪問の証明として使用される検証秘密鍵をエンコードします。NIP-57 zapは発見者からキャッシュ作成者に流れることができ、ライブアプリはtreasures.toにあります。

smesh v0.5.1: セルフホストのNostrリレー、クライアント、および署名者を1つのスタックに

smeshは、mlekuによってGoおよびTinyGoから派生したカスタム言語Moxieで書かれたセルフホストのNostrスタックです。このスタックは、HTTP、WebSocket、AUTH、検索、およびBlossomサポート付きのネイティブリレーバイナリ、ESモジュールにコンパイルされたウェブクライアントsm3sh、およびNIP-07ブラウザ署名とNIP-04およびNIP-44暗号化サポートを備えたブラウザ署名者拡張機能を出荷します。最近の作業には、v0.5.0でのMLS (RFC 9420) グループメッセージング、リレー同期のためのnegentropyセット調整、およびWeb of Trustグラフエンジンが含まれます。コードはmlekuのセルフホストforge git.smesh.lolにあり、彼自身のgit-webツールで構築されています。関連するgitea-nostr-authリポジトリは、Gitea向けのOAuth2/OIDCブリッジです。ユーザーはNIP-07ブラウザ署名者で認証し、ブリッジはNIP-65を介してリレーを発見し、GiteaはOIDC identity claimsを標準的に受け取ります。

Surveil: Nostr上のMagic: The Gatheringデッキビルダー

Surveilは、Magic: The Gatheringプレイヤー向けのNostrクライアントで、ユーザーはカードを検索し、デッキを構築し、オンデバイスML Kit OCRでAndroid上の紙のカードをスキャンし、ネットワーク全体でデッキを共有できます。デッキはkind 37381アドレス可能イベントとして発行され、デッキイベント仕様はプロジェクトのNIP.mdに文書化されています。ソーシャルレイヤーは標準的なNostrプリミティブから構築されています。各デッキにスコープされたNIP-22 (kind 1111) スレッド化コメント、NIP-25 (kind 7) リアクション、プレイヤーホーム向けのNIP-78 (kind 30078) プロフィールデータ、kind 3フォローフィード、および元のデッキに戻るaタグを持つフォークです。v0.1.6は今週、モバイルUIの磨き上げ、ライフカウンター改善、刷新されたAboutページ、デッキヒーローバナーのリレーピルとともに出荷されました。ウェブアプリは静的HTMLが提供されるあらゆる場所で稼働し、AndroidビルドはZapstoreを介して出荷され、kind 37381イベントはDittoによってもMagicデッキとしてネイティブにインデックスされます。リポジトリはGitLabのchad.curtis/surveilにあります。

小さな追加: Fundstr、Nod City、deploy-nsite-to-pages、null–nostr

Fundstrは、一度限りおよび定期的な誓約のためのCashu ecashを使用したNostr上のクリエイター資金調達プラットフォームで、クリエイターティア定義とNostr DMを備えます。Nod Cityは、レビューが署名済みNostrイベントであり、レビュアーがzapを受け取ることができるBitcoinサービスレビューサイトです。公開ソースリポジトリは見つかりませんでした。deploy-nsite-to-pagesは、nsyte downloadを使用してnsiteをGitHub Pagesにミラーリングし、ルートkind 15128および名前付きkind 35128 nsiteをサポートするGitHub Actionです。今週のNIP-34データでも発見されたnull–nostrは、最近のOpenSatsウェーブでNurunuruとして扱われたクライアントです。MLSグループメッセージング、Amber、NIP-50検索、NIP-70保護投稿、ProofModeバッジ、およびZapstore配布をサポートします。

FIPSはCompassにとって新しいプロジェクトではありません。Newsletter #6およびNewsletter #10で扱いました。データベースは今、正規のリポジトリであるjmcorgan/fipsを指しており、今週のNIP-34発見でもfipsawesome-fipsのような関連するgit-over-Nostrミラーが表面化しました。

プロトコル作業

NIPアップデート

NIPsリポジトリにおける最近の提案と議論:

今週マージされたもの:

  • NIP-34 git repositories: remove unused refs tag extension (PR #2325): 定義されていたが使用されていなかったNIP-34refsタグ拡張を削除します。このクリーンアップは、git-over-Nostrツールの実装曖昧性を減らします。

  • NIP-34 git repositories: remove incorrect NIP-09 claim (PR #2326): NIP-09削除イベントがリポジトリ状態をリセットできるという誤った主張を削除します。NIP-09削除はクライアント側のイベント削除リクエストであり、リポジトリ状態機械ではありません。この訂正により、NIP-34実装者が削除ヒントを権威あるリポジトリリセットとして扱うことを防ぎます。

オープンおよび実装主導の作業:

  • GitWorkshopのkind 1111インラインレビューコメント: インラインコードレビューコメントkindはGitWorkshopのNIP.mdに文書化されており、現在活発に使用されていますが、正式なNIPとしてはまだ提案されていません。判定イベント(kind 7321)とsuggestionブロックは草案のままで、まだ出荷されていません。GitWorkshopとngitからの実装フィードバックが、これらの形が独立したgit-review NIPになるか、NIP-34の上に層をなすアプリケーションコンベンションのままであるかを決定します。

  • Nostr mail coreとNostrmon: 今週、2つの新しいカスタムNIP草案が回覧されました。Nostr mail coreはRFC 2822メールコンテンツ用のkind 1301を提案し、プライベート配信のためにNIP-59でラップされ、NIP-05で解決されたブリッジpubkeyを介してレガシーメールにブリッジされます。Nostrmonは、地域、マップ、クリーチャー、NPC、プレイヤーセーブ、およびアイテム用のアドレス可能イベントkindをスケッチします。両方ともカスタム草案のままで、マージされたNIPではありません。

  • NIP-67: EOSE Completeness Hint (PR #2317): 提案はEOSEに肯定的な完了マーカーを追加することの反復を続けており、リレーが「保存イベントが完全に配信された」を、リレーが完了主張をしないレガシーのEOSEケースと区別できるようにします。

6つのNostrの4月

4月はNostrの開発経路のきれいな断面図を与えます。2021年のプロトコル文書、2022年の初期クライアント作業、2023年のDamus後のアプリケーション波、2024年のプライベートメッセージングとgit-over-Nostr作業、2025年のBlossomとリレーリストのクリーンアップ、2026年の採用フォーカスのクライアント助成金です。

2021年4月: NIPsリポジトリ以前のプロトコル文書

Fiatjafは2020年11月20日に元のNostr記事、“Notes and Other Stuff Transmitted by Relays”を発表しました。その最初のテキストには既に、プロトコルを今も定義する核となる形が含まれていました。ユーザーは鍵でイベントに署名し、それらをリレーに発行し、選択したリレーから読み取ります。nostr-protocol/nostrコミットログは、4月1日から4月30日の間にコミットがないことを示しています。活動はその両側にあります。2021年3月のコミットは初期の「nostwitter」リンクとkindフィルタを追加し、2021年5月にはNIP-02が再利用され、NIP著作権が追加されました。

2021年4月には、公開クライアント市場もなく、目に見えるリレーネットワークもなく、NIPsリポジトリもありませんでした。プロトコルは依然として小さな文書といくつかの実験として存在していました。Nostrはまだソーシャルネットワークにも開発プラットフォームにもなっていませんでした。それは依然として、最初の持続的な貢献者の波を待つリレー/鍵/イベントモデルでした。

2022年4月: NIPsはまだメインリポジトリに存在した

2022年4月は、NIPsがメインのnostr-protocol/nostrリポジトリから移動する前の最後の月でした。分割がまだ起こっていなかったため、専用のnostr-protocol/nipsリポジトリには4月のプルリクエスト履歴がありませんでした。メインリポジトリでは、3つの4月のコミットがランディングしました。4月8日のgoswami1999による“Update readme to add nip12”、4月25日のjb55による“add kinds list”、4月28日のsteliosrammosによる“add js formatting to sample code”です。

クライアント作業も形を成し始めていました。2022年4月のDamusコミットは初期のチャットルーム動作、プロフィール処理、およびアプリアイコンを追加し、nostr-toolsは初期のクライアントおよび実験のためのJavaScriptライブラリ経路になりつつありました。プロトコル面では、NIP-12ジェネリックタグクエリがタグ検索に文書化された場所を与え、kinds listはNostrをレジストリモデルに向けて動かし、より良いJavaScript例は仕様をクライアントおよびライブラリ作者にとって実装しやすくしました。5月1日、fiatjafはNIPsを専用リポジトリに移動しました。2022年4月は元のシングルリポジトリ時代の最後の月でした。

2023年4月: Damus後のアプリケーション拡大

2023年4月は、Damusが2023年1月31日にiOS App Storeでローンチしてから3か月後、Jack DorseyがNostrの公開鍵を投稿した後に到来しました。ネットワークはちょうど最初の大きな公開成長波を吸収したところでした。Damus、Snort、Iris、Coracle、Amethystなどのクライアントがアクティブで、リレーオペレータはより大きなソーシャルグラフが帯域幅、スパム、検索、モデレーションの前提に何をするかを学んでいました。

2023年4月には1つのマージされたNIPs PRがありました。4月17日にマージされたPR #456は、NIP-21のURI処理にNIP-19 bech32エンティティリンクを追加しました。周囲のコミットは、プロトコル作業の背後にあるアプリケーション圧力を示しています。2023年4月には、NIP-45 COUNT、イベント固有のzapマーカー、NIP-15マーケットプレイス、NIP-26削除委任セマンティクス、NIP-94ファイルメタデータ、NIP-47ウォレットコネクトエラー処理、NIP-30カスタム絵文字に関する作業がありました。貢献者リストはfiatjaf、staab、pablof7z、Semisol、CodyTseng、sethforprivacy、mikedilger、AsaiToshiya、alexgleason、martindsq、frbittencourt、arkin0xを含むように広がりました。

Damus、Snort、Iris、Coracle、Amethystはもはや仕様の周りのデモではありませんでした。それらはオンボーディング、フィード、スパム、zap、メディア、リレー選択に対処する本番クライアントでした。2023年4月のプロトコル作業は、それらのクライアントが作成したバックログのように読めます。zap、マーケットプレイス、ファイルメタデータ、カウント、絵文字、identityリンクはすべて、仕様を単純なノートおよびフォローを超えて押し進めました。

2024年4月: プライベートメッセージング、git-over-Nostr、およびメンテナサポート

2024年4月には2つのNIP PRマージがありました。4月10日にマージされたPR #1167は、クライアントと署名者が要求および認可されたアクションに対して正確な言葉遣いを必要とするNIP-46リモート署名の紛らわしい用語を修正しました。4月17日にマージされたPR #1108は、ステータスイベント、明確化、オプションのメンテナ、リポジトリ識別子、および発見可能性タグを含むNIP-34 git repositoriesを拡張しました。そのステップは、git-over-Nostrをngitとその後のGitWorkshopにとってより実用的にしました。

以前はNIP-24だったNIP-17は、プライベートDMおよび小グループチャット向けのsealed gift-wrappedメッセージとして4月24日にランディングしました。同じ期間にAmethyst、Primal、Gossip、nostr-tools、NDK、およびrust-nostrがすべてアクティブで、クライアントとライブラリの作業が並行して行われました。

OpenSatsも2024年4月にNostr開発者への長期サポートを発表しました。4月9日のPabloF7z、4月12日のStuart Bowman、4月15日のhzrd149です。これらの助成金は、資金を孤立したプロジェクト助成金から、リレー、ライブラリ、クライアントインフラの持続的な維持へと移動させました。

2025年4月: 密なNIPクリーンアップとBlossom正式化

2025年4月は、この振り返りで最も密なプロトコル月間で、16のマージされたNIPs PRがありました。月はNIP-73にブロックチェーントランザクションとアドレスを追加したPR #1846と、標準化タグ表にNIP-C0タグを追加したPR #1865で始まりました。続いてPR #1801PR #1889がkind 10002リレーリスト再発行ガイダンスを改善し、PR #1879NIP-65を縮小して明確化しました。

PR #1822はBlossom相互作用のためにNIP-B7を追加し、1年以上の非公式な実践の後にNostrクライアントとBlossomサーバに正規の調整レイヤーを与えました。PR #1051は、委任イベント署名仕様であるNIP-26を非推奨としました。NIP-26は安全に実装することが難しく、NIP-46や他の署名者パターンが成熟するにつれて魅力が薄れていました。

月の残りはクリーンアップとアプリケーション拡大を組み合わせました。PR #1882NIP-11にプライバシーポリシーおよび利用規約フィールドを追加し、PR #1849はNIP-B0の下でkind 39701ウェブブックマークを拡張し、PR #1891はそのブックマークkindをREADMEに追加し、PR #1895はNIP-B0標準化タグを追加しました。OpenSatsは4月16日にEleventh Wave of Nostr Grantsを発表し、Swae、HAMSTR、Vertex、Nostr Double Ratchet、Nostr Game Engineに資金を提供しました。Primal、Coracle、noStrudel、nostr-tools、NDK、rust-nostrもこの期間を通じて出荷していたため、プロトコルクリーンアップはアクティブなクライアントとライブラリ作業の隣に位置していました。

2026年4月: NIP-34の強化、バッジ、および採用フォーカスの助成金

この号が閉じる2026年4月は、4つのマージされたNIPs PRがありました。最初は4月1日にマージされたPR #2276で、NIP-58プロフィールバッジをkind 10008に変更し、kind 30008バッジセットを追加して、バッジ割り当てとバッジコレクションをより組み合わせやすくしました。第二のgit-over-Nostrユーザビリティ変更は4月10日にマージされたPR #2312で到来し、NIP-34nostr://クローンURLセマンティクスを追加しました。4月25日のクリーンアップ、PR #2325PR #2326は、使われていないおよび誤ったNIP-34の言葉遣いを削除しました。

関連するコミットは同じ表面を鋭くします。4月22日、fiatjafはNIP-51にBlossomサーバリストを追加し、NIP-29メタデータ編集をFlotillaのPUT形式の動作に合わせるように調整しました。4月26日、彼は明確化のためにNIP-5Aをリネームしました。2026年4月は、すでに使われているプロトコル表面を実装しやすく、誤読しにくくすることに焦点を当てました。

OpenSatsは4月8日にSixteenth Wave of Nostr Grantsを発表し、Amethyst Desktop、Nostr Mail、Nostrord、Nurunuru (null–nostr)、およびHAMSTRの更新を支援しました。デスクトップクライアント、メール様メッセージング、グループUX、日本語オンボーディング、およびオフグリッド接続です。


Nostr Compass #20をお読みいただきありがとうございます。ヒント、修正、または扱うべき新しいプロジェクトがあればNostrでDMを送ってください