func (m *MemEngine) LookupRoot() (Hash, error) {
	return m.root, nil
}
LookupRoot fetches the root of the in-memory tree back out
package merkleTree
import (
	"crypto/sha512"
	"encoding/hex"
)
type MemEngine struct {
	root  Hash
	nodes map[string][]byte
}
func NewMemEngine() *MemEngine {
	return &MemEngine{
		nodes: make(map[string][]byte),
	}
}
var _ StorageEngine = (*MemEngine)(nil)
func (m *MemEngine) CommitRoot(prev Hash, curr Hash, txinfo TxInfo) error {
	m.root = curr
	return nil
}
func (m *MemEngine) Hash(d []byte) Hash {
	sum := sha512.Sum512(d)
	return Hash(sum[:])
}
func (m *MemEngine) LookupNode(h Hash) (b []byte, err error) {
	return m.nodes[hex.EncodeToString(h)], nil
}