Move.

Beitrag

Teile dein Wissen.

skywinder.
Apr 10, 2025
Experten Q&A

Was ist eine native Funktion und können wir sie direkt aufrufen?

Ich bin in Move auf den Begriff „native Funktion“ gestoßen, kann aber keine detaillierten Informationen dazu finden. Ich habe gehört, dass sie in Move deklariert, aber extern definiert sind, oft in Rust. Bedeutet das, dass es sich um interne Funktionen handelt, die nicht direkt von Wallets oder anderen Modulen aufgerufen werden können?

  • Move CLI
  • Move
0
2
Teilen
Kommentare
.

Antworten

2
mssoni.
Apr 11 2025, 08:43

Native Funktionen in Move werden zwar innerhalb der Sprache deklariert, haben aber keinen Hauptteil, da sie außerhalb von Move implementiert werden, normalerweise in Rust. Trotzdem kannst du die native Funktion, wenn sie öffentlich ist, wie jede andere Funktion aufrufen. Sie sind nicht nur auf den internen Gebrauch beschränkt. Sie können sie aufrufen, solange die erforderlichen Berechtigungen und der öffentliche Zugriff vorhanden sind.

0
Kommentare
.
24p30p.
Jul 9 2025, 07:08

In Move ist einenative Funktion eine spezielle Art von Funktion, die Sie in einem Move-Modul deklarieren, aber nicht in der Move-Sprache selbst schreiben — stattdessen ist sie in Rust auf Laufzeitebene implementiert. Diese Funktionen werden normalerweise für leistungsintensive Operationen oder Aufgaben auf niedriger Ebene verwendet, die in Pure Move nicht effizient oder sicher ausgeführt werden können, wie Hashing, kryptografische Prüfungen oder bestimmte arithmetische Operationen. Sie können native Funktionen in Ihren Move-Modulen zwar genau wie normale Funktionen verwenden, aber Sie können sie nicht wie bei einer normalen Eingabefunktion direkt von einer Wallet oder Transaktion aus aufrufen. Sie sind nicht für direkte Benutzerinteraktionen zugänglich; stattdessen werden sie intern von dem Modulcode aufgerufen, den Sie bei Bedarf schreiben.

Wenn Sie ein Modul erstellen und darin eine native Funktion aufrufen, nutzen Benutzer, die mit Ihrem Modul interagieren (über Transaktionen oder DApps), diese native Funktion indirekt. Aber die native Logik selbst läuft unter der Haube in der Move-VM, die in Rust verarbeitet wird und in keiner Weise direkt verfügbar gemacht wird.

Hier ist ein kleines Beispiel dafür, wie Sie eine native Funktion deklarieren könnten:

native public fun sha256(data: vector<u8>): vector<u8>;

Dies teilt dem Move-Compiler mit, dass er sha256existiert, aber die eigentliche Implementierung befindet sich in Rust innerhalb der Sui-VM. Wenn Sie mehr über die nativen Funktionen in Move und deren Verknüpfung mit der Sui-Laufzeit erfahren möchten, schauen Sie sich die offiziellen Dokumente an:

https://docs.sui.io/learn/move/native-functions

https://github.com/MystenLabs/sui/tree/main/crates/sui-move-natives

Dies ist besonders nützlich, wenn Sie leistungsabhängige Module schreiben, die kryptografische Operationen oder fortgeschrittene Mathematik benötigen.

0
Kommentare
.

Weißt du die Antwort?

Bitte melde dich an und teile sie.

Move is an executable bytecode language used to implement custom transactions and smart contracts.

148Beiträge240Antworten
Sui.X.Peera.

Verdiene deinen Anteil an 1000 Sui

Sammle Reputationspunkte und erhalte Belohnungen für deine Hilfe beim Wachstum der Sui-Community.

BelohnungskampagneJuli