2022-10-13 23:58:57 +00:00
|
|
|
// Protocol of data exchange between Codex nodes.
|
|
|
|
// Extended version of https://github.com/ipfs/specs/blob/main/BITSWAP.md
|
|
|
|
|
2021-02-26 00:23:22 +00:00
|
|
|
syntax = "proto3";
|
|
|
|
|
2021-08-30 19:25:20 +00:00
|
|
|
package blockexc.message.pb;
|
2021-02-26 00:23:22 +00:00
|
|
|
|
|
|
|
message Message {
|
|
|
|
|
|
|
|
message Wantlist {
|
|
|
|
enum WantType {
|
|
|
|
wantBlock = 0;
|
|
|
|
wantHave = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message Entry {
|
2021-08-30 19:25:20 +00:00
|
|
|
bytes block = 1; // the block cid
|
2021-02-26 00:23:22 +00:00
|
|
|
int32 priority = 2; // the priority (normalized). default to 1
|
|
|
|
bool cancel = 3; // whether this revokes an entry
|
|
|
|
WantType wantType = 4; // Note: defaults to enum 0, ie Block
|
|
|
|
bool sendDontHave = 5; // Note: defaults to false
|
|
|
|
}
|
|
|
|
|
|
|
|
repeated Entry entries = 1; // a list of wantlist entries
|
|
|
|
bool full = 2; // whether this is the full wantlist. default to false
|
|
|
|
}
|
|
|
|
|
|
|
|
message Block {
|
|
|
|
bytes prefix = 1; // CID prefix (cid version, multicodec and multihash prefix (type + length)
|
|
|
|
bytes data = 2;
|
|
|
|
}
|
|
|
|
|
|
|
|
enum BlockPresenceType {
|
|
|
|
presenceHave = 0;
|
|
|
|
presenceDontHave = 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
message BlockPresence {
|
|
|
|
bytes cid = 1;
|
|
|
|
BlockPresenceType type = 2;
|
2021-05-10 14:21:47 +00:00
|
|
|
bytes price = 3; // Amount of assets to pay for the block (UInt256)
|
2021-02-26 00:23:22 +00:00
|
|
|
}
|
|
|
|
|
2021-05-10 14:21:47 +00:00
|
|
|
message AccountMessage {
|
|
|
|
bytes address = 1; // Ethereum address to which payments should be made
|
2021-04-08 07:22:41 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
message StateChannelUpdate {
|
|
|
|
bytes update = 1; // Signed Nitro state, serialized as JSON
|
|
|
|
}
|
|
|
|
|
2021-02-26 00:23:22 +00:00
|
|
|
Wantlist wantlist = 1;
|
2022-09-13 03:32:12 +00:00
|
|
|
repeated Block payload = 3;
|
|
|
|
repeated BlockPresence blockPresences = 4;
|
|
|
|
int32 pendingBytes = 5;
|
|
|
|
AccountMessage account = 6;
|
|
|
|
StateChannelUpdate payment = 7;
|
2021-02-26 00:23:22 +00:00
|
|
|
}
|