Skip to content

Commit c6cac4f

Browse files
authored
Etcm 760 Move networking and regular sync to cache-based blacklist (#983)
* ETCM-760: Create blacklisting resasons for networking and regular sync * ETCM-760: Move networking and regular sync to new blacklist * ETCM-760: Remove old blacklist and peerlist * ETCM-760: Adapt impacted classes to new blacklist * ETCM-760: Adapt tests * ETCM-760: Fix comments
1 parent 68275ae commit c6cac4f

29 files changed

+343
-254
lines changed

src/it/scala/io/iohk/ethereum/sync/util/CommonFakePeer.scala

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import akka.util.{ByteString, Timeout}
1010
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcast.BlockToBroadcast
1111
import io.iohk.ethereum.blockchain.sync.regular.{BlockBroadcast, BlockBroadcasterActor}
1212
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcasterActor.BroadcastBlock
13-
import io.iohk.ethereum.blockchain.sync.{BlockchainHostActor, TestSyncConfig}
13+
import io.iohk.ethereum.blockchain.sync.{BlockchainHostActor, CacheBasedBlacklist, TestSyncConfig}
1414
import io.iohk.ethereum.db.components.{RocksDbDataSourceComponent, Storages}
1515
import io.iohk.ethereum.db.dataSource.{RocksDbConfig, RocksDbDataSource}
1616
import io.iohk.ethereum.db.storage.pruning.{ArchivePruning, PruningMode}
@@ -27,15 +27,7 @@ import io.iohk.ethereum.network.handshaker.{EtcHandshaker, EtcHandshakerConfigur
2727
import io.iohk.ethereum.network.p2p.EthereumMessageDecoder
2828
import io.iohk.ethereum.network.rlpx.AuthHandshaker
2929
import io.iohk.ethereum.network.rlpx.RLPxConnectionHandler.RLPxConfiguration
30-
import io.iohk.ethereum.network.{
31-
EtcPeerManagerActor,
32-
ForkResolver,
33-
KnownNodesManager,
34-
PeerEventBusActor,
35-
PeerManagerActor,
36-
PeerStatisticsActor,
37-
ServerActor
38-
}
30+
import io.iohk.ethereum.network.{EtcPeerManagerActor, ForkResolver, KnownNodesManager, PeerEventBusActor, PeerManagerActor, PeerStatisticsActor, ServerActor}
3931
import io.iohk.ethereum.nodebuilder.PruningConfigBuilder
4032
import io.iohk.ethereum.sync.util.SyncCommonItSpec._
4133
import io.iohk.ethereum.sync.util.SyncCommonItSpecUtils._
@@ -179,6 +171,8 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
179171
lazy val peerStatistics =
180172
system.actorOf(PeerStatisticsActor.props(peerEventBus, slotDuration = 1.minute, slotCount = 30))
181173

174+
lazy val blacklist: CacheBasedBlacklist = CacheBasedBlacklist.empty(1000)
175+
182176
lazy val peerManager: ActorRef = system.actorOf(
183177
PeerManagerActor.props(
184178
peerDiscoveryManager,
@@ -190,6 +184,7 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
190184
authHandshaker,
191185
EthereumMessageDecoder,
192186
discoveryConfig,
187+
blacklist,
193188
Config.Network.protocolVersion
194189
),
195190
"peer-manager"
@@ -231,7 +226,7 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
231226
lazy val broadcaster = new BlockBroadcast(etcPeerManager)
232227

233228
lazy val broadcasterActor = system.actorOf(
234-
BlockBroadcasterActor.props(broadcaster, peerEventBus, etcPeerManager, testSyncConfig, system.scheduler)
229+
BlockBroadcasterActor.props(broadcaster, peerEventBus, etcPeerManager, blacklist, testSyncConfig, system.scheduler)
235230
)
236231

237232
private def getMptForBlock(block: Block) = {

src/it/scala/io/iohk/ethereum/sync/util/FastSyncItSpecUtils.scala

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,13 @@ import monix.eval.Task
1717
import scala.annotation.tailrec
1818
import scala.concurrent.duration._
1919
import scala.util.Try
20-
import io.iohk.ethereum.blockchain.sync.CacheBasedBlacklist
2120
object FastSyncItSpecUtils {
2221

2322
class FakePeer(peerName: String, fakePeerCustomConfig: FakePeerCustomConfig)
2423
extends CommonFakePeer(peerName, fakePeerCustomConfig) {
2524

2625
lazy val validators = new MockValidatorsAlwaysSucceed
2726

28-
val maxSize = 1000
29-
val blacklist = CacheBasedBlacklist.empty(maxSize)
30-
3127
lazy val fastSync = system.actorOf(
3228
FastSync.props(
3329
storagesInstance.storages.fastSyncStateStorage,

src/it/scala/io/iohk/ethereum/sync/util/RegularSyncItSpecUtils.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ object RegularSyncItSpecUtils {
6262

6363
lazy val checkpointBlockGenerator: CheckpointBlockGenerator = new CheckpointBlockGenerator
6464
lazy val peersClient: ActorRef =
65-
system.actorOf(PeersClient.props(etcPeerManager, peerEventBus, testSyncConfig, system.scheduler), "peers-client")
65+
system.actorOf(PeersClient.props(etcPeerManager, peerEventBus, blacklist, testSyncConfig, system.scheduler), "peers-client")
6666

6767
lazy val ledger: Ledger =
6868
new LedgerImpl(bl, blockchainConfig, syncConfig, buildEthashConsensus(), Scheduler.global)
@@ -78,7 +78,7 @@ object RegularSyncItSpecUtils {
7878

7979
val broadcasterRef: ActorRef = system.actorOf(
8080
BlockBroadcasterActor
81-
.props(new BlockBroadcast(etcPeerManager), peerEventBus, etcPeerManager, syncConfig, system.scheduler),
81+
.props(new BlockBroadcast(etcPeerManager), peerEventBus, etcPeerManager, blacklist, syncConfig, system.scheduler),
8282
"block-broadcaster"
8383
)
8484

@@ -109,6 +109,7 @@ object RegularSyncItSpecUtils {
109109
ledger,
110110
bl,
111111
validators.blockValidator,
112+
blacklist,
112113
testSyncConfig,
113114
ommersPool,
114115
pendingTransactionsManager,

src/it/scala/io/iohk/ethereum/txExecTest/util/DumpChainApp.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,11 @@ package io.iohk.ethereum.txExecTest.util
22

33
import java.time.Clock
44
import java.util.concurrent.atomic.AtomicReference
5+
56
import akka.actor.ActorSystem
67
import akka.util.ByteString
78
import com.typesafe.config.ConfigFactory
9+
import io.iohk.ethereum.blockchain.sync.CacheBasedBlacklist
810
import io.iohk.ethereum.db.components.Storages.PruningModeComponent
911
import io.iohk.ethereum.db.components.{RocksDbDataSourceComponent, Storages}
1012
import io.iohk.ethereum.db.dataSource.{DataSourceBatchUpdate, RocksDbDataSource}
@@ -100,6 +102,8 @@ object DumpChainApp extends App with NodeKeyBuilder with SecureRandomBuilder wit
100102

101103
val peerStatistics = actorSystem.actorOf(PeerStatisticsActor.props(peerMessageBus, 1.minute, 30)(Clock.systemUTC()))
102104

105+
val blacklist: CacheBasedBlacklist = CacheBasedBlacklist.empty(100)
106+
103107
val peerManager = actorSystem.actorOf(
104108
PeerManagerActor.props(
105109
peerDiscoveryManager = actorSystem.deadLetters, // TODO: fixme
@@ -111,6 +115,7 @@ object DumpChainApp extends App with NodeKeyBuilder with SecureRandomBuilder wit
111115
authHandshaker = authHandshaker,
112116
messageDecoder = EthereumMessageDecoder,
113117
discoveryConfig = discoveryConfig,
118+
blacklist = blacklist,
114119
bestProtocolVersion = Config.Network.protocolVersion
115120
),
116121
"peer-manager"

0 commit comments

Comments
 (0)