I read the changes for the ZCash Heartwood upgrade, and my current understanding is that there are no changes required to mine blocks due to the “shielded coinbase transaction” upgrade, but that there are major breaking changes required to support the new merkle tree. This understanding may be incorrect.
I have not been able to find any mining software code to determine if all the changes are already handled in the ZCash daemon before getblocktemplate is called, or whether the data that is sent to miners and submitted to the network actually needs to change. It seems to me that the miners won’t know the difference, because the documentation states that an existing field is used for the new merkle root, and that that was done on purpose. But it’s not clear to me from those documents whether any work needs to be done in the mining server to compute this different data, or whether the existing RPC calls perform this work in the daemon code with zero or minor changes required in the mining server.
Has anyone created a step-by-step “absolute minimum work” instruction manual, for pools that cannot afford to implement the shielded coinbase outputs and which are having trouble understanding what needs to be done with the merkle tree changes? It would be great if someone could weigh in on the minimal upgrade path here, so that we can decide whether to pay to upgrade or to discontinue ZCash mining.