A million rows was $1.00 of a $1.61 free tier and seventy times what a personal relay writes. A quarter million is still fifteen times that, and a lively community stays under it.
- commit
- 50efc9928dbb865bccb3f39ae94b95cc903acf33
- parent
- 64eb29a5b4e6e71d6b914e84a6509e67d5c84f19
- author
- Dami <dami.etoile@gmail.com>
| M | docs/ | 2 | +- |
| M | docs/ | 6 | +++--- |
| M | src/ | 2 | +- |
| M | wrangler.jsonc | 4 | ++-- |
@@ -16,7 +16,7 @@ Four things cost the host money, and those four are measured. Each mirrors a lin
1616 | Events stored | 100 MB |1717 | Files stored | 1 GB |1818 | Time awake | 100 hours |19-| Rows written | 1 million |19+| Rows written | 250,000 |2020 2121 Traffic in and out is free and not counted. The console shows it so you can see what the relay does.2222 @@ -38,20 +38,20 @@ Time awake is an hour of a Durable Object held in memory at 128 MB, which Cloudf
3838 3939 ## The free tier4040 41-A relay that spends its whole allowance costs the host about $1.61 a month, and rows written are $1.00 of that. Time awake is most of the rest. Storage is nearly free at these sizes.41+A relay that spends its whole allowance costs the host about $0.87 a month. Time awake is most of it. Storage is nearly free at these sizes. The rows allowance was a million until Sept. 2026, which made it $1.00 of a $1.61 tier; it came down to 250,000, about 15 times what a personal relay writes, because rows are the one line Cloudflare charges real money per unit.4242 4343 | Allowance | Amount | Cost |4444 |---|---|---|4545 | Events stored | 100 MB | $0.02 |4646 | Files stored | 1 GB | $0.015 |4747 | Time awake | 100 hours | $0.58 |48-| Rows written | 1 million | $1.00 |48+| Rows written | 250,000 | $0.25 |4949 5050 Few relays get near the allowance. A typical personal relay, 20 MB of events, 100 MB of files, eight hours awake and 100,000 rows a month, costs about 15 cents once the plan's included quotas are used up, and those quotas cover the first few dozen relays outright.5151 5252 ## The deployment5353 54-The script projects a fleet from two shapes, a typical relay and a heavy one that passes its allowances and pays fuel, at a chosen share of heavy relays. At 1,000 relays and 5% heavy, the Cloudflare bill is about $420 a month, fuel brings in about $220, and the gap is the free tier. Rows written are the largest line on the bill, then duration, then object requests, which nobody pays for because traffic is free to relays.54+The script projects a fleet from two shapes, a typical relay and a heavy one that passes its allowances and pays fuel, at a chosen share of heavy relays. At 1,000 relays and 5% heavy, the Cloudflare bill is about $420 a month, fuel brings in about $280, and the gap is the free tier. Rows written are the largest line on the bill, then duration, then object requests, which nobody pays for because traffic is free to relays.5555 5656 Two things follow. The free tier is a cost the paid relays and the host share, and its size is the lever: `FREE_ROWS_WRITTEN` is the expensive allowance. And the unpriced lines, requests above all, are real; the 33% target exists to absorb them, which is why the target is not lower.5757 @@ -38,7 +38,7 @@ export function fuelConfig(env: Record<string, unknown>): FuelConfig {
3838 freeEventsMB: num("FREE_EVENTS_MB", 100),3939 freeMediaMB: num("FREE_MEDIA_MB", 1024),4040 freeActiveHours: num("FREE_ACTIVE_HOURS", 100),41- freeRowsWritten: num("FREE_ROWS_WRITTEN", 1_000_000),41+ freeRowsWritten: num("FREE_ROWS_WRITTEN", 250_000),4242 satsPerGBMonthEvents: num("SATS_PER_GB_MONTH_EVENTS", 400),4343 satsPerGBMonthMedia: num("SATS_PER_GB_MONTH_MEDIA", 30),4444 satsPerActiveHour: num("SATS_PER_ACTIVE_HOUR", 11),@@ -35,7 +35,7 @@
3535 "FREE_EVENTS_MB": "100",3636 "FREE_MEDIA_MB": "1024",3737 "FREE_ACTIVE_HOURS": "100",38- "FREE_ROWS_WRITTEN": "1000000",38+ "FREE_ROWS_WRITTEN": "250000",3939 // Prices follow what Cloudflare bills us for the same thing, at about4040 // 1.5x, converted at 77,000 USD per bitcoin. `node scripts/margin.mjs`4141 // checks them against the rate of the day (docs/15-costs-and-margins.md).@@ -79,7 +79,7 @@
7979 "FREE_EVENTS_MB": "100",8080 "FREE_MEDIA_MB": "1024",8181 "FREE_ACTIVE_HOURS": "100",82- "FREE_ROWS_WRITTEN": "1000000",82+ "FREE_ROWS_WRITTEN": "250000",8383 "SATS_PER_GB_MONTH_EVENTS": "400",8484 "SATS_PER_GB_MONTH_MEDIA": "30",8585 "SATS_PER_ACTIVE_HOUR": "11",