> 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/ja/sekyuriti/known-limitations.md).

# 既知の制限

現在のRome EVMの制約とその影響 — 未対応のopcode、ストレージアカウントのレイアウト、CU上限、CPIの深さ、オラクルの制限。

Rome Protocol の現時点の制約とその影響に関する率直なドキュメント。

## 実行上の制限

**SELFDESTRUCT はサポートされていません。** そのオペコードにはハンドラがないため、それを実行したコントラクトはトランザクション全体を中止します（下記参照）。単一のフレームだけを revert するわけではありません。

**Rome が実装していないオペコードは、トランザクション全体を中止します。** インタープリタにはそのバイトに対するハンドラがないため、トランザクションは次のように終了します `IncompatibleVersionEVM(opcode)`、それまでに行ったことは何もコミットされず、失敗は呼び出し元コントラクトに握りつぶされるのではなく送信者に返されます。

**オペコードごとのガススケジュールはありません。** に渡される gas 値は `CALL`, `DELEGATECALL`, `STATICCALL` および `CREATE` ABI 互換性のために受け入れられますが、強制はされません。— 被呼び出し側は呼び出し元の残り予算全体で実行され、2300 gas のスタイペンドはありません。スタイペンドに基づく再入防止（`transfer()` / `send()`) は Rome では無効です。明示的な再入ガードと checks-effects-interactions を使用してください。

**Modexp (0x05) は無効化されています。** 呼び出しは次の理由で revert します `big_mod_exp call is disabled` Solana が次を有効化するまで `big_mod_exp` syscall。

**1つのストレージアカウントあたり 256 個のストレージスロット。** コントラクトのストレージは、各 256 スロットを持つ Solana アカウントに分割されます。ストレージ使用量の大きいコントラクトは複数のアカウントを使用し、その分 CU コストに影響します。

**アトミックトランザクションあたり約 140 万 compute units。** 単一の Solana トランザクションの予算を超える処理は、反復実行（複数のトランザクションに分割）にフォールバックします。いくつかの操作はアトミック実行のみで、反復的には実行できません。特にレガシートラックの CPI（`CpiProhibitedInIterativeTx`；キャッシュドトラックの副作用は段階的に処理され、反復的に実行できます）。

**CPI の深さ制限は 4 です。** 深くネストされた CPI 呼び出しは失敗します。コントラクトは浅い呼び出しツリーで設計してください。

## オラクルの制限

**過去のラウンドデータはありません。** Oracle Gateway アダプターは次のみをサポートします `latestRoundData()`。履歴価格の問い合わせは `getRoundData(roundId)` revert します。

**パーサーのオフセットは現在のレイアウトに対して検証されます。** Pyth と Switchboard のアカウントデータはバイトオフセットを使って解析されます。Pyth または Switchboard がアカウントレイアウトを変更した場合、オフセットが再検証されるまでアダプターは誤ったデータを返します。

## ツールの制限

**Ethereum 風のトランザクション追跡はありません。** `debug_traceTransaction` および `trace_*` はサポートされていません。唯一のトレースメソッドは `debug_traceRomeTransaction`で、複数の呼び出しを 1 つのバッチにまとめたトランザクションを、そのサブ呼び出しと CPI に分解します。通常のトランザクションは次を返します `null`。それ以外については、次を使ってください `eth_call` そして [エクスプローラー経由で](/ja/romenoapuri/via.md) （トランザクションの背後にある Solana 命令を表示します）でデバッグしてください。参照 [JSON-RPC](/ja/rifarensu/json-rpc.md).

**`eth_getLogs` は範囲に上限があります。** パブリックチェーンは、範囲が広すぎるブロック範囲を拒否します（エラー `-32005`）；クエリの範囲を絞ってください。参照 [JSON-RPC](/ja/rifarensu/json-rpc.md).

## インフラストラクチャの制限

**単一オペレーター方式。** 各 Rome デプロイは 1 つの主体（payer pool operator）によって運用されます。分散化されたオペレーター集合はありません。

**反復モードのロック。** 反復実行中はアカウントが数秒間ロックされるため、頻繁に使用されるアカウントで競合が発生することがあります。

## 次は

* [責任ある開示](/ja/sekyuriti/responsible-disclosure.md) — 問題の報告方法


---

# 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/ja/sekyuriti/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.
