Nel sistema Ethereum, lo stato è composto da oggetti chiamati "account" (ogni account consiste in un indirizzo da 20 byte) e da transizioni di stato che trasferiscono valore e informazioni tra due account. Un account Ethereum è composto da quattro parti: Un numero casuale che determina un contatore che può essere elaborato solo una volta per transazione Il saldo attuale di Ethereum del conto Il codice contrattuale del conto, se ce n'è Archiviazione dell'account (vuota di default) In parole povere, ogni account Ethereum è composto da una coppia di chiavi pubbliche e private. La chiave pubblica può essere intesa come l'indirizzo dell'account, accessibile da qualsiasi altro account Una chiave privata può essere intesa come una password criptata, e questa coppia di chiavi pubbliche e private insieme formano un account Ethereum identificato in modo unico. Ad esempio, nel primo account Ethereum eth.accounts[0] che abbiamo stabilito nella sezione precedente, l'indirizzo 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f è la chiave pubblica, e la password criptata è la chiave privata. Aumenta i conti Possiamo inserire il comando personal.newAccount("123") per creare un nuovo account, (nota che 123 può essere cambiato con qualsiasi altra password)
Quando la catena privata Ethereum è in mining, l'ether estratto verrà depositato nel primo account Ethereum, cioè eth.accounts[0], e eth.accounts[1] non avrà ether di default. Al momento, possiamo usare il seguente comando per controllare il saldo di Ethereum in eth.accounts[0].
Come convertire Ethereum tra due account Come detto prima, la chiave pubblica (indirizzo) di ogni account è il nucleo di tutte le operazioni di account Ethereum, ma la stringa di indirizzi è troppo lunga, quindi usiamo acc0/acc1 per rappresentare rispettivamente i conti[0] e [1], e impostiamo 0,01 ETH da trasferire
Al momento, possiamo usare eth.sendTransaction per trasferire 0,01 ETH da acc0 a acc1.
Un meccanismo di protezione Ethereum che blocca automaticamente gli account ogni tanto, a quel punto qualsiasi conversione di ETH tra account verrà rifiutata a meno che l'account non venga sbloccato. Al momento, dobbiamo eseguire personal.unlockAccount(acc0) e inserire la password per sbloccare account.
In questo momento, rieseguemo il comando eth.sendTransaction({from: acc0, to: acc1, value: amount}), e il risultato è il seguente:
Possiamo vedere che in questo momento, acc1 ha un valore di 100000000000000000000000000, invece dello 0 precedente. Ma perché il valore è così alto quando ovviamente vogliamo dare monete ether 0,01? In realtà, è corretto, basta inserire il comando web3.fromWei(100000000000000000000, "ether") per saperlo.
L'unità base dell'Etere
La più piccola unità di moneta Ether è Wei, che è anche l'unità predefinita della riga di comando, e poi un'unità ogni 1000, in quell'ordine
kwei (1000 Wei) mwei (1000 KWei) gwei (1000 mwei) szabo (1000 gwei) Finney (1000 Szabo) Etere (1000 finney) In parole povere, è 1 ETH = 10000000000000000000000000 Wei (ecco perché abbiamo trasferito 0,01 ETH nella precedente interruzione, ma il risultato è stato molto lungo) Come convertire tra ether e wei
|