CyberWay. Событийная модель. Часть 1


Уважаемые пользователи!

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

Чтобы лучше понять возможности (новизну) Событийной модели, в первой публикации мы описываем решения данной задачи в блокчейне Голос, а также приводим причины, побудившие к разработке и создание качественно нового решения в блокчейне CyberWay.

Полное описание Событийной модели вы можете найти на github.com.

Существующее решение в блокчейне Голос

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

Для того, чтобы пользователь получал актуальную информацию о голосованиях за пост, выплатах вознаграждений, трансферных операциях, для блокчейна Голос создана сервисная библиотека Призма. С помощью данной библиотеки реализован интерфейс между блокчейном и веб-сайтом приложения GolosIO. Пользователь, обращаясь к веб-сайту, получает необходимую информацию о событиях, происходящих в блокчейне (рис. 1).


Рис. 1 — Структурная схема обработки транзакций в блокчейне Голос


Условные обозначения, используемые на структурной схеме

  • Trx — транзакция;
  • ПУ — панель управления веб-сайта GolosIO, предоставляет интерфейс пользователю для формирования транзакций, содержит необходимые для этого клавиши и настройки;
  • БД — хранилище событий (база данных библиотеки Призма);
  • Блокчейн Golos:
    • Плагины — программные компоненты, используемые для обработки операций в транзакциях;
    • БД — внутреннее хранилище блокчейна;
  • Блок-лог — цепочка блоков с упакованными в них транзакциями;
  • Призма — сервисная библиотека, анализатор состояния блок-лога.

На схеме синим цветом выделено решение обработки событий, происходящих в блокчейне.

Библиотека Призма постоянно обращается в БД блокчейна для получения актуальных данных о результатах выполняемых операций. Призма также анализирует состояние блоков и информирует GolosIO о событиях, происходящих в цепочке блоков. Внутри GolosIO находится приложение, которое сохраняет в своей БД всю поступающую от Призмы информацию. Призма имеет настройки и может быть сконфигурирована для передачи на веб-сайт только интересующая пользователей информации (например, получать информацию только о трансферных операциях, только о вознаграждениях кураторов).

Недостатки решения обработки событий в блокчейне Голос

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

Сложность в реализации операции по закрытию поста

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

Соответственно, в блокчейне Голос решение задачи по определению времени закрытия поста основывается на воспроизведении цепочки блоков. По информации, полученной из транзакции открытия поста, восстанавливается ход событий, по которому и определяется время закрытия поста. Эта процедура требует значительных затрат ресурсов памяти и времени процессора.

Длительная процедура в определении времени закрытия поста усложняет логику расчета выплаты вознаграждений за пост. Основной расчет выплаты вознаграждений выполняется в плагинах блокчейна сразу после закрытия поста. Поскольку Призма не получает информацию о закрытии поста, она вынуждена постоянно обращаться за информацией в БД блокчейна, чтобы определить состояние поста. При этом, если у Призмы недостаточно данных, она вынуждена выполнять свой расчет выплаты вознаграждений, то есть дублировать его. Более того, логика Призмы реализована не на языке плагинов (С++), а на языке JavaScript. Результаты расчета Призмы попадают на веб-сайт GolosIO и они могут отличаться от результатов, полученных в плагинах, которые являются аутентичными (подлинными).

Выполнение операций по переводу средств между балансами пользователей

Эта операция требует постоянных обращений Призмы в БД блокчейна для получения актуальных данных о состоянии балансов пользователей.

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

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

Cерия статей, раскрывающих идею и принципы функционирования блокчейна CyberWay и приложения Голос:

Каналы коммуникации с Golos•Core

  • https://t.me/goloscoretc (решение технических вопросов, связанных с работой блокчейн, нод, api и др.)
  • https://t.me/joinchat/BLwf_A118xQ57nsM1Q4MPA (канал для вноса предложений от комьюнити, обсуждение перехода на кодовую базу EOS)
  • https://t.me/golos_tools (решение вопросов по различным интерфейсам и дополнительным инструментам, создаваемым Golos•Core)
  • https://t.me/goloscore_analytics (решение вопросов по работе экономики блокчейн, статистическим экономическим данным, аналитике данных)
  • https://t.me/goloscoretech (новостной канал, с актуальной информацией от Golos•Core)

Мы будем очень рады, если вы поддержите делегата @goloscore. Заходите на страничку /~witnesses голосуйте за делегата Golos•Core!
Спасибо за внимание и хорошего дня!

С уважением,

команда Golos•Core: @andreypf, @korpusenko, @maslenitsa, @muhazokotuha, @zxcat, @annaeq, @anazarov79, @kaynarov, @s-medvedev, @eugin, @dedbaraded, @jimak.


Comments 10


Заберу к себе!

Искренне ваш @fomka

15.05.2019 14:39
0

За 10 gbg готов прочесть ваш пост, за 20 оставить коммент из трех слов типа:
-"Молодцы", "Спасибо", "Ребята работают!", "А давайте попробуем!" и прочую чухню в ледином стиле.

Присылайте мне в мемо ссылку на пост и 30 gbg. Голос ио, Кибервей и (что там еще у вас никто не читает и на кого и на что всем голосятам пох) это тоже касается.

15.05.2019 14:46
0

@bammbuss, не очень смешно... но в тему.

15.05.2019 17:34
0

@ivprst
не пытаюсь смешить, а пытаюсь заработать. разово. мне не нужны делегирования китовых стеков.

наверняка ведь этим двум десяткам уже сильно немолодых и маститых авторов обидно, что никто не комментит их публикации уже третьи -четвертые по счету? наверное, они с прежними комментерами зажали проплаты?

одним словом, если этим авторам нужны мои просмотры и комменты, то прайс озвучен.

15.05.2019 17:47
0

@bammbuss, понятно. С удовольствием бы присоединился, но я боюсь, что МОЯ ЦЕНА их совсем не устроит...

16.05.2019 03:27
0

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

16.05.2019 08:14
0

@bammbuss а по-моему полезный пост для тех, кто интересуется. а в стиль мой ты вряд ли попадешь. ты слишком часто плачешь) а я нет)

16.05.2019 20:37
0
16.05.2019 21:09
0

@bammbuss милая картиночка)

16.05.2019 21:16
0