feat(contracts): setfinalizer в eosio.system — поддержка Savanna #131

Open
claude wants to merge 2 commits from savanna into dev
Owner

Что

Порт action setfinalizer из upstream eosio.bios (reference-contracts) в наш eosio.system: валидация BLS-ключей финализаторов (PoP через bls_pop_verify), вызов host-функции set_finalizers.

Роль в переходе на Savanna

Это bootstrap этапа 1: на текущем (временном) single-producer состоянии сети политику финализаторов задаёт оператор напрямую — этого достаточно, чтобы активировать Savanna и работать на instant finality.

Этап 2 (отдельное проектирование): выборная машинерия финализаторов и производителей под кооперативную модель голосования (1 пайщик = 1 голос). Upstream-вариант regfinkey/actfinkey/delfinkey/switchtosvnn рассчитан на top-21 по stake-весу и нашей модели не соответствует — переносить его как есть нельзя, нужна своя схема выборов. setfinalizer при этом остаётся низкоуровневым примитивом, который выборная машинерия будет вызывать.

Проверено

  • Собрано CDT savanna 4.3.0 (образ dicoop/blockchain:latest = coopos 6.0.0-rc1); setfinalizer, finalizer_authority, finalizer_policy присутствуют в ABI.
  • До активации протокол-фичи SAVANNA поведение цепи не меняется — деплой безопасен.

Не входит (этап 2)

Проектирование выборов финализаторов/производителей в кооперативной среде, активация фичи в теснете, операционная процедура перехода.

## Что Порт action `setfinalizer` из upstream eosio.bios (reference-contracts) в наш `eosio.system`: валидация BLS-ключей финализаторов (PoP через `bls_pop_verify`), вызов host-функции `set_finalizers`. ## Роль в переходе на Savanna Это **bootstrap этапа 1**: на текущем (временном) single-producer состоянии сети политику финализаторов задаёт оператор напрямую — этого достаточно, чтобы активировать Savanna и работать на instant finality. **Этап 2 (отдельное проектирование):** выборная машинерия финализаторов и производителей под кооперативную модель голосования (1 пайщик = 1 голос). Upstream-вариант `regfinkey`/`actfinkey`/`delfinkey`/`switchtosvnn` рассчитан на top-21 по stake-весу и нашей модели не соответствует — переносить его как есть нельзя, нужна своя схема выборов. `setfinalizer` при этом остаётся низкоуровневым примитивом, который выборная машинерия будет вызывать. ## Проверено - Собрано CDT savanna 4.3.0 (образ `dicoop/blockchain:latest` = coopos 6.0.0-rc1); `setfinalizer`, `finalizer_authority`, `finalizer_policy` присутствуют в ABI. - До активации протокол-фичи SAVANNA поведение цепи не меняется — деплой безопасен. ## Не входит (этап 2) Проектирование выборов финализаторов/производителей в кооперативной среде, активация фичи в теснете, операционная процедура перехода.
claude added 1 commit 2026-06-11 13:10:13 +00:00
feat(contracts): setfinalizer в eosio.system — политика финализаторов Savanna
Typecheck / desktop (pull_request) Has been cancelled
Typecheck / controller (pull_request) Has been cancelled
e2de5957ac
Порт self-contained action из upstream eosio.bios (reference-contracts):
проверка BLS-ключей и proof of possession, вызов host-функции
set_finalizers. Машинерия regfinkey/switchtosvnn голосующего DPoS
не переносится — цепь single-producer, политику задаёт оператор.

Требует CDT >= 4.1 (crypto_bls_ext); собрано CDT savanna 4.3.0 из
образа dicoop/blockchain:latest, setfinalizer присутствует в ABI.
До активации протокол-фичи SAVANNA поведение цепи не меняется.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
claude added 1 commit 2026-06-11 13:21:48 +00:00
docs(contracts): setfinalizer — bootstrap этапа 1, не конечная модель
Typecheck / desktop (pull_request) Successful in 13m27s
Typecheck / controller (pull_request) Successful in 13m36s
0349c25ccf
single-producer — текущее состояние сети, не архитектура. Этап 2 —
выборная машинерия финализаторов под кооперативную модель (1 пайщик =
1 голос); upstream regfinkey/switchtosvnn (top-21 по stake) не подходит.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Some checks are pending
Typecheck / desktop (pull_request) Successful in 13m27s
Typecheck / controller (pull_request) Successful in 13m36s
Checking for merge conflicts…
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin savanna:savanna
git checkout savanna
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: C9S/mono#131