Skip to content

Commit

Permalink
Merge pull request iotaledger#36 from th0br0/sig_provider
Browse files Browse the repository at this point in the history
Add a remote signature service
  • Loading branch information
alon-e committed Oct 31, 2018
2 parents 96ac130 + e8ea57f commit 6718fbd
Show file tree
Hide file tree
Showing 41 changed files with 1,091 additions and 342 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -2,6 +2,7 @@
bazel-*
bazel-*/
target/
.ijwb/

layers/
addresses.csv
Expand Down
128 changes: 113 additions & 15 deletions BUILD
@@ -1,4 +1,4 @@
MAIN_BASE_PATH = "src/main/java/coo/%s"
MAIN_BASE_PATH = "src/main/java/org/iota/compass/%s"

java_import(
name = "jota",
Expand Down Expand Up @@ -28,52 +28,141 @@ java_library(
],
deps = [
":jota",
":signature_source_common",
"@com_google_guava_guava//jar",
"@org_bouncycastle_bcprov_jdk15on//jar",
"@org_slf4j_slf4j_api//jar",
],
)

java_library(
name = "signature_source_inmemory",
srcs = [MAIN_BASE_PATH % "InMemorySignatureSource.java"],
deps = [
":common",
":jota",
":signature_source_common",
"@org_slf4j_slf4j_api//jar",
],
)

java_library(
name = "signature_source_remote",
srcs = [MAIN_BASE_PATH % "RemoteSignatureSource.java"],
deps = [
":common",
":jota",
":signature_source_common",
"//proto:signature_source_java_grpc",
"//proto:signature_source_java_proto",
"@com_google_api_grpc_proto_google_common_protos//jar",
"@com_google_code_findbugs_jsr305//jar",
"@com_google_guava_guava//jar",
"@com_google_protobuf//:protobuf_java",
"@com_google_protobuf//:protobuf_java_util",
"@io_grpc_grpc_java//alts",
"@io_grpc_grpc_java//core",
"@io_grpc_grpc_java//netty",
"@io_grpc_grpc_java//protobuf",
"@io_grpc_grpc_java//stub",
"@io_netty_netty_handler//jar",
"@org_slf4j_slf4j_api//jar",
],
)

java_library(
name = "signature_source_common",
srcs = [(MAIN_BASE_PATH % x) for x in [
"SignatureSource.java",
"SignatureSourceType.java",
]],
deps = [
":jota",
],
)

java_library(
name = "signature_source_helper",
srcs = [(MAIN_BASE_PATH % x) for x in [
"SignatureSourceHelper.java",
]],
deps = [
":conf",
":signature_source_common",
":signature_source_inmemory",
":signature_source_remote",
"@com_beust_jcommander//jar",
],
)

java_library(
name = "conf",
srcs = [
(MAIN_BASE_PATH % x)
for x in [
"conf/InMemorySignatureSourceConfiguration.java",
"conf/RemoteSignatureSourceConfiguration.java",
"conf/SignatureSourceServerConfiguration.java",
"conf/BaseConfiguration.java",
"conf/Configuration.java",
"conf/ShadowingConfiguration.java",
"conf/CoordinatorConfiguration.java",
"conf/SpongeModeConverter.java",
"conf/SignatureSourceTypeConverter.java",
"conf/LayersCalculatorConfiguration.java",
"conf/ShadowingCoordinatorConfiguration.java",
"conf/POWModeValidator.java",
]
],
deps = [
":common",
":jota",
":signature_source_common",
"@com_beust_jcommander//jar",
],
)

java_binary(
name = "address_generator",
srcs = [MAIN_BASE_PATH % "util/AddressGenerator.java"],
main_class = "coo.util.AddressGenerator",
name = "signature_source_server",
srcs = [MAIN_BASE_PATH % "SignatureSourceServer.java"],
main_class = "org.iota.compass.SignatureSourceServer",
visibility = ["//visibility:public"],
runtime_deps = ["@org_slf4j_slf4j_simple//jar"],
deps = [
":common",
":conf",
":jota",
":signature_source_common",
":signature_source_inmemory",
"//proto:signature_source_java_grpc",
"//proto:signature_source_java_proto",
"@com_beust_jcommander//jar",
"@com_google_api_grpc_proto_google_common_protos//jar",
"@com_google_code_findbugs_jsr305//jar",
"@com_google_guava_guava//jar",
"@com_google_protobuf//:protobuf_java",
"@com_google_protobuf//:protobuf_java_util",
"@io_grpc_grpc_java//alts",
"@io_grpc_grpc_java//core",
"@io_grpc_grpc_java//netty",
"@io_grpc_grpc_java//protobuf",
"@io_grpc_grpc_java//stub",
"@io_netty_netty_handler//jar",
"@org_slf4j_slf4j_api//jar",
],
)

