Nostr协议是啥?
网友回复
nostr 是一个分布式的网络,但是很特别的是,这个网络不是 p2p 网络,也没有用到区块链技术,仅仅使用了公私钥体系。基本结构如下:
nostr 网络中目前只有两个角色 relay 和 client。每一个节点被称之为 relay(中继服务器),普通用户是 client。由于没有实现 p2p 协议,每个 relay 之间并不会同步消息,每个 relay 都有自己的数据库存储,数据库的类型可以自行决定,目前用的比较多的是 sqlite 或者 Postgresql,其他的类的数据库也可以,要看 relay 的具体实现。
每个人使用的终端是 client,client 会和 relay 之间进行交互,使用 websocket + json 协议。
从 client 到 relay 支持三种操作:EVENT: 发布 event,发布消息、修改个人简介等等
REQ:搜索数据、订阅 relay 的新信息,比如你关注的用户发布了信息,就可以通过这个请求获取到
CLOSE:关闭 REQ 操作中的订阅 从 relay 到 client 支持两种操作:EVENT: 返回用户订阅的 event 信息
NOTICE:返回可读的信息,这些信息的内容可以由 relay 自行决定其中最重要的就是 event 这个结构,用户有任何的数据新增或者修改,都是通过 event 来发布,为了防止 event 被篡改,发出的 event 都需要使用私钥签名,client 在收到 event 时会去验证这些签名。
relay 和 client 可以自行实现。目前 relay 的实现在这里可以看到:https://github.com/aljazceru/awesome-nostr
client 实现中比较流行的有 Damus 和 snostr.social,在这里可以看到全部的 client 实现:https://github.com/vishalxl/Nostr-Clients-Features-List/blob/main/Readme.md
总体来说,nostr 协议很简单,完整的协议可以在这里看到(https://github.com/no...
点击查看剩余70%