Skip to content

Commit 0c09056

Browse files
rtkaczykpslaski
authored andcommitted
[ETCM-280] use peer capabilities (protocol version) when sending checkpoint-related messages
1 parent 2047259 commit 0c09056

File tree

64 files changed

+1102
-880
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1102
-880
lines changed

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

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import java.util.concurrent.atomic.AtomicReference
66
import akka.actor.{ActorRef, ActorSystem}
77
import akka.testkit.TestProbe
88
import akka.util.{ByteString, Timeout}
9+
import io.iohk.ethereum.blockchain.sync.BlockBroadcast.BlockToBroadcast
910
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcasterActor
1011
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcasterActor.BroadcastBlock
1112
import io.iohk.ethereum.blockchain.sync.{BlockBroadcast, BlockchainHostActor, TestSyncConfig}
@@ -18,21 +19,13 @@ import io.iohk.ethereum.ledger.InMemoryWorldStateProxy
1819
import io.iohk.ethereum.mpt.MerklePatriciaTrie
1920
import io.iohk.ethereum.network.EtcPeerManagerActor.PeerInfo
2021
import io.iohk.ethereum.network.PeerManagerActor.{FastSyncHostConfiguration, PeerConfiguration}
21-
import io.iohk.ethereum.network.discovery.{DiscoveryConfig, Node}
2222
import io.iohk.ethereum.network.discovery.PeerDiscoveryManager.{DiscoveredNodesInfo, DiscoveryNodeInfo}
23+
import io.iohk.ethereum.network.discovery.{DiscoveryConfig, Node}
2324
import io.iohk.ethereum.network.handshaker.{EtcHandshaker, EtcHandshakerConfiguration, Handshaker}
2425
import io.iohk.ethereum.network.p2p.EthereumMessageDecoder
25-
import io.iohk.ethereum.network.p2p.messages.CommonMessages.NewBlock
2626
import io.iohk.ethereum.network.rlpx.AuthHandshaker
2727
import io.iohk.ethereum.network.rlpx.RLPxConnectionHandler.RLPxConfiguration
28-
import io.iohk.ethereum.network.{
29-
EtcPeerManagerActor,
30-
ForkResolver,
31-
KnownNodesManager,
32-
PeerEventBusActor,
33-
PeerManagerActor,
34-
ServerActor
35-
}
28+
import io.iohk.ethereum.network.{EtcPeerManagerActor, ForkResolver, KnownNodesManager, PeerEventBusActor, PeerManagerActor, ServerActor}
3629
import io.iohk.ethereum.nodebuilder.{PruningConfigBuilder, SecureRandomBuilder}
3730
import io.iohk.ethereum.sync.util.SyncCommonItSpec._
3831
import io.iohk.ethereum.sync.util.SyncCommonItSpecUtils._
@@ -159,7 +152,7 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
159152
override val peerConfiguration: PeerConfiguration = peerConf
160153
override val blockchain: Blockchain = bl
161154
override val appStateStorage: AppStateStorage = storagesInstance.storages.appStateStorage
162-
override val blockchainConfig = CommonFakePeer.this.blockchainConfig // FIXME: remove in ETCM-280
155+
override val protocolVersion: Int = Config.Network.protocolVersion
163156
}
164157

165158
lazy val handshaker: Handshaker[PeerInfo] = EtcHandshaker(handshakerConfiguration)
@@ -230,7 +223,7 @@ abstract class CommonFakePeer(peerName: String, fakePeerCustomConfig: FakePeerCu
230223
}
231224

232225
private def broadcastBlock(block: Block, weight: ChainWeight) = {
233-
broadcasterActor ! BroadcastBlock(NewBlock(block, weight))
226+
broadcasterActor ! BroadcastBlock(BlockToBroadcast(block, weight))
234227
}
235228

