mirror of
https://github.com/ACINQ/eclair.git
synced 2025-02-23 06:35:11 +01:00
Make Tor optional for blockchain watchdogs (#1958)
This change lets node operators disable the use of Tor for blockchain watchdogs if they'd rather use cleartext HTTP instead.
This commit is contained in:
parent
273fae9135
commit
c846781192
7 changed files with 20 additions and 12 deletions
|
@ -174,4 +174,10 @@ eclair.blockchain-watchdog.sources = [
|
|||
"blockstream.info",
|
||||
"mempool.space"
|
||||
]
|
||||
```
|
||||
|
||||
Also, you can disable Tor for all watchdog sources altogether using:
|
||||
|
||||
```s
|
||||
eclair.socks5.use-for-watchdogs = false
|
||||
```
|
|
@ -327,6 +327,7 @@ eclair {
|
|||
use-for-ipv4 = true
|
||||
use-for-ipv6 = true
|
||||
use-for-tor = true
|
||||
use-for-watchdogs = true
|
||||
randomize-credentials = false // this allows tor stream isolation
|
||||
}
|
||||
|
||||
|
|
|
@ -292,7 +292,8 @@ object NodeParams extends Logging {
|
|||
randomizeCredentials = config.getBoolean("socks5.randomize-credentials"),
|
||||
useForIPv4 = config.getBoolean("socks5.use-for-ipv4"),
|
||||
useForIPv6 = config.getBoolean("socks5.use-for-ipv6"),
|
||||
useForTor = config.getBoolean("socks5.use-for-tor")
|
||||
useForTor = config.getBoolean("socks5.use-for-tor"),
|
||||
useForWatchdogs = config.getBoolean("socks5.use-for-watchdogs"),
|
||||
))
|
||||
} else {
|
||||
None
|
||||
|
|
|
@ -68,10 +68,9 @@ object BlockchainWatchdog {
|
|||
*/
|
||||
def apply(nodeParams: NodeParams, maxRandomDelay: FiniteDuration, blockTimeout: FiniteDuration = 15 minutes): Behavior[Command] = {
|
||||
Behaviors.setup { context =>
|
||||
implicit val sttpBackend = ExplorerApi.createSttpBackend(nodeParams.socksProxy_opt)
|
||||
|
||||
val socksProxy_opt = nodeParams.socksProxy_opt.flatMap(params => if (params.useForWatchdogs) Some(params) else None)
|
||||
implicit val sttpBackend = ExplorerApi.createSttpBackend(socksProxy_opt)
|
||||
val chainHash = nodeParams.chainHash
|
||||
val socksProxy_opt = nodeParams.socksProxy_opt
|
||||
val sources = nodeParams.blockchainWatchdogSources
|
||||
|
||||
val explorers = Seq(
|
||||
|
|
|
@ -217,7 +217,7 @@ object Socks5Connection {
|
|||
def portToByteString(port: Int): ByteString = ByteString((port & 0x0000ff00) >> 8, port & 0x000000ff)
|
||||
}
|
||||
|
||||
case class Socks5ProxyParams(address: InetSocketAddress, credentials_opt: Option[Credentials], randomizeCredentials: Boolean, useForIPv4: Boolean, useForIPv6: Boolean, useForTor: Boolean)
|
||||
case class Socks5ProxyParams(address: InetSocketAddress, credentials_opt: Option[Credentials], randomizeCredentials: Boolean, useForIPv4: Boolean, useForIPv6: Boolean, useForTor: Boolean, useForWatchdogs: Boolean)
|
||||
|
||||
object Socks5ProxyParams {
|
||||
|
||||
|
|
|
@ -106,7 +106,8 @@ class BlockchainWatchdogSpec extends ScalaTestWithActorTestKit(ConfigFactory.loa
|
|||
randomizeCredentials = true,
|
||||
useForIPv4 = true,
|
||||
useForIPv6 = true,
|
||||
useForTor = true)
|
||||
useForTor = true,
|
||||
useForWatchdogs = true)
|
||||
|
||||
if (proxyAcceptsConnections(proxyParams)) {
|
||||
val eventListener = TestProbe[DangerousBlocksSkew]()
|
||||
|
|
|
@ -31,27 +31,27 @@ class Socks5ConnectionSpec extends AnyFunSuite {
|
|||
|
||||
assert(Socks5ProxyParams.proxyAddress(
|
||||
socketAddress = new InetSocketAddress("1.2.3.4", 9735),
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = true)).contains(proxyAddress))
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = true, useForWatchdogs = true)).contains(proxyAddress))
|
||||
|
||||
assert(Socks5ProxyParams.proxyAddress(
|
||||
socketAddress = new InetSocketAddress("1.2.3.4", 9735),
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = false, useForIPv6 = true, useForTor = true)).isEmpty)
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = false, useForIPv6 = true, useForTor = true, useForWatchdogs = true)).isEmpty)
|
||||
|
||||
assert(Socks5ProxyParams.proxyAddress(
|
||||
socketAddress = new InetSocketAddress("[fc92:97a3:e057:b290:abd8:9bd6:135d:7e7]", 9735),
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = true)).contains(proxyAddress))
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = true, useForWatchdogs = true)).contains(proxyAddress))
|
||||
|
||||
assert(Socks5ProxyParams.proxyAddress(
|
||||
socketAddress = new InetSocketAddress("[fc92:97a3:e057:b290:abd8:9bd6:135d:7e7]", 9735),
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = false, useForTor = true)).isEmpty)
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = false, useForTor = true, useForWatchdogs = true)).isEmpty)
|
||||
|
||||
assert(Socks5ProxyParams.proxyAddress(
|
||||
socketAddress = new InetSocketAddress("iq7zhmhck54vcax2vlrdcavq2m32wao7ekh6jyeglmnuuvv3js57r4id.onion", 9735),
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = true)).contains(proxyAddress))
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = true, useForWatchdogs = true)).contains(proxyAddress))
|
||||
|
||||
assert(Socks5ProxyParams.proxyAddress(
|
||||
socketAddress = new InetSocketAddress("iq7zhmhck54vcax2vlrdcavq2m32wao7ekh6jyeglmnuuvv3js57r4id.onion", 9735),
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = false)).isEmpty)
|
||||
proxyParams = Socks5ProxyParams(address = proxyAddress, credentials_opt = None, randomizeCredentials = false, useForIPv4 = true, useForIPv6 = true, useForTor = false, useForWatchdogs = true)).isEmpty)
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue