feat: show bytes paid for by pools whose owner is not a registered operator
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 42/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- backend, data-visualization, frontend
Direzione di ricerca
Start with worker/src/stats.ts to trace pool owner and operator tracking, PoolRedeemed handling, and the totals and hourly/daily point shapes; then inspect wrangler.jsonc for internal owner configuration. Check website/lib/stats.ts to see whether its validator accepts additive fields, and locate the stats page’s headline tiles, settlements table, and emptyLabel handling. Done means external bytes and USDC are reported in all-time and rolling-24h totals and hourly series, the page labels the measure as an upper bound, and both worker and website accept the shared schema.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Problem
The page shows bytes served and USDC settled. It does not say who paid. On the live file today (stats-421614.json, 2026-10-24):
| registered operators | 9 |
| pools opened | 18 |
| distinct pool owners | 13 |
| pools whose owner is not a registered operator | 8 (5 owners) |
| median of the last 50 settlements | 10.5 GB |
Most pools belong to the operators themselves, and the uniform ~10.5 GB settlements look like node-to-node fills and the smoke-test load generator, not customers. The network is mostly paying itself. The one line an investor or a customer will read is bytes paid for by pools whose owner is not a registered operator, and the page cannot show it.
Proposal
Add an external demand figure next to bytes served: all-time and rolling-24h bytes (and USDC) paid from pools whose owner is not in the registered set, with the same hourly series the other headline metrics have.
Worker side (worker/src/stats.ts already keeps poolOwners and the operator set, and PoolRedeemed lanes carry bytesPaid per pool):
- On
poolRedeemed, classify the pool by its owner at that moment: internal when the owner is a registered operator (or on aINTERNAL_OWNERSlist inwrangler.jsoncfor Labs wallets that are not operators, such as the smoke-test buyer), else external. - Accumulate
totals.externalBytesPaid/totals.externalValuePaid, and addexternalBytesPaidtoDailyPointandHourlyPoint. - Keep
bytesPulledper region as is; this is a different cut of the same events.
Page side: a headline tile "external demand" with the 24h delta, and a line under the settlements table saying what counts as external. Empty states follow the existing emptyLabel switch per block.
Caveats
- An operator may fund pools from a buyer wallet that differs from its registered operator address; the classification is then wrong in the generous direction (it over-counts external). The
INTERNAL_OWNERSlist is the fix for known cases; the caption says the figure is an upper bound. USDCfromPoolRedeemedis what nodes redeemed, not what pools deposited; label it "paid", not "spent".- Schema change is cross-repo.
website/lib/stats.ts(decdn/website) fetches and shape-checks the same file. New fields are additive, but check that its validator tolerates them before the worker ships, or ship both in the same window.
Related
- The demand-side work this number measures: https://github.com/decdn/decdn/issues/2591, https://github.com/decdn/decdn/issues/2593, https://github.com/decdn/decdn/issues/2594
- Docs "Deliver" tab that will quote it: https://github.com/decdn/website/issues/335
- Lingua principale
- TypeScript
- Stelle
- 2
- Fork
- 0
- Merge medio
- 10h 46m
- PR unite (30g)
- 37
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di decdn/stats
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 1 giorno
-
feat: look up a pool by idApertafeature frontend indexer
Difficoltà 5/5 Più di una settimana Idoneità per principianti 39/100
I maintainer di solito rispondono entro 1 giorno
-
feature frontend indexer
Difficoltà 3/5 1-2 giorni Idoneità per principianti 62/100
I maintainer di solito rispondono entro 1 giorno
-
feat: mark Labs nodes and pools, and show external nodes and external bytes as their own countersApertaenhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
I maintainer di solito rispondono entro 1 giorno
-
feat: add a world map of nodes by regionForse già presa @yigitdot l’ha presa 30 giorni fa. Apertaenhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
I maintainer di solito rispondono entro 1 giorno
Issue simili
-
area:cli bug P4
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
I maintainer di solito rispondono entro 1 giorno
-
bug from-studio
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
esengine/DeepSeek-Reasonix#14868 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
linxiv-dev/linXiv#384 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
factory-active task-identify-harness-labels-done task-identify-issue-type-done
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
vercel/ai#24302 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno