diff --git a/src/main/scala/com/wavesplatform/network/HandshakeHandler.scala b/src/main/scala/com/wavesplatform/network/HandshakeHandler.scala index e23ea525f03..bdf3dbce8b8 100644 --- a/src/main/scala/com/wavesplatform/network/HandshakeHandler.scala +++ b/src/main/scala/com/wavesplatform/network/HandshakeHandler.scala @@ -121,7 +121,7 @@ object HandshakeHandler extends ScorexLogging { val NodeNameAttributeKey = AttributeKey.newInstance[String]("name") def versionIsSupported(remoteVersion: (Int, Int, Int)): Boolean = - remoteVersion._1 == 0 && remoteVersion._2 >= 7 + remoteVersion._1 == 0 && remoteVersion._2 >= 8 def removeHandshakeHandlers(ctx: ChannelHandlerContext, thisHandler: ChannelHandler): Unit = { ctx.pipeline().remove(classOf[HandshakeTimeoutHandler]) diff --git a/src/main/scala/com/wavesplatform/state2/appender/package.scala b/src/main/scala/com/wavesplatform/state2/appender/package.scala index 3dd2dbd9187..152a23cbf46 100644 --- a/src/main/scala/com/wavesplatform/state2/appender/package.scala +++ b/src/main/scala/com/wavesplatform/state2/appender/package.scala @@ -23,6 +23,11 @@ package object appender extends ScorexLogging { private val MaxTimeDrift: Long = 100 // millis + private val correctBlockId1 = ByteStr.decodeBase58("2GNCYVy7k3kEPXzz12saMtRDeXFKr8cymVsG8Yxx3sZZ75eHj9csfXnGHuuJe7XawbcwjKdifUrV1uMq4ZNCWPf1").get + private val correctBlockId2 = ByteStr.decodeBase58("5uZoDnRKeWZV9Thu2nvJVZ5dBvPB7k2gvpzFD618FMXCbBVBMN2rRyvKBZBhAGnGdgeh2LXEeSr9bJqruJxngsE7").get + private val height1 = 812608 + private val height2 = 813207 + private[appender] val scheduler = monix.execution.Scheduler.singleThread("appender") private[appender] def processAndBlacklistOnFailure[A, B](ch: Channel, peerDatabase: PeerDatabase, miner: Miner, allChannels: ChannelGroup, @@ -96,7 +101,8 @@ package object appender extends ScorexLogging { effectiveBalance <- genBalance(height).left.map(GenericError(_)) hit = calcHit(prevBlockData, generator) target = calcTarget(parent.timestamp, parent.consensusData.baseTarget, blockTime, effectiveBalance) - _ <- Either.cond(hit < target, (), GenericError(s"calculated hit $hit >= calculated target $target")) + _ <- Either.cond(hit < target || (height == height1 && block.uniqueId == correctBlockId1) || (height == height2 && block.uniqueId == correctBlockId2), + (), GenericError(s"calculated hit $hit >= calculated target $target")) } yield () r.left.map {