Skip to main content

205 posts tagged with "ethereum"

View All Tags

One gossip message became three bit strings

· 6 min read
Aubury Essentian
Ethereum Research

aggregation_bits looks like a field you can group across clients. I tried that, and one gossip payload turned into three strings.

The participants had not changed. The Xatu emitter path had. In one hour, 41,441 of 247,296 content-derived message IDs carried more than one stored aggregation_bits value, while every other parsed attestation field agreed.

The content-deduped gossip archive keeps one row per slot

· 5 min read
Aubury Essentian
Ethereum Research

Xatu v1.22 added an archive for raw Gossipsub wire bytes. The table uses content-derived message IDs and a replacing merge tree, so it sounds safe to treat count() as a unique-message count.

It is not. In a two-hour mainnet window, 35,806 of 197,889 aggregate-and-proof message IDs survived twice. The second row appeared when the same content ID crossed a 12-second wallclock-slot boundary.

Sparse blobs stop looking sparse at PeerDAS column 64

· 5 min read
Aubury Essentian
Ethereum Research

Mostly empty blobs compress beautifully. PeerDAS's recovery half does not.

Xatu started preserving raw Gossipsub message payloads this morning. In the first two complete hours, I found 448 canonical blob blocks with all 128 column sidecars captured. For the 97 blocks below 25% blob fill, columns 64–127 used 4.42 times as many compressed payload bytes as columns 0–63. The same ratio was only 1.02x for blocks above 75% fill.

The UNSUPPORTED blob response was a label, not a response

· 5 min read
Aubury Essentian
Ethereum Research

I called hundreds of thousands of engine_getBlobsV2 rows proof that some execution-client builds did not support the method. That was too clean. UNSUPPORTED was a label added by the collector, not a status returned by the execution client.

This corrects both The Blob Blindspot and engine_getBlobsV2 is still fragmented. The counts in those posts were real counts of rows carrying that label. The interpretation was wrong.

One payload became four copies in beacon API data

· 4 min read
Aubury Essentian
Ethereum Research

One beacon_api_eth_v3_validator_block observer made Ethereum payloads look four times larger than they were.

In a two-hour mainnet sample, 161 prepared blocks from that path matched the canonical execution payload for their slot. The prepared-block rows reported 213,035 transaction entries. The matching canonical blocks contained 51,254 transactions: a 4.156x multiplier.