Rso's Jotter

日々の開発の知見のメモやその他雑記

マイクリハッカソンに参加しました

以下のハッカソンイベントに参加してきました。 www.mchhackathon.com

このゲームは多少知っていたのと、ブロックチェーンについて多少なりともキャッチアップできないかと思い、参加しました。

場所は HushHub さんのコワーキングスペースです。

以下やった内容をメモっておきます。

09:30 集合
10:00 開始。

ルール説明、スポンサーからのコメント、API解説など

11:00 チーム分け

最初からグループで来ている人も結構居ましたが、今回は知り合い2名+あらたに2名の計5名でグループを組むことに。

その後ハッカソン開始。 もともとイーサリアムネットワーク上で何ができるのかや、マイクリは何がイーサリアムチェーン上で管理されているのか、何がサイドチェーンなのか 確認、議論など。

11:00 - 15:00 何を作るか議論。

アセットをレンタルできるシステム案が有力で、実装可能かどうかを検討しました。

いろいろ話しているうちに、以下のような話になりました。

  • アセットを貸して返すということを実現するために、アセットを将来送るというコントラクトの実現が難しい
    • 借りている側がアセットを他に送ってしまい、持ち逃げされる可能性が残る
    • マイクリの仕組み上、アセットを使うにはイーサリアムネットワーク -> マイクリのサイドチェーンに送らないと遊べないので、イーサリアムネットワーク上にとどめておけない。
  • アセットを借りている側がアセットの価値同等もしくはそれ以上のイーサリアムを供託するという質屋モデルでなら実現可能。
    • 借りたアセットを返さないと供託金が没収される。
    • ただしそれだと少ない金額でレンタルしたいという要望は満たせないし、買ってからすぐ売るということとあまり変わりがない。

借りてちゃんと返したということを記録を評価として用いて、評価の良い人は供託金を少なくするシステムはどうだろうという 話も出て、それなら実現はできそうだがハッカソンネタとしてはあまり面白くないので、結局取り下げ。

他に出てきた代替案としては、今はアセット <=> イーサリアムの交換はできるが、アセット <=> アセットの交換をする仕組みがないので、 アセット同士を交換する仕組みをやってみようということに。さらに今までの掲示板モデルではなく、 チャットルーム形式で交渉できるような仕組みにしようということで、着手開始。

15:00 - 17:00 ようやく開発開始。

自分ともう1名でとりあえずバックエンドをペアプロ形式で準備。チャットルーム作成なのでSocket.io(websocket) を使うことに。 残り3名で コントラクト開発、自分のイーサアドレスからMetamask経由でアセット情報取得方法を調査。 フロントエンド・画面は... 空いた人がやることになりました。

17:00 - 21:00 開発継続..終わらず。

チャットルームの雰囲気ができたが、コントラクト側が難しそうなので、フロントエンドの準備も自分+もう1名で着手。 静的ファイルでよかったが、axiosやCSSフレームワークをさくっと入れたかったので、nuxt.jsを使用。

結局フロントとバックエンドのつなぎこみも不十分で、さらにコントラクトのつなぎ込みもできないまま、 タイムアップに。

21:00 開発した内容の発表

所感

結局発表時までに十分に動くものがデモできなかったのは残念で、 分かっていたことですが、ブロックチェーンに関する理解が不十分だったため、着手まで時間を要してしまい、 十分な開発時間を確保できませんでした。

また、今思うとデモで重要なポイントであるフロントエンド画面をおろそかにしてしまったのもあまりよくなかったなぁと思いました。 このあたりは残り時間の兼ね合いで注力すべきポイントをもっと絞るべきでしたね。 もっとフロントの実装を早くできるようになりたいところです。

即席で作成したグループでしたが終始良い雰囲気で開発できたのは良かったです。 とても疲れますが、良い勉強になったと思いました。

追記

マイクリハッカソン 表彰式で、CryptSpells賞をいただきました。 プロダクト自体はあまり作りきれなかったのですが、提案内容や背景に共感いただけたとのことでした。感謝です。

f:id:rso:20190427120023j:plain
award
CryptShellの限定アセットがもらえるとのことです。