Коллекции таблиц (документов) в MongoDB, используемых в контрактах приложения Голос - коллекции контракта golos.ctrl
Уважаемые пользователи!
Информацию о структуре таблиц в MongoDB вы можете найти в постах:
- Общее о структуре таблиц в MongoDB
- Коллекции таблиц (документов) в MongoDB, используемых в системных контрактах
- Коллекции таблиц (документов) в MongoDB, используемых в контрактах приложения Голос - коллекция контракта golos.charge
Мы продолжаем описывать базу данных. В настоящей публикации предоставляем вам коллекции контракта golos.ctrl.
В следующих постах будет рассмотрена коллекция таблиц (документов) в MongoDB, используемых в контрактах приложения Голос, выстроенная по следующей структуре:
- Коллекции контракта golos.publication;
- Коллекции контракта golos.vesting.
Коллекции контракта golos.ctrl
ctrlparams
Коллекция CTRLPARAMS содержит документы со значениями параметров, устанавливаемых вызовом операции setparams()
. При каждом вызове setparams()
в базе данных появляется запись — новый документ с установленными значениями параметров.
Пример документа:
"_id" : ObjectId(" ... "),
"id" : NumberDecimal("5075304557665714176"),
"token" : {
"code" : "GOLOS"
},
"multisig" : {
"name" : "gls.issuer"
},
"witnesses" : {
"max" : NumberDecimal("5")
},
"msig_perms" : {
"super_majority" : NumberDecimal("0"),
"majority" : NumberDecimal("0"),
"minority" : NumberDecimal("0")
},
"witness_votes" : {
"max" : NumberDecimal("30")
},
"update_auth_period" : {
"period" : NumberDecimal("300")
},
"_SERVICE_" : { ... }
Параметры
id
— идентификатор документа, созданный контрактомgolos.ctrl
;(object) token
— символ токена, состоящий из набора прописных букв;(object) multisig
— имя аккаунта контрактаgolos.ctrl
;(object) witnesses
— максимально допустимое количество делегатов, которое может принимать решение (подписывать транзакции) от имени сообщества;(object) msig_perms
— данные о количествах подписей (от начала списка делегатов), необходимых для получения разрешения на выполнение действий от имени делегатов приложения:super_majority
— количество подписей, необходимых для получения высокого уровня разрешения;majority
— количество подписей, необходимых для получения среднего уровня разрешения;minority
— количество подписей, необходимых для получения низкого уровня разрешения;
(object) witness_votes
— максимально допустимое количество делегатов, за которое может проголосовать пользователь приложения;(object) update_auth_period
— период обновления авторизации для аккаунта (в секундах). Повторная смена авторизации для аккаунта не выполняется, если с момента последнего обновления не прошло указанное количество секунд.
msigauths
Коллекция MSIGAUTHS содержит документы с перечнем делегатов, имеющих право на авторизацию от имени аккаунта контракта golos.ctrl
.
Пример документа:
"_id" : ObjectId(" ... "),
"id" : NumberDecimal("10816735270133563392"),
"witnesses" : [
"cip.5ecjnhnw",
"h4iirxxeeplq",
"p4qg2hlvzcrl",
"td.a1xeyhy42",
"w5ps13o.4.vl"
],
"last_update" : "2019-04-10T15:16:48.000",
"_SERVICE_" : { ... }
Параметры
id
— идентификатор документа, созданный контрактомgolos.ctrl
;(array) witnesses
— cписок делегатов, имеющих право на авторизацию от имени аккаунта контрактаgolos.ctrl
. Каждый элемент массива имеет типstring
— имя аккаунта делегата;last_update
— дата и время последнего обновления списка делегатов.
witness
Коллекция WITNESS содержит документы (таблицы) с данными о делегате приложения. Для каждого делегата создается отдельная таблица следующего вида:
"_id" : ObjectId(" ... "),
"name" : "garpblcluwml",
"url" : "",
"active" : true,
"total_weight" : NumberDecimal("156823873341170"),
"_SERVICE_" : { ... }
Параметры
name
— имя аккаунта делегата;url
— URL-адрес веб-сайта, на котором размещена информация о делегате;active
— активность делегата (true
- активный, false - неактивный);total_weight
— вес голоса делегата.
witnessvote
Коллекция WITNESSVOTE содержит документы (таблицы) с перечнем кандидатов в делегаты, за которых голосует пользователь. Для каждого голосующего пользователя создается отдельная таблица следующего вида:
"_id" : ObjectId(" ... "),
"voter" : "24amgkx3owhf",
"witnesses" : [
"uaamgu4wuv5p",
"rik2b..fgmst",
"c2z.zgesp44s",
. . .
"kao43flj.4ap"
],
"_SERVICE_" : { ... }
Параметры
voter
— имя аккаунта, голосующего за кандидатов в делегаты;(array) witnesses
— перечень кандидатов в делегаты, за которых голосуетvoter
. Каждый элемент массива имеет типstring
— имя аккаунта. Количество элементов не должно превышать значение параметраwitness_votes
из таблицы коллекцииctrlparams
.
Полное описание вы можете найти на гитхабе.
Cерия статей, раскрывающих идею и принципы функционирования блокчейна CyberWay и приложения Голос:
- Ответы на вопросы о CyberWay часть 4
- Ответы на вопросы о CyberWay. Часть 3
- Ответы на вопросы о CyberWay. Часть 2
- Ответы на вопросы о CyberWay. Часть 1
- Golos.io: Адаптация к блокчейну CyberWay
- Основные положения CyberWay
- CyberWay: предпосылки создания платформы. Основные отличия от EOS
- Разработка новой блокчейн-платформы CyberWay. Дорожная карта проекта
- Функционирование смарт-контрактов приложения Голос на платформе БЧ CyberWay
- Техническая реализация bandwidth на платформе CyberWay
- Testnet: Экспериментальная версия
- Кошелек golos_wallet для Bittrex на платформе CyberWay
- Общее о структуре таблиц в MongoDB
- Коллекции таблиц (документов) в MongoDB, используемых в системных контрактах
- Коллекции таблиц (документов) в MongoDB, используемых в контрактах приложения Голос - коллекция контракта golos.charge
Каналы коммуникации с 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. Заходите на страничку https://golos.io/~witnesses голосуйте за делегата Golos•Core!
Спасибо за внимание и хорошего дня!
С уважением,
Команда Golos•Core: @andreypf, @korpusenko, @maslenitsa, @muhazokotuha, @zxcat, @annaeq, @anazarov79, @kaynarov, @s-medvedev, @eugin, @dedbaraded, @jimak.