Учебники

Python Blockchain — Создание блока Genesis

Мы предполагаем, что создатель TPCoins изначально выдает 500 TPCoins известному клиенту Dinesh . Для этого он сначала создает экземпляр Dinesh —

Dinesh = Client()

Затем мы создаем транзакцию генезиса и отправляем 500 TPCoins на публичный адрес Динеша.

t0 = Transaction (
   "Genesis",
   Dinesh.identity,
   500.0
)

Теперь мы создаем экземпляр класса Block и называем его block0 .

block0 = Block()

Мы инициализируем переменные экземпляра previous_block_hash и Nonce как None , поскольку это самая первая транзакция, которая будет сохранена в нашей цепочке блоков.

block0.previous_block_hash = None
Nonce = None

Далее мы добавим вышеупомянутую транзакцию t0 в список Verified_transactions, поддерживаемый в блоке —

block0.verified_transactions.append (t0)

На этом этапе блок полностью инициализирован и готов к добавлению в нашу цепочку блоков. Мы будем создавать блокчейн для этой цели. Перед тем, как добавить блок в цепочку блоков, мы хешируем блок и сохраняем его значение в глобальной переменной last_block_hash, которую мы объявили ранее. Это значение будет использовано следующим майнером в его блоке.

Мы используем следующие две строки кода для хеширования блока и сохранения значения дайджеста.

digest = hash (block0)
last_block_hash = digest

Наконец, мы создаем блокчейн, как мы увидим в следующей главе.