Page MenuHomePhabricator

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

Authored by nakihito on Apr 9 2019, 01:06.

Details

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

Diff Detail

Repository
rABC Bitcoin ABC
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

Owners added a reviewer: Restricted Owners Package.Apr 9 2019, 01:06
deadalnix added inline comments.
src/bitcoin-cli.cpp
235 ↗(On Diff #8003)

Fix comment layout

This revision is now accepted and ready to land.Apr 9 2019, 14:54
nakihito marked an inline comment as done.

Fixed comment format.

This revision was automatically updated to reflect the committed changes.