creating2morrow / neveko

full-stack privacy application with enciphered messaging, monero multisig and built-in i2p marketplace
http://neveko.i2p
MIT License
29 stars 3 forks source link

allow passing of remote monero node #20

Closed snex closed 1 year ago

snex commented 1 year ago

Hi, just found this project. Looks very cool!

When I try to run the neveko app, it complains that it cannot find monerod. I am running monerod on a different machine on my network. Can you please implement an option to supply a remote monero node address? Thanks.

creating2morrow commented 1 year ago

Thanks! it is possible to connect to a remote node. docs are still in progress but when you pass -h flag you can see the neveko cli args. There needs to be a checkbox from gui. For now you can go to neveko root and perform a similar command with your monerod node:

./scripts/build_all_and_run.sh "-- --monero-rpc-daemon http://stagenet.community.rino.io:38081 --remote-node --monero-location /path/to/monero-x86_64-linux-gnu-v0.18.2.2/ --i2p-zero-dir /path/to/i2p-zero-linux.v1.21/"

if you want to access the other mirco servers for testing the --remote access is needed and some docs are in docs/curl.md (needs to be updated) *the path to monero binaries are still needed so neveko can start its own monero-wallet-rpc instance

then go to gui

cd neveko-gui

start gui

RUST_LOG=debug cargo run
creating2morrow commented 1 year ago

@snex I pushed some changes that should facilitate remote node from gui now. Will publish release binaries from the workflow below when done. If compiling from source the changes can be tested immediately.

https://github.com/creating2morrow/neveko/actions/runs/5322801512

snex commented 1 year ago

Thanks - is there also a way to point to a remote i2p daemon? I have my home network in a way that everything is on its own host. The i2p-proxy-host command line option does not seem to help. App just ends with this:

[2023-06-20T13:52:54Z INFO  neveko_core::i2p] creating tunnel
thread 'main' panicked at 'i2p-zero failed to create a tunnel: Os { code: 2, kind: NotFound, message: "No such file or directory" }', neveko-core/src/i2p.rs:139:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
creating2morrow commented 1 year ago

Thanks - is there also a way to point to a remote i2p daemon? I have my home network in a way that everything is on its own host. The i2p-proxy-host command line option does not seem to help. App just ends with this:

[2023-06-20T13:52:54Z INFO  neveko_core::i2p] creating tunnel
thread 'main' panicked at 'i2p-zero failed to create a tunnel: Os { code: 2, kind: NotFound, message: "No such file or directory" }', neveko-core/src/i2p.rs:139:10
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

@snex i2p-zero has to run locally because all traffic besides downloads from the installation manager get tunneled through i2p. it can be daemonized like Tor with a systemd service too. what did you pass for the --i2p-zero-dir argument? or i2p-zero dir in the gui?

snex commented 1 year ago

I do not have i2p-zero installed on the machine attempting to run neveko. I am hoping to avoid this and route everything through the separate machine running i2p.

creating2morrow commented 1 year ago

Ok, I see. Since the machine with neveko doesn't have i2p it won't be possible for the app to startup without some changes. If you have configured a separate server as http proxy server then the i2p-proxy-host flag is right. But you will have to manually configure the tunnels and disable i2p completely from neveko:

stop i2p startup by commenting out this line https://github.com/creating2morrow/neveko/blob/main/neveko-core/src/utils.rs#L499

manually create an i2p-zero directory with tunnels.json file from the address in the manually created tunnel

{"tunnels": [
  {
    "port": "9000",
    "dest": "DESTINATION.b32.i2p"
  }
]

port needs to match whatever the app port is

next these lines need to be changed to find your tunnels.json https://github.com/creating2morrow/neveko/blob/main/neveko-core/src/i2p.rs#L188

i will create a flag/logic to ignore neveko i2p-zero for advanced users so these changes don't need to be made.

creating2morrow commented 1 year ago

@snex also I will move this to #22 since original issue was for remote monero node.