diff --git a/build-javascript.sh b/build-javascript.sh index 17b854b..f398fbb 100644 --- a/build-javascript.sh +++ b/build-javascript.sh @@ -1,5 +1,5 @@ #!/bin/bash - +set -e mkdir -p build/javascript/src mkdir -p build/javascript/dist diff --git a/build-php.sh b/build-php.sh index 04818b5..c7a6c3f 100644 --- a/build-php.sh +++ b/build-php.sh @@ -1,5 +1,5 @@ #!/bin/bash - +set -e mkdir -p tmp mkdir -p build/php pecl install grpc diff --git a/build-python.sh b/build-python.sh index dc583e3..ea23e0f 100644 --- a/build-python.sh +++ b/build-python.sh @@ -1,5 +1,5 @@ #!/bin/bash - +set -e mkdir -p tmp python3 -m venv tmp/protobuild-venv . tmp/protobuild-venv/bin/activate diff --git a/proto/Job.proto b/proto/Job.proto index 7fcfd2c..f637e47 100644 --- a/proto/Job.proto +++ b/proto/Job.proto @@ -28,6 +28,7 @@ message Job { JobState state = 11; uint64 maxExecutionTime = 13; // enforced by the provider + string nodeId = 15; // map results = 12; // map states = 11; diff --git a/proto/Log.proto b/proto/Log.proto index 6d32604..5419183 100644 --- a/proto/Log.proto +++ b/proto/Log.proto @@ -7,4 +7,5 @@ message Log { string level = 3; uint64 timestamp = 4; string source = 5; + string nodeId = 6; } diff --git a/proto/Node.proto b/proto/Node.proto new file mode 100644 index 0000000..03a2542 --- /dev/null +++ b/proto/Node.proto @@ -0,0 +1,11 @@ +syntax = "proto3"; + + +message Node { + string id = 1; + string iconUrl = 3; + string name = 4; + string description = 5; + repeated string eventTemplates = 6; +} + diff --git a/proto/rpc.proto b/proto/rpc.proto index 00443a3..0817e92 100644 --- a/proto/rpc.proto +++ b/proto/rpc.proto @@ -7,6 +7,7 @@ import "JobParam.proto"; import "JobInput.proto"; import "JobResult.proto"; import "Job.proto"; +import "Node.proto"; message RpcRequestJob { string runOn = 1; @@ -35,7 +36,6 @@ message PendingJobs { } - message RpcIsJobDone { bool isDone = 1; } @@ -109,6 +109,30 @@ message RpcUnsubscribeFromEventsResponse{ bool success = 1; } + +message RpcAnnounceNodeRequest { + string iconUrl = 3; + string name = 4; + string description = 5; +} + +message RpcAnnounceNodeResponse { + bool success = 1; + Node node = 2; + uint64 refreshInterval = 4; + +} + +message RpcAnnounceTemplateRequest { + string eventTemplate = 2; +} + +message RpcAnnounceTemplateResponse { + bool success = 1; + Node node = 2; + uint64 refreshInterval = 4; +} + service NostrConnector { // job management rpc requestJob (RpcRequestJob) returns (Job); @@ -122,6 +146,10 @@ service NostrConnector { rpc logForJob(RpcJobLog) returns (Job); + // discovery + rpc announceNode (RpcAnnounceNodeRequest) returns (RpcAnnounceNodeResponse); + rpc announceEventTemplate (RpcAnnounceTemplateRequest) returns (RpcAnnounceTemplateResponse); + // generic nostr events rpc sendSignedEvent (RpcSendSignedEventRequest) returns (RpcSendSignedEventResponse);