Категория: Новости

Как создать свой блокчейн с нуля при помощи Go? Часть 1

В этом гайде вы узнаете:1. Как разработать Go проект на своем компьютере без опыта работы с Golang.2. Как создать и распределить блокчейн токены.3. Как разработать базу данных CLI на языке Golang с нуля.4. Как сделать свою базу данных неизменной при помощи криптографической хеш функции.5. Как мало прав есть у пользователей самых популярных приложений.Начнем с истории разработки распределенного реестра. Нашего главного героя зовут Андрей. Днем он владелец бара, а ночью – разработчик ПО. Он живет в небольшом городе на востоке Словакии под названием Ба́рдеёв.Андрей устал:1. Программировать старомодные PHP/Java/Javascript приложения.2. Забывать сколько клиенты должны за неоплаченные шоты.3. Тратить время на пересчет монет, купюр и выдачу сдачи.4. Выдавать пластиковые монетки, по которым посетители могут играть в настольный футбол и прочие игры.Андрей хотел бы:1. Иметь понятную и прозрачную финансовую историю активности бара и продаж, благодаря которой он бы мог легко соблюдать все регулирующие нормы.2. Превратить свой бар в автономную, децентрализованную и безопасную среду, которая бы приносила прибыль и ему и его клиентам.Его цель – написать простую программу, которая бы следила за балансами его клиентов в виртуальной форме. Андрей пишет:Он продолжает:Теперь, когда мы знаем цель Андрея, можем приступать к разбору.Для полного понимания рекомендуется 2+ года опыта программирования на Java/PHP/Javascript или на другом языке, похожем на Golang. Посоветуем также пройти официальный курс A Tour Of Go, чтобы ознакомиться с синтаксисом языка и основными концепциями (это займет около 20 минут).Андрей занимался базами данных SQL в 90х. Он знает как сделать и оптимизировать продвинутое решение. Для создания базы он выбрал простой но надежный файл JSON. Разберем процесс создания блокчейна пошагово.Андрей генерирует 1 миллион токенов. У каждого блокчейна есть генезис-блок, который распределяет первые токены ранним участникам. Начинается все просто – с обыкновенного genesis.json.Андрей создает файл ./database/genesis.json, в котором определяет что на его блокчейне будет 1 миллион токенов и все они будут принадлежать ему. Дальше он занимается ценообразованием – присуждает каждому токену стоимость в евро, долларах или другой валюте. 
Он также решает, что должен получать 100 токенов в день за поддержание базы данных.Наш герой готов принимать токены в своем баре. К сожалению, никто к нему не заходит, поэтому он заказывает три рюмки водки для себя и записывает эту сделку в бумажную базу данных:
Для того, чтобы постоянно не пересчитывать балансы клиентов, андрей создаёт файл ./database/state.json.База данных выглядит следующим образом:Чтобы привлечь новых клиентов Андрей объявляет об акции – он предоставит 100% бонус на покупку токенов TBB в следующие 24 часа. Маркетинговый ход сработал. Его первый клиент под ником BabaYaga купил TBB на €1000 и, чтобы отметить событие, потратил один токен на рюмку водки.Транзакция, записанная на бумаге:
База данных выглядит следующим образом:Андрей решил немного отдохнуть, поиграть в видеоигры и почистить свой жесткий диск от старых фотографий. К несчастью, он случайно нажал Enter когда вводил команду удаления в терминале sudo rm -rf /Все его файлы, в том числе Genesis.json и State.json его бара исчезли. Поскольку наш герой имеет опыт в разработке, он не растерялся. Хотя у него не было бэкапа, у него было кое-что получше – листик бумаги, на котором записаны все транзакции в его базе данных. Теперь ему нужно только заново провести все транзакции и база данных восстановится.Он решает улучшить свою базу данных MVP архитектурой, построенной на событиях. (Event-based architecture). Каждое действие а баре, вроде единичной покупки напитка, должно быть записано в базу данных блокчейна.Каждый клиент будет представлен в базе данных при помощи структуры Account.Каждая транзакция будет иметь четыре характеристики: откуда, куда, размер и данные. Генезисная база данных останется файлом JSON:Все транзакции, ранее записанные на куске бумаги, будут хранится в локальной текстовой базе данных tx.db:Ключевым компонентом базы данных, отвечающим за бизнес-логику будет структура State:Структура State будет знать балансы всех пользователей, а также адресата, отправителя, и сумму транзакций. State считывает начальные балансы пользователей с файла genesis.json.После этого изначальные балансы обновляются, заново проигрывая все события из базы данных tx.db.Компонент State отвечает за:Добавление транзакций в мемпул:Подтверждение транзакций:

