Lektion 4

Smart Contract

Dieses Modul bietet einen detaillierten technischen Überblick über zkSync und konzentriert sich auf das Schreiben und Bereitstellen von Smart Contracts, die Verwendung der zkSync-CLI und des SDK sowie die Integration von zkSync in bestehende Entwicklungsumgebungen.

Smart Contracts in zkSync funktionieren ähnlich wie auf Ethereum, jedoch mit verbesserter Skalierbarkeit und Effizienz aufgrund der zugrunde liegenden zkRollup-Technologie. zkSync verwendet Zero-Knowledge-Beweise, um Sicherheit und Vertrauenslosigkeit zu gewährleisten, während Transaktionen off-chain verarbeitet werden.

Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs) werden verwendet, um die Korrektheit von Berechnungen außerhalb der Kette zu überprüfen. In zkSync stellen zk-SNARKs sicher, dass alle Transaktionen und die Ausführung von Smart Contracts gültig sind, ohne die Berechnungen auf dem Ethereum-Mainnet durchführen zu müssen. Dies reduziert die Rechenlast und die damit verbundenen Gasgebühren und ermöglicht eine höhere Durchsatzleistung.

zkSync Era, die neueste Iteration, ist vollständig kompatibel mit der Ethereum Virtual Machine (EVM). Das bedeutet, dass die meisten Smart Contracts, die für Ethereum geschrieben wurden, mit wenig bis gar keinen Änderungen auf zkSync bereitgestellt werden können. Die EVM-Kompatibilität stellt sicher, dass Entwickler vertraute Tools und Sprachen (z. B. Solidity) verwenden können, um ihre Verträge zu schreiben und bereitzustellen.

zkSync Era integriert auch zkPorter, eine Datenverfügbarkeitslösung, die die Skalierbarkeit verbessert. zkPorter ermöglicht es, bestimmte Daten außerhalb der Kette zu halten, wodurch die Anzahl der Transaktionen, die verarbeitet werden können, ohne das Ethereum-Mainnet zu überlasten, erheblich erhöht wird.

Schreiben und Bereitstellen von Smart Contracts

Smart Contracts für zkSync sind in Solidity geschrieben, der gleichen Sprache, die für Ethereum Smart Contracts verwendet wird. Entwickler können die gleichen Syntax- und Logikstrukturen verwenden, die sie gewohnt sind, was den Übergang zu zkSync sehr einfach macht.

Bereitstellen von Smart Contracts

1.Entwicklungsumgebung einrichten:

  • Installieren Sie Node.js und npm (Node Package Manager).
  • Installieren Sie daszkSyncundhardhatPakete über npm.
  • Initialisieren Sie ein neues Hardhat-Projekt und konfigurieren Sie es so, dass es mit zkSync funktioniert.

2.Konfiguration:

Bearbeiten hardhat.config.jsDatei, um zkSync-spezifische Einstellungen einzuschließen, wie die zkSync-Netzwerk-URLs und zkSync-spezifische Compiler-Optionen.

Beispielkonfiguration könnte so aussehen:

3.Kompilieren Sie die Smart Contracts:

Mit dem Hardhat-Framework ist es möglich, Solidity-Verträge zu kompilieren. Das Hardhat zkSync-Plugin stellt sicher, dass die Kompilierung mit dem zkSync-Netzwerk kompatibel ist.

4.Bereitstellung von Smart Contracts:

Der Bereitstellungsprozess umfasst die Verbindung zum zkSync-Anbieter, die Erstellung einer Wallet-Instanz und deren Verwendung zur Bereitstellung des Vertrags. Beispiel-Bereitstellungsskript:

Verfügbare Entwicklungstools

Schutzhelm

Hardhat ist eine Entwicklungs- und Aufgabenverwaltungsumgebung für Ethereum, die erweitert wurde, um zkSync zu unterstützen. Es ermöglicht Entwicklern, Solidity-Smart Contracts zu kompilieren, bereitzustellen, zu testen und zu debuggen.

zkSync SDK

