Currently our functional tests require setting the global util.node_fastmerkle with an Elements node, and to compute merkle roots in blocktools.py we call an RPC on this node. This is ugly and crazy and causes mysterious failures when adding new tests. We should just implement sha2 midstates in Python (there is plenty of MIT-licensed code floating around which does this, for example https://github.com/slush0/stratum-mining-proxy/blob/master/mining_libs/midstate.py ).