Dnes @heliuslabs spustili novou metodu RPC, getTransactionsForAddress (gTFA) Pojďme si promluvit o tom, jak to funguje pod kapotou Transakce Solana obvykle odkazují na 6-10 účtů (až ~256) když zadáte dotaz "získejte mi historii účtu X", žádáte RPC, aby prohledalo transakce a našlo ty, které obsahují X v seznamu účtů To je v podstatě snaha najít jehlu v kupce sena Nemůžete jednoduše přidat standardní index do pole "účty" ve velkém měřítku – databáze mají problémy s indexováním polí s proměnlivou délkou Řešení: Vytvořili jsme vlastní index s jednou položkou na jedinečný (transakční, účetní) pár To není nic jednoduchého – existuje ~493 miliard transakcí (a jejich počet stále roste) Náš index v současné době drží více než 2,3 bilionu (!) řádků navzdory velikosti je doba vyhledávání P50 ~8 ms pod produkčním zatížením A máme mnoho dalších indexů, které pohánějí vyhledávání podle slotu, času, stavu atd to vše běží na účelově vytvořených hostitelích bare metal s petabajty špičkových NVME, replikovaných v několika regionech TLDR – trpěli jsme, abyste vy nemuseli vychutnat