如何在 36 小時之內用 ArcBlock SDK 開發一個 DApp

買賣虛擬貨幣
9 月 15 日,ArcBlock 區塊基石 5 位工程師在 2019 上海區塊鏈國際周駭客馬拉松開發的 DApp 在 27 個參賽專案中脫穎而出,榮獲季軍三等獎。這一名為 Charging Block 的去中心化應用為電動車主打造一個點對點共享充電網路,旨在鼓勵更多充電設施建設共享,解決里程焦慮,車主、業主等多方獲得通證激勵。日前,代表團隊上臺演示的 ArcBlock 工程師 Jonathan Lu 撰文回顧總結了整個開發過程和成果。

作者: Jonathan Lu(ArcBlock 區塊基石資深軟體工程師)

在 ArcBlock 平臺開發的過程中,我們相信我們的重要使命之一是為開發者提供方便快捷的開發 DApp(去中心化應用)[1]的服務。現如今,傳統的 web 開發者已經享有成熟的開發技術棧所帶來的便利,而我們希望將類似的開發體驗帶到區塊鏈應用開發領域,為開發者和產品經理提供開發 DApp 所需要的一切。我們有時會將它設想成區塊鏈的 Ruby on Rails。為了這個目標,我們開發了 ArcBlock SDK(支援多種語言,如 JavaScript、Python、Elixir 等)、ArcBlock CLI 工具以及Blocklet.Starters[2]。

在 8 月,我們的實習生娜娜撰寫了一個很棒的系列部落格,分享她在四周內從一個入門級區塊鏈開發者[3]到獨立完成一個自動售貨機 DApp 的學習過程。這個系列部落格啟發了我們去”吃自己的狗糧“ —— 不僅僅是去嘗試用我們的產品來解決現實的問題,同時也是去試驗一下自身產品的能力和可用性。

於是乎,我們團隊報名參加了最近的萬向區塊鏈駭客馬拉松[4],去嘗試一下在 36 小時內用 ArcBlock SDK 開發一個 DApp。

Charging Block DApp

本次駭客馬拉松的主題是”區塊鏈與汽車行業“,所以我們選定了一個常見的電動車車主會遇到的問題來作為 DApp 的主題,那就是”沒電的時候附近沒有可用的充電樁“的問題。

根據我們的觀察,雖然近年來電動車充電的基礎設施在不斷的增加中,但是覆蓋率依然無法滿足全部使用者的需求。車主依然還會遇到附近沒有充電樁的情況。同時,因為充電站之間互不連通,車主社羣也沒有激勵機制,導致總體上充電樁的使用效率不夠最佳化。某些充電站負荷過大而某些又無人問津,而且車主還會將充電站當成停車場,在充滿電後依然佔據位置。此外,因為商業用電和家庭用電的收費標準不同,所以充電站的收費通常比在家充電的花銷高很多。

於是我們設計出了一個名叫 Charging Block 的 DApp。這個 DApp 的基本想法是,建設一個電動車車主之間共享充電樁的社羣。透過釋出基於區塊鏈的通證 Charging Block Token(CBT),人們可以加入到這個社羣裡來,分享他們的資源,並獲得回報。CBT 通證可以被用來支付充電費用,獎勵分享資源的成員(例如分享充電樁最多的使用者可以獲得額外獎勵),以及”懲罰“浪費公共資源的成員(充滿電還佔據位置的車主將被罰款)等。再進一步,社羣成員還可以使用 CBT 來眾籌在他們的小區建設充電站,並在後續的充電站運營收益中得到分成。所有的這些交易都會透過區塊鏈來記錄,並且即時生效,無法篡改。

我們認為這是一個有趣的想法,於是決定在駭客馬拉松期間嘗試開發一個 demo。這個 demo 將有三部分組成:一個區塊鏈、一個車載應用和一個充電樁端的應用。以下是 Charging Block 的 demo:

以下是我們開發這個 demo 的基本步驟,你們可以看出這個過程有多麼簡單。

首先我們使用Forge CLI[5]來初始化了一條新的鏈:

forge chain:create charging-chain

在命令列中幾步操作之後,我們就自定義了鏈的名稱和通證的名稱等一些引數,然後讓我們來啟動這條鏈:

forge start charging-chain

到此,一條新鏈就建立好並開始執行了。然後我們使用dapp starter blocklet[6]來初始化一個 DApp:

forge blocklet:use forge-react-starter

到此,我們的 DApp 就已經初始化好了,並且開發所需的工具和依賴都安裝完畢。整個這個步驟在兩分鐘內就完成。在此基礎之上,我們根據 demo 的需求,開發了介面,並呼叫 JavaScript SDK 實現了交易相關的邏輯。以下是 demo 的程式碼:https://github.com/wangshijun/charging-block

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;