index.md 10.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 uint32 optional Member's avatar - index into external assets array
about string optional Member's md-formatted about text

Top

proto/WorkingGroups.proto

AddUpcomingOpening

Field Type Label Description
metadata UpcomingOpeningMetadata optional Upcoming opening metadata

ApplicationMetadata

Field Type Label Description
answers string repeated List of answers to opening application form questions

OpeningMetadata

Field Type Label Description
short_description string optional Short description of the opening
description string optional Full description of the opening
hiring_limit uint32 optional Expected number of hired applicants
expected_ending_timestamp uint32 optional Expected time when the opening will close (Unix timestamp)
application_details string optional 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 optional The question itself (ie. "What is your name?"")
type OpeningMetadata.ApplicationFormQuestion.InputType optional Suggested type of the UI answer input

RemoveUpcomingOpening

Field Type Label Description
id string optional Upcoming opening query-node id

SetGroupMetadata

Field Type Label Description
new_metadata WorkingGroupMetadata optional New working group metadata to set (can be a partial update)

UpcomingOpeningMetadata

Field Type Label Description
expected_start uint32 optional Expected opening start (timestamp)
reward_per_block uint64 optional Expected reward per block
min_application_stake uint64 optional Expected min. application stake
metadata OpeningMetadata optional Opening metadata

WorkingGroupMetadata

Field Type Label Description
description string optional Group description text (md-formatted)
about string optional Group about text (md-formatted)
status string optional Current group status (expected to be 1-3 words)
status_message string optional Short status message associated with the status

WorkingGroupMetadataAction

Field Type Label Description
set_group_metadata SetGroupMetadata optional
add_upcoming_opening AddUpcomingOpening optional
remove_upcoming_opening RemoveUpcomingOpening optional

OpeningMetadata.ApplicationFormQuestion.InputType

Name Number Description
TEXTAREA 0
TEXT 1

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