Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

解读 ArcBlock的架构全貌,回顾我们的架构演进过程

Robert
2023年12月31日 · edited
B
Blogs
cover

作者: Robert Mao, ArcBlock 创始人。


在我们回顾我们的2023年进展的时候,我们给出了我们更新版本的架构图全貌, 这是我们在过去数年发展基础上演进和迭代的成果。 本文我就来带大家解读一下我们最新的架构图,回顾一下我们是如何一步步地演进而来的。

架构全貌#

这是我们更新后的架构图全景:

Image

可以看到我们把整个系统分为了四层,这对比之前的划分有一些微调:

  • 应用层
  • 服务提供层
  • 基础架构层
    • 计算
    • 存储
    • 区块链
  • 身份层

而我们的基础部分已经绝大多数处于完备的生产服务的状态,最近的很多新的工作主要都在应用和服务提供方面。 即时我们已经进入生产服务状态,并不意味着这些工作就没有了,我们仍然需要对基础的产品进行不断的升级,这些主要包括性能、稳定性的提示、安全性的保障,以及根据市场和技术的演进适当调整。

架构是如何演进的?#

架构是一个软件系统中最为重要的组成部分之一,它定义了系统的整体结构和组织方式。一个良好的架构可以提高系统的可维护性、可扩展性和可重用性,同时也能够降低系统的复杂性和风险。因此,在软件开发过程中,合理设计和实施架构是至关重要的一步。


虽然架构图往往看起来都非常抽象和简单,但是形成这些架构图却需要非常多的思考,以及更多的实践和迭代。 作为工程师背景强的ArcBlock 团队,我们的每一个架构都是在实践中来探索和总结的,也就是我们经常是在一个设想的方案上进行了一部分开发和尝试后,才逐渐定型这些设计。 因此每一版架构设计图诞生的时候, 工程上往往已经完成了一半以上,甚至超过80%的状态, 要能做到这一点就需要一个循序渐进的演化过程。


如果说有什么是ArcBlock的发展过程中最幸运的,那么就是我们的架构在过去的几年发展之中没有需要发生重大的变化。 但是我们的架构其实也在悄悄地演进,那么下面带您一次回顾我们架构从发展以来的完整演进过程。


2017 #

这是 2017 年 ArcBlock 第一份完整的架构设计图, 完稿于当年10月。 从此开始 ArcBlock 平台的整体架构就一直延续至今。 可以看到,我们最重要的几个概念,如Blocklet, Open Chain Access 等都已经出现在在这个设计里。


Image


有趣的看点: 那时候我对ArcBlock 平台的命名是 LODE (Lightweight Objects Decentralization Engine), 这是我个人比较喜欢的一个词。 另一个我喜欢的词汇是 EZcomm (来自 Easy Communication的简写),有趣的是这些部件的名字和其理念贯穿了我很多年的事业。


2018 #

这是 2018 年1月略加改进后, 广为流传的 ArcBlock 架构设计图:


Image


这张图和最初的版本基本没有区别,只是在一些名词上做了微小的改进。 在2018年,我们首先把最基础的OCAP进行了实现,我们也对架构中的支持 Ethereum 和 Hyperledger 做出了调整,支持了 Bitcoin 和 Ethereum。

另外细心的朋友可能看到我们把 Ethereum的支持图标 从过去的 Ethereum,变成了 Enterprise Ethereum Alliance。 我们在这一年也加入了 Ethereum Enterprise Alliance 和 Hyperledger Foundation (以及 Linux Foundation)成为成员。 因为那时候我们计划中的一个重点目标客户群是区块链的企业和政府用户。

在2018年底, 支持Bitcoin 和 Ethereum 的OCAP 服务推出,并且我们立刻有了一些商业的客户,按计划,我们采用了 Ethereum 上 ERC20 版本的 ABT 让客户对服务进行支付。这是一个关键的象征性时刻,但这些实际的服务也让我们意识到了几个现实的问题:

  • Ethereum 的 ERC20 ABT 在支付的时候,无论性能、可用性、速度,使用体验都有很糟糕; 由于数字货币的合规不清晰等问题,使得企业、政府的客户虽然对ArcBlock 产品有意愿,但实践上却有颇多障碍;
  • 我们需要一个去中心化的身份体系,才能让系统变得自洽。 我们在最初设计ArcBlock 的时候其实也意识到这个问题,但这个领域还没有明显的标准可以遵循,因此我们当时做出的妥协(Trade off)是让客户使用自己的身份体系。 随着服务的推出和客户的出现,这个去中心化身份的需求变得越来越明显。


2019 #

我们在这一年最大的改进是引入了 DID (Decentralized Identity), 这可能是我们整个架构演进发展过程中最重要一次升级。 这一年,我们也在评估了Web ID等多个去中心化身份方案之后,加入了还处于早期的W3C CCG, 以及 DIF (Decentralized Identity Foundation),将支持W3C DID 作为我们的路线图中的一部分。


arcblock DID overview

在这一年,我们的重要而深远意义的进展包括:

  • 设计了 DID:ABT Method
  • 开发并发布了第一个支持 DID 的加密钱包 ABT Wallet (在2022年 更名为 DID Wallet)
  • 发布了第一版 DID Connect, 让 DID/VC 能用于应用的登录


2020#

