Closed hinto-janai closed 7 months ago
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).
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?
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.
Hardcode IPs - update per release as needed?
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.
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).
This is already implemented: https://github.com/SChernykh/p2pool/blob/master/src/p2p_server.cpp#L342
main.gupax.io
points to the same nodes asseeds.p2pool.io
mini.gupax.io
same asseeds-mini.p2pool.io
Tested on main/mini as-is and with
gupax.io
as the only source.