跳到主要內容

ArcBlock 最新架構更新,回顧其演進歷程

Robert
ArcBlockArchitecture

作者:Robert Mao,ArcBlock 創辦人

在回顧 2023 年的進展時,我們展示了最新版本的整體架構圖,這是過去數年持續演進與迭代所累積的成果。在本文中,我將說明我們最新的架構圖,並回顧我們是如何一步步演進至今。

完整架構

以下是我們最新版架構圖的全景圖:

Image

我們將整個系統劃分為四個層級,相較於先前的劃分方式做了一些微調:

  • 應用層(Application Layer)
  • 服務提供層(Service Provision Layer)
  • 基礎設施層(Infrastructure Layer)
    • 運算(Compute)
    • 儲存(Storage)
    • 區塊鏈(Blockchain)
  • 身分層(Identity Layer)

我們的基礎元件大多已進入可完全支援正式服務運行的狀態。近期,大部分的新工作都聚焦於應用層與服務提供層。進入正式服務階段並不代表已無事可做,我們仍需持續進行升級與改善,這主要包括提升效能、確保穩定性、強化安全性,以及根據市場與技術的進展做出相應調整。

我們的架構是如何演進的?

架構是軟體系統中最重要的組成部分之一,它定義了系統的整體結構與組織方式。良好的架構能提升系統的可維護性、可擴充性與可重用性,同時降低複雜度與風險。因此,在軟體開發過程中,以合理的方式設計並實作架構至關重要。

架構圖看起來往往非常抽象且簡潔,但要形成這些架構圖,需要大量的思考,更需要反覆的實踐與迭代。作為一支擁有深厚工程背景的團隊,ArcBlock 的每一項架構都是在實踐中摸索並總結出來的,這意味著我們通常會先開發並嘗試部分提議方案,然後才逐步敲定這些設計。因此,每當一個版本的架構圖誕生時,相關的工程工作往往早已完成過半,甚至超過八成。要達到這一點,需要經歷一個循序漸進的演進過程。

如果說 ArcBlock 在發展過程中有什麼值得慶幸之處,那就是過去這些年,我們的架構並不需要經歷重大變動。然而,我們的架構其實一直在悄然演進。現在,讓我們回顧一下自開發以來,我們架構完整的演進歷程。

2017 年

這是 ArcBlock 在 2017 年繪製的第一份完整架構設計圖,於當年 10 月定案。自此之後,ArcBlock 平台的整體架構延續至今。如您所見,Blocklet 與 Open Chain Access 等幾個關鍵概念,早已出現在這份設計之中。

Image

一個有趣的小插曲 ArcBlock 平台取的名字是 LODE(Lightweight Objects Decentralization Engine),這是我個人非常喜愛的一個詞。另一個我喜歡的詞是 EZcomm(Easy Communication 的縮寫)。有趣的是,這些名字及其背後的概念,多年來一直貫穿在我所創辦的每一家新創公司之中。

2018 年

這是廣為流傳的 ArcBlock 架構設計圖,於 2018 年 1 月做了些微改進:

Image

除了術語上的一些微調外,這張圖與原始版本基本上並無差異。2018 年,我們首次實作了基礎版的 OCAP,並對架構做出調整以支援 Ethereum 與 Hyperledger,同時也加入了對 Bitcoin 和 Ethereum 的支援。

此外,您可能會注意到,我們將 Ethereum 圖示從原本的 Ethereum 更換為 Enterprise Ethereum Alliance。這一年,我們也加入了 Enterprise Ethereum Alliance 與 Hyperledger Foundation(以及 Linux Foundation)成為會員。這是因為我們當時規劃的目標客群是區塊鏈企業與政府用戶。

2018 年底,我們推出了支援 Bitcoin 與 Ethereum 的 OCAP 服務,並隨即獲得了一些商業客戶。按照計劃,我們採用了 Ethereum 上的 ERC20 版本 ABT,供客戶支付服務費用。這是一個具有重要象徵意義的時刻,但這些實際的服務運作,也讓我們意識到了幾個現實的問題。

  • 使用 Ethereum ERC20 版 ABT 支付時,效能、可用性、速度以及使用者體驗都相當不理想。由於數位貨幣在合規性方面存在不確定性,企業與政府客戶即使有意願使用 ArcBlock 的產品,在實際操作上也可能面臨諸多障礙。
  • 我們需要一套去中心化身分系統,才能讓整個系統保持一致性。在最初設計 ArcBlock 時,我們就已意識到這個問題,但當時這個領域尚無明確的標準可循。因此,我們當時採取的折衷做法,是允許客戶使用自己的身分系統。隨著服務上線、客戶陸續出現,去中心化身分的需求也變得越來越明顯。

2019 年

這一年,我們做出的最大改進是引入了去中心化身分(DID),這或許是我們整體架構演進過程中最重要的一次升級。這一年,在評估了包括 Web ID 在內的多種去中心化身分解決方案後,我們加入了 W3C CCG 與 Decentralized Identity Foundation(DIF)的早期階段,並將 W3C DID 納入我們的路線圖。

arcblock DID overview

這一年,我們取得的重大且影響深遠的進展包括:

  • 設計並實作 DID Method
  • 開發並發布首款支援 DID 的加密錢包 ABT Wallet(2022 年更名為 DID Wallet)
  • 發布 DID Connect 的第一個版本,實現使用 DID/VC 進行應用程式身分驗證

2020 年