2020 年,Covid 病毒大流行开始, 区块链行业在经历了两年的持续低迷后在大病毒流行下到达了几乎最低点。我们不但因此失去了过去两年来一直跟进的几个企业大客户(包括首汽Gofun、上汽、华泰证券等),还经历了包括我们的 VP Engineering 在内的技术团队的离职。这是我们从成立以来最大的一次危机和挑战。

但在这一年我们也取得了最多关键的成果。 在我重新构建团队的基础上,我们继续回归到我们最初设计的架构。思考了长期区块链行业低迷、合规性不明确以及大病毒流行带来的未知影响后,我们决心把焦点专注到开发者生态和Web3的消费市场上。我们首先花了全部的精力来集中实现了我们最具有特色,但却一直没有实现的东西: Blocklet框架和运行支持它的ABT Node (注: ABT Node 后来更名为 Blocklet Server)。

可以说到 2020 年,ABT Node推出并正常运行后, 我们在 2017年规划的系统才第一次完整运行了起来 , 这个意义相当于一座摩天大楼的封顶。

这张架构图我们从2020年开始一直用到2023年的网站更新, 这张图的架构其实和过去的结构没有区别, 但是我们把Decentralized Identity (DID)、 Verifiable Credentials (VC)加入进来了,并且我们把他们的位置放在和 Open Chain Access Protocol 并列的位置上。


Image


2020 年是非常艰苦的一年,也是勇气、决心和奋斗的一年。 我们这一年Sunset 了一批产品和服务:

  • 第一版基于 AWS 服务 Indexing 体系设计的 OCAP 服务,用基于Blocklet 的 OCAP 部件取代;
  • 取消了了基于第一代 OCAP 的应用 Token Flow, TAO (Token Accounting Officer) ,这些面向企业和政府的需求的产品以后没有继续提供;
  • 基于Tendermint 实现的 Forge Framework 和 SDK , 我们后来用 Blocklet Framework 彻底取代了 Forge;
  • Token Swap V1 服务,这个服务以后被后来的 Arc Bridge 替换;
  • 技术架构上,我们也从过去的 Erlang/Elixir 技术栈走向统一在Javascript/Typescript 和 Node.js 为主的技术栈方向;

但在这一年,我们也在 ABT Node 基础上完成了系列里程碑式的进展:

  • ABT Node 和 Blocklet 框架的推出
  • 在Blocklet 框架下重构了我们的区块链服务
  • 在Blocklet 框架基础上重构了 OCAP
  • 召开了我们第一次开发者大会,并第一次推出我们的基于DID/VC 的NFT 产品,用于DevCon 的门票和徽章
  • 出版了两本区块链书籍,奠定了我们在区块链行业的基础和地位


2021#

我们都知道摩天大楼封顶并不意味着建设的完成,对一个软件平台同样如此。 自从2020年我们的系统完整运行之后,我们的主要工作变成了不断丰富和完善这个架构。


这张图是我们 2021 年 DecCon 上公布的, 它看起来成为一个非常简单的四层结构:


这四层分别是:

  • 应用
  • 基础架构:Blocklet 和组件、服务
  • 区块链和存储
  • 身份

可以看到这些分层设计已经定型,我们2023年的最新的架构图只是更合理化划分了一下归类: 把计算(Blocklet)、存储、区块链划归到一起, 而把组件、服务单独归类在一起。


ArcBlock Platform Highlevel Overview

这一年我们的一个最重要改进是引入了 Blocklet Launcher 的概念, Blocklet Launcher 的引入第一次让启动 ABT Node,运行 Blocklet 完全自动化,并且消费者友好, 这是让 dApps 能真正走向千家万户的基础。


2022#

2022 年我们架构中最重要的改进是:

  • 实现了我们自己的去中心存储方案 DID:Spaces
  • 在 Blocklet Server 上实现了 Serverless 服务方式


2022 年我们还在概念上进行了一些简化,进行了品牌重命名:

  • ABT Wallet 被重新命名为 DID Wallet
  • ABT Node 被重新命名为 Blocklet Server


在这一年,我们的很多努力开始呈现出结果:

  • W3C DID 在7月通过成为了标准 - W3C Recommendation,这意味着我们在DID 的技术方向上多年的努力和深耕获得了更多的共识
  • ArcBlock 作为合作伙伴、客户在 Amazon 的会议、活动和网站上亮相
  • ABT 被美国最大的合规交易所 Coinbase list,这为ArcBlock 面向更多用户提供服务奠定了基础


可以看到我们在这一年,没有需要更新我们的架构图,因为我们需要做的仅仅是在这个成熟的架构基础上完善。


2023#

2023 年我们架构中最重要的改进是引入了 AI Kit 支持了对大语言模型和AIGC 的支持。 由于 ArcBlock 的出色架构, 对大语言模型的支持,AIGC 的支持等等只是标准的Blocklet开发,而且使用我们的架构可以立刻把 AI 和 Web3, 和用户隐私等问题完美结合。 纳入 AI 的支持,不但为我们的生态赋能,而且也验证了我们架构的合理性和前瞻性。


在2023 年年末, 我对我们的架构进行了进一步梳理,画出了下面的更新的版本:


Image


这个架构和我们 2017 年就已经画出的架构图保持了大部分共性, 最大的区别是, 在我们 2017 年的图里,很多 Blocks 都只是处于“规划中”的状态, 而现在这些Blocks 几乎都是“In Production”。



2.0.175