ArcBlock Blocklet 介紹

什麼是 Blocklet?
Blocklet 是可重複使用的建構模組,可協助開發者與社群使用者在 ArcBlock 平台上建構應用。最簡單地說,Blocklet 是現成的元件與模組、程式庫、前端檢視等,讓開發者能非常容易地開始建構 dApp。只要選擇所需的 Blocklet 並立即安裝,就能開始使用。Blocklet 的重要特色之一,是可以輕鬆組合多個 Blocklet,建構更複雜的應用程式或 dApp。

Blocklet 會依使用情境提供不同套件,包括但不限於:
- 入門範本,讓開發者能在幾分鐘內啟動已連接 Forge 驅動區塊鏈的 dApp;
- 功能完整的 dApp,礦工或社群使用者安裝後即可快速執行;
- 智慧合約,用於定義商業邏輯的鏈上流程,並可一鍵部署到 Forge 驅動的鏈;
- 支援 ABT Blockchain Node 的 Web 元件或服務
- 適用於 Azure、AWS 或其他雲端環境的範例
- 以及更多
Blocklet 初期將提供三種類型:官方版、合作夥伴版與社群版。

什麼是 Blocklet Registry?
為了協助開發者更容易找到可用的 Blocklet,ArcBlock 與社群開發者建構的所有 Blocklet 都會列在 Blocklet.arcblock.io。此網站以 ArcBlock/blocklets 建構,使用者可以搜尋及檢視列出的 Blocklet,並只用一個指令即可使用。這個網站稱為 Blocklet Registry。
如何定義 Blocklet?
建立 Blocklet 需要幾項關鍵資訊:
❯ tree . -L 2
.
├── screenshots
│ ├── image1.png
│ ├── image2.jpg
│ └── image3.png
├── blocklet.md
├── blocklet.json
└── logo.svg關鍵資訊:blocklet.json
這是定義 Blocklet 的關鍵檔案,可包含下列欄位:
{
// Brief introduction to the blocklet
"description": "A dApp starter that integrates forge-javascript-sdk and create-react-app",
// Specify the logo file of the blocklet
"logo": "logo.svg",
// Can be starter|dapp|contract
"group": "starter",
// Can be primary|secondary|error
"color": "primary",
// provider information
"provider": "ArcBlock",
"documentation": "https://docs.arcblock.io",
"support": "support@arcblock.io",
"community": "https://gitter.im/arcblock/cummonity",
// Charge settings
"charging": {
"price": 10,
"receiver": "z1en6dudVmqsP1P2ZG1R8DdBZoYPnzw46T1",
},
// Can the blocklet be used with another blocklet?
"composable": false,
// Following fields can be inherited from package.json
"name": "forge-react-starter",
"version": "0.37.0",
"author": "wangshijun <shijun@arcblock.io> https://github.com/wangshijun",
"keywords": ["arcblock", "forge", "starter", "react", "javascript"],
"homepage": "https://github.com/ArcBlock/forge-dapp-starters/tree/master/packages/forge-react-starter",
"repository": {
"type": "git",
"url": "https://github.com/ArcBlock/forge-dapp-starters/tree/master/packages/forge-react-starter"
},
// Customize the install pipeline of the blocklet
"hooks": {
"pre-copy": "",
"post-copy": "",
"configure": "",
"complete": ""
},
"install-scripts": {
"dependency": ""
}
}關鍵資訊:blocklet.md
這是 Blocklet 的詳細介紹,應向潛在使用者釐清下列問題:
- 安裝後 Blocklet 能做什麼?雖然可從其群組推斷,但仍值得用幾句話說明
- 使用此 Blocklet 有哪些需求?包括硬體、軟體、開發經驗與技能
- 使用 Blocklet 時可能遇到哪些問題?該如何解決?
關鍵資訊:logo.png
Blocklet 的標誌可以是任何有效的圖片格式,建議使用 PNG。它會顯示在 Blocklet 詳細資料頁面上,應為 200px x 200px 的透明圖片。
關鍵資訊:screenshots
screenshots 資料夾應包含數張 Blocklet 輸出結果的圖片,讓使用者能輕鬆掌握 Blocklet 的概念。
其他資訊
包括在處理過程中執行的指令碼。
中繼資訊解析
為避免與 package.json 中定義的欄位重複,可從 blocklet.json 省略部分欄位,建構流程會自動合併這些欄位。
如何建立 Blocklet?
使用 forge blocklet:create 初始化 Blocklet 設定;forge-cli 即將支援此功能。
- 如何建立入門 Blocklet?
- 如何建立 dApp Blocklet?
- 如何建立合約 Blocklet?
如何發布 Blocklet?
- 建立 Blocklet 並確認其運作正常
- Fork 此儲存庫
- 修改
registry.yml以納入你的儲存庫 - 向此儲存庫提交 pull request
- pull request 獲接受並合併後,你的 Blocklet 就會列入官方 Registry