Сервисы

Криптотехнологии

Домой > Криптотехнологии >

Создаем блокчейн своими руками на Python

Создаем блокчейн своими руками на Python

01 февраля 2018, 17:43
Создаем блокчейн своими руками на Python

Блокчейн – это децентрализованная база данных, где все данные записываются в виде блоков, формируя цепочку. Всем известно подобное определение блочных цепей, но в данной статье мы хотим сделать гайд по тому, как создать блокчейн своими руками. Это позволит вам лучше понять саму технологию и, возможно, немного попрактиковаться в программировании.

Блокчейн своими руками: структура блока

Итак, писать блокчейн своими руками мы будем на Python. Для начала следует определиться, какими параметрами задается сам блок данных. Как правило, структура блока состоит из следующих компонентов:

  • Временная метка.
  • Сами данные.
  • Индекс (опционально).

Для пущей уверенности в собственном блокчейне мы будем использовать как временную метку, так и индекс. Кроме того, сами данные в блоке не подаются в исходном виде, они преображаются в хеш с помощью функции шифрования. Также хешируется еще и предыдущий блок. Получаем, что в состав последнего хеш-блока будут входить:

  • Временная метка.
  • Индекс.
  • Данные.
  • Хеш предыдущего блока.

В виде кода это будет выглядеть следующим образом:

Блокчейн своими руками: первый блок

Все должно с чего-то начинаться. Так и  блокчейн должен иметь первый блок. Но появляется проблема – в блоке должен содержаться хеш предыдущего блока, а откуда ему взяться, если мы говорим о первой ячейке цепи? Его необходимо вводить вручную, поэтому мы так и поступим. Первый блок будет иметь индекс 0, произвольные данные и произвольный хеш предыдущего блока.

Блокчейн своими руками: генерация новых блоков

На данном этапе мы уже имеем первый блок, но для нормального функционирования нашего простенького блокчейна нужно задать алгоритм построения последующих блоков. Он будет следующим:

  • Функция принимает предыдущий блок в качестве параметра.
  • Из полученных параметров формировать данные нового блока.
  • Возвращать новый блок с действительными данными.

Таким образом, хешируя в новом блоке информацию о старом нам удастся повысить безопасность цепи, ее проверяемость и целостность. Если этого не делать, то в блокчейне будет проще подменять данные «из прошлого», фальсифицируя настоящее.

Блокчейн своими руками: генерация блочной цепи

Итак, теперь мы имеем готовую структуру блока, первый блок и функцию, задающую алгоритм генерации новых блоков. Осталось самое малое – оформить генерацию самой цепи. Первый блок будет началом цепи, а далее она будет заполняться новыми блоками. Поскольку наш так называемый блокчейн своими руками является лишь учебным образцом, ограничим генерацию блоков количеством в 20 штук. Заполняться цепочка будет простым for-циклом:

Теперь запускаем файл нашего блокчейна и смотрим на результат.

Конечно, наш блокчейн уж очень далек от цепи биткоина, но в качестве наглядного образца для тех, кто только начинает осваивать данную технологию, вполне сгодиться. Чтобы вывести эту цепь на работающий уровень, придется ввести огромное количество дополнительных функций, например, для ограничения количества добавленных блоков на единицу времени, для отслеживания состояния цепи на множестве компьютеров и т.д.

Pythonблокчейн
Комментариев: 0

Предыдущая статья

Следующая статья

Оставить комментарий

Войти с помощью: