Protocol Documentation
Table of Contents
Top
proto/Council.proto
CouncilCandidacyNoteMetadata
Field |
Type |
Label |
Description |
header |
string |
optional |
Candidacy header text |
bullet_points |
string |
repeated |
Candidate program in form of bullet points |
banner_image_uri |
string |
optional |
Image uri of candidate's banner |
description |
string |
optional |
Candidacy description (md-formatted) |
Top
proto/Membership.proto
MembershipMetadata
Field |
Type |
Label |
Description |
name |
string |
optional |
Member's real name |
avatar_uri |
string |
optional |
Member's avatar image uri |
about |
string |
optional |
Member's md-formatted about text |
Top
proto/WorkingGroups.proto
ApplicationMetadata
Field |
Type |
Label |
Description |
answers |
string |
repeated |
List of answers to opening application form questions |
OpeningMetadata
Field |
Type |
Label |
Description |
short_description |
string |
required |
Short description of the opening |
description |
string |
required |
Full description of the opening |
hiring_limit |
uint32 |
required |
Expected number of hired applicants |
expected_ending_timestamp |
uint64 |
required |
Expected time when the opening will close (Unix timestamp) |
application_details |
string |
required |
Md-formatted text explaining the application process |
application_form_questions |
OpeningMetadata.ApplicationFormQuestion |
repeated |
List of questions that should be answered during application |
OpeningMetadata.ApplicationFormQuestion
WorkingGroupStatusMetadata
Field |
Type |
Label |
Description |
description |
string |
optional |
Full status description (md-formatted) |
about |
string |
optional |
Status about text (md-formatted) |
status |
string |
optional |
The status itself (expected to be 1-3 words) |
status_message |
string |
optional |
Short status message |
OpeningMetadata.ApplicationFormQuestion.InputType
Name |
Number |
Description |
TEXT |
1 |
|
TEXTAREA |
2 |
|
Scalar Value Types
| .proto Type | Notes | C++ | Java | Python | Go | C# | PHP | Ruby |
| ----------- | ----- | --- | ---- | ------ | -- | -- | --- | ---- |
| double | | double | double | float | float64 | double | float | Float |
| float | | float | float | float | float32 | float | float | Float |
| int32 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint32 instead. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| int64 | Uses variable-length encoding. Inefficient for encoding negative numbers – if your field is likely to have negative values, use sint64 instead. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| uint32 | Uses variable-length encoding. | uint32 | int | int/long | uint32 | uint | integer | Bignum or Fixnum (as required) |
| uint64 | Uses variable-length encoding. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum or Fixnum (as required) |
| sint32 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int32s. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sint64 | Uses variable-length encoding. Signed int value. These more efficiently encode negative numbers than regular int64s. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| fixed32 | Always four bytes. More efficient than uint32 if values are often greater than 2^28. | uint32 | int | int | uint32 | uint | integer | Bignum or Fixnum (as required) |
| fixed64 | Always eight bytes. More efficient than uint64 if values are often greater than 2^56. | uint64 | long | int/long | uint64 | ulong | integer/string | Bignum |
| sfixed32 | Always four bytes. | int32 | int | int | int32 | int | integer | Bignum or Fixnum (as required) |
| sfixed64 | Always eight bytes. | int64 | long | int/long | int64 | long | integer/string | Bignum |
| bool | | bool | boolean | boolean | bool | bool | boolean | TrueClass/FalseClass |
| string | A string must always contain UTF-8 encoded or 7-bit ASCII text. | string | String | str/unicode | string | string | string | String (UTF-8) |
| bytes | May contain any arbitrary sequence of bytes. | string | ByteString | str | []byte | ByteString | string | String (ASCII-8BIT) |
Referencing Assets
Applications that process messages that contain a uint32
field that references an asset such as a cover photo or video, should interpret this value as a zero based index into an array/vector that is received external (out of band) to the protobuf message.
Example in context of query-node processing the runtime event VideoCreated
// Runtime event associated with creating a Video
VideoCreated(video_id: VideoId, video: Video, assets: Vec<NewAsset>, params: VideoCreationParameters)
struct VideoCreationParameters {
in_category: VideoCategoryId,
// binary serialized VideoMetadata protobuf message
meta: Vec<u8>,
}
// suppose assets is a vector of two elements. This is the "out of band" array being referenced by the VideoMetadata message
assets = [
NewAsset::Uri("https://mydomain.net/thumbnail.png"),
NewAsset::Upload({
content_id,
ipfs_hash,
size,
...
}),
];
meta = VideoMetadata {
...
// refers to second element: assets[1] which is being uploaded to the storage system
video: 1,
// refers to the first element assets[0] which is being referneced by a url string.
thumbnail_photo: 0,
...
};