[Tutorial] Run your own satellite (part 10) - Introducing mud and ranged-loop

nodeaudit.PieceCountHistogram

Builds a distribution of how many pieces of each segment are actually reachable on “participating” nodes (i.e. not disqualified/exited/unknown).

nodeaudit.ColdLegacyStat

Detect pieces sitting on nodes it’s not supposed to - because of placement, i.e. “legacy”/misplaced pieces.

Another function of this is to predict how many pieces will become misplace if a specific placement rule is going to change.

nodeaudit.ExpansionFactor

Computes storage expansion ratios per placement — how much actual storage is used vs. the logical segment size, both for all pieces and for “healthy” pieces only.

What is logical segment size?

PlainSize — size before encryption. (segment.PlainSize, documented as size before encryption).

EncryptedSize — size after encryption, still per segment, what the ranged-loop ExpansionFactor observer calls “logical segment size.” Slightly larger than PlainSize due to encryption overhead/padding - this is the storage customer is billed.

TotalPieceSize — EncryptedSize expanded by erasure coding into N pieces across nodes. This is the real storage node footprint - satellite operator pays storage nodes on this.