2026年4月のブログ(英文)はこちらから
https://thesymbolsyndicate.notion.site/April-2026-3e8a7f7eb5e480208ba0c6c9b6f75290
2026年4月のAnthony’s Engineering Blog(日本語訳)
4月は、未完成のパーツを実用的なExplorerバックエンドの機能へと形にしていく1ヶ月と感じました。モジュールやトランザクションスキーマなど、一部の作業は3月から始まっていましたが、4月はそのパーツ群のレビュー、リファクタリング、マージが行われ、実際のRESTエンドポイントとして結びつけられた月となりました。
プーラー(データ取得・同期プロセス)はブロックからすべてのトランザクションタイプを処理する必要がある一方で、REST側ではハッシュによるトランザクションのクエリや、フィルター付きのトランザクション一覧表示を行うためのクリーンなエンドポイントが求められました。また、その過程では数々のリベース、レビュー指摘への対応、リファクタリング、テストの更新なども行われました。NEM Explorerのバックエンドは、このようにして少しずつ完成度を高めていっています。 🦾
主な業務の概要
- モザイクモジュールが完成し、マージされました。
- ブロックからのトランザクション処理が完了しました。
/transaction/<hash>および、複数のフィルタを指定できる/transactionsリストエンドポイントを追加しました。- lightapi/python に、未確認トランザクションのサポートを追加しました。
- NEMテストネットにおいて、ローカルでプラーの同期を確認しました。
各業務について
モザイクモジュール
- モザイクモジュールの開発は3月に開始されていたため、4月は主にレビューのフィードバックへの対応、リファクタリング、そしてマージ作業に費やされました。
- モザイク、モザイク一覧、およびリッチリストのRESTエンドポイントをリファクタリングしました。
- モザイクリッチリストのユニットテストを追加し、エンドポイントが正しく動作することを確認しました。
- これらのPRがマージされたことで、モザイクモジュールは完成しました。
トランザクションプーラー
- 4月は、トランザクション・プーラーの完成に注力しました。
- pullerにおいて、ブロック内のすべてのトランザクションタイプを処理する機能を追加しました。
- 送信者の公開鍵から
sender_addressが正しく変換されないという不具合を修正しました。 - マルチシグの内部トランザクションはトランザクションハッシュで照会できるため、不要な内部トランザクションIDのロジックを削除しました。
- この部分のおかげで、トランザクションデータを保存時およびその後のクエリ実行時に備えの構成について、より深く理解することができました。
- 数回にわたるフィードバックとリファクタリングを経て、トランザクション・プーラー・モジュールがついにマージされました。
トランザクション REST API
- プーラーの動作が安定してきたので、次はトランザクションのRESTエンドポイントに取り掛かりました。
- トランザクションハッシュを指定してトランザクションの詳細情報を照会するためのエンドポイント
/transaction/<hash>を追加しました。 - トランザクションのアウトプットロジックをリファクタリングし、レスポンスをより簡潔でメンテナンスしやすいものにしました。
- マルチシグおよび内部トランザクション出力のサポートを追加しました。
- このエンドポイントにより、Explorerはトランザクションハッシュを指定して、トランザクションの詳細情報を照会することができます。
- ページネーション機能とブロック高に基づく並べ替え機能を備えた
/transactionsエンドポイントを追加しました。 height、transaction_types、address、senderAddress、recipientAddress、およびsenderPublicKeyに対するフィルタを実装しました。- 最後の「mosaic」フィルターは、クエリがモザイク関連の取引データを正しく照合する必要があったため、困難でした。
- また、
/mosaic/transfersについても検討しましたが、/transactionsでmosaicフィルターを使用すれば同じユースケースに対応できるため、これを採用しないことにしました。 - これは、より良い解決策とは、新しいエンドポイントを追加することではなく、既存のエンドポイントを改善することで為される場合もある、ということを改めて思い知る出来事でした。
Lightapi / Python
- NEM Explorerに対応するため、未確認取引のエンドポイントを追加しました。
- これにより、Explorerはlightapi/pythonを通じて未確認の取引データを照会できるようになります。
- これは、エクスプローラーのバックエンド作業に比べれば小さな変更ですが、エクスプローラーは基盤となるAPIレイヤーからの完全なデータに依存しているため、重要な変更です。
プーラー同期検証
- プーラーを使用して、NEMテストネットのデータをローカルデータベースに同期させました。
- ローカルで同期プロセスを確認したところ、結果は良好でした。
- プーラーをローカルで実行するためのセットアップガイドを作成しました。これにより、セットアップ手順を繰り返し実行したりテストしたりすることが容易になります。
次の予定
トランザクション一覧のエンドポイントについては、特にフィルタ機能やレビューのフィードバックに関して、さらに検討が必要です。その後、残りのExplorerバックエンドエンドポイントの作業を進め、フロントエンドとの統合に向けたバックエンドの準備を進めます。
ここまでお読みいただきありがとうございました。また次回お会いしましょう! 🏴☠️
—