跳到主要內容

Forge SDK 入門指南

Shijun Wang (ArcBlock Senior Software Engineer)
ArcBlock區塊鏈BlockletForgeForge Framework

作者: Shijun Wang(ArcBlock 資深軟體工程師)

ArcBlock 的目標是讓區塊鏈與 dApp 的建構變得簡單,讓任何開發專案都能輕鬆運用區塊鏈技術的優勢,而不必面對其複雜性。本文將使用 Forge SDK,帶你在幾分鐘內建立自己的區塊鏈與 dApp。首先,讓我們看看 Forge 包含哪些內容。

Forge SDK 現在包含以下元件,支援 dApp 的完整生命週期:

  • Forge Core:交易處理引擎、與共識引擎互動、資料儲存層、每週版本發布
  • Smart Contracts:Forge 內建的交易合約可協助開發者處理帳戶、交易、跨鏈與鏈治理等 99% 的商業邏輯
  • Forge Desktop:桌面版鏈節點
  • Forge Web:Forge 鏈節點的網頁管理主控台與區塊瀏覽器
  • Forge SDK:支援 Elixir、JavaScript、Java、Python、Rust,未來還會增加更多語言
  • Forge Simulator:流量模擬器
  • dApp Workshop:建立 dApp 情境與工作流程,以測試你的邏輯
  • Forge Patron:整合式測試工具
  • Forge Deploy:支援大規模部署正式環境的 DevOps 工具,目前僅支援 AWS
  • Forge Compiler:智慧合約編譯工具,可透過 Forge CLI 使用

Forge CLI 是取得及使用這些工具的最佳方式之一,只要一個指令就能使用完整的 SDK 工具組。

這篇入門文章將說明如何使用 Forge CLI 完成以下工作:

  • 一鍵設定區塊鏈——建立並設定自己的區塊鏈。
  • 一鍵建立 dApp——快速建立在區塊鏈上執行的 dApp。

安裝 Forge CLI

此範例使用 Node.js,因此開始安裝前,請確認電腦已安裝 Node.js v10.x 或更新版本。你可以執行以下指令確認執行環境:

node --version

接著執行 npm install -g @arcblock/forge-cli 安裝 Forge CLI。安裝完成後,應會看到以下輸出:

安裝 Forge 版本

執行 forge install v0.38.4,將 Forge 安裝到本機磁碟。安裝流程如下:

一鍵建立鏈

執行 forge chain:create demo-chain 建立第一條區塊鏈,並設定名稱為 DCT、代幣總量為一億枚。流程如下:

若要自訂設定,請依照以下步驟:

  1. Chain name: demo-chain 鏈與節點都命名為 demo-chain。
  2. Please input block time (in seconds): 5 將出塊時間設為 5 秒。
  3. Do you want to customize token config for this chain? Yes 選擇自訂鏈上的代幣設定。
  4. What's the token name? Demo Chain Token 代幣名稱。
  5. What's the token symbol? DCT 設定至少 3 個字元的代幣代號。
  6. What's the token icon? /Users/wangshijun/.forge_cli/tmp/token.png 代幣圖示的檔案路徑,建議使用正方形 PNG 圖片。
  7. Whats the token description? Token on demo chain 代幣說明。
  8. Please input token total supply: 100000000 代幣總供應量。
  9. Please input token initial supply: 100000000 代幣初始供應量。
  10. Please input token decimal: 18 小數位數。
  11. Do you want to enable "feel lucky" (poke) feature for this chain? Yes 允許使用者簽到領取代幣。
  12. Do you want to customize "feel lucky" (poke) config for this chain? Yes 自訂簽到功能的參數。
  13. How much token to give on a successful poke? 10 每次簽到可獲得 10 枚代幣。
  14. How much token can be poked daily? 1000 每天最多發放 1,000 枚代幣。
  15. How much token can be poked in total? 1460000 可透過簽到發放的代幣總上限。
  16. Do you want to include moderator config in the config? Yes 自動建立鏈管理員資訊。
  17. Set moderator as token owner of (98540000 DCT) on chain start? Yes 將其餘代幣放入管理員帳戶。

執行指令後,應會看到以下訊息:

接著執行 forge start demo-chain 啟動測試鏈,等待約 15 秒讓它自動啟動。

剛啟動的測試鏈是單節點鏈。本機節點提供網頁 UI 與整合式區塊瀏覽器。執行 forge web open 開啟主控台。

一鍵部署 dApp

鏈準備完成後,就能建立第一個在鏈上運作的去中心化應用程式(dApp)。Blocklet 是可重複使用的建構模組,可大幅簡化開發者建立 dApp 的流程。Blocklet 可以包含現成元件、模組、函式庫、前端檢視,以及其他簡化 dApp 開發所需的工具。選好 Blocklet 後,只要安裝、啟動並執行即可。多個 Blocklet 也能組合成更複雜的 dApp。

在這個範例中,我們將建立具備以下功能的 dApp:

  • 支援使用者透過 ABT Wallet 登入
  • 允許使用者掃描代碼簽到並領取代幣
  • 允許使用者使用測試代幣付款,解鎖加密文件

執行 forge blocklet:use、選擇 forge-react-starter,再將 dApp 程式碼的儲存目錄指定為 demo-dapp,如下所示:

依提示設定 dApp 參數。完成後,forge-react-starter 會自動為 dApp 建立 DID 帳戶,並在鏈上宣告 dApp 的 DID。此 DID 以 ArcBlock 的 W3C CCG DID 規範為基礎,採用去中心化身分,並完整整合於 Forge。

現在請指定剛才設定的測試鏈 GraphQL 介面。你可以在 forge start demo-chain 輸出的最後一欄找到它,即 http://localhost:8211/api

dApp 建立完成後,應會看到以下提示:

依提示進入 dApp 目錄並啟動 dApp。如果所有操作都正確,瀏覽器中應會顯示 dApp 首頁:

按一下右上角的登入,使用 ABT Wallet 掃描代碼。如果尚未安裝錢包,可前往 https://www.abtwallet.io 下載。

掃描流程與 WeChat 或 WhatsApp 的登入流程很相似。

在 ABT Wallet 輸入 dApp 要求的使用者名稱與電子郵件資訊,並滑動確認。完成後會看到:

按一下「GET 25 DCT」,再使用錢包掃描代碼,即可取得先前設定的 10 枚代幣並登入。重新整理頁面後,應會看到餘額為 10;本機的區塊瀏覽器也會顯示與註冊和簽到相關的交易。

下一步是解鎖加密頁面。按一下「my purchase」按鈕即可開啟付款頁面。

總結

如果你有任何命令列經驗,整個流程都很直觀。Forge CLI 讓開發者能專注於 dApp 的商業邏輯,其餘讓系統正常運作所需的底層相依項目則由 Forge Framework 處理。我們的目標是讓區塊鏈與 dApp 的建構變得簡單,而 Forge 正能做到這一點。

本頁涉及

產品

  • Forge sunset

    一套用來建造鏈上應用的 SDK 和工具鏈,不必分別拼裝節點、資料層和客戶端。它後來成了 ArcBlock Chain。

術語

  • Blocklet

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

  • 區塊鏈

    透過密碼學連接記錄,並按共同的驗證與共識規則確定交易歷史的分散式帳本。