Indexer (EthSync-Tool) für Ethereum mit zusätzlichen Indizes aktualisiert

Ethereum-Knoten stellen RPC-APIs für viele Operationen bereit, bieten jedoch keine native Möglichkeit, einfach eine Transaktionsliste nach Adresse abzurufen – eine Funktion, die von Block-Explorern wie Etherscan gewöhnlich erwartet wird. Um dies zu ermöglichen, unterhält ADAMANT einen speziellen, auf Python basierenden Indexer, bekannt als EthSync-Tool, der eine effiziente Abfrage von ETH- und ERC20-Transaktionen nach Adresse ermöglicht.
Der Indexer arbeitet als Hintergrunddienst, der über HTTP-, WS- oder IPC-APIs mit Ethereum-Knoten verbunden ist und mit gängigen Clients wie Geth und Nethermind kompatibel ist. Die gesammelten Transaktionsdaten werden zur Sicherheit und schnellen Abfrage in einer Postgres-Datenbank gespeichert, und eine PostgREST-API stellt diese Daten für Client-Anwendungen bereit.

Ein wesentlicher Verbesserung in dieser Version ist die Einführung zusätzlicher Datenbankindizes. Diese Indizes verbessern die Leistung bei komplexen Abfragen erheblich, beispielsweise beim Filtern nach reinen Ethereum- oder spezifischen Token-Transaktionen einer Adresse. Die Abfrage der letzten 25 USDT-Transaktionen für eine bestimmte Adresse kann beispielsweise mit folgender API-Anfrage durchgeführt werden:
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"
In Tests benötigen die meisten Abfragen, die diese neuen Indizes nutzen, weniger als 100 Millisekunden – eine deutliche Verbesserung gegenüber den mehreren Sekunden, die ohne sie erforderlich waren.