Code Monkey home page Code Monkey logo

nips-ja's Introduction

NIPs

NIPsは、Nostr Implementation Possibilitiesの略称である。

本文書は、Nostr互換のリレーおよびクライアントソフトウェアによって実装されうるものを文書化するために存在している。



仕様一覧

Event Kinds

kind description NIP
0 メタデータ 01
1 短文ノート 01
2 推奨リレー 01 (deprecated)
3 フォロー 02
4 暗号化されたダイレクトメッセージ 04
5 削除イベント 09
6 リポスト 18
7 リアクション 25
8 バッジ・表彰 58
9 Group Chat Message 29
10 Group Chat Threaded Reply 29
11 Group Thread 29
12 Group Thread Reply 29
13 Seal 59
16 汎用リポスト 18
40 チャンネル作成 28
41 チャンネルメタデータ 28
42 チャンネルメッセージ 28
43 チャンネル投稿ミュート 28
44 チャンネルユーザミュート 28
1021 Bid 15
1022 Bid confirmation 15
1040 OpenTimestamps 03
1059 Gift Wrap 59
1063 ファイルメタデータ 94
1311 ライブチャットメッセージ 53
1617 Patches 34
1621 Issues 34
1622 Replies 34
1971 問題トラッカー nostrocket
1984 通報 56
1985 ラベル 32
4550 コミュニティ投稿の承認 72
5000-5999 ジョブ要求 90
6000-6999 ジョブ結果 90
7000 ジョブフィードバック 90
9000-9030 Group Control Events 29
9041 Zap Goal 75
9734 Zap要求 57
9735 Zap 57
9802 ハイライト 84
10000 ミュートリスト 51
10001 ピン留めリスト 51
10002 リレーリストメタデータ 65
10003 ブックマークリスト 51
10004 コミュニティリスト 51
10005 パブリックチャットリスト 51
10006 ブロック済みリレーリスト 51
10007 検索リレーリスト 51
10009 User groups 51, 29
10015 興味・関心リスト 51
10030 ユーザー絵文字リスト 51
10096 ファイルストレージサーバーリスト 96
13194 ウォレット情報 47
21000 Lightning Pub RPC Lightning.Pub
22242 クライアント認証 42
23194 ウォレット要求 47
23195 ウォレット応答 47
24133 Nostr Connect 46
27235 HTTP認証 98
30000 フォローセット 51
30001 汎用リスト 51
30002 リレーセット 51
30003 ブックマークセット 51
30004 キュレーションセット 51
30008 プロフィールバッジ 58
30009 バッジ定義 58
30015 興味・関心セット 51
30017 Create or update a stall 15
30018 Create or update a product 15
30019 Marketplace UI/UX 15
30020 Product sold as an auction 15
30023 長文投稿 23
30024 長文投稿の下書き 23
30030 絵文字セット 51
30063 Release artifact sets 51
30078 アプリケーション固有データ 78
30311 ライブイベント 53
30315 ユーザーステータス 38
30402 Classified Listing 99
30403 Draft Classified Listing 99
30617 Repository announcements 34
31922 日付指定のカレンダーイベント 52
31923 時刻指定のカレンダーイベント 52
31924 カレンダー 52
31925 要返信のカレンダーイベント 52
31989 推奨ハンドラ 89
31990 ハンドラ情報 89
34550 Community Definition 72
39000-9 Group metadata events 29

メッセージ型

クライアントからリレーへ

type 説明 NIP
EVENT イベントの配信 01
REQ イベントの要求と新規更新の購読 01
CLOSE 既存の購読の中止 01
AUTH 認証イベント 42
COUNT イベント計数要求 45

リレーからクライアントへ

type description NIP
EOSE クライアントへのすべての保存済みイベントの送信完了通知 01
EVENT クライアントから要求されたイベントの送信 01
NOTICE クライアントへの人間可読なメッセージ 01
OK クライアントへのイベント配信成功通知 01
CLOSED クライアントへの購読終了とその理由の通知 01
AUTH 認証チャレンジの送信 42
COUNT 要求されたイベントの計数結果 45

新しいイベント種別(kind)を含むNIPsを提案する場合は、これらのリストも更新すること。

標準化済みタグ

