Damus | 初体验及使用教程

2,086 阅读7分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 2 天,点击查看活动详情

前言

近几年区块链元宇宙去中心化等技术概念在网络中迅速传播

期间亦有不少相关的应用出现,像:交易所、数字货币、艺术品NFT、智能合约,细看皆为对玩家有较高门槛的应用

而就在前几天,又一款去中心化的社交应用产品爆火,迅速冲上了appstore排行榜前列,它就是Damus

简介

2月1日,Twitter 创始人 Jack Dorsey 发推称,基于去中心化社交网络 Nostr 的首个客户端 Damus 正式上线

这是一个用户所能完全控制的社交网络应用,相当于用户拥有的对外开放的专属Twitter

该应用建立在开放的互联网协议上,没有平台可以禁止或审查用户,用户在控制自己的数据和语音

几大特点:

  • 加密的端到端加密的私有消息传递通道,让大数据分析远离用户
  • 不需要进行复杂的用户注册和创建帐户操作
  • 不需要电话号码、电子邮件或姓名(匿名)
  • 消息通过去中心化节点网络,没有中心化数据服务器(通过中继器发送接收数据)
  • 可编程,轻松集成自己专属的机器人,自动化用户的生活或业务,Damus在检测到到用户接入的服务器无法连接则会及时进行通知
  • 支持用户与用户之间存在小费交易,用比特币闪电网络功能来交易,可以直接调用第三方闪电网络钱包支付

如何安装

苹果用户

  • 准备一个外区的AppleID账号

若尚无外区AppleID推荐两篇文章:

【2023年】五分钟注册美区AppleID,手把手教,稳定且耐用!

如何免费注册美区 Apple ID

  • AppStore登陆外区账号搜索并下载app

IMG_0302

其它用户

如何使用

打开APP

151675477839_.pic

同意协议说明后进入用户信息填写

161675477839_.pic

获取并记录公钥(账号)与私钥(密码)

公钥:可用于分享给自己的好友,好友通过这个公钥字符串便可以建立好友关系(账号)

Nostr 的世界里,公钥字符串等同于身份

私钥:账号的关键密钥,不可泄露给其他人(密码)

201675477948_.pic

首页

总共有两个TAB:PostsPosts & Replies

用户可以在此查看到官方账号以及当前账号Follow的用户一直以来的内容发布记录

IMG_2342

甚至还能看到官方账号在8个月前的hello world!

20230204104624

当点击右下角的加号时,弹出一个纯文本输入框(一开始的想法:竟然不可以上传图片or视频!!!)

20230204104930

后面通过添加一些discord交流群发现原来可以先转换图片资源为链接再进行图片上传(这不就是将资源上传到CDN嘛)

接着再来看看每一个Post下方都有四个操作按钮分别是:

  • 评论(comment):对指定的一条Post发起评论,点击后同样也是拉起纯文本输入框
  • 转发(repost):转发指定的一条Post,点击后将通过自己的账号发送一条一摸一样的Post
  • 点赞(like):这是一个不可逆操作,点赞了就不能撤回(手滑也不能撤回)
  • 分享(share):分享出去的是一个以damus.io开头的链接

20230204105351

消息数据(DMs)

这是一个用户之前私聊消息数据的收集箱(列表)

DMs:被动接收其它用户私聊关系的消息列表

Requests:主动发起私聊关系的消息列表

20230204112607

私聊界面比较简洁

20230204112757

全局消息(global)

这是一个能够获取到全局所有用户动态消息的入口

能看到在线用户最新发送的消息,当然在此也会有可能接触到难以启齿的内容(dddd)

20230204110538

注意上方有一个搜索框,这里的搜索框没有任何关于搜索类型的解释,但经过实测目前发现只能搜索两类数据

  • 当前搜索结果数据中,用户在注册时输入的用户名(即Username且支持模糊搜索)
  • 用户的公钥(精确搜索用户)

20230204111340

在搜索到的结果里面挑选目标用户点击Follow订阅用户的动态(这里的Follow操作是可以撤回的)

