Концептуальная модель COOPOS¶
COOPOS — программный стек узла и инструментов, совместимый с архитектурой EOSIO (учётная модель, формат транзакций, WASM-контракты, плагины nodeos, консенсус делегированного типа). Ниже — опора для чтения остальной документации: как устроены данные, исполнение и сеть, без привязки к одному экрану приложения.
Цепь, состояние и история¶
Различают три связанных слоя:
- Журнал блоков — упорядоченная последовательность блоков от генезиса (или от снимка на light-узле). Каждый блок ссылается на предыдущий; содержит пакет принятых транзакций и заголовок с криптографическими привязками к состоянию.
- Состояние цепи (state) — текущий срез всех аккаунтов, разрешений, байткода контрактов, строк таблиц контрактов и служебных структур. Оно детерминированно получается повторным применением всех действий из журнала (или загрузкой снимка + догоном новых блоков).
- История в прикладном смысле — возможность эффективно читать прошлые действия и дельты таблиц. Для аналитики и восстановления событий поверх журнала блоков используют State History (SHiP) и смежные решения (см. Узлы сети и история, State History).
Узлы одной сети, следуя одним правилам протокола и одному генезису, сходятся к одинаковому состоянию на одной и той же высоте блока (при отсутствии форков, разрешённых консенсусом).
Аккаунт как единица модели¶
В EOSIO-цепях нет «адреса как хеша ключа» в стиле Bitcoin. Базовая сущность — именованный аккаунт (name: до 12 символов a–z, 1–5). У аккаунта есть:
- Разрешения (permissions) — иерархия полномочий и пороговые схемы (ключи, делегирование другим аккаунтам, задержки
wait); - RAM-квота — оплачиваемое хранение строк состояния, привязанных к аккаунту;
- опционально развёрнутый контракт (WASM + ABI).
Пользователь, организация, смарт-контракт и системный модуль — в терминах протокола это всё аккаунты. Подробнее: Аккаунты и разрешения, Ключи и подписи.
Действия и транзакции¶
Действие (action) — одно сообщение вида: получатель (account = аккаунт контракта-получателя), имя метода (name), список авторизаций (authorization: пары actor + permission) и двоичная полезная нагрузка (data), соответствующая ABI.
Транзакция — атомарная пачка из одного или нескольких действий: либо выполняются все, либо откатывается вся транзакция. Подписи покрывают упакованное тело транзакции; узел проверяет срок (expiration), привязку к недавнему блоку (TAPOS: ref_block_num / ref_block_prefix), лимиты ресурсов и соответствие ключей требуемым разрешениям, затем исполняет контракты. Подробнее: Действия и транзакции.
Цепочка внутренних вызовов (inline actions) строится контрактами; для них используется псевдо-разрешение eosio.code у аккаунта, от имени которого исполняется код.
Смарт-контракты и WASM¶
Логика, меняющая состояние под действиями, компилируется в WebAssembly и хранится на аккаунте контракта. Виртуальная машина даёт изолированное детерминированное исполнение с измерением CPU и учётом NET при включении транзакции в блок. Данные контракта — в таблицах (multi_index и т.п.) в RAM; схема полей и типов согласуется с ABI для сериализации аргументов действий. Практика таблиц и типов: Состояние и хранение данных.
Ресурсы сети¶
Пропускная способность (NET), вычисление (CPU) и память (RAM) — экономический и технический каркас нагрузки на цепь. Механизмы выделения и оплаты (стейкинг, powerup, политика сети) зависят от системных контрактов и параметров цепи; см. Ресурсы сети, регистрация и контракты.
Узлы и роли в эксплуатации¶
nodeos с набором плагинов может выступать как производитель блоков, как публичный API-узел, как узел с экспортом истории и т.д. Это не разные «виды блокчейна», а профили одного ПО. Типовые роли (делегат, seed, API, state/light) и синхронизация: Узлы сети и история. Справочник по установке и CLI: раздел Программы узла и страница Программы (инструменты COOPOS).
Консенсус и делегаты¶
Блоки предлагают избранные производители (в документации платформы — делегаты). Правила финализации и расписание слотов наследуются от модели EOSIO (кворум подписей, необратимость после достаточного числа подтверждений). См. Делегаты и консенсус.
Прикладной контур кооперативной экономики¶
Поверх этой базы строятся прикладные сценарии: кооперативные контракты, провайдеры, подпись транзакций сервисными ключами и т.д. Введение с акцентом на бизнес-смысл: Введение.
Карта разделов¶
| Тема | Где читать |
|---|---|
Имена аккаунтов, дерево разрешений, owner / active, inline |
Аккаунты и разрешения |
Алгоритмы подписи, форматы ключей, связь с authority |
Ключи и подписи |
| Action, transaction, валидация, кооперативный контур подписи | Действия и транзакции |
| Таблицы, типы полей, RAM | Состояние и хранение данных |
| P2P, API, SHiP, light/state | Узлы сети и история |
| nodeos, cleos, keosd, утилиты | Программы (инструменты COOPOS) |
| P2P, HTTP API, консенсус, сериализация | Сетевые слои и интерфейсы |