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

гольян

42
s-medvedev

гольян

Краткая информация
Рейтинг: 42
На Golos с 7/2018

Комментарии

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

1.109 GOLOS
0

@ropox Консенсусные данные - это минимальный набор данных, который нужен смарт-контракту для проверки того, могут ли быть приняты следующие действия пользователей или нет. Набор консенсусных данных очень сильно зависит от приложения и его логики. Если данный вопрос рассматривать применительно к размещению публикации, то автор и пермлинк являются консенсусными данными, а его содержимое таковым не является. При обработке запроса на голосование, смарт-контракту важно понимать, что указанный пост данного автора все еще открыт для голосования. Однако содержимое поста не оказывает влияние на принятие этого запроса.

Консенсусные данные хранятся в СУБД вне ноды и есть возможность их опрашивать напрямую.

Спасибо, что обратили внимание на опечатку. Правильно:
> "которые будут доставлены нодой блокчейна на внешний микросервис"

0.000 GOLOS
0

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

1.095 GOLOS
0

@ropox Генератор событий реализован в виде плагина. В его обязанности входит сбор всей необходимой информации и передача ее в брокер сообщенний, реализованный снаружи от блокчейна. Данная информация содержит список вызываемых действий в смарт-контрактах, сформированные блоки, а также указания, какие блоки стали irreversible. Дополнительно смарт-контракты имеют возможность добавить сообщения об изменениях своих внутренних данных.
Передача сообщений брокеру выполняется синхронно с обработкой блоков, приходящих из сети, поэтому клиенты будут получать полную информацию о просходящих событиях.
Такая архитектура позволяет реализовать сохранение сообщений снаружи блокчейна и решать эту задачу наиболее удобным образом. Насколько долго храняться сообщения в очереди зависит от выбранного брокера и его настроек. Мы реализовали интеграцию генератора событий с брокером сообщений nats.
Сообщения передаются генератором событий сразу же. Но так как клиент получает всю необходимую информацию о сгенерированных и подтвержденных блоках, он может построить состояние, соответствующее последнему сгенерированному блоку, или соответствующее irreversible блоку.

5.364 GOLOS
0