Das zkSync SDK bietet Tools und Bibliotheken zur Interaktion mit zkSync aus einer JavaScript-Umgebung. Es enthält Dienstprogramme zum Einrichten von Geldbörsen, zum Senden von Transaktionen und zur Interaktion mit auf zkSync bereitgestellten Smart Contracts.

zkSync CLI

Die zkSync-Befehlszeilenschnittstelle (CLI) bietet Funktionen zur Verwaltung von zkSync-Projekten, einschließlich Bereitstellung von Verträgen und Verwaltung von Konten.

Remix IDE

Remix ist eine Open-Source-Web- und Desktop-Anwendung, mit der Solidity-Verträge direkt aus dem Browser heraus geschrieben werden können. Es unterstützt zkSync durch Plugins und Konfigurationen, die es mit dem zkSync-Netzwerk verbinden.

Integration

Die Entwicklungstools integrieren sich, um eine zusammenhängende Umgebung für die Entwicklung, das Testen und Bereitstellen von Smart Contracts auf zkSync bereitzustellen.

Hardhat und zkSync SDK

Hardhat integriert sich mit dem zkSync SDK, um Entwicklern einen reibungslosen Arbeitsablauf zu bieten. Hardhat-Plugins für zkSync übernehmen die Kompilierungs- und Bereitstellungsprozesse, während das zkSync SDK die zugrunde liegende Funktionalität bereitstellt, um mit dem zkSync-Netzwerk zu interagieren. Diese Kombination ermöglicht es Entwicklern, Bereitstellungsskripte und Tests unter Verwendung vertrauter Hardhat-Strukturen zu schreiben und gleichzeitig zkSync-spezifische Funktionen zu nutzen.

Hardhat und Remix

Entwickler können Smart Contracts mit Remix schreiben und testen und dann Hardhat für komplexere Bereitstellungsszenarien verwenden. Die kompilierten Artefakte von Remix können problemlos in ein Hardhat-Projekt importiert werden, was flexible Entwicklungsworkflows ermöglicht.

zkSync CLI

Das zkSync CLI kann zusammen mit Hardhat und dem zkSync SDK verwendet werden, um Bereitstellungen zu verwalten und mit bereitgestellten Verträgen zu interagieren. Es bietet eine Befehlszeilenschnittstelle für gängige Aufgaben wie Vertragsbereitstellungen oder Verwaltung von Kontoschlüsseln, die in automatisierte Bereitstellungs-Pipelines integriert werden können.

Testen und Debuggen

Hardhats Testframework kann verwendet werden, um Einheits- und Integrationstests für Smart Contracts zu schreiben. Diese Tests können auf einem lokalen zkSync-Knoten oder einem Testnetz ausgeführt werden, um sicherzustellen, dass sich die Verträge wie erwartet verhalten. Das zkSync SDK ermöglicht die Interaktion mit den Verträgen während des Testens und ermöglicht eine umfassende Testabdeckung.

Durch die Integration dieser Tools können Entwickler Smart Contracts auf zkSync effizient schreiben, testen, bereitstellen und verwalten, indem sie die Skalierbarkeit und Kosteneffizienz von zkRollups nutzen und gleichzeitig eine vertraute Entwicklungserfahrung beibehalten. Diese Integration unterstützt einen starken Entwicklungslebenszyklus, von der ersten Vertragserstellung über die Bereitstellung bis hin zur laufenden Wartung.

Höhepunkte

  • Das Schreiben und Bereitstellen von Smart Contracts auf zkSync erfolgt unter Verwendung von Solidity und Vyper, mit Kompilierung durch benutzerdefinierte zkSync-Compiler.
  • Das zkSync CLI und SDK bieten umfassende Tools für Projektsetup, Vertragskompilierung, Bereitstellung und Interaktion.
  • Die Integration mit Entwicklungstools wie Hardhat, Foundry, Remix und Atlas verbessert die Entwicklererfahrung.
  • Die Einhaltung bewährter Praktiken gewährleistet eine sichere und effiziente Entwicklung von Smart Contracts auf zkSync.
Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.
Katalog
Lektion 4

Smart Contract

Dieses Modul bietet einen detaillierten technischen Überblick über zkSync und konzentriert sich auf das Schreiben und Bereitstellen von Smart Contracts, die Verwendung der zkSync-CLI und des SDK sowie die Integration von zkSync in bestehende Entwicklungsumgebungen.

