For the complete documentation index, see llms.txt. This page is also available as Markdown.

Einschränkungen

Wichtige Limits und Begrenzungen beim Aufbau auf Rome EVM. Das Verständnis dieser Einschränkungen hilft Ihnen, Verträge zu entwerfen, die zuverlässig funktionieren.

Solana-Transaktionslimits

Einschränkung
Wert
Auswirkung

Transaktionsgröße

1.232 Bytes

Große EVM-Txs werden über Holder-Konten aufgeteilt (transparent)

Compute-Units pro Tx

~1,4 Mio. CU

Operationen, die diesen Wert überschreiten, verwenden den iterativen Modus

Konten pro Tx (ohne ALT)

28

Verwenden Sie Address Lookup Tables für mehr

Konten pro Tx (mit ALT)

64+

ALT wird automatisch verwendet, wenn > 28 Konten vorhanden sind

Maximale Holder-Größe

80 KB

Maximale RLP-Größe für eine einzelne EVM-Transaktion

EVM-Ausführungsgrenzen

Einschränkung
Wert
Hinweise

Contract-Speicher-Slots

256 pro Speicher-Konto

Pro Vertrag können mehrere Speicher-Konten erstellt werden

Opcodes pro Iteration

~500

Für den iterativen (VmIt-)Modus

TTL der Account-Sperre

3-4 Sekunden

Während der iterativen Ausführung

Treasury-Wallets

64

Gebührenpool-Wallets

Größenlimit des Vertrags

480 KB

Erhöht gegenüber Ethereums 24 KB (OP-Geth-Modus)

CPI-Einschränkungen

Einschränkung
Wert
Hinweise

CPI-Tiefe

Maximal 4 Ebenen

Solanas CPI-Tiefenlimit

Konten pro CPI-Aufruf

Begrenzt durch die Solana-Tx-Größe

Praktisch ~20 Konten pro CPI

Tiefe von CPI + Transfer Hook

Verwendet CPI-Ebenen

Transfer Hooks von innerhalb eines CPI können die Tiefe überschreiten

Die CPI-Tiefe ist die kritischste Einschränkung. Rome EVM verbraucht eine CPI-Ebene, wenn Solana das Rome-Programm aufruft. Wenn Ihr Solidity-Vertrag dann über CPI ein anderes Solana-Programm aufruft, ist das Ebene 2. Wenn dieses Programm ein weiteres aufruft, ist das Ebene 3. Insgesamt haben Sie höchstens 4 Ebenen.

Token-2022 Transfer-Hook-Einschränkungen

Einschränkung
Auswirkung

Ein Hook pro Mint

Der Meta-Hook-Router löst dies (bis zu 8 Sub-Hooks)

transfer_checked nur

Hooks werden bei einem einfachen Transfernicht ausgelöst. Die Rome-Bridge MUSS transfer_checked

Mint/Burn nicht gehookt

Gesteuert über die Mint-Authority, nicht über Hooks

Nur Single-State-Modus

OP-Geth ist von innerhalb einer Solana-Tx aus nicht erreichbar

Escape über Token-Wrapping

Benutzer können Tokens wrappen, um Hooks zu umgehen. Abgemildert durch Wrapper-Blacklist + PermanentDelegate

Gas- und Preis-Einschränkungen

Einschränkung
Hinweise

Quelle der Gaspreisbildung

Meteora DAMM V1-Pool (SPL-Gas-Token)

Gaspreis-Multiplikator

Pro Proxy konfigurierbar (gas_price_mul)

Mindest-Gaspreis

Wird durch die Proxy-Konfiguration festgelegt

Gas-Schätzung

Wird vor dem Senden offline über den Mollusk-Emulator durchgeführt

Netzwerkspezifische Einschränkungen

Umgebung
Chain-ID
Programm-ID

Lokal

1001

Festgelegt in rome-setup Konfiguration

Devnet (montispl)

200002

RD2Gg7Lcnv62XmRHAzxh6fQQfMRzHtN5LeKPVBhYU5S

Testnet (Martius)

121214

Deployment-Konfiguration prüfen

Testnet (Caelian)

121215

Deployment-Konfiguration prüfen

Precompile-Einschränkungen

Precompile
Einschränkung

Modexp (0x05)

Deaktiviert — kann per Feature-Flag aktiviert werden

BN254 ecPairing (0x08)

Hohe CU-Kosten — erfordert typischerweise den iterativen Modus (~200K CU)

CPI-Precompile (0xFF...08)

Konten müssen in der Solana-Transaktion im Voraus deklariert werden

Oracle-Einschränkungen

Einschränkung
Wert

Standard-Maximalveralterung

60 Sekunden

Historische Rundendaten

Nicht unterstützt — getRoundData(roundId) führt zu einem Revert

Switchboard EMA

Nicht unterstützt — latestEMAData() führt bei SwitchboardV3 zu einem Revert

Parser-Offsets

Empirisch validiert — vor einer erneuten Bereitstellung erneut validieren

Design-Empfehlungen

  1. Halten Sie die CPI-Tiefe gering. Entwerfen Sie Verträge so, dass die Verschachtelung minimiert wird. Wenn Sie Jupiter aufrufen, das Raydium aufruft, das wiederum SPL Token aufruft, sind Sie bei 3 Ebenen — gefährlich nah am Limit.

  2. Bevorzugen Sie den atomaren Modus. Entwerfen Sie Operationen so, dass sie in ~1,4 Mio. CU passen. Der iterative Modus erhöht die Latenz (3-4 Sekunden Sperren) und die Komplexität.

  3. Konten im Voraus deklarieren. Alle Solana-Konten, die durch CPI berührt werden, müssen zum Zeitpunkt der Transaktionserstellung bekannt sein. Eine dynamische Kontoerkennung innerhalb eines CPI-Aufrufs ist nicht möglich.

  4. Verwenden Sie transfer_checked. Wenn Sie etwas bauen, das Token-2022-Tokens berührt, verwenden Sie immer transfer_checked um sicherzustellen, dass Hooks ausgelöst werden.

  5. Testen Sie den CU-Verbrauch. Verwenden Sie eth_estimateGas während der Entwicklung. Optimieren Sie Hot Paths mit Yul. Siehe CU-Optimierung.

Was kommt als Nächstes

Zuletzt aktualisiert

War das hilfreich?