Well a compacF is around 5 or more times the speed of the older NewPacs.
So one compacF needs the same work generated and written to USB as about 5 NewPacs
Don't these stick miners check diff, if needed generate a new nonce and re-hash all by themselves?
Do they simply get data and send back a SHA-256 hash of it instead?
I always thought having the block generation done by the host would be way too much communication overhead and that all miners just had a small MCU on them which recreates a new block candidate.
That way, communication would only be a new block template with previous block hash and a set of transactions when needed, but not a communication round for each and every single attempt / hash.
It simply sends hashable work to the chip itself - called a midstate - that can be hashed 4 billion times.
Pool sends a stratum work base with the merkle slice, no transactions, and not the full merkle tree (about 1350 Bytes).
Miner 'generates' a coinbase transaction and then builds a block header.
Miner hashes that to a midstate, then sends that to the chip.
Transactions have nothing effectively to do with stratum, since that's way too much network and way too much overhead.
With transactions, the data per work change would be between 2MB and 8MB
This was called 'GBT' years ago and no one used it for the obvious reason, miners can't handle that much data and work,
and no one ever implemented a transaction selection on top of that - that only produces a biased network, which is a very bad idea.