feat: add getaddednodeinfo rpc#1114
Open
jaoleal wants to merge 4 commits into
Open
Conversation
jaoleal
commented
Jun 3, 2026
| let ip = addr_str | ||
| .parse::<IpAddr>() | ||
| .map_err(|_| JsonRpcError::InvalidAddress)?; | ||
| (ip, 8333) |
Member
Author
|
Ill rebase after #1114 (comment) |
7cf11ba to
a9319c4
Compare
Add the wire-layer plumbing for the getaddednodeinfo RPC: - AddedNodeInfo struct in node_interface - UserRequest::GetAddedNodeInfo and NodeResponse::GetAddedNodeInfo variants - get_added_node_info() method on NodeInterface - handle_get_added_node_info() implementation in peer_man - Match arm in perform_user_request()
Register the getaddednodeinfo RPC endpoint in the JSON-RPC server: - Add get_added_node_info() handler in network.rs - Register "getaddednodeinfo" route in server.rs - Add RPC documentation
Add getaddednodeinfo to the FlorestaRPC trait and its blanket implementation for JSON-RPC clients. Wire the new method into the floresta-cli binary as a subcommand.
Add Python integration test verifying getaddednodeinfo returns correct information about manually added nodes, and add the get_added_node_info() wrapper to the test framework.
a9319c4 to
71aadb4
Compare
Member
Author
|
Rebased
|
| .filter_map(|added| { | ||
| // If a node filter is specified, skip entries that don't match | ||
| if let Some(filter) = &node { | ||
| if &added.address != filter { |
Member
There was a problem hiding this comment.
Suggested change
| if &added.address != filter { | |
| if added.address != *filter { |
| } | ||
|
|
||
| let connected = self.peers.values().any(|peer| { | ||
| peer.address.as_bitcoin_socket_addr() == &added.address |
Member
There was a problem hiding this comment.
Suggested change
| peer.address.as_bitcoin_socket_addr() == &added.address | |
| *peer.address.as_bitcoin_socket_addr() == added.address |
| /// Information about a manually added node (via `addnode`). | ||
| pub struct AddedNodeInfo { | ||
| /// The address of the added node in "ip:port" format. | ||
| pub addednode: String, |
| { | ||
| let mut cpc_addresses: Vec<AddedNodeAddress> = vec![]; | ||
|
|
||
| for floresta_wire::node_interface::AddedNodeAddress { address, connected } in addresses |
Member
There was a problem hiding this comment.
Suggested change
| for floresta_wire::node_interface::AddedNodeAddress { address, connected } in addresses | |
| AddedNodeAddress |
Can't this function use combinators?
| After adding a node via addnode and connecting, getaddednodeinfo should | ||
| report the node as connected with a populated addresses array. | ||
| """ | ||
| bitcoind = add_node_with_extra_args(NodeType.BITCOIND, ["-v2transport=0"]) |
Comment on lines
+58
to
+59
| bitcoind_a = add_node_with_extra_args(NodeType.BITCOIND, ["-v2transport=0"]) | ||
| bitcoind_b = add_node_with_extra_args(NodeType.BITCOIND, ["-v2transport=0"]) |
Comment on lines
+396
to
+403
| def get_added_node_info(self, node: Optional[str] = None) -> list: | ||
| """ | ||
| Get information about manually added nodes. | ||
| node: optional filter — return only this added node's info | ||
| """ | ||
| params = [node] if node is not None else [] | ||
| return self.perform_request("getaddednodeinfo", params) | ||
|
|
Member
There was a problem hiding this comment.
I think utreexod doesn't have this RPC
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description and Notes
add get addednodeinfo rpc that returns info about the nodes that were manually added and their addresses and wheter theyre connected.
Split of #916
How to verify the changes you have done?
I tried to cover the basic cases so:
Read & Run integration tests.