forked from cerc-io/plugeth
les, cmd/util: disable topic discovery with --nodiscover
This commit is contained in:
parent
12379c697a
commit
a390ca5f30
@ -654,6 +654,10 @@ func MakeNode(ctx *cli.Context, name, gitCommit string) *node.Node {
|
|||||||
vsn += "-" + gitCommit[:8]
|
vsn += "-" + gitCommit[:8]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if we're running a light client or server, force enable the v5 peer discovery unless it is explicitly disabled with --nodiscover
|
||||||
|
// note that explicitly specifying --v5disc overrides --nodiscover, in which case the later only disables v4 discovery
|
||||||
|
forceV5Discovery := (ctx.GlobalBool(LightModeFlag.Name) || ctx.GlobalInt(LightServFlag.Name) > 0) && !ctx.GlobalBool(NoDiscoverFlag.Name)
|
||||||
|
|
||||||
config := &node.Config{
|
config := &node.Config{
|
||||||
DataDir: MakeDataDir(ctx),
|
DataDir: MakeDataDir(ctx),
|
||||||
KeyStoreDir: ctx.GlobalString(KeyStoreDirFlag.Name),
|
KeyStoreDir: ctx.GlobalString(KeyStoreDirFlag.Name),
|
||||||
@ -662,8 +666,8 @@ func MakeNode(ctx *cli.Context, name, gitCommit string) *node.Node {
|
|||||||
Name: name,
|
Name: name,
|
||||||
Version: vsn,
|
Version: vsn,
|
||||||
UserIdent: makeNodeUserIdent(ctx),
|
UserIdent: makeNodeUserIdent(ctx),
|
||||||
NoDiscovery: ctx.GlobalBool(NoDiscoverFlag.Name) || ctx.GlobalBool(LightModeFlag.Name),
|
NoDiscovery: ctx.GlobalBool(NoDiscoverFlag.Name) || ctx.GlobalBool(LightModeFlag.Name), // always disable v4 discovery in light client mode
|
||||||
DiscoveryV5: ctx.GlobalBool(DiscoveryV5Flag.Name) || ctx.GlobalBool(LightModeFlag.Name) || ctx.GlobalInt(LightServFlag.Name) > 0,
|
DiscoveryV5: ctx.GlobalBool(DiscoveryV5Flag.Name) || forceV5Discovery,
|
||||||
DiscoveryV5Addr: MakeDiscoveryV5Address(ctx),
|
DiscoveryV5Addr: MakeDiscoveryV5Address(ctx),
|
||||||
BootstrapNodes: MakeBootstrapNodes(ctx),
|
BootstrapNodes: MakeBootstrapNodes(ctx),
|
||||||
BootstrapNodesV5: MakeBootstrapNodesV5(ctx),
|
BootstrapNodesV5: MakeBootstrapNodesV5(ctx),
|
||||||
|
@ -348,7 +348,9 @@ func (pool *serverPool) selectPeerWait(reqID uint64, canSend func(*peer) (bool,
|
|||||||
func (pool *serverPool) eventLoop() {
|
func (pool *serverPool) eventLoop() {
|
||||||
lookupCnt := 0
|
lookupCnt := 0
|
||||||
var convTime mclock.AbsTime
|
var convTime mclock.AbsTime
|
||||||
|
if pool.discSetPeriod != nil {
|
||||||
pool.discSetPeriod <- time.Millisecond * 100
|
pool.discSetPeriod <- time.Millisecond * 100
|
||||||
|
}
|
||||||
for {
|
for {
|
||||||
select {
|
select {
|
||||||
case entry := <-pool.timeout:
|
case entry := <-pool.timeout:
|
||||||
@ -393,12 +395,16 @@ func (pool *serverPool) eventLoop() {
|
|||||||
lookupCnt++
|
lookupCnt++
|
||||||
if pool.fastDiscover && (lookupCnt == 50 || time.Duration(mclock.Now()-convTime) > time.Minute) {
|
if pool.fastDiscover && (lookupCnt == 50 || time.Duration(mclock.Now()-convTime) > time.Minute) {
|
||||||
pool.fastDiscover = false
|
pool.fastDiscover = false
|
||||||
|
if pool.discSetPeriod != nil {
|
||||||
pool.discSetPeriod <- time.Minute
|
pool.discSetPeriod <- time.Minute
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
case <-pool.quit:
|
case <-pool.quit:
|
||||||
|
if pool.discSetPeriod != nil {
|
||||||
close(pool.discSetPeriod)
|
close(pool.discSetPeriod)
|
||||||
|
}
|
||||||
pool.connWg.Wait()
|
pool.connWg.Wait()
|
||||||
pool.saveNodes()
|
pool.saveNodes()
|
||||||
pool.wg.Done()
|
pool.wg.Done()
|
||||||
|
Loading…
Reference in New Issue
Block a user