个人中心

点击左上角头像,弹出个人中心抽屉

IMG_2346

  • Profile:个人主页

profile页内能够查阅用户的 username公钥FollowingFollowerRelays(中继器wss协议地址集合) 等信息的数据

若需要更新个人信息亦可以通过Edit入口进入编辑页

20230204113133

更新头像需要提供一个链接,应用不支持直接上传图片,这里有一个工具网站可以参考

URL:postimages.org/

  • Blocked:屏蔽用户数据列表

当我们在使用应用的过程中不喜欢查看某用户的动态信息时,我们可以对其进行block处理

20230204113805

操作后的用户便会出现在Blocked列表当中

20230204113917

  • Settings:应用设置

用户可以通过此处查询到自己的公钥私钥,同时能够选择钱包类型

并且如果在用户不再使用应用的情况下,用户还可以对自己的账号进行销毁

20230204114316

交易能力

Damus 内置了比特币闪电网络功能,可以直接调用第三方闪电网络钱包支付

20230204122554

去中心化社交网络

Nostr 是一个匿名、简单、开放的网络协议,旨在创建一个抗审查的全球社交网络,且不需要任何受信中心化服务器,服务不间断,基于非对称密钥和签名,安全又可靠

使用

用户运行一个本地客户端(比如 Damus网页命令行),生成一对密钥对(注册帐号)

当需要发布某些内容时,用密钥对内容进行签名,并将其发送到多个中继器(由协议参与者架设的托管服务器,用户自己也可以搭建服务器),其他人就可以通过中继服务器,获取你发布的信息(用户询问周围的中继器以拉取信息)

中继器的功能很简单,就是接受客户端或向其他中继转发消息

任何人都可以运行中继器,中继器只存储转发内容,作为用户无需信任中继器,因为签名只在客户端进行验证

Nostr 要做的就是最简单的社交,每个人想说的每句话,都能被他想让看到的人看到

nostr协议

nostr:通过 websocket 收发 JSON 格式 Event 消息

{
  "id": "<sha256 of the serialized event data>",
  "pubkey": "<32-bytes hex of public key of the event creator>",
  "created_at": "<unix timestamp in seconds>",
  "kind": "<integer>",
  "tags": [
    ["e", "<32-bytes hex of the id of another event>, <recommended relay URL>"],
    ["p", "<32-bytes hex of the key>, <recommended relay URL>"],
    // other kinds of tags...
  ]
  "content": "<arbitrary string>",
  "sig": "<64-bytes signature of the sha256 hash of the serialized event data>",
}

客户端发给中继服务器 Relay 的所有 Event 都是 Schnorr 算法签名的。其他客户端通过订阅过滤器得到任何 Event。客户端不是去中心化的,但是 Relay 是去中心化的,Relay 之间互相通信收发 Event。客户端自己决定要订阅哪些 Event,怎么验证 Event 是否可信。你可能会觉得这样的协议,太过简单,没什么价值。其实,正是因为协议简单,才适合与去中心化的应用场景,满足去中心化社交网络 DSN 的需求

讲到最后

总的来说Damus只是一个基于开放社交协议 nostr 网络创造了一个可供用户方便注册网络账号以及发布接收内容的客户端,经过体验可以发现客户端实现的功能都比较简洁、易上手,没有过多的UI设计,一定程度上给人一种半成品的感觉,但也正因如此才能够给人以更大的想象空间

自2023年2月1日推特创始人发帖以来,科技圈为Damusnostr掀起了一大波尝新浪潮,而此前许多web3区块链相关的概念和技术相似的项目其实已经进行了很长时间的探索(即使没有破圈),作为最近兴起的 DamusNostr 的未来仍然充满着许多的未知

愿冰冷的技术最终能够赋予人们生活无限的温暖

互关

me:npub193xn8vu9jva6w0acg6n8q40eygr9a8drlts6npueuqxvnvun23wsfs2zwn

参考

Damus,突然爆火!

Nostr 协议,及命令行工具 noscl