Smart Contracts in zkSync funktionieren ähnlich wie auf Ethereum, jedoch mit verbesserter Skalierbarkeit und Effizienz aufgrund der zugrunde liegenden zkRollup-Technologie. zkSync verwendet Zero-Knowledge-Beweise, um Sicherheit und Vertrauenslosigkeit zu gewährleisten, während Transaktionen off-chain verarbeitet werden.

Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs) werden verwendet, um die Korrektheit von Berechnungen außerhalb der Kette zu überprüfen. In zkSync stellen zk-SNARKs sicher, dass alle Transaktionen und die Ausführung von Smart Contracts gültig sind, ohne die Berechnungen auf dem Ethereum-Mainnet durchführen zu müssen. Dies reduziert die Rechenlast und die damit verbundenen Gasgebühren und ermöglicht eine höhere Durchsatzleistung.

zkSync Era, die neueste Iteration, ist vollständig kompatibel mit der Ethereum Virtual Machine (EVM). Das bedeutet, dass die meisten Smart Contracts, die für Ethereum geschrieben wurden, mit wenig bis gar keinen Änderungen auf zkSync bereitgestellt werden können. Die EVM-Kompatibilität stellt sicher, dass Entwickler vertraute Tools und Sprachen (z. B. Solidity) verwenden können, um ihre Verträge zu schreiben und bereitzustellen.

zkSync Era integriert auch zkPorter, eine Datenverfügbarkeitslösung, die die Skalierbarkeit verbessert. zkPorter ermöglicht es, bestimmte Daten außerhalb der Kette zu halten, wodurch die Anzahl der Transaktionen, die verarbeitet werden können, ohne das Ethereum-Mainnet zu überlasten, erheblich erhöht wird.

Schreiben und Bereitstellen von Smart Contracts

Smart Contracts für zkSync sind in Solidity geschrieben, der gleichen Sprache, die für Ethereum Smart Contracts verwendet wird. Entwickler können die gleichen Syntax- und Logikstrukturen verwenden, die sie gewohnt sind, was den Übergang zu zkSync sehr einfach macht.

Bereitstellen von Smart Contracts

1.Entwicklungsumgebung einrichten:

  • Installieren Sie Node.js und npm (Node Package Manager).
  • Installieren Sie daszkSyncundhardhatPakete über npm.
  • Initialisieren Sie ein neues Hardhat-Projekt und konfigurieren Sie es so, dass es mit zkSync funktioniert.

2.Konfiguration:

Bearbeiten hardhat.config.jsDatei, um zkSync-spezifische Einstellungen einzuschließen, wie die zkSync-Netzwerk-URLs und zkSync-spezifische Compiler-Optionen.

Beispielkonfiguration könnte so aussehen:

3.Kompilieren Sie die Smart Contracts:

Mit dem Hardhat-Framework ist es möglich, Solidity-Verträge zu kompilieren. Das Hardhat zkSync-Plugin stellt sicher, dass die Kompilierung mit dem zkSync-Netzwerk kompatibel ist.

4.Bereitstellung von Smart Contracts:

Der Bereitstellungsprozess umfasst die Verbindung zum zkSync-Anbieter, die Erstellung einer Wallet-Instanz und deren Verwendung zur Bereitstellung des Vertrags. Beispiel-Bereitstellungsskript:

Verfügbare Entwicklungstools

Schutzhelm

Hardhat ist eine Entwicklungs- und Aufgabenverwaltungsumgebung für Ethereum, die erweitert wurde, um zkSync zu unterstützen. Es ermöglicht Entwicklern, Solidity-Smart Contracts zu kompilieren, bereitzustellen, zu testen und zu debuggen.

zkSync SDK

Das zkSync SDK bietet Tools und Bibliotheken zur Interaktion mit zkSync aus einer JavaScript-Umgebung. Es enthält Dienstprogramme zum Einrichten von Geldbörsen, zum Senden von Transaktionen und zur Interaktion mit auf zkSync bereitgestellten Smart Contracts.

zkSync CLI

