hash: introduce memory-optimized merkle root hash calculation routine

NewMerkleTree is a memory hog, we can do better than that:

BenchmarkMerkle/NewMerkleTree-8                       13          88434670 ns/op        20828207 B/op     300035 allocs/op
BenchmarkMerkle/CalcMerkleRoot-8                      15          69264150 ns/op               0 B/op          0 allocs/op
This commit is contained in:
Roman Khimov 2020-09-15 18:38:15 +03:00
parent 3f27cf5901
commit d52e79668b
9 changed files with 83 additions and 33 deletions

View file

@ -66,10 +66,7 @@ func createGenesisBlock(cfg config.ProtocolConfiguration) (*block.Block, error)
Nonce: 2083236893,
},
}
if err = b.RebuildMerkleRoot(); err != nil {
return nil, err
}
b.RebuildMerkleRoot()
return b, nil
}