besu
besu copied to clipboard
Huge number of DNS requests (on startup)
Description
On startup I was getting DNS resolving errors:
java.io.IOException: Timed out while trying to resolve XYZ.all.mainnet.ethdisco.net./TXT, id=54854
at org.xbill.DNS.Resolver.send(Resolver.java:170)
at org.apache.tuweni.discovery.DNSResolver.resolveRecordRaw(DNSResolver.kt:155)
at org.apache.tuweni.discovery.DNSResolver.resolveRecord(DNSResolver.kt:73)
at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:175)
at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:184)
at org.apache.tuweni.discovery.DNSResolver.internalVisit(DNSResolver.kt:184)]
at org.apache.tuweni.discovery.DNSResolver.visitTree(DNSResolver.kt:135)
at org.apache.tuweni.discovery.DNSResolver.visitTree(DNSResolver.kt:111)
at org.apache.tuweni.discovery.DNSResolver.collectAll(DNSResolver.kt:95)
at org.apache.tuweni.discovery.DNSTimerTask.run(DNSDaemon.kt:89)
at java.base/java.util.TimerThread.mainLoop(Timer.java:566)
at java.base/java.util.TimerThread.run(Timer.java:516)
I did some checking an realized that my DNS server (pihole) rate limited my staking machine. The default rate limit is 1000 DNS request per minute. Of course I can solve the issue by simply upping/removing the limit but in situations where this is not possible the large amounts of DNS requests could pose a problem? Like temporary or permanent blocking?
I'm not aware of the inner workings as in why this many DNS request are needed and hence if anything can be done about it without affecting proper function. but better probably to think if this many requests are really needed?
Mostly I'm posting this here so that in case anyone else has the same issue, they can find a solution quickly.
Acceptance Criteria
I think a simple option to reduce DNS request might be a possible solution in cases where this poses an issue.
Steps to Reproduce (Bug)
- Limit DNS request per second per host on DNS server
- Start Besu
Versions (Add all that apply)
- Software version: 22.7.0
- Java version: openjdk 17.0.4 2022-07-19
- OS Name & Version: Ubuntu 20.04.4 LTS
- Kernel Version: 5.4.0-124-generic
- Virtual Machine software & version: bare-metal installation
- Docker Version: n/a
- Cloud VM, type, size: n/a