Tidigare idag lanserade @heliuslabs en ny RPC-metod, getTransactionsForAddress (gTFA) Låt oss prata om hur det fungerar under huven Solana-transaktioner refererar vanligtvis till 6-10 konton (upp till ~256) När du frågar "ge mig historiken för konto X" ber du RPC att skanna transaktioner och hitta de som inkluderar X i sin lista över konton Detta är i huvudsak att försöka hitta en nål i en höstack Du kan inte bara lägga till ett standardindex på arrayen "Accounts" i stor skala – databaser kämpar med att indexera arrayer med variabellängd Lösningen: Vi byggde vårt eget index, med en post per unikt (transaktion, konto) par Detta är ingen liten bedrift – det finns ~493 miljarder transaktioner (och växer) Vårt index innehåller för närvarande över 2,3 biljoner (!) rader trots storleken är P50-sökningstiden ~8 ms under produktionsbelastning Och vi har många andra index för att driva sökningar efter plats, tid, status, etc alla körs på specialbyggda bare metal-värdar med petabyte av förstklassiga NVME:er, replikerade över flera regioner TLDR - Vi led så att du inte behöver njuta