From d9b9274f365c77185532f8223ddc171e37afde56 Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 21:40:06 +0200 Subject: [PATCH 01/11] Add bazel buildfiles --- .gitignore | 4 ++ BUILD | 117 +++++++++++++++++++++++++++++++ WORKSPACE | 76 ++++++++++++++++++++ docker/BUILD | 29 ++++++++ src/test/java/MilestoneTest.java | 3 + 5 files changed, 229 insertions(+) create mode 100644 BUILD create mode 100644 WORKSPACE create mode 100644 docker/BUILD diff --git a/.gitignore b/.gitignore index 3c09304887..8baab7770c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,7 @@ +.meghanada/ +bazel-* +bazel-*/ + layers/ addresses.csv diff --git a/BUILD b/BUILD new file mode 100644 index 0000000000..0c8d941b17 --- /dev/null +++ b/BUILD @@ -0,0 +1,117 @@ +MAIN_BASE_PATH = "src/main/java/coo/%s" + +java_import( + name = "jota", + jars = ["libs/jota-0.9.11-SNAPSHOT.jar"], +) + +java_library( + name = "common", + srcs = [ + (MAIN_BASE_PATH % (x)) + for x in [ + "crypto/Hasher.java", + "crypto/ISS.java", + "crypto/ISSInPlace.java", + "MilestoneSource.java", + "MilestoneDatabase.java", + "KerlPoW.java", + ] + ], + deps = [ + ":jota", + "@com_google_guava_guava//jar", + "@org_bouncycastle_bcprov_jdk15on//jar", + "@org_slf4j_slf4j_api//jar", + ], +) + +java_library( + name = "conf", + srcs = [ + (MAIN_BASE_PATH % x) + for x in [ + "conf/BaseConfiguration.java", + "conf/Configuration.java", + "conf/ShadowingConfiguration.java", + "conf/POWModeValidator.java", + ] + ], + deps = [ + ":common", + ":jota", + "@com_beust_jcommander//jar", + ], +) + +java_binary( + name = "address_generator", + srcs = [MAIN_BASE_PATH % "util/AddressGenerator.java"], + main_class = "coo.util.AddressGenerator", + visibility = ["//visibility:public"], + runtime_deps = ["@org_slf4j_slf4j_simple//jar"], + deps = [ + ":common", + ":jota", + "@org_slf4j_slf4j_api//jar", + ], +) + +java_binary( + name = "merkle_tree_calculator", + srcs = [MAIN_BASE_PATH % "util/MerkleTreeCalculator.java"], + main_class = "coo.util.MerkleTreeCalculator", + visibility = ["//visibility:public"], + runtime_deps = ["@org_slf4j_slf4j_simple//jar"], + deps = [ + ":common", + ":jota", + "@com_google_guava_guava//jar", + "@org_slf4j_slf4j_api//jar", + ], +) + +java_binary( + name = "shadowing_coordinator", + srcs = [MAIN_BASE_PATH % "shadow/ShadowingCoordinator.java"], + main_class = "coo.shadow.ShadowingCoordinator", + visibility = ["//visibility:public"], + runtime_deps = ["@org_slf4j_slf4j_simple//jar"], + deps = [ + ":common", + ":conf", + ":jota", + "@com_beust_jcommander//jar", + "@org_apache_commons_commons_lang3//jar", + "@org_slf4j_slf4j_api//jar", + ], +) + +java_binary( + name = "coordinator", + srcs = [MAIN_BASE_PATH % "Coordinator.java"], + main_class = "coo.Coordinator", + visibility = ["//visibility:public"], + runtime_deps = ["@org_slf4j_slf4j_simple//jar"], + deps = [ + ":common", + ":conf", + ":jota", + "@com_beust_jcommander//jar", + "@org_slf4j_slf4j_api//jar", + ], +) + +java_test( + name = "test_milestone", + srcs = glob(["src/test/java/**/*.java"]), + test_class = "MilestoneTest", + deps = [ + ":address_generator", + ":common", + ":jota", + ":merkle_tree_calculator", + "@com_google_guava_guava//jar", + "@junit_junit//jar", + ], +) diff --git a/WORKSPACE b/WORKSPACE new file mode 100644 index 0000000000..b2b8f10792 --- /dev/null +++ b/WORKSPACE @@ -0,0 +1,76 @@ +load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive") + +http_archive( + name = "io_bazel_rules_docker", + sha256 = "29d109605e0d6f9c892584f07275b8c9260803bf0c6fcb7de2623b2bedc910bd", + strip_prefix = "rules_docker-0.5.1", + url = "https://github.com/bazelbuild/rules_docker/archive/v0.5.1.tar.gz", +) + +load( + "@io_bazel_rules_docker//container:container.bzl", + "container_pull", + container_repositories = "repositories", +) + +container_repositories() + +container_pull( + name = "java_base", + digest = + "sha256:bb1c9179c2263733f235291998cb849d52fb730743125420cf4f97a362d6a6dd", + registry = "gcr.io", + repository = "distroless/java", +) + +# Java dependencies + +maven_jar( + name = "com_google_guava_guava", + artifact = "com.google.guava:guava:26.0-jre", +) + +maven_jar( + name = "com_beust_jcommander", + artifact = "com.beust:jcommander:1.72", +) + +maven_jar( + name = "org_slf4j_slf4j_api", + artifact = "org.slf4j:slf4j-api:1.7.25", +) + +maven_jar( + name = "org_slf4j_slf4j_simple", + artifact = "org.slf4j:slf4j-simple:1.7.25", +) + +maven_jar( + name = "org_apache_commons_commons_lang3", + artifact = "org.apache.commons:commons-lang3:3.8.1", +) + +maven_jar( + name = "org_bouncycastle_bcprov_jdk15on", + artifact = "org.bouncycastle:bcprov-jdk15on:1.60", +) + +maven_jar( + name = "com_squareup_retrofit2_retrofit2", + artifact = "com.squareup.retrofit2:retrofit:2.4.0", +) + +maven_jar( + name = "com_squareup_retrofit2_converter_gson", + artifact = "com.squareup.retrofit2:converter_gson:2.4.0", +) + +maven_jar( + name = "com_squareup_okhttp3_okhttp", + artifact = "com.squareup.okhttp3:okhttp:3.11.0", +) + +maven_jar( + name = "junit_junit", + artifact = "junit:junit:4.12", +) diff --git a/docker/BUILD b/docker/BUILD new file mode 100644 index 0000000000..876ba8f2c0 --- /dev/null +++ b/docker/BUILD @@ -0,0 +1,29 @@ +load("@io_bazel_rules_docker//container:container.bzl", "container_image") + +container_image( + name = "address_generator", + base = "@java_base//image", + cmd = ["address_generator_deploy.jar"], + files = ["//:address_generator_deploy.jar"], +) + +container_image( + name = "merkle_tree_calculator", + base = "@java_base//image", + cmd = ["merkle_tree_calculator_deploy.jar"], + files = ["//:merkle_tree_calculator_deploy.jar"], +) + +container_image( + name = "coordinator", + base = "@java_base//image", + cmd = ["coordinator_deploy.jar"], + files = ["//:coordinator_deploy.jar"], +) + +container_image( + name = "shadowing_coordinator", + base = "@java_base//image", + cmd = ["shadowing_coordinator_deploy.jar"], + files = ["//:shadowing_coordinator_deploy.jar"], +) diff --git a/src/test/java/MilestoneTest.java b/src/test/java/MilestoneTest.java index 8c7f5fe666..6924e903e7 100644 --- a/src/test/java/MilestoneTest.java +++ b/src/test/java/MilestoneTest.java @@ -34,6 +34,8 @@ import jota.utils.Converter; import org.junit.Assert; import org.junit.Test; +import org.junit.runner.RunWith; +import org.junit.runners.JUnit4; import java.util.Arrays; import java.util.List; @@ -44,6 +46,7 @@ /** * Tests milestone generation & verifies the signatures */ +@RunWith(JUnit4.class) public class MilestoneTest { private void runForMode(SpongeFactory.Mode powMode, SpongeFactory.Mode sigMode, int security) { final String seed = TestUtil.nextSeed(); From 1900ab57fcf8c7c8a96c51a25a96423c1589ddea Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 21:59:43 +0200 Subject: [PATCH 02/11] WORKSPACE: add sha1 hashes of maven dependencies --- WORKSPACE | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/WORKSPACE b/WORKSPACE index b2b8f10792..6d210c5e8d 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -28,49 +28,65 @@ container_pull( maven_jar( name = "com_google_guava_guava", artifact = "com.google.guava:guava:26.0-jre", + sha1 = "6a806eff209f36f635f943e16d97491f00f6bfab", ) maven_jar( name = "com_beust_jcommander", artifact = "com.beust:jcommander:1.72", + sha1 = "6375e521c1e11d6563d4f25a07ce124ccf8cd171", ) maven_jar( name = "org_slf4j_slf4j_api", artifact = "org.slf4j:slf4j-api:1.7.25", + sha1 = "da76ca59f6a57ee3102f8f9bd9cee742973efa8a", ) maven_jar( name = "org_slf4j_slf4j_simple", artifact = "org.slf4j:slf4j-simple:1.7.25", + sha1 = "8dacf9514f0c707cbbcdd6fd699e8940d42fb54e", ) maven_jar( name = "org_apache_commons_commons_lang3", artifact = "org.apache.commons:commons-lang3:3.8.1", + sha1 = "6505a72a097d9270f7a9e7bf42c4238283247755", ) maven_jar( name = "org_bouncycastle_bcprov_jdk15on", artifact = "org.bouncycastle:bcprov-jdk15on:1.60", + sha1 = "bd47ad3bd14b8e82595c7adaa143501e60842a84", ) maven_jar( name = "com_squareup_retrofit2_retrofit2", artifact = "com.squareup.retrofit2:retrofit:2.4.0", + sha1 = "fc4aa382632bfaa7be7b41579efba41d5a71ecf3", ) maven_jar( name = "com_squareup_retrofit2_converter_gson", - artifact = "com.squareup.retrofit2:converter_gson:2.4.0", + artifact = "com.squareup.retrofit2:converter-gson:2.4.0", + sha1 = "15d7790ee311d961379c51b00aba12d5967cb7ea", ) maven_jar( name = "com_squareup_okhttp3_okhttp", artifact = "com.squareup.okhttp3:okhttp:3.11.0", + sha1 = "75966e05a49046ca2ae734e5626f28837a8d1e82", +) + +maven_jar( + name = "commons_io_commons_io", + artifact = "commons-io:commons-io:2.6", + sha1 = "815893df5f31da2ece4040fe0a12fd44b577afaf", ) maven_jar( name = "junit_junit", artifact = "junit:junit:4.12", + sha1 = "2973d150c0dc1fefe998f834810d68f278ea58ec", ) From fc8c7b773a6d9120db9350e1e99687a4d33a3221 Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 21:59:56 +0200 Subject: [PATCH 03/11] BUILD: fix runtime_deps for jota --- BUILD | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/BUILD b/BUILD index 0c8d941b17..3609b144a6 100644 --- a/BUILD +++ b/BUILD @@ -3,6 +3,13 @@ MAIN_BASE_PATH = "src/main/java/coo/%s" java_import( name = "jota", jars = ["libs/jota-0.9.11-SNAPSHOT.jar"], + runtime_deps = [ + "@com_squareup_okhttp3_okhttp//jar", + "@com_squareup_retrofit2_converter_gson//jar", + "@com_squareup_retrofit2_retrofit2//jar", + "@commons_io_commons_io//jar", + "@org_bouncycastle_bcprov_jdk15on//jar", + ], ) java_library( @@ -71,12 +78,16 @@ java_binary( ], ) +COORDINATOR_RUNTIME_DEPS = [ + "@org_slf4j_slf4j_simple//jar", +] + java_binary( name = "shadowing_coordinator", srcs = [MAIN_BASE_PATH % "shadow/ShadowingCoordinator.java"], main_class = "coo.shadow.ShadowingCoordinator", visibility = ["//visibility:public"], - runtime_deps = ["@org_slf4j_slf4j_simple//jar"], + runtime_deps = COORDINATOR_RUNTIME_DEPS, deps = [ ":common", ":conf", @@ -92,7 +103,7 @@ java_binary( srcs = [MAIN_BASE_PATH % "Coordinator.java"], main_class = "coo.Coordinator", visibility = ["//visibility:public"], - runtime_deps = ["@org_slf4j_slf4j_simple//jar"], + runtime_deps = COORDINATOR_RUNTIME_DEPS, deps = [ ":common", ":conf", From 49cc5feb29942f8c353f2ffcecb450a72759e13d Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 22:06:36 +0200 Subject: [PATCH 04/11] docker: nicer repository name --- docker/BUILD | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker/BUILD b/docker/BUILD index 876ba8f2c0..29584a334b 100644 --- a/docker/BUILD +++ b/docker/BUILD @@ -5,6 +5,7 @@ container_image( base = "@java_base//image", cmd = ["address_generator_deploy.jar"], files = ["//:address_generator_deploy.jar"], + repository = "iota/compass", ) container_image( @@ -12,6 +13,7 @@ container_image( base = "@java_base//image", cmd = ["merkle_tree_calculator_deploy.jar"], files = ["//:merkle_tree_calculator_deploy.jar"], + repository = "iota/compass", ) container_image( @@ -19,6 +21,7 @@ container_image( base = "@java_base//image", cmd = ["coordinator_deploy.jar"], files = ["//:coordinator_deploy.jar"], + repository = "iota/compass", ) container_image( @@ -26,4 +29,5 @@ container_image( base = "@java_base//image", cmd = ["shadowing_coordinator_deploy.jar"], files = ["//:shadowing_coordinator_deploy.jar"], + repository = "iota/compass", ) From e464929b474677b8a832847eebffa9861464c188 Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 23:07:56 +0200 Subject: [PATCH 05/11] gradle: cleanup build and update wrapper --- .gitignore | 1 + build.gradle | 16 ---------------- gradle/wrapper/gradle-wrapper.properties | 2 +- 3 files changed, 2 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 8baab7770c..7b46b863d6 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ .meghanada/ bazel-* bazel-*/ +target/ layers/ addresses.csv diff --git a/build.gradle b/build.gradle index 887620b854..a0826086ee 100644 --- a/build.gradle +++ b/build.gradle @@ -1,26 +1,11 @@ -/* - * This build file was generated by the Gradle 'init' task. - * - * This generated file contains a sample Java project to get you started. - * For more details take a look at the Java Quickstart chapter in the Gradle - * user guide available at https://docs.gradle.org/4.2.1/userguide/tutorial_java_projects.html - */ - -// Apply the java plugin to add support for Java apply plugin: 'java' - -// Apply the application plugin to add support for building an application apply plugin: 'application' -// In this section you declare where to find the dependencies of your project repositories { - // Use jcenter for resolving your dependencies. - // You can declare any Maven/Ivy/file repository here. jcenter() } dependencies { - // This dependency is found on compile classpath of this component and consumers. compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.google.guava:guava:23.5-jre' @@ -33,7 +18,6 @@ dependencies { compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'com.squareup.okhttp3:okhttp:3.9.1' - // Use JUnit test framework testCompile 'junit:junit:4.12' } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 74bb77845e..e0b3fb8d70 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-4.10.2-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-bin.zip From 969a6eb1b00643f80b65f4e7a76398818fcb42ef Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 23:23:06 +0200 Subject: [PATCH 06/11] bazel: add all transitive maven dependencies --- BUILD | 5 +- WORKSPACE | 66 +-------- third-party/maven_deps.bzl | 269 +++++++++++++++++++++++++++++++++++++ 3 files changed, 274 insertions(+), 66 deletions(-) create mode 100644 third-party/maven_deps.bzl diff --git a/BUILD b/BUILD index 3609b144a6..17a6c2c822 100644 --- a/BUILD +++ b/BUILD @@ -4,10 +4,11 @@ java_import( name = "jota", jars = ["libs/jota-0.9.11-SNAPSHOT.jar"], runtime_deps = [ + "@com_google_code_gson_gson//jar", "@com_squareup_okhttp3_okhttp//jar", + "@com_squareup_okio_okio//jar", "@com_squareup_retrofit2_converter_gson//jar", - "@com_squareup_retrofit2_retrofit2//jar", - "@commons_io_commons_io//jar", + "@com_squareup_retrofit2_retrofit//jar", "@org_bouncycastle_bcprov_jdk15on//jar", ], ) diff --git a/WORKSPACE b/WORKSPACE index 6d210c5e8d..361e78991f 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -25,68 +25,6 @@ container_pull( # Java dependencies -maven_jar( - name = "com_google_guava_guava", - artifact = "com.google.guava:guava:26.0-jre", - sha1 = "6a806eff209f36f635f943e16d97491f00f6bfab", -) - -maven_jar( - name = "com_beust_jcommander", - artifact = "com.beust:jcommander:1.72", - sha1 = "6375e521c1e11d6563d4f25a07ce124ccf8cd171", -) - -maven_jar( - name = "org_slf4j_slf4j_api", - artifact = "org.slf4j:slf4j-api:1.7.25", - sha1 = "da76ca59f6a57ee3102f8f9bd9cee742973efa8a", -) - -maven_jar( - name = "org_slf4j_slf4j_simple", - artifact = "org.slf4j:slf4j-simple:1.7.25", - sha1 = "8dacf9514f0c707cbbcdd6fd699e8940d42fb54e", -) - -maven_jar( - name = "org_apache_commons_commons_lang3", - artifact = "org.apache.commons:commons-lang3:3.8.1", - sha1 = "6505a72a097d9270f7a9e7bf42c4238283247755", -) - -maven_jar( - name = "org_bouncycastle_bcprov_jdk15on", - artifact = "org.bouncycastle:bcprov-jdk15on:1.60", - sha1 = "bd47ad3bd14b8e82595c7adaa143501e60842a84", -) - -maven_jar( - name = "com_squareup_retrofit2_retrofit2", - artifact = "com.squareup.retrofit2:retrofit:2.4.0", - sha1 = "fc4aa382632bfaa7be7b41579efba41d5a71ecf3", -) - -maven_jar( - name = "com_squareup_retrofit2_converter_gson", - artifact = "com.squareup.retrofit2:converter-gson:2.4.0", - sha1 = "15d7790ee311d961379c51b00aba12d5967cb7ea", -) +load("//third-party:maven_deps.bzl", "maven_jars") -maven_jar( - name = "com_squareup_okhttp3_okhttp", - artifact = "com.squareup.okhttp3:okhttp:3.11.0", - sha1 = "75966e05a49046ca2ae734e5626f28837a8d1e82", -) - -maven_jar( - name = "commons_io_commons_io", - artifact = "commons-io:commons-io:2.6", - sha1 = "815893df5f31da2ece4040fe0a12fd44b577afaf", -) - -maven_jar( - name = "junit_junit", - artifact = "junit:junit:4.12", - sha1 = "2973d150c0dc1fefe998f834810d68f278ea58ec", -) +maven_jars() diff --git a/third-party/maven_deps.bzl b/third-party/maven_deps.bzl new file mode 100644 index 0000000000..a043288584 --- /dev/null +++ b/third-party/maven_deps.bzl @@ -0,0 +1,269 @@ +def maven_jars(): + # com.google.guava:guava:bundle:26.0-jre + native.maven_jar( + name = "com_google_code_findbugs_jsr305", + artifact = "com.google.code.findbugs:jsr305:3.0.2", + repository = "https://jcenter.bintray.com/", + sha1 = "25ea2e8b0c338a877313bd4672d3fe056ea78f0d", + ) + + # com.google.guava:guava:bundle:26.0-jre + native.maven_jar( + name = "org_codehaus_mojo_animal_sniffer_annotations", + artifact = "org.codehaus.mojo:animal-sniffer-annotations:1.14", + repository = "https://jcenter.bintray.com/", + sha1 = "775b7e22fb10026eed3f86e8dc556dfafe35f2d5", + ) + + # org.slf4j:slf4j-simple:jar:1.7.25 + native.maven_jar( + name = "org_slf4j_slf4j_api", + artifact = "org.slf4j:slf4j-api:1.7.25", + repository = "https://jcenter.bintray.com/", + sha1 = "da76ca59f6a57ee3102f8f9bd9cee742973efa8a", + ) + + # junit:junit:jar:4.12 + native.maven_jar( + name = "org_hamcrest_hamcrest_core", + artifact = "org.hamcrest:hamcrest-core:1.3", + repository = "https://jcenter.bintray.com/", + sha1 = "42a25dc3219429f0e5d060061f71acb49bf010a0", + ) + + native.maven_jar( + name = "com_squareup_retrofit2_converter_gson", + artifact = "com.squareup.retrofit2:converter-gson:2.4.0", + repository = "https://jcenter.bintray.com/", + sha1 = "15d7790ee311d961379c51b00aba12d5967cb7ea", + ) + + # com.squareup.retrofit2:converter-gson:jar:2.4.0 + native.maven_jar( + name = "com_google_code_gson_gson", + artifact = "com.google.code.gson:gson:2.8.2", + repository = "https://jcenter.bintray.com/", + sha1 = "3edcfe49d2c6053a70a2a47e4e1c2f94998a49cf", + ) + + native.maven_jar( + name = "com_squareup_retrofit2_retrofit", + artifact = "com.squareup.retrofit2:retrofit:2.4.0", + repository = "https://jcenter.bintray.com/", + sha1 = "fc4aa382632bfaa7be7b41579efba41d5a71ecf3", + ) + + # com.google.guava:guava:bundle:26.0-jre + native.maven_jar( + name = "org_checkerframework_checker_qual", + artifact = "org.checkerframework:checker-qual:2.5.2", + repository = "https://jcenter.bintray.com/", + sha1 = "cea74543d5904a30861a61b4643a5f2bb372efc4", + ) + + # com.squareup.retrofit2:retrofit:jar:2.4.0 + native.maven_jar( + name = "com_squareup_okhttp3_okhttp", + artifact = "com.squareup.okhttp3:okhttp:3.10.0", + repository = "https://jcenter.bintray.com/", + sha1 = "7ef0f1d95bf4c0b3ba30bbae25e0e562b05cf75e", + ) + + # com.google.guava:guava:bundle:26.0-jre + native.maven_jar( + name = "com_google_errorprone_error_prone_annotations", + artifact = "com.google.errorprone:error_prone_annotations:2.1.3", + repository = "https://jcenter.bintray.com/", + sha1 = "39b109f2cd352b2d71b52a3b5a1a9850e1dc304b", + ) + + native.maven_jar( + name = "org_apache_commons_commons_lang3", + artifact = "org.apache.commons:commons-lang3:3.8.1", + repository = "https://jcenter.bintray.com/", + sha1 = "6505a72a097d9270f7a9e7bf42c4238283247755", + ) + + # com.squareup.okhttp3:okhttp:jar:3.10.0 + native.maven_jar( + name = "com_squareup_okio_okio", + artifact = "com.squareup.okio:okio:1.14.0", + repository = "https://jcenter.bintray.com/", + sha1 = "102d7be47241d781ef95f1581d414b0943053130", + ) + + native.maven_jar( + name = "com_google_guava_guava", + artifact = "com.google.guava:guava:26.0-jre", + repository = "https://jcenter.bintray.com/", + sha1 = "6a806eff209f36f635f943e16d97491f00f6bfab", + ) + + native.maven_jar( + name = "org_bouncycastle_bcprov_jdk15on", + artifact = "org.bouncycastle:bcprov-jdk15on:1.60", + repository = "https://jcenter.bintray.com/", + sha1 = "bd47ad3bd14b8e82595c7adaa143501e60842a84", + ) + + native.maven_jar( + name = "com_beust_jcommander", + artifact = "com.beust:jcommander:1.72", + repository = "https://jcenter.bintray.com/", + sha1 = "6375e521c1e11d6563d4f25a07ce124ccf8cd171", + ) + + native.maven_jar( + name = "org_slf4j_slf4j_simple", + artifact = "org.slf4j:slf4j-simple:1.7.25", + repository = "https://jcenter.bintray.com/", + sha1 = "8dacf9514f0c707cbbcdd6fd699e8940d42fb54e", + ) + + native.maven_jar( + name = "junit_junit", + artifact = "junit:junit:4.12", + repository = "https://jcenter.bintray.com/", + sha1 = "2973d150c0dc1fefe998f834810d68f278ea58ec", + ) + + # com.google.guava:guava:bundle:26.0-jre + native.maven_jar( + name = "com_google_j2objc_j2objc_annotations", + artifact = "com.google.j2objc:j2objc-annotations:1.1", + repository = "https://jcenter.bintray.com/", + sha1 = "976d8d30bebc251db406f2bdb3eb01962b5685b3", + ) + +def maven_libraries(): + native.java_library( + name = "com_google_code_findbugs_jsr305", + visibility = ["//visibility:public"], + exports = ["@com_google_code_findbugs_jsr305//jar"], + ) + + native.java_library( + name = "org_codehaus_mojo_animal_sniffer_annotations", + visibility = ["//visibility:public"], + exports = ["@org_codehaus_mojo_animal_sniffer_annotations//jar"], + ) + + native.java_library( + name = "org_slf4j_slf4j_api", + visibility = ["//visibility:public"], + exports = ["@org_slf4j_slf4j_api//jar"], + ) + + native.java_library( + name = "org_hamcrest_hamcrest_core", + visibility = ["//visibility:public"], + exports = ["@org_hamcrest_hamcrest_core//jar"], + ) + + native.java_library( + name = "com_squareup_retrofit2_converter_gson", + visibility = ["//visibility:public"], + exports = ["@com_squareup_retrofit2_converter_gson//jar"], + runtime_deps = [ + ":com_google_code_gson_gson", + ":com_squareup_retrofit2_retrofit", + ], + ) + + native.java_library( + name = "com_google_code_gson_gson", + visibility = ["//visibility:public"], + exports = ["@com_google_code_gson_gson//jar"], + ) + + native.java_library( + name = "com_squareup_retrofit2_retrofit", + visibility = ["//visibility:public"], + exports = ["@com_squareup_retrofit2_retrofit//jar"], + runtime_deps = [ + ":com_squareup_okhttp3_okhttp", + ":com_squareup_okio_okio", + ], + ) + + native.java_library( + name = "org_checkerframework_checker_qual", + visibility = ["//visibility:public"], + exports = ["@org_checkerframework_checker_qual//jar"], + ) + + native.java_library( + name = "com_squareup_okhttp3_okhttp", + visibility = ["//visibility:public"], + exports = ["@com_squareup_okhttp3_okhttp//jar"], + runtime_deps = [ + ":com_squareup_okio_okio", + ], + ) + + native.java_library( + name = "com_google_errorprone_error_prone_annotations", + visibility = ["//visibility:public"], + exports = ["@com_google_errorprone_error_prone_annotations//jar"], + ) + + native.java_library( + name = "org_apache_commons_commons_lang3", + visibility = ["//visibility:public"], + exports = ["@org_apache_commons_commons_lang3//jar"], + ) + + native.java_library( + name = "com_squareup_okio_okio", + visibility = ["//visibility:public"], + exports = ["@com_squareup_okio_okio//jar"], + ) + + native.java_library( + name = "com_google_guava_guava", + visibility = ["//visibility:public"], + exports = ["@com_google_guava_guava//jar"], + runtime_deps = [ + ":com_google_code_findbugs_jsr305", + ":com_google_errorprone_error_prone_annotations", + ":com_google_j2objc_j2objc_annotations", + ":org_checkerframework_checker_qual", + ":org_codehaus_mojo_animal_sniffer_annotations", + ], + ) + + native.java_library( + name = "org_bouncycastle_bcprov_jdk15on", + visibility = ["//visibility:public"], + exports = ["@org_bouncycastle_bcprov_jdk15on//jar"], + ) + + native.java_library( + name = "com_beust_jcommander", + visibility = ["//visibility:public"], + exports = ["@com_beust_jcommander//jar"], + ) + + native.java_library( + name = "org_slf4j_slf4j_simple", + visibility = ["//visibility:public"], + exports = ["@org_slf4j_slf4j_simple//jar"], + runtime_deps = [ + ":org_slf4j_slf4j_api", + ], + ) + + native.java_library( + name = "junit_junit", + visibility = ["//visibility:public"], + exports = ["@junit_junit//jar"], + runtime_deps = [ + ":org_hamcrest_hamcrest_core", + ], + ) + + native.java_library( + name = "com_google_j2objc_j2objc_annotations", + visibility = ["//visibility:public"], + exports = ["@com_google_j2objc_j2objc_annotations//jar"], + ) From afaa5ec2ce6c5cc6a1bb21f86425a9b3b5c3884d Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Wed, 17 Oct 2018 23:23:26 +0200 Subject: [PATCH 07/11] docs: add example private_tangle scripts --- docs/private_tangle/.gitignore | 3 +++ docs/private_tangle/01_generate_addresses.sh | 6 +++++ .../02_calculate_merkle_tree.sh | 6 +++++ docs/private_tangle/03_run_coordinator.sh | 14 +++++++++++ docs/private_tangle/config.example.json | 10 ++++++++ docs/private_tangle/lib.sh | 25 +++++++++++++++++++ 6 files changed, 64 insertions(+) create mode 100644 docs/private_tangle/.gitignore create mode 100755 docs/private_tangle/01_generate_addresses.sh create mode 100755 docs/private_tangle/02_calculate_merkle_tree.sh create mode 100755 docs/private_tangle/03_run_coordinator.sh create mode 100644 docs/private_tangle/config.example.json create mode 100644 docs/private_tangle/lib.sh diff --git a/docs/private_tangle/.gitignore b/docs/private_tangle/.gitignore new file mode 100644 index 0000000000..6af10a7452 --- /dev/null +++ b/docs/private_tangle/.gitignore @@ -0,0 +1,3 @@ +config.json +data/ +.*.swp diff --git a/docs/private_tangle/01_generate_addresses.sh b/docs/private_tangle/01_generate_addresses.sh new file mode 100755 index 0000000000..73a0942c55 --- /dev/null +++ b/docs/private_tangle/01_generate_addresses.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +. lib.sh +load_config + +docker run -t --rm -v `pwd`/data:/data iota/compass/docker:address_generator address_generator_deploy.jar $sigMode $seed $security $depth /data/addresses.csv diff --git a/docs/private_tangle/02_calculate_merkle_tree.sh b/docs/private_tangle/02_calculate_merkle_tree.sh new file mode 100755 index 0000000000..18c0040820 --- /dev/null +++ b/docs/private_tangle/02_calculate_merkle_tree.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +. lib.sh +load_config + +docker run -t --rm -v `pwd`/data:/data iota/compass/docker:merkle_tree_calculator merkle_tree_calculator_deploy.jar $sigMode /data/addresses.csv /data/layers/ diff --git a/docs/private_tangle/03_run_coordinator.sh b/docs/private_tangle/03_run_coordinator.sh new file mode 100755 index 0000000000..c138e37bbd --- /dev/null +++ b/docs/private_tangle/03_run_coordinator.sh @@ -0,0 +1,14 @@ +#!/bin/bash + +. lib.sh +load_config + +docker run -t --rm -v `pwd`/data:/data iota/compass/docker:coordinator coordinator_deploy.jar \ + -layers /data/layers \ + -sigMode $sigMode \ + -powMode $powMode \ + -mwm $mwm \ + -seed $seed \ + -tick $tick \ + -host $host \ + "$@" diff --git a/docs/private_tangle/config.example.json b/docs/private_tangle/config.example.json new file mode 100644 index 0000000000..0f5a5d5484 --- /dev/null +++ b/docs/private_tangle/config.example.json @@ -0,0 +1,10 @@ +{ + "seed": "MYSEEDHEREPLEASEREPLACEMEIMMEDIATELYWITHSOMETHINGSECURE99999999999999999999999999", + "powMode": "KERL", + "sigMode": "CURLP27", + "security": 2, + "depth": 5, + "mwm": 9, + "tick": 60000, + "host": "http://iri01.devnet.iota.cafe:14265" +} diff --git a/docs/private_tangle/lib.sh b/docs/private_tangle/lib.sh new file mode 100644 index 0000000000..81375c40e0 --- /dev/null +++ b/docs/private_tangle/lib.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +function load_config { + if [ ! -f config.json ]; then + echo "Config file 'config.json' does not exist! Please look at config.example.json and create one!" + exit 1 + fi + + mkdir data &> /dev/null + + host=$(jq -r .host config.json) + sigMode=$(jq -r .sigMode config.json) + powMode=$(jq -r .powMode config.json) + seed=$(jq -r .seed config.json) + security=$(jq .security config.json) + depth=$(jq .depth config.json) + tick=$(jq .tick config.json) + mwm=$(jq .mwm config.json) + + + if [ ! -d data/ ]; then + mkdir data/ + echo "Depending on OS you might have to set SELinux permissions for data/" + fi +} From c0d1c58e3b2a1a325a72b75d117d4cbd2cf218bf Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Thu, 18 Oct 2018 14:23:31 +0200 Subject: [PATCH 08/11] docs/private_tangle: set powMode to CURLP81 in example config --- docs/private_tangle/config.example.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/private_tangle/config.example.json b/docs/private_tangle/config.example.json index 0f5a5d5484..4b897170af 100644 --- a/docs/private_tangle/config.example.json +++ b/docs/private_tangle/config.example.json @@ -1,6 +1,6 @@ { "seed": "MYSEEDHEREPLEASEREPLACEMEIMMEDIATELYWITHSOMETHINGSECURE99999999999999999999999999", - "powMode": "KERL", + "powMode": "CURLP81", "sigMode": "CURLP27", "security": 2, "depth": 5, From 6b7f9058d35d3f91d6cddcd71debe62808a94552 Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Thu, 18 Oct 2018 16:47:51 +0200 Subject: [PATCH 09/11] docs/private_tangle: add missing security parameter to coordinator runargs --- docs/private_tangle/03_run_coordinator.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/private_tangle/03_run_coordinator.sh b/docs/private_tangle/03_run_coordinator.sh index c138e37bbd..43f020e3e1 100755 --- a/docs/private_tangle/03_run_coordinator.sh +++ b/docs/private_tangle/03_run_coordinator.sh @@ -8,6 +8,7 @@ docker run -t --rm -v `pwd`/data:/data iota/compass/docker:coordinator coordinat -sigMode $sigMode \ -powMode $powMode \ -mwm $mwm \ + -security $security \ -seed $seed \ -tick $tick \ -host $host \ From 173e450a1f7d1b526ac20c029ef9e09226d169a2 Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Thu, 18 Oct 2018 17:05:32 +0200 Subject: [PATCH 10/11] third-party: add empty BUILD --- third-party/BUILD | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 third-party/BUILD diff --git a/third-party/BUILD b/third-party/BUILD new file mode 100644 index 0000000000..e69de29bb2 From fcdb36c3ff23261eabadb24ab658462c9bac918a Mon Sep 17 00:00:00 2001 From: "Andreas C. Osowski" Date: Thu, 18 Oct 2018 17:51:31 +0200 Subject: [PATCH 11/11] docs/private_tangle: add --net host to coordinator runtime args --- docs/private_tangle/03_run_coordinator.sh | 2 +- docs/private_tangle/config.example.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/private_tangle/03_run_coordinator.sh b/docs/private_tangle/03_run_coordinator.sh index 43f020e3e1..4b98c67dd9 100755 --- a/docs/private_tangle/03_run_coordinator.sh +++ b/docs/private_tangle/03_run_coordinator.sh @@ -3,7 +3,7 @@ . lib.sh load_config -docker run -t --rm -v `pwd`/data:/data iota/compass/docker:coordinator coordinator_deploy.jar \ +docker run -t --net host --rm -v `pwd`/data:/data iota/compass/docker:coordinator coordinator_deploy.jar \ -layers /data/layers \ -sigMode $sigMode \ -powMode $powMode \ diff --git a/docs/private_tangle/config.example.json b/docs/private_tangle/config.example.json index 4b897170af..f33f04a412 100644 --- a/docs/private_tangle/config.example.json +++ b/docs/private_tangle/config.example.json @@ -6,5 +6,5 @@ "depth": 5, "mwm": 9, "tick": 60000, - "host": "http://iri01.devnet.iota.cafe:14265" + "host": "http://localhost:14265" }