Ethereum sisteminde durum, "hesaplar" adı verilen nesnelerden oluşur (her hesap 20 baytlık bir adresten oluşur) ve iki hesap arasında değer ve bilgi aktaran durum geçişlerinden oluşur. Bir Ethereum hesabı dört bölümden oluşur: İşlem başına yalnızca bir kez işlenebilen bir sayaç belirleyen rastgele bir sayı Hesabın mevcut Ethereum bakiyesi Varsa hesabın sözleşme kodu Hesabın depolanması (varsayılan olarak boş) Kısacası, her Ethereum hesabı bir çift açık ve özel anahtardan oluşur. Açık anahtar, hesap adresi olarak anlaşılabilir ve başka herhangi bir hesap tarafından erişilebilen Özel anahtar, şifreli bir şifre olarak anlaşılabilir ve bu kamu ile özel anahtar çifti birlikte benzersiz bir Ethereum hesabı oluşturur. Örneğin, önceki bölümde belirlediğimiz ilk Ethereum hesabı eth.accounts[0]'da, adres 0xbcf5b841303bc08026ce2d3b8f83498ffe42c12f açık anahtar, şifreli şifre ise özel anahtardır. Hesapları artır yeni bir hesap oluşturmak için personal.newAccount("123") komutunu girebiliriz (123 başka bir şifreye değiştirilebilir)
Ethereum özel zinciri madencilik yaparken, madencilik yapılan ether ilk Ethereum hesabına, yani eth.accounts[0]'a yatırılır ve eth.accounts[1] varsayılan olarak ether içermez. Şu anda, eth.accounts[0]'daki Ethereum bakiyesini kontrol etmek için aşağıdaki komutu kullanabiliriz.
Ethereum'u iki hesap arasında nasıl dönüştürürsünüz? Daha önce belirtildiği gibi, her hesabın açık anahtarı (adresi) tüm Ethereum hesap işlemlerinin çekirdeğidir, ancak adres dizisi çok uzundur, bu yüzden hesapları sırasıyla temsil etmek için acc0/acc1 kullanıyoruz ve aktarılması için 0.01 ETH ayarlıyoruz
Şu anda, eth.sendTransaction kullanarak acc0'dan acc1'e 0.01 ETH aktarabiliriz.
Hesapları ara sıra otomatik olarak kilitleyen bir Ethereum koruma mekanizmasıdır; bu noktada hesaplar arasında herhangi bir ETH dönüşümü reddedilir, ancak hesap açılmazsa. Şu anda, acc0'ı açmak için personal.unlockAccount(acc0) dosyasını çalıştırıp şifreyi girmemiz gerekiyor.
Bu sırada, eth.sendTransaction({from: acc0, to: acc1, value: amount}) komutunu yeniden çalıştırıyoruz ve sonuç şu şekildedir:
Şu anda acc1'in değerinin önceki 0 yerine 1000000000000000000000000000000000000000 olduğunu görebiliyoruz. Ama neden değer bu kadar büyük, oysa açıkça 0.01 ether coin vermek istiyoruz? Aslında, doğru, bilmek için sadece web3.fromWei(100000000000000000000000000000, "ether") komutunu girmemiz yeterli.
Eter'in temel birimi
Ether madeni parasının en küçük birimi Wei'dir, bu aynı zamanda komut satırının varsayılan birimidir ve ardından her 1000 birim için bir birim olur, bu sırayla
kwei (1000 Wei) mwei (1000 KWei) Gwei (1000 MWEI) szabo (1000 gwei) Finney (1000 szabo) ether (1000 Finney) Basitçe söylemek gerekirse, 1 ETH = 1000000000000000000000000000 Wei (bu yüzden önceki durdurmada 0.01 ETH transfer etmiştik ama sonuç çok uzundu) Ether ile Wei arasında nasıl dönüştürülür
|