Hello,
Thanks, we are always interested in contributions.
As Neill points out, we have taken steps toward integration of a SOCKS5
proxy in our client-server protocol. We worked with iMatix last year to
get SOCKS5 directly into zeromq. There remains some work to do in terms
of integration and config in libbitcoin. The client-server networking
primitives are implemented in libbitcoin-protocol and the interface is
defined in libbitcoin-client and libbitcoin-server.
With respect to the Bitcoin (P2P) protocol, this is implemented in
libbitcoin-network and extended to include block and transaction sync in
libbitcoin-node. Any proxy implementation would be isolated to
libbitcoin-network, specifically bc::network::connector and
bc::network::acceptor, as well as bc::network::settings.
However, I must strongly urge caution here. Attacks against Bitcoin over
Tor are cheap and effective. In general, P2P networking over Tor is unsafe.
https://arxiv.org/pdf/1410.6079.pdf
On the other hand, the client-server protocol can operate safely over
Tor as long as random timing delays are introduced at the server for
subscription notifications (e.g. address, tx, block) and for client
posts (e.g. tx). A random delay for block submission (mining) would be
necessary as well, but would not make sense economically.
e
On 06/04/2016 08:00 AM, Neill Miller wrote:
> Yes, this would be useful!
>
> Please see this issue for some related discussion:
>
> https://github.com/libbitcoin/libbitcoin-server/issues/86
>
> -Neill.
>
> On Sat, Jun 04, 2016 at 12:38:05PM +0000, Police Terror wrote:
>> I know the SOCKS5 protocol and how to implement it in C++. The standard
>> is fairly easy and there's also a reference implementation in Bitcoin-Core.
>>
>> Would this be a useful thing for me to implement and submit to
>> libbitcoin-network? Basically does the SOCKS5 handshake so the connect
>> is initiated and ready to work over Tor.
>>
>> The usecase for having a server running over Tor is 2-fold:
>>
>> 1. You don't want a passive observer to know you are running/developing
>> Bitcoin applications for safety reasons.
>>
>> 2. Reduces the ability of targeted attacks on servers. Sybil attack .etc
>>
>> _______________________________________________
>> Libbitcoin mailing list
>> Libbitcoin@???
>> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/libbitcoin
> _______________________________________________
> Libbitcoin mailing list
> Libbitcoin@???
> https://mailinglists.dyne.org/cgi-bin/mailman/listinfo/libbitcoin
>