index.md 8.0 KB

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

Field Type Label Description
question string required The question itself (ie. "What is your name?"")
type OpeningMetadata.ApplicationFormQuestion.InputType required Suggested type of the UI answer input

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,
    ...
};