LearnBitcoin

Bitcoin Dev Archive 2022

bitcoind -proxy=host:port doesn't work for unroutable network

2 messages, 23 Jul 2022. Started by Anton Shevchenko.

Anton Shevchenko (2)

Permalink Original thread on gnusha.org

Anton Shevchenko permalink original

Hello,

Got unexpected behavior when trying to run bitcoind with -proxy setting. -proxy is used to connect to SOCKS5 proxy which is able to access some internal network. bitcoind is started with -noconnect option and network activity is absent (as it should be).

Then I command bitcoin-cli to connect to node with address 10.x.y.z with the command bitcoin-cli addnode 10.x.y.z add

Expected behavior is for bitcoind to initiate connection through proxy. Actual behavior is bitcoind trying to connect without using proxy.

In the code: CConnman::ConnectNode calls GetProxy and GetProxy returns false because CNetAddr::GetNetwork returns NET_UNROUTABLE.

My take is this is unexpected behavior at minimum and should be documented. Better way is to introduce another option just for the unroutable addresses: - connect locally (for compatibility reasons, default); - connect thru proxy; - don't connect to unroutable addresses.

-- Anton Shevchenko

Anton Shevchenko in reply to Anton Shevchenko permalink original

Sorry to post here. Now I realize this is an implementation issue. Raised an issue at github - https://github.com/bitcoin/bitcoin/issues/25684

-- Anton Shevchenko

On Fri, Jul 22, 2022, at 10:08 PM, Anton Shevchenko via bitcoin-dev wrote:

Quoted text (31 lines)
> Hello,
>
> Got unexpected behavior when trying to run bitcoind with -proxy setting.
> -proxy is used to connect to SOCKS5 proxy which is able to access some
> internal network.
> bitcoind is started with -noconnect option and network activity is
> absent (as it should be).
>
> Then I command bitcoin-cli to connect to node with address 10.x.y.z
> with the command
> bitcoin-cli addnode 10.x.y.z add
>
> Expected behavior is for bitcoind to initiate connection through proxy.
> Actual behavior is bitcoind trying to connect without using proxy.
>
> In the code:
> CConnman::ConnectNode calls GetProxy and GetProxy returns false because
> CNetAddr::GetNetwork returns NET_UNROUTABLE.
>
> My take is this is unexpected behavior at minimum and should be documented.
> Better way is to introduce another option just for the unroutable addresses:
> - connect locally (for compatibility reasons, default);
> - connect thru proxy;
> - don't connect to unroutable addresses.
>
>
> --  Anton Shevchenko
> _______________________________________________
> bitcoin-dev mailing list
> bitcoin-dev@lists•linuxfoundation•org
> https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev