Skip to content

Commit f15127e

Browse files
committed
[ETCM-177] Fix scalasytle, EthServiceSpec, minor comments
1 parent 4fe8dfd commit f15127e

File tree

6 files changed

+51
-35
lines changed

6 files changed

+51
-35
lines changed

src/main/scala/io/iohk/ethereum/blockchain/sync/regular/BlockImporter.scala

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ class BlockImporter(
4545
start()
4646
}
4747

48-
private def idle: Receive = {
49-
case Start => start()
48+
private def idle: Receive = { case Start =>
49+
start()
5050
}
5151

5252
private def handleTopMessages(state: ImporterState, currentBehavior: Behavior): Receive = {
@@ -94,9 +94,10 @@ class BlockImporter(
9494
}
9595

9696
private def pickBlocks(state: ImporterState): Unit = {
97-
val msg = state.resolvingBranchFrom.fold[BlockFetcher.FetchMsg](
98-
BlockFetcher.PickBlocks(syncConfig.blocksBatchSize))(
99-
from => BlockFetcher.StrictPickBlocks(from, startingBlockNumber))
97+
val msg =
98+
state.resolvingBranchFrom.fold[BlockFetcher.FetchMsg](BlockFetcher.PickBlocks(syncConfig.blocksBatchSize))(from =>
99+
BlockFetcher.StrictPickBlocks(from, startingBlockNumber)
100+
)
100101

101102
fetcher ! msg
102103
}
@@ -140,8 +141,9 @@ class BlockImporter(
140141
}
141142
}
142143

143-
private def tryImportBlocks(blocks: List[Block], importedBlocks: List[Block] = Nil)(
144-
implicit ec: ExecutionContext): Future[(List[Block], Option[Any])] =
144+
private def tryImportBlocks(blocks: List[Block], importedBlocks: List[Block] = Nil)(implicit
145+
ec: ExecutionContext
146+
): Future[(List[Block], Option[Any])] =
145147
if (blocks.isEmpty) {
146148
Future.successful((importedBlocks, None))
147149
} else {
@@ -288,9 +290,11 @@ object BlockImporter {
288290
syncConfig: SyncConfig,
289291
ommersPool: ActorRef,
290292
broadcaster: ActorRef,
291-
pendingTransactionsManager: ActorRef): Props =
293+
pendingTransactionsManager: ActorRef
294+
): Props =
292295
Props(
293-
new BlockImporter(fetcher, ledger, blockchain, syncConfig, ommersPool, broadcaster, pendingTransactionsManager))
296+
new BlockImporter(fetcher, ledger, blockchain, syncConfig, ommersPool, broadcaster, pendingTransactionsManager)
297+
)
294298

295299
type Behavior = ImporterState => Receive
296300
type ImportFn = ImporterState => Unit

