Ethereum Private Network - Créez votre propre Ethereum Blockchain!



Dans ce didacticiel Ethereum Private Network, vous apprendrez comment créer votre propre Ethereum Blockchain et comment effectuer une transaction entre deux comptes.

Dans le précédent Tutoriel Truffle Ethereum , vous avez découvert Truffle Suite et développé un Ethereum DApp. Pour développer une application Ethereum complexe, vous voudrez l'exécuter sur un réseau privé pour voir comment cela fonctionne avant de la déployer. Ainsi, dans ce didacticiel Ethereum Private Network, vous apprendrez à créer un Réseau Ethereum privé et comment effectuer une transaction entre deux comptes.

Intéressé par le développement Ethereum? Découvrez le live .





Tutoriel de réseau privé Ethereum

Voici les sujets que je couvrirai dans ce tutoriel:

Qu'est-ce que le réseau privé Ethereum?

Un réseau privé Ethereum est une Blockchain entièrement privée qui est isolée du réseau Ethereum principal. Ethereum Private Network est principalement créé par des organisations pour restreindre les autorisations de lecture de la Blockchain. Seuls les nœuds avec les bonnes autorisations pourront accéder à cette Blockchain. Les nœuds de ce réseau ne sont pas connectés aux nœuds principaux du réseau et leur portée est limitée uniquement à cette Blockchain privée.



Tutoriel sur le réseau privé Ethernet privé et public - Edureka

Pourquoi le réseau privé Ethereum est-il utilisé?

Le réseau privé Ethereum est utilisé par les organisations pour stocker des données privées qui ne devraient pas être visibles par des personnes extérieures à leur organisation. Le réseau privé Ethereum est également utilisé pour tester et expérimenter la Blockchain si quelqu'un ne souhaite pas utiliser les réseaux de test publics.

Caractéristiques du réseau privé Ethereum

