Skip to content

Commit 6529d36

Browse files
Add config VerifyChainID (#35)
* Add config VerifyChainID * Update node_test.go
1 parent cfa9bf2 commit 6529d36

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

multinode/config/config.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ type MultiNode struct {
2626
FinalizedBlockPollInterval *config.Duration
2727
EnforceRepeatableRead *bool
2828
DeathDeclarationDelay *config.Duration
29+
VerifyChainID *bool
2930

3031
// Chain Configs
3132
NodeNoNewHeadsThreshold *config.Duration
@@ -75,6 +76,10 @@ func (c *MultiNodeConfig) DeathDeclarationDelay() time.Duration {
7576
return c.MultiNode.DeathDeclarationDelay.Duration()
7677
}
7778

79+
func (c *MultiNodeConfig) VerifyChainID() bool {
80+
return *c.MultiNode.VerifyChainID
81+
}
82+
7883
func (c *MultiNodeConfig) NodeNoNewHeadsThreshold() time.Duration {
7984
return c.MultiNode.NodeNoNewHeadsThreshold.Duration()
8085
}
@@ -125,6 +130,9 @@ func (c *MultiNodeConfig) SetFrom(f *MultiNodeConfig) {
125130
if f.MultiNode.DeathDeclarationDelay != nil {
126131
c.MultiNode.DeathDeclarationDelay = f.MultiNode.DeathDeclarationDelay
127132
}
133+
if f.MultiNode.VerifyChainID != nil {
134+
c.MultiNode.VerifyChainID = f.MultiNode.VerifyChainID
135+
}
128136

129137
// Chain Configs
130138
if f.MultiNode.NodeNoNewHeadsThreshold != nil {

multinode/node.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ type NodeConfig interface {
4444
EnforceRepeatableRead() bool
4545
DeathDeclarationDelay() time.Duration
4646
NewHeadsPollInterval() time.Duration
47+
VerifyChainID() bool
4748
}
4849

4950
type ChainConfig interface {
@@ -306,9 +307,11 @@ func (n *node[CHAIN_ID, HEAD, RPC]) createVerifiedConn(ctx context.Context, lggr
306307
// verifyConn - verifies that current connection is valid: chainID matches, and it's not syncing.
307308
// Returns desired state if one of the verifications fails. Otherwise, returns nodeStateAlive.
308309
func (n *node[CHAIN_ID, HEAD, RPC]) verifyConn(ctx context.Context, lggr logger.Logger) nodeState {
309-
state := n.verifyChainID(ctx, lggr)
310-
if state != nodeStateAlive {
311-
return state
310+
if n.nodePoolCfg.VerifyChainID() {
311+
state := n.verifyChainID(ctx, lggr)
312+
if state != nodeStateAlive {
313+
return state
314+
}
312315
}
313316

314317
if n.nodePoolCfg.NodeIsSyncingEnabled() {

multinode/node_test.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,10 @@ func (n testNodeConfig) DeathDeclarationDelay() time.Duration {
5858
return n.deathDeclarationDelay
5959
}
6060

61+
func (n testNodeConfig) VerifyChainID() bool {
62+
return true
63+
}
64+
6165
type testNode struct {
6266
*node[ID, Head, RPCClient[ID, Head]]
6367
}

0 commit comments

Comments
 (0)