Einschränkungen
Wichtige Grenzen und Beschränkungen beim Aufbau auf Rome EVM. Das Verständnis dieser Einschränkungen hilft Ihnen, Verträge zu entwerfen, die zuverlässig funktionieren.
Solana-Transaktionslimits
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 dies überschreiten, verwenden den iterativen Modus
Konten pro TX (ohne ALT)
28
Für mehr Address Lookup Tables verwenden
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
Contract-Storage-Slots
256 pro Storage-Konto
Pro Vertrag können mehrere Storage-Konten erstellt werden
Opcodes pro Iteration
~500
Für den iterativen (VmIt-)Modus
TTL der Konto-Sperre
3–4 Sekunden
Während der iterativen Ausführung
Treasury-Wallets
64
Fee-Pool-Wallets
Vertragsgrößenlimit
480 KB
Erhöht von Ethereums 24 KB (OP-Geth-Modus)
CPI-Beschränkungen
CPI-Tiefe
maximal 4 Ebenen
Solanas CPI-Tiefenlimit
Konten pro CPI-Aufruf
Begrenzt durch die Solana-Transaktionsgröße
Praktisch ~20 Konten pro CPI
CPI- + Transfer-Hook-Tiefe
Verwendet CPI-Ebenen
Transfer Hooks innerhalb von CPI können die Tiefe überschreiten
Die CPI-Tiefe ist die kritischste Beschränkung. Rome EVM verbraucht eine CPI-Ebene, wenn Solana das Rome-Programm aufruft. Wenn Ihr Solidity-Contract dann über CPI ein weiteres Solana-Programm aufruft, ist das Ebene 2. Wenn dieses Programm ein weiteres aufruft, ist das Ebene 3. Insgesamt haben Sie höchstens 4 Ebenen.
Beschränkungen für Token-2022-Transfer-Hooks
Ein Hook pro Mint
Meta-Hook Router löst dies (bis zu 8 Unter-Hooks)
transfer_checked nur
Hooks werden bei einfachem 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 von innerhalb einer Solana-TX aus nicht erreichbar
Umgehung durch Token-Wrapping
Benutzer können Token wrappen, um Hooks zu umgehen. Abgemildert durch Wrapper-Blacklist + PermanentDelegate
Gas- und Preisbeschränkungen
Quelle der Gaspreisbildung
Meteora DAMM V1 Pool (SPL-Gas-Token)
Gaspreis-Multiplikator
Pro Proxy konfigurierbar (gas_price_mul)
Mindest-Gaspreis
Durch die Proxy-Konfiguration festgelegt
Gas-Schätzung
Vor der Einreichung offline über den Mollusk-Emulator durchgeführt
Netzwerkspezifische Beschränkungen
Lokal
1001
Festgelegt in rome-setup config
Devnet (montispl)
200002
RD2Gg7Lcnv62XmRHAzxh6fQQfMRzHtN5LeKPVBhYU5S
Testnet (Martius)
121214
Bereitstellungskonfiguration prüfen
Testnet (Caelian)
121215
Bereitstellungskonfiguration prüfen
Precompile-Beschränkungen
Modexp (0x05)
Deaktiviert — kann über ein Feature-Flag aktiviert werden
BN254 ecPairing (0x08)
Hohe CU-Kosten — erfordert typischerweise den iterativen Modus (~200K CU)
CPI-Precompile (0xFF...08)
Konten müssen im Solana-Transaktionsvorschlag vorab deklariert werden
Oracle-Beschränkungen
Standardmäßige maximale Veraltung
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
Halten Sie die CPI-Tiefe flach. Entwerfen Sie Verträge so, dass Verschachtelungen minimiert werden. Wenn Sie Jupiter aufrufen, das Raydium aufruft, das SPL Token aufruft, sind Sie bei 3 Ebenen — gefährlich nah am Limit.
Bevorzugen Sie den atomaren Modus. Entwerfen Sie Operationen so, dass sie in ~1,4 Mio. CU passen. Der iterative Modus bringt zusätzliche Latenz (3–4 Sekunden Sperren) und Komplexität mit sich.
Konten im Voraus deklarieren. Alle Solana-Konten, die per CPI angesprochen werden, müssen zum Zeitpunkt der Transaktionserstellung bekannt sein. Eine dynamische Kontoerkennung innerhalb eines CPI-Aufrufs ist nicht möglich.
Verwenden Sie
transfer_checked. Wenn Sie etwas bauen, das Token-2022-Token berührt, verwenden Sie immertransfer_checkeddamit Hooks ausgelöst werden.CU-Verbrauch testen. Verwenden Sie
eth_estimateGaswährend der Entwicklung. Optimieren Sie Hot Paths mit Yul. Siehe CU-Optimierung.
Was kommt als Nächstes
Compute-Budget — detaillierte CU-Kosten pro Operation
Token-Interop — ERC-20 ↔ SPL-Bridging-Modell
Leitfaden zur CU-Optimierung — praktische Optimierungstechniken
Zuletzt aktualisiert
War das hilfreich?