ArcBlock SDK を使って36時間で DApp を構築

著者: Jonathan Lu(ArcBlock シニアソフトウェアエンジニア)
ArcBlock プラットフォームの開発を始めた当初、私たちの主な目標の一つは、開発者が分散型アプリケーションをより簡単かつ迅速に構築できるサービスを提供することでした。現在、従来のウェブ開発者は、十分に確立されたウェブ開発技術スタックの恩恵を受けています。私たちは、開発者やプロジェクトマネージャーに必要なものをすべて提供し、ウェブアプリと同じような方法で分散型アプリケーションを構築できる体験を、ブロックチェーンベースのアプリケーションにももたらしたいと考えています。私たちはこれを「ブロックチェーン版 Ruby on Rails」のようなものだと表現することがあります。この目標に基づき、JavaScript、Python、Elixir など複数の言語をサポートし、ArcBlock CLI や Blocklet.Starters のような革新的で使いやすいツールも備えた ArcBlock SDK を開発しました。

8月には、インターンの Yongxin Xu が、ブロックチェーン開発者の初心者から、私たちの製品を使って4週間足らずで自動販売機 DApp を完成させるまでの過程を、素晴らしいブログ記事のシリーズとして公開しました。これに触発され、私たち自身もドッグフーディング(Microsoft の用語)を試みることにしました。現実の問題を自ら解決するだけでなく、構築したものの使いやすさと能力を検証するためです。
そこで、最近開催された万向ブロックチェーン・ハッカソンに参加し、36時間以内に DApp のアイデアを考案して構築することにしました。
Charging Block DApp

ハッカソンには「ブロックチェーンと自動車産業」という課題がありました。そこで私たちは、電気自動車の所有者の多くが経験したことのある問題、つまり近くに利用可能な充電ステーションがないときにバッテリーを充電する方法に注目しました。
私たちの観察では、近年、公共充電設備の数は増えているものの、すべての利用者にとって十分な範囲をカバーできているとは言えません。走行可能範囲内に利用できる充電器が見つからないこともあります。また、充電ステーション同士が接続されておらず、ドライバーへのインセンティブもないため、公共充電システム全体の利用効率は最適化されていません。満充電になっても車を置き続ける人がいるため、常に混雑するステーションもあります。さらに、商用電力と家庭用電力の料金差により、こうした充電ステーションの料金は通常、家庭用充電器よりかなり高額です。
そこで、Charging Block という DApp を考案しました。基本的なアイデアは、充電設備を共有したい電気自動車ドライバーのコミュニティを構築することです。Charging Block Token(CBT)というネイティブトークンを持つブロックチェーンを立ち上げることで、人々はコミュニティに参加し、リソースを共有して報酬を得られます。CBT は充電料金の支払い、共有の促進(上位の充電設備提供者へのボーナストークン)、公共リソースを浪費する人へのペナルティ(満充電後も充電器を占有するドライバーへのアイドル料金)に利用できます。さらに、近隣の充電ステーションをクラウドファンディングし、投資収益を得る用途にも使えるでしょう。すべての取引はチェーン上で即座に、否認できない形で処理されます。
私たちはこれを興味深い DApp のアイデアだと考え、ハッカソン中に概念実証デモの開発を始めました。デモは、以下の動画で示すように、ブロックチェーン、車載アプリ、充電設備アプリの3つの部分で構成されています。
コードを追いながら試したい方のために、ArcBlock ならいかに簡単に始められるかを示す手順を紹介します。
Forge CLI で次のコマンドを実行し、新しいブロックチェーンを初期化しました。
forge chain:create charging-chainターミナルでいくつかの手順を進めるだけで、新しいチェーンの名前とトークン名をカスタマイズできます。次に、以下のコマンドでチェーンを起動します。
forge start charging-chainこれだけでチェーンが稼働します。続いて、dapp starter Blocklet を使って新しい DApp をすぐに立ち上げられます。
forge blocklet:use forge-react-starter手順を追っている開発者にとって重要なのは、この時点ですでに2分足らずで独自のブロックチェーンと Blocklet.starter の一つを起動できていることです。通常、これらの手順は複雑で多くの追加ツールが必要ですが、ArcBlock のプラットフォームなら DApp を非常に簡単に開始できます。残りのデモコードはこちらで確認できます。
結果
36時間のハッカソン終了までにデモを完成させ、審査員に発表しました。そして幸運にも、この課題で3位を獲得できました。

この経験から学んだことは、1)フレームワークをより開発者に優しいものにするという方向性は正しく、私たちが構築した製品は期待した成果を実現できること、そして 2)開発者体験を向上させる細部にはまだ改善の余地があり、今後も取り組み続けるということです。