Skip to content
BLOBPEDIAby Unity Nodes
Documentation/docs/learn/transaction-flow.mdView on docs
docs/learn/transaction-flow.md

Transaction flow

Transaction flow

Chain users use a light node to communicate with the chain P2P network for two primary reasons:

  • submitting transactions
  • gossipping headers and fraud proofs

Here's what the typical transaction flow looks like:

Transaction submission

sequenceDiagram
    participant User
    participant LightNode
    participant FullNode
    
    User->>LightNode: Submit Transaction
    LightNode->>FullNode: Gossip Transaction
    FullNode-->>User: Refuse (if invalid)

Transaction validation and processing

sequenceDiagram
    participant FullNode
    participant Sequencer

    FullNode->>FullNode: Check Validity
    FullNode->>FullNode: Add to Mempool (if valid)
    FullNode-->>User: Transaction Processed (if valid)
    FullNode->>Sequencer: Inform about Valid Transaction
    Sequencer->>DALayer: Add to Chain Block

Block processing

sequenceDiagram
    participant DALayer
    participant FullNode
    participant Chain

    DALayer->>Chain: Update State
    DALayer->>FullNode: Download & Validate Block

To transact, users submit a transaction to their light node, which gossips the transaction to a full node. Before adding the transaction to their mempool, the full node checks its validity. Valid transactions are included in the mempool, while invalid ones are refused, and the user's transaction will not be processed.

If the transaction is valid and has been included in the mempool, the sequencer can add it to a chain block, which is then submitted to the data availability (DA) layer. This results in a successful transaction flow for the user, and the state of the chain is updated accordingly.

After the block is submitted to the DA layer, the full nodes download and validate the block.