Tag: Layer 2
All the articles with the tag "Layer 2".
Selecting more than one tag in the sidebar shows only posts that have every selected tag.
- #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (6) - Following an L2 Message to a Successful Claim on L1
The transaction from block 23,851 sent 0.02 ETH from L2 to L1 through the message service. I followed its message hash from the MessageSent event, through the postman, to the MessageClaimed event and a successful claim receipt on L1 six minutes later.
4 min read - #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (5) - Web3Signer: Transaction Signing, HTTPS, and L1 Sender Verification
Where the Coordinator's L1 transactions get signed. What Web3Signer signs, how the Coordinator reaches it over mutual TLS, and a check that the public keys in the config derive to the exact senders in the blob and aggregation receipts.
5 min read - #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (4) - Following an L2 Blob from Creation to Finalization on L1
One 80-block L2 range in my Lineth lab, from the Coordinator closing its blob, through the compression proof and the EIP-4844 blob transaction, to the DataFinalizedV3 event on the L1 rollup contract. Coordinator logs, cast receipts, and contract events, connected by range and hash.
5 min read - #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (3) - Inside the Prover: From a Coordinator Request to a Proof Response
What happens between the Coordinator writing a proof request and reading the result. I followed L2 blocks 26,605 to 26,684 through shared-storage request files, the prover controller, trace reading, module utilization, and the execution, compression, and aggregation responses in my Lineth lab.
6 min read - #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (2) - From L2 Blocks to Execution Proofs: Trace and Conflation in the Coordinator
How the Coordinator turns L2 blocks into proof work. I followed blocks 24,205 to 24,284 in my Lineth lab: an 80-block batch closed by a trace limit, a one-batch blob, an execution-proof request, and its result 3 minutes 24 seconds later.
4 min read - #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (1) - Following an L2 Transaction Through Besu and Maru
A transaction that is accepted, one that is included in a block, and one an RPC node can serve are three separate events. I followed L2 block 23,851 in my Lineth lab from the sequencer's payload, through the RPC node's import and head update, to a successful receipt, using only Kubernetes logs and JSON-RPC.
5 min read - #Lineth L2 Lifecycle#Ethereum#Layer 2
Lineth L2 Transaction Lifecycle (0) - The Lab Architecture
A map of the local Lineth rollup before the series opens it up: RPC Besu, the sequencer and Maru for execution, the Coordinator and Prover for proving, Web3Signer for signing, the rollup contract for settlement, and the postman for message delivery, with the evidence each one leaves.
5 min read - #SRE#Kubernetes#Observability
Lineth L2 Homelab - A Full Rollup on One Kubernetes Node, and How I Watch It
A tour of my SRE homelab: a local proof-of-stake L1 and a complete zk-rollup L2 running as 60+ pods on a single kind node on a Mac, deployed by Flux, and monitored with Prometheus, Loki, Tempo, SLOs and 26 Grafana dashboards. Screenshots taken from the live lab.
12 min read - #Contribution#Ethereum#Layer 2
Lineth Postman: A Stuck Claim That Could Never Be Cancelled
Lineth's postman cancels a stuck claim transaction by bumping its stored fees by 10%. Postgres returned those fees as strings, so the bump threw "Cannot mix BigInt and other types" and the cancel never ran. One nonce gap held up every later claim. A two-line fix in the entity mapper.
5 min read - #SRE Postmortem#SRE#Postmortem
Lineth L2 Incident Management: Postmortem (5) - An L1 Deadlock the Engine API Made Permanent
The lab's local L1 stopped producing blocks for 3 h 14 min: after a one-slot re-org, the beacon node asked the execution client to build on a block's parent, and the Engine API says it must not. Settlement stopped behind it and the coordinator wedged. A Google SRE format postmortem with the logs, the one-RPC fix, and an SLI that hid the worst withdrawals.
9 min read - #SRE Postmortem#SRE#Postmortem
Lineth L2 Incident Management: Postmortem (3) - Started Before DNS: An RPC Node With No Peer for 49 Minutes
After a planned restart, the L2's public RPC node came up a few seconds before cluster DNS, failed to resolve its only peer once, and never tried again. It looked healthy for 49 minutes while no user transaction reached the sequencer. A Google SRE format postmortem with the logs and a one-probe fix.
7 min read - #SRE Postmortem#SRE#Postmortem
Lineth L2 Incident Management: Postmortem (2) - Two Counters, One Limit: Every Batch Proven Twice
Settlement fell 1,087 blocks behind. Every batch had been failing the prover's normal mode for days because the coordinator and the prover counted the same trace module differently, and the Mac under the cluster was swapping the prover's memory. A Google SRE format postmortem with the logs and the arithmetic.
9 min read - #SRE Postmortem#SRE#Postmortem
Lineth L2 Incident Management: Postmortem (1) - A BigInt Bug That Broke the Bridge's Self-Repair
Deposits from L1 to L2 went unclaimed for 1 h 46 min. The postman had a repair path for exactly this failure, and it crashed 1,125 times on a string that should have been a bigint. A blameless postmortem in the Google SRE format, with the logs, the fix, and the upstream PR.
9 min read