Dans le système Ethereum, l’état est composé d’objets appelés « comptes » (chaque compte est constitué d’une adresse de 20 octets) et de transitions d’état qui transfèrent de la valeur et des informations entre deux comptes. Un compte Ethereum se compose de quatre parties : Un nombre aléatoire qui détermine un compteur ne pouvant être traité qu’une seule fois par transaction Le solde actuel Ethereum du compte Le code du contrat du compte, s’il y en a Stockage du compte (vide par défaut) En termes simples, chaque compte Ethereum se compose d’une paire de clés publiques et privées. La clé publique peut être comprise comme l’adresse du compte, accessible par n’importe quel autre compte Une clé privée peut être comprise comme un mot de passe chiffré, et cette paire de clés publiques et privées forment ensemble un compte Ethereum identifié de manière unique. Par exemple, dans le premier compte Ethereum eth.accounts[0] que nous avons établi dans la section précédente, l’adresse 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f est la clé publique, et le mot de passe chiffré est la clé privée. Augmenter les comptes Nous pouvons entrer la commande personal.newAccount(« 123 ») pour créer un nouveau compte (notez que 123 peut être changé pour n’importe quel autre mot de passe)
Lorsque la chaîne privée Ethereum mine, l’ether miné sera déposé dans le premier compte Ethereum, c’est-à-dire eth.accounts[0], et eth.accounts[1] n’aura pas d’ether par défaut. À ce stade, nous pouvons utiliser la commande suivante pour vérifier le solde Ethereum dans eth.accounts[0].
Comment convertir Ethereum entre deux comptes Comme mentionné précédemment, la clé publique (adresse) de chaque compte est le cœur de toutes les opérations de compte Ethereum, mais la chaîne d’adresses est trop longue, donc nous utilisons acc0/acc1 pour représenter les comptes[0] et [1] respectivement, et fixons 0,01 ETH à transférer
À ce stade, nous pouvons utiliser eth.sendTransaction pour transférer 0,01 ETH d’acc0 à acc1.
Un mécanisme de protection Ethereum qui verrouille automatiquement les comptes de temps en temps, auquel cas toute conversion d’ETH entre comptes sera rejetée à moins que le compte ne soit débloqué. À ce moment-là, nous devons exécuter personal.unlockAccount(acc0) et entrer le mot de passe pour déverrouiller l’account.
À ce moment-là, nous réexécutons la commande eth.sendTransaction({from : acc0, à : acc1, value : amount}), et le résultat est le suivant :
On peut voir qu’à ce moment-là, acc1 a une valeur de 1000000000000000000000000000, au lieu du 0 précédent. Mais pourquoi la valeur est-elle si élevée alors que nous voulons évidemment offrir 0,01 ether coins ? En fait, c’est exact, il suffit d’entrer la commande web3.fromWei(10000000000000000000, « ether ») pour savoir.
L’unité de base de l’éther
La plus petite unité de pièce d’éther est Wei, qui est aussi l’unité par défaut de la ligne de commande, puis une unité pour chaque 1000, dans cet ordre
kwei (1000 Wei) mwei (1000 kUi) gwei (1000 mwei) Szabo (1000 Gwei) Finney (1000 Szabo) Ether (1000 finney) En termes simples, c’est 1 ETH = 10000000000000000000000000 Wei (c’est pourquoi nous avons transféré 0,01 ETH lors de l’arrêt précédent, mais le résultat était très long) Comment convertir entre l’éther et le wei
|