What restrictions does mining hardware place on the Bitcoin block header?
Can you give mining hardware any 80 byte header and it will search it (updating the 4 nonce bytes and maybe the timestamp)?
Does the version field have to be positive?
Does the difficulty target have to be a reasonable value?
Does the previous hash have to have at least 32 zeros?
Does the merkle root have to encode at least a coinbase for the extraNonce?