Open jakesylvestre opened 4 years ago
@jakesyl really nice work here.
I haven't looked at the bitcoin python tests in a while (maybe a year or two) but I think something on the automated front is very much the way to go so we can keep track of where we stand.
I don't think we should import any python code into this repo though. Maybe we make a fork of the bitcoin tests in a separate repo? Not sure. Need to think on this issue a bit.
Also, as you point out, a bunch of this is for wallet and I honestly haven't given any thought to that repo yet.
I'm also going to need to create one of these around BIP's, so far I'm seeing (e.g. #1208). This isn't as straight forward as what I've done above but definitely something we need done to start prioritizing features
Agreed, that one is a bit harder to do, but totally useful.
I haven't looked at the bitcoin python tests in a while (maybe a year or two) but I think something on the automated front is very much the way to go so we can keep track of where we stand. I don't think we should import any python code into this repo though. Maybe we make a fork of the bitcoin tests in a separate repo? Not sure. Need to think on this issue a bit.
We already have a test of RPC level integration tests: https://github.com/btcsuite/btcd/tree/master/integration
As far as the RPCs, my personal stance is that we no longer need to attempt to mirror each RPC change bitcoind
makes. Their RPC interface has changed significantly over the past few years, and contains a number of wallet specific calls that don't apply to btcd
at all since it has no default wallet. Instead IMO, we should make the btcjson+client
package into a sub-module so it can be worked on (for those wanting to use it as an RPC client against bitcoind), independent of if we support that call on the server-side or not. We'd then do new release for those two packages (new module versions) as we started to update the calls.
I like this approach - it also allows us to focus on compatibility around BIPS
@jakesyl Is it possible to move the feature-parity matrix to the Wiki, so we can collaboratively keep it updated?
@onyb absolutely
I would like to help speed up Bitcoin Core compatibility in the rpcclient
module, as we are beginning to use it more extensively in our lnd+bitcoind systems at Muun (and apparently other Go users too judging by the number of stale pull requests).
@roasbeef above suggested moving the btcjson+rpcclient
modules out of the btcd
repo. I think this is a sensible approach and I offer help with bug/feature triage and ongoing maintenance if someone from the @btcsuite organization kickstarts this project by creating a new repo for the rpcclient and moving the code there.
Hi! Any update on this? I can help out with the migration if necessary.
@federicobond want to hop in irc?
@jakesyl where?
@federicobond #btcd on the Freenode network.
Is the getblocktemplate
RPC implemented on the client side? When I search the code I come across this:
@elliottminns We have the btcjson
structs in place, but not supported in rpcclient
yet.
Hi,
So I decided to open this after the discussion we had around #1545 regarding releases and around how versioning is based around compatibility with RPC. In addition to what's below, I'd eventually like some documentation around fields that are just wrong/outdated so we can get going on those. I've put this together for
getmempoolentry
in #1522 and it's probably a pretty good place to reference and see what I'm shooting for. I'll also add that there are two levels of compatibility for each methodrpcclient
andrpcserver
. The former is far easier to do and defines a template for the latter (see #1524) for reference.Would love to hear @jcvernaleo /@roasbeef's thoughts on this, but it might make sense to establish some standard priority around the
rpcclient
methods since they're so easy to fix/add. As far as tagging, I'd suggest the following for these PRs going forward:There's a few automated ways to figure this out we can look at in the mean time. Bitcoind has an awesome python based test framework I might be able to write a wrapper for to test
btcd
methods, but that'll require more investigation.~*Note: for convenience, I used rpcserver to check for methods since unimplemented tend to be there. In cases where they're not (I don't know of any) this will be inaccurate. Just add a comment and I'll fix it)~ This doesn't work and I didn't end up doing this, there are a bunch of methods missing
rpcunimplemented
, this should be fixedNote: A bunch of these probably are as simple as a command name change (e.g. account->label in wallet rpc's). These are included anyway
X marks a feature is complete.
As per request this list has been moved to the wiki
Blockchain
Control
Mining
Network
Raw Transactions
Util
Address
Note: server is not applicable here since that's in a different repo, I've also left Issue blank on these since issues are scattered across repos. I've left the column here so we can add in as we go
zmq