magicblock-labs / magicblock-labs/magicblock-validator

Create committor outbox intents directly from user transactions

Open
#1,064 0 comments 0 reactions 1 assignee View on GitHub

@snawaz is already working on this.

Since Sep 9, 2026.

enhancement P2 techdebt
Dominant language
Rust
Stars
58
Forks
58
Avg merge
22h 1m
Merged PRs (30d)
53

Description

Goal

Create committor outbox intents within the originating user transaction, making durable intent creation atomic with the transaction’s account changes.

Why

User transactions currently append intents to MagicContext, which the committor drains periodically. Its fixed 5 MiB capacity can be exhausted between drains, causing scheduling transactions to fail with AccountDataTooSmall. Updating the queue also rewrites the shared buffer.

The #1701 workstreams provide durable outbox lifecycle, recovery, and execution machinery. Write into that machinery directly instead of retaining MagicContext as an intermediate queue or replacing it with a volatile TLS queue.

Scope

Replace MagicContext staging and periodic acceptance with outbox creation through the authorized Magic Program/outbox builtin path. Failed transactions must leave no surviving intent, and execution must begin only after the originating transaction commits.

Reuse #1703’s outbox lifecycle, #1702’s durable progress and transaction reconciliation, and #1705’s processor ownership. Notifications may wake the processor, but outbox accounts remain the authoritative record of pending work.

Adapt instruction builders and account inputs so user transactions can identify and create their outboxes. The existing creation path requires validator authorization; introduce the appropriate user-transaction admission path without weakening ownership, signer, or account validation. Preserve intent ordering, retry identity, and AddActionCallback behavior.

Account for already-staged MagicContext intents and existing callers during rollout before retiring the old acceptance path. Do not introduce a second persistence or recovery mechanism.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.