nt
Emekli
- Katılım
- 21 Nisan 2023
- Mesajlar
- 1,215
Bitkoyun madenciliği, bir tür dijital işlemlerle ilgilenme ve yeni Bitkoyun kazanma sürecidir.
Madenciler,ağında gerçekleşen işlemleri toplar ve bu işlemleri bir blok adı verilen veri yapıları içinde düzenlerler.
Ardından, bu bloğu diğer madencilere karşı bir matematiksel problemi çözerek kanıtlarlar.
Proof of Work (PoW) genellikle kripto para birimleri ve blok zincir teknolojilerinde kullanılan bir konsensüs mekanizmasıdır. Bu mekanizma, matematiksel olarak zor bir problemin çözülmesini gerektirir ve bu çözümün bir kanıtını sunmak için madencilik yapılır.
İşte basit bir PoW örneği Python kodu:
Çalıştırdığınızda
Cüzdan:
Gerçek bir blok zinciri uygulaması değildir
Madenciler,ağında gerçekleşen işlemleri toplar ve bu işlemleri bir blok adı verilen veri yapıları içinde düzenlerler.
Ardından, bu bloğu diğer madencilere karşı bir matematiksel problemi çözerek kanıtlarlar.
Proof of Work (PoW) genellikle kripto para birimleri ve blok zincir teknolojilerinde kullanılan bir konsensüs mekanizmasıdır. Bu mekanizma, matematiksel olarak zor bir problemin çözülmesini gerektirir ve bu çözümün bir kanıtını sunmak için madencilik yapılır.
İşte basit bir PoW örneği Python kodu:
Python:
import hashlib
def proof_of_work(veri, zorluk_seviyesi):
nonce = 0
while True:
kombinasyon = f'{veri}{nonce}'.encode('utf-8')
hash_degeri = hashlib.sha256(kombinasyon).hexdigest()
if hash_degeri.startswith('0' * zorluk_seviyesi):
return nonce, hash_degeri
nonce += 1
if __name__ == "__main__":
veri = "Proof of Work örneği. mekatronik.org/forum"
zorluk_seviyesi = 4
nonce, hash_degeri = proof_of_work(veri, zorluk_seviyesi)
print(f"Nonce: {nonce}")
print(f"Hash Değeri: {hash_degeri}")
Çalıştırdığınızda
Çıktısı:
Nonce: 1783
Hash Değeri: 0000c3b112b5db59ce55b2da03d0c3e09a65392f84c0a4d82f86c5931b988038
belirli bir zorluk seviyesine (başında 4 sıfır) ulaşan bir Proof of Work çözümü bulmaya çalışan bir madenci simüle edilmektedir. nonce değeri ve hash_degeri çıktı olarak gösterilir. nonce değeri, matematiksel problemin çözümü için kullanılan bir parametredir, ve hash_degeri ise çözümün SHA-256 hash değerini temsil eder. Bu örnekte, başında 4 sıfır olan bir hash değeri bulunmuştur.
Pratikte, sırası ile aşağıdaki adımlar takip edilir:
Yukarıdaki örnekte, nonce ve hash_degeri değerlerini elde ettik. Bu değerler, yeni bir bloğun içindeki bir alan olan "Nonce" olarak eklenir.
Blok içine, geçerli bir işlem seti eklenir. Bu işlemler, ağdaki diğer kullanıcıların yaptığı Bitkoyun işlemlerini içerir.
Blok içindeki işlemlerden bir Merkle Tree oluşturulur ve bu ağacın kökü, "Merkle Root" olarak adlandırılır.
Blokun oluşturulma zamanı, bir zaman damgası ile işaretlenir.
Blok zincirinin devamlılığını sağlamak için önceki bloğun hash değeri eklenir.
Tüm bu bilgileri içeren bloğu, Proof of Work çözümü ile birleştirip, bloğun hash değerini oluşturarak bloğu imzalar.
Blok, ağına yayınlanır ve diğer düğümler tarafından doğrulanır.
Madenci, yeni oluşturulan blok için ödül olarak belirli bir miktarda yeni Bitkoyun ve işlem ücretlerini alır.
Pratikte, sırası ile aşağıdaki adımlar takip edilir:
Yukarıdaki örnekte, nonce ve hash_degeri değerlerini elde ettik. Bu değerler, yeni bir bloğun içindeki bir alan olan "Nonce" olarak eklenir.
Blok içine, geçerli bir işlem seti eklenir. Bu işlemler, ağdaki diğer kullanıcıların yaptığı Bitkoyun işlemlerini içerir.
Blok içindeki işlemlerden bir Merkle Tree oluşturulur ve bu ağacın kökü, "Merkle Root" olarak adlandırılır.
Blokun oluşturulma zamanı, bir zaman damgası ile işaretlenir.
Blok zincirinin devamlılığını sağlamak için önceki bloğun hash değeri eklenir.
Tüm bu bilgileri içeren bloğu, Proof of Work çözümü ile birleştirip, bloğun hash değerini oluşturarak bloğu imzalar.
Blok, ağına yayınlanır ve diğer düğümler tarafından doğrulanır.
Madenci, yeni oluşturulan blok için ödül olarak belirli bir miktarda yeni Bitkoyun ve işlem ücretlerini alır.
Cüzdan:
Python:
import os
import hashlib
import binascii
def generate_key_pair():
private_key = os.urandom(32)
private_key_hex = binascii.hexlify(private_key).decode('utf-8')
public_key = hashlib.sha256(private_key).hexdigest()
return private_key_hex, public_key
if __name__ == "__main__":
private_key, public_key = generate_key_pair()
print("Yeni Cüzdan Oluşturuldu:")
print(f"Özel Anahtar: {private_key}")
print(f"Genel Anahtar: {public_key}")
Gerçek bir blok zinciri uygulaması değildir
Son düzenleme: