Heute hat @heliuslabs eine neue RPC-Methode, getTransactionsForAddress (gTFA), eingeführt. Lass uns darüber sprechen, wie sie im Hintergrund funktioniert. Solana-Transaktionen beziehen typischerweise 6-10 Konten ein (bis zu ~256). Wenn du fragst: "Gib mir die Historie von Konto X", bittest du die RPC, Transaktionen zu scannen und die zu finden, die X in ihrer Liste von Konten enthalten. Das ist im Grunde genommen, als würdest du versuchen, eine Nadel im Heuhaufen zu finden. Du kannst nicht einfach einen Standardindex auf dem "accounts"-Array in großem Maßstab hinzufügen – Datenbanken haben Schwierigkeiten mit der Indizierung von Arrays variabler Länge. Die Lösung: Wir haben unseren eigenen Index erstellt, mit einem Eintrag pro einzigartigem (Transaktion, Konto)-Paar. Das ist keine kleine Leistung – es gibt ~493 Milliarden Transaktionen (und es werden mehr). Unser Index hält derzeit über 2,3 Billionen (!) Zeilen. Trotz der Größe beträgt die P50-Suchzeit unter Produktionslast ~8 ms. Und wir haben viele andere Indizes, um Suchen nach Slot, Zeit, Status usw. zu unterstützen. Alles läuft auf speziell entwickelten Bare-Metal-Hosts mit Petabytes von erstklassigen NVMEs, die über mehrere Regionen repliziert sind. TLDR – Wir haben gelitten, damit du es nicht musst. Viel Spaß!