Eine Blockchain kann individuell erstellt werden, bereits vor Start sollte aber entschieden werden, welche Programmiersprache dazu gewählt wird. Zu den beliebten Optionen gehören Python, JavaScript oder Solidity (eine Programmiersprache für Smart Contracts auf der Ethereum-Blockchain).
Hier ist ein Beispiel einer Python-basierten Blockchain:
import hashlib import datetime class Block: def __init__(self, index, timestamp, data, previous_hash): self.index = index self.timestamp = timestamp self.data = data self.previous_hash = previous_hash self.hash = self.calculate_hash() def calculate_hash(self): hash_string = str(self.index) + str(self.timestamp) + str(self.data) + str(self.previous_hash) return hashlib.sha256(hash_string.encode()).hexdigest() class Blockchain: def __init__(self): self.chain = [self.create_genesis_block()] def create_genesis_block(self): return Block(0, datetime.datetime.now(), "Genesis Block", "0") def get_latest_block(self): return self.chain[-1] def add_block(self, new_block): new_block.previous_hash = self.get_latest_block().hash new_block.hash = new_block.calculate_hash() self.chain.append(new_block) def is_chain_valid(self): for i in range(1, len(self.chain)): current_block = self.chain[i] previous_block = self.chain[i - 1] if current_block.hash != current_block.calculate_hash(): return False if current_block.previous_hash != previous_block.hash: return False return True # Beispiel für die Verwendung der Blockchain hnp_blockchain = Blockchain() hnp_blockchain.add_block(Block(1, datetime.datetime.now(), "Data 1", "")) hnp_blockchain.add_block(Block(2, datetime.datetime.now(), "Data 2", "")) hnp_blockchain.add_block(Block(3, datetime.datetime.now(), "Data 3", "")) # Überprüfen der Gültigkeit der Blockchain print("Ist die Blockchain gültig? " + str(hnp_blockchain.is_chain_valid())) # Manipulation eines Blocks hnp_blockchain.chain[1].data = "Manipulierter Dateninhalt" # Erneutes Überprüfen der Gültigkeit der Blockchain nach der Manipulation print("Ist die Blockchain gültig? " + str(hnp_blockchain.is_chain_valid()))
Dieser Code stellt eine einfache Blockchain-Implementierung dar, die Blöcke mit einem Index, Zeitstempel, Daten, vorherigem Hash und Ihrem Hash erstellt. Die Blockchain-Klasse enthält Methoden zum Erstellen eines Genesis-Blocks, zum Hinzufügen neuer Blöcke, zum Abrufen des neuesten Blocks und zum Validieren der Blockchain. Zu beachten ist, dass dies nur ein vereinfachtes Beispiel ist und nicht alle Aspekte und Sicherheitsmechanismen einer fertigen / echten Blockchain abdeckt.
↩ Zurück zur Blogübersicht