Roman Khimov
41ab7a85a7
hash: avoid allocation in RipeMD160 calculation
2021-12-02 16:11:09 +03:00
Roman Khimov
d4a2f4d8b9
hash: suppress staticcheck warning
2021-05-12 22:52:32 +03:00
Roman Khimov
df12adaa9e
crypto: remove crypto.Verifiable interface
...
We can now verify any hash.Hashable thing.
2021-03-26 13:45:18 +03:00
Roman Khimov
b56e028733
*: add more package-specific documentation
...
For the most important packages at least.
2021-03-19 16:18:45 +03:00
Evgeniy Stratonikov
2f490a3403
block: remove ConsensusData
field
2021-03-10 13:38:44 +03:00
Roman Khimov
d52e79668b
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
2020-09-15 18:38:15 +03:00
Roman Khimov
e41d434a49
*: move all packages from CityOfZion to nspcc-dev
2020-03-03 17:21:42 +03:00
Evgenii Stratonikov
a3dacd3b74
tests: replace t.Fatal with require where possible
...
This makes tests less verbose and unifies the style
they are written in.
2020-03-02 17:22:27 +03:00
Roman Khimov
5dd8d29534
hash: improve merkle tree testing
...
Make it 100% covered.
2019-12-25 14:43:50 +03:00
Roman Khimov
ddad9ac9a3
hash: simplify merkle tree error handling
...
buildMerkleTree() is internal to the hash package and if anyone calls it with
`len(leaves) == 0` he deserves a panic. As it's the only error case in it, we
can remove error value return from this function and simplify NewMerkleTree().
2019-12-25 14:38:48 +03:00
Roman Khimov
ee28fb08f6
crypto: move merkle tree into the hash package
...
It's all about hashes, so it makes sense putting it there.
2019-12-25 11:28:59 +03:00
Roman Khimov
7e83078d13
hash: remove useless no-op decoding
...
It changes nothing here.
2019-12-12 17:58:34 +03:00
Evgenii Stratonikov
7179e4ba9f
util: add LE suffix to Uint256 methods
2019-12-06 12:16:55 +03:00
Evgenii Stratonikov
57efad912c
util: add LE suffix to Uint160 methods
2019-12-06 12:16:55 +03:00
Evgenii Stratonikov
4d82419776
crypto: add missing tests for hash pkg
2019-11-29 11:03:03 +03:00
Vsevolod Brekelov
8ee421db14
fix spelling and godoc comments
2019-10-22 17:56:03 +03:00
Roman Khimov
bd1f70366a
crypto: change files mode to 644 (some *.go had exec flags set)
2019-09-17 15:34:00 +03:00
Roman Khimov
3fa6ba9c7b
hash: simplify ripemd160 usage
...
Go's Hash is explicitly specified to never return an error on Write(), and our
own decoding functions only check for length which is gonna be right in every
case so it makes no sense returning errors from these functions.
2019-08-26 13:32:19 +03:00
Roman Khimov
80c3c9035a
hash: simplify Sha256 implementations
...
Use sha256.Sum256() and drop duplicating Sum() completely.
2019-08-26 13:32:19 +03:00
Roman Khimov
5c5878968b
hask: import package from _pkg.dev, make it compile
2019-08-26 13:32:19 +03:00