@@ -137,6 +137,9 @@ type OecConfig struct {
137
137
maxSubscriptionClients int
138
138
139
139
maxTxLimitPerPeer uint64
140
+
141
+ enableP2PIPWhitelist bool
142
+ consensusIPWhitelist map [string ]bool
140
143
}
141
144
142
145
const (
@@ -168,6 +171,8 @@ const (
168
171
FlagDynamicGpMaxTxNum = "dynamic-gp-max-tx-num"
169
172
FlagEnableWrappedTx = "enable-wtx"
170
173
FlagSentryAddrs = "p2p.sentry_addrs"
174
+ FlagEnableP2PIPWhitelist = "p2p.enable_ip_whitelist"
175
+ FlagConsensusIPWhitelist = "p2p.consensus_ip_whitelist"
171
176
FlagCsTimeoutPropose = "consensus.timeout_propose"
172
177
FlagCsTimeoutProposeDelta = "consensus.timeout_propose_delta"
173
178
FlagCsTimeoutPrevote = "consensus.timeout_prevote"
@@ -280,6 +285,7 @@ func defaultOecConfig() *OecConfig {
280
285
mempoolForceRecheckGap : 2000 ,
281
286
commitGapHeight : iavlconfig .DefaultCommitGapHeight ,
282
287
iavlFSCacheSize : tmiavl .DefaultIavlFastStorageCacheSize ,
288
+ consensusIPWhitelist : map [string ]bool {},
283
289
}
284
290
}
285
291
@@ -331,6 +337,8 @@ func (c *OecConfig) loadFromConfig() {
331
337
c .SetCommitGapHeight (viper .GetInt64 (server .FlagCommitGapHeight ))
332
338
c .SetSentryAddrs (viper .GetString (FlagSentryAddrs ))
333
339
c .SetNodeKeyWhitelist (viper .GetString (FlagNodeKeyWhitelist ))
340
+ c .SetEnableP2PIPWhitelist (viper .GetBool (FlagEnableP2PIPWhitelist ))
341
+ c .SetConsensusIPWhitelist (viper .GetString (FlagConsensusIPWhitelist ))
334
342
c .SetEnableWtx (viper .GetBool (FlagEnableWrappedTx ))
335
343
c .SetEnableAnalyzer (viper .GetBool (trace .FlagEnableAnalyzer ))
336
344
c .SetDeliverTxsExecuteMode (viper .GetInt (state .FlagDeliverTxsExecMode ))
@@ -511,6 +519,14 @@ func (c *OecConfig) updateFromKVStr(k, v string) {
511
519
c .SetPendingPoolBlacklist (v )
512
520
case FlagNodeKeyWhitelist :
513
521
c .SetNodeKeyWhitelist (v )
522
+ case FlagEnableP2PIPWhitelist :
523
+ r , err := strconv .ParseBool (v )
524
+ if err != nil {
525
+ return
526
+ }
527
+ c .SetEnableP2PIPWhitelist (r )
528
+ case FlagConsensusIPWhitelist :
529
+ c .SetConsensusIPWhitelist (v )
514
530
case FlagMempoolCheckTxCost :
515
531
r , err := strconv .ParseBool (v )
516
532
if err != nil {
@@ -810,6 +826,14 @@ func (c *OecConfig) GetNodeKeyWhitelist() []string {
810
826
return c .nodeKeyWhitelist
811
827
}
812
828
829
+ func (c * OecConfig ) GetEnableP2PIPWhitelist () bool {
830
+ return c .enableP2PIPWhitelist
831
+ }
832
+
833
+ func (c * OecConfig ) GetConsensusIPWhitelist () map [string ]bool {
834
+ return c .consensusIPWhitelist
835
+ }
836
+
813
837
func (c * OecConfig ) GetMempoolCheckTxCost () bool {
814
838
return c .mempoolCheckTxCost
815
839
}
@@ -831,6 +855,18 @@ func (c *OecConfig) SetNodeKeyWhitelist(value string) {
831
855
}
832
856
}
833
857
858
+ func (c * OecConfig ) SetEnableP2PIPWhitelist (value bool ) {
859
+ c .enableP2PIPWhitelist = value
860
+ }
861
+
862
+ func (c * OecConfig ) SetConsensusIPWhitelist (value string ) {
863
+ c .consensusIPWhitelist = map [string ]bool {}
864
+ ipList := resolveNodeKeyWhitelist (value )
865
+ for _ , ip := range ipList {
866
+ c .consensusIPWhitelist [strings .TrimSpace (ip )] = true
867
+ }
868
+ }
869
+
834
870
func (c * OecConfig ) GetSentryAddrs () []string {
835
871
return c .sentryAddrs
836
872
}
0 commit comments