COOPENOMICS  v1
Кооперативная Экономика
Структура Apps::coop

Запись каталога: кооператив, зарегистрированный в каталоге. Подробнее...

#include <table_apps_coops.hpp>

Открытые члены

uint64_t primary_key () const
 
uint64_t by_subnet () const
 

Открытые атрибуты

name coopname
 
checksum256 chain_id
 
name subnet_label
 
public_key signing_key
 
bool active
 
time_point_sec registered_at
 
time_point_sec key_rotated_at
 

Подробное описание

Запись каталога: кооператив, зарегистрированный в каталоге.

Регистрация кооператива в каталоге — это часть процесса подключения к каталогу приложений на Восходе (вне scope текущего MVP). Шаги:

  1. Кооператив проходит onboarding в кабинете ВОСХОД.
  2. Кабинет генерирует/принимает выделенный subnet-signing-keypair. Приватная часть остаётся у DC-оркестратора кооператива.
  3. Кабинет вызывает regcoop(coopname, chain_id, subnet_label, signing_key) с публичной частью.

Поле signing_key — это отдельный ключ, не равный eosio::active-ключу аккаунта. Семантика:

  • Используется только off-chain в CA-auth для проверки подписи signed-request-ов от DC-оркестратора (заголовок X-Signature).
  • НЕ имеет on-chain прав (active остаётся отдельно).
  • Ротация — отдельным action setcoop(signing_key=new). Компрометация active не лопает signed-request-цепочку и наоборот.
  • Ранее выпущенные JWT (TTL 14 дней) остаются валидны после ротации; только новые signed-request'ы должны идти от нового приват-ключа.

chain_id (checksum256) — каноническая идентификация подсети, в которой зарегистрирован кооператив (как в memory subnet_identification в apps-catalog). subnet_label (ru/by/...) — human-label, удобный для UI, scope-фильтрации в releases, и логирования.

Контракт сам подпись не проверяет — он только хранит публичный ключ. Проверка ECDSA secp256k1 — на стороне CA-auth через RPC get_table_rows apps coops.

Методы

◆ by_subnet()

uint64_t Apps::coop::by_subnet ( ) const
inline

◆ primary_key()

uint64_t Apps::coop::primary_key ( ) const
inline

Данные класса

◆ active

bool Apps::coop::active

◆ chain_id

checksum256 Apps::coop::chain_id

◆ coopname

name Apps::coop::coopname

◆ key_rotated_at

time_point_sec Apps::coop::key_rotated_at

◆ registered_at

time_point_sec Apps::coop::registered_at

◆ signing_key

public_key Apps::coop::signing_key

◆ subnet_label

name Apps::coop::subnet_label

Объявления и описания членов структуры находятся в файле: