メインコンテンツへスキップ

ArcBlock ハッカソン 2020 参加体験記の共有

ArcBlock
ArcBlockDevConDeveloperHackathon

7日間にわたるオンラインハッカソン 2020が成功裏に開催され、結果発表から1週間が経ちました。今回は、参加した個人およびチームが執筆した2通の参加体験記を皆さんに共有します。

ArcBlock バッジ分析 by 陳凱(Chen Kai)

今回の ArcBlock ハッカソンへの参加では、入賞こそ逃したものの、いくつかの収穫がありました。

チームは非常に重要

Web 側の製品を例にとると、ハッカソン期間中に完成度の高い作品を作りたいのであれば、チーム内に少なくともフロントエンドとバックエンドの2つの役割が必要です。私自身も NFT 取引所のような作品での参加を検討しましたが、自分はバックエンドの技術スタックであり、短期間で適切なフロントエンドの仲間を見つけることができず、断念しました。一方で、「ラッキー抽選ミニゲーム」を作った娜娜(Nana)たちのチームは、4人のメンバーがそれぞれの長所を補完し合い、非常に素晴らしい成果を上げていました。

アイデアを大きくしすぎない

締め切りは決まっており、大きすぎるアイデアは十分な完成度を保証できません。今回のハッカソンは7日間でしたが、仕事の時間と重なっていたため、実際にプロジェクトを開始したのは端午節の連休からでした。当時、3つのアイデアをリストアップしていました:

  1. バッジに含まれる要素の種類と個数の識別
  2. バッジの生成、配布、および流通の統計
  3. 「夢陽快訊(Mengyang News)」を Blocklet としてパッケージ化

一方で皆さんの役に立つものを作りたいと考え、他方で自分のバックエンドの強みを最大限に活かせるものを検討しました。

昨年、ライブ配信のレコメンデーション向けに可視化や意思決定補助ツールを作成した経験から、「バッジ配布および流通の追跡統計」を検討しましたが、ArcBlock のツールチェーンや API への習熟度が低かったため、アイデア 2 は諦めました。

快訊(ニュース速報)の発展モデルがまだ不明確であり、かつ快訊自体の完成度が低かったため、Blocklet を通じて公開する意義が薄いと考え、アイデア 3 も諦めました。

そこで、コミュニティの仲間たちがバッジ取引の過程でバッジ内の特定の要素の種類や個数を識別したいというニーズがあることを思い出し、ブロックチェーンエクスプローラーを確認したところ、アカウント資産を取得する API が非常に使いやすいことが分かりました。資産取得後のバッジのフィルタリングや識別は完全にバックエンドの領域で自由に行えるため、アイデア 1 を実装することに決めました。

深追いをしない(不要恋戦)

ハッカソンは往々にして時間が足りず、タスクが重いものです。技術的な問題に直面した際は複数の解決策を準備しておき、プラン A を試してうまくいかなければ、すぐにプラン B に切り替えるべきです。深追いは禁物です。私はバッジ要素識別プロジェクトの過程で、Markdown ファイルがブラウザで解析されない問題に遭遇しました。30分試しても解決しなかったため、潔く諦め、Markdown を HTML に変換する方法を採用しました。表示効果は劣りますが、少なくともプロジェクトの完成度には影響しませんでした。

動画を録画する

ライブデモは往々にしてトラブルが起きるものです。動画を録画しておく方が確実です。OBS は非常に優れた録画ソフトです。事前に台本を用意して何度か練習すれば、その効果は明らかです。

Blocklet は素晴らしい設計

ArcBlock の Blocklet は非常に素晴らしい設計です。概念的には再利用可能なコンポーネントであり、体験としてはレゴブロックのようなものです。利用者は自分の好みに合わせてこれらのブロック(Blocklet)を使い、様々な城(サービスやアプリケーション)を組み立てることができます。同時に、ブロックの作成者は、そのブロックが使用されるたびに報酬を得ることができます。

Github:https://github.com/k1ic/ArcBlock-Badge-Analysis

ラッキー抽選ミニゲーム by 区塊動力(Block Power)

今回の ArcBlock ハッカソンへの参加にあたり、私たち広州「区塊動力」チームは「ラッキー抽選ミニゲーム(Lucky Ticket)」を開発しました。大会を通じて、メンバー一人ひとりに収穫がありました。今回の大会での心得を皆さんと共有します。

