Compute y Tarifas
Gestiona el presupuesto de cómputo y las tarifas para un aterrizaje fiable. Los resultados aparecen en la misma valla: comentarios // en la misma línea cuando son cortos, bloques // multilínea debajo de la muestra cuando no lo son.
Establece las unidades de cómputo máximas para la transacción.
// ComputeBudgetInstruction::set_compute_unit_limit(300_000)
Micro-lamports por CU para prioridad.
// ComputeBudgetInstruction::set_compute_unit_price(50_000)
Solicita un heap más grande para programas pesados.
// ComputeBudgetInstruction::request_heap_frame(256 * 1024)
sol_log_compute_units para depuración.
// sol_log_compute_units();
Tarifa base + priorización del pagador de tarifas.
// el pagador de tarifas debe tener suficientes lamports
Límite de CU predeterminado si no se establece; establécelo explícitamente para transacciones pesadas.
// prefiere set_compute_unit_limit explícito
Usa units_consumed de simulación como guía.
// sim.value.unitsConsumed
El número de firmas afecta la tarifa base.
// minimizar las firmas requeridas
Las tablas de búsqueda reducen el tamaño del mensaje/las tarifas para muchas cuentas.
El número de cuentas escribibles impacta las dimensiones del costo.
// marca readonly cuando sea posible
CPI consume CU para el llamado también.
// presupuesto para trabajo anidado
Un precio de CU más alto compite por el espacio del bloque.
// muestra getRecentPrioritizationFees
La instrucción de presupuesto puede solicitar un límite en el tamaño de los datos de las cuentas cargadas.
// set_loaded_accounts_data_size_limit
Exceder la CU falla toda la transacción.
// Presupuesto computacional excedido
Los validadores locales pueden usar valores predeterminados diferentes; aún así establece la CU en las pruebas.
// establece el límite en las transacciones de prueba
Versiones de Stack: Esta página fue escrita para Agave 4.1.1 , Solana CLI 3.0.10 , Anchor 0.32.1 , Rust 1.91.1 , y @solana/kit 7.0.0 .