多くの人々は、暗号通貨取引所で働くためには Web3 と Blockchain の知識が必要だと考えていますが、これは正しいとも間違っているとも言えます。暗号通貨取引所のバックエンドでは、以下のようにさまざまなチームに分かれます。
- 取引所のウェブサイト API
- 取引エンジン(取引マッチング、Earn の計算など)
- 支払い API(ウォレット関連の API)
- ウォレット(ブロックチェーン関連のシステム)
Web3 やブロックチェーンの知識が必要なのはウォレットの部分であり、他の部分では取引所の取引に関する知識が必要です。多くの取引所は自分自身でウォレットを開発およびメンテナンスする必要はなく、CybavoやFireblocksなどのサードパーティのサービスを使用しています。
私は取引所でウォレットのバックエンドエンジニアとして働いており、主な仕事は次のとおりです。
- ウォレット関連のビジネスロジックと資産管理機能の開発
- 新しいブロックチェーンネットワークの研究と統合(ノードの運用とメンテナンスを含む)
- ブロックチェーンネットワークの更新の検証と日常的なトークンリスティング
私の一日のスケジュールは基本的に次のようなものです。
- 朝、私が開発したブロックチェーンリリースチェッカーは、会社がサポートするすべてのブロックチェーンの最新リリースを slack チャンネルに送信します。フォーク、ハードフォーク、またはアップグレードがある場合は、それをマークします。会社に到着した後、24 時間以内のリリースの内容をチェックし、テストネットまたはメインネットの更新が必要かどうかを確認します。更新が必要な場合は、テストネットノードを更新し、すべてのウォレット関連の機能をテストした後、インフラに更新の準備を通知する必要があります。一部のブロックチェーンの更新情報はリリースに含まれていない場合があり、その場合はブログや Telegram のバリデーターグループなどに発表されるため、追加で注意が必要です。
- 更新のチェックが終わったら、Jiraのチケットの優先度に従って開発を行います。主な開発内容は前述した通りであり、トークンリスティング、新しいブロックチェーンの統合、ビジネスロジックの開発、システムのリファクタリングなどが含まれます。
- 午後は、通常、午前の開発作業を続けるか、コードレビューを手伝います。最近では、MR を提出する前に同僚にレビューを依頼し、レビューは自己成長を加速させます。レビュー中には、この方法にはより良い方法があるのか、潜在的なリスクがあるのか、全体的なアーキテクチャが柔軟性を持っているのかを常に考え、他の人の書き方や構造を学ぶことができます。また、同僚との意見交換もできます。
これは通常の一日のスケジュールですが、実際には多くの問題が処理される必要があります。
- メインネット / テストネットのフルノードが同期されていない
- メインネット / テストネットのフルノード RPC エラー
- 重大な緊急フルノードの更新
- ブロックチェーンの更新による手数料の変更または停止(昨年の Solana の誤り)
私たちのシステムは JAVA で構築されていますが、私たちの仕事ではさまざまな言語のコードを素早く参照する必要があります。たとえば、ブロックチェーンの統合時に、そのブロックチェーンが JAVA SDK を提供していない場合は、他の言語の SDK(Golang、Rust、Python、C++ など)を研究し、JAVA ライブラリに移植する必要があります。また、契約のデプロイ方法や操作方法についても研究する必要があります。EVM の場合、完全な SOP がありますが、EVM 以外の場合は契約の発行や操作方法を研究する必要があります。例えば、Near、Elrond(現在は MultiversX)、TONなどです。
これは常に変化と新たな挑戦がある仕事です。JAVA でシステムを開発するだけでなく、多くのブロックチェーンの特性や技術に触れることができます。また、ブロックチェーンのドキュメントは古くなっているか不完全な場合が多く、統合時に問題が発生した場合は Discord や Telegram で質問する必要があります。問題を解決するために非常に熱心な公式エンジニアの助けを借りたり、SDK 開発者にチェーン上の問題について多くのことを学んだり、GitHub リポジトリに問題を報告したりすることがあります。
ここでの仕事の経験は、私のソフトウェア開発に対するスキル向上だけでなく、Web3 サービスの開発にも役立っています。