Skip to content

Commit

Permalink
Merge pull request iotaledger#35 from th0br0/bazel
Browse files Browse the repository at this point in the history
Add bazel buildfiles
  • Loading branch information
alon-e committed Oct 28, 2018
2 parents 5fd33f3 + fcdb36c commit 96ac130
Show file tree
Hide file tree
Showing 15 changed files with 535 additions and 17 deletions.
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
.meghanada/
bazel-*
bazel-*/
target/

layers/
addresses.csv

Expand Down
129 changes: 129 additions & 0 deletions BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
MAIN_BASE_PATH = "src/main/java/coo/%s"

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_retrofit//jar",
"@org_bouncycastle_bcprov_jdk15on//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",
],
)

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 = COORDINATOR_RUNTIME_DEPS,
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 = COORDINATOR_RUNTIME_DEPS,
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",
],
)
30 changes: 30 additions & 0 deletions WORKSPACE
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
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

load("//third-party:maven_deps.bzl", "maven_jars")

maven_jars()
16 changes: 0 additions & 16 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -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'
Expand All @@ -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'
}

Expand Down
33 changes: 33 additions & 0 deletions docker/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
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"],
repository = "iota/compass",
)

container_image(
name = "merkle_tree_calculator",
base = "@java_base//image",
cmd = ["merkle_tree_calculator_deploy.jar"],
files = ["//:merkle_tree_calculator_deploy.jar"],
repository = "iota/compass",
)

container_image(
name = "coordinator",
base = "@java_base//image",
cmd = ["coordinator_deploy.jar"],
files = ["//:coordinator_deploy.jar"],
repository = "iota/compass",
)

container_image(
name = "shadowing_coordinator",
base = "@java_base//image",
cmd = ["shadowing_coordinator_deploy.jar"],
files = ["//:shadowing_coordinator_deploy.jar"],
repository = "iota/compass",
)
3 changes: 3 additions & 0 deletions docs/private_tangle/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
config.json
data/
.*.swp
6 changes: 6 additions & 0 deletions docs/private_tangle/01_generate_addresses.sh
Original file line number Diff line number Diff line change
@@ -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
6 changes: 6 additions & 0 deletions docs/private_tangle/02_calculate_merkle_tree.sh
Original file line number Diff line number Diff line change
@@ -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/
15 changes: 15 additions & 0 deletions docs/private_tangle/03_run_coordinator.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

. lib.sh
load_config

docker run -t --net host --rm -v `pwd`/data:/data iota/compass/docker:coordinator coordinator_deploy.jar \
-layers /data/layers \
-sigMode $sigMode \
-powMode $powMode \
-mwm $mwm \
-security $security \
-seed $seed \
-tick $tick \
-host $host \
"$@"
10 changes: 10 additions & 0 deletions docs/private_tangle/config.example.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"seed": "MYSEEDHEREPLEASEREPLACEMEIMMEDIATELYWITHSOMETHINGSECURE99999999999999999999999999",
"powMode": "CURLP81",
"sigMode": "CURLP27",
"security": 2,
"depth": 5,
"mwm": 9,
"tick": 60000,
"host": "http://localhost:14265"
}
25 changes: 25 additions & 0 deletions docs/private_tangle/lib.sh
Original file line number Diff line number Diff line change
@@ -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
}
2 changes: 1 addition & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -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
3 changes: 3 additions & 0 deletions src/test/java/MilestoneTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -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();
Expand Down
Empty file added third-party/BUILD
Empty file.

0 comments on commit 96ac130

Please sign in to comment.