-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add target for coin selection #14
Comments
This is a really cool project, cannot wait to see it take off! Just a note about the branch-and-bound provided by the Helpful links:
cc @LLFourn It'll be cool to have some sort of differential testing (love to hear ideas as to how we should compare the outputs). My point is that don't expect |
cc @nymius |
Hello @brunoerg I'm working on coin-selection simulator. The idea is to have a common framework to run test consistently over different bitcoin coin selection implementations. I mainly followed this simulator, but dropped the node requirements of bitcoin-core test framework and tried to generalize it so more coin-selection projects can implement the needed methods to take advantage of the simulator without much work. Currently the simulator has interfaces with bitcoindevkit/coin-select, bitshala/rust-coin-select and an independent python implementation of bitcoin core algorithms. I implemented them as a proof of concept, the code can be flaky. Now I'm trying to isolate the bitcoin-core coin-selection core code, looking for testing it without having to work with all the other aspects of a wallet. I mention all this because I've never applied Do you already have some considerations about how this should be done? @evanlinjin I propose this as a first output comparison proxy candidate. |
Differential fuzzing is used to identify discrepancies in the behavior of different implementations of the same specification or protocol. It works by providing the same inputs to multiple implementations and observing the output. "Target" is basically a code that will receive the bytes from fuzzer, send them to the applications under test and will act as an oracle to compare the outputs. As @evanlinjin said, we do not expect BnB from Core and BDK to have EXACTLY same results, so we need a way to compare their outputs, will take a look at your comparison code. |
A target to perform differential fuzzing between BDK and Bitcoin Core, especially for BnB, would be nice!
The text was updated successfully, but these errors were encountered: