Skip to content

Leios: Accept a JSON array of BLS key envelopes in --shelley-bls-key - #6697

Merged
ch1bo merged 9 commits into
leios-prototypefrom
ch1bo/leios-voting-key-bundle
Sep 20, 2026
Merged

ch1bo merged 9 commits into
leios-prototypefrom
ch1bo/leios-voting-key-bundle

Conversation

@ch1bo

@ch1bo ch1bo commented Sep 18, 2026 •

Copy link
Copy Markdown
Contributor

All keys reach the Leios voting logic, which votes once per committee
seat any of them holds: a rotation pair keeps voting across the epoch
boundary, a bundle of pool keys votes for every seat it covers.

See this script for how this is can be used: https://github.com/input-output-hk/ouroboros-leios/blob/9e94f9ea73d9f2d0239a0b0942e749d0e73f9765/demo/dozen-devnet/run.sh#L38-L49

@ch1bo
ch1bo requested a review from a team as a code owner September 18, 2026 15:38
@ch1bo ch1bo added the leios Means that this tickets is related to the implementation of ouroboros leios. label Sep 18, 2026
@ch1bo
ch1bo requested review from dnadales, johnalotoski and nfrisby and removed request for a team September 18, 2026 15:38
ch1bo and others added 7 commits September 20, 2026 23:02
The SQLite LeiosDB starts a writer worker holding the only write
connections plus maintenance threads, and until now nothing ever stopped
them. Open it through consensus' openLeiosDBSQLite and run its teardown
when the node stops: everything else has wound down by then, so this
flushes the pending writes, stops the threads and closes the connections.

Depends on the writer-lifecycle work on ouroboros-consensus #2298.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Both partitions resolved against the non-immutable path, so a node
configured with MultipleDbPaths put the LeiosDB's immutable partition on
the performant volume -- the one that option exists to keep small.

The partitions split the same way the node's own do: the volatile one
churns and is swept, the immutable one only grows. Resolve each against
the matching path. No change under OnePathForAllDbs, where both are the
same directory.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
A node could not start on a fresh database directory. The ChainDB
refuses a directory that holds files but no marker of its own, and
opening the LeiosDB creates its SQLite files in that same directory
whenever the node runs on a single database path -- which happens
before 'Node.run' gets as far as writing the marker.

Run that check here instead, before the LeiosDB is opened. It is the
same 'checkDbMarker' the node makes later and it is idempotent: with the
marker present it only verifies the network magic. Nothing else changes
order, and no lazy construction is needed to get it.

Also drops the leiosDbCopyQueueFull counter, whose trace constructor is
gone with the copy queue.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Matches the tools: leios.vol.db and leios.imm.db.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The SQLite backend took a path per partition. Now that each partition
follows the node's own DatabasePath -- volatile beside volatile/,
immutable beside immutable/ -- a second way to name them can only
contradict it: an absolute pair could put the growing partition on the
performant volume, or put both back inside a directory the ChainDB
expects to own. So the backend is all the option carries now, and the
paths are derived.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The DB creates its own partition directories now, so the node does not.
All keys reach the Leios voting logic, which votes once per committee
seat any of them holds: a rotation pair keeps voting across the epoch
boundary, a bundle of pool keys votes for every seat it covers.
@ch1bo
ch1bo force-pushed the ch1bo/leios-voting-key-bundle branch from c2f9c81 to 68e8e26 Compare September 20, 2026 21:02
@ch1bo
ch1bo merged commit 861755a into leios-prototype Sep 20, 2026
10 of 17 checks passed
@ch1bo
ch1bo deleted the ch1bo/leios-voting-key-bundle branch September 20, 2026 22:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

leios Means that this tickets is related to the implementation of ouroboros leios.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant