Lição 4

Smart Contract

Ce module fournit un aperçu technique approfondi de zkSync, en mettant l'accent sur l'écriture et le déploiement de contrats intelligents, l'utilisation de la CLI et du SDK zkSync, et l'intégration de zkSync avec les environnements de développement existants.

Les contrats intelligents dans zkSync fonctionnent de manière similaire à ceux sur Ethereum, mais avec une évolutivité et une efficacité accrues grâce à la technologie sous-jacente zkRollup. zkSync utilise des preuves de connaissance nulle pour maintenir la sécurité et la confiance tout en traitant les transactions hors chaîne.

Les arguments de connaissance succincts non interactifs à connaissance nulle (zk-SNARKs) sont utilisés pour vérifier l’exactitude des calculs hors chaîne. Dans zkSync, les zk-SNARK garantissent que toutes les transactions et exécutions de contrats intelligents sont valides sans avoir à effectuer les calculs sur le réseau principal Ethereum. Cela réduit la charge de calcul et les frais de gaz associés, ce qui permet d’augmenter le débit.

La période zkSync, la dernière itération, est entièrement compatible avec la machine virtuelle Ethereum (EVM). Cela signifie que la plupart des contrats intelligents écrits pour Ethereum peuvent être déployés sur zkSync avec peu ou pas de modification. La compatibilité avec l'EVM garantit que les développeurs peuvent utiliser des outils et des langages familiers (comme Solidity) pour écrire et déployer leurs contrats.

zkSync Era intègre également zkPorter, une solution de disponibilité des données qui améliore l’évolutivité. zkPorter permet de conserver certaines données hors chaîne, ce qui augmente considérablement le nombre de transactions pouvant être traitées sans encombrer le réseau principal d’Ethereum.

Rédaction et déploiement de contrats intelligents

Les contrats intelligents pour zkSync sont écrits en Solidity, le même langage utilisé pour les contrats intelligents Ethereum. Les développeurs peuvent utiliser la même syntaxe et les mêmes structures logiques auxquelles ils sont habitués, ce qui rend la transition vers zkSync très simple.

Déploiement de Smart Contracts

1.Configurer l'environnement de développement :

  • Installer Node.js et npm (Gestionnaire de paquets Node).
  • Installer le zkSyncetCasque de sécuritépaquets via npm.
  • Initialisez un nouveau projet Hardhat et configurez-le pour fonctionner avec zkSync.

2.Configuration:

Modifier le hardhat.config.jsfichier pour inclure des paramètres spécifiques à zkSync, tels que les URL du réseau zkSync et les options de compilateur spécifiques à zkSync.

Voici un exemple de configuration :

3.Compiler les Contrats Intelligents:

À l'aide du framework Hardhat, il est possible de compiler des contrats Solidity. Le plugin Hardhat zkSync garantit que la compilation est compatible avec le réseau zkSync.

4.Déploiement de contrats intelligents:

Le processus de déploiement implique de se connecter au fournisseur zkSync, de créer une instance de portefeuille et de l'utiliser pour déployer le contrat. Exemple de script de déploiement :

Outils de développement disponibles

Hardhat

Hardhat est un environnement de développement et un exécuteur de tâches pour Ethereum qui a été étendu pour prendre en charge zkSync. Il permet aux développeurs de compiler, déployer, tester et déboguer des contrats intelligents Solidity.

zkSync SDK

Le kit de développement logiciel zkSync fournit des outils et des bibliothèques pour interagir avec zkSync depuis un environnement JavaScript. Il comprend des utilitaires pour configurer des portefeuilles, envoyer des transactions et interagir avec des contrats intelligents déployés sur zkSync.

Interface de ligne de commande zkSync

L’interface de ligne de commande (CLI) zkSync offre des fonctionnalités pour gérer les projets zkSync, y compris le déploiement de contrats et la gestion des comptes.

Remix IDE

Remix est une application web et de bureau open-source qui aide à écrire des contrats Solidity directement depuis le navigateur. Il prend en charge zkSync via des plugins et des configurations qui le connectent au réseau zkSync.

Intégration

Les outils de développement s'intègrent pour fournir un environnement cohérent pour développer, tester et déployer des contrats intelligents sur zkSync.

Hardhat et SDK zkSync

Hardhat s'intègre au SDK zkSync pour offrir un flux de travail fluide aux développeurs. Les plugins Hardhat pour zkSync gèrent les processus de compilation et de déploiement, tandis que le SDK zkSync fournit la fonctionnalité sous-jacente pour interagir avec le réseau zkSync. Cette combinaison permet aux développeurs d'écrire des scripts de déploiement et des tests en utilisant des constructions Hardhat familières tout en tirant parti des fonctionnalités spécifiques à zkSync.

Hardhat et Remix

Les développeurs peuvent écrire et tester des contrats intelligents à l’aide de Remix, puis utiliser Hardhat pour des scénarios de déploiement plus complexes. Les artefacts compilés à partir de Remix peuvent être facilement importés dans un projet Hardhat, ce qui permet des flux de travail de développement flexibles.

zkSync CLI

Le CLI zkSync peut être utilisé aux côtés de Hardhat et du SDK zkSync pour gérer les déploiements et interagir avec les contrats déployés. Il fournit une interface en ligne de commande pour des tâches courantes, telles que le déploiement de contrats ou la gestion des clés de compte, qui peuvent être intégrées dans des pipelines de déploiement automatisés.

Tests et débogage

Le framework de test de Hardhat peut être utilisé pour écrire des tests unitaires et d’intégration pour les contrats intelligents. Ces tests peuvent s’exécuter sur un nœud zkSync local ou un réseau de test pour s’assurer que les contrats se comportent comme prévu. Le SDK zkSync facilite l’interaction avec les contrats pendant les tests, ce qui permet une couverture complète des tests.

En intégrant ces outils, les développeurs peuvent écrire, tester, déployer et gérer efficacement des contrats intelligents sur zkSync, en utilisant l’évolutivité et la rentabilité de zkRollups tout en conservant une expérience de développement familière. Cette intégration prend en charge un cycle de vie de développement solide, de la création du contrat initial au déploiement et à la maintenance continue.

Points forts

  • Écrire et déployer des smart contracts sur zkSync implique d'utiliser Solidity et Vyper, avec une compilation via des compilateurs zkSync personnalisés.
  • Le CLI et le SDK zkSync fournissent des outils complets pour la configuration du projet, la compilation des contrats, le déploiement et l'interaction.
  • L'intégration avec des outils de développement comme Hardhat, Foundry, Remix et Atlas améliore l'expérience des développeurs.
  • Le respect des meilleures pratiques garantit un développement de contrat intelligent sécurisé et efficace sur zkSync.
Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.
Catálogo
Lição 4

Smart Contract

Ce module fournit un aperçu technique approfondi de zkSync, en mettant l'accent sur l'écriture et le déploiement de contrats intelligents, l'utilisation de la CLI et du SDK zkSync, et l'intégration de zkSync avec les environnements de développement existants.

Les contrats intelligents dans zkSync fonctionnent de manière similaire à ceux sur Ethereum, mais avec une évolutivité et une efficacité accrues grâce à la technologie sous-jacente zkRollup. zkSync utilise des preuves de connaissance nulle pour maintenir la sécurité et la confiance tout en traitant les transactions hors chaîne.

Les arguments de connaissance succincts non interactifs à connaissance nulle (zk-SNARKs) sont utilisés pour vérifier l’exactitude des calculs hors chaîne. Dans zkSync, les zk-SNARK garantissent que toutes les transactions et exécutions de contrats intelligents sont valides sans avoir à effectuer les calculs sur le réseau principal Ethereum. Cela réduit la charge de calcul et les frais de gaz associés, ce qui permet d’augmenter le débit.

La période zkSync, la dernière itération, est entièrement compatible avec la machine virtuelle Ethereum (EVM). Cela signifie que la plupart des contrats intelligents écrits pour Ethereum peuvent être déployés sur zkSync avec peu ou pas de modification. La compatibilité avec l'EVM garantit que les développeurs peuvent utiliser des outils et des langages familiers (comme Solidity) pour écrire et déployer leurs contrats.

zkSync Era intègre également zkPorter, une solution de disponibilité des données qui améliore l’évolutivité. zkPorter permet de conserver certaines données hors chaîne, ce qui augmente considérablement le nombre de transactions pouvant être traitées sans encombrer le réseau principal d’Ethereum.

Rédaction et déploiement de contrats intelligents

Les contrats intelligents pour zkSync sont écrits en Solidity, le même langage utilisé pour les contrats intelligents Ethereum. Les développeurs peuvent utiliser la même syntaxe et les mêmes structures logiques auxquelles ils sont habitués, ce qui rend la transition vers zkSync très simple.

Déploiement de Smart Contracts

1.Configurer l'environnement de développement :

  • Installer Node.js et npm (Gestionnaire de paquets Node).
  • Installer le zkSyncetCasque de sécuritépaquets via npm.
  • Initialisez un nouveau projet Hardhat et configurez-le pour fonctionner avec zkSync.

2.Configuration:

