多くの人々は、暗号通貨取引所で働くためには Web3 とブロックチェーンの知識が必要だと考えていますが、これは正しいとも間違っているとも言えます。バックエンドの観点から、暗号通貨取引所では次のようなチームに分かれます。
- 取引所のウェブサイト API
- 取引エンジン(取引マッチング、Earn の計算など)
- 支払い API(ウォレット関連の API)
- ウォレット(ブロックチェーン関連のシステム)
Web3 やブロックチェーンの知識が必要なのはウォレットの部分であり、他の部分では取引所の取引に関する知識が必要です。多くの取引所は自分自身でウォレットを開発およびメンテナンスする必要はなく、CybavoやFireblocksなどのサードパーティのサービスを使用しています。
私は取引所でウォレットのバックエンドエンジニアとして働いており、主な仕事は次のとおりです。
- ウォレットに関連するビジネスロジックと資産管理機能の開発
- 新しいブロックチェーンネットワークの研究と統合(ノードの運用とメンテナンスを含む)
- ブロックチェーンネットワークの更新の検証と日常的なトークンリスティング
私の一日の基本的な流れは次のとおりです。
- 朝、私が開発した Blockchain リリースチェッカーは、会社がサポートするすべての Blockchain の最新リリースを 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 サービスの開発にも役立っています。