Skip to content

0.1.8 --- okb chunk digests verified on several contexts at once; openkal 0.19.0 - #14

Merged
Sunrisepeak merged 1 commit into
mainfrom
openkal-0.19.0
Oct 31, 2026
Merged

Sunrisepeak merged 1 commit into
mainfrom
openkal-0.19.0

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member
  • okb: files.<member>.chunks records a SHA-256 per 1 MiB chunk of each member. okld_okb_chunks reads the list; okld_okb_admit_chunked admits a member by verifying its chunks through an okld_parallel callback the caller supplies. A member without chunks is admitted by its whole digest, as before.
  • okrun runs the chunk checks on kal_tasks; a 68 MB okb starts in 0.04–0.07 s locally, where it took 0.10–0.12 s.
  • okld bundle writes chunks; okld bundle check verifies the whole digest and every chunk.
  • Pins: openkal 0.19.0, openkal-linux 0.20.0, openkal-macos 0.17.0, openkal-windows 0.15.0 (kal_task_cores and kal_task_set_priority are bound for images).
  • Docs: docs/okb.md §3/§5/§8, docs/bind.md, README.

Co-authored-by: speak-agent 248744407+speak-agent@users.noreply.github.com

…nkal 0.19.0 (kal_task_cores, kal_task_set_priority bound for images)

An okb's image member may state its chunk digests (okb.json
`files.<member>.chunks`: the SHA-256 of each 1 MiB, docs/okb.md §3). `okld
bundle` writes them for every image; okrun verifies them through
okld_okb_admit_chunked on up to eight contexts (kal_task), where one SHA-256 of
the whole member cannot be shared out; `okld bundle check` verifies them beside
the whole digest, so an okb whose two disagree is refused. A reader that does
not know the key verifies the whole digest, as before: still okb 1. Measured on
a 68 MB image with SHA extensions: 0.10-0.12 s to start with 0.1.7, 0.04-0.07 s
with 0.1.8; without them the whole digest took 0.3 s and more.

libokld has no contexts of its own and allocates nothing: the caller runs the
jobs (okld_parallel), and each job reads the manifest once for its own
chunks. libokld's tests cover the chunks held one after another and as a
caller runs them, a changed byte in the last chunk, chunks that do not cover
the member, and the whole digest where none are stated.

The runner is built against openkal 0.19.0 (openkal-linux 0.20.0,
openkal-macos 0.17.0, openkal-windows 0.15.0), so images bind kal_task_cores
and kal_task_set_priority. ld, run, tools and bind are 0.1.8.

Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
@Sunrisepeak
Sunrisepeak merged commit 846adcd into main Oct 31, 2026
5 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