-
Notifications
You must be signed in to change notification settings - Fork 845
Anonymity networks integration #4444
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Anonymity networks integration #4444
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Quick pass
main.qml
Outdated
if (persistentSettings.i2pAllowIncomingConnections) { | ||
var i2pAddress = i2pManager.getAddress(); | ||
var i2pPort = i2pManager.getP2PPort(); | ||
daemonFlags += ' --anonymous-inbound ' + i2pAddress + ":" + i2pPort + ",127.0.0.1:" + i2pPort; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
daemonFlags += ' --anonymous-inbound ' + i2pAddress + ":" + i2pPort + ",127.0.0.1:" + i2pPort; | |
daemonFlags += ' --anonymous-inbound ' + i2pAddress + "," + i2pPort; |
main.qml
Outdated
if (persistentSettings.proxyEnabled && persistentSettings.proxyType === "I2P") { | ||
daemonFlags += " --proxy 127.0.0.1:4447"; | ||
} | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
don't use outproxy or i2p for proxy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Outproxy is never used as --proxy
for monerod. If I don't set up i2p proxy in monerod it won't be able to communicate with remote bootstrap i2p nodes, or am I wrong?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Bootstrap i2p and onion nodes arent possible
(the node's using --public-node have no knowledge of the onion/i2p hostname that is being fwd to the rpc port, therefore arent able to broadcast their onion/i2p hostnames to peers)
supporting onion/i2p bootstrap nodes should be out of scope for this pr.
btw, bootstrap nodes will use whatever is set to --proxy
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes, I remember we talked about it, but I implemented a custom bootstrap node searcher for i2p, I wanted to let @Gingeropolous try this feature, even though I know that the implementation of this feature is not very likely to be merged.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
the rpc i2p/onion is not broadcasted to peers.
main.qml
Outdated
if (persistentSettings.torAllowIncomingConnections) { | ||
var torAddress = torManager.getAddress(); | ||
var torP2PPort = torManager.getP2PPort(); | ||
daemonFlags += ' --anonymous-inbound ' + torAddress + ":" + torP2PPort + ",127.0.0.1:" + torP2PPort; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
daemonFlags += ' --anonymous-inbound ' + torAddress + ":" + torP2PPort + ",127.0.0.1:" + torP2PPort; | |
daemonFlags += ' --anonymous-inbound ' + torAddress + ":" + torP2PPort + "," + torP2PPort; |
|
||
if (persistentSettings.i2pEnabled || persistentSettings.torEnabled) { | ||
daemonFlags += " --pad-transactions"; | ||
daemonFlags += " --rpc-restricted-bind-ip 127.0.0.1"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
daemonFlags += " --rpc-restricted-bind-ip 127.0.0.1"; | |
daemonFlags += " --rpc-restricted-bind-ip 127.0.0.1"; |
should be configurable (0.0.0.0 etc)
d177711
to
e1caecd
Compare
e1caecd
to
d3d8e90
Compare
No merge commits. Rebase instead (drop the last 2 commits, please and thanks) |
Dropping merge commits isnt as easy as an interactive rebase. I suggest you drop them before making further commits |
Why isn't this solution accepted yet? Are there problems other than building static binaries? If there is docker-android CI workflow, do we need to care about it? Things like p2pool only download binaries for non-android systems. Does this issue still need developers and monero bounty is available for new bountyhunters? |
Sorry, I just saw it, I'll fix it this afternoon, thank you @nahuhh 🙏 |
I'm currently just fixing the static build for Windows and Linux. I already have the fix locally for Linux and I'm currently working on the Windows one, so I don't think I need help anymore. There are a few details to iron out in this PR, but it's pretty much complete. I think I'll upload everything needed to complete this work today, thanks @kamimoridev |
0773e33
to
ab3a49a
Compare
ab3a49a
to
a064b42
Compare
c5cdd61
to
94211a3
Compare
94211a3
to
dbbcf5f
Compare
The changes made in this PR enable new options for the wallet to start and manage TOR and I2P services that monerod can use to interface its connections. The current approach uses socks5, so due to likely limitations in the monero node communication protocol, blockchain synchronization happens under Clearnet if using an I2P-only setup. It is probably best to build i2p separately and modify the I2PDaemonManager code to be a simple wrapper (like DaemonManager) for the i2pd executable.