> For the complete documentation index, see [llms.txt](https://docs.rome.builders/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rome.builders/es/seguridad/known-limitations.md).

# Limitaciones conocidas

Restricciones actuales de Rome EVM y sus implicaciones: opcodes no compatibles, diseño del almacenamiento de cuentas, topes de CU, profundidad de CPI y límites de oráculos.

Documentación honesta de las limitaciones actuales del protocolo Rome y sus implicaciones.

## Limitaciones de ejecución

**SELFDESTRUCT no es compatible.** El opcode no tiene controlador, así que un contrato que lo ejecuta aborta toda la transacción (véase abajo); no revierte un solo marco.

**Un opcode que Rome no implementa aborta toda la transacción.** El intérprete no tiene controlador para el byte, así que la transacción termina con `IncompatibleVersionEVM(opcode)`, nada de lo que hizo se confirma, y el fallo llega al remitente en lugar de ser absorbido por un contrato que lo llama.

**No hay una tabla de gas por opcode.** El valor de gas pasado a `CALL`, `DELEGATECALL`, `STATICCALL` y `CREATE` se acepta por compatibilidad con ABI, pero no se aplica — un callee se ejecuta con el presupuesto restante completo del llamador, y no hay estipendio de 2300 gas. La protección contra reentradas basada en estipendios (`transfer()` / `send()`) no sirve en Rome; use guardas explícitas contra reentradas y el patrón checks-effects-interactions.

**Modexp (0x05) está deshabilitado.** Una llamada revierte con `la llamada big_mod_exp está deshabilitada` hasta que Solana active la `big_mod_exp` syscall.

**256 ranuras de almacenamiento por cuenta de almacenamiento.** El almacenamiento del contrato se particiona entre cuentas de Solana con 256 ranuras cada una. Los contratos con grandes huellas de almacenamiento usan múltiples cuentas, lo que afecta los costos de CU.

**\~1,4 M de unidades de cómputo por transacción atómica.** El trabajo que excede el presupuesto de una sola transacción de Solana recurre a la ejecución iterativa (dividida en varias transacciones). Algunas operaciones solo pueden ejecutarse de forma atómica y no pueden correr iterativamente — en particular, la CPI del track heredado (`CpiProhibitedInIterativeTx`; los efectos del track en caché se preparan y sí se ejecutan iterativamente).

**Límite de profundidad de CPI de 4.** Las llamadas CPI profundamente anidadas fallarán. Diseñe contratos con árboles de llamadas poco profundos.

## Limitaciones de los oráculos

**No hay datos históricos de rondas.** Los adaptadores de Oracle Gateway solo admiten `latestRoundData()`. Las consultas históricas de precios mediante `getRoundData(roundId)` revierten.

**Los desplazamientos del analizador se validan frente a los diseños actuales.** Los datos de cuenta de Pyth y Switchboard se analizan usando desplazamientos de bytes. Si Pyth o Switchboard cambian el diseño de su cuenta, los adaptadores devolverán datos incorrectos hasta que se vuelvan a validar los desplazamientos.

## Limitaciones de herramientas

**Sin trazado de transacciones al estilo Ethereum.** `debug_traceTransaction` y `trace_*`  no son compatibles. El único método de trazado es `debug_traceRomeTransaction`, que descompone una transacción que agrupa varias llamadas en un solo lote en sus subllamadas y CPI. Las transacciones ordinarias devuelven `null`. Para todo lo demás, use `eth_call` y los [Vía el explorador](/es/apps-en-rome/via.md) (que muestra las instrucciones de Solana detrás de una transacción) para depurar. Véase [JSON-RPC](/es/referencia/json-rpc.md).

**`eth_getLogs` tiene un límite de rango.** Las cadenas públicas rechazan rangos de bloques demasiado amplios (error `-32005`); limite sus consultas. Véase [JSON-RPC](/es/referencia/json-rpc.md).

## Limitaciones de infraestructura

**Modelo de operador único.** Cada implementación de Rome es operada por una sola entidad (el operador del pool de pagadores). No hay un conjunto descentralizado de operadores.

**Bloqueo del modo iterativo.** Durante la ejecución iterativa, las cuentas se bloquean durante unos segundos, lo que puede causar contención en cuentas de uso intensivo.

## Qué sigue

* [Divulgación responsable](/es/seguridad/responsible-disclosure.md) — cómo informar de problemas


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.rome.builders/es/seguridad/known-limitations.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
