先週末はコンセンサスハッカソンが開催され、ブロックチェーン技術の実践的な経験を積み、ブロックチェーン開発者の仲間と出会い、刺激を受ける絶好の機会となりました。
始めるには
ハッカソンが発表される数週間前にフライトを予約していたため、土曜日は欠席してしまいました。日曜日には、アイデアから実装までの時間が数時間しかありませんでした。私たちが選んだアイデアは、ウィリアムがある程度の知識を持っている倉庫管理システム(WMS)です。また、ハッカソンの会場となった30 Rockefeller PlazaにあるDeloitteのオフィスでベーグルとコーヒーを飲みながらパントリーで出会ったNatashaと力を合わせてチームを強化しました。
WMSは、より大きなサプライチェーンシステムの一部であり、倉庫内のアイテムを追跡することに焦点を当てています。別々のシステムでは、工場で生産されたり、小売店で販売するために棚に置かれたりするアイテムを追跡します。WMSはどのような項目が倉庫に到着するか、それらがどこにあるか、それらがどこに行くか、どのスタッフがいつ、何をすべきであるか、等を知っています。理論的には素晴らしい働きをしますが、実際には様々な楽しい方法で崩壊してしまいます:人々が在庫をスキャンし忘れたり、ダブルスキャンしたり、間違ったアイテムがピックアップされたり、正しいアイテムが間違った場所に置かれたり、アイテムが単に失われたり(または盗まれたり)。
考慮すべき構造的な複雑さは他にもあります。小売店で売れ残った製品は倉庫に戻され、二次市場の小売店に送られる可能性があります。小売店は、複数のWMSを持つ複数の上流のディストリビューターから製品を調達することができます。商品は分解され、再構成されてもよい。例えば、商品のパレットを分割して別の店舗に送ることができます。
すべてのアイデアには名前が必要で、私たちはDEcentralized Warehouse MAnagement SysTemの略であるDewmastを選びました。
ビジョン:スマートコントラクトとしての各項目は、スマートコントラクトは、ビジネスロジックです。
ある種のビジネスロジックに従って、異なる当事者間でアイテムの所有権が移転するという包括的な概念があります。私たちのアイデアは、アイテムの所有権を追跡し、アイテムに関するメタデータを含むスマートコントラクトで各アイテムを表現することでした。ビジネスロジックはスマートコントラクトの中に組み込まれています。例えば、Palette.Decompose() メソッドを呼び出すことで、追加のアイテムスマートコントラクトを生成することができます。
すべての良いハッカソンはホワイトボードセッションから始まります。
期待していたハッカソンのために。
- 3つのクライアントノード、ブートノード、数個の外部アカウント(EOA)と契約アカウントでローカルのEthereumテストネットワークを設定します。簡単にするために、これらをすべてラップトップ上で実行することにしました。
- アイテム、所有者、場所をビジネスロジックで表現するためのシンプルなスマートコントラクトを記述し、アイテムの所有権を所有者から別の所有者に移したり、アイテムの場所を変更したりといった操作を処理します。
- アイテムを作成、更新、表示するためのシンプルなWeb UIをBootstrapで構築します。このようなレスポンシブWeb UIは、デスクトップ/ラップトップやモバイルでも同様に機能するはずですが、後者は倉庫や小売店でバーコードスキャンをするハンドヘルドを「シミュレート」します。
- web3.jsを使ってWeb UIとブロックチェーンを接続します。これには、Ethereumテストネットワークと同じシステム(ノートパソコン)でweb3.jsを実行し、Ethereumクライアントノードの1つにローカルでアクセスできるようにする必要があります。
実装です。ブートストラップとローカルのEthereumのテストネット
結局、フロントエンドのモックアップとEthereumテストネットワークの設定しかできませんでした。飛行機の中で、go-ethereum wikiの指示に従って手動でEthereumのテストネットワークを設定して遊んでいた。かなりの手間がかかることが判明したので、gethclusterスクリプトを使えば効率化できると思っていたのですが、時間切れでテストネットワークを立ち上げて実行することになりました。今思えば、新しいアプローチでやり直すのではなく、飛行機から手動でEthereumのテストネットワークを設定しておけばよかったのです。
デューマストのフロントエンド作業用モックアップ
Ethereumテストネットワークを立ち上げて実行するには
プレゼンとサプライズ
満員の会場と、ハッカソン主催のDeloitteやConsenSys など、様々なハッカソンスポンサー組織から集まった約10名の審査員によるパネルでプレゼンテーションを行いました。私たちは、スマート車両の監査、ブロックチェーンによる悪用検知、アフリカの小規模農家のためのマイクロインシュアランスなど、多くの素晴らしいアイデアを発表していただきました。私たちは、私たちのビジョンと、私たちがなんとか構築したものを発表し、私たち3人のうち誰一人として2週間以上ブロックチェーンに取り組んでいなかったことを指摘しました。
分散型倉庫管理「Dewmast」で450億ドルの品切れに対応#consensus2017pic.twitter.com/Tm6cHZZW4e
- ペーター・ミューゼンマイヤー (@Thebhid) 2017年5月21日
そのため、ConsenSys Academy賞を受賞したことに驚きと謙虚さを感じています。
ハッカソン #Consensus2017で #ConseSysAcademy賞を受賞した #分散型倉庫管理システム#DewMastさん、おめでとうございます!
- ConsenSys (@ConsenSysLLC) 2017年5月21日
裁判官のJeremy Millar氏は、Consensys Academyが提供する開発者に焦点を当てた集中的なブロックチェーントレーニングから、私たちのチームが恩恵を受けることができると考えたことを挙げています。私たちは参加して、Ethereumの知識を次のレベルに持っていけることに興奮しています。
今後の仕事
WMSの更新は、通常、ハンドヘルドスキャナでアイテムのバーコードをスキャンすることで行われます。スピードを上げるために、更新は通常、ローカルにキャッシュされ、バッチでWMSに同期されます。コンフリクトはスキャンの時点では発見されず、後で解決されることが多い。将来的なアイデアとして、私たちはブロックチェーンのコピーを持ったハンドヘルドスキャナ上で動作するアプリを想定しています。
しかし、実際にはブロックチェーンの元帳はハンドヘルドデバイスには収まらないでしょう(ビットコインの元帳は現在110GBあります)ので、すぐに確認できるようにブロックチェーンの関連部分だけをデバイスにシャードオフする方法を考えました。サイドチェーンのようなものです。
期待していたほどのプロトタイプを完成させることはできませんでしたが、その過程で多くのことを学び、新しい友人もでき、参加してとても楽しい時間を過ごすことができました。私たちはハッカソンで始めた作業を完成させる予定です。