iotaledger / iotaledger/notarization

[PoI] : Persist authenticated committee history in the PoI CLI

Open
#332 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Rust
Stars
5
Forks
7
Avg merge
10h 34m
Merged PRs (30d)
11

Description

## Problem

The `poi verify` command currently constructs committee resolution with a fresh in-memory cache. Every invocation therefore repeats the authenticated committee walk from genesis to the proof epoch, and any committees authenticated before a transient failure are discarded when the process exits.

## Proposed scope

- Provide a file-backed `CommitteeCache` adapter that can be reused by the CLI and the advanced committee-cache example.
- Store committee entries under the IOTA configuration directory, for example `poi/committee-cache//epoch-.bcs`.
- Preserve the complete `CommitteeCacheKey`, including the trusted genesis `ChainIdentifier` and epoch.
- Write authenticated committees atomically and never overwrite a conflicting entry.
- Configure `poi verify` with `CommitteeResolution::from_genesis_with_cache` for both managed-network and explicit-genesis verification.
- Document the cache location and that deleting it is safe but makes the next verification slower.

## Acceptance criteria

- A later CLI invocation reuses committees authenticated by an earlier invocation.
- Mainnet, testnet, devnet, and custom genesis files cannot collide in one backend.
- A failed or interrupted walk preserves committees stored before the failure.
- Malformed or conflicting cache entries fail closed with a useful error.
- No new CLI flag is required for the default behavior.

## Out of scope

- Concurrent epoch-summary prefetching for the first cold walk.
- Network retry or backoff policy.
- Genesis download pinning and validation tracked by H2.

Contributor guide

Open the contributing guide

Research direction

Start at the poi verify command and the CommitteeResolution::from_genesis_with_cache integration, then inspect the advanced committee-cache example. Trace how managed-network and explicit-genesis verification currently construct their caches. Done means a file-backed cache is reused across invocations, isolates chain identifiers and epochs, preserves entries through failures, rejects malformed or conflicting data, and documents safe deletion.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.