Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 8 additions & 8 deletions .github/workflows/check-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ jobs:
JAVA_OPTS: -Dfile.encoding=UTF-8
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: foundry-rs/foundry-toolchain@v1
- uses: sbt/setup-sbt@v1
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
- name: Run tests
run: sbt -Dcc.it.max-parallel-suites=2 -Dlogback.test.level=OFF --batch "scalafmtCheck;test;docker;consensus-client-it/test"
env:
Expand All @@ -50,16 +50,16 @@ jobs:
timeout-minutes: 15
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
submodules: recursive
- uses: actions/setup-java@v4
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: foundry-rs/foundry-toolchain@v1
- uses: sbt/setup-sbt@v1
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
- run: |
sbt --batch docker
cd local-network
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/publish-docker-image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
attestations: write
id-token: write
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
- uses: regclient/actions/regctl-installer@4d6888fcc4842c9630f60ebc91715a45dd9bd7a3
- uses: proudust/gh-describe@70f72d4f6304ea053cf5a3d71c36211d5acc0c73
id: ghd
Expand Down Expand Up @@ -58,12 +58,12 @@ jobs:
echo EOF
} >> "$GITHUB_OUTPUT"
id: annotations
- uses: actions/setup-java@v4
- uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
distribution: 'temurin'
java-version: '11'
java-version: '17'
cache: 'sbt'
- uses: sbt/setup-sbt@v1
- uses: sbt/setup-sbt@508b753e53cb6095967669e0911487d2b9bc9f41 # v1.1.22
- run: sbt -Dproject.version=${{ steps.versions.outputs.cc-version }} --batch buildTarballsForDocker
- uses: docker/login-action@v3
with:
Expand Down
4 changes: 3 additions & 1 deletion .sbtopts
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
--mem 2048
-mem 2048
-J--add-exports=java.base/sun.nio.ch=ALL-UNNAMED
-J--add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED
69 changes: 39 additions & 30 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,16 @@ import scala.sys.process.{Process, ProcessLogger}

enablePlugins(UniversalDeployPlugin, GitVersioning, VersionObject)

git.useGitDescribe := true
git.baseVersion := "1.4.0"
git.useGitDescribe := true
git.baseVersion := "1.4.0"
git.uncommittedSignifier := Some("DIRTY")