src/main/scala/io/iohk/ethereum/consensus/ethash/EthashBlockCreator.scala

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,23 +28,21 @@ class EthashBlockCreator(
2828
def getBlockForMining(parentBlock: Block, withTransactions: Boolean = true): Future[PendingBlock] = {
2929
val transactions =
3030
if (withTransactions) getTransactionsFromPool else Future.successful(PendingTransactionsResponse(Nil))
31-
getOmmersFromPool(parentBlock.hash).zip(transactions).flatMap {
32-
case (ommers, pendingTxs) =>
33-
blockGenerator
34-
.generateBlock(parentBlock, pendingTxs.pendingTransactions.map(_.stx.tx), coinbase, ommers.headers) match {
35-
case Right(pb) => Future.successful(pb)
36-
case Left(err) => Future.failed(new RuntimeException(s"Error while generating block for mining: $err"))
37-
}
31+
getOmmersFromPool(parentBlock.hash).zip(transactions).flatMap { case (ommers, pendingTxs) =>
32+
blockGenerator
33+
.generateBlock(parentBlock, pendingTxs.pendingTransactions.map(_.stx.tx), coinbase, ommers.headers) match {
34+
case Right(pb) => Future.successful(pb)
35+
case Left(err) => Future.failed(new RuntimeException(s"Error while generating block for mining: $err"))
36+
}
3837
}
3938
}
4039

4140
private def getOmmersFromPool(parentBlockHash: ByteString): Future[OmmersPool.Ommers] = {
4241
(ommersPool ? OmmersPool.GetOmmers(parentBlockHash))(Timeout(miningConfig.ommerPoolQueryTimeout))
4342
.mapTo[OmmersPool.Ommers]
44-
.recover {
45-
case ex =>
46-
log.error("Failed to get ommers, mining block with empty ommers list", ex)
47-
OmmersPool.Ommers(Nil)
43+
.recover { case ex =>
44+
log.error("Failed to get ommers, mining block with empty ommers list", ex)
45+
OmmersPool.Ommers(Nil)
4846
}
4947
}
5048

src/main/scala/io/iohk/ethereum/ommers/OmmersPool.scala

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,12 @@ import io.iohk.ethereum.domain.{BlockHeader, Blockchain}
77
import io.iohk.ethereum.ommers.OmmersPool.{AddOmmers, GetOmmers, RemoveOmmers}
88
import scala.annotation.tailrec
99

10-
class OmmersPool(blockchain: Blockchain, ommersPoolSize: Int, ommerGenerationLimit: Int)
10+
class OmmersPool(blockchain: Blockchain, ommersPoolSize: Int, ommerGenerationLimit: Int, returnedOmmersSizeLimit: Int)
1111
extends Actor
1212
with ActorLogging {
1313

1414
var ommersPool: Seq[BlockHeader] = Nil
1515

16-
val ommerSizeLimit: Int = 2
17-
1816
override def receive: Receive = {
1917
case AddOmmers(ommers) =>
2018
ommersPool = (ommers ++ ommersPool).take(ommersPoolSize).distinct
@@ -32,7 +30,7 @@ class OmmersPool(blockchain: Blockchain, ommersPoolSize: Int, ommerGenerationLim
3230
val notAncestor = ancestors.find(_.hash == b.hash).isEmpty
3331
ancestors.find(_.hash == b.parentHash).isDefined && notAncestor
3432
}
35-
.take(ommerSizeLimit)
33+
.take(returnedOmmersSizeLimit)
3634
logStatus(event = s"Ommers given parent block ${Hex.toHexString(parentBlockHash.toArray)}", ommers)
3735
sender() ! OmmersPool.Ommers(ommers)
3836
}
@@ -57,9 +55,21 @@ class OmmersPool(blockchain: Blockchain, ommersPoolSize: Int, ommerGenerationLim
5755

5856
object OmmersPool {
5957

60-
// ommerGenerationLimit should be === 6 as is stated on section 11.1, eq. (143) of the YP
61-
def props(blockchain: Blockchain, ommersPoolSize: Int, ommerGenerationLimit: Int = 6): Props = Props(
62-
new OmmersPool(blockchain, ommersPoolSize, ommerGenerationLimit)
58+
/**
59+
* As is stated on section 11.1, eq. (143) of the YP
60+
*
61+
* @param ommerGenerationLimit should be === 6
62+
* @param returnedOmmersSizeLimit should be === 2
63+
*
64+
* ^ Probably not worthy but those params could be placed in consensus config.
65+
*/
66+
def props(
67+
blockchain: Blockchain,
68+
ommersPoolSize: Int,
69+
ommerGenerationLimit: Int = 6,
70+
returnedOmmersSizeLimit: Int = 2
71+
): Props = Props(
72+
new OmmersPool(blockchain, ommersPoolSize, ommerGenerationLimit, returnedOmmersSizeLimit)
6373
)
6474

6575
case class AddOmmers(ommers: List[BlockHeader])

src/test/scala/io/iohk/ethereum/jsonrpc/EthServiceSpec.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -427,7 +427,7 @@ class EthServiceSpec
427427
pendingTransactionsManager.expectMsg(PendingTransactionsManager.GetPendingTransactions)
428428
pendingTransactionsManager.reply(PendingTransactionsManager.PendingTransactionsResponse(Nil))
429429

430-
ommersPool.expectMsg(OmmersPool.GetOmmers(ByteString.empty))
430+
ommersPool.expectMsg(OmmersPool.GetOmmers(parentBlock.hash))
431431
ommersPool.reply(OmmersPool.Ommers(Nil))
432432

433433
response.futureValue shouldEqual Right(GetWorkResponse(powHash, seedHash, target))

src/test/scala/io/iohk/ethereum/jsonrpc/JsonRpcControllerSpec.scala

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,8 @@ class JsonRpcControllerSpec
224224
val blockToRequest = Block(Fixtures.Blocks.Block3125369.header, Fixtures.Blocks.Block3125369.body)
225225
val blockTd = blockToRequest.header.difficulty
226226

227-
blockchain.storeBlock(blockToRequest)
227+
blockchain
228+
.storeBlock(blockToRequest)
228229
.and(blockchain.storeTotalDifficulty(blockToRequest.header.hash, blockTd))
229230
.commit()
230231

@@ -250,7 +251,8 @@ class JsonRpcControllerSpec
250251
val blockToRequest = Block(Fixtures.Blocks.Block3125369.header, Fixtures.Blocks.Block3125369.body)
251252
val blockTd = blockToRequest.header.difficulty
252253

253-
blockchain.storeBlock(blockToRequest)
254+
blockchain
255+
.storeBlock(blockToRequest)
254256
.and(blockchain.storeTotalDifficulty(blockToRequest.header.hash, blockTd))
255257
.commit()
256258

@@ -786,7 +788,9 @@ class JsonRpcControllerSpec
786788
}
787789

788790
it should "eth_gasPrice" in new TestSetup {
789-
blockchain.storeBlock(Block(Fixtures.Blocks.Block3125369.header.copy(number = 42), Fixtures.Blocks.Block3125369.body)).commit()
791+
blockchain
792+
.storeBlock(Block(Fixtures.Blocks.Block3125369.header.copy(number = 42), Fixtures.Blocks.Block3125369.body))
793+
.commit()
790794
blockchain.saveBestKnownBlock(42)
791795

792796
val request: JsonRpcRequest = JsonRpcRequest(

src/test/scala/io/iohk/ethereum/ommers/OmmersPoolSpec.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -172,15 +172,14 @@ class OmmersPoolSpec extends AnyFreeSpec with Matchers with MockFactory {
172172
// Originally it should be 6 as is stated on section 11.1, eq. (143) of the YP
173173
// Here we are using a simplification for testing purposes
174174
val ommerGenerationLimit: Int = 2
175-
176-
val ommerSizeLimit: Int = 2 // Max amount of ommers allowed per block
175+
val returnedOmmerSizeLimit: Int = 2 // Max amount of ommers allowed per block
177176

178177
/**
179178
* 00 ---> 11 --> 21 --> 31 (chain1)
180179
* \ \ \--> 33 (chain3)
181180
* \ \--> 22 --> 32 (chain2)
182181
* \--> 14 --> 24 (chain4)
183-
* \-> 15 (chain4)
182+
* \-> 15 (chain5)
184183
*/
185184
val block0 = Block3125369.header.copy(number = 0, difficulty = 0)
186185

@@ -201,6 +200,7 @@ class OmmersPoolSpec extends AnyFreeSpec with Matchers with MockFactory {
201200
val testProbe = TestProbe()
202201

203202
val blockchain = mock[BlockchainImpl]
204-
val ommersPool = system.actorOf(OmmersPool.props(blockchain, ommersPoolSize, ommerGenerationLimit))
203+
val ommersPool =
204+
system.actorOf(OmmersPool.props(blockchain, ommersPoolSize, ommerGenerationLimit, returnedOmmerSizeLimit))
205205
}
206206
}

0 commit comments

Comments
 (0)