go-ethereum/trie/bintrie
CPerezz 3885e539b7
trie/bintrie: revert sha256 helper + parallelHashDepth constant
Gballet asked (comment 3099953085) to leave the sha256Sum256 / constant
parallelHashDepth optimisation out of this PR: it's an orthogonal
microbenchmark concern that should be revisited post-group-depth under
Go 1.26.

- Delete the sha256Sum256 helper from hasher.go.
- Delete the const parallelHashDepth = 4 from hasher.go.
- Restore master's dynamic parallelDepth() helper in store_commit.go
  (copy verbatim — min(bits.Len(NumCPU), 8)).
- In hashInternal's shallow-parallel branch, call sha256.Sum256 directly
  (std-lib, stack-allocated [32]byte; common.Hash is a type alias for
  [32]byte so no conversion needed).
- In hashInternal's deep-sequential branch, use the pooled newSha256 /
  returnSha256 hasher (matches master's internal_node.go:170-185).

Intentional trade-off: the deep branch now re-introduces per-hash
sync.Pool Get/Put plus a 32-byte h.Sum(nil) allocation. Zero regression
vs master; foregoes the arena's proposed stack-based hashing until
Go 1.26 + post-group-depth benchmarks.
2026-04-18 18:50:45 +02:00
..
binary_node.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
binary_node_test.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
hashed_node.go trie/bintrie: use type alias for HashedNode 2026-04-18 18:38:37 +02:00
hashed_node_test.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
hasher.go trie/bintrie: revert sha256 helper + parallelHashDepth constant 2026-04-18 18:50:45 +02:00
internal_node.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
internal_node_test.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
iterator.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
iterator_test.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
key_encoding.go trie/bintrie: spec change, big endian hashing of slot key (#34670) 2026-04-13 09:42:37 +02:00
node_ref.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
node_store.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
stem_node.go trie/bintrie: port dirty flag + CollectNodes skip-clean from master 2026-04-18 18:45:12 +02:00
stem_node_test.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
store_commit.go trie/bintrie: revert sha256 helper + parallelHashDepth constant 2026-04-18 18:50:45 +02:00
store_ops.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
trie.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00
trie_test.go trie/bintrie: unexport package-internal arena identifiers 2026-04-18 18:49:04 +02:00