Реализовать механизм блокчейна для простого приложения.
Реализация механизма блокчейна для простого приложенияЗадание: Разработать базовую структуру блокчейна, которая позволит вести непрерывную цепочку данных с помощью хэширования. import hashlib import json from time import time class Blockchain: def __init__(self): self.chain = [] self.pending_transactions = [] self.new_block(previous_hash="The Times 03/Jan/2009 Chancellor on brink of second bailout for banks", proof=100) def new_block(self, proof, previous_hash=None): block = { 'index': len(self.chain) + 1, 'timestamp': time(), 'transactions': self.pending_transactions, 'proof': proof, 'previous_hash': previous_hash or self.hash(self.chain[-1]), } self.pending_transactions = [] self.chain.append(block) return block def new_transaction(self, sender, recipient, amount): self.pending_transactions.append({ 'sender': sender, 'recipient': recipient, 'amount': amount, }) return self.last_block['index'] + 1 @property def last_block(self): return self.chain[-1] @staticmethod def hash(block): string_object = json.dumps(block, sort_keys=True) block_string = string_object.encode() raw_hash = hashlib.sha256(block_string) hex_hash = raw_hash.hexdigest() return hex_hash # Пример использования blockchain = Blockchain() t1 = blockchain.new_transaction("Satoshi", "Mike", '5 BTC') t2 = blockchain.new_transaction("Mike", "Satoshi", '1 BTC') blockchain.new_block(12345) print("Blockchain:", blockchain.chain) Результат выполнения кодаБлокчейн успешно создан и инициализирован с начальным блоком. Транзакции были добавлены и зарегистрированы в новом блоке блокчейна. В этом примере мы создали простой блокчейн, который начинается с генезис-блока и позволяет добавлять транзакции и блоки. Это основа для более сложных систем блокчейна, которые могут включать более сложные механизмы валидации и консенсуса. | |
| |
Просмотров: 100 | |
Всего комментариев: 0 | |