Skip to content

Etcm 760 Move networking and regular sync to cache-based blacklist #983

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 6 commits into from
May 17, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions src/it/scala/io/iohk/ethereum/sync/util/CommonFakePeer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import akka.util.{ByteString, Timeout}
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcast.BlockToBroadcast
import io.iohk.ethereum.blockchain.sync.regular.{BlockBroadcast, BlockBroadcasterActor}
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcasterActor.BroadcastBlock
import io.iohk.ethereum.blockchain.sync.{BlockchainHostActor, TestSyncConfig}
import io.iohk.ethereum.blockchain.sync.{BlockchainHostActor, CacheBasedBlacklist, TestSyncConfig}
import io.iohk.ethereum.db.components.{RocksDbDataSourceComponent, Storages}
import io.iohk.ethereum.db.dataSource.{RocksDbConfig, RocksDbDataSource}
import io.iohk.ethereum.db.storage.pruning.{ArchivePruning, PruningMode}
Expand All @@ -27,15 +27,7 @@ import io.iohk.ethereum.network.handshaker.{EtcHandshaker, EtcHandshakerConfigur
import io.iohk.ethereum.network.p2p.EthereumMessageDecoder
import io.iohk.ethereum.network.rlpx.AuthHandshaker
import io.iohk.ethereum.network.rlpx.RLPxConnectionHandler.RLPxConfiguration
import io.iohk.ethereum.network.{
EtcPeerManagerActor,
ForkResolver,
KnownNodesManager,
PeerEventBusActor,
PeerManagerActor,
PeerStatisticsActor,
ServerActor
}
import io.iohk.ethereum.network.{EtcPeerManagerActor, ForkResolver, KnownNodesManager, PeerEventBusActor, PeerManagerActor, PeerStatisticsActor, ServerActor}
import io.iohk.ethereum.nodebuilder.PruningConfigBuilder
import io.iohk.ethereum.sync.util.SyncCommonItSpec._
import io.iohk.ethereum.sync.util.SyncCommonItSpecUtils._
Expand Down Expand Up @@ -179,6 +171,8 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
lazy val peerStatistics =
system.actorOf(PeerStatisticsActor.props(peerEventBus, slotDuration = 1.minute, slotCount = 30))

lazy val blacklist: CacheBasedBlacklist = CacheBasedBlacklist.empty(1000)

lazy val peerManager: ActorRef = system.actorOf(
PeerManagerActor.props(
peerDiscoveryManager,
Expand All @@ -190,6 +184,7 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
authHandshaker,
EthereumMessageDecoder,
discoveryConfig,
blacklist,
Config.Network.protocolVersion
),
"peer-manager"
Expand Down Expand Up @@ -231,7 +226,7 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
lazy val broadcaster = new BlockBroadcast(etcPeerManager)

lazy val broadcasterActor = system.actorOf(
BlockBroadcasterActor.props(broadcaster, peerEventBus, etcPeerManager, testSyncConfig, system.scheduler)
BlockBroadcasterActor.props(broadcaster, peerEventBus, etcPeerManager, blacklist, testSyncConfig, system.scheduler)
)

private def getMptForBlock(block: Block) = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,13 @@ import monix.eval.Task
import scala.annotation.tailrec
import scala.concurrent.duration._
import scala.util.Try
import io.iohk.ethereum.blockchain.sync.CacheBasedBlacklist
object FastSyncItSpecUtils {

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

lazy val validators = new MockValidatorsAlwaysSucceed

val maxSize = 1000
val blacklist = CacheBasedBlacklist.empty(maxSize)

lazy val fastSync = system.actorOf(
FastSync.props(
storagesInstance.storages.fastSyncStateStorage,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ object RegularSyncItSpecUtils {

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

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

val broadcasterRef: ActorRef = system.actorOf(
BlockBroadcasterActor
.props(new BlockBroadcast(etcPeerManager), peerEventBus, etcPeerManager, syncConfig, system.scheduler),
.props(new BlockBroadcast(etcPeerManager), peerEventBus, etcPeerManager, blacklist, syncConfig, system.scheduler),
"block-broadcaster"
)

Expand Down Expand Up @@ -109,6 +109,7 @@ object RegularSyncItSpecUtils {
ledger,
bl,
validators.blockValidator,
blacklist,
testSyncConfig,
ommersPool,
pendingTransactionsManager,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,11 @@ package io.iohk.ethereum.txExecTest.util

import java.time.Clock
import java.util.concurrent.atomic.AtomicReference

import akka.actor.ActorSystem
import akka.util.ByteString
import com.typesafe.config.ConfigFactory
import io.iohk.ethereum.blockchain.sync.CacheBasedBlacklist
import io.iohk.ethereum.db.components.Storages.PruningModeComponent
import io.iohk.ethereum.db.components.{RocksDbDataSourceComponent, Storages}
import io.iohk.ethereum.db.dataSource.{DataSourceBatchUpdate, RocksDbDataSource}
Expand Down Expand Up @@ -100,6 +102,8 @@ object DumpChainApp extends App with NodeKeyBuilder with SecureRandomBuilder wit

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

val blacklist: CacheBasedBlacklist = CacheBasedBlacklist.empty(100)

val peerManager = actorSystem.actorOf(
PeerManagerActor.props(
peerDiscoveryManager = actorSystem.deadLetters, // TODO: fixme
Expand All @@ -111,6 +115,7 @@ object DumpChainApp extends App with NodeKeyBuilder with SecureRandomBuilder wit
authHandshaker = authHandshaker,
messageDecoder = EthereumMessageDecoder,
discoveryConfig = discoveryConfig,
blacklist = blacklist,
bestProtocolVersion = Config.Network.protocolVersion
),
"peer-manager"
Expand Down
Loading