236229
def getCurrentState(): BlockchainState = {

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,15 @@ import akka.actor.ActorRef
44
import akka.util.ByteString
55
import cats.effect.Resource
66
import io.iohk.ethereum.Mocks.MockValidatorsAlwaysSucceed
7-
import io.iohk.ethereum.blockchain.sync.{PeersClient, SyncProtocol}
7+
import io.iohk.ethereum.blockchain.sync.BlockBroadcast.BlockToBroadcast
88
import io.iohk.ethereum.blockchain.sync.regular.BlockBroadcasterActor.BroadcastBlock
99
import io.iohk.ethereum.blockchain.sync.regular.RegularSync
10+
import io.iohk.ethereum.blockchain.sync.{PeersClient, SyncProtocol}
1011
import io.iohk.ethereum.consensus.blocks.CheckpointBlockGenerator
1112
import io.iohk.ethereum.consensus.ethash.{EthashConfig, EthashConsensus}
1213
import io.iohk.ethereum.consensus.{ConsensusConfig, FullConsensusConfig, ethash}
1314
import io.iohk.ethereum.domain._
1415
import io.iohk.ethereum.ledger._
15-
import io.iohk.ethereum.network.p2p.messages.CommonMessages.NewBlock
1616
import io.iohk.ethereum.nodebuilder.VmSetup
1717
import io.iohk.ethereum.ommers.OmmersPool
1818
import io.iohk.ethereum.sync.util.SyncCommonItSpecUtils.FakePeerCustomConfig.defaultConfig
@@ -70,7 +70,6 @@ object RegularSyncItSpecUtils {
7070
peerEventBus,
7171
ledger,
7272
bl,
73-
blockchainConfig, // FIXME: remove in ETCM-280
7473
testSyncConfig,
7574
ommersPool,
7675
pendingTransactionsManager,
@@ -140,7 +139,7 @@ object RegularSyncItSpecUtils {
140139
}
141140

142141
private def broadcastBlock(block: Block, weight: ChainWeight) = {
143-
broadcasterActor ! BroadcastBlock(NewBlock(block, weight))
142+
broadcasterActor ! BroadcastBlock(BlockToBroadcast(block, weight))
144143
}
145144

146145
private def createChildBlock(

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

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,27 @@ import java.net.URI
66
import akka.actor.{Actor, ActorRef, _}
77
import akka.util.ByteString
88
import io.iohk.ethereum.crypto.kec256
9-
import io.iohk.ethereum.domain.{BlockBody, BlockHeader, Receipt}
109
import io.iohk.ethereum.domain.BlockHeaderImplicits._
11-
import io.iohk.ethereum.network.{Peer, PeerManagerActor}
10+
import io.iohk.ethereum.domain.{BlockBody, BlockHeader, Receipt}
11+
import io.iohk.ethereum.mpt.{BranchNode, ExtensionNode, HashNode, LeafNode, MptNode}
1212
import io.iohk.ethereum.network.PeerActor.SendMessage
13+
import io.iohk.ethereum.network.PeerEventBusActor.PeerEvent.MessageFromPeer
14+
import io.iohk.ethereum.network.PeerEventBusActor.SubscriptionClassifier.MessageClassifier
15+
import io.iohk.ethereum.network.PeerEventBusActor.{PeerSelector, Subscribe}
1316
import io.iohk.ethereum.network.PeerManagerActor.{GetPeers, Peers}
17+
import io.iohk.ethereum.network.p2p.messages.Codes
1418
import io.iohk.ethereum.network.p2p.messages.PV62._
15-
import io.iohk.ethereum.network.p2p.messages.PV63._
1619
import io.iohk.ethereum.network.p2p.messages.PV63.MptNodeEncoders._
20+
import io.iohk.ethereum.network.p2p.messages.PV63.ReceiptImplicits._
21+
import io.iohk.ethereum.network.p2p.messages.PV63._
22+
import io.iohk.ethereum.network.{Peer, PeerManagerActor}
23+
import io.iohk.ethereum.txExecTest.util.DumpChainActor._
1724
import org.bouncycastle.util.encoders.Hex
18-
import ReceiptImplicits._
19-
import io.iohk.ethereum.mpt.{BranchNode, ExtensionNode, HashNode, LeafNode, MptNode}
20-
import io.iohk.ethereum.network.PeerEventBusActor.PeerEvent.MessageFromPeer
21-
import io.iohk.ethereum.network.PeerEventBusActor.{PeerSelector, Subscribe}
22-
import io.iohk.ethereum.network.PeerEventBusActor.SubscriptionClassifier.MessageClassifier
2325

2426
import scala.collection.immutable.HashMap
2527
import scala.concurrent.ExecutionContext.Implicits.global
2628
import scala.concurrent.duration._
2729
import scala.language.postfixOps
28-
import DumpChainActor._
2930

3031
/**
3132
* Actor used for obtaining all the blockchain data (blocks, receipts, nodes) from the blocks [startBlock, maxBlocks]
@@ -84,7 +85,7 @@ class DumpChainActor(
8485
peers.headOption.foreach { peer =>
8586
peerMessageBus ! Subscribe(
8687
MessageClassifier(
87-
Set(BlockHeaders.code, BlockBodies.code, Receipts.code, NodeData.code),
88+
Set(Codes.BlockHeadersCode, Codes.BlockBodiesCode, Codes.ReceiptsCode, Codes.NodeDataCode),
8889
PeerSelector.WithId(peer.id)
8990
)
9091
)

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

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

3+
import java.util.concurrent.atomic.AtomicReference
4+
35
import akka.actor.ActorSystem
46
import akka.util.ByteString
57
import com.typesafe.config.ConfigFactory
68
import io.iohk.ethereum.db.components.Storages.PruningModeComponent
79
import io.iohk.ethereum.db.components.{RocksDbDataSourceComponent, Storages}
8-
import io.iohk.ethereum.db.storage.{AppStateStorage, StateStorage}
10+
import io.iohk.ethereum.db.dataSource.{DataSourceBatchUpdate, RocksDbDataSource}
911
import io.iohk.ethereum.db.storage.NodeStorage.{NodeEncoded, NodeHash}
1012
import io.iohk.ethereum.db.storage.TransactionMappingStorage.TransactionLocation
1113
import io.iohk.ethereum.db.storage.pruning.{ArchivePruning, PruningMode}
14+
import io.iohk.ethereum.db.storage.{AppStateStorage, StateStorage}
15+
import io.iohk.ethereum.domain.BlockHeader.HeaderExtraFields.HefEmpty
1216
import io.iohk.ethereum.domain.{Blockchain, UInt256, _}
1317
import io.iohk.ethereum.ledger.{InMemoryWorldStateProxy, InMemoryWorldStateProxyStorage}
1418
import io.iohk.ethereum.mpt.MptNode
1519
import io.iohk.ethereum.network.EtcPeerManagerActor.PeerInfo
1620
import io.iohk.ethereum.network.PeerManagerActor.PeerConfiguration
21+
import io.iohk.ethereum.network.discovery.DiscoveryConfig
1722
import io.iohk.ethereum.network.handshaker.{EtcHandshaker, EtcHandshakerConfiguration, Handshaker}
1823
import io.iohk.ethereum.network.p2p.EthereumMessageDecoder
1924
import io.iohk.ethereum.network.rlpx.RLPxConnectionHandler.RLPxConfiguration
2025
import io.iohk.ethereum.network.{ForkResolver, PeerEventBusActor, PeerManagerActor}
2126
import io.iohk.ethereum.nodebuilder.{AuthHandshakerBuilder, NodeKeyBuilder, SecureRandomBuilder}
22-
import io.iohk.ethereum.utils.{BlockchainConfig, Config, NodeStatus, ServerStatus}
23-
import java.util.concurrent.atomic.AtomicReference
24-
25-
import io.iohk.ethereum.db.dataSource.{DataSourceBatchUpdate, RocksDbDataSource}
27+
import io.iohk.ethereum.utils.{Config, NodeStatus, ServerStatus}
28+
import monix.reactive.Observable
2629
import org.bouncycastle.util.encoders.Hex
2730

2831
import scala.concurrent.duration._
29-
import io.iohk.ethereum.domain.BlockHeader.HeaderExtraFields.HefEmpty
30-
import io.iohk.ethereum.network.discovery.DiscoveryConfig
31-
import monix.reactive.Observable
3232

3333
object DumpChainApp extends App with NodeKeyBuilder with SecureRandomBuilder with AuthHandshakerBuilder {
3434
val conf = ConfigFactory.load("txExecTest/chainDump.conf")
@@ -82,8 +82,8 @@ object DumpChainApp extends App with NodeKeyBuilder with SecureRandomBuilder wit
8282
override val nodeStatusHolder: AtomicReference[NodeStatus] = DumpChainApp.nodeStatusHolder
8383
override val peerConfiguration: PeerConfiguration = peerConfig
8484
override val blockchain: Blockchain = DumpChainApp.blockchain
85-
override val blockchainConfig: BlockchainConfig = DumpChainApp.blockchainConfig
8685
override val appStateStorage: AppStateStorage = storagesInstance.storages.appStateStorage
86+
override val protocolVersion: Int = Config.Network.protocolVersion
8787
}
8888

8989
lazy val handshaker: Handshaker[PeerInfo] = EtcHandshaker(handshakerConfiguration)

src/main/resources/application.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ mantis {
3838

3939
network {
4040
# Ethereum protocol version
41+
# Supported versions:
42+
# 63, 64 (experimental version which enables usage of messages with checkpointing information. In the future after ETCM-355, ETCM-356, it will be 66 probably)
4143
protocol-version = 63
4244

4345
server-address {
Lines changed: 36 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
package io.iohk.ethereum.blockchain.sync
22

33
import akka.actor.ActorRef
4-
import io.iohk.ethereum.network.{EtcPeerManagerActor, Peer}
4+
import io.iohk.ethereum.blockchain.sync.BlockBroadcast.BlockToBroadcast
5+
import io.iohk.ethereum.domain.{Block, ChainWeight}
56
import io.iohk.ethereum.network.EtcPeerManagerActor.PeerInfo
6-
import io.iohk.ethereum.network.p2p.messages.CommonMessages.NewBlock
7-
import io.iohk.ethereum.network.p2p.messages.PV62
7+
import io.iohk.ethereum.network.p2p.MessageSerializable
88
import io.iohk.ethereum.network.p2p.messages.PV62.BlockHash
9+
import io.iohk.ethereum.network.p2p.messages.{CommonMessages, PV62, PV64, ProtocolVersions}
10+
import io.iohk.ethereum.network.{EtcPeerManagerActor, Peer}
911
import io.iohk.ethereum.utils.Config.SyncConfig
1012

1113
import scala.util.Random
@@ -18,35 +20,39 @@ class BlockBroadcast(val etcPeerManager: ActorRef, syncConfig: SyncConfig) {
1820
* The hash of the block is sent to all of those peers while the block itself is only sent to
1921
* the square root of the total number of those peers, with the subset being obtained randomly.
2022
*
21-
* @param newBlock, block to broadcast
23+
* @param blockToBroadcast, block to broadcast
2224
* @param handshakedPeers, to which the blocks will be broadcasted to
2325
*/
24-
def broadcastBlock(newBlock: NewBlock, handshakedPeers: Map[Peer, PeerInfo]): Unit = {
25-
val peersWithoutBlock = handshakedPeers.collect {
26-
case (peer, peerInfo) if shouldSendNewBlock(newBlock, peerInfo) => peer
27-
}.toSet
26+
def broadcastBlock(blockToBroadcast: BlockToBroadcast, handshakedPeers: Map[Peer, PeerInfo]): Unit = {
27+
val peersWithoutBlock = handshakedPeers.filter { case (_, peerInfo) =>
28+
shouldSendNewBlock(blockToBroadcast, peerInfo)
29+
}
2830

29-
broadcastNewBlock(newBlock, peersWithoutBlock)
31+
broadcastNewBlock(blockToBroadcast, peersWithoutBlock)
3032

3133
if (syncConfig.broadcastNewBlockHashes) {
3234
// NOTE: the usefulness of this message is debatable, especially in private networks
33-
broadcastNewBlockHash(newBlock, peersWithoutBlock)
35+
broadcastNewBlockHash(blockToBroadcast, peersWithoutBlock.keySet)
3436
}
3537
}
3638

37-
private def shouldSendNewBlock(newBlock: NewBlock, peerInfo: PeerInfo): Boolean =
39+
private def shouldSendNewBlock(newBlock: BlockToBroadcast, peerInfo: PeerInfo): Boolean =
3840
newBlock.block.header.number > peerInfo.maxBlockNumber ||
3941
newBlock.chainWeight > peerInfo.chainWeight
4042

41-
private def broadcastNewBlock(newBlock: NewBlock, peers: Set[Peer]): Unit =
42-
obtainRandomPeerSubset(peers).foreach { peer =>
43-
etcPeerManager ! EtcPeerManagerActor.SendMessage(newBlock, peer.id)
43+
private def broadcastNewBlock(blockToBroadcast: BlockToBroadcast, peers: Map[Peer, PeerInfo]): Unit =
44+
obtainRandomPeerSubset(peers.keySet).foreach { peer =>
45+
val message: MessageSerializable =
46+
if (peers(peer).remoteStatus.protocolVersion == ProtocolVersions.PV64) blockToBroadcast.as64
47+
else blockToBroadcast.as63
48+
etcPeerManager ! EtcPeerManagerActor.SendMessage(message, peer.id)
4449
}
4550

46-
private def broadcastNewBlockHash(newBlock: NewBlock, peers: Set[Peer]): Unit = peers.foreach { peer =>
47-
val newBlockHeader = newBlock.block.header
48-
val newBlockHashMsg = PV62.NewBlockHashes(Seq(BlockHash(newBlockHeader.hash, newBlockHeader.number)))
49-
etcPeerManager ! EtcPeerManagerActor.SendMessage(newBlockHashMsg, peer.id)
51+
private def broadcastNewBlockHash(blockToBroadcast: BlockToBroadcast, peers: Set[Peer]): Unit = peers.foreach {
52+
peer =>
53+
val newBlockHeader = blockToBroadcast.block.header
54+
val newBlockHashMsg = PV62.NewBlockHashes(Seq(BlockHash(newBlockHeader.hash, newBlockHeader.number)))
55+
etcPeerManager ! EtcPeerManagerActor.SendMessage(newBlockHashMsg, peer.id)
5056
}
5157

5258
/**
@@ -61,3 +67,15 @@ class BlockBroadcast(val etcPeerManager: ActorRef, syncConfig: SyncConfig) {
6167
Random.shuffle(peers).take(numberOfPeersToSend)
6268
}
6369
}
70+
71+
object BlockBroadcast {
72+
73+
/**
74+
* BlockToBroadcast was created to decouple block information from protocol new block messages
75+
* (they are different versions of NewBlock msg)
76+
*/
77+
case class BlockToBroadcast(block: Block, chainWeight: ChainWeight) {
78+
def as63: CommonMessages.NewBlock = CommonMessages.NewBlock(block, chainWeight.totalDifficulty)
79+
def as64: PV64.NewBlock = PV64.NewBlock(block, chainWeight)
80+
}
81+
}

src/main/scala/io/iohk/ethereum/blockchain/sync/BlockchainHostActor.scala

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import io.iohk.ethereum.network.p2p.messages.PV62.{BlockBodies, BlockHeaders, Ge
1212
import io.iohk.ethereum.network.p2p.messages.PV63.{GetNodeData, GetReceipts, NodeData, Receipts}
1313
import io.iohk.ethereum.network.p2p.messages.PV63.MptNodeEncoders._
1414
import io.iohk.ethereum.network.EtcPeerManagerActor
15+
import io.iohk.ethereum.network.p2p.messages.Codes
1516

1617
/**
1718
* BlockchainHost actor is in charge of replying to the peer's requests for blockchain data, which includes both
@@ -25,7 +26,8 @@ class BlockchainHostActor(
2526
) extends Actor
2627
with ActorLogging {
2728

28-
private val requestMsgsCodes = Set(GetNodeData.code, GetReceipts.code, GetBlockBodies.code, GetBlockHeaders.code)
29+
private val requestMsgsCodes =
30+
Set(Codes.GetNodeDataCode, Codes.GetReceiptsCode, Codes.GetBlockBodiesCode, Codes.GetBlockHeadersCode)
2931
peerEventBusActor ! Subscribe(MessageClassifier(requestMsgsCodes, PeerSelector.AllPeers))
3032

3133
override def receive: Receive = { case MessageFromPeer(message, peerId) =>

src/main/scala/io/iohk/ethereum/blockchain/sync/FastSync.scala

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.iohk.ethereum.blockchain.sync
22

33
import java.time.Instant
4+
45
import akka.actor._
56
import akka.util.ByteString
67
import cats.data.NonEmptyList
@@ -20,11 +21,13 @@ import io.iohk.ethereum.domain._
2021
import io.iohk.ethereum.mpt.MerklePatriciaTrie
2122
import io.iohk.ethereum.network.EtcPeerManagerActor.PeerInfo
2223
import io.iohk.ethereum.network.Peer
24+
import io.iohk.ethereum.network.p2p.messages.Codes
2325
import io.iohk.ethereum.network.p2p.messages.PV62._
2426
import io.iohk.ethereum.network.p2p.messages.PV63._
2527
import io.iohk.ethereum.utils.ByteStringUtils
2628
import io.iohk.ethereum.utils.Config.SyncConfig
2729
import org.bouncycastle.util.encoders.Hex
30+
2831
import scala.annotation.tailrec
2932
import scala.concurrent.ExecutionContext.Implicits.global
3033
import scala.concurrent.duration._
@@ -706,7 +709,7 @@ class FastSync(
706709
etcPeerManager,
707710
peerEventBus,
708711
requestMsg = GetReceipts(receiptsToGet),
709-
responseMsgCode = Receipts.code
712+
responseMsgCode = Codes.ReceiptsCode
710713
)
711714
)
712715

@@ -727,7 +730,7 @@ class FastSync(
727730
etcPeerManager,
728731
peerEventBus,
729732
requestMsg = GetBlockBodies(blockBodiesToGet),
730-
responseMsgCode = BlockBodies.code
733+
responseMsgCode = Codes.BlockBodiesCode
731734
)
732735
)
733736

@@ -752,7 +755,7 @@ class FastSync(
752755
etcPeerManager,
753756
peerEventBus,
754757
requestMsg = GetBlockHeaders(Left(syncState.bestBlockHeaderNumber + 1), limit, skip = 0, reverse = false),
755-
responseMsgCode = BlockHeaders.code
758+
responseMsgCode = Codes.BlockHeadersCode
756759
),
757760
BlockHeadersHandlerName
758761
)

src/main/scala/io/iohk/ethereum/blockchain/sync/PeersClient.scala

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package io.iohk.ethereum.blockchain.sync
22

33
import akka.actor.{Actor, ActorLogging, ActorRef, Cancellable, Props, Scheduler}
44
import io.iohk.ethereum.network.EtcPeerManagerActor.PeerInfo
5+
import io.iohk.ethereum.network.p2p.messages.Codes
56
import io.iohk.ethereum.network.{Peer, PeerId}
67
import io.iohk.ethereum.network.p2p.messages.PV62._
78
import io.iohk.ethereum.network.p2p.messages.PV63.{GetNodeData, NodeData}
@@ -94,9 +95,9 @@ class PeersClient(
9495

9596
private def responseMsgCode[RequestMsg <: Message](requestMsg: RequestMsg): Int =
9697
requestMsg match {
97-
case _: GetBlockHeaders => BlockHeaders.code
98-
case _: GetBlockBodies => BlockBodies.code
99-
case _: GetNodeData => NodeData.code
98+
case _: GetBlockHeaders => Codes.BlockHeadersCode
99+
case _: GetBlockBodies => Codes.BlockBodiesCode
100+
case _: GetNodeData => Codes.NodeDataCode
100101
}
101102

102103
private def printStatus(requesters: Requesters): Unit = {

src/main/scala/io/iohk/ethereum/blockchain/sync/PivotBlockSelector.scala

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ import io.iohk.ethereum.network.EtcPeerManagerActor.PeerInfo
77
import io.iohk.ethereum.network.PeerEventBusActor.PeerEvent.MessageFromPeer
88
import io.iohk.ethereum.network.PeerEventBusActor.SubscriptionClassifier.MessageClassifier
99
import io.iohk.ethereum.network.PeerEventBusActor.{PeerSelector, Subscribe, Unsubscribe}
10+
import io.iohk.ethereum.network.p2p.messages.Codes
1011
import io.iohk.ethereum.network.p2p.messages.PV62.{BlockHeaders, GetBlockHeaders}
1112
import io.iohk.ethereum.network.{EtcPeerManagerActor, Peer, PeerId}
1213
import io.iohk.ethereum.utils.Config.SyncConfig
14+
1315
import scala.concurrent.ExecutionContext.Implicits.global
1416
import scala.concurrent.duration.FiniteDuration
1517

@@ -77,7 +79,7 @@ class PivotBlockSelector(
7779
): Receive =
7880
handleCommonMessages orElse {
7981
case MessageFromPeer(blockHeaders: BlockHeaders, peerId) =>
80-
peerEventBus ! Unsubscribe(MessageClassifier(Set(BlockHeaders.code), PeerSelector.WithId(peerId)))
82+
peerEventBus ! Unsubscribe(MessageClassifier(Set(Codes.BlockHeadersCode), PeerSelector.WithId(peerId)))
8183
val updatedPeersToAsk = peersToAsk - peerId
8284
val targetBlockHeaderOpt =
8385
if (blockHeaders.headers.size != 1) None
@@ -165,7 +167,7 @@ class PivotBlockSelector(
165167
}
166168

167169
private def obtainBlockHeaderFromPeer(peer: PeerId, blockNumber: BigInt): Unit = {
168-
peerEventBus ! Subscribe(MessageClassifier(Set(BlockHeaders.code), PeerSelector.WithId(peer)))
170+
peerEventBus ! Subscribe(MessageClassifier(Set(Codes.BlockHeadersCode), PeerSelector.WithId(peer)))
169171
etcPeerManager ! EtcPeerManagerActor.SendMessage(
170172
GetBlockHeaders(Left(blockNumber), 1, 0, reverse = false),
171173
peer

0 commit comments

Comments
 (0)