CPI (Cross-Program Invocation)
Mechanismus, mit dem ein Solana-Programm ein anderes aufruft. Grundlage fast aller DeFi-Operationen — limitiert auf vier verschachtelte Ebenen.
CPI — Cross-Program Invocation
CPI ist der Mechanismus, mit dem ein Solana-Programm während seiner Ausführung ein anderes Programm aufruft. DEXes rufen das Token-Programm zum Verschieben, Lending-Protokolle rufen Oracle-Programme zum Preisabfragen, Wallets rufen das System-Programm zum Account-Erstellen. Ohne CPI gäbe es kein composables DeFi auf Solana.
Wie es funktioniert
Programm A bereitet eine Instruction für Programm B vor (mit Accounts und Daten) und ruft invoke() oder invoke_signed(). Die Runtime führt B aus und gibt das Ergebnis zurück an A. Alle Account-Modifications werden atomar — entweder die ganze Outer-Transaction klappt oder gar nichts.
Tiefen-Limit
Solana erlaubt nur vier verschachtelte CPI-Ebenen. Ein Programm kann ein anderes aufrufen, das ein drittes aufrufen kann, und so weiter — aber nicht beliebig tief. Das schützt vor Stack-Overflow und beschränkt Re-Entrancy-Risiken.
Transfer-Hook-Angriffsfläche
Mit Token-2022 Transfer Hooks ist die CPI-Tiefe zur neuen Angriffsfläche geworden. Ein bösartiger Hook kann CPI-Depth absichtlich verbrauchen, sodass legitime Folge-Aufrufe mit CallDepthExceeded scheitern.
Cost
Jeder CPI-Call kostet rund 1.000 Compute Units Overhead. P-Tokens neue batch-Instruction reduziert das, indem mehrere Token-Instructions in einem CPI-Call gebündelt werden.
Tieferer Einstieg
Pillar P-Token erklärt.