No sistema Ethereum, o estado é composto por objetos chamados "contas" (cada conta consiste em um endereço de 20 bytes) e transições de estado que transferem valor e informações entre duas contas. Uma conta Ethereum consiste em quatro partes: Um número aleatório que determina um contador que só pode ser processado uma vez por transação O saldo atual do Ethereum da conta O código contratual da conta, se houver Armazenamento da conta (vazio por padrão) Simplificando, toda conta Ethereum consiste em um par de chaves públicas e privadas. A chave pública pode ser entendida como o endereço da conta, que pode ser acessada por qualquer outra conta Uma chave privada pode ser entendida como uma senha criptografada, e esse par de chaves públicas e privadas juntas formam uma conta Ethereum identificada de forma única. Por exemplo, na primeira conta Ethereum eth.accounts[0] que estabelecemos na seção anterior, o endereço 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f é a chave pública, e a senha criptografada é a chave privada. Aumentar as contas Podemos inserir o comando personal.newAccount("123") para criar uma nova conta (note que 123 pode ser alterado para qualquer outra senha)
Quando a cadeia privada Ethereum está minerando, o ether minerado será depositado na primeira conta Ethereum, ou seja, eth.accounts[0], e eth.accounts[1] não terá ether por padrão. Neste momento, podemos usar o seguinte comando para verificar o saldo do Ethereum em eth.accounts[0].
Como converter Ethereum entre duas contas Como mencionado anteriormente, a chave pública (endereço) de cada conta é o núcleo de todas as operações da conta Ethereum, mas a string de endereços é muito longa, então usamos acc0/acc1 para representar contas[0] e [1], respectivamente, e definimos 0,01 ETH para serem transferidos
Neste momento, podemos usar eth.sendTransaction para transferir 0,01 ETH do acc0 para o acc1.
Um mecanismo de proteção Ethereum que bloqueia automaticamente contas de vez em quando, momento em que qualquer conversão de ETH entre contas será rejeitada, a menos que a conta seja desbloqueada. Neste momento, precisamos executar o personal.unlockAccount(acc0) e inserir a senha para desbloquear o account.
Neste momento, reexecutamos o comando eth.sendTransaction({from: acc0, para: acc1, value: amount}), e o resultado é o seguinte:
Podemos ver que, neste momento, acc1 tem um valor de 1000000000000000000000000000, em vez do 0 anterior. Mas por que o valor é tão alto quando obviamente queremos dar 0,01 moedas de éter? Na verdade, está correto, basta inserir o comando web3.fromWei(10000000000000000000, "ether") para saber.
A unidade básica do éter
A menor unidade de moeda de éter é Wei, que também é a unidade padrão da linha de comando, e então uma unidade para cada 1000, nessa ordem
kwei (1000 Wei) mwei (1000 kOu) gwei (1000 mwei) szabo (1000 gwei) Finney (1000 Szabo) éter (1000 finney) Simplificando, é 1 ETH = 1000000000000000000000000000 Wei (é por isso que transferimos 0,01 ETH na paralisação anterior, mas o resultado foi muito longo) Como converter entre ether e wei
|