HomePhabricator

rpc: Handle `getinfo` locally in bitcoin-cli w/ `-getinfo`

Description

rpc: Handle getinfo locally in bitcoin-cli w/ -getinfo

Summary:
This adds the infrastructure BaseRequestHandler class that takes care
of converting bitcoin-cli arguments into a JSON-RPC request object, and
converting the reply into a JSON object that can be shown as result.

This is subsequently used to handle the -getinfo option, which sends
a JSON-RPC batch request to the RPC server with
["getnetworkinfo", "getblockchaininfo", "getwalletinfo"],
and after reply combines the result into what looks like a getinfo
result.

There have been some requests for a client-side getinfo and this
is my PoC of how to do it. If this is considered a good idea
some of the logic could be moved up to rpcclient.cpp and
used in the GUI console as well.

Extra-Author: Andrew Chow <achow101@gmail.com>

Add test for bitcoin-cli -getinfo

Extra-Author: Andrew Chow <achow101@gmail.com>

Backport of PR10871
https://github.com/bitcoin/bitcoin/pull/10871

Completes T586

Test Plan:
make check
test_runner.py
bitcoin-cli -getinfo

Reviewers: jasonbcox, deadalnix, Fabien, O1 Bitcoin ABC, #bitcoin_abc

Reviewed By: deadalnix, O1 Bitcoin ABC, #bitcoin_abc

Differential Revision: https://reviews.bitcoinabc.org/D2787

Details

Provenance
Wladimir J. van der Laan <laanwj@gmail.com>Authored on Sep 29 2016, 14:45
nakihitoCommitted on Apr 9 2019, 22:46
jasonbcoxPushed on Apr 10 2019, 17:46
Reviewer
Restricted Owners Package
Differential Revision
D2787: rpc: Handle `getinfo` locally in bitcoin-cli w/ `-getinfo`
Parents
rSTAGINGf0c760c61323: Fix increment in rpc/mining.cpp when coinbase tx is skipped
Branches
Unknown
Tags
Unknown