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

Add gupax.io to DNS seed nodes #286

Merged
merged 1 commit into from
Nov 7, 2023
Merged

Conversation

hinto-janai
Copy link
Contributor

main.gupax.io points to the same nodes as seeds.p2pool.io

mini.gupax.io same as seeds-mini.p2pool.io

Tested on main/mini as-is and with gupax.io as the only source.

@SChernykh
Copy link
Owner

SChernykh commented Nov 7, 2023

More seed nodes are welcome, but this domain just copies what's already there? I only added the second domain because p2pool.io was blocked in many anti-crypto mining DNS lists ever since it was used by Bitcoin's P2Pool.

It would be better if gupax.io pointed at your own, independent, seed nodes.
Seed nodes must be run 24/7 on a fast connection (ports must also be open for incoming connections).

@hinto-janai
Copy link
Contributor Author

Added 185.112.146.134:37889, 185.112.146.134:37888 in the front, should be good for a year - I can remove the other nodes but wouldn't backup be good?

@SChernykh SChernykh merged commit e4b11ec into SChernykh:master Nov 7, 2023
31 checks passed
@SChernykh
Copy link
Owner

Having backup is fine.

P.S. I need to think about a better system for the initial sync process. DNS can be blocked too easily.

@hinto-janai
Copy link
Contributor Author

Hardcode IPs - update per release as needed?

@SChernykh
Copy link
Owner

Hardcoded IPs are also easy to ban. I was thinking about some dynamic solution, but googling "p2p bootstrap" and similar stuff doesn't bring any good ideas.

@hinto-janai
Copy link
Contributor Author

Ugly but would practically work - bootstrap off Monero nodes, e.g:

get_monero_peer_ips() {
    # return ips using existing dns system, seed nodes, etc
}

find_p2pool_peer() {
    for ip in get_monero_peer_ips() {
        if ip.has_18083_or_18084_open() {
            maybe_p2pool_peers += ip;
        }
    }

    return maybe_p2pool_peers; # array of ips
}

bootstrap() {
    # assume monero nodes with 18083/18084 open
    # might be running p2pool nodes as well,
    # we only need 1 to bootstrap so success
    # rate is high.
    for maybe in find_p2pool_peer() {
        maybe.attempt_connection();
    }
}

This is basically what https://github.com/plowsof/listen_for_zmq does. Could just scan the entire network too as a last resort - shouldn't take too long if done asynchronously.

More complex but would also work would be DNS list via .onion (can't be blocked).

@SChernykh
Copy link
Owner

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

Successfully merging this pull request may close these issues.

None yet

2 participants