4.1 KiB
Delta v0.3.15-pre.014 — convergence inter-provider diagnostiquable
Base
ksp-general-0.3.15-pre.013.zip
SHA-256: 4d463230f45a55f68994443f138afd246b6ec34bea21357c2cedfe5d8fe1c5c6
Le gate opérateur de pre.013 est propre et le live ne reproduit plus le grpc_backpressure_overflow fermé par cette tranche. Yellowstone devient néanmoins terminal content_conflict une fois pendant l'exécution parallèle avec HTTP Block Polling.
Le diagnostic de pre.012-fix.004 prouve que le conflit ne porte ni sur le slot, ni sur block_time, ni sur les octets/instructions de transaction, ni sur la version, ni sur transactionIndex. Seul meta.logMessages diffère. La version déjà canonique provient de solana_mainnet_public; la version entrante est hydratée par publicnode_solana_mainnet_rpc après trigger Yellowstone, toutes deux en confirmed.
Diagnostic ajouté
Chaque getBlock réussi des voies Yellowstone Block Hydration et HTTP Block Polling émet désormais un diagnostic DEBUG sûr :
domain=raw_transaction_ingest.block_identity
source_kind
network
slot
provider
endpoint_id
commitment
parent_slot
block_height
block_identity_fingerprint
block_identity_fingerprint est un SHA-256 domain-separated calculé à partir de blockhash, previousBlockhash, parentSlot et blockHeight. Les blockhash bruts ne sont jamais journalisés.
Lors d'un content_conflict, Store complète son masque existant avec :
stored_slot
incoming_slot
log_messages_diagnostic_available
stored_log_messages_state
incoming_log_messages_state
stored_log_messages_count
incoming_log_messages_count
log_messages_first_mismatch_index
stored_log_messages_first_kind
incoming_log_messages_first_kind
stored_log_messages_first_length
incoming_log_messages_first_length
stored_log_messages_prefix_of_incoming
incoming_log_messages_prefix_of_stored
stored_log_messages_has_truncation_marker
incoming_log_messages_has_truncation_marker
Les types de ligne sont réduits à une taxonomie statique ; aucun texte arbitraire de log n'est recopié.
Frontières
Aucun changement de :
RawTransaction canonical identity
égalité / content_hash
politique fail-closed content_conflict
Store schema
Transport gRPC / HTTP
Config
Desk
Backfill
public Worker API
public Store API
logMessages reste partie intégrante du payload canonique tant que la cause de la divergence n'est pas prouvée.
Canaris
v0_3_15_pre_014_log_messages_conflict_diagnostic_distinguishes_prefix_truncation_and_line_kind_without_text
v0_3_15_pre_014_log_messages_conflict_diagnostic_detects_strict_prefix_without_exposing_line_material
v0_3_15_pre_014_content_conflict_diagnostic_exposes_only_block_slot_and_bounded_log_shape
v0_3_15_pre_014_cross_provider_block_identity_diagnostic_is_safe_and_covers_both_get_block_routes
v0_3_15_pre_014_cross_provider_convergence_diagnostic_adds_no_public_worker_surface
Version
workspace.package.version : 0.3.15-pre.14
root Cargo header counter : 628
Validation attendue
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/0.3.15
cargo check --workspace
cargo clippy --workspace --all-targets --all-features -- -D warnings
cargo test -p ksp-store-postgres-lib --all-targets --all-features
cargo test -p ksp-worker-raw-transaction-ingest-lib --all-targets --all-features
cargo test -p ksp-app-raw-transaction-ingest-desk --all-targets --all-features
cargo test --workspace --all-targets --all-features
(cd crates/ksp-app-raw-transaction-ingest-desk && cargo tauri dev)
Live : Yellowstone + HTTP Block Polling en confirmed jusqu'à reproduction d'un conflit. Au slot annoncé par Store, comparer les deux block_identity_fingerprint, puis lire la forme bornée de logMessages. Si nécessaire, répéter ensuite la même expérience en finalized comme diagnostic de finalité, sans changer le défaut produit par défaut.