タグ名 その他パラメータ NIP
e イベントID (hex) relay URL, marker 01, 10
p 公開鍵 (hex) relay URL, petname 01, 02
a coordinates to an event relay URL 01
d 識別子 -- 01
g ジオハッシュ -- 52
i アイデンティティ proof 39
k 種別(kind)番号 (string) -- 18, 25, 72
l ラベル, ラベル名前空間 annotations 32
L ラベル名前空間 -- 32
m MIME type -- 94
q イベントID (hex) relay URL 18
r 参照 (URL, etc) petname
r リレーURL marker 65
t ハッシュタグ --
alt 概要 -- 31
amount 文字列化されたミリサトシ -- 57
bolt11 bolt11 invoice -- 57
challenge チャレンジ文字列 -- 42
client 名前, アドレス relay URL 89
clone git clone URL -- 34
content-warning 理由 -- 36
delegation 公開鍵, 条件, 委任トークン -- 26
description インボイス/バッジの説明 -- 34, 57, 58
emoji ショートコード, 画像 URL -- 30
encrypted -- -- 90
expiration unix timestamp (string) -- 40
goal イベントID (hex) relay URL 75
image 画像URL   dimensions in pixels 23, 58
imeta インラインメタデータ -- 92
lnurl bech32 encoded lnurl -- 57
location 場所文字列 -- 52, 99
name 名前 -- 34, 58
nonce 乱数 -- 13
preimage bolt11 インボイスのハッシュ -- 57
price 値段 currency, frequency 99
proxy 外部ID protocol 48
published_at unix timestamp (string) -- 23
relay リレーURL -- 42
relays リレーリスト -- 57
server ファイルストレージサーバーURL -- 96
subject 件名 -- 14
summary 記事の要約 -- 23
thumb バッジサムネイル dimensions in pixels 58
title 記事のタイトル -- 23
web webpage URL -- 34
zap 公開鍵 (hex), リレー URL weight 57

NIPsの受け入れ基準

  1. (適用可能であれば)少なくとも2つのクライアントと1つのリレーが実装しているべきである。
  2. 理にかなっている必要がある。
  3. 任意に実装可能であり、後方互換性を有するべきである: 実装しないことを選択したクライアントやリレーが、実装することを選択したクライアントやリレーと通信した際に動作を停止しないよう厳に注意しなければならない。
  4. 同じことする方法が複数あってはならない。
  5. その他のルールは必要に応じて作成する。

このリポジトリは**集権的な要素ではありませんか?

To promote interoperability, we standards that everybody can follow, and we need them to define a single way of doing each thing without ever hurting backwards-compatibility, and for that purpose there is no way around getting everybody to agree on the same thing and keep a centralized index of these standards. However the fact that such index exists doesn't hurt the decentralization of Nostr. At any point the central index can be challenged if it is failing to fulfill the needs of the protocol and it can migrate to other places and be maintained by other people.

It can even fork into multiple and then some clients would go one way, others would go another way, and some clients would adhere to both competing standards. This would hurt the simplicity, openness and interoperability of Nostr a little, but everything would still work in the short term.

There is a list of notable Nostr software developers who have commit access to this repository, but that exists mostly for practical reasons, as by the nature of the thing we're dealing with the repository owner can revoke membership and rewrite history as they want -- and if these actions are unjustified or perceived as bad or evil the community must react.

このリポジトリの仕組み

Standards may emerge in two ways: the first way is that someone starts doing something, then others copy it; the second way is that someone has an idea of a new standard that could benefit multiple clients and the protocol in general without breaking backwards-compatibility and the principle of having a single way of doing things, then they write that idea and submit it to this repository, other interested parties read it and give their feedback, then once most people reasonably agree we codify that in a NIP which client and relay developers that are interested in the feature can proceed to implement.

These two ways of standardizing things are supported by this repository. Although the second is preferred, an effort will be made to codify standards emerged outside this repository into NIPs that can be later referenced and easily understood and implemented by others -- but obviously as in any human system discretion may be applied when standards are considered harmful.

破壊的変更

Breaking Changes

ライセンス

All NIPs are public domain.

Contributors

nips-ja's People

Contributors

fiatjaf avatar darashi avatar erechorse avatar s3-odara avatar asaitoshiya avatar vitorpamplona avatar akiomik avatar jiftechnify avatar pablof7z avatar semisol avatar staab avatar jb55 avatar alexgleason avatar arthurfranca avatar github-actions[bot] avatar unclebob avatar 0xtlt avatar mikedilger avatar dependabot[bot] avatar rira224 avatar mattn avatar jeffthibault avatar ocknamo avatar uchijo avatar mariano-perez-rodriguez avatar monlovesmango avatar giszmo avatar erskingardner avatar brugeman avatar v0l avatar

Stargazers

