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%
python如何调用openai的api实现知识讲解类动画讲解视频的合成?
html如何直接调用openai的api实现海报可视化设计及文本描述生成可编辑海报?
f12前端调试如何找出按钮点击事件触发的那段代码进行调试?
abcjs如何将曲谱播放后导出mid和wav格式音频下载?
python如何将曲子文本生成音乐mp3或wav、mid文件
python中mp3、wav音乐如何转成mid格式?
js在HTML中如何将曲谱生成音乐在线播放并下载本地?
python如何实现在windows上通过键盘来模拟鼠标操作?
python如何给win10电脑增加文件或文件夹右键自定义菜单?
python如何将音乐mp3文件解析获取曲调数据?