crypto/merkle: pre-allocate data slice in innherHash (#6443)

So we can reduce pressure on runtime for checking that slice has enough
capacity before appending.
This commit is contained in:
Cuong Manh Le
2021-05-12 16:02:15 +07:00
committed by GitHub
parent fdd506a126
commit a9fc0c32b2
2 changed files with 6 additions and 1 deletions

View File

@@ -93,6 +93,7 @@ Friendly reminder: We have a [bug bounty program](https://hackerone.com/tendermi
- [rpc] \#6265 set cache control in http-rpc response header (@JayT106)
- [statesync] \#6378 Retry requests for snapshots and add a minimum discovery time (5s) for new snapshots.
- [node/state] \#6370 graceful shutdown in the consensus reactor (@JayT106)
- [crypto/merkle] \#6443 Improve HashAlternatives performance (@cuonglm)
### BUG FIXES

View File

@@ -22,5 +22,9 @@ func leafHash(leaf []byte) []byte {
// returns tmhash(0x01 || left || right)
func innerHash(left []byte, right []byte) []byte {
return tmhash.Sum(append(innerPrefix, append(left, right...)...))
data := make([]byte, len(innerPrefix)+len(left)+len(right))
n := copy(data, innerPrefix)
n += copy(data[n:], left)
copy(data[n:], right)
return tmhash.Sum(data)
}