hoy más temprano @heliuslabs lanzó un nuevo método RPC, getTransactionsForAddress (gTFA) hablemos de cómo funciona por dentro las transacciones de solana típicamente hacen referencia a 6-10 cuentas (hasta ~256) cuando consultas "dame el historial de la cuenta X", le estás pidiendo al RPC que escanee las transacciones y encuentre las que incluyen a X en su lista de cuentas esto es esencialmente intentar encontrar una aguja en un pajar no puedes simplemente agregar un índice estándar en el array de "cuentas" a gran escala – las bases de datos tienen problemas con la indexación de arrays de longitud variable la solución: construimos nuestro propio índice, con una entrada por cada par único (transacción, cuenta) esto no es una tarea pequeña – hay ~493 mil millones de transacciones (y creciendo) nuestro índice actualmente tiene más de 2.3 billones (!) de filas a pesar del tamaño, el tiempo de búsqueda P50 es de ~8ms bajo carga de producción y tenemos muchos otros índices para potenciar búsquedas por slot, tiempo, estado, etc todo funcionando en hosts bare metal diseñados específicamente con petabytes de NVMEs de última generación, replicados en múltiples regiones tldr – sufrimos para que tú no tengas que hacerlo disfruta