Modifier le hardhat.config.jsfichier pour inclure des paramètres spécifiques à zkSync, tels que les URL du réseau zkSync et les options de compilateur spécifiques à zkSync.

Voici un exemple de configuration :

3.Compiler les Contrats Intelligents:

À l'aide du framework Hardhat, il est possible de compiler des contrats Solidity. Le plugin Hardhat zkSync garantit que la compilation est compatible avec le réseau zkSync.

4.Déploiement de contrats intelligents:

Le processus de déploiement implique de se connecter au fournisseur zkSync, de créer une instance de portefeuille et de l'utiliser pour déployer le contrat. Exemple de script de déploiement :

Outils de développement disponibles

Hardhat

Hardhat est un environnement de développement et un exécuteur de tâches pour Ethereum qui a été étendu pour prendre en charge zkSync. Il permet aux développeurs de compiler, déployer, tester et déboguer des contrats intelligents Solidity.

zkSync SDK

Le kit de développement logiciel zkSync fournit des outils et des bibliothèques pour interagir avec zkSync depuis un environnement JavaScript. Il comprend des utilitaires pour configurer des portefeuilles, envoyer des transactions et interagir avec des contrats intelligents déployés sur zkSync.

Interface de ligne de commande zkSync

L’interface de ligne de commande (CLI) zkSync offre des fonctionnalités pour gérer les projets zkSync, y compris le déploiement de contrats et la gestion des comptes.

Remix IDE

Remix est une application web et de bureau open-source qui aide à écrire des contrats Solidity directement depuis le navigateur. Il prend en charge zkSync via des plugins et des configurations qui le connectent au réseau zkSync.

Intégration

Les outils de développement s'intègrent pour fournir un environnement cohérent pour développer, tester et déployer des contrats intelligents sur zkSync.

Hardhat et SDK zkSync

Hardhat s'intègre au SDK zkSync pour offrir un flux de travail fluide aux développeurs. Les plugins Hardhat pour zkSync gèrent les processus de compilation et de déploiement, tandis que le SDK zkSync fournit la fonctionnalité sous-jacente pour interagir avec le réseau zkSync. Cette combinaison permet aux développeurs d'écrire des scripts de déploiement et des tests en utilisant des constructions Hardhat familières tout en tirant parti des fonctionnalités spécifiques à zkSync.

Hardhat et Remix

Les développeurs peuvent écrire et tester des contrats intelligents à l’aide de Remix, puis utiliser Hardhat pour des scénarios de déploiement plus complexes. Les artefacts compilés à partir de Remix peuvent être facilement importés dans un projet Hardhat, ce qui permet des flux de travail de développement flexibles.

zkSync CLI

Le CLI zkSync peut être utilisé aux côtés de Hardhat et du SDK zkSync pour gérer les déploiements et interagir avec les contrats déployés. Il fournit une interface en ligne de commande pour des tâches courantes, telles que le déploiement de contrats ou la gestion des clés de compte, qui peuvent être intégrées dans des pipelines de déploiement automatisés.

Tests et débogage

Le framework de test de Hardhat peut être utilisé pour écrire des tests unitaires et d’intégration pour les contrats intelligents. Ces tests peuvent s’exécuter sur un nœud zkSync local ou un réseau de test pour s’assurer que les contrats se comportent comme prévu. Le SDK zkSync facilite l’interaction avec les contrats pendant les tests, ce qui permet une couverture complète des tests.

En intégrant ces outils, les développeurs peuvent écrire, tester, déployer et gérer efficacement des contrats intelligents sur zkSync, en utilisant l’évolutivité et la rentabilité de zkRollups tout en conservant une expérience de développement familière. Cette intégration prend en charge un cycle de vie de développement solide, de la création du contrat initial au déploiement et à la maintenance continue.

Points forts

  • Écrire et déployer des smart contracts sur zkSync implique d'utiliser Solidity et Vyper, avec une compilation via des compilateurs zkSync personnalisés.
  • Le CLI et le SDK zkSync fournissent des outils complets pour la configuration du projet, la compilation des contrats, le déploiement et l'interaction.
  • L'intégration avec des outils de développement comme Hardhat, Foundry, Remix et Atlas améliore l'expérience des développeurs.
  • Le respect des meilleures pratiques garantit un développement de contrat intelligent sécurisé et efficace sur zkSync.
Exclusão de responsabilidade
* O investimento em criptomoedas envolve riscos significativos. Prossiga com cuidado. O curso não pretende ser um conselho de investimento.
* O curso é criado pelo autor que se juntou ao Gate Learn. Qualquer opinião partilhada pelo autor não representa o Gate Learn.