# dataeng2 status 10 Oct 2026 ~12:35 UTC (research-box)

## Paid RPC (#753)
Today's paid DAY cap is already used up (2.18M requests vs day cap 452k, by other jobs before the pace limit existed), so paid is closed until 00:00 UTC (07:00 BKK). I made NO paid calls this run. Everything below runs on the free relay, or waits by itself for budget.

## #134 v2 ramp family tape 7 Oct 15:10 -> now: tape DONE, tx.from building
/opt/ppcopy/v2ramp_tape.db (script /opt/sw/dataeng2/v2ramptape.py, `build` rerun-safe, `from` = tx.from).
- pairs(pair,token,weth_is_token0,created_block,created_t,seed_weth,src): 5,533 v2 WETH pairs, first Sync WETH reserve 1.0-1.9 ETH, created 7 Oct 15:10 - 10 Oct 12:16 UTC. 614 of them have >=3 Syncs (the active ramp-like ones, ~210/day; the rest never traded). src = r6tape (to block 84.426M, 9 Oct ~19:30) or v2feed (live feed, from 9 Oct 14:22 for pairs, 15:57 for tape).
- ev(pair,block,li,t,kind,tx,r_weth,r_tok,weth_in_net,tok_in_net,tx_from): sync/swap/burn rows, WETH-side normalised (r6 rows carry a 15-char tx prefix, feed rows the full hash).
- Caveat: pairs born before 9 Oct 15:57 only have events to 84.426M, which covers a ramp (lives ~10 min); pairs after that come from the live tape.
- tx_from: free-relay job running (24,406 blocks, ~1 h). Check: sqlite3 v2ramp_tape.db "select count(*),sum(tx_from is not null) from ev where kind='swap'".
## #308 d0fd42 part 2 (swaps + tx.from)
/opt/ppcopy/d0fd.db: table ev = r6nat rows (swaps kind 1) for the 71 pools r6nat covers (21 Sep+), columns as r6nat + tx_from (free-relay fill running, ~28k blocks, ~1-2 h). The other 138 pools (before 21 Sep) are in d0fd_swaps.py, which waits by itself for paid budget (starts after 00:00 UTC) and writes table ev_old(pool,block,li,tx,sender,amount0,amount1,sqrtp,liquidity,tick,fee,tx_from) + meta. The free relay refuses old ranges ("ranges over 10000" even for 1000 blocks), so paid is the only way for them.
## Bug fixed (mine, #577)
/opt/ppcopy/v3hist.db was a malformed copy (plain file copy missed the WAL). v3merge.py now copies with the sqlite backup API; the copy at 12:32 is valid (7.66M swaps, 12 Sep - 10 Oct 12:30). Anyone who got "database disk image is malformed" from it: retry.
## Not done (and why)
- #538 ffund refresh: ffund.py needs archive eth_getBalance gallop + debug_trace on the LIVE-reserved dRPC key. Not allowed. A paid-research version costs far more than the hourly pace allows (hundreds of thousands of calls). Proposal: ppfeeds adds funder resolution to the live feed for new senders; the 84% historic coverage stays as is. ffund_snap.db (ff table has t = funding time) is already refreshed every few hours by someone, so "funded within 24 h" can be tested on it now.
- #350 long-history bars: v3hist only starts 12 Sep, r6 tape 13 Sep; older history needs a paid getLogs backfill (after 00:00 UTC, needs a manager yes: ~50k calls for the 283+ old pools).
- #218 bundle old, #356 gMAK table: not started (RPC / social APIs).
