Skip to content

Commit

Permalink
Refactoring: finalization is extracted from preState
Browse files Browse the repository at this point in the history
  • Loading branch information
stanislavlyalin committed Aug 23, 2022
1 parent c60eb11 commit 7e72a2b
Showing 3 changed files with 7 additions and 12 deletions.
Original file line number Diff line number Diff line change
@@ -25,7 +25,6 @@ final case class BlockCreator(id: ValidatorIdentity, shardId: String) {

def create[F[_]: Concurrent: RuntimeManager: BlockDagStorage: BlockStore: Log: Metrics: Span](
preState: ParentsMergedState,
finalization: Set[DeployId], // deploys that are rejected on finalization done by the block being created
deploys: Seq[DeployId],
toSlash: Set[Validator] = Set.empty,
changeEpoch: Boolean = false,
@@ -42,6 +41,9 @@ final case class BlockCreator(id: ValidatorIdentity, shardId: String) {
val blockData = BlockData(blockNum, creatorsPk, seqNum)
val shouldPropose = deploys.nonEmpty || toSlash.nonEmpty || changeEpoch

// deploys that are rejected on finalization done by the block being created
val finalization = preState.fringeRejectedDeploys

def propose: F[StateTransitionResult] = {
val rand = BlockRandomSeed.randomGenerator(shardId, blockNum, creatorsPk, preStateHash)
// seeds from 0 to deploys.size are used in deploys execution, so system deploy seeds start from the next index
Original file line number Diff line number Diff line change
@@ -204,7 +204,6 @@ object Proposer {
_ <- Log[F].info(s"Creating block #${nextBlockNum} (seqNum ${nextSeqNum})")
result <- BlockCreator(validatorIdentity, shardId).create(
preState,
preState.fringeRejectedDeploys,
deploys,
toSlash,
changeEpoch,
14 changes: 4 additions & 10 deletions casper/src/test/scala/coop/rchain/casper/helper/TestNode.scala
Original file line number Diff line number Diff line change
@@ -170,11 +170,8 @@ case class TestNode[F[_]: Concurrent: Timer](
} yield ()
)
preState <- MultiParentCasper.getPreStateForNewBlock[F]
createBlockResult <- BlockCreator(validatorIdOpt.get, shardName).create(
preState,
preState.rejectedDeploys,
deployDatums.map(_.sig)
)
createBlockResult <- BlockCreator(validatorIdOpt.get, shardName)
.create(preState, deployDatums.map(_.sig))
} yield (createBlockResult, preState)

def createBlock(deployDatums: Signed[DeployData]*): F[BlockCreatorResult] =
@@ -185,11 +182,8 @@ case class TestNode[F[_]: Concurrent: Timer](
for {
_ <- deployDatums.toList.traverse(MultiParentCasper.deploy[F])
preState <- MultiParentCasper.getPreStateForNewBlock[F]
createBlockResult <- BlockCreator(validatorIdOpt.get, shardName).create(
preState,
preState.rejectedDeploys,
deployDatums.map(_.sig)
)
createBlockResult <- BlockCreator(validatorIdOpt.get, shardName)
.create(preState, deployDatums.map(_.sig))
block <- createBlockResult match {
case Created(b) => b.pure[F]
case err => new Throwable(s"failed creating block: $err").raiseError

0 comments on commit 7e72a2b

Please sign in to comment.