Commit graph

24 commits

Author SHA1 Message Date
Alex 0878c162dd gcs: update benchmarks to use correct import 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun e14ee486e6 gcs: fix constant overflow for 32-bit systems 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun 18097a52c4 gcs: explicitly optimize inner loop of gcs filter computation 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun c26776fe48 gcs: add an extra benchmark for a filter with 100k items 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun e87fef40f3 gcs: ensure benchmarks aren't optimized away by the compiler
This commit modifies the benchmarks a bit to ensure that the
computations themselves aren’t optimized away. We do this by binding
each variable to a local variable, and them ultimately a variable at
the package level scope.
2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun 5a770ec85e gcs/builder: an empty filter has a zero-hash 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun 65172ea539 gcs/builder: ignore scripts with no data pushes 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun b3d8578868 gcs: add witness stack items to filter, update tests 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun c01c00e8b4 gcs: check to see if sigScript exists before adding it 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun 0830c7046f gcs: fix slight typo in docs, 2^-n not 2^-1 2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun c59d7e8fba gcs: pre-allocate capacity of slice for uncompressed filter values
This change will reduce the total number of allocations required to
create/store the allocated filter as we’ll now perform a _single_
allocation, rather than one each time the the dynamically size slice
reaches capacity.
2018-05-15 19:14:18 -07:00
Olaoluwa Osuntokun 0f2eb80fdb gcs: add some line spacing, wrap comments to 80 characters 2018-05-15 19:14:18 -07:00
Alex e3c79234e6 gcs/builder: Add pre-BIP block filter and header calculations. 2018-05-15 19:14:18 -07:00
Alex f74edf2c4d gcs: allow optional de/serialization of N and P parameters 2018-05-15 19:14:18 -07:00
Alex ca65f28ca1 Ignore error from txscript.PushedData 2018-05-15 19:14:18 -07:00
Alex 12e95e2790 gcs: improve test coverage for builder 2018-05-15 19:14:18 -07:00
Alex 197462ade8 README.md fixes 2018-05-15 19:14:18 -07:00
Alex 856e3a320d Change OutPoint index encoding to little-endian to match Bitcoin 2018-05-15 19:14:18 -07:00
Alex 119a03a3ca Add comment to DefaultP to fix lint issue with exported constant. 2018-05-15 19:14:18 -07:00
Alex 6654eb61e4 Add filter builder and some tests 2018-05-15 19:14:18 -07:00
Alex 53c8e22157 Change tests to use gcs.Filter instead of custom interface 2018-05-15 19:14:18 -07:00
Alex b21739c0e2 Fix issues found by golint without changing API. 2018-05-15 19:14:18 -07:00
Alex 684cf07725 Rename gcsFilter type to GCSFilter to export it. 2018-05-15 19:14:18 -07:00
Alex 3069dcf175 gcs: add package for building and using Golomb-coded set filters 2018-05-15 19:14:18 -07:00