v0.3.13-pre.006-fix.001
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
# file: Cargo.toml
|
# file: Cargo.toml
|
||||||
# version: 550
|
# version: 551
|
||||||
|
|
||||||
[workspace]
|
[workspace]
|
||||||
resolver = "3"
|
resolver = "3"
|
||||||
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
members = ["crates/ksp-app-backfill-desk", "crates/ksp-app-config-desk", "crates/ksp-app-solprices-desk", "crates/ksp-app-store-desk", "crates/ksp-app-wallet-desk", "crates/ksp-config-lib", "crates/ksp-core-lib", "crates/ksp-interface-lib", "crates/ksp-job-api", "crates/ksp-job-backfill-lib", "crates/ksp-logging-lib", "crates/ksp-offchain-transport-lib", "crates/ksp-onchain-transport-lib", "crates/ksp-program-api", "crates/ksp-raw-transaction-lib", "crates/ksp-store-api", "crates/ksp-store-lib", "crates/ksp-store-postgres-lib", "crates/ksp-wallet-lib", "crates/ksp-worker-api", "crates/ksp-worker-raw-transaction-ingest-lib"]
|
||||||
|
|
||||||
[workspace.package]
|
[workspace.package]
|
||||||
version = "0.3.13-pre.6"
|
version = "0.3.13-pre.6.fix.1"
|
||||||
edition = "2024"
|
edition = "2024"
|
||||||
license = "MIT"
|
license = "MIT"
|
||||||
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
repository = "https://git.sasedev.com/Sasedev/khadhroony-solana-project"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs
|
// file: crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs
|
||||||
// version: 19
|
// version: 20
|
||||||
|
|
||||||
use sha2::Digest; // rust-rules: trait-import
|
use sha2::Digest; // rust-rules: trait-import
|
||||||
|
|
||||||
@@ -878,7 +878,7 @@ impl std::fmt::Debug for crate::RawTransactionIngestHeliusTransactionSource {
|
|||||||
///
|
///
|
||||||
/// The caller provides one Transport-owned HTTP pool/role, a Confirmed/Finalized commitment and bounded polling controls. Construction proves that the role
|
/// The caller provides one Transport-owned HTTP pool/role, a Confirmed/Finalized commitment and bounded polling controls. Construction proves that the role
|
||||||
/// has same-network routes for `getSlot`, `getBlocksWithLimit` and `getBlock` without network I/O. Runtime starts at the first observed committed slot and
|
/// has same-network routes for `getSlot`, `getBlocksWithLimit` and `getBlock` without network I/O. Runtime starts at the first observed committed slot and
|
||||||
/// never requests an earlier slot, keeping this source live/run-local rather than turning it into historical Backfill.
|
/// never requests an earlier slot, so this source remains live and run-local.
|
||||||
pub struct RawTransactionIngestHttpBlockPollingSource {
|
pub struct RawTransactionIngestHttpBlockPollingSource {
|
||||||
http_pool: ksp_onchain_transport_lib::HttpTransportPool,
|
http_pool: ksp_onchain_transport_lib::HttpTransportPool,
|
||||||
polling_role: ksp_onchain_transport_lib::HttpRoleName,
|
polling_role: ksp_onchain_transport_lib::HttpRoleName,
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
// file: crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||||
// version: 15
|
// version: 16
|
||||||
|
|
||||||
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
//! External public, security, redaction and release-boundary hardening canaries for `pre.010`.
|
||||||
|
|
||||||
@@ -215,8 +215,6 @@ fn pre_010_production_surface_has_no_historical_backfill_or_retriever_contract()
|
|||||||
"backfill",
|
"backfill",
|
||||||
"Checkpoint",
|
"Checkpoint",
|
||||||
"checkpoint",
|
"checkpoint",
|
||||||
"Discovery",
|
|
||||||
"discovery",
|
|
||||||
"historical",
|
"historical",
|
||||||
] {
|
] {
|
||||||
assert!(!source.contains(forbidden), "historical/retriever surface leaked into Worker production source: {forbidden}");
|
assert!(!source.contains(forbidden), "historical/retriever surface leaked into Worker production source: {forbidden}");
|
||||||
|
|||||||
111
deltas/0.3.13/pre.006-fix.001.md
Normal file
111
deltas/0.3.13/pre.006-fix.001.md
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
<!-- file: deltas/0.3.13/pre.006-fix.001.md -->
|
||||||
|
<!-- version: 1 -->
|
||||||
|
|
||||||
|
# Delta 0.3.13-pre.006-fix.001 — correction du canari historique après live block discovery
|
||||||
|
|
||||||
|
## Base requise
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison précédente : 0.3.13-pre.006
|
||||||
|
Cargo base : 0.3.13-pre.6
|
||||||
|
delta base : deltas/0.3.13/pre.006.md
|
||||||
|
archive delta base : ksp-general-0.3.13-pre.006.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
Le gate opérateur du 10 septembre 2026 sur `pre.006` est vert pour `cargo fmt`, `cargo fmt --check`, les audits Rust/Markdown, `cargo check --workspace`, Clippy strict, les `88` tests unitaires Worker et les `13` tests `dependency_boundary`. Il s'arrête ensuite sur un seul canari de hardening : `pre_010_production_surface_has_no_historical_backfill_or_retriever_contract` détecte la chaîne `Backfill` dans la Rustdoc de la nouvelle source HTTP live block polling.
|
||||||
|
|
||||||
|
La même vérification interdisait également globalement `Discovery`/`discovery`. Cette hypothèse n'est plus valide depuis `pre.006` : la découverte run-local via `getBlocksWithLimit` est une primitive légitime du live polling et ne constitue ni un retriever historique ni un Backfill.
|
||||||
|
|
||||||
|
## Objectif du fix
|
||||||
|
|
||||||
|
Conserver la séparation Worker/Backfill sans interdire la terminologie de live block discovery introduite par le poller HTTP :
|
||||||
|
|
||||||
|
```text
|
||||||
|
Rustdoc HTTP polling : suppression de la mention Backfill
|
||||||
|
canari historique : conserve les interdictions retriever/backfill/checkpoint/historical
|
||||||
|
mais ne classe plus Discovery/discovery comme marqueur historique
|
||||||
|
```
|
||||||
|
|
||||||
|
Aucune logique de polling, cadence, Transport, admission, Store, processing frontier, provenance, source identity ou API publique n'est modifiée.
|
||||||
|
|
||||||
|
## Version
|
||||||
|
|
||||||
|
```text
|
||||||
|
livraison : 0.3.13-pre.006-fix.001
|
||||||
|
workspace.package.version : 0.3.13-pre.6.fix.1
|
||||||
|
archive : ksp-general-0.3.13-pre.006-fix.001.zip
|
||||||
|
```
|
||||||
|
|
||||||
|
`Cargo.toml` passe de la version de fichier `550` à `551`.
|
||||||
|
|
||||||
|
## Fichiers modifiés
|
||||||
|
|
||||||
|
```text
|
||||||
|
Cargo.toml
|
||||||
|
crates/ksp-worker-raw-transaction-ingest-lib/src/runtime_resources.rs
|
||||||
|
crates/ksp-worker-raw-transaction-ingest-lib/tests/hardening.rs
|
||||||
|
```
|
||||||
|
|
||||||
|
Versions de fichiers :
|
||||||
|
|
||||||
|
```text
|
||||||
|
runtime_resources.rs : 19 -> 20
|
||||||
|
hardening.rs : 15 -> 16
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers ajoutés
|
||||||
|
|
||||||
|
```text
|
||||||
|
deltas/0.3.13/pre.006-fix.001.md
|
||||||
|
```
|
||||||
|
|
||||||
|
## Fichiers supprimés
|
||||||
|
|
||||||
|
```text
|
||||||
|
aucun
|
||||||
|
```
|
||||||
|
|
||||||
|
## Non-claims
|
||||||
|
|
||||||
|
Ce fix ne modifie aucune dépendance et n'ajoute aucune source. Il ne change ni la borne de run, ni `getSlot`, ni `getBlocksWithLimit`, ni `getBlock observed`, ni les règles Legacy/V0/V1, ni la sémantique `block:null`.
|
||||||
|
|
||||||
|
## Validation dans l'environnement d'assemblage
|
||||||
|
|
||||||
|
Le toolchain Rust/Cargo/Rustfmt n'est pas disponible dans l'environnement d'assemblage. Les commandes Cargo post-fix restent donc `NON EXÉCUTÉ LOCAL`. Les audits statiques KSP et le contrôle exhaustif du delta sont exécutés avant packaging.
|
||||||
|
|
||||||
|
## Gate opérateur requis avant pre.007
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cargo fmt --all
|
||||||
|
cargo fmt --all -- --check
|
||||||
|
python3 scripts/audit_rust_workspace_rules.py
|
||||||
|
python3 scripts/audit_markdown_tables.py README.md RULES.md ROADMAP.md CHANGELOG.md docs prompts crates deltas
|
||||||
|
cargo check --workspace
|
||||||
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
||||||
|
cargo test -p ksp-worker-raw-transaction-ingest-lib
|
||||||
|
```
|
||||||
|
|
||||||
|
## Résultats statiques finaux de l'assemblage
|
||||||
|
|
||||||
|
```text
|
||||||
|
General Rust rule audit: clean
|
||||||
|
Rust export completeness audit: 0 candidate(s)
|
||||||
|
KSP workspace Rust rule audit: clean
|
||||||
|
Markdown table audit: clean (340 tables, 840 files)
|
||||||
|
Normative rule definitions: 489
|
||||||
|
Unique normative IDs: 489
|
||||||
|
Duplicates: 0
|
||||||
|
```
|
||||||
|
|
||||||
|
Contrôle ciblé de la surface production Worker :
|
||||||
|
|
||||||
|
```text
|
||||||
|
ksp-worker-raw-retriever : 0
|
||||||
|
raw_transaction_retriever : 0
|
||||||
|
RawTransactionRetriever : 0
|
||||||
|
Backfill/backfill : 0
|
||||||
|
Checkpoint/checkpoint : 0
|
||||||
|
historical : 0
|
||||||
|
```
|
||||||
|
|
||||||
|
`Discovery`/`discovery` n'est plus un marqueur interdit global : `pre.006` l'emploie pour la découverte live run-local de slots/blocs par `getBlocksWithLimit`.
|
||||||
Reference in New Issue
Block a user