リーダー 静静(Jingjing)

1. チームの協力と合理的な分担が第一の要素

チームにおいて、私たちは誰一人として欠かすことのできない存在です。全員が一致団結して目標に向かって突き進み、困難を恐れず立ち向かうことで、短期間で直面した多くの問題を克服できました。互いに助け合い、諦めずに取り組んだ結果、最終的にプロジェクト全体を完成させることができました。

チームでは全員にそれぞれの役割があります。リーダーとしては、プロジェクトの規模やモジュールの大きさを確認し、各コンテンツの分量を把握してタスクを合理的に分配し、スケジュールの管理などを行う必要があります。各メンバーは、自分のタスクを期限内に質を保って完了させなければなりません。合理的な分担と協力、共に学び、共にプロジェクトを実現していくことが重要です。

2. 明確な目標が遠回りを減らし、タイムマネジメントが進捗を保証する

開発テーマに基づいてプロジェクトのコンセプトを設定する必要があります。例えば、私たちは最初、テーマへの理解が不十分だったために、元のプロジェクトが要求に合わないという問題が発生しました。その後、プロジェクトを再定義し開発プロセスをやり直したため、多くの時間を浪費してしまい、最後はタスクが緊急かつ膨大になってしまいました。活動の趣旨に基づいてクリエイティビティを発揮することが重要だと伝えたいです。

この1週間の大会で最も学んだことは、タイムリミット(チェックポイント)を設定し、その都度完了させること、そしてプロジェクトを段階的に進めることの重要性です。開発の初期段階で各パーツを繋ぎ合わせておけば、後で多くの問題が出るかもしれませんが、解決するための十分な時間を確保できます。最後に問題をまとめて解決しようとしてはいけません。

アドバイスとしては、まず最も基礎的な目標を設定し、それを期限内に完了させ、次の目標に進む。このように段階的に深く掘り下げていくことで、プロジェクト開発がより規範的で合理的になります。

メンバー 娜娜(Nana)

この1ヶ月で、私たちは2つの DApp を作成しました。「茶チェーン(Tea Chain)」には3週間、今回の「抽選ミニゲーム」には3日間かかりました。昨年の夏に ArcBlock でインターンをしていた際に作成した自動販売機のデモを含め、私はすでに3つの DApp を作成しました。作り続けて感じるのは、開発プロセスがますます楽になり、実現できる機能も強力になっているということです。

アプリケーション開発言語およびフレームワーク使用シーン挑戦
自動販売機Python、フロントエンド:Plotly Dash、データベース:SQLite多者間協力、収益分配ブロックチェーンの理解、DApp 設計、ArcBlock 開発ツールの習得
茶チェーンバックエンド:Java (SSM)、フロントエンド:JavaScript (Vue)、データベース:MySQL情報のトレーサビリティ実際の応用シーンからの DApp 設計、フロント・バック分離アプリの開発とサーバーへのデプロイ
Lucky Ticket 抽選ミニゲームバックエンド:JavaScript (Express)、フロントエンド:JavaScript (React)、データベース:MongoDB多人数参加、話題性、トラフィック、娯楽性を必要とするイベント不慣れ、あるいは未知の言語やフレームワークの習得、短時間での高速開発

1. ツールがよりシンプルになった

確かに1年前と比べて、私自身のブロックチェーン開発フローへの習熟度だけでなく、ArcBlock が提供する開発ツールも非常に使いやすくなりました。ABT Node の登場は、間違いなく DApp の開発・デプロイのハードルを下げました。ABT Node があれば、チェーンの発行は開発者だけの仕事ではありません。コードが読めない営業担当者でも、説明書に従って数ステップ操作するだけで、簡単にチェーンを発行できます。また、開発完了後は Blocklet の形式で ABT Node 上に公開できるため、ABT Node を持つユーザーなら誰でもそのアプリをダウンロードして利用できます。

2. 従来のアプリ開発経験は非常に貴重である

