Skip to content

HF15: permanent key history + hourly limit on active/regular/memo - #168

Merged
On1x merged 1 commit into
pmfrom
key-history
Sep 28, 2026
Merged

On1x merged 1 commit into
pmfrom
key-history

Conversation

@On1x

@On1x On1x commented Sep 28, 2026

Copy link
Copy Markdown
Member

A DLT node has no past blocks, so it cannot prove which key an account held when it signed something. From HF15 consensus keeps a permanent row for every member of every authority an account stops standing behind.

  • key_history_object: account, role (master/active/regular/memo), key or member account, weight, threshold, valid_until_block / valid_until_time (last block the key still held). Written by account_update, recovery, direct sale and auction close; only for roles that really changed. Never pruned.
  • Real change of active / regular / memo_key via account_update: at most once an hour per role (like master).
  • read API: database_api.get_key_history(account, from, limit), get_key_history_by_key(key, limit).
  • Snapshot export/import of the new index.
  • consensus_sim: 10 new key_history cases (shape, roles, multi-member authority, same-authority no-op, hourly limit per role, sale, auction, lookup by key, inactive before HF15); agent_access suite still green.
  • Docs en+ru: docs/protocol/key-history.md, database-api, accounts.

New object type → testnet redeploy from snapshot only.

🤖 Generated with Claude Code

…tive/regular/memo changes

Consensus keeps one row per member of every authority an account stops
standing behind (role, key or account, weight, threshold, valid until
block/time), written by account_update, recovery, direct sale and
auction close. Rows are never removed, so a DLT node can prove which key
an account held in the past. From HF15 a real change of active, regular
or memo_key is limited to once an hour per role, like master.

read API: database_api.get_key_history / get_key_history_by_key.
Snapshot exports and imports the new index. Docs en+ru.
@On1x
On1x merged commit fdcb4e4 into pm Sep 28, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant