Bu makalenin İngilizce orijinalini buradan da okuyabilirsiniz? Biz elimizden geldiğince Türkçe’ye çevirmeye çalıştık.
Bu makale, Ethereum'da blok boyutunun
belirlenmesinde hesapların(accounts), işlemlerin(transactions), gazın(gas) ve
madencilerin(miners) oynadığı rolün temel mekanizmasını açıklamak için hazırlanmıştır. Düzeltmeler ile ilgili önerilerinizi memnuniyetle
değerlendirebiliriz.
Hesap nedir?
EOA(Externally owned accounts) vs Sözleşme
hesapları
Ethereum'da iki tür hesap vardır
• Externally Owned Accounts: Harici olarak Sahip Olunan Hesaplar
•
Sözleşme Hesapları
1_) Harici olarak sahip olunan hesaplar (EAO):
Harici olarak kontrol edilen bir hesap:
• Bir ether hesabına sahiptir,
• Alma gönderme yapabilir (ether aktarımı yapabilir veya sözleşme kodunu
tetikleyebilir),
• Özel anahtarlar(private keys) tarafından kontrol edilir,
•
Ilişkili bir kodu yoktur.
2_) Sözleşme(Contrat) hesapları:
Bir sözleşme:
• Bir ether hesabına(balance),
• Ilişkili bir koda sahiptir.
• Sözleşme kodunun yürütülmesi, diğer sözleşmelerden alınan işlemler veya
mesajlar (çağrılar) tarafından tetiklenir.
•
Sözleşme yürtüldüğünde - rastgele karmaşık
Turing Complete operasyonları gerçekleştirir- kendi kalıcı depolama birimini
idare eder, yani kendi kalıcı durumuna sahip olabilir ve diğer sözleşmeleri
çağırabilir.
Ethereum blok zincirindeki tüm işlemler,
hesaplardan yapılan işlemlerle harekete geçirilir. Bir sözleşme hesabı bir işlem çağrısı aldığı
her sefer, kendi kodunu, işlemin bir parçası olarak gönderilen girdi parametreleryle ve talimat verilen şekilde yürütür. Sözleşme kodu Ethereum Sanal Makinesi
(EVM) tarafından, ağdaki her düğümde, yeni blokların doğrulanması amacıyla
yürütülür.
İşlem ve Mesaj nedir?
İşlemler(Transactions):
"İşlem" terimi, Ethereum'da, harici
olarak sahip olunan bir hesaptan blokchain üzerindeki başka bir hesaba
gönderilecek bir mesajı saklayan imzalı veri paketini belirtmek için
kullanılır.
İşlemler şunları içerir:
• Mesajın alıcısı,
• Göndereni tanımlayan ve mesajı blockchain yoluyla alıcıya göndermek
niyetini kanıtlayan, bir imza,
• VALUE alanı:Gönderenden alıcıya aktarılacak wei miktarı,
• Bir sözleşmeye gönderilen mesajı içerebilecek isteğe bağlı bir veri
alanı,
• Işlem yürütmesine izin verilen hesaplama adımlarının maksimum sayısını
temsil eden bir GASLIMIT değeri,
•
Gönderenin gaz için ödemek
istediği ücreti temsil eden bir GASPRICE değeri. Bir gaz birimi, bir atomik komutun, yani bir hesaplama
aşamasının yürütülmesine karşılık gelir.
Mesajlar:
Sözleşmelerin diğer sözleşmelere
"mesaj" gönderme yeteneği vardır. Mesajlar serileştirilmemiş ve
sadece Ethereum yürütme ortamında var olan sanal nesnelerdir. Fonksiyon çağrısı
olarak düşünülebilirler.
Bir mesajda şunlar bulunur:
• Mesajın göndereni (örtülü),
• Mesajın alıcısı,
• VALUE alanı:İletinin yanında sözleşme adresine aktarılacak miktar,
• Isteğe bağlı bir veri alanı, sözleşmenin gerçek girdi verileri
•
GASLIMIT
değeri: tetiklediği kod yürütme işleminin maksimum
gas miktarını sınırlayan bir GASLIMIT değeri olabilir.
Esasen, bir mesaj, bir işlem gibidir. Ancak
mesaj harici bir hesap tarafından değil,
bir sözleşme tarafından üretilir. Bir sözleşme, çalışırken CALL veya DELEGATECALL komutlarını yürüttüğünde bir
mesaj üretilir. Mesajlara bazen
"dahili işlem" adı da verilir. Bir işlem gibi, bir mesaj da alıcıya
gönderildiğinde alıcı hesabın kodunu çalıştırır. Böylece sözleşmeler, harici
olarak sahip olunan hesapların yapabileceği şekilde diğer sözleşmelerle de
ilişkilere sahip olabilir. Çoğu zaman insanlar, bir mesaja atıfta
bulunduklarında da işlem terimini kullanır; bu nedenle, bu terimin, topluluk
uzlaşması yoluyla kullanılmamasıyla ortadan kaldırılması mümkündür.
Gaz nedir?
Ethereum, Ethereum Sanal Makinesi (EVM) adı
verilen blok zincirinde bir yürütme ortamı oluşturur. Ağa katılan her düğüm, blok doğrulama
protokolünün bir parçası olarak EVM'yi çalıştırır. Doğrulanmakta olan blokta
listelenen işlemlerin üzerinde geçer ve işlemin tetiklediği şekilde kodu EVM içinde çalıştırırlar. Ağdaki her düğüm
aynı hesaplamaları yapar ve aynı değerleri depolar. Sözleşmeyle yapılan işlemlerin bütün
düğümler boyunca çoğaltılıp tekrarlanması, doğal olarak onları pahalı yapar. Bu
da genelde zincir dışında kolaylıkla yapılabilecek hesaplamaların blockchain
içinde yapılmamasına teşvik eder. Yapılan her işlem için, gaz birimi olarak ifade edilen belirli bir
maliyet vardır. Bir sözleşmenin kullanabileceği her işlem ile ilgili bir gaz
değeri vardır. Mesela, burada
operasyon kodu başına eski gaz maliyetleri listesi (opcode) verilmiştir
.
Gaz ve işlem maliyetleri:
Her işlem için bir gaz limiti ( bazen startGas denir
) ve gaz başına ödemeyi kabul ettiği bir ücret vardır. Madenciler işlemi
kabul etmeyi ve ücreti alıp-almamayı seçebilirler. Aslında, bugün tüm işlemler
madenciler tarafından bir şekilde yapılıyorlar, ancak bir kullanıcının
göndermeyi seçtiği işlem ücreti miktarı, işlemin kadar ne kadar süreceğini
etkiliyor. Orijinal mesaj ve tetiklenebilecek alt mesajlar da dahil olmak
üzere, işlem tarafından ortaya çıkarılan hesaplama aşamaları tarafından
kullanılan toplam gaz miktarı, gaz limitinden düşük veya bu gaz limitine eşitse,
işlem yürütülüyor. Eğer toplam tüketilecek gaz, belirtilen gaz sınırını aşarsa,
işlemler hala geçerli sayılır ve ücret hala madenci tarafından alınarak tüm değişiklikler geri alınır. Blokchain, bir işlem başlatıldığını ancak
ancak yeterli miktarda gaz sağlanamadığı için işlemlerin geri alındığını
gösterir. İşlem yürütülürken kullanılmayan tüm fazla gaz işlemi gönderene,
Ether olarak geri ödenir. Bu nedenle gaz maliyeti tahminleri sadece yaklaşık
olduğundan, birçok kullanıcı, işlemlerinin kabul edildiğini garanti etmek için
fazla miktarda gaz ödemektedir, çünkü fazladan gaz size iade edilir.
İşlem
maliyetlerini tahmin etme:
Bir işlemin toplam ether maliyeti 2 faktöre
dayanır:
•
gasUsed : işlem tarafından tüketilen toplam gaz
•
gasPrice : işlemde belirtilen bir gaz biriminin fiyatı (ether cinsinden)
Toplam maliyet =
gasUsed * gasPrice
gasUsed(Kullanılan Gaz):
EVM'deki
her operasyonunun, ne kadar gaz tükettiği belirlenmiştir. GasUsed, gerçekleştirilen
tüm işlemler için tüm kullanılan gazın toplamıdır.
GasUsed'i tahmin etmek için, kullanılabilen
ancak bazı uyarılara sahip bir tahmini Gas API'si vardır.
Bir kullanıcı bir işlem için istediği gaz
ücretini 0 da dahil olmak belirtebilir.
Fakat, Ethereum için, varsayılan gaz ücreti 0.05E12 wei'dir. Madenciler
gelirlerini optimize etmek istediklerinden, onları daha düşük veya sıfır olan bir gasPrice belirten
bir işlemi kabul etmeye ikna etmek zor olacaktır.
Örnek işlem maliyeti:
Bu
örneği MyEtherWallet ekibinin izni ile ödünç alıyorum. Gaz ile ilgili iyi yazılmış kılavuzlarını ziyaret edebilirsiniz . Ayrıca
ether miktarlarını alt birime dönüştürmenize izin veren
mükemmel bir yardımcı program sayfasına da sahipler.
Gas limitini bir
araba için gerekli litre / galon / gaz birimi miktarı gibi düşünebilirsiniz. Gaz fiyatını ise bu litre / galon / gaz birimi için birim
başına ücret olarak düşünebilirsiniz.
Mesela bir araba için, galon(birim) başına
$2.50 (fiyat) veya Ethereum için, gaz(birim) başına 20 GWEI (fiyat). 10 galonluk deponuzu doldurmak için litresi 2,50 dolardan 25 dolar harcarsınız. Benzer
şekilde 21000 gazlık bir işlem için,gaz başına 20 GWEI'den toplam 0,00042 ETH
harcarsınız(1 ether=10e9 gwei). Bu nedenle toplam TX ücreti 0.00042 Ether
olacaktır.
Gönderiler genellikle ~ 50000 gaz ila ~ 100000
gaz arasında tutar, bu nedenle toplam TX ücreti 0,001 ETH - 0,002 ETH'
arasındadır.
"Blok gaz limiti" nedir?
Blok gaz limiti, bir bloğa kaç işlemin
sığabileceğini belirlemek için bir bloğun izin verdiği maksimum gaz miktarıdır.
Örneğin, her işlemin 10, 20, 30, 40 ve 50 gaz limitine sahip olduğu 5 işlem
yaptık diyelim. Blok gaz limiti 100 ise, ilk dört işlem bloğa sığabilir.
Madenciler hangi işlemlerin bir bloğa dahil edileceğine karar verirler. Farklı bir madenci bloğun son 2 işlemini (50
+ 40) dahil etmeyi deneyebilir ve sadece ilk işlemi dahil etmek için yeterli
alanı kalır(10). Mevcut blok gaz
limitinden daha fazla gazı kullanan bir işlemi dahil etmeye çalışırsanız, bu
işlem şebeke tarafından reddedilecek ve
Ethereum istemcisi "İşlem blok gaz sınırını aşıyor" mesajı
verecektir. Bunun için
verilen örnek, Ethereum StackExchange "Ethers" yazısından
alınabilir .
Bu
yazının yazıldığı sıralarda blok gaz limiti etstats.net'e göre 4.712.357 gazdır.Yani her biri 21000 işlem gaz limitine sahip yaklaşık 224 işlem, 1
bloğa(ortalama 15-20 saniyede bir üretilmektedir) sığabilir. Protokol,
madencinin blok gaz limitini her iki yönde de 1/1024 oranında (% 0.0976)
ayarlamasına izin verir .
Blok gaz limitine kim karar verir?
Blok gaz limitinin ne olduğuna ağdaki
madenciler karar verirler. Ayarlanabilir protokol blokundan gaz limitinden ayrı olarak, çoğu istemci
için 4.712.388 minimum blok gaz sınırı, varsayılan bir madencilik stratejisidir.
Madenciler bunu değiştirmeyi seçebilir, ancak birçoğu varsayılanı kullanmayı
tercih eder.
Blok gaz limiti nasıl değişir?
Ethereum'daki Madenciler, ethminer vb. geth
veya Parity Ethereum istemci düğümüne bağlanan bir madencilik programı
kullanmaktadır. Geth ve Parity'in madencilerin değiştirebileceği seçenekleri
vardır. Geth'in
madencilik için komut satırı seçenekleri burada ve Parity'nin
seçenekleri buradadır.
Ethereum ağı "DoS" nedir?
Son zamanlarda Ethereum ağının yavaşlaması,
tıkanması ya da kullanılamaz hale gelmesiyle ilgili birçok şikayet gelmektdir.
Bu yavaşlamayı Ethereum ağı "DoS" olarak tanımlayabiliriz. Ethereum
ağında bir hizmet reddi (DoS) olayı, sürekli dolu bloklar ve ağda bekleyen birçok
işlem olduğunda ortaya çıkar. Burada madencilerin iliştirilen işlem ücretine
dayalı işlemleri yürütmeyi seçtiklerini hatırlayalım. DDoS olayları kötü amaçlı olabilir veya olmayabilir.
Kötü Niyetli DoS
Geçtiğimiz sonbaharda, Ethereum, bir işlem
spami saldırısı olarak adlandırılan bir kişi veya grup tarafından saldırıya
uğradı. Saldırı, bu blog yazısında açıklanmıştır. Saldırgan, akıllı sözleşmelerdeki hesaplanması zor ancak
eklenmesi kolay fonksiyonları art arda işlenmesini isteyen bir DoS saldırısı gerçekleştirdi.Saldırı sırasında madencilerin blok gaz
limitini 1,5 milyona , ardından 2
milyona düşürmeleri
istendi. Ağlara yapılan saldırılar sırasında madencilere blok gaz limitini
düşürme talebinin bulunduğu başka durumlar da olabilir.
Kötü Niyetli Olmayan DoS
Ağda çok
fazla bekleyen işlem olduğu zaman, bir işlemin işlemesi alışılmadık bir şekilde
uzun sürer. Son zamanlarda, token
dağıtım olaylarının popülerliği ve yaygınlığı (ilk para teklifleri
(ICO'lar) veya token satışları), ağın işlemlerle yedeklenmesine neden oldu. Infura'da olayın , teknik
ayrıntılarıyla ilgili bir yazı var.
Bloklar dolduğunda bile blok gaz sınırı neden
değişmiyor?
Birincil Sebep:
Madenciler, uyarlanabilir gaz sınırı özelliğini kullanmıyor.
Ethereum protokolünde, madencilerin gaz
limitini seçebilecekleri bir mekanizma vardır ve bu nedenle kapasite, hard fork
ayarlamaya gerek kalmadan artırılabilir. Başlangıçta, bu mekanizma, madencilerin en az
4,7 milyon gaz sınırında olacak bir strateji ile birleştirildi, ancak bu miktar
kullanılan son gazın (1024 bloğun üssel hareketli ortalaması) ortalama gazının
150%'sini hedef alacaktı.Bu mekanizma artan talebe paralel olarak anti-spam
amaçlı tavanı bırakmadan kapasitenin organik olarak artmasına izin verir.Yukarıdaki "Kötü Niyetli DoS"
bölümünde anlatıldığı gibi, geçmişte, madencilerin, düzeltmeler geliştirilene
kadar saldırıları engellemeye yardım etmek için blok gaz sınırını varsayılan
olmayan ayarlara getirmesi için ayarlarını değiştirmeleri önerildi. Sorun, bazı
madencilik havuzlarının saldırıları yatıştırdıktan sonra bile ayarları asla
değiştirmemesiydi. Yaklaşık bir ay önce, madencilere
gaz limitini ve gaz fiyat ayarlarını, adaptif bir gaz sınırına değiştirmeleri
istendi. Çünkü son ICOsatışları hızla blokları dolduruyor ve
blockchain işlemlerinde tıkanıklığa neden oluyordu. ETH Gaz Istasyonu , madencilik
havuzlarının ne tür gaz limitleri için oy kullanacaklarını
araştıran insanlar için mükemmel bir kaynaktır.
Madencilerin bunu düzeltmek için ne yapmaları
gerekiyor?
Madenciler adaptif gaz limitlerini yeniden
etkinleştirmek için Geth veya Parite istemcisi ayarlarını ayarlayabilirler. Not: Aşağıdaki değerler bu Reddit yazısından
alınmıştır ve bu Reddit
yayınında açıklandığı gibi aslında daha yüksek ayarlanabilir.
--gasprice: 4000000000
--targetgaslimit: 4712388
Açıklama
--targetgaslimit: Çıkarılacak bloklar için yapay hedef gaz limitidir. (varsayılan:
"4712388")
--gasprice: Bir işlem madenciliği için kabul
minimum gaz fiyatı. (varsayılan: "20000000000").
Not: gasprice wei birimiyle listelenmiştir.
Parite:
Önerilen ayar
--gas floor target
4712388
--gas-cap 9000000
--gasprice 4000000000
Açıklama
-gas floor target: Yeni bir bloğu kapatırken hedeflenecek blok başına gaz miktarı
(varsayılan: 4700000).
--gas-cap: İşlem
hacmine bağlı olarak blok başına gaz limitini ne kadar yükselttiğimizin üst
sınırı (varsayılan: 6283184).
--gasprice :Madencilik için kabul edilmek üzere bir işlem için ödenmesi gereken GAS başına
minimum Wei miktarı.
Follow Bitcoin and crypto news. daily cryptocurrency trends and news
YanıtlaSilVisit Here :
YanıtlaSilEthereum
Your Post is very useful, I am truly happy to post my note on this blog. It helped me with ocean of awareness on Ethereum. So I really consider you will do much better in the future.
YanıtlaSilNice post! Live Active ICO 2018That is an extremely nice blog that I will definitively come back to more times this season! ICO List 2018 Thanks a lot for the informative post. Active ICO 2018
YanıtlaSilhttps://www.ethereumpro.net/exchange-ethereum-to-paypal.php
YanıtlaSilThe Ethereum has denominated currency ether, are convertible in the form of real currency like the euro or any other local currency. Exchange of Ethereum to paypal euro account there is a need for an exchanger. Many websites are testing this service, but Ethereumpro.net is the easiest way to convert ether into euros and get payments from the PayPal account. Paypal is an online financial service that works in the transfer of money from one place to another. This is an international service that secures transactions and money as well.
Exchange ethereum to paypal instantly
YanıtlaSilethereumpro.net best website to exchange your ethereum to paypal and other currencies.there are many websites are working but this is the
best website.highly trusted site and have thousands of satisfied customers
https://www.ethereumpro.net/
Best website with 5 star feedback and 100% trust flow for exchanging ethereum for USD with paypal account. Easiest way to exchange with this site. Just visit now. You will be happy to see this site.
YanıtlaSilEthereum for USD with Paypal
Codeninja.pk is web development company in lahore,We offer an entire bouquet of web application development services
YanıtlaSil
YanıtlaSilOur Expert Swimming pool contractors works with a client to design a pool and then arranges for the installation of the pool.
This contractor orders the materials and hires and supervises the subcontractors that actually install the pool.
Slots Casinos - Mapyro
YanıtlaSilTop Slot Games and Casinos 정읍 출장안마 in Wazuzu, 전주 출장샵 Wazuzu, Wazuzu, 광주 출장안마 Wazuzu, 군산 출장마사지 Wazuzu, Wazuzu, Wazuzu. 광명 출장샵