👏

ETHGlobal ハッカソンへの挑戦 - チームワークと努力の仕方公開

2023/06/27に公開

ETHGlobal HackFS 2023 という2週間強にわたるハッカソンで なんとスポンサー賞を受賞することができました。
(補足:今回のハッカソンは、Filecoinというweb3でStorageサービスを提供しているProtocolLab主催のハッカソンでした。 そのなかで Filecoin Ecosystemの一つでweb3 Filecoin上のファイルを取得しやすくする SarturnというCDNサービスを提供している会社のスポンサー賞を受賞することができました。)

https://ethglobal.com/showcase/datatrustedgraph-55geg

ETHGlobalのハッカソンイベント3回目の挑戦で初めて受賞できたので、
どんな点を工夫したのか これからオンラインハッカソンに挑戦する人たちに参考になればと思い記事にします。
(私の文章より読みやすいだろうと思い、下記のようなプロンプトを打ち込んでChatGPTに自分をインタビューしてもらい文章をまとめてもらいました。)

チームメンバ募集

Filecoinのハッカソンに参加し、2週間の間に私たちのチームは様々な困難に立ち向かいながらも、素晴らしい成果を得ることができました。最初は一人での参加かチームでの参加かを検討しましたが、モチベーションを保つためにもチームでの参加を選びました。メンバー募集を通じて、私たちのチームにはそれぞれ異なるスキルセットを持ったメンバーが加わりました。

最初の段階では、OpenScienceDataをより広く利用されるためのデータ評価と蓄積の仕組みを構築することを目指しました。ChatGPTとの対話を通じてアイデアの骨組みとフローチャートを作成し、GitHubのReadmeに公開しました。また、Discordのチャンネルを活用してチームメンバーを募集しました。
その時点でのGithub Readme

前半の困難

チームメンバーが集まった後、私たちはそれぞれの得意分野に基づいて役割を分担しました。UIデザインに長けたメンバーがUIの作成に取り組み、もう一人のメンバーはFilecoin OpenDataからデータを取得する方法を調査しました。私自身は、OpenScienceのDataDaoと連携して利用者の真正性を担保する仕組みを検討しました。

しかし、Filecoinからのデータ取得は予想以上に難航し、DealIDやContentsIDが分かっていてももとのデータの取得にも数日を要しました。また、既存のOpenScienseDataDAO関係者からもTwitterで回答を得ましたが、彼らは新しい仕組みを検討中であり、私たちのプロジェクトには直接的なサポートを提供することはできませんでした。この調査には4日間以上の時間を費やし、何も具体的な進展がない状況に悩まされました。

しかし、私は諦めずに前進するためにチームメンバに提案を行いました。まず、Filecoinにレビュー結果を書き込む部分だけでも構築することを提案し、Web3.storageを使用してレビュー結果を書き込む仕組みを実装しました。さらに、Esturayというサービスを利用してAggregationされたデータをFilecoinに書き込む仕組みも構築しました。これらは、既存のサンプルを組み合わせてすぐに動作させることができました。

チーム崩壊の危機

次に、データをリスト形式で参照し、ダウンロードもできるようにする提案をしました。しかし、UIデザインを担当していたメンバーからDLの必要性について疑問が出され、チーム分裂の危機が発生しました。私は、Filecoinからのデータ取得の困難さやアクセスの重要性を説明しました。また、SaturnというFilecoin関連サービスのNodeの構築方法がオープンソースで公開されているため、データ取得システムもそれをカスタマイズすれば実現できると提案しました。この説明を通じて、チームメンバーからの納得を得ることができました。

そして、私たちは新たな方向性を見つけました。バックエンドのDBを使用せず、データをSmart Contract(NFT)にのみ格納することを検討しました。データセットNFT、レビューワーNFT、レビュー・レポートNFTの3つのNFTを作成し、必要なデータをTokenURIとしてweb3.storageのURIに保存し、Webフロントエンドから読み出すという構成にしました。
そのときの議論の過程をのこしたGithubIssue、調査内容等はIssueにすべてのこした

最後の追い込み

残りの5日間で、私たちはノードの立ち上げやデータの取得仕組みの確保、スマートコントラクトの準備に取り組みました。また、2日間でWebアプリケーションの実装、レポートNFTのMint、デモ用のビデオ作成、公開用サイトの作成とSaturnNodeに対するSSLの設定を行いました。

最終的に、私たちは成果を上げることができました。デモビデオでは伝えきれない詳細な情報をGitHubのReadmeにまとめ、コードへのリンクも設定しました。これにより、私たちはSaturnのスポンサー賞を受賞することができました。
demoの補足としてまとめたgithub readme

学び

このハッカソンでは、チームワークとコミュニケーションの努力が非常に重要であることを実感しました。困難な調査や意見の相違があった時でも、メンバー間のコミュニケーションと協力が問題解決につながりました。また、柔軟性を持ちながらも目標を見失わず、提案や方向性を変えることが重要であることも学びました。最初のアイデアや計画が上手くいかない場合でも、柔軟に変更し、新たなアプローチを試みることが成功への道を切り拓くことができるのです。

私たちの成果は、最終的にはプロトタイプの形で表れましたが、私たちが乗り越えた困難や努力はその裏側にあります。2週間という限られた時間の中で、私たちは睡眠不足や時間の制約に直面しながらも、目標に向かって全力を尽くしました。

最後に、みなさんの挑戦でも参考になるだろう工夫した点をまとめます。

  1. 実現したいことを短時間でまとめ、恥ずかしがらずDiscordで仲間を呼びかけること
  2. 基礎となる技術文書を素早くよみこみ、自分たちの課題は誰か他の人もすでに直面したはずなので、適した既存のエコシステムOpenSourceを検索、動かしながら理解すること
  3. できること、価値がひとめでわかるようなUIをデザインし、それをすばやく実装する
  4. 最後に技術的な工夫をドキュメントに簡潔にまとめること

以上です

Discussion