什么是 Blocklet?Blocklet(基石程序) 是供開(kāi)發(fā)者和社區(qū)用戶在 ArcBlock 平臺(tái)上創(chuàng)建事物的可重用構(gòu)建模塊。簡(jiǎn)單來(lái)說(shuō),Blocklet 可以是任何現(xiàn)成
什么是 Blocklet?
Blocklet(基石程序) 是供開(kāi)發(fā)者和社區(qū)用戶在 ArcBlock 平臺(tái)上創(chuàng)建事物的可重用構(gòu)建模塊。簡(jiǎn)單來(lái)說(shuō),Blocklet 可以是任何現(xiàn)成的組件、模塊、庫(kù)、前端視圖或其他簡(jiǎn)化構(gòu)建 dApp(去中心化應(yīng)用)過(guò)程的工具。您選擇一個(gè) Blocklet 后,就可以安裝、啟動(dòng)并運(yùn)行該 Blocklet。除了使用單一的 Blocklet, 用戶也可以將多個(gè) Blocklet 組合在一起,用于構(gòu)建更復(fù)雜的 dApp。
對(duì)于不同的應(yīng)用場(chǎng)景,我們提供了不同的 Blocklet,包括但不限于:
•入門(mén)模板:開(kāi)發(fā)者可以在幾分鐘內(nèi)啟動(dòng)一個(gè)已經(jīng)連接到 Forge 支持的區(qū)塊鏈的 dApp;
•功能齊全的 dApp:礦工或社區(qū)用戶可以即刻安裝、啟動(dòng)和運(yùn)行;
•智能合約:已具備相關(guān)業(yè)務(wù)邏輯的鏈上管道,可以被一鍵部署到 Forge 鏈上;
•Web 組件或服務(wù):支持 ABT 區(qū)塊鏈節(jié)點(diǎn)
•Azure,AWS 或其他支持云計(jì)算平臺(tái)的示例
•以及更多
Blocklet 會(huì)以三種版本發(fā)布:官方、合作伙伴、社區(qū)版本。
什么是 Blocklet 列表?
為了方便開(kāi)發(fā)者快速找到需要的 Blocklet,ArcBlock 或社區(qū)發(fā)布的 Blocklet 都會(huì)被羅列在blocklet.arcblock.io[1]。這個(gè)列表是從 ArcBlock/blocklets[2] 生成的, 用戶可以搜索并查看已發(fā)布的 Blocklet,只需簡(jiǎn)單一條命令就可以運(yùn)行選中的 Blocklet, 這個(gè)網(wǎng)站就是 Blocklet 列表。
如何定義一個(gè) Blocklet?
一個(gè) Blocklet 需要以下關(guān)鍵信息:
? tree . -L 2
.
├── screenshots
│ ├── image1.png
│ ├── image2.jpg
│ └── image3.png
├── blocklet.md
├── blocklet.json
└── logo.svg
關(guān)鍵信息: blocklet.json
這是定義一個(gè) Blocklet 的關(guān)鍵文件,包含以下域:
{
// 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
"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": ""
}
}
關(guān)鍵信息: blocklet.md
Blocklet 應(yīng)該包括一個(gè)詳細(xì)的介紹。為了方便 Blocklet 的未來(lái)用戶快速上手,介紹中應(yīng)回答以下幾個(gè)問(wèn)題,:
•Blocklet 安裝之后可以做什么?雖然用戶可以從 Blocklet 所屬的群組推斷一二,但幾句更詳細(xì)的描述會(huì)讓用戶理解更清晰。
•使用 Blocklet 有什么要求?包括硬件、軟件、開(kāi)發(fā)者的經(jīng)驗(yàn)和技能.
•用戶使用 Blocklet 的過(guò)程中可能遇到什么問(wèn)題?如何解決?
關(guān)鍵信息: logo.png
Blocklet 的詳細(xì)介紹會(huì)展示 Blocklet 的標(biāo)識(shí),標(biāo)識(shí)應(yīng)該是一張 200px x 200px 背景透明的圖片,最好是 png 格式的圖片。
關(guān)鍵信息: screenshots
屏幕截屏文件夾應(yīng)包括幾張使用 Blocklet 的截屏,幫助用戶快速理解這個(gè) Blocklet 的作用和初衷。
其他信息
包括在過(guò)程中需要運(yùn)行的腳本。
元信息解析
為了避免package.json中有重復(fù)的域,有些域可以不在blocklet.json中再次定義,提交后這些域會(huì)被自動(dòng)合并。
如何新建一個(gè) Blocklet?
forge-cli將會(huì)支持使用forge blocklet:create來(lái)新建一個(gè) blocklet:
•如何新建一個(gè)新手 blocklet?
•如何新建一個(gè) dApp blocklet?
•如何新建一個(gè)合約 blocklet?
如何發(fā)布一個(gè) Blocklet?
1.新建一個(gè) Blocklet 并確保其正常運(yùn)行
2.Fork 這個(gè)倉(cāng)庫(kù)
3.把你的倉(cāng)庫(kù)地址加入 registry.yml
4.在這個(gè)倉(cāng)庫(kù)中發(fā)一個(gè) Pull Request
5.一旦你的 Pull Request 被合并,你的 Blocklet 就會(huì)出現(xiàn)在官方列表中。(PR@arcblock.io)