Files
linea-monorepo/contracts/docs/workflows/messaging/canonicalL1ToL2Messaging.md
The Dark Jester f48431ac5c [Chore] Document contract interaction (#926)
* placeholder docs

* adding more documentation

* documentation work in progress

* add main linking or index documents

* add a link images

* add messaging flows

* linking operator documentation and folder cleanup

* use correct pathing on tokenbridge.md

* link workflow documents

* add function signatures

* remove welcome to

* cross reference blob submission and finalization

* remove confusing text

* use better definition of shnarf

* fix broken link

* add charter, diagram and address book

* docs(LSC): Rename security-council-charter-v1.3.md to security-council-charter.md

Signed-off-by: Julien Marchand <julien-marchand@users.noreply.github.com>

* Update contracts/docs/mainnet-address-book.csv

Co-authored-by: Julien Marchand <julien-marchand@users.noreply.github.com>
Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com>

---------

Signed-off-by: Julien Marchand <julien-marchand@users.noreply.github.com>
Signed-off-by: The Dark Jester <thedarkjester@users.noreply.github.com>
Co-authored-by: Julien Marchand <julien-marchand@users.noreply.github.com>
2025-05-19 13:36:09 +02:00

1.3 KiB

📩 Interaction Flow: Canonical Message Sending (L1 → L2)

This document describes the step-by-step flow of how a canonical message is sent from L1 to L2 in the Linea network.


🔄 Step-by-Step Flow

  1. L1 User calls sendMessage() on the LineaRollup or L1MessageService contract.
  2. The contract:
    • Verifies non-empty data
    • Gets the next message number
    • Computes the message hash with all the message fields
    • Computes the rolling hash using the previous rolling hash and the new message hash
    • Stores the rolling hash and emits a message event
  3. Coordinator captures the emitted event and message hash.
  4. Coordinator:
    • Anchors the message hash on L2
  5. L2MessageService receives the anchored message hash.
    • Computes and verifies the rolling hash sync
    • Stores each hash for claiming
  6. Postman service or L2 User calls claimMessage() to deliver the message to the L2 User.
  7. As part of regular chain operations:
    • L2 Blocks and Transactions are produced
    • Prover / Trace Generator Compressor uses L2 data, generates traces and all proofs
    • Proofs are submitted to the Coordinator via SubmitBlocks / finalizeBlocks
  8. L1MessageService / LineaRollup verifies rolling hash sync as part of a feedback loop.