Skip to content

MCP-03: Add MCP blockstore CFs and conflict-safe put/get APIs#26

Open
aeyakovenko wants to merge 306 commits intoanza-xyz:masterfrom
aeyakovenko:issue-2-mcp-blockstore
Open

MCP-03: Add MCP blockstore CFs and conflict-safe put/get APIs#26
aeyakovenko wants to merge 306 commits intoanza-xyz:masterfrom
aeyakovenko:issue-2-mcp-blockstore

Conversation

@aeyakovenko
Copy link
Copy Markdown

@aeyakovenko aeyakovenko commented Feb 8, 2026

Summary

  • add MCP-dedicated blockstore column families:
    • mcp_shred_data keyed by (slot, proposer_index, shred_index)
    • mcp_relay_attestation keyed by (slot, relay_index)
  • wire both CFs into RocksDB descriptor/name lists
  • add Blockstore APIs for MCP put/get with deterministic non-overwrite conflict reporting:
    • McpPutStatus::{Inserted, Duplicate, Conflict(McpConflictMarker)}
  • include MCP CFs in purge paths and CF metrics submission
  • extend tests for conflict behavior and purge coverage

Why this shape

  • keeps the existing Agave shred pipeline types untouched
  • keeps MCP storage isolated in dedicated CFs
  • preserves replay-visible equivocation evidence without silent overwrite

Tests

  • cargo test -p solana-ledger --lib test_mcp_shred_data_put_get_and_conflict -- --nocapture
  • cargo test -p solana-ledger --lib test_mcp_relay_attestation_put_get_and_conflict -- --nocapture
  • cargo test -p solana-ledger --lib test_purge_slots -- --nocapture
  • cargo test -p solana-ledger --lib test_cf_names_and_descriptors_equal_length -- --nocapture

Fixes #2

@aeyakovenko aeyakovenko force-pushed the issue-2-mcp-blockstore branch from c6e8fcb to f67c06a Compare February 8, 2026 15:24
# Conflicts:
#	ledger/src/shred/mcp_shred.rs
#	plan.md
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.

MCP-03 Setup: Adjust blockstore to handle multiple proposers and execution consensus seperation.

1 participant