partly or unimplemented features - now implemented
This commit is contained in:
@@ -112,6 +112,17 @@ When policy bundles change:
|
||||
WHERE policy_hash = ?
|
||||
```
|
||||
|
||||
### Invalidation DI Wiring and Lifecycle
|
||||
|
||||
`AddProvcacheInvalidators()` registers the event-driven invalidation pipeline in dependency injection:
|
||||
|
||||
- Creates `IEventStream<SignerRevokedEvent>` using `IEventStreamFactory.Create<T>(new EventStreamOptions { StreamName = SignerRevokedEvent.StreamName })`
|
||||
- Creates `IEventStream<FeedEpochAdvancedEvent>` using `IEventStreamFactory.Create<T>(new EventStreamOptions { StreamName = FeedEpochAdvancedEvent.StreamName })`
|
||||
- Registers `SignerSetInvalidator` and `FeedEpochInvalidator` as singleton `IProvcacheInvalidator` implementations
|
||||
- Registers `InvalidatorHostedService` as `IHostedService` to own invalidator startup/shutdown
|
||||
|
||||
`InvalidatorHostedService` starts all registered invalidators during host startup and stops them in reverse order during host shutdown. Each invalidator subscribes from `StreamPosition.End`, so only new events are consumed after process start.
|
||||
|
||||
### Invalidation Recording
|
||||
|
||||
All invalidation events are recorded in the revocation ledger for audit and replay:
|
||||
|
||||
Reference in New Issue
Block a user