Comme mentionné dans la section précédente, Ethereum Private Network est utilisé à des fins de test. Mais pourquoi quelqu'un prendrait-il la peine de créer un nouveau réseau alors qu'il existe déjà des réseaux de test publics disponibles? Eh bien, Ethereum Private Network a son propre ensemble de fonctionnalités, comme indiqué ci-dessous:



  • Il agit comme une base de données distribuée
  • La blockchain du réseau privé Ethereum peut contenir des données privées (car le réseau n'est pas public)
  • L'accès peut être basé sur l'autorisation
  • Faire des transactions peut être gratuit
  • Les comptes peuvent être alloués avec des étherspar nous-mêmes, ce qui ne nécessite même pas l'achat d'éthers virtuels

Passons maintenant à la partie pratique de ce didacticiel Ethereum Private Network.

Installer Ethereum sur Ubuntu

Pour créer un réseau privé Ethereum, nous devons d'abord installer Ethereum dans notre système. Dans cette section du didacticiel du réseau privé Ethereum, vous apprendrez comment installer Ethereum sur Ubuntu.

Pour installer Ethereum, exécutez les commandes suivantes dans un terminal:

$ sudo apt-get install software-properties-common $ sudo add-apt-repository -y ppa: ethereum / ethereum $ sudo apt-get update $ sudo apt-get install ethereum

Terminé! Cela installera Ethereum sur votre système.

Commençons par la création du réseau privé.

Démo: Créer un réseau privé Ethereum et effectuer une transaction

Dans ce tutoriel de réseau privé Ethereum, nous enverrons des éthersd'un compte à l'autre et donc, nous avons besoin de comptes. Voyons maintenant comment créer des comptes pour notre Blockchain.

Création de comptes pour le réseau privé Ethereum

Avant de créer de nouveaux comptes, créons un nouveau répertoire pour notre lieu de travail. Reportez-vous aux commandes ci-dessous pour ce faire:

$ mkdir private-ethereum $ cd privé-ethereum

Pour effectuer une transaction, nous avons besoin d'au moins deux comptes: un destinataire et un expéditeur.

Pour créer deux comptes, exécutez la commande suivante deux fois:

$ geth --datadir ./datadir compte nouveau

Entrer le phrase secrète pour chaque compte lorsque demandé. N'oubliez pas cette phrase secrète!

Une fois ces commandes exécutées avec succès, deux comptes seront créés et l'adresse du compte sera affichée à l'écran.

Enregistrez ces adresses quelque part, car nous les utiliserons davantage.

Création d'un fichier Genesis

Un fichier Genesis contient les propriétés qui définissent la Blockchain. Un fichier Genesis est le point de départ de la Blockchain et il est donc obligatoire de créer le fichier Genesis pour créer une Blockchain. Maintenant, créons la Genèsefichier.

Commencez par créer un fichier nommé genesis.json

différence entre le remplacement et la surcharge
$ nano genesis.json

Et maintenant, copiez et collez le code suivant dans ce fichier:

{'config': {'chainId': 2019, 'homesteadBlock': 0, 'eip155Block': 0, 'eip158Block': 0, 'byzantiumBlock': 0}, 'difficulté': '400', 'gasLimit': ' 2000000 ',' alloc ': {' 82c440bba462220c9b54600e584373014706c177 ': {' balance ':' 100000000000000000000000 '},' 9db5b590fdecc10cdb04b85a3503e94e61b207ca ': {' balance ':' 120000000000}

Remarque: Dans le code ci-dessus, remplacez l'adresse sous allouer section avec l'adresse des comptes que vous avez créés à l'étape précédente.

Enregistrez-le et quittez.

Permettez-moi de vous expliquer le contenu du fichier Genesis en bref:

chainId - C'est le numéro d'identification de la chaîne qui est utilisé pour distinguer les Blockchains
homesteadBlock, eip155Block, eip158Block, byzantiumBlock - ces propriétés sont liées à la fourche de chaîne et au versionnage. Nous n'en avons pas besoin pour notre tutoriel, alors définissons-les sur 0.
difficulté - Ce nombre décide de la difficulté de miner les blocs. Pour les réseaux privés, il est bon de définir un nombre inférieur car cela vous permet d'extraire rapidement des blocs, ce qui entraîne des transactions rapides.
gasLimit - Ce nombre correspond à la quantité totale de gaz pouvant être utilisée dans chaque bloc. Nous ne voulons pas que notre réseau atteigne la limite, c'est pourquoi nous l'avons fixé à un niveau élevé.
allouer - Cette partie permet d'allouer des ethers à des comptes déjà créés.

Le fichier Genesis est prêt. Il est maintenant temps de démarrer la Blockchain.

Répertoire de données d'instanciation

Avant de démarrer la Blockchain, nous devons instancier le répertoire de données. Le répertoire de données est le répertoire où sont stockées les données liées à la Blockchain. Pour instancier le répertoire de données, exécutez la commande suivante:

$ geth --datadir ./myDataDir init ./genesis.json

En cas d'instanciation réussie, vous devriez voir la sortie suivante:

Avec le répertoire de données instancié, nous pouvons maintenant démarrer la Blockchain.

Démarrage de la blockchain privée Ethereum

Pour démarrer la Blockchain, exécutez la commande suivante:

$ geth --datadir ./myDataDir --networkid 1114 console 2 >> Eth.log

Terminé! Votre blockchain Ethereum privée est opérationnelle.

Dans la commande ci-dessus, nous envoyons tous les journaux dans un fichier séparé appelé Eth.log . Geth créera automatiquement un nouveau fichier s'il n'est pas trouvé.

La sortie de ce code devrait ressembler à ceci:

Maintenant, nous sommes entrés dans le geth console où nous pouvons exécuter des commandes pour notre Blockchain.

Lecture des journaux

Dans la section précédente, j'ai mentionné que nous stockons les journaux dans un autre fichier. Dans cette section, je vais vous dire comment lire les journaux de ce fichier.

Nous lirons les journaux depuis un terminal séparé, alors ouvrons d'abord un nouveau terminal. Premier,passer au privé-ethereum répertoire, puis exécutez la commande suivante pour lire les journaux:

$ tail -f Eth.log

Vous pouvez maintenant voir les journaux dans le terminal. Ces journaux sont mis à jour dynamiquement chaque fois qu'il y a une activité dans la Blockchain.

Importer des comptes sur un réseau privé

Vous vous souvenez peut-être que nous avons créé deux comptes pour effectuer des transactions. Mais nous n'avons pas ajouté ces comptes à notre réseau. Donc, dans cette section du didacticiel Ethereum Private Network, je vais vous dire comment importer les comptes.

Lorsque nous créons un compte, tous les détails du compte sont stockés dans un UTC fichier dans le répertoire mentionné lors de la création du compte (chemin: ./datadir/keystore ). Pour importer les comptes, nous devons copier ces fichiers et les coller dans le keystore répertoire sous le répertoire de données(chemin: ./myDataDir/keystore )

C'est tout! Les comptes sont importés. C'est simple, n'est-ce pas? Pour vérifier l'importation, nous exécuterons la commande suivante dans le geth console.

> eth.accounts

Cela affichera une liste de tous les comptes disponibles.

Pour vérifier le solde de ces comptes, nous utiliserons la commande suivante:

> web3.fromWei (eth.getBalance (), 'éther')

Nous sommes prêts avec tout le nécessaire pour effectuer une transaction. Pourquoi attendre? Faisons le!

Faire une transaction

Dans ce tutoriel sur le réseau privé Ethereum, nous enverrons des éthersd'un compte à un autre.

La syntaxe pour envoyer des ethers est la suivante:

> eth.sendTransaction ({de: 'adresse', à: 'adresse', valeur: web3.toWei (montant, 'ether')})

Nous enverrons 1000 ethers du compte 1 au compte 2 en utilisant la commande suivante:

> eth.sendTransaction ({de: eth.accounts [0], à: eth.accounts [1], valeur: web3.toWei (1000, 'ether')})

Cela n'a pas fonctionné? Ne t'inquiète pas. Cela n'a pas fonctionné pour moi aussi. En effet, le compte est verrouillé par défaut et n'autorise pas les transactions.

Donc, tout d'abord, nous devons déverrouiller le compte de l'expéditeur. Vous vous souvenez de la phrase secrète que vous avez utilisée lors de la création du compte? Eh bien, vous devez, car vous devrez l'utiliser pour déverrouiller le compte. Nous déverrouillerons le compte avec la commande suivante:

personal.unlockAccount (eth.accounts [0], '')

Maintenant, nous allons envoyer des éthersavec succès:

> eth.sendTransaction ({de: eth.accounts [0], à: eth.accounts [1], valeur: web3.toWei (1000, 'ether')})

Cela devrait renvoyer un ID de transaction.

Terminé! Vous avez effectué une transaction avec succès!

Pour vérifier la transaction, vérifions le solde des deux comptes.

> web3.fromWei (eth.getBalance ('0x82c440bba462220c9b54600e584373014706c177'), 'éther')
> web3.fromWei (eth.getBalance ('0x9db5b590fdecc10cdb04b85a3503e94e61b207ca'), 'éther')

Yay! On peut voir que 1000 éthersont été envoyés d'un compte à un autre!

Toutes nos félicitations! Vous avez créé un réseau privé Ethereum et effectué une transaction. J'espère que ce tutoriel sur le réseau privé Ethereum a été informatif et vous a aidé à comprendre le réseau privé Ethereum. Maintenant, allez-y et essayez d'expérimenter avec le réseau privé nouvellement créé.

Vous avez une question pour nous? Veuillez le publier sur et nous reviendrons vers vous.

Si vous souhaitez apprendre la blockchain et faire carrière dans les technologies de la blockchain, consultez notre qui vient avec une formation en direct animée par un instructeur et une expérience de projet réelle. Cette formation vous aidera à comprendre ce qu'est la Blockchain de manière exhaustive et vous aidera à maîtriser le sujet.