java_binary(
name = "merkle_tree_calculator",
srcs = [MAIN_BASE_PATH % "util/MerkleTreeCalculator.java"],
main_class = "coo.util.MerkleTreeCalculator",
name = "layers_calculator",
srcs = [MAIN_BASE_PATH % "LayersCalculator.java"],
main_class = "org.iota.compass.LayersCalculator",
visibility = ["//visibility:public"],
runtime_deps = ["@org_slf4j_slf4j_simple//jar"],
deps = [
":common",
":conf",
":jota",
":signature_source_common",
":signature_source_helper",
"@com_beust_jcommander//jar",
"@com_google_guava_guava//jar",
"@org_slf4j_slf4j_api//jar",
],
Expand All @@ -85,14 +174,16 @@ COORDINATOR_RUNTIME_DEPS = [

java_binary(
name = "shadowing_coordinator",
srcs = [MAIN_BASE_PATH % "shadow/ShadowingCoordinator.java"],
main_class = "coo.shadow.ShadowingCoordinator",
srcs = [MAIN_BASE_PATH % "ShadowingCoordinator.java"],
main_class = "org.iota.compass.ShadowingCoordinator",
visibility = ["//visibility:public"],
runtime_deps = COORDINATOR_RUNTIME_DEPS,
deps = [
":common",
":conf",
":jota",
":signature_source_common",
":signature_source_helper",
"@com_beust_jcommander//jar",
"@org_apache_commons_commons_lang3//jar",
"@org_slf4j_slf4j_api//jar",
Expand All @@ -102,13 +193,15 @@ java_binary(
java_binary(
name = "coordinator",
srcs = [MAIN_BASE_PATH % "Coordinator.java"],
main_class = "coo.Coordinator",
main_class = "org.iota.compass.Coordinator",
visibility = ["//visibility:public"],
runtime_deps = COORDINATOR_RUNTIME_DEPS,
deps = [
":common",
":conf",
":jota",
":signature_source_common",
":signature_source_helper",
"@com_beust_jcommander//jar",
"@org_slf4j_slf4j_api//jar",
],
Expand All @@ -117,12 +210,17 @@ java_binary(
java_test(
name = "test_milestone",
srcs = glob(["src/test/java/**/*.java"]),
test_class = "MilestoneTest",
flaky = True,
test_class = "org.iota.compass.MilestoneTest",
deps = [
":address_generator",
":common",
":conf",
":jota",
":merkle_tree_calculator",
":layers_calculator",
":signature_source_common",
":signature_source_inmemory",
":signature_source_remote",
":signature_source_server",
"@com_google_guava_guava//jar",
"@junit_junit//jar",
],
Expand Down
39 changes: 39 additions & 0 deletions WORKSPACE
@@ -1,3 +1,5 @@
workspace(name = "org_iota_compass")

load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")

http_archive(
Expand Down Expand Up @@ -28,3 +30,40 @@ container_pull(
load("//third-party:maven_deps.bzl", "maven_jars")

maven_jars()

# Protobuf
PROTOBUF_URL = "https://github.com/protocolbuffers/protobuf/archive/48cb18e5c419ddd23d9badcfe4e9df7bde1979b2.zip"

http_archive(
name = "com_google_protobuf",
sha256 = "b6b42f90c60b54732f764ae875623a9b05e6eede064173c36c6fea12dd376cdd",
strip_prefix = "protobuf-48cb18e5c419ddd23d9badcfe4e9df7bde1979b2/",
urls = [PROTOBUF_URL],
)

http_archive(
name = "com_google_protobuf_java",
sha256 = "b6b42f90c60b54732f764ae875623a9b05e6eede064173c36c6fea12dd376cdd",
strip_prefix = "protobuf-48cb18e5c419ddd23d9badcfe4e9df7bde1979b2/",
urls = [PROTOBUF_URL],
)

http_archive(
name = "io_grpc_grpc_java",
strip_prefix = "grpc-java-6657c310947bc61fcc579e31de2c3c113bc238b3/",
urls = ["https://github.com/grpc/grpc-java/archive/6657c310947bc61fcc579e31de2c3c113bc238b3.zip"],
)

load("@io_grpc_grpc_java//:repositories.bzl", "grpc_java_repositories")

grpc_java_repositories(
omit_com_google_code_findbugs_jsr305 = True,
omit_com_google_code_gson = True,
omit_com_google_errorprone_error_prone_annotations = True,
omit_com_google_guava = True,
omit_com_google_protobuf = True,
omit_com_squareup_okio = True,
omit_junit_junit = True,
omit_org_apache_commons_lang3 = True,
omit_org_codehaus_mojo_animal_sniffer_annotations = True,
)
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -32,7 +32,7 @@ task merkleTreeCalculator(type: CreateStartScripts) {
}

task addressGenerator(type: CreateStartScripts) {
mainClassName = 'coo.util.AddressGenerator'
mainClassName = 'coo.util.LayersCalculator'
applicationName = 'addressGenerator'
classpath = startScripts.classpath
outputDir = startScripts.outputDir
Expand Down
22 changes: 11 additions & 11 deletions docker/BUILD
@@ -1,18 +1,10 @@
load("@io_bazel_rules_docker//container:container.bzl", "container_image")

container_image(
name = "address_generator",
name = "layers_calculator",
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"],
cmd = ["layers_calculator_deploy.jar"],
files = ["//:layers_calculator_deploy.jar"],
repository = "iota/compass",
)

Expand All @@ -31,3 +23,11 @@ container_image(
files = ["//:shadowing_coordinator_deploy.jar"],
repository = "iota/compass",
)

container_image(
name = "signature_source_server",
base = "@java_base//image",
cmd = ["signature_source_server_deploy.jar"],
files = ["//:signature_source_server_deploy.jar"],
repository = "iota/compass",
)
6 changes: 6 additions & 0 deletions docs/private_tangle/01_calculate_layers.sh
@@ -0,0 +1,6 @@
#!/bin/bash

. lib.sh
load_config

docker run -t --rm -v `pwd`/data:/data iota/compass/docker:layers_calculator layers_calculator_deploy.jar -sigMode $sigMode -seed $seed -depth $depth -security $security -layers /data/layers
6 changes: 0 additions & 6 deletions docs/private_tangle/01_generate_addresses.sh

This file was deleted.

6 changes: 0 additions & 6 deletions docs/private_tangle/02_calculate_merkle_tree.sh

This file was deleted.

File renamed without changes.
12 changes: 12 additions & 0 deletions docs/private_tangle/11_run_signature_source_server.sh
@@ -0,0 +1,12 @@
#!/bin/bash

. lib.sh
load_config

docker run -t --net host --rm -v `pwd`/data:/data iota/compass/docker:signature_source_server signature_source_server_deploy.jar \
-sigMode $sigMode \
-security $security \
-seed $seed \
-plaintext \
-port 50051 \
"$@"
15 changes: 15 additions & 0 deletions docs/private_tangle/12_run_coordinator_remote.sh
@@ -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 \
-powMode $powMode \
-mwm $mwm \
-tick $tick \
-host $host \
-signatureSource remote \
-remoteURI localhost:50051 \
-remotePlaintext \
"$@"
20 changes: 20 additions & 0 deletions proto/BUILD
@@ -0,0 +1,20 @@
load("@io_grpc_grpc_java//:java_grpc_library.bzl", "java_grpc_library")

java_proto_library(
name = "signature_source_java_proto",
visibility = ["//visibility:public"],
deps = [":signature_source_proto"],
)

java_grpc_library(
name = "signature_source_java_grpc",
srcs = [":signature_source_proto"],
visibility = ["//visibility:public"],
deps = [":signature_source_java_proto"],
)

proto_library(
name = "signature_source_proto",
srcs = ["signature_source.proto"],
visibility = ["//visibility:public"],
)

0 comments on commit 6718fbd

Please sign in to comment.