Age | Commit message (Collapse) | Author |
|
Co-authored-by: Mark "Murch" Erhardt <murch@murch.one>
|
|
In this commit, we add a new test case for a filter built from a block
that has a transaction with an OP_RETURN which isn't followed by only
push data items. The prior implementation for btcd (which was used to
generated these test vectors), had a stricter check which caused it to
add extra items to the filter. We also add a case of a block that has a
single coinbase transaction, with that transaction having only an
OP_RETURN output. As a result, that filter will be "empty", and is
signalled by by a single zero (0x00) byte.
In order to make building the code that makes the test vectors
reproducible, we've added go.mod and go.sum files as well.
|
|
|
|
In this commit, we simplify the code that generates the test vectors to
only generate filters for a target fp of 19, and also only for the
regular filter, as it's the only filter type currently defined.
The test vectors have also been updated to include the previous output
scripts for all input within a block as these are now required to
construct the regular filter.
Finally, the generation code has been updated to properly fetch the
previous input scripts to the generation code can verify the filter it
generates manually against the end server.
|
|
The JSON format is standard for Bitcoin Core test data.
|
|
In this commit, we add test vectors for filter and header construction and
the code to generate them. The included test vectors are for testnet with a
value of 20 for P. The code generates filters and headers for values of 1
through 32 for P using testnet blocks. Currently, to run the code,
the `Roasbeef` fork of `btcd` (at https://github.com/roasbeef/btcd) is
required to be running locally in testnet mode; this will be changed in a
future commit after the code is merged into the `btcsuite` mainline.
|