使用 ArcBlock SDK 在 36 小時內打造 DApp

作者: Jonathan Lu(ArcBlock 資深軟體工程師)
當我們開始開發 ArcBlock 平台時,主要目標之一就是提供一項服務,協助開發者更輕鬆、更快速地建構去中心化應用程式。如今,傳統網頁開發者已經享有定義完善的網頁開發技術堆疊;我們希望為區塊鏈應用程式帶來相似體驗,為開發者與專案經理提供所需的一切,讓他們能以類似網頁應用程式的方式建構去中心化應用程式。我們有時會把它比作區塊鏈版的 Ruby on Rails。基於這項目標,我們建立了支援 JavaScript、Python 與 Elixir 等多種語言的 ArcBlock SDK,也提供 ArcBlock CLI 和 Blocklet.Starters 等創新且易用的工具。

八月時,我們的實習生 Yongxin Xu 發表了一系列精彩的文章,記錄她如何從區塊鏈開發者新手起步,使用我們的產品,在不到四週內完成自動販賣機 DApp。這啟發我們親自「吃自己的狗糧」(Microsoft 的用語)——不只親手解決真實世界的問題,也測試我們所建構產品的易用性與能力。
因此,我們決定參加最近的萬向區塊鏈黑客松,並在 36 小時內構思及打造一個 DApp。
Charging Block DApp

黑客松有一項名為「區塊鏈與汽車產業」的挑戰,因此我們把焦點放在大多數電動車車主都遇過的問題:附近沒有可用充電站時,該如何為電池充電。
依我們的觀察,儘管近年公共充電設施持續增加,其涵蓋範圍仍無法滿足所有使用者。人們仍可能在車輛續航範圍內找不到可用的充電器。此外,由於各充電站未互相連接,也沒有提供誘因給駕駛,公共充電系統的整體使用率尚未最佳化。有些充電站總是很擁擠,因為即使車輛已充飽電,仍有人一直把車停在那裡。另一個問題是商業用電與家庭用電的費率不同,導致這些充電站的充電費通常遠高於家用充電器。
因此,我們構思了名為 Charging Block 的 DApp。基本概念是建立一個電動車駕駛社群,讓願意的人共享充電樁。透過啟動一條具有原生代幣 Charging Block Token(CBT)的區塊鏈,人們可以加入社群、共享資源並獲得報酬。CBT 可用來支付充電費、鼓勵分享(向最優秀的充電設備提供者發放額外代幣),以及懲罰浪費公共資源的人(向車輛充飽後仍占用充電器的駕駛收取閒置費)。此外,人們也可以使用 CBT,為住家附近的充電站進行群眾募資並獲得投資報酬。所有交易都會在鏈上即時且不可否認地處理。
我們認為這是個有趣的 DApp 構想,並在黑客松期間著手製作概念驗證展示。這次黑客松的 DApp 展示由三個部分組成:區塊鏈、車用應用程式,以及充電樁應用程式,如下方影片所示。
如果你想跟著程式碼操作,以下幾項內容能幫助你開始,也能讓你看見 ArcBlock 讓入門變得多麼容易。
我們執行以下指令,使用 Forge CLI 初始化一條新的區塊鏈:
forge chain:create charging-chain只需在終端機完成幾個步驟,就能自訂新鏈的鏈名稱與代幣名稱。接著,可以使用以下指令啟動鏈:
forge start charging-chain就這樣,鏈已經開始運作。現在,我們可以使用 dapp starter Blocklet 快速建立新的 DApp:
forge blocklet:use forge-react-starter對跟著操作的開發者而言,值得注意的是:到這一步為止,你已經在不到兩分鐘內啟動了自己的區塊鏈,以及我們其中一個 Blocklet.starter。這些步驟通常很複雜,需要許多額外工具,但 ArcBlock 平台讓 DApp 的建立變得非常容易。其餘展示程式碼可以在這裡找到。
成果
在 36 小時黑客松結束前,我們完成了這項展示並向評審發表。很幸運地,我們獲得了這項挑戰的第三名。

我們從這次經驗中學到:1)讓框架對開發者更友善是正確的方向,而我們打造的產品確實能達到預期;2)許多小細節仍有改善空間,可以進一步提升開發者體驗,我們也會繼續努力。