作者:林晨(ArcBlock 工程师)
经过两个多月的打磨、322 次提交和 19 个小版本迭代,ABT Node 1.4.0 版于 2021 年 7 月 14 日正式发布。
如想试用最新版,可以运行 npm install -g @abtnode/cli
获取。
ABT Node 1.4.0 版包含如下几个重要的新功能:
- 通行证: 使用通行证 NFT 访问去中心化应用
- 消息推送服务: 支持 Blocklet 向钱包发送实时消息
- UI 优化: 大幅优化 Dashboard UI
在详细介绍上面两个新特性之前,首先通过类比来解释本文涉及的各个部件的作用:
- ABT Node:好比每个人自己拥有的手机,只不过 ABT Node 里面安装的是 Blocklet,每个人的手机只属于自己,ABT Node 的所有者对自己的数据也有完全的控制权
- Blocklet:好比安装在每个手机里面的应用,基于 ABT Node 提供的 DID 用户认证、区块链支付服务,开发者可以构建强大但足够去中心化的应用
- DID Wallet:帮助用户管理数字身份、数字资产的去中心化的软件。这里的数字资产包括通证、NFT(票、券、证书、加密艺术品)
通行证: 使用通行证 NFT 访问去中心化应用#
在现实世界中,我们会使用各种证件来表明我们的身份,进而出入各个场所,办理各个事项,享受各种服务。我们凭借护照进出各个国家,我们凭借员工卡进出各个办公楼和会议室,学生们使用学生证享受各种优惠服务。
在去中心化的虚拟世界中,ABT Node 同样支持了使用和证件类似的 “通行证 NFT” 来访问各个去中心化应用,进出各个去中心化组织(DAO)。
领取了通行证后,通行证会存储在我们自己的钱包里,完全属于我们自己。
- 在团队中管理通行证
- 在团队中设置信任的通行证颁发者
- 在团队中为成员颁发通行证
- 领取通行证后,通行证会出现在我们的钱包中
- 连接到应用时,提供通行证以确认身份
消息推送服务: 支持 Blocklet 向钱包发送实时通知和消息#
消息推送功能是每个应用都需要的基础功能之一,应用通过消息推送功能和用户保持连接,比如通知用户订单已发货,拍卖已成交,会员资格快到期等等。
ABT Node 提供了基于 DID 的消息推送服务,能够以去中心化的方式让 Blocklet 开发者在不依赖于任何第三方服务的情况下给用户的 DID 钱包发送通知。
- 去中心化的设计使得没有使用过的 Blocklet 无法给你的账号发送大量的发送垃圾信息。
- 发送的消息不仅支持文本,还可以携带附件,比如通证、NFT 以及 VC(可验证证书)。
- 支持发送多语言的消息。
为 Blocklet 配置消息推送服务
在 blocklet.yml
配置文件中显示启用 auth service(验证服务)后,Blocklet 就可以使用消息推送服务了。
interfaces:
- type: web
name: publicUrl
path: /
prefix: "*"
port: BLOCKLET_PORT
protocol: http
services:
- name: "@abtnode/auth-service"
Blocklet 向钱包发送实时通知和消息
使用 Blocklet SDK 来完成通知的发送
const Notification = require("@blocklet/sdk/service/notification");
const userDid = "xxx"; // get user did from session or db
await Notification.sendToUser(userDid, {
title: "hello world",
body: "This is a message from blocklet",
});
UI 优化: 大幅优化 Dashboard UI#
- 重新设计 Dashboard 应用市场页面 UI,更加简洁的 Blocklet 卡片
- 大幅优化 Dashboard 在移动端的体验,几乎所有的关键操作都可以在移动端完成
- 将团队管理从统一页面拆分到各个应用中,使管理员可以更加便利的管理应用
其他#
- 对下载过的 Blocket 进行缓存,以提升下载速度
- 支持自定义 Blocklet 的名称、描述和私钥
- Composite Blocklet 支持区分 parent 和 child 的 AuthService 配置
- 支持以 cluster 模式运行 Blocklet
- Blocklet SDK 中增加 WalletAuthenticator
- ABT 节点支持首次启动时直接自动启动预安装的 Blocklet
- ABT 节点内部增加 EventBus 服务, 子服务间通过 EventBus 更加及时的的进行消息同步
- 如果节点是由 Node Launcher 创建的,在 Dashboard 中可以看到 launcher 的信息
- 将 ABT Wallet 改为 DID Wallet
- 部分 Bug 修复以提升稳定性和性能