2020 年,新冠肺炎疫情爆發,區塊鏈產業在經歷了兩年持續低迷後,幾乎跌至谷底。我們不僅失去了過去兩年一直跟進的多個重要客戶(包括首汽約車、上汽集團、華泰證券等),技術團隊也出現人員流失,其中包括我們的工程副總裁(VP Engineering)。這是我們自創立以來面臨的最大危機與挑戰。

但這一年,我們也取得了最重要的成果。在重新組建團隊的基礎上,我們持續回歸最初設計的架構。在權衡了區塊鏈產業長期低迷、合規性尚不明朗,以及全球疫情爆發所帶來的未知影響之後,我們決定專注於開發者生態系統與 Web3 消費市場。我們首先集中全團隊之力,實作了一項最具特色卻始終被忽視的成果 Framework,以及支援它運行的 ABT Node(註 Node 後來更名為 Blocklet Server)。

到 2020 年,隨著 ABT Node 的推出並成功運行,我們終於完整實現了早在 2017 年就已規劃好的系統。這個里程碑,相當於攀上了摩天大樓的頂端。

從 2020 年到 2023 年,我們一直使用這份架構圖來更新網站。這張圖的架構其實與先前的結構並無太大差異,只是我們將去中心化身分(DID)與可驗證憑證(VC)納入其中,並與 Open Chain Access Protocol 並列。

Image

2020 年是極為艱難的一年,但同時也是充滿勇氣、決心與辛勤付出的一年。這一年,我們終止了一批產品與服務:

  • 我們將原本基於 AWS 服務索引架構所設計的初版 OCAP 服務,替換為以 Blocklet 為基礎的 OCAP 元件。
  • 基於第一代 OCAP、服務於企業與政府需求的 Token Flow 與 TAO(Token Accounting Officer)已停止運作。
  • 基於 Tendermint 的 Forge Framework 與 SDK,後來被 Blocklet Framework 完全取代。
  • Token Swap V1 服務,後續將由 Arc Bridge 服務取代。
  • 在技術架構方面,我們也從先前的 Erlang/Elixir 技術堆疊,轉向以 JavaScript/TypeScript 與 Node.js 為主的統一方向。

但這一年,我們在 ABT Node 上也取得了顯著進展:

  • 推出 ABT Node 與 Blocklet Framework
  • 在 Blocklet Framework 下重建了我們的區塊鏈服務
  • 以 Blocklet Framework 為基礎重構了 OCAP
  • 舉辦首屆開發者大會,並推出基於 DID/VC 的 NFT 產品,用於 DevCon 的門票與徽章
  • 出版了兩本區塊鏈相關書籍,奠定我們在區塊鏈產業中的地位與基礎

2021 年

我們都知道,摩天大樓封頂並不代表建設完工,軟體平台也是如此。自 2020 年起,我們的系統已全面運作,因此我們的主要重心,轉移到了持續豐富與完善這套架構上。

這張圖是在我們 2021 年的 DevCon 上公佈的,看起來是非常簡單的四層結構:

這四個層級分別是:

  • 應用層(Application)
  • 基礎設施 與元件、服務
  • 區塊鏈與儲存
  • 身分(Identity)

這些分層設計已然定型。我們 2023 年的最新架構圖,只是以更合理的方式重新整理了這些分類(Blocklet)、儲存與區塊鏈歸為一類,同時將元件與服務分開歸類。

ArcBlock Platform Highlevel Overview

這一年我們最重要的改進之一,是引入了 Blocklet Launcher 的概念。Blocklet Launcher 的推出,首次讓啟動 ABT Node 與運行 Blocklet 變得完全自動化,並且對一般消費者更加友善。這正是讓 dApp 真正走進千家萬戶的基礎。

2022 年

2022 年我們在架構上最重要的改進是:

  • 我們實作了自有的去中心化儲存解決方案 DID
  • 我們在 Blocklet Server 上實現了無伺服器(Serverless)服務部署。

2022 年,我們也簡化了一些概念,並對公司進行了品牌重塑:

  • ABT Wallet 更名為DID Wallet
  • ABT Node 更名為Blocklet Server

這一年,我們的許多努力開始開花結果:

  • W3C DID 於 7 月成為標準——正式列為 W3C 建議標準(Recommendation),這意味著我們多年來在 DID 技術方向上的深耕與努力,獲得了更廣泛的共識。
  • ArcBlock 以合作夥伴及客戶身分出現在 Amazon 的多場會議、活動與官方網站上。
  • ABT 在美國最大的合規交易所 Coinbase 上市,為 ArcBlock 未來服務更多用戶奠定了基礎。

可以看到,這一年我們並不需要更新架構圖,因為我們只需在這個已經成熟的基礎上持續改善即可。

2023 年

2023 年我們在架構上最重要的改進,是引入了支援大型語言模型(LLM)與 AIGC 的 AI Kit。得益於 ArcBlock 卓越的架構設計,支援大型語言模型、AIGC 等功能,對我們而言不過是標準的 Blocklet 開發流程,運用我們的架構,便能立即完美整合 AI、Web3、使用者隱私等各項議題。納入 AI 支援,不僅為我們的生態系賦能,也印證了我們架構設計的合理性與前瞻性。

2023 年底,我進一步精煉了我們的架構,並繪製出如下的最新版本:

Image

這份架構與我們 2017 年繪製的架構圖有著許多相似之處。最大的差異在於,在我們 2017 年的圖中,許多區塊仍處於「規劃中」的狀態,而如今這些區塊幾乎全部都已「正式上線」。

本頁涉及

術語

  • Blocklet

    Blocklet 是 ARC 的可部署單元。它把應用宣告的內容、設定和執行需求放在一起,讓開發者面對的是一個清楚的應用單位,而不是散落在不同位置的部署線索。