Сохранение транзакций на диск:
Продолжение следует. В следующих частях мы рассмотрим процесс создания интерфейса командной строки, основные свойства хэш функции и как работает неизменность блокчейна на практике.Подписывайтесь на ForkNews в Telegram, чтобы быть в курсе новостей из мира криптовалют По материалам www.freecodecamp.org

Disqus Comments Loading...
Share
Опубликовано
Elena Frolova

Recent Posts

Биткоин: где купить? Обзор некоторых платформ для покупки криптовалюты

С ростом цен все больше россиян интересуются биткоином. Но всемирное увлечение этим криптоактивом также привело…

07.12.2023

Cryptonica – лучший информационный портал о криптовалюте

В наше время криптовалюты стали неотъемлемой частью мировой экономики и финансов. Они предоставляют уникальные возможности…

24.11.2023

Прогноз курса Ethereum: опасения регулирующих органов по поводу будущего ETH стремительно растет

Виталий Бутерин, основатель Ethereum, имеет тесные связи с Wanxiang Group, китайской компанией, зависящей от правительства…

13.11.2023

Обмен юсдт на российские рубли

Обмен юсдт (Tether TRC20 USDT) на российские рубли (RUB) на карты РФ - это процесс…

05.10.2023

Выбор интернет-казино с минимальным депозитом и невысокими ставками

Каждый посетитель интернет-казино жаждет получить крупный выигрыш с наименьшими рисками. Для такой игры лучше всего…

30.08.2023

Алгоритм обмена криптовалюты в обменнике на примере epichange.online

Появление криптовалюты произвело революцию в цифровых активах, позволив частным лицам безопасно и легко обмениваться ценностями…

31.07.2023

Заявление управляющего Банка Англии о Bitcoin и стейблкоинах

Bitcoin и другая криптовалюта всегда вызывала противоречивые мнения у разных участников финансового сектора. Не исключением…

13.07.2023

Какие преимущества клиентам дает онлайн-сервис по подбору кредитов?

Рынок финансовых услуг России стабильно развивается. Каждый день компании предлагают новые программы финансирования для потенциальных…

12.07.2023

Кэш-память L3 в процессоре, что это значит и как отражается на быстродействии ноутбука/компьютера?

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

10.07.2023

Риэлтор: отзывы о работе и особенности профессии

Для того чтобы стать успешным и востребованным риэлтором, нужно хорошо разбираться в объектах недвижимости и…

28.06.2023

Как технология блокчейн может повлиять на безработицу

По данным Организации Объединенных Наций, пандемия и связанная с ней нестабильная экономика приводят к росту…

23.06.2023

Оформить кредитную карту без отказа: критерии выбора продукта, обзор предложений

В последнее время банки активно предлагают различные программы финансирования граждан. Одним из удобных и технологичных…

19.06.2023

В чем особенность доверенного торгового счета

Доверенный торговый счет – это соглашение между трейдером и инвестором, в результате которого трейдер торгует…

06.06.2023

Рейтинг лучших ботов для торговли криптовалютой на бирже

Рейтинг лучших ботов для торговли криптовалютой на бирже может меняться со временем и зависит от…

23.05.2023

GRIN4: площадка для эффективного трейдинга

Криптовалюты уже давно стали отличным вариантом заработка. Волатильность рынка позволяет получать хороший доход. Поэтому трейдеры…

18.05.2023

Онлайн микрозаймы на карту: быстро, удобно и без лишних вопросов

В наше время деньги нужны всем и всегда. Но иногда бывают ситуации, когда они нужны…

17.04.2023

Что такое Aptos? Охота на миллиард пользователей

Aptos - это блокчейн L1, который стремится стать самым безопасным и масштабируемым блокчейном в истории.…

07.04.2023

Причины, по которым вам следует инвестировать в Ethereum

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

18.03.2023

Дефи Криптовалюта: Очередное Поколение Валютных Революций

Дефи криптовалюта - это новый вид валюты, которая появилась на рынке в последние годы. Она…

14.03.2023

Покупать ноутбуки-трансформер или нет: собрали все преимущества и недостатки

Ноутбуки 2-в-1, также известные как конвертируемые ноутбуки — эти устройства давно стали отдельным сегментом в…

27.02.2023

WhiteBIT залучає до купівлі NFT Brave Legion задля активізації зборів на ЗСУ та гуманітарку

Найбільша криптовалютна біржа Європи з українським корінням — WhiteBIT — створила спеціальні умови для залучення…

14.02.2023