From 9097f1d05ae6257c1b93128c10ba4491a791f29a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:39:49 +0200 Subject: [PATCH 01/11] Changed gradle version. --- build.gradle | 20 +++++++++++--------- config.json | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 13 insertions(+), 11 deletions(-) diff --git a/build.gradle b/build.gradle index 895fd6e..5abe64c 100644 --- a/build.gradle +++ b/build.gradle @@ -1,13 +1,13 @@ plugins { id 'java' - id("org.jetbrains.kotlin.jvm") version "1.9.0" - id("org.jetbrains.kotlin.plugin.serialization") version "1.9.0" + id("org.jetbrains.kotlin.jvm") version "2.2.0" + id("org.jetbrains.kotlin.plugin.serialization") version "2.2.0" } group 'nion.network' version '0.1' -configurations.implementation.setCanBeResolved(true) +//configurations.implementation.setCanBeResolved(true) repositories { mavenCentral() @@ -17,10 +17,10 @@ dependencies { testImplementation('org.junit.jupiter:junit-jupiter-api:5.8.1') testImplementation('org.junit.jupiter:junit-jupiter-engine:5.8.1') - implementation('org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.9.0') + implementation('org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0') implementation('org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.3.0') implementation('org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0') - implementation("com.influxdb:influxdb-client-kotlin:4.0.0") + implementation("com.influxdb:influxdb-client-kotlin:7.3.0") implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt') } @@ -31,11 +31,13 @@ tasks.withType(Test).configureEach { tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - setArchivesBaseName("Nion-Network") + manifest { attributes.put("Main-Class", "LaunchKt") } - from { - configurations.implementation.collect { it.isDirectory() ? it : zipTree(it) } - } + dependsOn(configurations.runtimeClasspath) + from({ + configurations.runtimeClasspath + .collect { it.isDirectory() ? it : zipTree(it) } + }) } \ No newline at end of file diff --git a/config.json b/config.json index 80e37ab..87b05b7 100644 --- a/config.json +++ b/config.json @@ -11,7 +11,7 @@ "influxUrl": "", "influxToken": "", "dashboardEnabled": false, - "loggingEnabled": false, + "loggingEnabled": true, "trustedLoggingEnabled": false, "historyMinuteClearance": 10, "historyCleaningFrequency": 5, diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 06febab..5c3b813 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.2-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists \ No newline at end of file From b710b769335c7fa99b967f46b9fc433806191089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:45:27 +0200 Subject: [PATCH 02/11] Opted in. --- src/main/kotlin/network/data/messages/Message.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/kotlin/network/data/messages/Message.kt b/src/main/kotlin/network/data/messages/Message.kt index 30ad040..6181f04 100644 --- a/src/main/kotlin/network/data/messages/Message.kt +++ b/src/main/kotlin/network/data/messages/Message.kt @@ -1,5 +1,8 @@ +@file:OptIn(ExperimentalSerializationApi::class) + package network.data.messages +import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.Serializable import kotlinx.serialization.decodeFromByteArray import kotlinx.serialization.protobuf.ProtoBuf From 0f32d61dc67ede692944a8d6d17cabd84109098f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:47:19 +0200 Subject: [PATCH 03/11] removed tests from gradle for now. --- build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 5abe64c..75a0351 100644 --- a/build.gradle +++ b/build.gradle @@ -24,10 +24,10 @@ dependencies { implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt') } -tasks.withType(Test).configureEach { - it.scanForTestClasses = false - it.useJUnitPlatform() -} +//tasks.withType(Test).configureEach { +// it.scanForTestClasses = false +// it.useJUnitPlatform() +//} tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE From 56e7e915f0f89180c0a6537376f375426cf23a6b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:48:07 +0200 Subject: [PATCH 04/11] removed tests from gradle for now. --- build.gradle | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 75a0351..98ffe36 100644 --- a/build.gradle +++ b/build.gradle @@ -24,11 +24,11 @@ dependencies { implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt') } -//tasks.withType(Test).configureEach { -// it.scanForTestClasses = false -// it.useJUnitPlatform() -//} - +test { + useJUnitPlatform() + scanForTestClasses = false + failOnNoMatchingTests = false +} tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE From 0f4e467cb60341bce065e3ff1f84e243bf6782d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:50:39 +0200 Subject: [PATCH 05/11] Build. --- build.gradle | 2 -- 1 file changed, 2 deletions(-) diff --git a/build.gradle b/build.gradle index 98ffe36..77cd473 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,6 @@ plugins { group 'nion.network' version '0.1' - //configurations.implementation.setCanBeResolved(true) repositories { @@ -27,7 +26,6 @@ dependencies { test { useJUnitPlatform() scanForTestClasses = false - failOnNoMatchingTests = false } tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE From 3d2d574680464cbc47352357b46a9b8a946774af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:54:19 +0200 Subject: [PATCH 06/11] Added jupiter. --- build.gradle | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 77cd473..d1578f1 100644 --- a/build.gradle +++ b/build.gradle @@ -13,8 +13,9 @@ repositories { } dependencies { - testImplementation('org.junit.jupiter:junit-jupiter-api:5.8.1') - testImplementation('org.junit.jupiter:junit-jupiter-engine:5.8.1') + testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2") + testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2") + implementation('org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0') implementation('org.jetbrains.kotlinx:kotlinx-serialization-protobuf:1.3.0') From 19ab710aeaa52355dbb7164f9884be20c8c7aaaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:55:24 +0200 Subject: [PATCH 07/11] Added jupiter. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index d1578f1..a7e0873 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ repositories { dependencies { testImplementation("org.junit.jupiter:junit-jupiter-api:5.10.2") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:5.10.2") + testImplementation("org.junit.jupiter:junit-jupiter-engine:5.10.2") implementation('org.jetbrains.kotlin:kotlin-stdlib-jdk8:2.2.0') From c3e1369c4c83553ab7b411e5c9a2de36db3811b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:56:39 +0200 Subject: [PATCH 08/11] Added jupiter. --- build.gradle | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index a7e0873..8fede9b 100644 --- a/build.gradle +++ b/build.gradle @@ -24,10 +24,10 @@ dependencies { implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt') } -test { - useJUnitPlatform() - scanForTestClasses = false -} +//test { +// useJUnitPlatform() +// scanForTestClasses = false +//} tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE From c45b63696f1f74cb4112b9ee7be3578e0053e11b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:57:27 +0200 Subject: [PATCH 09/11] Solving. --- build.gradle | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/build.gradle b/build.gradle index 8fede9b..314098c 100644 --- a/build.gradle +++ b/build.gradle @@ -24,10 +24,11 @@ dependencies { implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt') } -//test { -// useJUnitPlatform() -// scanForTestClasses = false -//} +test { + useJUnitPlatform() + scanForTestClasses = false + failOnNoDiscoveredTests = false +} tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE From bf86880ef2fb6a7a800f3b3c64bbafb0a4fccff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 15:58:48 +0200 Subject: [PATCH 10/11] Solving. --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 314098c..37dae6a 100644 --- a/build.gradle +++ b/build.gradle @@ -24,7 +24,7 @@ dependencies { implementation('org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.2-native-mt') } -test { +tasks.test { useJUnitPlatform() scanForTestClasses = false failOnNoDiscoveredTests = false From 298f75a0c0e9d969691172a03228c5438a9a9973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mihael=20Ber=C4=8Di=C4=8D?= Date: Wed, 6 Aug 2025 17:02:57 +0200 Subject: [PATCH 11/11] Moved configuration outside of the container. Made so that the jar is built inside the container. --- Dockerfile | 20 ++++++++++++-------- Start.sh | 26 +++++++++++++------------- build.gradle | 4 ++-- config.json | 2 +- src/main/kotlin/Launch.kt | 4 ++-- 5 files changed, 30 insertions(+), 26 deletions(-) diff --git a/Dockerfile b/Dockerfile index 3ba93e2..807ea47 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,26 +6,30 @@ WORKDIR /root RUN apk update RUN apk add make \ bash \ - openjdk11-jre \ + openjdk21-jdk \ curl \ openssl-dev \ python3-dev \ gmp-dev -RUN apk add --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing criu-dev +RUN apk add --repository http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/criu-dev RUN apk add tar -ADD *.jar Node.jar -ADD config.json config.json -ADD vdf-cli vdf-cli -ADD Start.sh Start.sh -ADD SaveContainer.sh SaveContainer.sh -ADD RunContainer.sh RunContainer.sh +COPY . . + +#ADD / +#ADD *.jar Node.jar +#ADD config.json config.json +#ADD vdf-cli vdf-cli +#ADD Start.sh Start.sh +#ADD SaveContainer.sh SaveContainer.sh +#ADD RunContainer.sh RunContainer.sh # ADD stress.sh stress.sh # COPY stress.tar stress.tar +RUN ./gradlew assemble jar RUN chmod 777 Start.sh RUN chmod 777 vdf-cli RUN mv vdf-cli /usr/bin/vdf-cli diff --git a/Start.sh b/Start.sh index 9ae8871..7b9284e 100644 --- a/Start.sh +++ b/Start.sh @@ -1,21 +1,21 @@ #!/bin/bash -if [ "$#" -ne 1 ]; then -echo "Sleeping..." -sleep $(shuf -i 1-120 -n 1) -fi +#if [ "$#" -ne 1 ]; then +#echo "Sleeping..." +#sleep $(shuf -i 1-120 -n 1) +#fi -dockerd --experimental & -while [ ! -f /var/run/docker.pid ] -do -echo "Waiting for docker daemon to initialize!" -sleep 5 -done +#dockerd --experimental & +#while [ ! -f /var/run/docker.pid ] +#do +#echo "Waiting for docker daemon to initialize!" +#sleep 5 +#done -docker load -i stress.tar +#docker load -i stress.tar if [ "$1" -eq 5005 ]; then echo "We're trusted. Running stress test." - bash stress.sh & +# bash stress.sh & fi -java -jar Node.jar $1 \ No newline at end of file +java -jar build/libs/nion-core.jar $1 $2 \ No newline at end of file diff --git a/build.gradle b/build.gradle index 37dae6a..dc288d6 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ plugins { } group 'nion.network' -version '0.1' +//version '0.1' //configurations.implementation.setCanBeResolved(true) repositories { @@ -31,7 +31,7 @@ tasks.test { } tasks.jar { duplicatesStrategy = DuplicatesStrategy.EXCLUDE - + archiveBaseName.set("nion-core") manifest { attributes.put("Main-Class", "LaunchKt") } diff --git a/config.json b/config.json index 87b05b7..f4dba90 100644 --- a/config.json +++ b/config.json @@ -21,4 +21,4 @@ "useCriu": true, "useTreeBasedMessageRoutingProtocol": true, "treeChildrenCount": 2 -} \ No newline at end of file +} diff --git a/src/main/kotlin/Launch.kt b/src/main/kotlin/Launch.kt index 258b3bf..e4e88dd 100644 --- a/src/main/kotlin/Launch.kt +++ b/src/main/kotlin/Launch.kt @@ -3,7 +3,6 @@ import kotlinx.serialization.decodeFromString import kotlinx.serialization.json.Json import logging.Logger import utils.tryAndReport -import java.io.File /** * Created by Mihael Valentin Berčič @@ -15,7 +14,8 @@ fun main(args: Array) { tryAndReport { System.setProperty("kotlinx.coroutines.scheduler", "off") - val configuration = Json.decodeFromString(File("./config.json").readText()) + val passedConfiguration = args.getOrNull(1) ?: throw Exception("Configuration should be passed to the docker container.") + val configuration = Json.decodeFromString(passedConfiguration) Logger.toggleLogging(configuration.loggingEnabled) args.getOrNull(0)?.toInt()?.apply {