
Ethereumノードは多くの操作に対してRPC APIを提供していますが、Etherscanなどのブロックエクスプローラーで一般的に期待される、アドレスごとにトランザクション一覧を簡単に取得するためのネイティブな方法が欠けています。この課題に対処するため、ADAMANTはPythonベースの専用インデクサーであるEthSyncツールを維持・運用しており、ETHおよびERC20トランザクションをアドレスごとに効率的に照会できるようにしています。
インデクサーは、HTTP、WS、またはIPC APIを介してEthereumノードに接続するバックグラウンドサービスとして動作し、GethやNethermindなどの一般的なクライアントと互換性があります。収集されたトランザクションデータは耐久性と高速アクセスのためにPostgresデータベースに保存され、PostgREST APIを通じてクライアントアプリケーションがこのデータにアクセスできます。

本バージョンの大きなアップグレードとして、追加のデータベースインデックスが導入されました。これらのインデックスにより、特定のアドレスに関連するEthereumのみ、または特定のトークンのトランザクションをフィルタリングするような複雑なクエリのパフォーマンスが大幅に向上します。たとえば、特定のアドレスの最新25件のUSDTトランザクションを取得するには、以下のAPIリクエストを使用できます:
curl -k -X GET “http://localhost:3000/ethtxs?and=(txto.eq.0xdac17f958d2ee523a2206206994597c13d831ec7,or(txfrom.eq.0xabfDF505fFd5587D9E7707dFB47F45AF1f03E275,contract_to.eq.000000000000000000000000abfDF505fFd5587D9E7707dFB47F45AF1f03E275))&order=time.desc&limit=25"
テストでは、これらの新しいインデックスを使用するほとんどのクエリが100ミリ秒未で実行され、インデックスなしの場合は数十秒かかっていたことから比較して、著しい改善が確認されています。