Die zkSync-Befehlszeilenschnittstelle (CLI) bietet Funktionen zur Verwaltung von zkSync-Projekten, einschließlich Bereitstellung von Verträgen und Verwaltung von Konten.

Remix IDE

Remix ist eine Open-Source-Web- und Desktop-Anwendung, mit der Solidity-Verträge direkt aus dem Browser heraus geschrieben werden können. Es unterstützt zkSync durch Plugins und Konfigurationen, die es mit dem zkSync-Netzwerk verbinden.

Integration

Die Entwicklungstools integrieren sich, um eine zusammenhängende Umgebung für die Entwicklung, das Testen und Bereitstellen von Smart Contracts auf zkSync bereitzustellen.

Hardhat und zkSync SDK

Hardhat integriert sich mit dem zkSync SDK, um Entwicklern einen reibungslosen Arbeitsablauf zu bieten. Hardhat-Plugins für zkSync übernehmen die Kompilierungs- und Bereitstellungsprozesse, während das zkSync SDK die zugrunde liegende Funktionalität bereitstellt, um mit dem zkSync-Netzwerk zu interagieren. Diese Kombination ermöglicht es Entwicklern, Bereitstellungsskripte und Tests unter Verwendung vertrauter Hardhat-Strukturen zu schreiben und gleichzeitig zkSync-spezifische Funktionen zu nutzen.

Hardhat und Remix

Entwickler können Smart Contracts mit Remix schreiben und testen und dann Hardhat für komplexere Bereitstellungsszenarien verwenden. Die kompilierten Artefakte von Remix können problemlos in ein Hardhat-Projekt importiert werden, was flexible Entwicklungsworkflows ermöglicht.

zkSync CLI

Das zkSync CLI kann zusammen mit Hardhat und dem zkSync SDK verwendet werden, um Bereitstellungen zu verwalten und mit bereitgestellten Verträgen zu interagieren. Es bietet eine Befehlszeilenschnittstelle für gängige Aufgaben wie Vertragsbereitstellungen oder Verwaltung von Kontoschlüsseln, die in automatisierte Bereitstellungs-Pipelines integriert werden können.

Testen und Debuggen

Hardhats Testframework kann verwendet werden, um Einheits- und Integrationstests für Smart Contracts zu schreiben. Diese Tests können auf einem lokalen zkSync-Knoten oder einem Testnetz ausgeführt werden, um sicherzustellen, dass sich die Verträge wie erwartet verhalten. Das zkSync SDK ermöglicht die Interaktion mit den Verträgen während des Testens und ermöglicht eine umfassende Testabdeckung.

Durch die Integration dieser Tools können Entwickler Smart Contracts auf zkSync effizient schreiben, testen, bereitstellen und verwalten, indem sie die Skalierbarkeit und Kosteneffizienz von zkRollups nutzen und gleichzeitig eine vertraute Entwicklungserfahrung beibehalten. Diese Integration unterstützt einen starken Entwicklungslebenszyklus, von der ersten Vertragserstellung über die Bereitstellung bis hin zur laufenden Wartung.

Höhepunkte

  • Das Schreiben und Bereitstellen von Smart Contracts auf zkSync erfolgt unter Verwendung von Solidity und Vyper, mit Kompilierung durch benutzerdefinierte zkSync-Compiler.
  • Das zkSync CLI und SDK bieten umfassende Tools für Projektsetup, Vertragskompilierung, Bereitstellung und Interaktion.
  • Die Integration mit Entwicklungstools wie Hardhat, Foundry, Remix und Atlas verbessert die Entwicklererfahrung.
  • Die Einhaltung bewährter Praktiken gewährleistet eine sichere und effiziente Entwicklung von Smart Contracts auf zkSync.
Haftungsausschluss
* Kryptoinvestitionen sind mit erheblichen Risiken verbunden. Bitte lassen Sie Vorsicht walten. Der Kurs ist nicht als Anlageberatung gedacht.
* Der Kurs wird von dem Autor erstellt, der Gate Learn beigetreten ist. Vom Autor geteilte Meinungen spiegeln nicht zwangsläufig die Meinung von Gate Learn wider.