From 0127a26dbdfebd2c3115f23ee5f124989322365a Mon Sep 17 00:00:00 2001 From: Lior Date: Thu, 29 Aug 2019 11:46:31 +0300 Subject: [PATCH 1/8] some addition --- src/main/scala/encry/local/miner/Miner.scala | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index f26c9ca4bc..2cca75e9c6 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -125,6 +125,17 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => + logger.info(s"Txs = $transactionsPool") + logger.info(s"SSM height = ${mod.header.height} / Candidate height = ${candidateOpt.get.parentOpt.get.height + 1}") + logger.info(s"SSM size = ${mod.payload.txs.size} / Candidate size = ${candidateOpt.get.transactions.size}") + logger.info(s"First = ${mod.payload.txs.diff(candidateOpt.get.transactions)} / Second = ${candidateOpt.get.transactions.diff(mod.payload.txs)}") + if (mod.header.height == candidateOpt.get.parentOpt.get.height + 1 + && mod.payload.txs.size != candidateOpt.get.transactions.size) { + logger.info(s"if loop") + //if (mod.payload.txs.size != candidateOpt.get.transactions.size) + transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.get.transactions) + logger.info(s"IF txs = $transactionsPool") + } logger.info(s"Got new block. Starting to produce candidate at height: ${mod.header.height + 1} " + s"at ${dateFormat.format(new Date(System.currentTimeMillis()))}") produceCandidate() From a301d99c9da639d542ced654a34444df7f13d2ac Mon Sep 17 00:00:00 2001 From: Lior Date: Thu, 29 Aug 2019 15:22:11 +0300 Subject: [PATCH 2/8] code cleanup --- src/main/scala/encry/local/miner/Miner.scala | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index 2cca75e9c6..e49441130a 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -126,14 +126,13 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => logger.info(s"Txs = $transactionsPool") - logger.info(s"SSM height = ${mod.header.height} / Candidate height = ${candidateOpt.get.parentOpt.get.height + 1}") - logger.info(s"SSM size = ${mod.payload.txs.size} / Candidate size = ${candidateOpt.get.transactions.size}") - logger.info(s"First = ${mod.payload.txs.diff(candidateOpt.get.transactions)} / Second = ${candidateOpt.get.transactions.diff(mod.payload.txs)}") - if (mod.header.height == candidateOpt.get.parentOpt.get.height + 1 - && mod.payload.txs.size != candidateOpt.get.transactions.size) { + logger.info(s"SSM height = ${mod.header.height} / Candidate height = ${candidateOpt.map(_.parentOpt.get.height + 1)}") + logger.info(s"SSM size = ${mod.payload.txs.size} / Candidate size = ${candidateOpt.map(_.transactions.size)}") + logger.info(s"First = ${mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty))} / Second = ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty).diff(mod.payload.txs)}") + if (candidateOpt.exists(_.parentOpt.exists(_.height == mod.header.height)) + && (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty)) { logger.info(s"if loop") - //if (mod.payload.txs.size != candidateOpt.get.transactions.size) - transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.get.transactions) + transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)) logger.info(s"IF txs = $transactionsPool") } logger.info(s"Got new block. Starting to produce candidate at height: ${mod.header.height + 1} " + From f860834f7ac74904049d1a174b5fec232bf8b934 Mon Sep 17 00:00:00 2001 From: Lior Date: Thu, 29 Aug 2019 17:54:10 +0300 Subject: [PATCH 3/8] logs added --- src/main/scala/encry/local/miner/Miner.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index e49441130a..c1d4ce9bc5 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -128,7 +128,7 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S logger.info(s"Txs = $transactionsPool") logger.info(s"SSM height = ${mod.header.height} / Candidate height = ${candidateOpt.map(_.parentOpt.get.height + 1)}") logger.info(s"SSM size = ${mod.payload.txs.size} / Candidate size = ${candidateOpt.map(_.transactions.size)}") - logger.info(s"First = ${mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty))} / Second = ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty).diff(mod.payload.txs)}") + logger.info(s"All = ${mod.payload.txs} / ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)} First = ${mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty))} / Second = ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty).diff(mod.payload.txs)}") if (candidateOpt.exists(_.parentOpt.exists(_.height == mod.header.height)) && (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty)) { logger.info(s"if loop") From 990d600e883218ec4deec7e0a281388669252331 Mon Sep 17 00:00:00 2001 From: Lior Date: Fri, 30 Aug 2019 12:09:44 +0300 Subject: [PATCH 4/8] code cleanup --- src/main/scala/encry/local/miner/Miner.scala | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index c1d4ce9bc5..068fa7001f 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -126,10 +126,13 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => logger.info(s"Txs = $transactionsPool") + val a = candidateOpt.map(_.parentOpt.get.height + 1) logger.info(s"SSM height = ${mod.header.height} / Candidate height = ${candidateOpt.map(_.parentOpt.get.height + 1)}") logger.info(s"SSM size = ${mod.payload.txs.size} / Candidate size = ${candidateOpt.map(_.transactions.size)}") - logger.info(s"All = ${mod.payload.txs} / ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)} First = ${mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty))} / Second = ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty).diff(mod.payload.txs)}") - if (candidateOpt.exists(_.parentOpt.exists(_.height == mod.header.height)) + logger.info(s"All = ${mod.payload.txs.map(_.encodedId)} / ${candidateOpt.map(_.transactions.map(_.encodedId)).getOrElse(IndexedSeq.empty)} " + + s"First = ${mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty))} " + + s"/ Second = ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty).diff(mod.payload.txs)}") + if (candidateOpt.exists(_.parentOpt.exists(x => (x.height+1) == mod.header.height)) && (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty)) { logger.info(s"if loop") transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)) From 1012e1511a456b0e6340a5274691fe0acda7f60f Mon Sep 17 00:00:00 2001 From: Lior Date: Mon, 2 Sep 2019 12:18:43 +0300 Subject: [PATCH 5/8] code cleanup --- src/main/scala/encry/local/miner/Miner.scala | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index 068fa7001f..f47aeccd3c 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -125,18 +125,9 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => - logger.info(s"Txs = $transactionsPool") - val a = candidateOpt.map(_.parentOpt.get.height + 1) - logger.info(s"SSM height = ${mod.header.height} / Candidate height = ${candidateOpt.map(_.parentOpt.get.height + 1)}") - logger.info(s"SSM size = ${mod.payload.txs.size} / Candidate size = ${candidateOpt.map(_.transactions.size)}") - logger.info(s"All = ${mod.payload.txs.map(_.encodedId)} / ${candidateOpt.map(_.transactions.map(_.encodedId)).getOrElse(IndexedSeq.empty)} " + - s"First = ${mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty))} " + - s"/ Second = ${candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty).diff(mod.payload.txs)}") - if (candidateOpt.exists(_.parentOpt.exists(x => (x.height+1) == mod.header.height)) + if (candidateOpt.exists(_.parentOpt.exists(x => (x.height + 1) == mod.header.height)) && (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty)) { - logger.info(s"if loop") - transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)) - logger.info(s"IF txs = $transactionsPool") + transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)) } logger.info(s"Got new block. Starting to produce candidate at height: ${mod.header.height + 1} " + s"at ${dateFormat.format(new Date(System.currentTimeMillis()))}") @@ -187,7 +178,7 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S val difficulty: Difficulty = bestHeaderOpt.map(parent => view.history.requiredDifficultyAfter(parent) match { case Right(value) => value - case Left(value) => EncryApp.forceStopApplication(999, value.toString) + case Left(value) => EncryApp.forceStopApplication(999, value.toString) }) .getOrElse(TestNetConstants.InitialDifficulty) @@ -249,13 +240,13 @@ object Miner { case class MinerStatus(isMining: Boolean, candidateBlock: Option[CandidateBlock]) { lazy val json: Json = Map( - "isMining" -> isMining.asJson, + "isMining" -> isMining.asJson, "candidateBlock" -> candidateBlock.map(_.asJson).getOrElse("None".asJson) ).asJson } implicit val jsonEncoder: Encoder[MinerStatus] = (r: MinerStatus) => Map( - "isMining" -> r.isMining.asJson, + "isMining" -> r.isMining.asJson, "candidateBlock" -> r.candidateBlock.map(_.asJson).getOrElse("None".asJson) ).asJson From cd9a27fd3d5cc30d390d908ad0c968682f6943b8 Mon Sep 17 00:00:00 2001 From: Lior Date: Fri, 6 Sep 2019 16:18:06 +0300 Subject: [PATCH 6/8] condition changed --- src/main/scala/encry/local/miner/Miner.scala | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index f47aeccd3c..d28053a2d6 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -125,8 +125,7 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => - if (candidateOpt.exists(_.parentOpt.exists(x => (x.height + 1) == mod.header.height)) - && (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty)) { + if (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty) { transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)) } logger.info(s"Got new block. Starting to produce candidate at height: ${mod.header.height + 1} " + From e750ef3abef278ad039018164862ca3832d8e62a Mon Sep 17 00:00:00 2001 From: Lior Date: Mon, 9 Sep 2019 11:19:56 +0300 Subject: [PATCH 7/8] code cleanup --- src/main/scala/encry/local/miner/Miner.scala | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index d28053a2d6..deb089a2ac 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -125,9 +125,9 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => - if (mod.payload.txs.dropRight(1).diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) != Seq.empty) { - transactionsPool = transactionsPool ++ mod.payload.txs.diff(candidateOpt.map(_.transactions).getOrElse(IndexedSeq.empty)) - } + val txs: Seq[Transaction] = mod.payload.txs.dropRight(1) + .diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) + if (txs.nonEmpty) transactionsPool = transactionsPool ++ txs logger.info(s"Got new block. Starting to produce candidate at height: ${mod.header.height + 1} " + s"at ${dateFormat.format(new Date(System.currentTimeMillis()))}") produceCandidate() From 9ad680af56d83ca520d44bfd0ae891fec2c381f0 Mon Sep 17 00:00:00 2001 From: Lior Date: Mon, 9 Sep 2019 17:18:29 +0300 Subject: [PATCH 8/8] code cleanup --- src/main/scala/encry/local/miner/Miner.scala | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/scala/encry/local/miner/Miner.scala b/src/main/scala/encry/local/miner/Miner.scala index deb089a2ac..0b34452381 100644 --- a/src/main/scala/encry/local/miner/Miner.scala +++ b/src/main/scala/encry/local/miner/Miner.scala @@ -125,9 +125,8 @@ class Miner(dataHolder: ActorRef, influx: Option[ActorRef]) extends Actor with S def receiveSemanticallySuccessfulModifier: Receive = { case SemanticallySuccessfulModifier(mod: Block) if needNewCandidate(mod) => - val txs: Seq[Transaction] = mod.payload.txs.dropRight(1) + transactionsPool = transactionsPool ++ mod.payload.txs.dropRight(1) .diff(candidateOpt.map(_.transactions.dropRight(1)).getOrElse(IndexedSeq.empty)) - if (txs.nonEmpty) transactionsPool = transactionsPool ++ txs logger.info(s"Got new block. Starting to produce candidate at height: ${mod.header.height + 1} " + s"at ${dateFormat.format(new Date(System.currentTimeMillis()))}") produceCandidate() @@ -239,13 +238,13 @@ object Miner { case class MinerStatus(isMining: Boolean, candidateBlock: Option[CandidateBlock]) { lazy val json: Json = Map( - "isMining" -> isMining.asJson, + "isMining" -> isMining.asJson, "candidateBlock" -> candidateBlock.map(_.asJson).getOrElse("None".asJson) ).asJson } implicit val jsonEncoder: Encoder[MinerStatus] = (r: MinerStatus) => Map( - "isMining" -> r.isMining.asJson, + "isMining" -> r.isMining.asJson, "candidateBlock" -> r.candidateBlock.map(_.asJson).getOrElse("None".asJson) ).asJson