Skip to content

Commit d750fb6

Browse files
author
Lukasz Gasior
committed
Merge remote-tracking branch 'origin/phase/beta1' into feature/loggingUpdates
2 parents 27aacb2 + ee51b10 commit d750fb6

File tree

5 files changed

+34
-19
lines changed

5 files changed

+34
-19
lines changed

src/main/resources/application.conf

+10-10
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ grothendieck {
9292

9393
peer {
9494
# Retry delay for failed attempt at connecting to a peer
95-
connect-retry-delay = 5 seconds
95+
connect-retry-delay = 1 minute
9696

9797
# Maximum number of reconnect attempts after the connection has been initiated.
9898
# After that, the connection will be dropped until its initiated again (eg. by peer discovery)
99-
connect-max-retries = 1
99+
connect-max-retries = 2
100100

101101
disconnect-poison-pill-timeout = 5 seconds
102102

@@ -111,16 +111,16 @@ grothendieck {
111111
wait-for-tcp-ack-timeout = 5 seconds
112112

113113
# Maximum block headers in a single response message (as a blockchain host)
114-
max-blocks-headers-per-message = 200
114+
max-blocks-headers-per-message = 100
115115

116116
# Maximum block bodies in a single response message (as a blockchain host)
117-
max-blocks-bodies-per-message = 200
117+
max-blocks-bodies-per-message = 100
118118

119119
# Maximum transactions receipts in a single response message (as a blockchain host)
120-
max-receipts-per-message = 200
120+
max-receipts-per-message = 100
121121

122122
# Maximum MPT components in a single response message (as a blockchain host)
123-
max-mpt-components-per-message = 400
123+
max-mpt-components-per-message = 200
124124

125125
# Maximum number of peers this node can connect to
126126
max-peers = 40
@@ -248,7 +248,7 @@ grothendieck {
248248
peers-scan-interval = 3.seconds
249249

250250
# Duration for blacklisting a peer. Blacklisting reason include: invalid response from peer, response time-out, etc.
251-
blacklist-duration = 30.seconds
251+
blacklist-duration = 200.seconds
252252

253253
# Retry interval when not having enough peers to start fast-sync
254254
start-retry-interval = 5.seconds
@@ -257,7 +257,7 @@ grothendieck {
257257
sync-retry-interval = 5.seconds
258258

259259
# Response time-out from peer during sync. If a peer fails to respond within this limit, it will be blacklisted
260-
peer-response-timeout = 10.seconds
260+
peer-response-timeout = 3.minutes
261261

262262
# Interval for logging syncing status info
263263
print-status-interval = 30.seconds
@@ -269,7 +269,7 @@ grothendieck {
269269
max-concurrent-requests = 50
270270

271271
# Requested number of block headers when syncing from other peers
272-
block-headers-per-request = 2048
272+
block-headers-per-request = 200
273273

274274
# Requested number of block bodies when syncing from other peers
275275
block-bodies-per-request = 128
@@ -278,7 +278,7 @@ grothendieck {
278278
receipts-per-request = 60
279279

280280
# Requested number of MPT nodes when syncing from other peers
281-
nodes-per-request = 1000
281+
nodes-per-request = 200
282282

283283
# Minimum number of peers required to start fast-sync (by determining the target block)
284284
min-peers-to-choose-target-block = 2

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

+20-5
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,8 @@ trait FastSync {
183183
bestBlockHeaderNumber)
184184
}
185185

186+
private val heartBeat = scheduler.schedule(syncRetryInterval, syncRetryInterval * 2, self, ProcessSyncing)
187+
186188
def receive: Receive = handlePeerUpdates orElse {
187189
case EnqueueNodes(hashes) =>
188190
hashes.foreach {
@@ -226,11 +228,23 @@ trait FastSync {
226228
cleanupRequestedMaps(ref)
227229

228230
case PrintStatus =>
229-
val totalNodesCount = downloadedNodesCount + mptNodesQueue.size + nonMptNodesQueue.size
230-
log.info(
231-
s"""|Block: ${appStateStorage.getBestBlockNumber()}/${initialSyncState.targetBlock.number}.
232-
|Peers: ${assignedHandlers.size}/${handshakedPeers.size} (${blacklistedPeers.size} blacklisted).
233-
|State: $downloadedNodesCount/$totalNodesCount known nodes""".stripMargin.replace("\n", " "))
231+
printStatus()
232+
}
233+
234+
private def printStatus() = {
235+
val totalNodesCount = downloadedNodesCount + mptNodesQueue.size + nonMptNodesQueue.size
236+
val formatPeer: (Peer) => String = peer => s"${peer.remoteAddress.getAddress.getHostAddress}:${peer.remoteAddress.getPort}"
237+
log.info(
238+
s"""|Block: ${appStateStorage.getBestBlockNumber()}/${initialSyncState.targetBlock.number}.
239+
|Peers waiting_for_response/connected: ${assignedHandlers.size}/${handshakedPeers.size} (${blacklistedPeers.size} blacklisted).
240+
|State: $downloadedNodesCount/$totalNodesCount nodes.
241+
|""".stripMargin.replace("\n", " "))
242+
log.debug(
243+
s"""|Connection status: connected(${assignedHandlers.values.map(formatPeer).toSeq.sorted.mkString(", ")})/
244+
|handshaked(${handshakedPeers.keys.map(formatPeer).toSeq.sorted.mkString(", ")})
245+
| blacklisted(${blacklistedPeers.map { case (id, _) => id.value }.mkString(", ")})
246+
|""".stripMargin.replace("\n", " ")
247+
)
234248
}
235249

236250
private def cleanupRequestedMaps(handler: ActorRef): Unit = {
@@ -291,6 +305,7 @@ trait FastSync {
291305
}
292306

293307
def cleanup(): Unit = {
308+
heartBeat.cancel()
294309
syncStatePersistCancellable.cancel()
295310
syncStateStorageActor ! PoisonPill
296311
fastSyncStateStorage.purge()

src/main/scala/io/iohk/ethereum/network/PeerActor.scala

+1-1
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ class PeerActor[R <: HandshakeResult](
201201
rlpxConnection.uriOpt.foreach(uri => knownNodesManager ! KnownNodesManager.RemoveKnownNode(uri))
202202
case _ => // nothing
203203
}
204-
log.debug("Received {}. Closing connection", d)
204+
log.debug(s"Received {}. Closing connection with peer ${peerAddress.getHostString}:${peerAddress.getPort}", d)
205205
context unwatch rlpxConnection.ref
206206
context stop self
207207
}

src/test/resources/application.conf

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ grothendieck {
2323
peers-scan-interval = 500.millis
2424
blacklist-duration = 5.seconds
2525
start-retry-interval = 500.millis
26-
sync-retry-interval = 500.millis
26+
sync-retry-interval = 1.second
2727
peer-response-timeout = 1.second
2828
print-status-interval = 1.hour
2929

src/universal/conf/network.conf

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ grothendieck {
2929

3030
peer {
3131
# Retry delay for failed attempt at connecting to a peer
32-
# connect-retry-delay = 20 seconds
32+
# connect-retry-delay = 1 minute
3333

3434
# Maximum number of reconnect attempts after the connection has been initiated.
3535
# After that, the connection will be dropped until its initiated again (eg. by peer discovery)
36-
# connect-max-retries = 30
36+
# connect-max-retries = 2
3737

3838
# Maximum number of peers this node can connect to
3939
# max-peers = 40

0 commit comments

Comments
 (0)