A miner mining on Foundry shared the following stratum job data with me. I’ve anonymized it a bit.
| first job arrival timestamp | mining on block | duration on this tip |
|---|---|---|
| 15:48:16.700 | 941880 Foundry | ~ 98s |
| 15:49:54.200 | 941881 AntPool (stale) | ~ 1s |
| 15:49:55.300 | 941881 Foundry | ~ 112s |
| 15:51:47.350 | 941882 ViaBTC (stale) | ~ 1.3s |
| 15:51:48.700 | 941882 Foundry | ~ 192s |
| 15:55:00.500 | 941883 Foundry | > 5min |
My takeaway from this is:
- at 15.49:54, Foundry send a job building on top of the AntPool 941881 block, but switched to it’s Foundry 941881 block around 1s later
- then, at 15:51:47, ViaBTC found a block at height 941882, Foundry switched to this block, but after 1.3s switched to Foundry’s 941882
Foundry switching to their own block (e.g. with preciousblock) is a very reasonable thing to do for them. We know Foundry has been doing this for a while, and AntPool, for whatever reason, does not: Mining Pool Behavior during Forks
This also shows that Foundry too saw the AntPool and ViaBTC blocks arriving first. However, it’s not unreasonable that a miner submitted a valid share even after the AntPool & ViaBTC blocks where known to the network. See e.g. AntPool mines two blocks at height 925051 where AntPool miners found two valid shares at a similar time.