Skip to content
This repository has been archived by the owner on Apr 13, 2022. It is now read-only.

Commit

Permalink
Separate ScorexEncoding and ScorexLogging. Fix /pull/25#pullrequestre…
Browse files Browse the repository at this point in the history
…view-83719938
  • Loading branch information
catena2w committed Jun 13, 2018
1 parent 73fc369 commit 5600e7e
Show file tree
Hide file tree
Showing 35 changed files with 98 additions and 94 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import io.circe.syntax._
import scorex.core.serialization.Serializer
import scorex.core.transaction.account.PublicKeyNoncedBox
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}
import scorex.crypto.encode.Base16
import scorex.crypto.hash.Blake2b256
import scorex.crypto.signatures.{Curve25519, PublicKey}
Expand All @@ -25,7 +25,7 @@ case class PublicKey25519NoncedBox(override val proposition: PublicKey25519Propo
s"PublicKey25519NoncedBox(id: ${Base16.encode(id)}, proposition: $proposition, nonce: $nonce, value: $value)"
}

object PublicKey25519NoncedBox extends ScorexLogging {
object PublicKey25519NoncedBox extends ScorexEncoding {
val BoxKeyLength: Int = Blake2b256.DigestSize
val BoxLength: Int = Curve25519.KeyLength + 2 * 8

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import scorex.core.transaction.box.BoxUnlocker
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.transaction.proof.{Proof, Signature25519}
import scorex.core.transaction.state.{PrivateKey25519, PrivateKey25519Companion}
import scorex.core.utils.ScorexLogging
import scorex.core.utils.ScorexEncoding
import scorex.crypto.hash.Blake2b256
import scorex.crypto.signatures.{Curve25519, PublicKey, Signature}

Expand Down Expand Up @@ -73,7 +73,7 @@ case class SimpleBoxTransaction(from: IndexedSeq[(PublicKey25519Proposition, Non
}


object SimpleBoxTransaction extends ScorexLogging {
object SimpleBoxTransaction extends ScorexEncoding {

implicit val simpleBoxEncoder: Encoder[SimpleBoxTransaction] = (sbe: SimpleBoxTransaction) =>
Map(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import scorex.core.settings.ScorexSettings
import scorex.core.transaction.Transaction
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.transaction.state.PrivateKey25519Companion
import scorex.core.utils.{NetworkTimeProvider, ScorexLogging}
import scorex.core.utils.{NetworkTimeProvider, ScorexEncoding, ScorexLogging}
import scorex.core.{ModifierTypeId, NodeViewHolder, NodeViewModifier}
import scorex.crypto.encode.Base58
import scorex.crypto.signatures.PublicKey
Expand Down Expand Up @@ -65,7 +65,7 @@ class HybridNodeViewHolder(settings: ScorexSettings,
}
}

object HybridNodeViewHolder extends ScorexLogging {
object HybridNodeViewHolder extends ScorexLogging with ScorexEncoding {
def generateGenesisState(settings: ScorexSettings, minerSettings: HybridMiningSettings, timeProvider: NetworkTimeProvider):
(HybridHistory, HBoxStoredState, HBoxWallet, SimpleBoxTransactionMemPool) = {
val GenesisAccountsNum = 50
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,15 @@ import io.circe.syntax._
import scorex.core.ModifierId
import scorex.core.api.http.{ApiResponse, ApiRouteWithFullView}
import scorex.core.settings.RESTApiSettings
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}

import scala.util.Try


case class DebugApiRoute(override val settings: RESTApiSettings, nodeViewHolderRef: ActorRef)
(implicit val context: ActorRefFactory)
extends ApiRouteWithFullView[HybridHistory, HBoxStoredState, HBoxWallet, SimpleBoxTransactionMemPool]
with ScorexLogging {
with ScorexEncoding {

override val route: Route = (pathPrefix("debug") & withCors) {
infoRoute ~ chain ~ delay ~ myblocks ~ generators
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@ import io.circe.syntax._
import scorex.core.ModifierId
import scorex.core.api.http.{ApiResponse, ApiRouteWithFullView, ApiTry}
import scorex.core.settings.RESTApiSettings
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}

import scala.util.Try

case class StatsApiRoute(override val settings: RESTApiSettings, nodeViewHolderRef: ActorRef)
(implicit val context: ActorRefFactory)
extends ApiRouteWithFullView[HybridHistory, HBoxStoredState, HBoxWallet, SimpleBoxTransactionMemPool]
with ScorexLogging {
with ScorexEncoding {

override val route: Route = (pathPrefix("stats") & withCors) {
tail ~ meanDifficulty
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ import io.circe.syntax._
import scorex.core.api.http.{ApiError, ApiResponse, ApiRouteWithFullView}
import scorex.core.settings.RESTApiSettings
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.utils.ScorexLogging
import scorex.crypto.encode.Base58
import scorex.core.utils.ScorexEncoding
import scorex.crypto.signatures.PublicKey

import scala.util.{Failure, Success, Try}
Expand All @@ -21,7 +20,7 @@ import scala.util.{Failure, Success, Try}
case class WalletApiRoute(override val settings: RESTApiSettings, nodeViewHolderRef: ActorRef)
(implicit val context: ActorRefFactory)
extends ApiRouteWithFullView[HybridHistory, HBoxStoredState, HBoxWallet, SimpleBoxTransactionMemPool]
with ScorexLogging {
with ScorexEncoding {

import scorex.core.NodeViewHolder.ReceivableMessages.LocallyGeneratedTransaction

Expand Down
6 changes: 3 additions & 3 deletions examples/src/main/scala/examples/hybrid/blocks/PosBlock.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import scorex.core.block.Block._
import scorex.core.serialization.Serializer
import scorex.core.transaction.proof.Signature25519
import scorex.core.transaction.state.PrivateKey25519
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}
import scorex.core.{ModifierId, ModifierTypeId, TransactionsCarryingPersistentNodeViewModifier}
import scorex.crypto.hash.Blake2b256
import scorex.crypto.signatures.{Curve25519, Signature}
Expand Down Expand Up @@ -38,7 +38,7 @@ case class PosBlock(override val parentId: BlockId, //PoW block
override def toString: String = s"PoSBlock(${this.asJson.noSpaces})"
}

object PosBlockCompanion extends Serializer[PosBlock] with ScorexLogging {
object PosBlockCompanion extends Serializer[PosBlock] with ScorexEncoding {
override def toBytes(b: PosBlock): Array[Byte] = {
val txsBytes = b.transactions.sortBy(t => encoder.encode(t.id)).foldLeft(Array[Byte]()) { (a, b) =>
Bytes.concat(Ints.toByteArray(b.bytes.length), b.bytes, a)
Expand Down Expand Up @@ -77,7 +77,7 @@ object PosBlockCompanion extends Serializer[PosBlock] with ScorexLogging {
}
}

object PosBlock extends ScorexLogging {
object PosBlock extends ScorexEncoding {
val MaxBlockSize = 512 * 1024 //512K
val ModifierTypeId: ModifierTypeId = scorex.core.ModifierTypeId @@ 4.toByte

Expand Down
8 changes: 4 additions & 4 deletions examples/src/main/scala/examples/hybrid/blocks/PowBlock.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import examples.commons.SimpleBoxTransaction
import examples.hybrid.mining.HybridMiningSettings
import io.circe.Encoder
import io.circe.syntax._
import scorex.core.{ModifierId, _}
import scorex.core.block.Block
import scorex.core.block.Block._
import scorex.core.serialization.Serializer
import scorex.core.transaction.box.proposition.{PublicKey25519Proposition, PublicKey25519PropositionSerializer}
import scorex.core.utils.ScorexLogging
import scorex.core.utils.ScorexEncoding
import scorex.core.{ModifierId, _}
import scorex.crypto.hash.Blake2b256
import scorex.crypto.signatures.{Curve25519, PublicKey}

Expand All @@ -23,7 +23,7 @@ class PowBlockHeader(
val nonce: Long,
val brothersCount: Int,
val brothersHash: Array[Byte],
val generatorProposition: PublicKey25519Proposition) extends ScorexLogging {
val generatorProposition: PublicKey25519Proposition) extends ScorexEncoding {


import PowBlockHeader._
Expand Down Expand Up @@ -135,7 +135,7 @@ object PowBlockCompanion extends Serializer[PowBlock] {
}
}

object PowBlock extends ScorexLogging {
object PowBlock extends ScorexEncoding {
val ModifierTypeId: ModifierTypeId = scorex.core.ModifierTypeId @@ 3.toByte

implicit val powBlockEncoder: Encoder[PowBlock] = (pb: PowBlock) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,9 @@ import scorex.core.consensus.ModifierSemanticValidity._
import scorex.core.consensus._
import scorex.core.settings.ScorexSettings
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.utils.{NetworkTimeProvider, ScorexLogging}
import scorex.core.validation.{MalformedModifierError, RecoverableModifierError}
import scorex.core.utils.{NetworkTimeProvider, ScorexEncoding, ScorexLogging}
import scorex.core.validation.RecoverableModifierError
import scorex.core.{ModifierId, ModifierTypeId, NodeViewModifier}
import scorex.crypto.encode.Base58
import scorex.crypto.hash.Blake2b256

import scala.annotation.tailrec
Expand All @@ -32,7 +31,7 @@ class HybridHistory(val storage: HistoryStorage,
validators: Seq[BlockValidator[HybridBlock]],
statsLogger: Option[FileLogger],
timeProvider: NetworkTimeProvider)
extends History[HybridBlock, HybridSyncInfo, HybridHistory] with ScorexLogging {
extends History[HybridBlock, HybridSyncInfo, HybridHistory] with ScorexLogging with ScorexEncoding {

import HybridHistory._

Expand Down Expand Up @@ -204,7 +203,7 @@ class HybridHistory(val storage: HistoryStorage,

val newSuffixValid = !newSuffix.drop(1).map(storage.semanticValidity).contains(Invalid)

if(newSuffixValid) {
if (newSuffixValid) {
// TODO: fixme, What should we do if `oldSuffix` is empty? and .get
@SuppressWarnings(Array("org.wartremover.warts.TraversableOps", "org.wartremover.warts.OptionPartial"))
val throwBlocks = oldSuffix.tail.map(id => modifierById(id).get)
Expand Down Expand Up @@ -463,7 +462,7 @@ class HybridHistory(val storage: HistoryStorage,
* Average delay in milliseconds between last $blockNum blocks starting from $block
* Debug only
*/
@SuppressWarnings(Array("org.wartremover.warts.TraversableOps","org.wartremover.warts.OptionPartial"))
@SuppressWarnings(Array("org.wartremover.warts.TraversableOps", "org.wartremover.warts.OptionPartial"))
def averageDelay(id: ModifierId, blockNum: Int): Try[Long] = Try {
val block = modifierById(id).get
val c = chainBack(block, isGenesis, blockNum).get.map(_._2)
Expand All @@ -486,7 +485,7 @@ class HybridHistory(val storage: HistoryStorage,

override def reportModifierIsInvalid(modifier: HybridBlock,
progressInfo: ProgressInfo[HybridBlock]): (HybridHistory,
ProgressInfo[HybridBlock]) = {
ProgressInfo[HybridBlock]) = {
storage.updateValidity(modifier, Invalid)

new HybridHistory(storage, settings, validators, statsLogger, timeProvider) ->
Expand Down
4 changes: 2 additions & 2 deletions examples/src/main/scala/examples/hybrid/mining/PowMiner.scala
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import scorex.core.ModifierId
import scorex.core.NodeViewHolder.CurrentView
import scorex.core.block.Block.BlockId
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}
import scorex.crypto.encode.Base58
import scorex.crypto.hash.Blake2b256

Expand All @@ -25,7 +25,7 @@ import scala.util.Random
* and stops on a new PoW block found (when PoS ref is unknown)
*/
class PowMiner(viewHolderRef: ActorRef, settings: HybridMiningSettings)(implicit ec: ExecutionContext)
extends Actor with ScorexLogging {
extends Actor with ScorexLogging with ScorexEncoding {

import PowMiner.ReceivableMessages._
import PowMiner._
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import examples.hybrid.util.FileFunctions
import examples.hybrid.wallet.HBoxWallet
import scorex.core.block.Block.BlockId
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.utils.{NetworkTimeProvider, ScorexLogging}
import scorex.core.utils.{NetworkTimeProvider, ScorexEncoding, ScorexLogging}
import scorex.crypto.encode.Base58
import scorex.crypto.signatures.PublicKey

Expand All @@ -23,7 +23,7 @@ import scala.util.Try
/**
* Private chain attack simulation
*/
object PrivateChain extends App with ScorexLogging {
object PrivateChain extends App with ScorexLogging with ScorexEncoding {

val proposition: PublicKey25519Proposition = PublicKey25519Proposition(PublicKey @@ scorex.utils.Random.randomBytes(32))

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import scorex.core.VersionTag
import scorex.core.settings.ScorexSettings
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.transaction.state.{BoxStateChangeOperation, BoxStateChanges, Insertion, Removal}
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}
import scorex.crypto.authds._
import scorex.crypto.encode.Base58
import scorex.mid.state.BoxMinimalState
Expand All @@ -23,7 +23,7 @@ case class HBoxStoredState(store: LSMStore, override val version: VersionTag) ex
PublicKey25519NoncedBox,
SimpleBoxTransaction,
HybridBlock,
HBoxStoredState] with ScorexLogging {
HBoxStoredState] with ScorexLogging with ScorexEncoding {

require(store.lastVersionID.map(_.data).getOrElse(version) sameElements version,
s"${encoder.encode(store.lastVersionID.map(_.data).getOrElse(version))} != ${encoder.encode(version)}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,12 @@ import examples.hybrid.blocks.{HybridBlock, PosBlock, PowBlock}
import examples.hybrid.history.HistoryStorage
import examples.hybrid.mining.{HybridMiningSettings, PosForger}
import scorex.core.block.BlockValidator
import scorex.core.utils.ScorexLogging
import scorex.crypto.encode.Base58
import scorex.core.utils.ScorexEncoding

import scala.util.Try

class DifficultyBlockValidator(settings: HybridMiningSettings, storage: HistoryStorage)
extends BlockValidator[HybridBlock] with ScorexLogging {
extends BlockValidator[HybridBlock] with ScorexEncoding {

def validate(block: HybridBlock): Try[Unit] = block match {
case b: PowBlock => checkPoWConsensusRules(b)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,12 @@ package examples.hybrid.validation
import examples.hybrid.blocks.{HybridBlock, PosBlock, PowBlock}
import examples.hybrid.history.HistoryStorage
import scorex.core.block.BlockValidator
import scorex.core.utils.ScorexLogging
import scorex.crypto.encode.Base58
import scorex.core.utils.ScorexEncoding

import scala.util.Try

class ParentBlockValidator(storage: HistoryStorage)
extends BlockValidator[HybridBlock] with ScorexLogging {
extends BlockValidator[HybridBlock] with ScorexEncoding {

def validate(block: HybridBlock): Try[Unit] = Try {
block match {
Expand Down
13 changes: 6 additions & 7 deletions examples/src/main/scala/examples/hybrid/wallet/HBoxWallet.scala
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,15 @@ import scorex.core.settings.ScorexSettings
import scorex.core.transaction.box.proposition.PublicKey25519Proposition
import scorex.core.transaction.state.{PrivateKey25519, PrivateKey25519Companion, PrivateKey25519Serializer}
import scorex.core.transaction.wallet.{BoxWallet, BoxWalletTransaction, WalletBox, WalletBoxSerializer}
import scorex.core.utils.{ByteStr, ScorexLogging}
import scorex.crypto.encode.Base58
import scorex.core.utils.{ByteStr, ScorexEncoding, ScorexLogging}
import scorex.crypto.hash.Blake2b256

import scala.util.Try


case class HBoxWallet(seed: ByteStr, store: LSMStore)
extends BoxWallet[PublicKey25519Proposition, SimpleBoxTransaction, HybridBlock, HBoxWallet]
with ScorexLogging {
with ScorexLogging with ScorexEncoding {

override type S = PrivateKey25519
override type PI = PublicKey25519Proposition
Expand Down Expand Up @@ -158,7 +157,7 @@ object HBoxWallet {
}


object GenesisStateGenerator extends App with ScorexLogging {
object GenesisStateGenerator extends App with ScorexEncoding {
private val w1 = HBoxWallet(ByteStr.decodeBase58("minerNode1").get, new LSMStore(new File("/tmp/w1")))
private val w2 = HBoxWallet(ByteStr.decodeBase58("minerNode2").get, new LSMStore(new File("/tmp/w2")))
private val w3 = HBoxWallet(ByteStr.decodeBase58("minerNode3").get, new LSMStore(new File("/tmp/w3")))
Expand All @@ -168,9 +167,9 @@ object GenesisStateGenerator extends App with ScorexLogging {
(1 to 10).foreach(_ => w3.generateNewSecret())

val pks =
w1.publicKeys.map(_.pubKeyBytes).map(encoder.encode) ++
w2.publicKeys.map(_.pubKeyBytes).map(encoder.encode) ++
w3.publicKeys.map(_.pubKeyBytes).map(encoder.encode)
w1.publicKeys.map(_.pubKeyBytes).map(encoder.encode) ++
w2.publicKeys.map(_.pubKeyBytes).map(encoder.encode) ++
w3.publicKeys.map(_.pubKeyBytes).map(encoder.encode)

println(pks.map(pk => s""""$pk",""").mkString("\n"))
}
4 changes: 2 additions & 2 deletions examples/src/main/scala/examples/spv/Header.scala
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import io.circe.syntax._
import scorex.core.block.Block
import scorex.core.block.Block._
import scorex.core.serialization.Serializer
import scorex.core.utils.ScorexLogging
import scorex.core.utils.ScorexEncoding
import scorex.core.{ModifierId, ModifierTypeId, PersistentNodeViewModifier}

import scala.annotation.tailrec
Expand All @@ -33,7 +33,7 @@ case class Header(parentId: BlockId,
override def serializer: Serializer[Header] = HeaderSerializer
}

object Header extends ScorexLogging {
object Header extends ScorexEncoding {
implicit val headerEncoder: Encoder[Header] = (h: Header) =>
Map(
"id" -> encoder.encode(h.id).asJson,
Expand Down
4 changes: 2 additions & 2 deletions examples/src/main/scala/examples/spv/KMZProof.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package examples.spv

import com.google.common.primitives.{Bytes, Shorts}
import scorex.core.serialization.Serializer
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}

import scala.annotation.tailrec
import scala.util.Try
Expand All @@ -19,7 +19,7 @@ case class KMZProof(m: Int, k: Int, prefixProofs: Seq[Seq[Header]], suffix: Seq[
}
}

object KMZProofSerializer extends Serializer[KMZProof] with ScorexLogging {
object KMZProofSerializer extends Serializer[KMZProof] with ScorexEncoding {

override def toBytes(obj: KMZProof): Array[Byte] = {
// TODO: fixme, What should we do if `obj.suffix` is empty?
Expand Down
4 changes: 2 additions & 2 deletions examples/src/main/scala/examples/spv/SpvAlgos.scala
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package examples.spv

import io.iohk.iodb.ByteArrayWrapper
import scorex.core.utils.ScorexLogging
import scorex.core.utils.{ScorexEncoding, ScorexLogging}

import scala.annotation.tailrec
import scala.util.Try

object SpvAlgos extends ScorexLogging {
object SpvAlgos extends ScorexEncoding {

def blockIdDifficulty(id: Array[Byte]): BigInt = {
val blockTarget = BigInt(1, id)
Expand Down
Loading

0 comments on commit 5600e7e

Please sign in to comment.