Skip to content
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

Stopgap: list of directory nodes #1445

Open
AdamISZ opened this issue Feb 1, 2023 · 11 comments
Open

Stopgap: list of directory nodes #1445

AdamISZ opened this issue Feb 1, 2023 · 11 comments

Comments

@AdamISZ
Copy link
Member

AdamISZ commented Feb 1, 2023

Our current defaults are here.

Here is a newly proposed one: ylegp63psfqh3zk2huckf2xth6dxvh2z364ykjfmvsoze6tkfjceq7qd.onion:5222

We could add more to this page over time.

"Stopgap": because, the only realistic solution I think, over time, is some kind of gossip of directory nodes done dynamically, via something like seed directory nodes. There is a lot to discuss about that idea, and nothing has been coded yet. Hence as a stopgap, barring regularly re-releasing the software every week or something, we can perhaps just list possible directory nodes here. The idea is that they don't need trust, they are very lightweight, and they don't hold funds nor user information.

@AdamISZ
Copy link
Member Author

AdamISZ commented Feb 8, 2023

It's worth mentioning something here: users want access to all counterparties. This is why we've always had a focus on "connect to every message channel, redundantly".

In contrast, "well let's just connect to some random set out of a long list", as in a gossip network, is harder to fit into our model. You want to see everyone's messages, not just "be informed of a global state update" (as in e.g. bitcoin, where gossip can make a lot more sense; you only need a few, or even one node, to tell you about a valid state update).

@CohibAA
Copy link

CohibAA commented Mar 3, 2023

Here is another new directory node for consideration: wkd3kd73ze62sqhlj2ebwe6fxqvshw5sya6nkvrgcweegt7ljhuspaid.onion:5222
plq5jw5hqke6werrc5duvgwbuczrg4mphlqsqbzmdfwxwkm2ncdzxeqd.onion

I'll be using it to troubleshoot #1435

edit: The original troubleshooting node server is currently down. It has been replaced with plq5jw5hqke6werrc5duvgwbuczrg4mphlqsqbzmdfwxwkm2ncdzxeqd.onion:5222 which should be a "permanent" node.

@AdamISZ
Copy link
Member Author

AdamISZ commented Mar 10, 2023

Here is another new directory node for consideration: wkd3kd73ze62sqhlj2ebwe6fxqvshw5sya6nkvrgcweegt7ljhuspaid.onion:5222

I'll be using it to troubleshoot #1435

Thanks!

@Grov-r
Copy link

Grov-r commented Oct 21, 2023

Is there a limit to the number of directories you can add? Added these two alternates (yleg, wkd3) after the original 3,, and on startup, it only tries to connect to 3 of them based on the logs.

2023-10-19 22:38:02,430 [MainThread ] [INFO ] Trying to connect to node: bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion:5222
2023-10-19 22:38:02,446 [MainThread ] [INFO ] Trying to connect to node: g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222
2023-10-19 22:38:02,449 [MainThread ] [INFO ] Trying to connect to node: 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222
2023-10-19 22:38:28,596 [MainThread ] [INFO ] Updating status to connected for peer 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222.
2023-10-19 22:38:28,604 [MainThread ] [INFO ] We, NOT-SERVING-ONION, are calling the handshake callback as client.
2023-10-19 22:38:28,606 [MainThread ] [INFO ] Sending this handshake: {"app-name": "joinmarket", "directory": false, "location-string": "NOT-SERVING-ONION", "proto-ver": 5, "features": {}, "nick": "J52psgw98cxvaRaX", "network": "mainnet"} to peer 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222
2023-10-19 22:38:40,224 [MainThread ] [INFO ] Updating status to connected for peer g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222.
2023-10-19 22:38:40,237 [MainThread ] [INFO ] We, NOT-SERVING-ONION, are calling the handshake callback as client.
2023-10-19 22:38:40,238 [MainThread ] [INFO ] Sending this handshake: {"app-name": "joinmarket", "directory": false, "location-string": "NOT-SERVING-ONION", "proto-ver": 5, "features": {}, "nick": "J52psgw98cxvaRaX", "network": "mainnet"} to peer g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222
2023-10-19 22:38:40,299 [MainThread ] [DEBUG] We got a disconnect event: g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222

