Skip to content

Ru Basic concept

Anatoly Piskunov edited this page Oct 6, 2019 · 2 revisions

Основные понятия

Блокчейн VIZ относится к семейству Graphene (блокчейн-технология написанная на C++, открытый код). Исходный код Graphene доступен во множестве вариаций, так как он форкался (копировался) и видоизменялся множество раз (например: BitShares, Steem, VIZ, служил основой для EOS).

Несмотря на общие элементы, в каждой системе есть достаточно много различий в объектах, структурах данных и внутренних механизмах, экономике. Graphene своего рода каркас, движок для блокчейн решений. Его структуру можно долго изучать, но для разработчиков приложений на том или ином блокчейне нет необходимости досконально знать как устроен обмен данных между нодами, как происходит синхронизация и хранение данных в памяти. Главное разобраться в основах.


Нода блокчейн системы

Программное обеспечение которое связывается с другими нодами сети, принимает и транслирует транзакции другим нодам, ведет учет и обработку блоков (подробнее в разделе Типы нод).

Аккаунты

В VIZ используется модель аккаунтов. Аккаунты входят в общее пространство имен, хранят в себе токены и публичные ключи доступа.

Ключи и типы доступа

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

Аккаунт в блокчейне VIZ содержит 3 типа доступа:

  • master (отвечает за право владения аккаунтом);
  • active (отвечает за управление активами аккаунта);
  • regular (отвечает за обычные операции);

Каждый тип доступа может содержать список доверенных аккаунтов, кто может подписать и выполнить операцию данного типа доступа от лица исходного аккаунта. Также каждый тип доступа может содержать один или несколько публичных ключей разного веса (для возможности управления аккаунтом через multisig, когда аккаунтом владеют несколько пользователей).

Обычно аккаунт содержит либо единый ключ для всех типов доступа, либо по одному ключу на каждый тип доступа. Аккаунт дополнительно содержит memo-ключ, который используют для кодирования сообщений между участниками сети.

Токены VIZ и доля сети SHARES

Токен VIZ является передаваемым (переносимым), он не участвует в управлении сети, но может быть переведен в долю сети (SHARES). Данную операцию часто называют стэкинг (staking). Аккаунт владеющий долей сети может принимать участие в управлении сетью.

Делегаты

Аккаунт может заявить о своем намерении быть делегатом. Делегат (witness) избирается участниками сети (через процедуру голосования) и участвует в очереди делегатов для подписания блоков.

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

Очередь делегатов состоит из 21 слота (11 мест зафиксированы за делегатами, набравшими наибольшее количество голосов, остальные 10 мест занимают делегаты в плавающей конкурирующей очереди согласно набранным голосам)

Транзакции

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

Блоки

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

Консенсус

VIZ использует консенсус Fair DPoS (Delegated Proof of Stake). Ноды хранят два состояния системы: необратимое и обратимое. Необратимость (irreversible) наступает тогда, когда в самой длинной цепочке блоков подтвердят свое участие в ней примерно 15 делегатов (75% от количества делегатов в очереди). После этого нода не может откатить более ранние транзакции, таким образом наступает финальность состояния сети (finality). В обычном состоянии необратимость наступает за 15 блоков (около 45 секунд). Поэтому все важные операции требующие проверки могут получить подтверждение только достигнув необратимости.

Плагины

Плагины расширяют возможности ноды, могут обрабатывать отдельные операции и управлять собственными структурами данных. Есть как обязательные плагины (отвечающие за соединение между узлами сети), так и необязатальные (например, история операций аккаунтов, подробнее в разделе Плагины и их API).

Clone this wiki locally