inScope(Global)(
Seq(
onChangedBuildSource := ReloadOnSourceChanges,
scalaVersion := "3.7.4",
organization := "network.units",
organizationName := "Units Network",
scalaVersion := "3.8.1",
organization := "network.units",
organizationName := "Units Network",
resolvers ++= Seq(Resolver.sonatypeCentralSnapshots, Resolver.mavenLocal),
scalacOptions ++= Seq(
"-feature",
Expand All @@ -31,32 +31,41 @@ inScope(Global)(
)
)

name := "consensus-client"
name := "consensus-client"
maintainer := "Units Network Team"

def nettyModule(module: String): ModuleID = "io.netty" % s"netty-$module" % "4.2.10.Final"

// These overrides are needed so that there are no different versions of the same component on the classpath when the extension is installed
dependencyOverrides ++= Seq(
"org.playframework" %% "play-json" % "3.0.6",
"com.squareup.okhttp3" % "okhttp" % "4.12.0",
"org.playframework" %% "play-json" % "3.0.6",
"com.squareup.okhttp3" % "okhttp" % "4.12.0",
"com.squareup.okhttp3" % "logging-interceptor" % "4.12.0",
"com.squareup.okio" % "okio" % "3.6.0",
"com.squareup.okio" % "okio-jvm" % "3.16.4",
"org.reactivestreams" % "reactive-streams" % "1.0.4",
"org.jetbrains.kotlin" % "kotlin-stdlib" % "2.2.20",
"org.jetbrains.kotlin" % "kotlin-stdlib-jdk7" % "1.8.21",
"org.jetbrains.kotlin" % "kotlin-stdlib-jdk8" % "1.8.21"
"com.squareup.okio" % "okio" % "3.16.4",
"com.squareup.okio" % "okio-jvm" % "3.16.4",
"org.apache.httpcomponents" % "httpclient" % "4.5.14",
"org.reactivestreams" % "reactive-streams" % "1.0.4",
"org.jetbrains.kotlin" % "kotlin-stdlib" % "2.2.20",
"org.jetbrains.kotlin" % "kotlin-stdlib-jdk7" % "1.8.21",
"org.jetbrains.kotlin" % "kotlin-stdlib-jdk8" % "1.8.21",
nettyModule("codec-http2"),
nettyModule("codec-http"),
nettyModule("handler-proxy"),
nettyModule("codec-socks"),
nettyModule("transport-native-unix-common"),
nettyModule("resolver-dns")
)

libraryDependencies ++= {
val node = "1.6.1"
val node = "1.6.2-SNAPSHOT"
val sttpVersion = "3.11.0"
Seq(
"com.wavesplatform" % "node-testkit" % node % Test,
"com.wavesplatform" % "node" % node % Provided,
"com.softwaremill.sttp.client3" %% "core" % sttpVersion,
"com.softwaremill.sttp.client3" %% "play-json" % sttpVersion,
"com.github.jwt-scala" %% "jwt-play-json" % "11.0.3",
("org.web3j" % "core" % "4.9.8").excludeAll(
"com.wavesplatform" % "node-testkit" % node % Test,
"com.wavesplatform" % "node" % node % Provided,
"com.softwaremill.sttp.client3" %% "core" % sttpVersion,
"com.softwaremill.sttp.client3" %% "play-json" % sttpVersion,
"com.github.jwt-scala" %% "jwt-play-json" % "11.0.4",
("org.web3j" % "core" % "4.13.0").excludeAll(
ExclusionRule("org.slf4j", "slf4j-api"),
ExclusionRule("org.bouncycastle", "bcprov-jdk15on")
)
Expand All @@ -66,12 +75,12 @@ libraryDependencies ++= {
Compile / packageDoc / publishArtifact := false

def makeJarName(
org: String,
name: String,
revision: String,
artifactName: String,
artifactClassifier: Option[String]
): String =
org: String,
name: String,
revision: String,
artifactName: String,
artifactClassifier: Option[String]
): String =
org + "." +
name + "-" +
Option(artifactName.replace(name, "")).filterNot(_.isEmpty).map(_ + "-").getOrElse("") +
Expand All @@ -81,7 +90,7 @@ def makeJarName(

def getJarFullFilename(dep: Attributed[File]): String = {
val filename: Option[String] = for {
module <- dep.metadata.get(AttributeKey[ModuleID]("moduleID"))
module <- dep.metadata.get(AttributeKey[ModuleID]("moduleID"))
artifact <- dep.metadata.get(AttributeKey[Artifact]("artifact"))
} yield makeJarName(module.organization, module.name, module.revision, artifact.name, artifact.classifier)
filename.getOrElse(dep.data.getName)
Expand All @@ -94,14 +103,14 @@ def universalDepMappings(deps: Seq[Attributed[File]]): Seq[(File, String)] =

Universal / mappings += {
val jar = (Compile / packageBin).value
val id = projectID.value
val id = projectID.value
val art = (Compile / packageBin / artifact).value
jar -> ("lib/" + makeJarName(id.organization, id.name, id.revision, art.name, art.classifier))
}
Universal / mappings ++= universalDepMappings((Runtime / dependencyClasspath).value.filterNot { p =>
p.get(AttributeKey[ModuleID]("moduleID")).exists { m =>
m.organization == "org.scala-lang" ||
m.organization.startsWith("com.fasterxml.jackson")
m.organization.startsWith("com.fasterxml.jackson")
}
})

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package units

import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.state.IntegerDataEntry
import com.wavesplatform.transaction.Asset.IssuedAsset
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import com.wavesplatform.transaction.{Asset, TxHelpers}
import monix.execution.atomic.AtomicInt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package units

import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.transaction.Asset
import com.wavesplatform.transaction.Asset.IssuedAsset
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import monix.execution.atomic.AtomicInt
import org.web3j.protocol.core.DefaultBlockParameterName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package units

import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.state.IntegerDataEntry
import com.wavesplatform.transaction.Asset.IssuedAsset
import com.wavesplatform.transaction.{Asset, TxHelpers}
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import monix.execution.atomic.AtomicInt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
import units.el.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
import units.el.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
import units.el.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package units.block.validation

import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
import units.el.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
import units.el.*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.scalatest.concurrent.PatienceConfiguration.{Interval, Timeout}
import units.*
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.crypto.Keccak256
import com.wavesplatform.state.{BinaryDataEntry, Height, IntegerDataEntry, StringDataEntry}
import com.wavesplatform.transaction.Asset.IssuedAsset
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import com.wavesplatform.transaction.{Asset, TxHelpers}
import monix.execution.atomic.AtomicInt
import org.web3j.protocol.core.DefaultBlockParameterName
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package units.block.validation

import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package units.block.validation

import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.{EcBlock, Withdrawal}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.scalatest.concurrent.PatienceConfiguration.{Interval, Timeout}
import org.web3j.protocol.core.DefaultBlockParameterName
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package units.block.validation

import com.wavesplatform.account.*
import com.wavesplatform.common.utils.EitherExt2.explicitGet
import com.wavesplatform.lang.v1.compiler.Terms
import com.wavesplatform.transaction.TxHelpers
import com.wavesplatform.transaction.smart.InvokeScriptTransaction
import org.scalatest.concurrent.PatienceConfiguration.{Interval, Timeout}
import units.client.contract.HasConsensusLayerDappTxHelpers.{EmptyE2CTransfersRootHashHex, EmptyFailedC2ETransfersRootHashHex}
import units.client.engine.model.EcBlock
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package units.docker

import com.wavesplatform.utils.LoggerFacade
import com.typesafe.scalalogging.Logger
import org.slf4j.LoggerFactory
import org.testcontainers.containers.wait.strategy.DockerHealthcheckWaitStrategy

abstract class BaseContainer(val hostName: String) {
protected lazy val log = LoggerFacade(LoggerFactory.getLogger(s"${getClass.getSimpleName}.$hostName"))
protected lazy val log = Logger(LoggerFactory.getLogger(s"${getClass.getSimpleName}.$hostName"))

protected val container: GenericContainer

Expand Down
5 changes: 3 additions & 2 deletions src/main/scala/units/ConsensusClientDependencies.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
package units

import com.typesafe.scalalogging.Logger
import com.wavesplatform.network.{PeerDatabaseImpl, PeerInfo}
import com.wavesplatform.utils.{LoggerFacade, Schedulers}
import com.wavesplatform.utils.Schedulers
import io.netty.channel.Channel
import io.netty.channel.group.DefaultChannelGroup
import io.netty.util.concurrent.GlobalEventExecutor
Expand All @@ -18,7 +19,7 @@ import scala.io.Source

// A helper to create ConsensusClient due to Scala secondary constructors limitations
class ConsensusClientDependencies(val config: ClientConfig) extends AutoCloseable {
protected lazy val log: LoggerFacade = LoggerFacade(LoggerFactory.getLogger(classOf[ConsensusClient]))
protected lazy val log = Logger(LoggerFactory.getLogger(classOf[ConsensusClient]))

private val blockObserverScheduler =
Schedulers.singleThread(s"block-observer-${config.chainContract}", reporter = { e => log.warn("Error in BlockObserver", e) })
Expand Down
Loading
Loading