Уважаемые пользователи Голос!
Сайт доступен в режиме «чтение» до сентября 2020 года. Операции с токенами Golos, Cyber можно проводить, используя альтернативные клиенты или через эксплорер Cyberway. Подробности здесь: https://golos.io/@goloscore/operacii-s-tokenami-golos-cyber-1594822432061
С уважением, команда “Голос”
GOLOS
RU
EN
UA
rusldv
6 лет назад

Мое возвращение в голос после полугодового «отпуска»

Снова привет!


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

Сразу скажу, что использовал для этого Core Linux, редактор vim, а также библиотеку OpenSSL. Все ядро написано на С++11 с использованием строк обычного С.

Из каких частей состоит проект

  1. Сервер и клиент, использующей для «общения» придуманный мною протокол altnet, оба на родных юниксовых сокетах на языке С.
  2. База данных для хранения блоков и транзакций, использует стандартные файловые функции С++.
  3. Интерпритатор стэковый, лдя проверки транзакций, точнее скриптов в них использует OpenSSL.
  4. Консенсус - это такой пакет классов, регламентирующий выбор майнера для создания нового блока.

Собственно в этой последовательности я и буду излагать материал.

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

Who is protocol Altnet


Идея достаточно проста. Клиент отправляет серверу команду вида:
ИМЯФУНКЦИИ ПАРАМЕТР1 ПАРАМЕТР2 ПАРАМЕТРN
А сервер присылает ответ, либо также в текстовом формате, либо структурой данных, причем может делать это не только по отношению к клиентам, но и между другими серверами, как это делают ноды.

Заложенные функции рассмотрим вместе с кодом в следующей статье.

Что будет с транзакциями


Изучив особенности работы на С с библиотекой OpenSSL я выяснил, что сдесь все будет сводиться с алгоритмами касательно таких вещей, как BIGNUM (т.е большие числа, напоминающие строки) а также математике на эллиптической кривой (а именно умножению) тут существует несколько способов, в коде я использовал что-то среднее между сложным и развернутом.
Операции цифровой подписи/верефикации позволит создавать скрипт, который клиент записывает в транзакцию, прерд отправкой на сервер, если интерпретатор сможет выполнить этот скрипт, то транзакция считается подлинной.

Что за зверь получится


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

Пока буду писать статьи - буду думать как реализовать все задуманное.

7
1.294 GOLOS
На Golos с November 2016
Комментарии (6)
Сортировать по:
Сначала старые