This repository has been archived by the owner on Jul 2, 2022. It is now read-only.
/
codec.proto
99 lines (79 loc) · 2.08 KB
/
codec.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
package codec;
message MsgVersion {
required uint64 proto_ver = 1;
required string client_ver = 3;
required uint64 node_id = 2;
}
message MsgPingPong {
required uint64 cookie = 1;
}
message Address {
required uint64 proto_ver = 1;
required uint64 time = 2;
required uint64 flags = 3;
required string ip = 4;
required uint32 port = 5;
}
message MsgAddresses {
repeated Address peers = 1;
}
message MsgDHTMisc {
required uint64 request_id = 1;
}
message MsgDHTPong {
required uint64 request_id = 1;
required uint64 node_id = 2;
optional uint64 flags = 3 [default = 0];
}
message MsgDHTKey {
required uint64 request_id = 1;
required bytes key = 2;
optional uint64 flags = 3 [default = 0];
}
message MsgDHTKeyValue {
required uint64 request_id = 1;
required bytes key = 2;
required bytes value = 3;
optional uint64 flags = 4 [default = 0];
}
message MsgDHTNode {
required uint64 node_id = 1;
required string ip = 2;
required uint32 port = 3;
optional uint64 flags = 4 [default = 0];
}
message MsgDHTNodes {
required uint64 request_id = 1;
repeated MsgDHTNode nodes = 2;
}
message OutPoint {
required bytes tx_hash = 1;
required uint32 index = 2;
}
message Issuer {
// identifiers
required bytes pubkey = 1;
optional string email = 2;
// Name and website of the issuer as it will appear in
// the software, eg, a real name or company name.
required string display_name = 3;
optional string display_url = 4;
// The script the issuer wants to receive the payments on.
required bytes pay_to_script = 5;
}
message Issue {
required OutPoint start_point = 1;
required Issuer issuer = 2;
required uint32 issue_count = 3;
required uint64 value = 4;
required uint64 coupon_value = 5;
required string display_shortname = 6;
required string display_name = 7;
// You could model more complex repayment schedules in future.
required uint64 repayment_value = 8;
// UNIX time of when the bond was issued.
required uint64 timestamp = 9;
// URL of the peer issuing the bond. This can be
// http://<home ip>:12345/ or perhaps a Tor onion address.
optional string peer_url = 10;
}