如何定義一個(gè)Blocklet基石程序
什么是 Blocklet?
Blocklet(基石程序) 是供開(kāi)發(fā)者和社區(qū)用戶(hù)在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, 用戶(hù)也可以將多個(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ū)用戶(hù)可以即刻安裝、啟動(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] 生成的, 用戶(hù)可以搜索并查看已發(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
“l(fā)ogo”: “l(fā)ogo.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”: “”
}
}
關(guān)鍵信息: blocklet.md
Blocklet 應(yīng)該包括一個(gè)詳細(xì)的介紹。為了方便 Blocklet 的未來(lái)用戶(hù)快速上手,介紹中應(yīng)回答以下幾個(gè)問(wèn)題,:
?Blocklet 安裝之后可以做什么?雖然用戶(hù)可以從 Blocklet 所屬的群組推斷一二,但幾句更詳細(xì)的描述會(huì)讓用戶(hù)理解更清晰。
?使用 Blocklet 有什么要求?包括硬件、軟件、開(kāi)發(fā)者的經(jīng)驗(yàn)和技能。
?用戶(hù)使用 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 的截屏,幫助用戶(hù)快速理解這個(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)在官方列表中
References
[1] blocklet.arcblock.io: https://blocklet.arcblock.io
[2] ArcBlock/blocklets: https://github.com/arcblock/blocklets
來(lái)源: ArcBlock區(qū)塊基石