W systemie Ethereum stan składa się z obiektów zwanych "kontami" (każde konto ma adres 20-bajtowy) oraz przejść stanów, które przekazują wartość i informacje między dwoma kontami. Konto Ethereum składa się z czterech części: Losowa liczba określająca licznik, który można przetworzyć tylko raz na transakcję Aktualne saldo konta w Ethereum Kod umowy konta, jeśli taki jest Przechowywanie konta (domyślnie puste) Mówiąc prosto, każde konto Ethereum składa się z pary kluczy publicznych i prywatnych. Klucz publiczny można rozumieć jako adres konta, do którego dostęp ma dowolne inne konto Klucz prywatny można rozumieć jako zaszyfrowane hasło, a ta para klucza publicznego i prywatnego razem tworzy unikalnie zidentyfikowane konto Ethereum. Na przykład w pierwszym koncie Ethereum eth.accounts[0], które ustaliliśmy w poprzedniej sekcji, adres 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f to klucz publiczny, a zaszyfrowane hasło to klucz prywatny. Zwiększ konta Możemy wpisać polecenie personal.newAccount("123"), aby utworzyć nowe konto (uwaga, 123 można zmienić na dowolne inne hasło)
Gdy prywatny łańcuch Ethereum eksploatuje, wydobyty ether jest wpłacany na pierwsze konto Ethereum, czyli eth.accounts[0], a eth.accounts[1] domyślnie nie będzie miało etheru. Obecnie możemy użyć następującego polecenia, aby sprawdzić saldo Ethereum w eth.accounts[0].
Jak przeprowadzić konwersję Ethereum między dwoma kontami Jak wspomniano wcześniej, klucz publiczny (adres) każdego konta jest rdzeniem wszystkich operacji kont Ethereum, ale ciąg adresów jest zbyt długi, dlatego używamy acc0/acc1 do reprezentowania kont[0] i [1] odpowiednio, a do transferu ustawiamy 0,01 ETH
Obecnie możemy użyć eth.sendTransaction, aby przenieść 0,01 ETH z acc0 do acc1.
Mechanizm ochrony Ethereum, który automatycznie blokuje konta od czasu do czasu, po czym każda konwersja ETH między kontami zostanie odrzucona, chyba że konto zostanie odblokowane. W tym momencie musimy wykonać personal.unlockAccount(acc0) i wpisać hasło, aby odblokować acc0.
W tym momencie ponownie wykonujemy polecenie eth.sendTransaction({from: acc0, do: acc1, value: amount}), a wynik jest następujący:
Widzimy, że obecnie acc1 ma wartość 10000000000000000000000000000, zamiast poprzedniego 0. Ale dlaczego wartość jest tak duża, skoro oczywiście chcemy dać monety 0,01 etera? W rzeczywistości to prawda, wystarczy wpisać polecenie web3.fromWei(1000000000000000000000, "ether"), aby wiedzieć.
Podstawowa jednostka Eteru
Najmniejszą jednostką monety eterowej jest Wei, która jest również domyślną jednostką wiersza poleceń, a następnie jedna jednostka na każde 1000, w tej kolejności
kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 MWei) szabo (1000 gwei) Finney (1000 szabo) Ether (1000 Finney) Mówiąc prosto, to 1 ETH = 10000000000000000000000000 Wei (dlatego przelaliśmy 0,01 ETH w poprzednim zatrzymaniu, ale wynik był bardzo długi) Jak przechodzić między eterem a wei
|