DApp の構築は、端的に言えば従来のアプリにチェーンとの対話ロジックを加えることです。完全なアプリを作るには、フロントエンドとバックエンドの連携が必要です。この点は夢陽さんの体験記でも触れられていましたが、私も深く実感しました。茶チェーン以降、私たちが構築するアプリは概念実証(PoC)レベルではなく、非常に実用的な機能が求められるようになりました。明確な分担があっても、アプリ開発の経験不足から、異なるフレームワークや言語への適応に時間を費やし、基本機能の実装にも学習コストがかかりました。その過程で、私と仲間たちは飛躍的に成長しましたが、経験豊富な人であれば、開発プロセスはもっとスムーズだったはずです。

3. 未来が既に来ていることを実感

ブロックチェーン 3.0 の時代が本当にやってきました。昨年はそこまでの実感はありませんでしたが、これらのプロジェクト開発を通じ、またブロックチェーン技術とその応用範囲について深く理解し思考することで、新しい時代の到来を肌で感じました。ブロックチェーン技術は本当にあらゆる業界に活用できるのです。コミュニティで DApp に注目している皆さんも、きっと同じように感じているはずです。私や他の開発者が展示したデモについて熱心に議論し、ブロックチェーン技術がアプリ内で果たす役割についてより的確に探求している姿を見て、未来は既に来ていると確信しました。

メンバー 鴻祥(Hongxiang)

今回のハッカソンのプロジェクト開発を通じて、初心者である私は多くのことを感じました。

1. 開発の方向性を明確にすれば、迷うことはない

開発フローを設計する際には、明確な開発の考え方を持ち、開発フレームワーク、データベース、およびデータテーブルをあらかじめ決定しておく必要があります。これは開発目標を達成するために非常に重要であり、クリアな思考を維持することで、開発作業を整然と進めることができます。チームの全員がプロジェクト開発を正確に把握し、共通の目標に向かって進めば、当然目標達成もスムーズになります。

2. 問題は解決できると信じること

開発の過程では、大小様々な難題に直面します。誰にでも不得意な分野はありますが、チーム内であれば、自分の分からないことは仲間に助けを求めることができます。もし仲間も分からなければ、ネットで資料を調べて解決策を探すことができます。 また、問題を細分化し、一歩ずつ解決していくことも有効です。問題は必ず解決できます。解決策を探す過程で原因を考え、様々な方法を試すことができます。

最後に、開発プロセスでは極力、事前に設計した開発プランから逸脱しないことをお勧めします。そうでなければ、開発中に思考が混乱しやすくなります。

メンバー Jimmy

今回の ArcBlock ハッカソンに参加し、チーム内で最も経験の浅いメンバーとして、私も多くの恩恵を受けました。

1. 時間がなくても、チームワークが最も重要

今回のハッカソンにおいて、私たちのプロジェクトで言えば、チームの協力が間違いなく最も重要でした。7日間の期間中、適切なテーマを見つけた時にはすでに半分以上の時間が過ぎており、非常に緊迫した状況でした。しかし、チームの他のメンバーは整然と割り当てられたタスクを期限内に完了させ、チーム全体で助け合って難題を解決したことで、最終的にプロジェクトを成功させることができました。

2. 初心者でも扱える ArcBlock 開発ツール

ブロックチェーンアプリに関して全くの初心者である私にとっても、ArcBlock が提供する開発ツールは決して難しいものではありませんでした。ABT Node の使用は複雑ではなく、簡単なデプロイ説明に従うだけで、簡単にノードを作成し、チェーンを成功裏に発行できました。ArcBlock が提供する開発ツールがあれば、今後ブロックチェーンはより簡単に様々な分野に応用され、素晴らしいプロジェクトが次々と実現していくと信じています。

以上が、私たちのチームメンバーによる今回のハッカソンの体験記です。皆さんの参考になれば幸いです。最後に、これまでサポートを提供し続けてくれた ArcBlock と、長期にわたり注目し励ましてくれたコミュニティの仲間たちに感謝します。私たち「区塊動力」チームは、これからも学習と努力を続け、より良い DApp を作っていきます。どうぞご期待ください!

オーディエンス賞(人気投票)の結果発表

1週間にわたるオーディエンス賞の選考を通じて、計433票が集まりました。最も人気の高かった上位3プロジェクトは以下の通りです:

  • ラッキー抽選ミニゲーム(181票、41.8%)
  • IMNFT ABT 記念コイン(85票、19.6%)
  • NFT マーケット(66票、15.2%)

関連リンク