forked from EnergygitGit/grpc-interfaces
-
Notifications
You must be signed in to change notification settings - Fork 1
/
state-fold-server.proto
131 lines (108 loc) · 2.78 KB
/
state-fold-server.proto
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Copyright Cartesi and individual authors (see AUTHORS)
// SPDX-License-Identifier: Apache-2.0
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
syntax = "proto3";
package StateFoldServer;
service StateFold {
rpc QueryBlock (QueryBlockRequest) returns (Block) {}
rpc QueryBlocksSince (QueryBlocksSinceRequest) returns (BlocksSinceResponse) {}
rpc SubscribeNewBlocks (SubscribeNewBlocksRequest) returns (stream BlockStreamResponse) {}
rpc QueryState (QueryStateRequest) returns (BlockState) {}
rpc QueryStatesSince (QueryStatesSinceRequest) returns (StatesSinceResponse) {}
rpc SubscribeNewStates (SubscribeNewStatesRequest) returns (stream StateStreamResponse) {}
}
message InitialState {
string json_data = 1;
}
message State {
string json_data = 1;
}
message Hash {
bytes data = 1; // bytes of size 32
}
message Bloom {
bytes data = 1; // bytes of size 256
}
message Block {
Hash hash = 1;
uint64 number = 2;
Hash parent_hash = 3;
uint64 timestamp = 4;
Bloom logs_bloom = 5;
}
message Blocks {
repeated Block blocks = 1;
}
message QueryBlock {
oneof id {
uint64 depth = 1;
Hash block_hash = 2;
uint64 block_number = 3;
}
}
message BlockState {
Block block = 1;
State state = 2;
}
message States {
repeated BlockState states = 1;
}
message QueryBlockRequest {
QueryBlock query_block = 1; // None means latest
}
message QueryBlocksSinceRequest {
Hash previous_block = 1;
uint64 depth = 2;
}
message BlocksSinceResponse {
oneof response {
Blocks new_blocks = 1;
Blocks reorganized_blocks = 2;
}
}
message SubscribeNewBlocksRequest {
uint64 confirmations = 1;
}
message BlockStreamResponse {
oneof response {
Block new_block = 1;
Blocks reorganized_blocks = 2;
}
}
message QueryStateRequest {
InitialState initial_state = 1;
QueryBlock query_block = 2; // None means latest
}
message QueryStatesSinceRequest {
InitialState initial_state = 1;
Hash previous_block = 2;
uint64 depth = 3;
}
message StatesSinceResponse {
oneof response {
States new_states = 1;
States reorganized_states = 2;
}
}
message SubscribeNewStatesRequest {
InitialState initial_state = 1;
uint64 confirmations = 2;
}
message StateStreamResponse {
oneof response {
BlockState new_state = 1;
States reorganized_states = 2;
}
}