moti avatar Philmist avatar DarthReidar avatar  avatar  avatar Shotaro Nakamura avatar Hideaki Kiko avatar Comamoca avatar  avatar Lokuyow avatar CHIKURA Shinsaku avatar Yuji avatar ふぃろ avatar Inaridiy avatar タコ頭大吉(Daikichi Takoatama) avatar T.Shinohara avatar Takuya Okada avatar Hokuto Takai avatar godzhigella avatar KingYoSun avatar  avatar  avatar  avatar  avatar 虹村晴好 avatar Hakkadaikon avatar Lunkhopao Haokip avatar Favi_ty avatar yutaro avatar 22388o⚡️  avatar kunigaku avatar  avatar  avatar dai avatar Don avatar

Watchers

 avatar  avatar  avatar ふぃろ avatar 雪猫 avatar  avatar Takuya Okada avatar  avatar TSURUDO Ryosuke avatar

nips-ja's Issues

NIP-01: Resolve conflicts

#72 で発生したconflictについて、差分が大きいものについては一旦conflictマーカーを残したままマージさせていただきました。

訳文の更新とconflictの解決をお願いいたします。

About style guide

現在は暫定で #3 にて定義されたlintを設定していますが、もう少し内容を詰めていけたらと思います。

なお、現状は基本的には https://github.com/textlint-ja/textlint-rule-preset-ja-technical-writing に従いつつ

の3つがfalseになっています。

検討中のスタイルガイドの変更点

他にもありましたら提案してください。

ubiquitous language

概要

昨日README翻訳をレビューした時に思ったのですが、ユビキタス言語 (用語統一の一覧)が欲しいと思いました。

  • Relay, リレー -> リレー
  • Client, クライアント -> クライアント

記載方法

mdのテーブル形式で、↓ こういう感じでいいと思います。

名前(英) 名前(日) よくある間違い
Relay リレー Relay
Client クライアント Client
interests list 興味・関心リスト インタレストリスト

管理について

管理者等は特に決めず、気付いた人が追加・レビューする形でいいと思います。
管理場所についてはWiki or リポジトリに含める のどちらかと思っていますが
個人的にはWiki管理でもいいのではと思っています。

このissueの完了条件

  • ユビキタス言語導入有無の決定
  • 導入する場合、たたき台を作って追加 (これは私 (発火大根)がやれます)

まずは、皆さんの意見が聞きたいと思います。

NIP-46: Resolve conflicts

#72 で発生したconflictについて、差分が大きいものについては一旦conflictマーカーを残したままマージさせていただきました。

訳文の更新とconflictの解決をお願いいたします。

Progress checklist

このリポジトリの概要

CONTRIBUTING.mdに移動しました。

Checklist

Change from "ですます" to "だ・である"

「ですます」調よりも「だ・である」調の方が翻訳しやすいと判断し、移行作業を行います。完了した時点でtextlintの設定を変更し、Pull requestを送ります。

  • NIP-01 #38
  • NIP-02 #48
  • NIP-03
  • NIP-04
  • NIP-23 #24
  • NIP-26
  • NIP-36 #48
  • NIP-46
  • NIP-58
  • NIP-65 #55

NIP-05翻訳のtextlintルール

NIP-05の翻訳で [サ変名詞]を行うルールに違反している のですが、「を行う」が冗長になるのは、
https://www.nhk.or.jp/bunken/summary/kotoba/yougo/pdf/045.pdf
この記事の鉛筆立て作りの例で示されるように前の単語がひとつの名詞かのように考えてしまって「〇〇を要求する」が「〇〇要求を行う」のように冗長になってしまう場合だと思います。

NIP-05の現在の翻訳では「GET要求を行う」が違反しているのですが、これは「GET要求」がひとまとまりの名詞形として扱うのに適当であるために誤検知であると考えています。
「GETリクエストを行う」に変更すると通るようになるのですが、そもそもリクエストもサ変名詞であるために根本的な解決にはなりません。

lintで個別に除外できればそれがいいのですが、できなそうであればtextlint-rule-ja-no-redundant-expressionのdict5をルールから外すのがいいのかなと。

NIP-26 translation issue

指摘忘れを見つけたため issue で失礼します。

現時点の翻訳:

nips-ja/26.md

Line 110 in e5fb584

リレーは、委任される鍵 (477318cf...) によって公開されたイベントを委任する鍵 (8e0d3d3e...) が削除することを許可する必要があります。 (SHOULD)

※参考: 原文
https://github.com/nostr-protocol/nips/blob/d85f9269ca300fb3bee627733c8086df4fcff875/26.md?plain=1#L110

許可する必要があります。 (SHOULD)

SHOULD なので「必要がある」とまでは行かず「許可するべき」程度がよいのではないかと思ったのですがどうでしょうか。

関連: #2
@s3-odara

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.