solana-specific

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.

Verwandte Begriffe

Solana-Programm Transfer Hook Compute Unit P-Token