Skip to content

Commit 5d6f04d

Browse files
authored
✨ Verifier-verifier proto (#22)
1 parent c4da84c commit 5d6f04d

4 files changed

Lines changed: 44 additions & 5 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@rainblock/protocol",
3-
"version": "4.0.0",
3+
"version": "4.1.0",
44
"description": "Protocol Buffer Definitions for Rainblock",
55
"main": "generated_ts/index.js",
66
"types": "generated_ts/index.d.ts",

src/prototool.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ lint:
6767
- FILE_OPTIONS_REQUIRE_JAVA_MULTIPLE_FILES
6868
- FILE_OPTIONS_REQUIRE_JAVA_OUTER_CLASSNAME
6969
- FILE_OPTIONS_REQUIRE_JAVA_PACKAGE
70+
- REQUEST_RESPONSE_TYPES_UNIQUE
7071

7172
# Code generation directives.
7273
generate:
Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,49 @@
11
syntax = "proto3";
22

3-
// Protobuf definitions for client <--> verifier communication
3+
// Protobuf definitions for client <--> verifier, verifier <--> verifier communication
44
package rainblock;
55

6-
// The verifier service for client <--> verifier
6+
// The verifier service
77
service Verifier {
88
// Submit a transaction from a client to a verifier
99
rpc SubmitTransaction(TransactionRequest) returns (TransactionReply);
10+
// Verifier-Verifer services below:
11+
// Advertise a new node to other verifiers
12+
rpc AdvertiseNode(stream MerkleNodeAdvertisement) returns (stream MerkleNodeAdvertisement);
13+
// Block announcement
14+
rpc AdvertiseBlock(stream BlockAdvertisement) returns (stream BlockAdvertisement);
15+
// Neighbor Advertisement
16+
rpc AdvertiseNeighbor(stream NeighborAdvertisement) returns (stream NeighborAdvertisement);
17+
// Handshake
18+
rpc VerifierVerifierHandshake(VerifierVerifierHandshakeMessage) returns (VerifierVerifierHandshakeMessage);
19+
}
20+
21+
// A message indicating new neighbors which have connected or disconnected
22+
message NeighborAdvertisement {
23+
// new neighbors, by their 32 byte BE beneficiary ID
24+
repeated bytes new_neighbors = 1;
25+
// lost/disconnected neighbors, by their 32 byte BE beneficiary ID
26+
repeated bytes lost_neightbors = 2;
27+
}
28+
29+
// A handshake message between two verifiers. Either verifier can disconnect the link as a result of the handshake.
30+
message VerifierVerifierHandshakeMessage {
31+
// The protocol version
32+
string protocol_version = 1;
33+
// The verifier version
34+
string version = 2;
35+
}
36+
37+
// Advertisement of a new block
38+
message BlockAdvertisement {
39+
// The block being advertised, as RLP-encoded bytes
40+
bytes block = 1;
41+
}
42+
43+
// Advertisement of a new node
44+
message MerkleNodeAdvertisement {
45+
// The node(s) being advertised, as RLP-encoded bytes
46+
repeated bytes node = 1;
1047
}
1148

1249
// Binary format for a set of witnesses

ts/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import { VerifierService, VerifierClient, IVerifierServer, IVerifierClient } from '../generated/clientVerifier_grpc_pb'
2-
import { TransactionRequest, TransactionReply, ErrorCode } from '../generated/clientVerifier_pb';
1+
import { VerifierService, VerifierClient, IVerifierServer, IVerifierClient } from '../generated/verifier_grpc_pb'
2+
import { MerkleNodeAdvertisement, BlockAdvertisement, NeighborAdvertisement, VerifierVerifierHandshakeMessage, TransactionRequest, TransactionReply, ErrorCode } from '../generated/verifier_pb';
33
import { VerifierStorageService, VerifierStorageClient, IVerifierStorageClient, IVerifierStorageService, IVerifierStorageServer } from '../generated/verifierStorage_grpc_pb'
44
import { UpdateMsg, UpdateOp, StorageUpdate } from '../generated/verifierStorage_pb';
55
import { StorageNodeClient, StorageNodeService, IStorageNodeClient, IStorageNodeServer } from '../generated/clientStorage_grpc_pb';
@@ -14,5 +14,6 @@ export { VerifierService, VerifierClient, TransactionRequest, TransactionReply,
1414
IVerifierStorageServer, UpdateMsg, UpdateOp, StorageUpdate,
1515
StorageNodeClient, StorageNodeService, IStorageNodeClient, IStorageNodeServer,
1616
RPCWitness, CodeRequest, CodeReply, AccountRequest, AccountReply,
17+
MerkleNodeAdvertisement, BlockAdvertisement, NeighborAdvertisement, VerifierVerifierHandshakeMessage,
1718
StorageRequest, StorageReply, BlockHashReply, BlockHashRequest,
1819
IVerifierStorageService, google_protobuf_empty_pb, grpc };

0 commit comments

Comments
 (0)