@CohibAA
Copy link

CohibAA commented Oct 21, 2023

Is there a limit to the number of directories you can add? Added these two alternates (yleg, wkd3) after the original 3,, and on startup, it only tries to connect to 3 of them based on the logs.

I don't believe so, I have several in my configs that all seem to at least attempt to connect. Maybe double check the formatting, I remember having a similar problem and was either missing a comma or port number iirc.

Note, I've edited my comment above due to the wkd3 node being down currently (not related to the issues here).

@roshii
Copy link
Contributor

roshii commented Dec 5, 2023

new node to consider:
odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion:5222

@kristapsk
Copy link
Member

the only realistic solution I think, over time, is some kind of gossip of directory nodes done dynamically, via something like seed directory nodes. There is a lot to discuss about that idea, and nothing has been coded yet.

I think with recent news regarding coinjoins, we should prioritize this and start discussing solutions.

@roshii
Copy link
Contributor

roshii commented May 15, 2024

I think with recent news regarding coinjoins, we should prioritize this and start discussing solutions.

We may want to use directory nodes to gossip active directory nodes as follows.

  1. When DN sends handshake to client it sends a list of known active directory nodes to client (the list would be empty when DN is just started)
  2. If client if then aware of new active directory nodes or known inactive directory nodes, it replies to DN with a list of DN to be added (the ones he his connected to) or removed (the ones he his failing to connect to).

We could maybe think of some sort of a DN connectivity score, starting at 0, slowly increasing with time, and decreasing on each failed connection attempt. Client could maintain their local score, and DN could average scores received from various clients. This should allow highly available/rarely failing DN to be prioritized over others.

@theborakompanioni
Copy link
Contributor

Jam docker standalone currently sets (https://github.com/joinmarket-webui/jam-docker/blob/6bb93e1d362659655ba3bf91231d2d4aae32cb6f/standalone/default.cfg#L83):

  • g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222
  • 3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222
  • bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion:5222
  • wkd3kd73ze62sqhlj2ebwe6fxqvshw5sya6nkvrgcweegt7ljhuspaid.onion:5222
  • ylegp63psfqh3zk2huckf2xth6dxvh2z364ykjfmvsoze6tkfjceq7qd.onion:5222

g3hv, 3kxw and bqlp are taken from the current defaults. wkd3 and ylegp have been added based on the suggestions here.

Should

  • plq5jw5hqke6werrc5duvgwbuczrg4mphlqsqbzmdfwxwkm2ncdzxeqd.onion:5222
  • odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion:5222

be added as well? What do you think?

Also, which ones to remove? wkd3 @CohibAA ? Kind of do not want to remove the defaults, even when they are not working reliably. It is quite a burden to maintain the list manually.

@roshii
Copy link
Contributor

roshii commented May 17, 2024

What do you think?

I'd say odpwa can be added. It has something like 95% uptime, and except for maintenance, I do not plan at taking service down in the near future.

@theborakompanioni
Copy link
Contributor

State of the mentioned directory nodes as of today: 3 out of 7 working (2 of them are included in the default config).

g3hv4uynnmynqqq2mchf3fcm3yd46kfzmcdogejuckgwknwyq5ya6iad.onion:5222
3kxw6lf5vf6y26emzwgibzhrzhmhqiw6ekrek3nqfjjmhwznb2moonad.onion:5222 🆗
bqlpq6ak24mwvuixixitift4yu42nxchlilrcqwk2ugn45tdclg42qid.onion:5222 🆗
wkd3kd73ze62sqhlj2ebwe6fxqvshw5sya6nkvrgcweegt7ljhuspaid.onion:5222
ylegp63psfqh3zk2huckf2xth6dxvh2z364ykjfmvsoze6tkfjceq7qd.onion:5222
plq5jw5hqke6werrc5duvgwbuczrg4mphlqsqbzmdfwxwkm2ncdzxeqd.onion:5222
odpwaf67rs5226uabcamvypg3y4bngzmfk7255flcdodesqhsvkptaid.onion:5222 🆗

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

7 participants
@theborakompanioni @AdamISZ @kristapsk @roshii @CohibAA @Grov-r and others