Социальный
Назначение смарт-контракта golos.social
Смарт-контракт golos.social
предоставляет пользователям следующие возможности:
создание и редактирование профилей (метаданных) пользователей;
заведение пин-списка, позволяющего его владельцу получать информацию о публикациях интересующих его пользователей;
заведение «черного» списка, позволяющего блокировать общение владельца данного списка с нежелательными по его мнению пользователями.
Терминология, используемая в описании смарт-контракта golos.social
Профиль пользователя — метаданные пользователя, хранящиеся в базе данных клиентского приложения в виде структуры, характеризующей пользователя. Профиль пользователя создается и редактируется самим пользователем. Смарт-контракт golos.social
не отвечает за сохранность метаданных пользователя, а только контролирует наличие права пользователя на изменение или удаление метаданных.
Пин-список пользователя — элемент базы данных, содержащий перечень имен аккаунтов, интересующих данного пользователя. Пин-список пользователя создается и редактируется самим пользователем. Пин-список пользователя может использоваться в клиентском приложении для создания подписок, в том числе информировать данного пользователя (подписчика) о появлении нового поста, имя автора которого содержится в его пин-списке.
«Черный» список пользователя — элемент базы данных, содержащий перечень имен аккаунтов, которых данный пользователь характеризует как нежелательных. «Черный» список пользователя создается и редактируется самим пользователем. Использование «черного» списка позволяет пользователю блокировать комментарии и голоса аккаунтов, имена которых содержатся в данном списке. Смарт-контракт golos.publication
проверяет отсутствие имени аккаунта в данном списке при выполнении операции createmssg
.
Операция-действие (англ. action) — отправка транзакции в смарт-контракт, вызванная внешним обращением объекта к данному смарт-контракту. В качестве объекта может выступать пользователь, другой смарт-контракт, а также отдельный программный компонент.
Операции-действия, поддерживаемые смарт-контрактом golos.social
Смарт-контракт golos.social
поддерживает следующие операции-действия: pin, unpin, block, unblock, updatemeta, deletemeta.
Тип accountmeta
Тип accountmeta
используется для описания профиля пользователя и представляет собой структуру следующего вида:
Тип accountmeta
используется в качестве параметра в операции-действии updatemeta
.
Таблица pinblock
Таблица pinblock
является элементом базы данных и содержит информацию о взаимоотношении одного пользователя к другому. Данные из таблицы используются для создания пин-списка и списка заблокированных пользователей.
Таблица pinblock
содержит следующие поля:
(name) _SERVICE_.scope
— имя аккаунта (первое имя из пары), который вносит имя интересующего его аккаунта в один из списков — пин-список или список заблокированных аккаунтов;(name) account
— имя аккаунта, которое было добавлено в один из списков — пин-список или список заблокированных аккаунтов;(bool) pinning
—true
означает, что имя аккаунта добавлено в пин-список;(bool) blocking
—true
означает, что имя аккаунта добавлено в список заблокированных аккаунтов.
Примечание:
Наличие
true
одновременно в поляхpinning
иblocking
недопустимо.Имя аккаунта удаляется из пин-списка и списка заблокированных аккаунтов, если поля
pinning
иblocking
содержат значениеfalse
.
pin
Операция-действие pin
используется для добавления аккаунтом в его пин-список имени другого аккаунта.
Операция-действие pin
имеет следующий вид:
Параметры:
pinner
— имя аккаунта, который добавляет в свой пин-список имя аккаунта, заданное в полеpinning
;pinning
— имя аккаунта, которое добавляется в пин-список.
Правами на запуск операции-действия pin
обладает аккаунт pinner
.
На операцию-действие pin
введены следующие ограничения:
добавление своего имени аккаунта в пин-список недопустимо, то есть поле
pinning
не должно содержать значение поляpinner
;добавление в пин-список уже имеющегося в нем имени аккаунта недопустимо;
добавление имени аккаунта в пин-список, при наличии его в списке заблокированных аккаунтом
pinner
, недопустимо.
unpin
Операция-действие unpin
используется для удаления аккаунтом из его пин-списка имени другого аккаунта.
Операция unpin
имеет следующий вид:
Параметры:
pinner
— имя аккаунта, который удаляет из своего пин-списка имя аккаунта, заданное в полеpinning
;pinning
— имя аккаунта, который удаляется из пин-списка.
Правами на запуск операции-действия pin
обладает аккаунт pinner
.
На операцию-действие unpin
введены следующие ограничения:
удаление своего имени аккаунта из пин-списка недопустимо, то есть поле
pinning
не должно содержать значение поляpinner
;удаление из пин-списка не имеющегося в нем имени аккаунта недопустимо.
block
Операция-действие block
используется для добавления аккаунтом в его «черный» список имени другого аккаунта.
Операция-действие block
имеет следующий вид:
Параметры:
blocker
— имя аккаунта, который добавляет в свой «черный» список имя аккаунта, заданное в полеblocking
;blocking
— имя аккаунта, которое добавляется в «черный» список.
Правами на запуск операции-действия block
обладает аккаунт blocker
.
На экшен-операцию block
введены следующие ограничения:
блокирование своего имени аккаунта недопустимо, то есть поле
blocking
не должно содержать значение поляblocker
;добавление в «черный» список уже имеющегося в нем имени аккаунта недопустимо.
unblock
Операция-действие unblock
используется для удаления аккаунтом из своего «черного» списка имени другого аккаунта.
Операция-действие unblock
имеет следующий вид:
Параметры:
blocker
— имя аккаунта, который удаляет из своего «черного» списка имя аккаунта, заданного в полеblocking
;blocking
— имя аккаунта, который удаляется из «черного» списка.
Правами на запуск операции-действия unblock
обладает аккаунт blocker
.
На экшен-операцию unblock
введены следующие ограничения:
удаление своего имени аккаунта из «черного» списка недопустимо, то есть поле
blocking
не должно содержать значение поляblocker
;удаление из «черного» списка не имеющегося в нем имени аккаунта недопустимо.
updatemeta
Операция-действие updatemeta
используется для заполнения, изменения или удаления значений полей профиля аккаунта.
Операция-действие updatemeta
имеет следующий вид:
Параметры:
account
— имя аккаунта, профиль которого редактируется;meta
— значение в виде структуры объявленияaccountmeta
.
Правами на запуск операции-действия updatemeta
обладает аккаунт, указанный в поле account
.
Операция-действие updatemeta
не выполняет каких-либо действий с базой данных, а только проверяет права пользователя, изменяющего свой профиль.
Изменение метаданных пользователей в базе данных реализуется в клиентском приложении.
deletemeta
Операция-действие deletemeta
используется для удаления профиля аккаунта. Операция-действие delelemeta
имеет следующий вид:
Параметр:
account
— имя аккаунта, профиль которого удаляется.
Операция-действие deletemeta
не выполняет каких-либо действий с базой данных, а только проверяет права пользователя, удаляющего свой профиль.
Удаление метаданных пользователя из базы данных реализуется в клиентском приложении.
Правами на запуск операции-действия deletemeta
обладает аккаунт, удаляющий свой профиль.
Last updated