diff --git a/doc/PROTO.md b/doc/PROTO.md index 6b34112..d81fc04 100644 --- a/doc/PROTO.md +++ b/doc/PROTO.md @@ -479,6 +479,7 @@ NameSysAPI provides a generic name resolution API | ----- | ---- | ----- | ----------- | | cid | [string](#string) | | cid is the identifier of the block | | data | [bytes](#bytes) | | data is the actual contents of the block | +| size | [int64](#int64) | | size of the block, only filled out by BS_GET_STATS since if we just want stats, we dont want to retrieve all teh data. | @@ -495,7 +496,7 @@ BlockstoreRequest is a message used to control blockstores | ----- | ---- | ----- | ----------- | | requestType | [BSREQTYPE](#pb.BSREQTYPE) | | indicates the particular request type being made | | reqOpts | [BSREQOPTS](#pb.BSREQOPTS) | repeated | optional request settings | -| cids | [string](#string) | repeated | cids of blocks sent by: BS_DELETE, BS_GET, BS_GET_MANY | +| cids | [string](#string) | repeated | cids of blocks sent by: BS_DELETE, BS_GET, BS_GET_MANY, BS_GET_STATS | | data | [bytes](#bytes) | repeated | the data we are putting sent by: BS_PUT, BS_PUT_MANY | | cidVersion | [string](#string) | | the cid version to use when constructing blocks, default is v1 sent by: BS_PUT, BS_PUT_MANY | | hashFunc | [string](#string) | | the hash function to use when constructing blocks, default is sha2-256 sent by: BS_PUT, BS_PUT_MANY | @@ -514,7 +515,11 @@ BlockstoreResponse is a response to a BlockstoreqRequest | Field | Type | Label | Description | | ----- | ---- | ----- | ----------- | | requestType | [BSREQTYPE](#pb.BSREQTYPE) | | indicates the particular request type being made | -| blocks | [Block](#pb.Block) | repeated | a copy of blocks from the blockstore sent by: BS_PUT, BS_PUT_MANY, BS_GET, BS_GET_MANY in the case of BS_PUT, and BS_PUT_MANY requests the data field will be empty as this is only populated by get requests | +| blocks | [Block](#pb.Block) | repeated | a copy of blocks from the blockstore sent by: BS_PUT, BS_PUT_MANY, BS_GET, BS_GET_MANY, BS_GET_STATS, BS_GET_ALL + +in the case of BS_PUT, and BS_PUT_MANY requests the data field will be empty as this is only populated by get requests + +in the case of BS_GET_STATS only the cid, and size params will be filled out, since we are just interested in the size | @@ -908,6 +913,7 @@ BSREQTYPE is a particular blockstore request type | BS_GET | 3 | BS_GET is used to get a block from the store | | BS_GET_MANY | 4 | BS_GET_MANY is used to get many blocks from the store | | BS_GET_ALL | 5 | BS_GET_ALL is used to retrieve all blocks from the store It is the gRPC equivalent of Blockstore::AllKeysChan | +| BS_GET_STATS | 6 | BS_GET_STATS is used to retrieve statistics about individual blocks | diff --git a/go/node.pb.go b/go/node.pb.go index d9d0ec7..06f3c5a 100644 --- a/go/node.pb.go +++ b/go/node.pb.go @@ -181,6 +181,8 @@ const ( // BS_GET_ALL is used to retrieve all blocks from the store // It is the gRPC equivalent of Blockstore::AllKeysChan BSREQTYPE_BS_GET_ALL BSREQTYPE = 5 + // BS_GET_STATS is used to retrieve statistics about individual blocks + BSREQTYPE_BS_GET_STATS BSREQTYPE = 6 ) var BSREQTYPE_name = map[int32]string{ @@ -190,15 +192,17 @@ var BSREQTYPE_name = map[int32]string{ 3: "BS_GET", 4: "BS_GET_MANY", 5: "BS_GET_ALL", + 6: "BS_GET_STATS", } var BSREQTYPE_value = map[string]int32{ - "BS_DELETE": 0, - "BS_PUT": 1, - "BS_PUT_MANY": 2, - "BS_GET": 3, - "BS_GET_MANY": 4, - "BS_GET_ALL": 5, + "BS_DELETE": 0, + "BS_PUT": 1, + "BS_PUT_MANY": 2, + "BS_GET": 3, + "BS_GET_MANY": 4, + "BS_GET_ALL": 5, + "BS_GET_STATS": 6, } func (x BSREQTYPE) String() string { @@ -877,7 +881,7 @@ type BlockstoreRequest struct { // optional request settings ReqOpts []BSREQOPTS `protobuf:"varint,2,rep,packed,name=reqOpts,proto3,enum=pb.BSREQOPTS" json:"reqOpts,omitempty"` // cids of blocks - // sent by: BS_DELETE, BS_GET, BS_GET_MANY + // sent by: BS_DELETE, BS_GET, BS_GET_MANY, BS_GET_STATS Cids []string `protobuf:"bytes,3,rep,name=cids,proto3" json:"cids,omitempty"` // the data we are putting // sent by: BS_PUT, BS_PUT_MANY @@ -970,10 +974,14 @@ type BlockstoreResponse struct { // indicates the particular request type being made RequestType BSREQTYPE `protobuf:"varint,1,opt,name=requestType,proto3,enum=pb.BSREQTYPE" json:"requestType,omitempty"` // a copy of blocks from the blockstore - // sent by: BS_PUT, BS_PUT_MANY, BS_GET, BS_GET_MANY + // sent by: BS_PUT, BS_PUT_MANY, BS_GET, BS_GET_MANY, BS_GET_STATS, BS_GET_ALL + // // in the case of BS_PUT, and BS_PUT_MANY requests // the data field will be empty as this is only populated // by get requests + // + // in the case of BS_GET_STATS only the cid, and size params + // will be filled out, since we are just interested in the size Blocks []*Block `protobuf:"bytes,2,rep,name=blocks,proto3" json:"blocks,omitempty"` } @@ -1029,6 +1037,10 @@ type Block struct { Cid string `protobuf:"bytes,1,opt,name=cid,proto3" json:"cid,omitempty"` // data is the actual contents of the block Data []byte `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + // size of the block, only filled out by BS_GET_STATS + // since if we just want stats, we dont want to + // retrieve all teh data. + Size_ int64 `protobuf:"varint,3,opt,name=size,proto3" json:"size,omitempty"` } func (m *Block) Reset() { *m = Block{} } @@ -1078,6 +1090,13 @@ func (m *Block) GetData() []byte { return nil } +func (m *Block) GetSize_() int64 { + if m != nil { + return m.Size_ + } + return 0 +} + // Used to submit a request to Dag or DagStream RPCs type DagRequest struct { // indicates the request being performed @@ -1670,107 +1689,108 @@ func init() { func init() { proto.RegisterFile("node.proto", fileDescriptor_0c843d59d2d938e7) } var fileDescriptor_0c843d59d2d938e7 = []byte{ - // 1595 bytes of a gzipped FileDescriptorProto + // 1608 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x57, 0xcd, 0x72, 0xdb, 0xc8, 0x11, 0x26, 0xc0, 0x1f, 0x91, 0x4d, 0xfd, 0xc0, 0x23, 0xc5, 0xc5, 0xf0, 0xc0, 0x28, 0x88, 0xcb, - 0x61, 0xa9, 0x12, 0xd9, 0x45, 0x3b, 0x65, 0x39, 0x95, 0x54, 0x8a, 0x3f, 0xa0, 0xc2, 0xe2, 0x8f, - 0x18, 0x80, 0xf2, 0xcf, 0x25, 0x2c, 0x88, 0x9c, 0x48, 0x88, 0x48, 0x80, 0x06, 0x40, 0x39, 0xf2, - 0x31, 0x4f, 0xb0, 0x7b, 0xd8, 0x77, 0xd8, 0x37, 0xd8, 0x57, 0xd8, 0xa3, 0xf7, 0xe6, 0xe3, 0x96, - 0x7d, 0xd8, 0xd3, 0x3e, 0xc0, 0xde, 0xb6, 0x7a, 0x66, 0x00, 0x02, 0x34, 0x54, 0xb2, 0x7d, 0x9b, - 0x69, 0xf4, 0x74, 0x7f, 0xfd, 0x75, 0x4f, 0xf7, 0x00, 0xc0, 0x76, 0xa6, 0xf4, 0x70, 0xe1, 0x3a, - 0xbe, 0x43, 0xe4, 0xc5, 0x59, 0x19, 0x96, 0xbe, 0x35, 0xe3, 0x7b, 0xf5, 0x9d, 0x0c, 0x30, 0xac, - 0x0d, 0x75, 0xfa, 0x6a, 0x49, 0x3d, 0x9f, 0x3c, 0x84, 0xa2, 0xcb, 0x97, 0xa3, 0xeb, 0x05, 0x2d, - 0x49, 0xfb, 0x52, 0x75, 0xbb, 0xb6, 0x7d, 0xb8, 0x38, 0x3b, 0x44, 0x25, 0xed, 0x5f, 0xa3, 0x97, - 0x43, 0x4d, 0x8f, 0xaa, 0x10, 0x05, 0xd2, 0xe6, 0x6c, 0x56, 0x92, 0xf7, 0xa5, 0x6a, 0x5e, 0xc7, - 0x25, 0x29, 0xc1, 0xc6, 0x15, 0x75, 0xcf, 0x1c, 0x8f, 0x96, 0xd2, 0x4c, 0x1a, 0x6c, 0x89, 0x0a, - 0x9b, 0xcc, 0xeb, 0xc4, 0x99, 0x0d, 0xcc, 0x39, 0x2d, 0x65, 0xf6, 0xa5, 0x6a, 0x41, 0x8f, 0xc9, + 0x61, 0xa9, 0x52, 0xb2, 0x8b, 0x76, 0xca, 0x72, 0x2a, 0xa9, 0x14, 0x7f, 0x40, 0x85, 0xc5, 0x1f, + 0x31, 0x00, 0xe5, 0x9f, 0x4b, 0x58, 0x10, 0x39, 0x91, 0x10, 0x91, 0x00, 0x0d, 0x80, 0x72, 0xe4, + 0xe3, 0x3e, 0xc1, 0xee, 0x61, 0xdf, 0x61, 0xdf, 0x60, 0x5f, 0x61, 0x8f, 0xde, 0x9b, 0x8f, 0x5b, + 0xf6, 0x61, 0x4f, 0xfb, 0x00, 0x7b, 0xdb, 0xea, 0x99, 0x01, 0x08, 0xd0, 0x50, 0xc9, 0xf6, 0x6d, + 0xba, 0xd1, 0x33, 0xfd, 0xf5, 0xd7, 0x3d, 0xdd, 0x03, 0x00, 0xdb, 0x99, 0xd2, 0xc3, 0x85, 0xeb, + 0xf8, 0x0e, 0x91, 0x17, 0x67, 0x65, 0x58, 0xfa, 0xd6, 0x8c, 0xcb, 0xea, 0x3b, 0x19, 0x60, 0x58, + 0x1b, 0xea, 0xf4, 0xd5, 0x92, 0x7a, 0x3e, 0x79, 0x08, 0x45, 0x97, 0x2f, 0x47, 0xd7, 0x0b, 0x5a, + 0x92, 0xf6, 0xa5, 0xea, 0x76, 0x6d, 0xfb, 0x70, 0x71, 0x76, 0x88, 0x46, 0xda, 0xbf, 0x47, 0x2f, + 0x87, 0x9a, 0x1e, 0x35, 0x21, 0x0a, 0xa4, 0xcd, 0xd9, 0xac, 0x24, 0xef, 0x4b, 0xd5, 0xbc, 0x8e, + 0x4b, 0x52, 0x82, 0x8d, 0x2b, 0xea, 0x9e, 0x39, 0x1e, 0x2d, 0xa5, 0x99, 0x36, 0x10, 0x89, 0x0a, + 0x9b, 0xcc, 0xeb, 0xc4, 0x99, 0x0d, 0xcc, 0x39, 0x2d, 0x65, 0xf6, 0xa5, 0x6a, 0x41, 0x8f, 0xe9, 0xc8, 0x3d, 0xd8, 0x9a, 0x59, 0x9e, 0x4f, 0xed, 0xfa, 0x74, 0xea, 0x52, 0xcf, 0x2b, 0x65, 0x99, - 0x52, 0x5c, 0x88, 0x5a, 0xbe, 0xe9, 0x9e, 0x53, 0x3f, 0xd0, 0xca, 0x71, 0xad, 0x98, 0x10, 0xb5, - 0x5c, 0x3a, 0x77, 0x7c, 0x1a, 0x68, 0x6d, 0x70, 0xad, 0x98, 0x90, 0xd4, 0x60, 0xcf, 0x9c, 0xcd, + 0x51, 0x5c, 0x89, 0x56, 0xbe, 0xe9, 0x9e, 0x53, 0x3f, 0xb0, 0xca, 0x71, 0xab, 0x98, 0x12, 0xad, + 0x5c, 0x3a, 0x77, 0x7c, 0x1a, 0x58, 0x6d, 0x70, 0xab, 0x98, 0x92, 0xd4, 0x60, 0xcf, 0x9c, 0xcd, 0x9c, 0xd7, 0xcd, 0xa5, 0xe7, 0x3b, 0xf3, 0xa1, 0x00, 0xe3, 0x95, 0xf2, 0x0c, 0x7c, 0xe2, 0x37, - 0x8c, 0xc4, 0xa5, 0x0b, 0xc7, 0xf5, 0x87, 0x94, 0xba, 0x9d, 0x56, 0xa9, 0xc0, 0x74, 0x63, 0x32, - 0xf5, 0x5b, 0x09, 0x8a, 0x8c, 0x5a, 0x6f, 0xe1, 0xd8, 0x1e, 0xfd, 0x02, 0x6e, 0xf7, 0x20, 0x6b, - 0x9b, 0x73, 0xea, 0x95, 0xe4, 0xfd, 0x74, 0xb5, 0xa0, 0xf3, 0x0d, 0xd9, 0x87, 0xe2, 0xc4, 0xb1, - 0x6d, 0xaf, 0x39, 0x73, 0x3c, 0x3a, 0x65, 0x1c, 0x67, 0xf5, 0xa8, 0x88, 0x3c, 0x80, 0xa2, 0xe7, - 0xbb, 0xd4, 0x9c, 0x77, 0xec, 0xff, 0x38, 0x5e, 0x29, 0xb3, 0x9f, 0xae, 0x16, 0x6b, 0x5b, 0xc2, - 0x53, 0xcf, 0x43, 0xa9, 0x1e, 0xd5, 0x50, 0xbf, 0x96, 0xa0, 0x10, 0x7e, 0xfa, 0x28, 0x4d, 0xd2, - 0xa7, 0xa4, 0x49, 0xfe, 0xa4, 0x34, 0xa5, 0x93, 0xd2, 0xb4, 0x07, 0xd9, 0x99, 0x33, 0x31, 0x67, - 0xac, 0x1e, 0xf2, 0x3a, 0xdf, 0xa8, 0x7f, 0x02, 0xe5, 0x98, 0x32, 0x2e, 0xbd, 0x90, 0xc2, 0x12, - 0x6c, 0x2c, 0x18, 0xb9, 0x5e, 0x49, 0x62, 0x94, 0x04, 0x5b, 0xf5, 0xff, 0x12, 0xec, 0x34, 0x1d, - 0xdb, 0xee, 0x9f, 0xcf, 0xfd, 0xa0, 0x98, 0xff, 0x92, 0x44, 0xf8, 0x2e, 0xd2, 0xd0, 0x3c, 0x19, - 0x0c, 0xfa, 0xc7, 0xfd, 0x51, 0x22, 0xeb, 0x15, 0x80, 0xf9, 0x72, 0xe6, 0x5b, 0x08, 0x2f, 0xa0, - 0x3e, 0x22, 0x89, 0x82, 0x48, 0xc7, 0x41, 0xfc, 0x2c, 0x83, 0xb2, 0x02, 0x21, 0x30, 0x7f, 0x21, - 0x8a, 0x3a, 0x14, 0x30, 0xa5, 0x74, 0xe2, 0xd3, 0x29, 0x03, 0x51, 0xac, 0xfd, 0x81, 0x1d, 0x5a, - 0xb3, 0xcf, 0x04, 0x4c, 0x4b, 0xb3, 0x7d, 0xf7, 0x5a, 0x5f, 0x9d, 0x22, 0x47, 0x90, 0xf3, 0x7c, - 0xd3, 0x5f, 0x72, 0x9c, 0xc5, 0xda, 0x7e, 0xe2, 0x79, 0x83, 0xa9, 0xf0, 0xc3, 0x42, 0x3f, 0x1a, - 0x62, 0x26, 0x16, 0x62, 0xf9, 0x6f, 0xb0, 0x1d, 0x77, 0x88, 0x0d, 0xe0, 0x92, 0x5e, 0x8b, 0x22, - 0xc1, 0x25, 0xe6, 0xf3, 0xca, 0x9c, 0x2d, 0xa9, 0x68, 0x0a, 0x7c, 0xf3, 0x57, 0xf9, 0x48, 0x2a, - 0xf7, 0xa1, 0x18, 0x71, 0x97, 0x70, 0xb4, 0x1a, 0x3d, 0x5a, 0xac, 0x91, 0x28, 0x62, 0x7e, 0x32, - 0x62, 0x4e, 0xed, 0x71, 0x30, 0xab, 0x8f, 0x58, 0xba, 0x53, 0xcb, 0x5b, 0x11, 0x27, 0xf1, 0x7b, - 0x19, 0x95, 0x91, 0xbb, 0x90, 0x73, 0xa9, 0xe9, 0x39, 0xb6, 0xa8, 0x59, 0xb1, 0x53, 0xdf, 0xc0, - 0x96, 0xf6, 0x3f, 0xdf, 0x35, 0xbd, 0xa0, 0x7e, 0x1e, 0x25, 0x65, 0xee, 0x0e, 0x42, 0xd2, 0x5e, - 0x8c, 0xf4, 0xba, 0x91, 0x98, 0xb7, 0xc7, 0xb0, 0x45, 0x99, 0x95, 0x36, 0x35, 0xfd, 0xa5, 0xcb, - 0x23, 0x11, 0xf7, 0x9c, 0x1f, 0x63, 0x67, 0xe2, 0x4a, 0xea, 0x0f, 0x12, 0xdc, 0x69, 0xcc, 0x9c, - 0xc9, 0xa5, 0xe7, 0x3b, 0x2e, 0x0d, 0x00, 0x3c, 0x48, 0x02, 0xc0, 0xee, 0x71, 0x23, 0xd9, 0xf9, - 0x1f, 0x61, 0xc3, 0xa5, 0xaf, 0x4e, 0x16, 0x3e, 0xaf, 0xdb, 0xa8, 0xf2, 0xc9, 0x70, 0x64, 0xe8, - 0xc1, 0x57, 0x42, 0x20, 0x33, 0xb1, 0xa6, 0x41, 0x01, 0xb3, 0x35, 0xca, 0xa6, 0xa6, 0x6f, 0xb2, - 0x8c, 0x6f, 0xea, 0x6c, 0x8d, 0x77, 0x61, 0x62, 0x4d, 0x9f, 0x51, 0xd7, 0xb3, 0x1c, 0x5b, 0xb4, - 0xe2, 0x88, 0x84, 0x94, 0x21, 0x7f, 0x61, 0x7a, 0x17, 0xed, 0xa5, 0x3d, 0x11, 0xcd, 0x35, 0xdc, - 0xab, 0x17, 0x40, 0xa2, 0x21, 0x89, 0xeb, 0xf0, 0xd9, 0x31, 0xfd, 0x1e, 0x72, 0x67, 0xcc, 0x8c, - 0xb8, 0x05, 0x05, 0xa6, 0x8b, 0x12, 0x5d, 0x7c, 0x50, 0xff, 0x0c, 0x59, 0x26, 0xc0, 0x82, 0x9a, - 0x58, 0xd3, 0xa0, 0xa0, 0x26, 0xd6, 0x34, 0x0c, 0x0a, 0xb3, 0x20, 0x82, 0x52, 0x7f, 0x92, 0x01, - 0x5a, 0xe6, 0xf9, 0xed, 0x33, 0xaf, 0x55, 0x3f, 0x4e, 0x84, 0x94, 0x60, 0x94, 0xdc, 0x87, 0x6d, - 0xe7, 0xec, 0xbf, 0x74, 0xe2, 0x6b, 0xf6, 0xc4, 0x99, 0x5a, 0xf6, 0xb9, 0xe8, 0x75, 0x6b, 0x52, - 0xf2, 0x10, 0x76, 0x3d, 0xea, 0x5a, 0xe6, 0xcc, 0x7a, 0x63, 0xfa, 0x96, 0x63, 0xb7, 0x1d, 0x77, - 0x6e, 0xfa, 0x62, 0x14, 0x26, 0x7d, 0x8a, 0x71, 0x9c, 0x8d, 0x73, 0xbc, 0x96, 0x1f, 0x1c, 0x82, - 0xe9, 0x58, 0x7e, 0x08, 0x64, 0x50, 0x57, 0xe4, 0x86, 0xad, 0xc9, 0x03, 0xc8, 0xce, 0x2c, 0xfb, - 0x12, 0x07, 0x1c, 0xf2, 0xf9, 0x5b, 0x16, 0x69, 0x48, 0xc7, 0x61, 0x0f, 0xbf, 0xf1, 0x76, 0xc0, - 0xf5, 0xca, 0x47, 0x00, 0x2b, 0xe1, 0x6d, 0xf7, 0xbd, 0x10, 0xbd, 0xa0, 0xdf, 0x48, 0x50, 0x64, - 0xa6, 0x6f, 0x1d, 0x81, 0x37, 0x51, 0x7d, 0x17, 0x72, 0x08, 0x3a, 0x9c, 0x81, 0x62, 0x87, 0x1d, - 0xca, 0x35, 0x5f, 0xb7, 0x30, 0x0b, 0x69, 0x96, 0x85, 0x60, 0x4b, 0xd4, 0x20, 0x3c, 0x3e, 0xf6, - 0x36, 0xd1, 0x7a, 0x67, 0xd8, 0x6b, 0x61, 0x08, 0x22, 0x22, 0xb5, 0x0d, 0xf9, 0x40, 0x14, 0x52, - 0x24, 0xf1, 0x64, 0x32, 0x8a, 0x08, 0x64, 0x70, 0xd6, 0x8a, 0x80, 0xd8, 0x1a, 0x65, 0x9e, 0xf5, - 0x86, 0xbf, 0x69, 0x32, 0x3a, 0x5b, 0xab, 0x0d, 0x6e, 0x67, 0xe0, 0x4c, 0xe9, 0xca, 0xaf, 0x7c, - 0xa3, 0xdf, 0xb0, 0x70, 0xa4, 0x48, 0x35, 0x5e, 0xc1, 0x4e, 0x97, 0x5e, 0x7f, 0xe2, 0xbd, 0xef, - 0x1a, 0x37, 0x15, 0xe4, 0x47, 0x78, 0x2b, 0x00, 0x0b, 0xd7, 0xba, 0x32, 0x7d, 0xda, 0xa5, 0xd7, - 0x82, 0xa4, 0x88, 0x04, 0x67, 0xbe, 0xb2, 0x72, 0x7c, 0xeb, 0xed, 0xbc, 0xc1, 0x73, 0xdc, 0x8b, - 0xbc, 0xee, 0x05, 0x8b, 0xf7, 0x92, 0x5e, 0x0f, 0xd8, 0x2b, 0x86, 0x37, 0x9b, 0x70, 0x8f, 0x95, - 0x74, 0x61, 0x7a, 0x62, 0xea, 0xe3, 0x52, 0xbd, 0x07, 0xdb, 0x43, 0xac, 0x5c, 0x2f, 0x9c, 0xe1, - 0x41, 0xa3, 0x92, 0x56, 0x8d, 0x4a, 0xfd, 0x45, 0x82, 0x9d, 0x50, 0x4d, 0x00, 0x7f, 0x12, 0xce, - 0x3a, 0x89, 0xd1, 0xff, 0x3b, 0xf6, 0xda, 0x89, 0x2b, 0x25, 0x8e, 0xba, 0x27, 0x90, 0xa3, 0xae, - 0xeb, 0xb8, 0x41, 0xde, 0x12, 0x0f, 0x6a, 0x4c, 0x43, 0x1c, 0xe4, 0xea, 0xe5, 0xa7, 0xb7, 0xcd, - 0xb2, 0x9b, 0xc7, 0xe0, 0x53, 0x28, 0x46, 0x2c, 0x7e, 0xce, 0x8d, 0x3a, 0x38, 0xe2, 0xcf, 0x75, - 0x9e, 0x0a, 0x52, 0x80, 0x6c, 0xb3, 0x77, 0x62, 0x68, 0x4a, 0x8a, 0x14, 0x61, 0xa3, 0x7d, 0xa2, - 0x3f, 0xaf, 0xeb, 0x2d, 0x45, 0x22, 0x00, 0xb9, 0x5e, 0xc7, 0x18, 0x69, 0x03, 0x45, 0x26, 0x39, - 0x90, 0x7b, 0x86, 0x92, 0x3e, 0x38, 0x85, 0x9d, 0xb5, 0x07, 0x07, 0xd9, 0x06, 0x68, 0xf6, 0xc7, - 0x28, 0xd5, 0x9a, 0x23, 0x25, 0x45, 0xee, 0xc0, 0x56, 0xb3, 0x3f, 0x6e, 0x75, 0x8c, 0x40, 0x24, - 0x91, 0x2d, 0x28, 0x34, 0xfb, 0x63, 0x63, 0x54, 0x1f, 0x9d, 0x1a, 0x8a, 0x4c, 0x14, 0xd8, 0x6c, - 0xf6, 0xc7, 0xc7, 0xda, 0x68, 0x3c, 0xd4, 0x34, 0x1d, 0xcd, 0x1e, 0xc2, 0x56, 0x6c, 0x1a, 0xe2, - 0x09, 0xed, 0xc5, 0x58, 0x1b, 0xd4, 0x1b, 0x3d, 0xc4, 0xb5, 0x0d, 0xa0, 0xbd, 0x40, 0x9b, 0x6c, - 0x2f, 0x1d, 0xfc, 0x03, 0xf7, 0xc1, 0x18, 0x24, 0x9b, 0x90, 0xef, 0xb4, 0xb4, 0xc1, 0xa8, 0xd3, - 0x7e, 0xa9, 0xa4, 0x10, 0xf6, 0xf0, 0xb4, 0x61, 0x9c, 0x36, 0xb8, 0x63, 0x06, 0xe4, 0x99, 0xa6, - 0xbf, 0x54, 0x64, 0x92, 0x87, 0x4c, 0xbf, 0x35, 0x40, 0x87, 0x53, 0x28, 0x34, 0xa2, 0xce, 0x1a, - 0xc6, 0xb8, 0xa5, 0xf5, 0xb4, 0x91, 0xc6, 0x0d, 0x34, 0x8c, 0xf1, 0xf0, 0x14, 0x91, 0xef, 0x40, - 0x91, 0xaf, 0xc7, 0xfd, 0xfa, 0x00, 0x4d, 0xf0, 0x8f, 0xc7, 0xda, 0x48, 0x49, 0x8b, 0x8f, 0x18, - 0x07, 0xfb, 0x98, 0x41, 0x98, 0x42, 0x50, 0xef, 0xf5, 0x94, 0xec, 0xc1, 0x7d, 0xe1, 0x05, 0xc7, - 0x26, 0x72, 0xdb, 0xd2, 0xda, 0xf5, 0xd3, 0x1e, 0x92, 0xb4, 0x09, 0xf9, 0x86, 0x31, 0x6e, 0x9f, - 0xe8, 0x4d, 0x0c, 0xe7, 0xdf, 0x00, 0xab, 0xd6, 0xc5, 0x14, 0xeb, 0xc7, 0x0c, 0x40, 0x2a, 0xd8, - 0xa0, 0x43, 0x09, 0x89, 0xc3, 0xcd, 0x40, 0x7b, 0x3e, 0x1e, 0x9c, 0xb4, 0x34, 0x45, 0x46, 0xb2, - 0x51, 0x52, 0x6f, 0xb5, 0xc6, 0xbd, 0xce, 0xa0, 0x6b, 0x28, 0xe9, 0x40, 0x84, 0x28, 0xb8, 0x28, - 0x73, 0xd0, 0x85, 0x42, 0x78, 0xf3, 0x30, 0x82, 0xae, 0x31, 0xfe, 0x67, 0xdd, 0xe0, 0xa1, 0x76, - 0x0d, 0x61, 0x9c, 0xaf, 0xd1, 0xab, 0x8c, 0x8c, 0x74, 0x43, 0x46, 0xd2, 0x08, 0xa2, 0x6b, 0x8c, - 0xb1, 0x18, 0x94, 0x4c, 0xed, 0xbb, 0x34, 0x6c, 0x60, 0xaf, 0xaa, 0x0f, 0x3b, 0xe4, 0x09, 0xe4, - 0x83, 0xb7, 0x13, 0xd9, 0x8d, 0x3f, 0x0c, 0xd9, 0xcd, 0x2b, 0xef, 0x25, 0xbd, 0x16, 0xd5, 0x14, - 0xa9, 0x42, 0x8e, 0x3f, 0x93, 0x08, 0x7f, 0x0a, 0x45, 0x9f, 0x4c, 0x65, 0x36, 0x9c, 0xb5, 0xf9, - 0xc2, 0xbf, 0x66, 0x9a, 0xe9, 0x61, 0x6d, 0x48, 0xc2, 0x5f, 0x1c, 0xa1, 0xb3, 0x13, 0xee, 0x43, - 0x9b, 0x7f, 0x07, 0x58, 0x3d, 0x15, 0xc8, 0x6f, 0xc2, 0x09, 0x1f, 0xed, 0x8a, 0xe5, 0xbb, 0xeb, - 0xe2, 0xf0, 0xf8, 0x31, 0x28, 0x2b, 0xb9, 0xc1, 0xfe, 0x6b, 0x3e, 0xdb, 0x48, 0x55, 0x7a, 0x28, - 0x21, 0xe2, 0x96, 0x79, 0xce, 0x11, 0xaf, 0x46, 0x22, 0x47, 0x1c, 0x99, 0x63, 0x6a, 0x0a, 0xe9, - 0x0b, 0x9a, 0x27, 0xa7, 0x6f, 0xad, 0x87, 0x73, 0xfa, 0xd6, 0xfb, 0xab, 0x9a, 0x22, 0x8f, 0x61, - 0x43, 0x74, 0x17, 0x42, 0x62, 0xad, 0x86, 0x1f, 0xdb, 0x4d, 0x68, 0x3f, 0x6a, 0xaa, 0x51, 0xfa, - 0xfe, 0x7d, 0x45, 0x7a, 0xfb, 0xbe, 0x22, 0xfd, 0xf8, 0xbe, 0x22, 0x7d, 0xf5, 0xa1, 0x92, 0x7a, - 0xfb, 0xa1, 0x92, 0x7a, 0xf7, 0xa1, 0x92, 0x3a, 0xcb, 0xb1, 0xdf, 0xb2, 0x47, 0xbf, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x3d, 0x65, 0xec, 0x80, 0xe5, 0x0f, 0x00, 0x00, + 0x8c, 0xc4, 0xa5, 0x0b, 0xc7, 0xf5, 0x87, 0x94, 0xba, 0x9d, 0x56, 0xa9, 0xc0, 0x6c, 0x63, 0x3a, + 0xf5, 0x3b, 0x09, 0x8a, 0x8c, 0x5a, 0x6f, 0xe1, 0xd8, 0x1e, 0xfd, 0x02, 0x6e, 0xf7, 0x20, 0x6b, + 0x9b, 0x73, 0xea, 0x95, 0xe4, 0xfd, 0x74, 0xb5, 0xa0, 0x73, 0x81, 0xec, 0x43, 0x71, 0xe2, 0xd8, + 0xb6, 0xd7, 0x9c, 0x39, 0x1e, 0x9d, 0x32, 0x8e, 0xb3, 0x7a, 0x54, 0x45, 0x1e, 0x40, 0xd1, 0xf3, + 0x5d, 0x6a, 0xce, 0x3b, 0xf6, 0x7f, 0x1d, 0xaf, 0x94, 0xd9, 0x4f, 0x57, 0x8b, 0xb5, 0x2d, 0xe1, + 0xa9, 0xe7, 0xa1, 0x56, 0x8f, 0x5a, 0xa8, 0xdf, 0x48, 0x50, 0x08, 0x3f, 0x7d, 0x94, 0x26, 0xe9, + 0x53, 0xd2, 0x24, 0x7f, 0x52, 0x9a, 0xd2, 0x49, 0x69, 0xda, 0x83, 0xec, 0xcc, 0x99, 0x98, 0x33, + 0x56, 0x0f, 0x79, 0x9d, 0x0b, 0xea, 0x5f, 0x40, 0x39, 0xa6, 0x8c, 0x4b, 0x2f, 0xa4, 0xb0, 0x04, + 0x1b, 0x0b, 0x46, 0xae, 0x57, 0x92, 0x18, 0x25, 0x81, 0xa8, 0x7e, 0x25, 0xc1, 0x4e, 0xd3, 0xb1, + 0xed, 0xfe, 0xf9, 0xdc, 0x0f, 0x8a, 0xf9, 0xaf, 0x49, 0x84, 0xef, 0x22, 0x0d, 0xcd, 0x93, 0xc1, + 0xa0, 0x7f, 0xdc, 0x1f, 0x25, 0xb2, 0x5e, 0x01, 0x98, 0x2f, 0x67, 0xbe, 0x85, 0xf0, 0x02, 0xea, + 0x23, 0x9a, 0x28, 0x88, 0x74, 0x1c, 0xc4, 0x2f, 0x32, 0x28, 0x2b, 0x10, 0x02, 0xf3, 0x17, 0xa2, + 0xa8, 0x43, 0x01, 0x53, 0x4a, 0x27, 0x3e, 0x9d, 0x32, 0x10, 0xc5, 0xda, 0x9f, 0xd8, 0xa6, 0xb5, + 0xf3, 0x99, 0x82, 0x59, 0x69, 0xb6, 0xef, 0x5e, 0xeb, 0xab, 0x5d, 0xe4, 0x08, 0x72, 0x9e, 0x6f, + 0xfa, 0x4b, 0x8e, 0xb3, 0x58, 0xdb, 0x4f, 0xdc, 0x6f, 0x30, 0x13, 0xbe, 0x59, 0xd8, 0x47, 0x43, + 0xcc, 0xc4, 0x42, 0x2c, 0xff, 0x1d, 0xb6, 0xe3, 0x0e, 0xb1, 0x01, 0x5c, 0xd2, 0x6b, 0x51, 0x24, + 0xb8, 0xc4, 0x7c, 0x5e, 0x99, 0xb3, 0x25, 0x15, 0x4d, 0x81, 0x0b, 0x7f, 0x93, 0x8f, 0xa4, 0x72, + 0x1f, 0x8a, 0x11, 0x77, 0x09, 0x5b, 0xab, 0xd1, 0xad, 0xc5, 0x1a, 0x89, 0x22, 0xe6, 0x3b, 0x23, + 0xc7, 0xa9, 0x3d, 0x0e, 0x66, 0xf5, 0x11, 0x4b, 0x77, 0x6a, 0x79, 0x2b, 0xe2, 0x24, 0x7e, 0x2f, + 0xa3, 0x3a, 0x72, 0x17, 0x72, 0x2e, 0x35, 0x3d, 0xc7, 0x16, 0x35, 0x2b, 0x24, 0xf5, 0x0d, 0x6c, + 0x69, 0xff, 0xf7, 0x5d, 0xd3, 0x0b, 0xea, 0xe7, 0x51, 0x52, 0xe6, 0xee, 0x20, 0x24, 0xed, 0xc5, + 0x48, 0xaf, 0x1b, 0x89, 0x79, 0x7b, 0x0c, 0x5b, 0x94, 0x9d, 0xd2, 0xa6, 0xa6, 0xbf, 0x74, 0x79, + 0x24, 0xe2, 0x9e, 0xf3, 0x6d, 0x6c, 0x4f, 0xdc, 0x48, 0xfd, 0x51, 0x82, 0x3b, 0x8d, 0x99, 0x33, + 0xb9, 0xf4, 0x7c, 0xc7, 0xa5, 0x01, 0x80, 0x07, 0x49, 0x00, 0xd8, 0x3d, 0x6e, 0x24, 0x3b, 0xff, + 0x33, 0x6c, 0xb8, 0xf4, 0xd5, 0xc9, 0xc2, 0xe7, 0x75, 0x1b, 0x35, 0x3e, 0x19, 0x8e, 0x0c, 0x3d, + 0xf8, 0x4a, 0x08, 0x64, 0x26, 0xd6, 0x34, 0x28, 0x60, 0xb6, 0x46, 0xdd, 0xd4, 0xf4, 0x4d, 0x96, + 0xf1, 0x4d, 0x9d, 0xad, 0xf1, 0x2e, 0x4c, 0xac, 0xe9, 0x33, 0xea, 0x7a, 0x96, 0x63, 0x8b, 0x56, + 0x1c, 0xd1, 0x90, 0x32, 0xe4, 0x2f, 0x4c, 0xef, 0xa2, 0xbd, 0xb4, 0x27, 0xa2, 0xb9, 0x86, 0xb2, + 0x7a, 0x01, 0x24, 0x1a, 0x92, 0xb8, 0x0e, 0x9f, 0x1d, 0xd3, 0x1f, 0x21, 0x77, 0xc6, 0x8e, 0x11, + 0xb7, 0xa0, 0xc0, 0x6c, 0x51, 0xa3, 0x8b, 0x0f, 0x6a, 0x1d, 0xb2, 0x4c, 0x81, 0x05, 0x35, 0xb1, + 0xa6, 0x41, 0x41, 0x4d, 0xac, 0x69, 0x18, 0x14, 0x66, 0x21, 0x08, 0x8a, 0x40, 0xc6, 0xb3, 0xde, + 0xf0, 0xe9, 0x94, 0xd6, 0xd9, 0x5a, 0xfd, 0x59, 0x06, 0x68, 0x99, 0xe7, 0xb7, 0xcf, 0xc1, 0x56, + 0xfd, 0x38, 0x11, 0x66, 0x92, 0xa3, 0xfb, 0xb0, 0xed, 0x9c, 0xfd, 0x8f, 0x4e, 0x7c, 0xcd, 0x9e, + 0x38, 0x53, 0xcb, 0x3e, 0x17, 0xfd, 0x6f, 0x4d, 0x4b, 0x1e, 0xc2, 0xae, 0x47, 0x5d, 0xcb, 0x9c, + 0x59, 0x6f, 0x4c, 0xdf, 0x72, 0xec, 0xb6, 0xe3, 0xce, 0x4d, 0x5f, 0x8c, 0xc7, 0xa4, 0x4f, 0x31, + 0xde, 0xb3, 0x71, 0xde, 0xd7, 0x72, 0x96, 0x63, 0x41, 0x46, 0x73, 0x46, 0x20, 0x83, 0xb6, 0x22, + 0x5f, 0x6c, 0x4d, 0x1e, 0x40, 0x76, 0x66, 0xd9, 0x97, 0x38, 0xf4, 0x90, 0xe3, 0xdf, 0xb3, 0x48, + 0x43, 0x3a, 0x0e, 0x7b, 0xf8, 0x8d, 0xb7, 0x08, 0x6e, 0x57, 0x3e, 0x02, 0x58, 0x29, 0x6f, 0xeb, + 0x01, 0x85, 0xe8, 0xa5, 0xfd, 0x56, 0x82, 0x22, 0x3b, 0xfa, 0xd6, 0xb1, 0x78, 0x13, 0xd5, 0x77, + 0x21, 0x87, 0xa0, 0xc3, 0xb9, 0x28, 0x24, 0xec, 0x5a, 0xae, 0xf9, 0xba, 0x85, 0x59, 0x48, 0xb3, + 0x2c, 0x04, 0x22, 0x51, 0x83, 0xf0, 0xf8, 0x28, 0xdc, 0xc4, 0xd3, 0x3b, 0xc3, 0x5e, 0x0b, 0x43, + 0x10, 0x11, 0xa9, 0x6d, 0xc8, 0x07, 0xaa, 0x90, 0x22, 0x89, 0x27, 0x93, 0x51, 0x44, 0x20, 0x83, + 0xf3, 0x57, 0x04, 0xc4, 0xd6, 0xb1, 0x4a, 0xca, 0x88, 0x4a, 0x6a, 0xf0, 0x73, 0x06, 0xce, 0x94, + 0xae, 0xfc, 0xca, 0x37, 0xfa, 0x0d, 0x0b, 0x47, 0x5a, 0x15, 0x8e, 0x7a, 0x05, 0x3b, 0x5d, 0x7a, + 0xfd, 0x89, 0xbd, 0xa0, 0x6b, 0xdc, 0x54, 0x90, 0x1f, 0xe1, 0xad, 0x00, 0x2c, 0x5c, 0xeb, 0xca, + 0xf4, 0x69, 0x97, 0x5e, 0x0b, 0x92, 0x22, 0x1a, 0x7c, 0x07, 0x28, 0x2b, 0xc7, 0xb7, 0xde, 0xd8, + 0x1b, 0x3c, 0xc7, 0xbd, 0xc8, 0xeb, 0x5e, 0xb0, 0x78, 0x2f, 0xe9, 0xf5, 0x80, 0xbd, 0x6c, 0x78, + 0x03, 0x0a, 0x65, 0xac, 0xa4, 0x0b, 0xd3, 0x13, 0x2f, 0x01, 0x5c, 0xaa, 0xf7, 0x60, 0x7b, 0x88, + 0x95, 0xeb, 0x85, 0x73, 0x3d, 0x68, 0x5e, 0xd2, 0xaa, 0x79, 0xa9, 0xbf, 0x4a, 0xb0, 0x13, 0x9a, + 0x09, 0xe0, 0x4f, 0xc2, 0xf9, 0x27, 0x31, 0xfa, 0xff, 0xc0, 0x5e, 0x40, 0x71, 0xa3, 0xc4, 0xf1, + 0xf7, 0x04, 0x72, 0xd4, 0x75, 0x1d, 0x37, 0xc8, 0x5b, 0xe2, 0x46, 0x8d, 0x59, 0x88, 0x8d, 0xdc, + 0xbc, 0xfc, 0xf4, 0xb6, 0xf9, 0x76, 0xf3, 0x68, 0x7c, 0x0a, 0xc5, 0xc8, 0x89, 0x9f, 0x73, 0xa3, + 0x0e, 0x8e, 0xf8, 0x13, 0x9e, 0xa7, 0x82, 0x14, 0x20, 0xdb, 0xec, 0x9d, 0x18, 0x9a, 0x92, 0x22, + 0x45, 0xd8, 0x68, 0x9f, 0xe8, 0xcf, 0xeb, 0x7a, 0x4b, 0x91, 0x08, 0x40, 0xae, 0xd7, 0x31, 0x46, + 0xda, 0x40, 0x91, 0x49, 0x0e, 0xe4, 0x9e, 0xa1, 0xa4, 0x0f, 0x4e, 0x61, 0x67, 0xed, 0x11, 0x42, + 0xb6, 0x01, 0x9a, 0xfd, 0x31, 0x6a, 0xb5, 0xe6, 0x48, 0x49, 0x91, 0x3b, 0xb0, 0xd5, 0xec, 0x8f, + 0x5b, 0x1d, 0x23, 0x50, 0x49, 0x64, 0x0b, 0x0a, 0xcd, 0xfe, 0xd8, 0x18, 0xd5, 0x47, 0xa7, 0x86, + 0x22, 0x13, 0x05, 0x36, 0x9b, 0xfd, 0xf1, 0xb1, 0x36, 0x1a, 0x0f, 0x35, 0x4d, 0xc7, 0x63, 0x0f, + 0x61, 0x2b, 0x36, 0x21, 0x71, 0x87, 0xf6, 0x62, 0xac, 0x0d, 0xea, 0x8d, 0x1e, 0xe2, 0xda, 0x06, + 0xd0, 0x5e, 0xe0, 0x99, 0x4c, 0x96, 0x0e, 0xfe, 0x89, 0x72, 0x30, 0x1a, 0xc9, 0x26, 0xe4, 0x3b, + 0x2d, 0x6d, 0x30, 0xea, 0xb4, 0x5f, 0x2a, 0x29, 0x84, 0x3d, 0x3c, 0x6d, 0x18, 0xa7, 0x0d, 0xee, + 0x98, 0x01, 0x79, 0xa6, 0xe9, 0x2f, 0x15, 0x99, 0xe4, 0x21, 0xd3, 0x6f, 0x0d, 0xd0, 0xe1, 0x15, + 0x14, 0x1a, 0x51, 0x67, 0x0d, 0x63, 0xdc, 0xd2, 0x7a, 0xda, 0x48, 0xe3, 0x07, 0x34, 0x8c, 0xf1, + 0xf0, 0x14, 0x91, 0xef, 0x40, 0x91, 0xaf, 0xc7, 0xfd, 0xfa, 0x00, 0x8f, 0xe0, 0x1f, 0x8f, 0xb5, + 0x91, 0x92, 0x16, 0x1f, 0x31, 0x0e, 0xf6, 0x31, 0x83, 0x30, 0x85, 0xa2, 0xde, 0xeb, 0x29, 0x59, + 0x0c, 0x54, 0xc8, 0x18, 0xbb, 0xa1, 0xe4, 0x0e, 0xee, 0x0b, 0xbf, 0x38, 0x5c, 0x91, 0xed, 0x96, + 0xd6, 0xae, 0x9f, 0xf6, 0x90, 0xb6, 0x4d, 0xc8, 0x37, 0x8c, 0x71, 0xfb, 0x44, 0x6f, 0x62, 0x80, + 0xff, 0x01, 0x58, 0x35, 0x33, 0x66, 0x58, 0x3f, 0x66, 0x90, 0x52, 0x81, 0x80, 0x10, 0x24, 0xf4, + 0x80, 0xc2, 0x40, 0x7b, 0x3e, 0x1e, 0x9c, 0xb4, 0x34, 0x45, 0x46, 0xfa, 0x51, 0x53, 0x6f, 0xb5, + 0xc6, 0xbd, 0xce, 0xa0, 0x6b, 0x28, 0xe9, 0x40, 0x85, 0x38, 0xb8, 0x2a, 0x73, 0xd0, 0x85, 0x42, + 0x78, 0x17, 0x31, 0xa6, 0xae, 0x31, 0xfe, 0x57, 0xdd, 0xe0, 0xc1, 0x77, 0x0d, 0x71, 0x38, 0x5f, + 0xa3, 0x57, 0x19, 0x39, 0xea, 0x86, 0x1c, 0xa5, 0x11, 0x44, 0xd7, 0x18, 0x63, 0x79, 0x28, 0x99, + 0xda, 0xf7, 0x69, 0xd8, 0xc0, 0xee, 0x55, 0x1f, 0x76, 0xc8, 0x13, 0xc8, 0x07, 0x2f, 0x2c, 0xb2, + 0x1b, 0x7f, 0x3e, 0xb2, 0xbb, 0x58, 0xde, 0x4b, 0x7a, 0x53, 0xaa, 0x29, 0x52, 0x85, 0x1c, 0x7f, + 0x4c, 0x11, 0xfe, 0x60, 0x8a, 0x3e, 0xac, 0xca, 0x6c, 0x84, 0x6b, 0xf3, 0x85, 0x7f, 0xcd, 0x2c, + 0xd3, 0xc3, 0xda, 0x90, 0x84, 0x3f, 0x42, 0xc2, 0x66, 0x27, 0x94, 0xc3, 0x33, 0xff, 0x01, 0xb0, + 0x7a, 0x50, 0x90, 0xdf, 0x85, 0xef, 0x80, 0x68, 0x9f, 0x2c, 0xdf, 0x5d, 0x57, 0x87, 0xdb, 0x8f, + 0x41, 0x59, 0xe9, 0x0d, 0xf6, 0xf7, 0xf3, 0xd9, 0x87, 0x54, 0xa5, 0x87, 0x12, 0x22, 0x6e, 0x99, + 0xe7, 0x1c, 0xf1, 0x6a, 0x48, 0x72, 0xc4, 0x91, 0xc9, 0xa6, 0xa6, 0x90, 0xbe, 0xa0, 0x9d, 0x72, + 0xfa, 0xd6, 0xba, 0x3a, 0xa7, 0x6f, 0xbd, 0xe3, 0xaa, 0x29, 0xf2, 0x18, 0x36, 0x44, 0xbf, 0x21, + 0x24, 0xd6, 0x7c, 0xf8, 0xb6, 0xdd, 0x84, 0x86, 0xa4, 0xa6, 0x1a, 0xa5, 0x1f, 0xde, 0x57, 0xa4, + 0xb7, 0xef, 0x2b, 0xd2, 0x4f, 0xef, 0x2b, 0xd2, 0xd7, 0x1f, 0x2a, 0xa9, 0xb7, 0x1f, 0x2a, 0xa9, + 0x77, 0x1f, 0x2a, 0xa9, 0xb3, 0x1c, 0xfb, 0x79, 0x7b, 0xf4, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, + 0x2b, 0xeb, 0xf4, 0xb2, 0x0b, 0x10, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. @@ -2742,6 +2762,11 @@ func (m *Block) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.Size_ != 0 { + i = encodeVarintNode(dAtA, i, uint64(m.Size_)) + i-- + dAtA[i] = 0x18 + } if len(m.Data) > 0 { i -= len(m.Data) copy(dAtA[i:], m.Data) @@ -3464,6 +3489,9 @@ func (m *Block) Size() (n int) { if l > 0 { n += 1 + l + sovNode(uint64(l)) } + if m.Size_ != 0 { + n += 1 + sovNode(uint64(m.Size_)) + } return n } @@ -5509,6 +5537,25 @@ func (m *Block) Unmarshal(dAtA []byte) error { m.Data = []byte{} } iNdEx = postIndex + case 3: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field Size_", wireType) + } + m.Size_ = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowNode + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.Size_ |= int64(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipNode(dAtA[iNdEx:]) diff --git a/js/node_pb.js b/js/node_pb.js index 06d2d2c..9e06563 100644 --- a/js/node_pb.js +++ b/js/node_pb.js @@ -2468,7 +2468,8 @@ proto.pb.Block.prototype.toObject = function(opt_includeInstance) { proto.pb.Block.toObject = function(includeInstance, msg) { var f, obj = { cid: jspb.Message.getFieldWithDefault(msg, 1, ""), - data: msg.getData_asB64() + data: msg.getData_asB64(), + size: jspb.Message.getFieldWithDefault(msg, 3, 0) }; if (includeInstance) { @@ -2513,6 +2514,10 @@ proto.pb.Block.deserializeBinaryFromReader = function(msg, reader) { var value = /** @type {!Uint8Array} */ (reader.readBytes()); msg.setData(value); break; + case 3: + var value = /** @type {number} */ (reader.readInt64()); + msg.setSize(value); + break; default: reader.skipField(); break; @@ -2556,6 +2561,13 @@ proto.pb.Block.serializeBinaryToWriter = function(message, writer) { f ); } + f = message.getSize(); + if (f !== 0) { + writer.writeInt64( + 3, + f + ); + } }; @@ -2613,6 +2625,21 @@ proto.pb.Block.prototype.setData = function(value) { }; +/** + * optional int64 size = 3; + * @return {number} + */ +proto.pb.Block.prototype.getSize = function() { + return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0)); +}; + + +/** @param {number} value */ +proto.pb.Block.prototype.setSize = function(value) { + jspb.Message.setProto3IntField(this, 3, value); +}; + + /** * Generated by JsPbCodeGenerator. @@ -4569,7 +4596,8 @@ proto.pb.BSREQTYPE = { BS_PUT_MANY: 2, BS_GET: 3, BS_GET_MANY: 4, - BS_GET_ALL: 5 + BS_GET_ALL: 5, + BS_GET_STATS: 6 }; /** diff --git a/pb/node.proto b/pb/node.proto index 0cc6328..33984f6 100644 --- a/pb/node.proto +++ b/pb/node.proto @@ -172,6 +172,8 @@ enum BSREQTYPE { // BS_GET_ALL is used to retrieve all blocks from the store // It is the gRPC equivalent of Blockstore::AllKeysChan BS_GET_ALL = 5; + // BS_GET_STATS is used to retrieve statistics about individual blocks + BS_GET_STATS = 6; } // BSREQOPTS are options for blockstore requests @@ -189,7 +191,7 @@ message BlockstoreRequest { // optional request settings repeated BSREQOPTS reqOpts = 2; // cids of blocks - // sent by: BS_DELETE, BS_GET, BS_GET_MANY + // sent by: BS_DELETE, BS_GET, BS_GET_MANY, BS_GET_STATS repeated string cids = 3; // the data we are putting // sent by: BS_PUT, BS_PUT_MANY @@ -207,10 +209,14 @@ message BlockstoreResponse { // indicates the particular request type being made BSREQTYPE requestType = 1; // a copy of blocks from the blockstore - // sent by: BS_PUT, BS_PUT_MANY, BS_GET, BS_GET_MANY + // sent by: BS_PUT, BS_PUT_MANY, BS_GET, BS_GET_MANY, BS_GET_STATS, BS_GET_ALL + // // in the case of BS_PUT, and BS_PUT_MANY requests // the data field will be empty as this is only populated // by get requests + // + // in the case of BS_GET_STATS only the cid, and size params + // will be filled out, since we are just interested in the size repeated Block blocks = 2; } @@ -219,6 +225,10 @@ message Block { string cid = 1; // data is the actual contents of the block bytes data = 2; + // size of the block, only filled out by BS_GET_STATS + // since if we just want stats, we dont want to + // retrieve all teh data. + int64 size = 3; } // DAGREQTYPE indicates the particular DagAPI request being performed diff --git a/py/node_pb2.py b/py/node_pb2.py index 10c3d95..0748717 100644 --- a/py/node_pb2.py +++ b/py/node_pb2.py @@ -20,7 +20,7 @@ package='pb', syntax='proto3', serialized_options=None, - serialized_pb=b'\n\nnode.proto\x12\x02pb\x1a\nutil.proto\"\xde\x01\n\nP2PRequest\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.P2PREQTYPE\x12\x0b\n\x03\x61ll\x18\x02 \x01(\x08\x12\x0f\n\x07verbose\x18\x03 \x01(\x08\x12\x14\n\x0cprotocolName\x18\x04 \x01(\t\x12\x15\n\rlistenAddress\x18\x05 \x01(\t\x12\x15\n\rtargetAddress\x18\x06 \x01(\t\x12\x15\n\rremoteAddress\x18\x07 \x01(\t\x12\x1c\n\x14\x61llowCustomProtocols\x18\x08 \x01(\x08\x12\x14\n\x0creportPeerID\x18\t \x01(\x08\"z\n\x0bP2PResponse\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.P2PREQTYPE\x12\r\n\x05names\x18\x02 \x03(\t\x12\x13\n\x0b\x63onnsClosed\x18\x03 \x01(\x05\x12\"\n\x0bstreamInfos\x18\x04 \x03(\x0b\x32\r.pb.P2PLsInfo\"^\n\tP2PLsInfo\x12\x14\n\x0cprotocolName\x18\x01 \x01(\t\x12\x15\n\rlistenAddress\x18\x02 \x01(\t\x12\x15\n\rtargetAddress\x18\x03 \x01(\t\x12\r\n\x05local\x18\x04 \x01(\x08\"#\n\x10GetPeersResponse\x12\x0f\n\x07peerIDs\x18\x01 \x03(\t\"`\n\x0f\x43onnMgmtRequest\x12(\n\x0brequestType\x18\x01 \x01(\x0e\x32\x13.pb.CONNMGMTREQTYPE\x12\x12\n\nmultiAddrs\x18\x02 \x03(\t\x12\x0f\n\x07peerIDs\x18\x03 \x03(\t\"\xac\x02\n\x10\x43onnMgmtResponse\x12(\n\x0brequestType\x18\x01 \x01(\x0e\x32\x13.pb.CONNMGMTREQTYPE\x12\x36\n\tconnected\x18\x02 \x03(\x0b\x32#.pb.ConnMgmtResponse.ConnectedEntry\x12\x30\n\x06status\x18\x03 \x03(\x0b\x32 .pb.ConnMgmtResponse.StatusEntry\x12\x0f\n\x07peerIDs\x18\x04 \x03(\t\x1a\x30\n\x0e\x43onnectedEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x41\n\x0bStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.pb.ConnMgmtStatus:\x02\x38\x01\"6\n\x0e\x43onnMgmtStatus\x12\x14\n\x0c\x64isconnected\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\t\"^\n\rExtrasRequest\x12&\n\x0brequestType\x18\x01 \x01(\x0e\x32\x11.pb.EXTRASREQTYPE\x12%\n\rextrasFeature\x18\x02 \x01(\x0e\x32\x0e.pb.EXTRASTYPE\"\x99\x01\n\x11\x42lockstoreRequest\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.BSREQTYPE\x12\x1e\n\x07reqOpts\x18\x02 \x03(\x0e\x32\r.pb.BSREQOPTS\x12\x0c\n\x04\x63ids\x18\x03 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x03(\x0c\x12\x12\n\ncidVersion\x18\x05 \x01(\t\x12\x10\n\x08hashFunc\x18\x07 \x01(\t\"S\n\x12\x42lockstoreResponse\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.BSREQTYPE\x12\x19\n\x06\x62locks\x18\x02 \x03(\x0b\x32\t.pb.Block\"\"\n\x05\x42lock\x12\x0b\n\x03\x63id\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"\x80\x02\n\nDagRequest\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.DAGREQTYPE\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x16\n\x0eobjectEncoding\x18\x03 \x01(\t\x12\x1b\n\x13serializationFormat\x18\x04 \x01(\t\x12\x10\n\x08hashFunc\x18\x05 \x01(\t\x12\x12\n\ncidVersion\x18\x06 \x01(\x03\x12\x0c\n\x04hash\x18\x07 \x01(\t\x12(\n\x05links\x18\x08 \x03(\x0b\x32\x19.pb.DagRequest.LinksEntry\x1a,\n\nLinksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"p\n\x0b\x44\x61gResponse\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.DAGREQTYPE\x12\x0e\n\x06hashes\x18\x02 \x03(\t\x12\x0f\n\x07rawData\x18\x03 \x01(\x0c\x12\x1b\n\x05links\x18\x04 \x03(\x0b\x32\x0c.pb.IPLDLink\"4\n\x08IPLDLink\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x04\"5\n\x08IPLDNode\x12\x1b\n\x05links\x18\x02 \x03(\x0b\x32\x0c.pb.IPLDLink\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"W\n\x0fKeystoreRequest\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.KSREQTYPE\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"i\n\x10KeystoreResponse\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.KSREQTYPE\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\x12\x10\n\x08keyNames\x18\x03 \x03(\t\x12\x0b\n\x03has\x18\x04 \x01(\x08\"\x1e\n\x0ePersistRequest\x12\x0c\n\x04\x63ids\x18\x01 \x03(\t\"\xd1\x01\n\x0fPersistResponse\x12/\n\x06status\x18\x01 \x03(\x0b\x32\x1f.pb.PersistResponse.StatusEntry\x12/\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1f.pb.PersistResponse.ErrorsEntry\x1a-\n\x0bStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a-\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*8\n\nP2PREQTYPE\x12\t\n\x05\x43LOSE\x10\x00\x12\x0b\n\x07\x46ORWARD\x10\x01\x12\n\n\x06LISTEN\x10\x02\x12\x06\n\x02LS\x10\x03*U\n\x0f\x43ONNMGMTREQTYPE\x12\x0e\n\nCM_CONNECT\x10\x00\x12\x11\n\rCM_DISCONNECT\x10\x01\x12\r\n\tCM_STATUS\x10\x02\x12\x10\n\x0c\x43M_GET_PEERS\x10\x03*.\n\rEXTRASREQTYPE\x12\r\n\tEX_ENABLE\x10\x00\x12\x0e\n\nEX_DISABLE\x10\x01*?\n\nEXTRASTYPE\x12\x0c\n\x08IDENTIFY\x10\x00\x12\n\n\x06PUBSUB\x10\x01\x12\r\n\tDISCOVERY\x10\x02\x12\x08\n\x04MDNS\x10\x03*d\n\tBSREQTYPE\x12\r\n\tBS_DELETE\x10\x00\x12\n\n\x06\x42S_PUT\x10\x01\x12\x0f\n\x0b\x42S_PUT_MANY\x10\x02\x12\n\n\x06\x42S_GET\x10\x03\x12\x0f\n\x0b\x42S_GET_MANY\x10\x04\x12\x0e\n\nBS_GET_ALL\x10\x05*&\n\tBSREQOPTS\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x42S_FORCE\x10\x01*^\n\nDAGREQTYPE\x12\x0b\n\x07\x44\x41G_PUT\x10\x00\x12\x0b\n\x07\x44\x41G_GET\x10\x01\x12\x10\n\x0c\x44\x41G_NEW_NODE\x10\x02\x12\x11\n\rDAG_ADD_LINKS\x10\x03\x12\x11\n\rDAG_GET_LINKS\x10\x04*K\n\tKSREQTYPE\x12\n\n\x06KS_HAS\x10\x00\x12\n\n\x06KS_GET\x10\x01\x12\n\n\x06KS_PUT\x10\x02\x12\r\n\tKS_DELETE\x10\x03\x12\x0b\n\x07KS_LIST\x10\x04\x32\xb7\x03\n\x07NodeAPI\x12\x37\n\x08\x43onnMgmt\x12\x13.pb.ConnMgmtRequest\x1a\x14.pb.ConnMgmtResponse\"\x00\x12(\n\x06\x45xtras\x12\x11.pb.ExtrasRequest\x1a\t.pb.Empty\"\x00\x12(\n\x03P2P\x12\x0e.pb.P2PRequest\x1a\x0f.pb.P2PResponse\"\x00\x12=\n\nBlockstore\x12\x15.pb.BlockstoreRequest\x1a\x16.pb.BlockstoreResponse\"\x00\x12G\n\x10\x42lockstoreStream\x12\x15.pb.BlockstoreRequest\x1a\x16.pb.BlockstoreResponse\"\x00(\x01\x30\x01\x12(\n\x03\x44\x61g\x12\x0e.pb.DagRequest\x1a\x0f.pb.DagResponse\"\x00\x12\x37\n\x08Keystore\x12\x13.pb.KeystoreRequest\x1a\x14.pb.KeystoreResponse\"\x00\x12\x34\n\x07Persist\x12\x12.pb.PersistRequest\x1a\x13.pb.PersistResponse\"\x00\x62\x06proto3' + serialized_pb=b'\n\nnode.proto\x12\x02pb\x1a\nutil.proto\"\xde\x01\n\nP2PRequest\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.P2PREQTYPE\x12\x0b\n\x03\x61ll\x18\x02 \x01(\x08\x12\x0f\n\x07verbose\x18\x03 \x01(\x08\x12\x14\n\x0cprotocolName\x18\x04 \x01(\t\x12\x15\n\rlistenAddress\x18\x05 \x01(\t\x12\x15\n\rtargetAddress\x18\x06 \x01(\t\x12\x15\n\rremoteAddress\x18\x07 \x01(\t\x12\x1c\n\x14\x61llowCustomProtocols\x18\x08 \x01(\x08\x12\x14\n\x0creportPeerID\x18\t \x01(\x08\"z\n\x0bP2PResponse\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.P2PREQTYPE\x12\r\n\x05names\x18\x02 \x03(\t\x12\x13\n\x0b\x63onnsClosed\x18\x03 \x01(\x05\x12\"\n\x0bstreamInfos\x18\x04 \x03(\x0b\x32\r.pb.P2PLsInfo\"^\n\tP2PLsInfo\x12\x14\n\x0cprotocolName\x18\x01 \x01(\t\x12\x15\n\rlistenAddress\x18\x02 \x01(\t\x12\x15\n\rtargetAddress\x18\x03 \x01(\t\x12\r\n\x05local\x18\x04 \x01(\x08\"#\n\x10GetPeersResponse\x12\x0f\n\x07peerIDs\x18\x01 \x03(\t\"`\n\x0f\x43onnMgmtRequest\x12(\n\x0brequestType\x18\x01 \x01(\x0e\x32\x13.pb.CONNMGMTREQTYPE\x12\x12\n\nmultiAddrs\x18\x02 \x03(\t\x12\x0f\n\x07peerIDs\x18\x03 \x03(\t\"\xac\x02\n\x10\x43onnMgmtResponse\x12(\n\x0brequestType\x18\x01 \x01(\x0e\x32\x13.pb.CONNMGMTREQTYPE\x12\x36\n\tconnected\x18\x02 \x03(\x0b\x32#.pb.ConnMgmtResponse.ConnectedEntry\x12\x30\n\x06status\x18\x03 \x03(\x0b\x32 .pb.ConnMgmtResponse.StatusEntry\x12\x0f\n\x07peerIDs\x18\x04 \x03(\t\x1a\x30\n\x0e\x43onnectedEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a\x41\n\x0bStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12!\n\x05value\x18\x02 \x01(\x0b\x32\x12.pb.ConnMgmtStatus:\x02\x38\x01\"6\n\x0e\x43onnMgmtStatus\x12\x14\n\x0c\x64isconnected\x18\x01 \x01(\x08\x12\x0e\n\x06reason\x18\x02 \x01(\t\"^\n\rExtrasRequest\x12&\n\x0brequestType\x18\x01 \x01(\x0e\x32\x11.pb.EXTRASREQTYPE\x12%\n\rextrasFeature\x18\x02 \x01(\x0e\x32\x0e.pb.EXTRASTYPE\"\x99\x01\n\x11\x42lockstoreRequest\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.BSREQTYPE\x12\x1e\n\x07reqOpts\x18\x02 \x03(\x0e\x32\r.pb.BSREQOPTS\x12\x0c\n\x04\x63ids\x18\x03 \x03(\t\x12\x0c\n\x04\x64\x61ta\x18\x04 \x03(\x0c\x12\x12\n\ncidVersion\x18\x05 \x01(\t\x12\x10\n\x08hashFunc\x18\x07 \x01(\t\"S\n\x12\x42lockstoreResponse\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.BSREQTYPE\x12\x19\n\x06\x62locks\x18\x02 \x03(\x0b\x32\t.pb.Block\"0\n\x05\x42lock\x12\x0b\n\x03\x63id\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x0c\n\x04size\x18\x03 \x01(\x03\"\x80\x02\n\nDagRequest\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.DAGREQTYPE\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x16\n\x0eobjectEncoding\x18\x03 \x01(\t\x12\x1b\n\x13serializationFormat\x18\x04 \x01(\t\x12\x10\n\x08hashFunc\x18\x05 \x01(\t\x12\x12\n\ncidVersion\x18\x06 \x01(\x03\x12\x0c\n\x04hash\x18\x07 \x01(\t\x12(\n\x05links\x18\x08 \x03(\x0b\x32\x19.pb.DagRequest.LinksEntry\x1a,\n\nLinksEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"p\n\x0b\x44\x61gResponse\x12#\n\x0brequestType\x18\x01 \x01(\x0e\x32\x0e.pb.DAGREQTYPE\x12\x0e\n\x06hashes\x18\x02 \x03(\t\x12\x0f\n\x07rawData\x18\x03 \x01(\x0c\x12\x1b\n\x05links\x18\x04 \x03(\x0b\x32\x0c.pb.IPLDLink\"4\n\x08IPLDLink\x12\x0c\n\x04hash\x18\x01 \x01(\x0c\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0c\n\x04size\x18\x03 \x01(\x04\"5\n\x08IPLDNode\x12\x1b\n\x05links\x18\x02 \x03(\x0b\x32\x0c.pb.IPLDLink\x12\x0c\n\x04\x64\x61ta\x18\x01 \x01(\x0c\"W\n\x0fKeystoreRequest\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.KSREQTYPE\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x12\n\nprivateKey\x18\x03 \x01(\x0c\"i\n\x10KeystoreResponse\x12\"\n\x0brequestType\x18\x01 \x01(\x0e\x32\r.pb.KSREQTYPE\x12\x12\n\nprivateKey\x18\x02 \x01(\x0c\x12\x10\n\x08keyNames\x18\x03 \x03(\t\x12\x0b\n\x03has\x18\x04 \x01(\x08\"\x1e\n\x0ePersistRequest\x12\x0c\n\x04\x63ids\x18\x01 \x03(\t\"\xd1\x01\n\x0fPersistResponse\x12/\n\x06status\x18\x01 \x03(\x0b\x32\x1f.pb.PersistResponse.StatusEntry\x12/\n\x06\x65rrors\x18\x02 \x03(\x0b\x32\x1f.pb.PersistResponse.ErrorsEntry\x1a-\n\x0bStatusEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\x08:\x02\x38\x01\x1a-\n\x0b\x45rrorsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01*8\n\nP2PREQTYPE\x12\t\n\x05\x43LOSE\x10\x00\x12\x0b\n\x07\x46ORWARD\x10\x01\x12\n\n\x06LISTEN\x10\x02\x12\x06\n\x02LS\x10\x03*U\n\x0f\x43ONNMGMTREQTYPE\x12\x0e\n\nCM_CONNECT\x10\x00\x12\x11\n\rCM_DISCONNECT\x10\x01\x12\r\n\tCM_STATUS\x10\x02\x12\x10\n\x0c\x43M_GET_PEERS\x10\x03*.\n\rEXTRASREQTYPE\x12\r\n\tEX_ENABLE\x10\x00\x12\x0e\n\nEX_DISABLE\x10\x01*?\n\nEXTRASTYPE\x12\x0c\n\x08IDENTIFY\x10\x00\x12\n\n\x06PUBSUB\x10\x01\x12\r\n\tDISCOVERY\x10\x02\x12\x08\n\x04MDNS\x10\x03*v\n\tBSREQTYPE\x12\r\n\tBS_DELETE\x10\x00\x12\n\n\x06\x42S_PUT\x10\x01\x12\x0f\n\x0b\x42S_PUT_MANY\x10\x02\x12\n\n\x06\x42S_GET\x10\x03\x12\x0f\n\x0b\x42S_GET_MANY\x10\x04\x12\x0e\n\nBS_GET_ALL\x10\x05\x12\x10\n\x0c\x42S_GET_STATS\x10\x06*&\n\tBSREQOPTS\x12\x0b\n\x07\x44\x45\x46\x41ULT\x10\x00\x12\x0c\n\x08\x42S_FORCE\x10\x01*^\n\nDAGREQTYPE\x12\x0b\n\x07\x44\x41G_PUT\x10\x00\x12\x0b\n\x07\x44\x41G_GET\x10\x01\x12\x10\n\x0c\x44\x41G_NEW_NODE\x10\x02\x12\x11\n\rDAG_ADD_LINKS\x10\x03\x12\x11\n\rDAG_GET_LINKS\x10\x04*K\n\tKSREQTYPE\x12\n\n\x06KS_HAS\x10\x00\x12\n\n\x06KS_GET\x10\x01\x12\n\n\x06KS_PUT\x10\x02\x12\r\n\tKS_DELETE\x10\x03\x12\x0b\n\x07KS_LIST\x10\x04\x32\xb7\x03\n\x07NodeAPI\x12\x37\n\x08\x43onnMgmt\x12\x13.pb.ConnMgmtRequest\x1a\x14.pb.ConnMgmtResponse\"\x00\x12(\n\x06\x45xtras\x12\x11.pb.ExtrasRequest\x1a\t.pb.Empty\"\x00\x12(\n\x03P2P\x12\x0e.pb.P2PRequest\x1a\x0f.pb.P2PResponse\"\x00\x12=\n\nBlockstore\x12\x15.pb.BlockstoreRequest\x1a\x16.pb.BlockstoreResponse\"\x00\x12G\n\x10\x42lockstoreStream\x12\x15.pb.BlockstoreRequest\x1a\x16.pb.BlockstoreResponse\"\x00(\x01\x30\x01\x12(\n\x03\x44\x61g\x12\x0e.pb.DagRequest\x1a\x0f.pb.DagResponse\"\x00\x12\x37\n\x08Keystore\x12\x13.pb.KeystoreRequest\x1a\x14.pb.KeystoreResponse\"\x00\x12\x34\n\x07Persist\x12\x12.pb.PersistRequest\x1a\x13.pb.PersistResponse\"\x00\x62\x06proto3' , dependencies=[util__pb2.DESCRIPTOR,]) @@ -49,8 +49,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2264, - serialized_end=2320, + serialized_start=2278, + serialized_end=2334, ) _sym_db.RegisterEnumDescriptor(_P2PREQTYPE) @@ -80,8 +80,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2322, - serialized_end=2407, + serialized_start=2336, + serialized_end=2421, ) _sym_db.RegisterEnumDescriptor(_CONNMGMTREQTYPE) @@ -103,8 +103,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2409, - serialized_end=2455, + serialized_start=2423, + serialized_end=2469, ) _sym_db.RegisterEnumDescriptor(_EXTRASREQTYPE) @@ -134,8 +134,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2457, - serialized_end=2520, + serialized_start=2471, + serialized_end=2534, ) _sym_db.RegisterEnumDescriptor(_EXTRASTYPE) @@ -170,11 +170,15 @@ name='BS_GET_ALL', index=5, number=5, serialized_options=None, type=None), + _descriptor.EnumValueDescriptor( + name='BS_GET_STATS', index=6, number=6, + serialized_options=None, + type=None), ], containing_type=None, serialized_options=None, - serialized_start=2522, - serialized_end=2622, + serialized_start=2536, + serialized_end=2654, ) _sym_db.RegisterEnumDescriptor(_BSREQTYPE) @@ -196,8 +200,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2624, - serialized_end=2662, + serialized_start=2656, + serialized_end=2694, ) _sym_db.RegisterEnumDescriptor(_BSREQOPTS) @@ -231,8 +235,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2664, - serialized_end=2758, + serialized_start=2696, + serialized_end=2790, ) _sym_db.RegisterEnumDescriptor(_DAGREQTYPE) @@ -266,8 +270,8 @@ ], containing_type=None, serialized_options=None, - serialized_start=2760, - serialized_end=2835, + serialized_start=2792, + serialized_end=2867, ) _sym_db.RegisterEnumDescriptor(_KSREQTYPE) @@ -292,6 +296,7 @@ BS_GET = 3 BS_GET_MANY = 4 BS_GET_ALL = 5 +BS_GET_STATS = 6 DEFAULT = 0 BS_FORCE = 1 DAG_PUT = 0 @@ -901,6 +906,13 @@ message_type=None, enum_type=None, containing_type=None, is_extension=False, extension_scope=None, serialized_options=None, file=DESCRIPTOR), + _descriptor.FieldDescriptor( + name='size', full_name='pb.Block.size', index=2, + number=3, type=3, cpp_type=2, label=1, + has_default_value=False, default_value=0, + message_type=None, enum_type=None, containing_type=None, + is_extension=False, extension_scope=None, + serialized_options=None, file=DESCRIPTOR), ], extensions=[ ], @@ -914,7 +926,7 @@ oneofs=[ ], serialized_start=1306, - serialized_end=1340, + serialized_end=1354, ) @@ -951,8 +963,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1555, - serialized_end=1599, + serialized_start=1569, + serialized_end=1613, ) _DAGREQUEST = _descriptor.Descriptor( @@ -1030,8 +1042,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1343, - serialized_end=1599, + serialized_start=1357, + serialized_end=1613, ) @@ -1082,8 +1094,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1601, - serialized_end=1713, + serialized_start=1615, + serialized_end=1727, ) @@ -1127,8 +1139,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1715, - serialized_end=1767, + serialized_start=1729, + serialized_end=1781, ) @@ -1165,8 +1177,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1769, - serialized_end=1822, + serialized_start=1783, + serialized_end=1836, ) @@ -1210,8 +1222,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1824, - serialized_end=1911, + serialized_start=1838, + serialized_end=1925, ) @@ -1262,8 +1274,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=1913, - serialized_end=2018, + serialized_start=1927, + serialized_end=2032, ) @@ -1293,8 +1305,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2020, - serialized_end=2050, + serialized_start=2034, + serialized_end=2064, ) @@ -1331,8 +1343,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2170, - serialized_end=2215, + serialized_start=2184, + serialized_end=2229, ) _PERSISTRESPONSE_ERRORSENTRY = _descriptor.Descriptor( @@ -1368,8 +1380,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2217, - serialized_end=2262, + serialized_start=2231, + serialized_end=2276, ) _PERSISTRESPONSE = _descriptor.Descriptor( @@ -1405,8 +1417,8 @@ extension_ranges=[], oneofs=[ ], - serialized_start=2053, - serialized_end=2262, + serialized_start=2067, + serialized_end=2276, ) _P2PREQUEST.fields_by_name['requestType'].enum_type = _P2PREQTYPE @@ -1652,8 +1664,8 @@ file=DESCRIPTOR, index=0, serialized_options=None, - serialized_start=2838, - serialized_end=3277, + serialized_start=2870, + serialized_end=3309, methods=[ _descriptor.MethodDescriptor( name='ConnMgmt', diff --git a/rs/src/node.rs b/rs/src/node.rs index ca4680c..e243a92 100644 --- a/rs/src/node.rs +++ b/rs/src/node.rs @@ -2714,6 +2714,7 @@ pub struct Block { // message fields pub cid: ::std::string::String, pub data: ::std::vec::Vec, + pub size: i64, // special fields pub unknown_fields: ::protobuf::UnknownFields, pub cached_size: ::protobuf::CachedSize, @@ -2781,6 +2782,21 @@ impl Block { pub fn take_data(&mut self) -> ::std::vec::Vec { ::std::mem::replace(&mut self.data, ::std::vec::Vec::new()) } + + // int64 size = 3; + + + pub fn get_size(&self) -> i64 { + self.size + } + pub fn clear_size(&mut self) { + self.size = 0; + } + + // Param is passed by value, moved + pub fn set_size(&mut self, v: i64) { + self.size = v; + } } impl ::protobuf::Message for Block { @@ -2798,6 +2814,13 @@ impl ::protobuf::Message for Block { 2 => { ::protobuf::rt::read_singular_proto3_bytes_into(wire_type, is, &mut self.data)?; }, + 3 => { + if wire_type != ::protobuf::wire_format::WireTypeVarint { + return ::std::result::Result::Err(::protobuf::rt::unexpected_wire_type(wire_type)); + } + let tmp = is.read_int64()?; + self.size = tmp; + }, _ => { ::protobuf::rt::read_unknown_or_skip_group(field_number, wire_type, is, self.mut_unknown_fields())?; }, @@ -2816,6 +2839,9 @@ impl ::protobuf::Message for Block { if !self.data.is_empty() { my_size += ::protobuf::rt::bytes_size(2, &self.data); } + if self.size != 0 { + my_size += ::protobuf::rt::value_size(3, self.size, ::protobuf::wire_format::WireTypeVarint); + } my_size += ::protobuf::rt::unknown_fields_size(self.get_unknown_fields()); self.cached_size.set(my_size); my_size @@ -2828,6 +2854,9 @@ impl ::protobuf::Message for Block { if !self.data.is_empty() { os.write_bytes(2, &self.data)?; } + if self.size != 0 { + os.write_int64(3, self.size)?; + } os.write_unknown_fields(self.get_unknown_fields())?; ::std::result::Result::Ok(()) } @@ -2880,6 +2909,11 @@ impl ::protobuf::Message for Block { |m: &Block| { &m.data }, |m: &mut Block| { &mut m.data }, )); + fields.push(::protobuf::reflect::accessor::make_simple_field_accessor::<_, ::protobuf::types::ProtobufTypeInt64>( + "size", + |m: &Block| { &m.size }, + |m: &mut Block| { &mut m.size }, + )); ::protobuf::reflect::MessageDescriptor::new::( "Block", fields, @@ -2904,6 +2938,7 @@ impl ::protobuf::Clear for Block { fn clear(&mut self) { self.cid.clear(); self.data.clear(); + self.size = 0; self.unknown_fields.clear(); } } @@ -5247,6 +5282,7 @@ pub enum BSREQTYPE { BS_GET = 3, BS_GET_MANY = 4, BS_GET_ALL = 5, + BS_GET_STATS = 6, } impl ::protobuf::ProtobufEnum for BSREQTYPE { @@ -5262,6 +5298,7 @@ impl ::protobuf::ProtobufEnum for BSREQTYPE { 3 => ::std::option::Option::Some(BSREQTYPE::BS_GET), 4 => ::std::option::Option::Some(BSREQTYPE::BS_GET_MANY), 5 => ::std::option::Option::Some(BSREQTYPE::BS_GET_ALL), + 6 => ::std::option::Option::Some(BSREQTYPE::BS_GET_STATS), _ => ::std::option::Option::None } } @@ -5274,6 +5311,7 @@ impl ::protobuf::ProtobufEnum for BSREQTYPE { BSREQTYPE::BS_GET, BSREQTYPE::BS_GET_MANY, BSREQTYPE::BS_GET_ALL, + BSREQTYPE::BS_GET_STATS, ]; values } @@ -5530,585 +5568,600 @@ static file_descriptor_proto_data: &'static [u8] = b"\ \x12\x1e\n\ncidVersion\x18\x05\x20\x01(\tR\ncidVersion\x12\x1a\n\x08hash\ Func\x18\x07\x20\x01(\tR\x08hashFunc\"h\n\x12BlockstoreResponse\x12/\n\ \x0brequestType\x18\x01\x20\x01(\x0e2\r.pb.BSREQTYPER\x0brequestType\x12\ - !\n\x06blocks\x18\x02\x20\x03(\x0b2\t.pb.BlockR\x06blocks\"-\n\x05Block\ + !\n\x06blocks\x18\x02\x20\x03(\x0b2\t.pb.BlockR\x06blocks\"A\n\x05Block\ \x12\x10\n\x03cid\x18\x01\x20\x01(\tR\x03cid\x12\x12\n\x04data\x18\x02\ - \x20\x01(\x0cR\x04data\"\xe7\x02\n\nDagRequest\x120\n\x0brequestType\x18\ - \x01\x20\x01(\x0e2\x0e.pb.DAGREQTYPER\x0brequestType\x12\x12\n\x04data\ - \x18\x02\x20\x01(\x0cR\x04data\x12&\n\x0eobjectEncoding\x18\x03\x20\x01(\ - \tR\x0eobjectEncoding\x120\n\x13serializationFormat\x18\x04\x20\x01(\tR\ - \x13serializationFormat\x12\x1a\n\x08hashFunc\x18\x05\x20\x01(\tR\x08has\ - hFunc\x12\x1e\n\ncidVersion\x18\x06\x20\x01(\x03R\ncidVersion\x12\x12\n\ - \x04hash\x18\x07\x20\x01(\tR\x04hash\x12/\n\x05links\x18\x08\x20\x03(\ - \x0b2\x19.pb.DagRequest.LinksEntryR\x05links\x1a8\n\nLinksEntry\x12\x10\ - \n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\ - \tR\x05value:\x028\x01\"\x95\x01\n\x0bDagResponse\x120\n\x0brequestType\ - \x18\x01\x20\x01(\x0e2\x0e.pb.DAGREQTYPER\x0brequestType\x12\x16\n\x06ha\ - shes\x18\x02\x20\x03(\tR\x06hashes\x12\x18\n\x07rawData\x18\x03\x20\x01(\ - \x0cR\x07rawData\x12\"\n\x05links\x18\x04\x20\x03(\x0b2\x0c.pb.IPLDLinkR\ - \x05links\"F\n\x08IPLDLink\x12\x12\n\x04hash\x18\x01\x20\x01(\x0cR\x04ha\ - sh\x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x12\n\x04size\x18\ - \x03\x20\x01(\x04R\x04size\"B\n\x08IPLDNode\x12\"\n\x05links\x18\x02\x20\ - \x03(\x0b2\x0c.pb.IPLDLinkR\x05links\x12\x12\n\x04data\x18\x01\x20\x01(\ - \x0cR\x04data\"v\n\x0fKeystoreRequest\x12/\n\x0brequestType\x18\x01\x20\ - \x01(\x0e2\r.pb.KSREQTYPER\x0brequestType\x12\x12\n\x04name\x18\x02\x20\ - \x01(\tR\x04name\x12\x1e\n\nprivateKey\x18\x03\x20\x01(\x0cR\nprivateKey\ - \"\x91\x01\n\x10KeystoreResponse\x12/\n\x0brequestType\x18\x01\x20\x01(\ - \x0e2\r.pb.KSREQTYPER\x0brequestType\x12\x1e\n\nprivateKey\x18\x02\x20\ - \x01(\x0cR\nprivateKey\x12\x1a\n\x08keyNames\x18\x03\x20\x03(\tR\x08keyN\ - ames\x12\x10\n\x03has\x18\x04\x20\x01(\x08R\x03has\"$\n\x0ePersistReques\ - t\x12\x12\n\x04cids\x18\x01\x20\x03(\tR\x04cids\"\xf9\x01\n\x0fPersistRe\ - sponse\x127\n\x06status\x18\x01\x20\x03(\x0b2\x1f.pb.PersistResponse.Sta\ - tusEntryR\x06status\x127\n\x06errors\x18\x02\x20\x03(\x0b2\x1f.pb.Persis\ - tResponse.ErrorsEntryR\x06errors\x1a9\n\x0bStatusEntry\x12\x10\n\x03key\ - \x18\x01\x20\x01(\tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\x08R\x05\ - value:\x028\x01\x1a9\n\x0bErrorsEntry\x12\x10\n\x03key\x18\x01\x20\x01(\ - \tR\x03key\x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01*8\n\ - \nP2PREQTYPE\x12\t\n\x05CLOSE\x10\0\x12\x0b\n\x07FORWARD\x10\x01\x12\n\n\ - \x06LISTEN\x10\x02\x12\x06\n\x02LS\x10\x03*U\n\x0fCONNMGMTREQTYPE\x12\ - \x0e\n\nCM_CONNECT\x10\0\x12\x11\n\rCM_DISCONNECT\x10\x01\x12\r\n\tCM_ST\ - ATUS\x10\x02\x12\x10\n\x0cCM_GET_PEERS\x10\x03*.\n\rEXTRASREQTYPE\x12\r\ - \n\tEX_ENABLE\x10\0\x12\x0e\n\nEX_DISABLE\x10\x01*?\n\nEXTRASTYPE\x12\ - \x0c\n\x08IDENTIFY\x10\0\x12\n\n\x06PUBSUB\x10\x01\x12\r\n\tDISCOVERY\ - \x10\x02\x12\x08\n\x04MDNS\x10\x03*d\n\tBSREQTYPE\x12\r\n\tBS_DELETE\x10\ - \0\x12\n\n\x06BS_PUT\x10\x01\x12\x0f\n\x0bBS_PUT_MANY\x10\x02\x12\n\n\ - \x06BS_GET\x10\x03\x12\x0f\n\x0bBS_GET_MANY\x10\x04\x12\x0e\n\nBS_GET_AL\ - L\x10\x05*&\n\tBSREQOPTS\x12\x0b\n\x07DEFAULT\x10\0\x12\x0c\n\x08BS_FORC\ - E\x10\x01*^\n\nDAGREQTYPE\x12\x0b\n\x07DAG_PUT\x10\0\x12\x0b\n\x07DAG_GE\ - T\x10\x01\x12\x10\n\x0cDAG_NEW_NODE\x10\x02\x12\x11\n\rDAG_ADD_LINKS\x10\ - \x03\x12\x11\n\rDAG_GET_LINKS\x10\x04*K\n\tKSREQTYPE\x12\n\n\x06KS_HAS\ - \x10\0\x12\n\n\x06KS_GET\x10\x01\x12\n\n\x06KS_PUT\x10\x02\x12\r\n\tKS_D\ - ELETE\x10\x03\x12\x0b\n\x07KS_LIST\x10\x042\xb7\x03\n\x07NodeAPI\x127\n\ - \x08ConnMgmt\x12\x13.pb.ConnMgmtRequest\x1a\x14.pb.ConnMgmtResponse\"\0\ - \x12(\n\x06Extras\x12\x11.pb.ExtrasRequest\x1a\t.pb.Empty\"\0\x12(\n\x03\ - P2P\x12\x0e.pb.P2PRequest\x1a\x0f.pb.P2PResponse\"\0\x12=\n\nBlockstore\ - \x12\x15.pb.BlockstoreRequest\x1a\x16.pb.BlockstoreResponse\"\0\x12G\n\ - \x10BlockstoreStream\x12\x15.pb.BlockstoreRequest\x1a\x16.pb.BlockstoreR\ - esponse\"\0(\x010\x01\x12(\n\x03Dag\x12\x0e.pb.DagRequest\x1a\x0f.pb.Dag\ - Response\"\0\x127\n\x08Keystore\x12\x13.pb.KeystoreRequest\x1a\x14.pb.Ke\ - ystoreResponse\"\0\x124\n\x07Persist\x12\x12.pb.PersistRequest\x1a\x13.p\ - b.PersistResponse\"\0J\xd8u\n\x07\x12\x05\0\0\xde\x02\x01\n\x08\n\x01\ - \x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x01\x08\n\n\t\n\x02\x03\0\ - \x12\x03\x02\x07\x13\nO\n\x02\x06\0\x12\x04\x05\0\x19\x01\x1aC\x20NodeAP\ - I\x20provide\x20an\x20API\x20to\x20control\x20the\x20underlying\x20custo\ - m\x20ipfs\x20node\n\n\n\n\x03\x06\0\x01\x12\x03\x05\x08\x0f\n@\n\x04\x06\ - \0\x02\0\x12\x03\x07\x04@\x1a3\x20ConnMgmt\x20provides\x20control\x20ove\ - r\x20libp2p\x20connections\n\n\x0c\n\x05\x06\0\x02\0\x01\x12\x03\x07\x08\ - \x10\n\x0c\n\x05\x06\0\x02\0\x02\x12\x03\x07\x11\x20\n\x0c\n\x05\x06\0\ - \x02\0\x03\x12\x03\x07+;\nC\n\x04\x06\0\x02\x01\x12\x03\t\x041\x1a6\x20E\ - xtras\x20provide\x20control\x20over\x20node\x20extras\x20capabilities\n\ - \n\x0c\n\x05\x06\0\x02\x01\x01\x12\x03\t\x08\x0e\n\x0c\n\x05\x06\0\x02\ - \x01\x02\x12\x03\t\x0f\x1c\n\x0c\n\x05\x06\0\x02\x01\x03\x12\x03\t',\n\ - \xdf\x01\n\x04\x06\0\x02\x02\x12\x03\r\x041\x1a\xd1\x01\x20P2P\x20allows\ - \x20control\x20of\x20generalized\x20p2p\x20streams\x20for\x20tcp/udp\x20\ - based\x20protocol.\n\x20By\x20using\x20this\x20RPC,\x20we\x20can\x20tunn\ - el\x20traffic\x20similar\x20to\x20ssh\x20tunneling\n\x20except\x20using\ - \x20libp2p\x20as\x20the\x20transport\x20layer,\x20and\x20and\x20tcp/udp\ - \x20port.\n\n\x0c\n\x05\x06\0\x02\x02\x01\x12\x03\r\x08\x0b\n\x0c\n\x05\ - \x06\0\x02\x02\x02\x12\x03\r\x0c\x16\n\x0c\n\x05\x06\0\x02\x02\x03\x12\ - \x03\r!,\nR\n\x04\x06\0\x02\x03\x12\x03\x0f\x04F\x1aE\x20Blockstore\x20a\ - llows\x20low-level\x20management\x20of\x20the\x20underlying\x20blockstor\ - e\n\n\x0c\n\x05\x06\0\x02\x03\x01\x12\x03\x0f\x08\x12\n\x0c\n\x05\x06\0\ - \x02\x03\x02\x12\x03\x0f\x13$\n\x0c\n\x05\x06\0\x02\x03\x03\x12\x03\x0f/\ - A\n\x87\x01\n\x04\x06\0\x02\x04\x12\x03\x12\x04Z\x1az\x20BlockstoreStrea\ - m\x20is\x20akin\x20to\x20Blockstore,\x20except\x20streamable\n\x20Once\ - \x20v4\x20is\x20out,\x20condense\x20this\x20+\x20blockstore\x20into\x20a\ - \x20single\x20call\n\n\x0c\n\x05\x06\0\x02\x04\x01\x12\x03\x12\x08\x18\n\ - \x0c\n\x05\x06\0\x02\x04\x05\x12\x03\x12\x19\x1f\n\x0c\n\x05\x06\0\x02\ - \x04\x02\x12\x03\x12\x201\n\x0c\n\x05\x06\0\x02\x04\x06\x12\x03\x12\x01\x1aR\x20P2PRequest\x20is\x20a\x20request\x20m\ - essage\x20holding\x20the\x20details\x20of\x20a\x20particular\x20P2P\x20r\ - pc\x20call\n\n\n\n\x03\x04\0\x01\x12\x03(\x08\x12\n)\n\x04\x04\0\x02\0\ - \x12\x03*\x04\x1f\x1a\x1c\x20indicates\x20the\x20request\x20type\n\n\r\n\ - \x05\x04\0\x02\0\x04\x12\x04*\x04(\x14\n\x0c\n\x05\x04\0\x02\0\x06\x12\ - \x03*\x04\x0e\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03*\x0f\x1a\n\x0c\n\x05\ - \x04\0\x02\0\x03\x12\x03*\x1d\x1e\n(\n\x04\x04\0\x02\x01\x12\x03,\x04\ - \x11\x1a\x1b\x20used\x20by:\x20P2PREQTYPE.CLOSE\n\n\r\n\x05\x04\0\x02\ - \x01\x04\x12\x04,\x04*\x1f\n\x0c\n\x05\x04\0\x02\x01\x05\x12\x03,\x04\ - \x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03,\t\x0c\n\x0c\n\x05\x04\0\x02\ - \x01\x03\x12\x03,\x0f\x10\n%\n\x04\x04\0\x02\x02\x12\x03.\x04\x15\x1a\ - \x18\x20used\x20by:\x20P2PREQTYPE.LS\n\n\r\n\x05\x04\0\x02\x02\x04\x12\ - \x04.\x04,\x11\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03.\x04\x08\n\x0c\n\ - \x05\x04\0\x02\x02\x01\x12\x03.\t\x10\n\x0c\n\x05\x04\0\x02\x02\x03\x12\ - \x03.\x13\x14\nO\n\x04\x04\0\x02\x03\x12\x030\x04\x1c\x1aB\x20used\x20by\ - :\x20P2PREQTYPE.CLOSE,\x20P2PREQTYPE.FORWARD,\x20P2PREQTYPE.LISTEN\n\n\r\ - \n\x05\x04\0\x02\x03\x04\x12\x040\x04.\x15\n\x0c\n\x05\x04\0\x02\x03\x05\ - \x12\x030\x04\n\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x030\x0b\x17\n\x0c\n\ - \x05\x04\0\x02\x03\x03\x12\x030\x1a\x1b\n^\n\x04\x04\0\x02\x04\x12\x033\ + \x20\x01(\x0cR\x04data\x12\x12\n\x04size\x18\x03\x20\x01(\x03R\x04size\"\ + \xe7\x02\n\nDagRequest\x120\n\x0brequestType\x18\x01\x20\x01(\x0e2\x0e.p\ + b.DAGREQTYPER\x0brequestType\x12\x12\n\x04data\x18\x02\x20\x01(\x0cR\x04\ + data\x12&\n\x0eobjectEncoding\x18\x03\x20\x01(\tR\x0eobjectEncoding\x120\ + \n\x13serializationFormat\x18\x04\x20\x01(\tR\x13serializationFormat\x12\ + \x1a\n\x08hashFunc\x18\x05\x20\x01(\tR\x08hashFunc\x12\x1e\n\ncidVersion\ + \x18\x06\x20\x01(\x03R\ncidVersion\x12\x12\n\x04hash\x18\x07\x20\x01(\tR\ + \x04hash\x12/\n\x05links\x18\x08\x20\x03(\x0b2\x19.pb.DagRequest.LinksEn\ + tryR\x05links\x1a8\n\nLinksEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\ + \x03key\x12\x14\n\x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01\"\x95\ + \x01\n\x0bDagResponse\x120\n\x0brequestType\x18\x01\x20\x01(\x0e2\x0e.pb\ + .DAGREQTYPER\x0brequestType\x12\x16\n\x06hashes\x18\x02\x20\x03(\tR\x06h\ + ashes\x12\x18\n\x07rawData\x18\x03\x20\x01(\x0cR\x07rawData\x12\"\n\x05l\ + inks\x18\x04\x20\x03(\x0b2\x0c.pb.IPLDLinkR\x05links\"F\n\x08IPLDLink\ + \x12\x12\n\x04hash\x18\x01\x20\x01(\x0cR\x04hash\x12\x12\n\x04name\x18\ + \x02\x20\x01(\tR\x04name\x12\x12\n\x04size\x18\x03\x20\x01(\x04R\x04size\ + \"B\n\x08IPLDNode\x12\"\n\x05links\x18\x02\x20\x03(\x0b2\x0c.pb.IPLDLink\ + R\x05links\x12\x12\n\x04data\x18\x01\x20\x01(\x0cR\x04data\"v\n\x0fKeyst\ + oreRequest\x12/\n\x0brequestType\x18\x01\x20\x01(\x0e2\r.pb.KSREQTYPER\ + \x0brequestType\x12\x12\n\x04name\x18\x02\x20\x01(\tR\x04name\x12\x1e\n\ + \nprivateKey\x18\x03\x20\x01(\x0cR\nprivateKey\"\x91\x01\n\x10KeystoreRe\ + sponse\x12/\n\x0brequestType\x18\x01\x20\x01(\x0e2\r.pb.KSREQTYPER\x0bre\ + questType\x12\x1e\n\nprivateKey\x18\x02\x20\x01(\x0cR\nprivateKey\x12\ + \x1a\n\x08keyNames\x18\x03\x20\x03(\tR\x08keyNames\x12\x10\n\x03has\x18\ + \x04\x20\x01(\x08R\x03has\"$\n\x0ePersistRequest\x12\x12\n\x04cids\x18\ + \x01\x20\x03(\tR\x04cids\"\xf9\x01\n\x0fPersistResponse\x127\n\x06status\ + \x18\x01\x20\x03(\x0b2\x1f.pb.PersistResponse.StatusEntryR\x06status\x12\ + 7\n\x06errors\x18\x02\x20\x03(\x0b2\x1f.pb.PersistResponse.ErrorsEntryR\ + \x06errors\x1a9\n\x0bStatusEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\ + \x03key\x12\x14\n\x05value\x18\x02\x20\x01(\x08R\x05value:\x028\x01\x1a9\ + \n\x0bErrorsEntry\x12\x10\n\x03key\x18\x01\x20\x01(\tR\x03key\x12\x14\n\ + \x05value\x18\x02\x20\x01(\tR\x05value:\x028\x01*8\n\nP2PREQTYPE\x12\t\n\ + \x05CLOSE\x10\0\x12\x0b\n\x07FORWARD\x10\x01\x12\n\n\x06LISTEN\x10\x02\ + \x12\x06\n\x02LS\x10\x03*U\n\x0fCONNMGMTREQTYPE\x12\x0e\n\nCM_CONNECT\ + \x10\0\x12\x11\n\rCM_DISCONNECT\x10\x01\x12\r\n\tCM_STATUS\x10\x02\x12\ + \x10\n\x0cCM_GET_PEERS\x10\x03*.\n\rEXTRASREQTYPE\x12\r\n\tEX_ENABLE\x10\ + \0\x12\x0e\n\nEX_DISABLE\x10\x01*?\n\nEXTRASTYPE\x12\x0c\n\x08IDENTIFY\ + \x10\0\x12\n\n\x06PUBSUB\x10\x01\x12\r\n\tDISCOVERY\x10\x02\x12\x08\n\ + \x04MDNS\x10\x03*v\n\tBSREQTYPE\x12\r\n\tBS_DELETE\x10\0\x12\n\n\x06BS_P\ + UT\x10\x01\x12\x0f\n\x0bBS_PUT_MANY\x10\x02\x12\n\n\x06BS_GET\x10\x03\ + \x12\x0f\n\x0bBS_GET_MANY\x10\x04\x12\x0e\n\nBS_GET_ALL\x10\x05\x12\x10\ + \n\x0cBS_GET_STATS\x10\x06*&\n\tBSREQOPTS\x12\x0b\n\x07DEFAULT\x10\0\x12\ + \x0c\n\x08BS_FORCE\x10\x01*^\n\nDAGREQTYPE\x12\x0b\n\x07DAG_PUT\x10\0\ + \x12\x0b\n\x07DAG_GET\x10\x01\x12\x10\n\x0cDAG_NEW_NODE\x10\x02\x12\x11\ + \n\rDAG_ADD_LINKS\x10\x03\x12\x11\n\rDAG_GET_LINKS\x10\x04*K\n\tKSREQTYP\ + E\x12\n\n\x06KS_HAS\x10\0\x12\n\n\x06KS_GET\x10\x01\x12\n\n\x06KS_PUT\ + \x10\x02\x12\r\n\tKS_DELETE\x10\x03\x12\x0b\n\x07KS_LIST\x10\x042\xb7\ + \x03\n\x07NodeAPI\x127\n\x08ConnMgmt\x12\x13.pb.ConnMgmtRequest\x1a\x14.\ + pb.ConnMgmtResponse\"\0\x12(\n\x06Extras\x12\x11.pb.ExtrasRequest\x1a\t.\ + pb.Empty\"\0\x12(\n\x03P2P\x12\x0e.pb.P2PRequest\x1a\x0f.pb.P2PResponse\ + \"\0\x12=\n\nBlockstore\x12\x15.pb.BlockstoreRequest\x1a\x16.pb.Blocksto\ + reResponse\"\0\x12G\n\x10BlockstoreStream\x12\x15.pb.BlockstoreRequest\ + \x1a\x16.pb.BlockstoreResponse\"\0(\x010\x01\x12(\n\x03Dag\x12\x0e.pb.Da\ + gRequest\x1a\x0f.pb.DagResponse\"\0\x127\n\x08Keystore\x12\x13.pb.Keysto\ + reRequest\x1a\x14.pb.KeystoreResponse\"\0\x124\n\x07Persist\x12\x12.pb.P\ + ersistRequest\x1a\x13.pb.PersistResponse\"\0J\xb8y\n\x07\x12\x05\0\0\xe8\ + \x02\x01\n\x08\n\x01\x0c\x12\x03\0\0\x12\n\x08\n\x01\x02\x12\x03\x01\x08\ + \n\n\t\n\x02\x03\0\x12\x03\x02\x07\x13\nO\n\x02\x06\0\x12\x04\x05\0\x19\ + \x01\x1aC\x20NodeAPI\x20provide\x20an\x20API\x20to\x20control\x20the\x20\ + underlying\x20custom\x20ipfs\x20node\n\n\n\n\x03\x06\0\x01\x12\x03\x05\ + \x08\x0f\n@\n\x04\x06\0\x02\0\x12\x03\x07\x04@\x1a3\x20ConnMgmt\x20provi\ + des\x20control\x20over\x20libp2p\x20connections\n\n\x0c\n\x05\x06\0\x02\ + \0\x01\x12\x03\x07\x08\x10\n\x0c\n\x05\x06\0\x02\0\x02\x12\x03\x07\x11\ + \x20\n\x0c\n\x05\x06\0\x02\0\x03\x12\x03\x07+;\nC\n\x04\x06\0\x02\x01\ + \x12\x03\t\x041\x1a6\x20Extras\x20provide\x20control\x20over\x20node\x20\ + extras\x20capabilities\n\n\x0c\n\x05\x06\0\x02\x01\x01\x12\x03\t\x08\x0e\ + \n\x0c\n\x05\x06\0\x02\x01\x02\x12\x03\t\x0f\x1c\n\x0c\n\x05\x06\0\x02\ + \x01\x03\x12\x03\t',\n\xdf\x01\n\x04\x06\0\x02\x02\x12\x03\r\x041\x1a\ + \xd1\x01\x20P2P\x20allows\x20control\x20of\x20generalized\x20p2p\x20stre\ + ams\x20for\x20tcp/udp\x20based\x20protocol.\n\x20By\x20using\x20this\x20\ + RPC,\x20we\x20can\x20tunnel\x20traffic\x20similar\x20to\x20ssh\x20tunnel\ + ing\n\x20except\x20using\x20libp2p\x20as\x20the\x20transport\x20layer,\ + \x20and\x20and\x20tcp/udp\x20port.\n\n\x0c\n\x05\x06\0\x02\x02\x01\x12\ + \x03\r\x08\x0b\n\x0c\n\x05\x06\0\x02\x02\x02\x12\x03\r\x0c\x16\n\x0c\n\ + \x05\x06\0\x02\x02\x03\x12\x03\r!,\nR\n\x04\x06\0\x02\x03\x12\x03\x0f\ + \x04F\x1aE\x20Blockstore\x20allows\x20low-level\x20management\x20of\x20t\ + he\x20underlying\x20blockstore\n\n\x0c\n\x05\x06\0\x02\x03\x01\x12\x03\ + \x0f\x08\x12\n\x0c\n\x05\x06\0\x02\x03\x02\x12\x03\x0f\x13$\n\x0c\n\x05\ + \x06\0\x02\x03\x03\x12\x03\x0f/A\n\x87\x01\n\x04\x06\0\x02\x04\x12\x03\ + \x12\x04Z\x1az\x20BlockstoreStream\x20is\x20akin\x20to\x20Blockstore,\ + \x20except\x20streamable\n\x20Once\x20v4\x20is\x20out,\x20condense\x20th\ + is\x20+\x20blockstore\x20into\x20a\x20single\x20call\n\n\x0c\n\x05\x06\0\ + \x02\x04\x01\x12\x03\x12\x08\x18\n\x0c\n\x05\x06\0\x02\x04\x05\x12\x03\ + \x12\x19\x1f\n\x0c\n\x05\x06\0\x02\x04\x02\x12\x03\x12\x201\n\x0c\n\x05\ + \x06\0\x02\x04\x06\x12\x03\x12\x01\x1aR\x20P2PRequest\x20is\ + \x20a\x20request\x20message\x20holding\x20the\x20details\x20of\x20a\x20p\ + articular\x20P2P\x20rpc\x20call\n\n\n\n\x03\x04\0\x01\x12\x03(\x08\x12\n\ + )\n\x04\x04\0\x02\0\x12\x03*\x04\x1f\x1a\x1c\x20indicates\x20the\x20requ\ + est\x20type\n\n\r\n\x05\x04\0\x02\0\x04\x12\x04*\x04(\x14\n\x0c\n\x05\ + \x04\0\x02\0\x06\x12\x03*\x04\x0e\n\x0c\n\x05\x04\0\x02\0\x01\x12\x03*\ + \x0f\x1a\n\x0c\n\x05\x04\0\x02\0\x03\x12\x03*\x1d\x1e\n(\n\x04\x04\0\x02\ + \x01\x12\x03,\x04\x11\x1a\x1b\x20used\x20by:\x20P2PREQTYPE.CLOSE\n\n\r\n\ + \x05\x04\0\x02\x01\x04\x12\x04,\x04*\x1f\n\x0c\n\x05\x04\0\x02\x01\x05\ + \x12\x03,\x04\x08\n\x0c\n\x05\x04\0\x02\x01\x01\x12\x03,\t\x0c\n\x0c\n\ + \x05\x04\0\x02\x01\x03\x12\x03,\x0f\x10\n%\n\x04\x04\0\x02\x02\x12\x03.\ + \x04\x15\x1a\x18\x20used\x20by:\x20P2PREQTYPE.LS\n\n\r\n\x05\x04\0\x02\ + \x02\x04\x12\x04.\x04,\x11\n\x0c\n\x05\x04\0\x02\x02\x05\x12\x03.\x04\ + \x08\n\x0c\n\x05\x04\0\x02\x02\x01\x12\x03.\t\x10\n\x0c\n\x05\x04\0\x02\ + \x02\x03\x12\x03.\x13\x14\nO\n\x04\x04\0\x02\x03\x12\x030\x04\x1c\x1aB\ + \x20used\x20by:\x20P2PREQTYPE.CLOSE,\x20P2PREQTYPE.FORWARD,\x20P2PREQTYP\ + E.LISTEN\n\n\r\n\x05\x04\0\x02\x03\x04\x12\x040\x04.\x15\n\x0c\n\x05\x04\ + \0\x02\x03\x05\x12\x030\x04\n\n\x0c\n\x05\x04\0\x02\x03\x01\x12\x030\x0b\ + \x17\n\x0c\n\x05\x04\0\x02\x03\x03\x12\x030\x1a\x1b\n^\n\x04\x04\0\x02\ + \x04\x12\x033\x04\x1d\x1aQ\x20used\x20by:\x20P2PREQTYPE.CLOSE,\x20P2PREQ\ + TYPE.FORWARD\n\x20must\x20be\x20specified\x20as\x20a\x20multiaddr\n\n\r\ + \n\x05\x04\0\x02\x04\x04\x12\x043\x040\x1c\n\x0c\n\x05\x04\0\x02\x04\x05\ + \x12\x033\x04\n\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x033\x0b\x18\n\x0c\n\ + \x05\x04\0\x02\x04\x03\x12\x033\x1b\x1c\n^\n\x04\x04\0\x02\x05\x12\x036\ \x04\x1d\x1aQ\x20used\x20by:\x20P2PREQTYPE.CLOSE,\x20P2PREQTYPE.FORWARD\ \n\x20must\x20be\x20specified\x20as\x20a\x20multiaddr\n\n\r\n\x05\x04\0\ - \x02\x04\x04\x12\x043\x040\x1c\n\x0c\n\x05\x04\0\x02\x04\x05\x12\x033\ - \x04\n\n\x0c\n\x05\x04\0\x02\x04\x01\x12\x033\x0b\x18\n\x0c\n\x05\x04\0\ - \x02\x04\x03\x12\x033\x1b\x1c\n^\n\x04\x04\0\x02\x05\x12\x036\x04\x1d\ - \x1aQ\x20used\x20by:\x20P2PREQTYPE.CLOSE,\x20P2PREQTYPE.FORWARD\n\x20mus\ - t\x20be\x20specified\x20as\x20a\x20multiaddr\n\n\r\n\x05\x04\0\x02\x05\ - \x04\x12\x046\x043\x1d\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x036\x04\n\n\ - \x0c\n\x05\x04\0\x02\x05\x01\x12\x036\x0b\x18\n\x0c\n\x05\x04\0\x02\x05\ - \x03\x12\x036\x1b\x1c\nK\n\x04\x04\0\x02\x06\x12\x039\x04\x1d\x1a>\x20us\ - ed\x20by:\x20P2PREQTYPE.LISTEN\n\x20must\x20be\x20specified\x20as\x20a\ - \x20multiaddr\n\n\r\n\x05\x04\0\x02\x06\x04\x12\x049\x046\x1d\n\x0c\n\ - \x05\x04\0\x02\x06\x05\x12\x039\x04\n\n\x0c\n\x05\x04\0\x02\x06\x01\x12\ - \x039\x0b\x18\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x039\x1b\x1c\n=\n\x04\ - \x04\0\x02\x07\x12\x03;\x04\"\x1a0\x20used\x20by:\x20P2PREQTYPE.LISTEN,\ - \x20P2PREQTYPE.FORWARD\n\n\r\n\x05\x04\0\x02\x07\x04\x12\x04;\x049\x1d\n\ - \x0c\n\x05\x04\0\x02\x07\x05\x12\x03;\x04\x08\n\x0c\n\x05\x04\0\x02\x07\ - \x01\x12\x03;\t\x1d\n\x0c\n\x05\x04\0\x02\x07\x03\x12\x03;\x20!\n)\n\x04\ - \x04\0\x02\x08\x12\x03=\x04\x1a\x1a\x1c\x20used\x20by:\x20P2PREQTYPE.LIS\ - TEN\n\n\r\n\x05\x04\0\x02\x08\x04\x12\x04=\x04;\"\n\x0c\n\x05\x04\0\x02\ - \x08\x05\x12\x03=\x04\x08\n\x0c\n\x05\x04\0\x02\x08\x01\x12\x03=\t\x15\n\ - \x0c\n\x05\x04\0\x02\x08\x03\x12\x03=\x18\x19\nX\n\x02\x04\x01\x12\x04A\ - \0I\x01\x1aL\x20P2PResponse\x20is\x20a\x20response\x20message\x20sent\ - \x20in\x20response\x20to\x20a\x20P2PRequest\x20message\n\n\n\n\x03\x04\ - \x01\x01\x12\x03A\x08\x13\n\x0b\n\x04\x04\x01\x02\0\x12\x03B\x04\x1f\n\r\ - \n\x05\x04\x01\x02\0\x04\x12\x04B\x04A\x15\n\x0c\n\x05\x04\x01\x02\0\x06\ - \x12\x03B\x04\x0e\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03B\x0f\x1a\n\x0c\n\ - \x05\x04\x01\x02\0\x03\x12\x03B\x1d\x1e\n)\n\x04\x04\x01\x02\x01\x12\x03\ - D\x04\x1e\x1a\x1c\x20sent\x20by:\x20P2PREQTYPE.LISTEN\n\n\x0c\n\x05\x04\ - \x01\x02\x01\x04\x12\x03D\x04\x0c\n\x0c\n\x05\x04\x01\x02\x01\x05\x12\ - \x03D\r\x13\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03D\x14\x19\n\x0c\n\x05\ - \x04\x01\x02\x01\x03\x12\x03D\x1c\x1d\nU\n\x04\x04\x01\x02\x02\x12\x03F\ - \x04\x1a\x1aH\x20sent\x20by:\x20P2PREQTYPE.CLOSE\x20to\x20indicate\x20th\ - e\x20number\x20of\x20connections\x20closed\n\n\r\n\x05\x04\x01\x02\x02\ - \x04\x12\x04F\x04D\x1e\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\x03F\x04\t\n\ - \x0c\n\x05\x04\x01\x02\x02\x01\x12\x03F\n\x15\n\x0c\n\x05\x04\x01\x02\ - \x02\x03\x12\x03F\x18\x19\nO\n\x04\x04\x01\x02\x03\x12\x03H\x04'\x1aB\ - \x20sent\x20by:\x20P2PREQTYPE.LS\x20and\x20contains\x20all\x20known\x20s\ - tream\x20information\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03H\x04\x0c\ - \n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03H\r\x16\n\x0c\n\x05\x04\x01\x02\ - \x03\x01\x12\x03H\x17\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03H%&\nF\n\ - \x02\x04\x02\x12\x04L\0R\x01\x1a:\x20P2PLsInfo\x20contains\x20informatio\ - n\x20about\x20a\x20single\x20p2p\x20stream\n\n\n\n\x03\x04\x02\x01\x12\ - \x03L\x08\x11\n\x0b\n\x04\x04\x02\x02\0\x12\x03M\x04\x1c\n\r\n\x05\x04\ - \x02\x02\0\x04\x12\x04M\x04L\x13\n\x0c\n\x05\x04\x02\x02\0\x05\x12\x03M\ - \x04\n\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03M\x0b\x17\n\x0c\n\x05\x04\ - \x02\x02\0\x03\x12\x03M\x1a\x1b\n\x0b\n\x04\x04\x02\x02\x01\x12\x03N\x04\ - \x1d\n\r\n\x05\x04\x02\x02\x01\x04\x12\x04N\x04M\x1c\n\x0c\n\x05\x04\x02\ - \x02\x01\x05\x12\x03N\x04\n\n\x0c\n\x05\x04\x02\x02\x01\x01\x12\x03N\x0b\ - \x18\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03N\x1b\x1c\n\x0b\n\x04\x04\ - \x02\x02\x02\x12\x03O\x04\x1d\n\r\n\x05\x04\x02\x02\x02\x04\x12\x04O\x04\ - N\x1d\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03O\x04\n\n\x0c\n\x05\x04\x02\ - \x02\x02\x01\x12\x03O\x0b\x18\n\x0c\n\x05\x04\x02\x02\x02\x03\x12\x03O\ - \x1b\x1c\nP\n\x04\x04\x02\x02\x03\x12\x03Q\x04\x13\x1aC\x20indicates\x20\ - whether\x20or\x20not\x20this\x20is\x20a\x20p2p\x20listener\x20or\x20loca\ - l\x20listener\n\n\r\n\x05\x04\x02\x02\x03\x04\x12\x04Q\x04O\x1d\n\x0c\n\ - \x05\x04\x02\x02\x03\x05\x12\x03Q\x04\x08\n\x0c\n\x05\x04\x02\x02\x03\ - \x01\x12\x03Q\t\x0e\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03Q\x11\x12\nW\ - \n\x02\x04\x03\x12\x04U\0X\x01\x1aK\x20GetPeersResponse\x20is\x20a\x20re\ - sponse\x20to\x20GetPeers\x20containing\x20a\x20slice\x20of\x20peer\x20ID\ - s\n\n\n\n\x03\x04\x03\x01\x12\x03U\x08\x18\n\"\n\x04\x04\x03\x02\0\x12\ - \x03W\x04\x20\x1a\x15\x20a\x20slice\x20of\x20peer\x20IDs\n\n\x0c\n\x05\ - \x04\x03\x02\0\x04\x12\x03W\x04\x0c\n\x0c\n\x05\x04\x03\x02\0\x05\x12\ - \x03W\r\x13\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03W\x14\x1b\n\x0c\n\x05\ - \x04\x03\x02\0\x03\x12\x03W\x1e\x1f\nW\n\x02\x05\x01\x12\x04[\0e\x01\x1a\ - K\x20CONNMGMTREQTYPE\x20indicates\x20the\x20particular\x20ConnMgmt\x20re\ - quest\x20being\x20performed\n\n\n\n\x03\x05\x01\x01\x12\x03[\x05\x14\n=\ - \n\x04\x05\x01\x02\0\x12\x03]\x04\x13\x1a0\x20CM_CONNECT\x20is\x20used\ - \x20to\x20connect\x20to\x20a\x20libp2p\x20peer\n\n\x0c\n\x05\x05\x01\x02\ - \0\x01\x12\x03]\x04\x0e\n\x0c\n\x05\x05\x01\x02\0\x02\x12\x03]\x11\x12\n\ - E\n\x04\x05\x01\x02\x01\x12\x03_\x04\x16\x1a8\x20CM_DISCONNECT\x20is\x20\ - used\x20to\x20disconnect\x20from\x20a\x20libp2p\x20peer\n\n\x0c\n\x05\ - \x05\x01\x02\x01\x01\x12\x03_\x04\x11\n\x0c\n\x05\x05\x01\x02\x01\x02\ - \x12\x03_\x14\x15\n\x9f\x01\n\x04\x05\x01\x02\x02\x12\x03b\x04\x12\x1a\ - \x91\x01\x20CM_STATUS\x20is\x20used\x20to\x20return\x20status\x20informa\ - tion\x20about\x20libp2p\x20peer\x20connections\n\x20useful\x20for\x20det\ - ermining\x20whether\x20or\x20not\x20we\x20are\x20connected\x20to\x20some\ - one\n\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03b\x04\r\n\x0c\n\x05\x05\x01\ - \x02\x02\x02\x12\x03b\x10\x11\n<\n\x04\x05\x01\x02\x03\x12\x03d\x04\x15\ - \x1a/CM_GET_PEERS\x20is\x20used\x20to\x20return\x20all\x20known\x20peers\ - \n\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03d\x04\x10\n\x0c\n\x05\x05\x01\ - \x02\x03\x02\x12\x03d\x13\x14\n\n\n\x02\x04\x04\x12\x04g\0p\x01\n\n\n\ - \x03\x04\x04\x01\x12\x03g\x08\x17\nU\n\x04\x04\x04\x02\0\x12\x03i\x04$\ - \x1aH\x20indicates\x20the\x20particular\x20connection\x20management\x20r\ - equest\x20being\x20performed\n\n\r\n\x05\x04\x04\x02\0\x04\x12\x04i\x04g\ - \x19\n\x0c\n\x05\x04\x04\x02\0\x06\x12\x03i\x04\x13\n\x0c\n\x05\x04\x04\ - \x02\0\x01\x12\x03i\x14\x1f\n\x0c\n\x05\x04\x04\x02\0\x03\x12\x03i\"#\n8\ - \n\x04\x04\x04\x02\x01\x12\x03l\x04#\x1a+\x20a\x20list\x20of\x20multiadd\ - rs\n\x20sent\x20by:\x20CM_CONNECT\n\n\x0c\n\x05\x04\x04\x02\x01\x04\x12\ - \x03l\x04\x0c\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\x03l\r\x13\n\x0c\n\x05\ - \x04\x04\x02\x01\x01\x12\x03l\x14\x1e\n\x0c\n\x05\x04\x04\x02\x01\x03\ - \x12\x03l!\"\nR\n\x04\x04\x04\x02\x02\x12\x03o\x04\x20\x1aE\x20a\x20list\ - \x20of\x20peer\x20IDs\n\x20sent\x20by:\x20CM_DISCONNECT,\x20CM_STATUS,\ - \x20CM_GET_PEERS\n\n\x0c\n\x05\x04\x04\x02\x02\x04\x12\x03o\x04\x0c\n\ - \x0c\n\x05\x04\x04\x02\x02\x05\x12\x03o\r\x13\n\x0c\n\x05\x04\x04\x02\ - \x02\x01\x12\x03o\x14\x1b\n\x0c\n\x05\x04\x04\x02\x02\x03\x12\x03o\x1e\ - \x1f\n\n\n\x02\x04\x05\x12\x04r\0y\x01\n\n\n\x03\x04\x05\x01\x12\x03r\ - \x08\x18\nU\n\x04\x04\x05\x02\0\x12\x03t\x04$\x1aH\x20indicates\x20the\ - \x20particular\x20connection\x20management\x20request\x20being\x20perfor\ - med\n\n\r\n\x05\x04\x05\x02\0\x04\x12\x04t\x04r\x1a\n\x0c\n\x05\x04\x05\ - \x02\0\x06\x12\x03t\x04\x13\n\x0c\n\x05\x04\x05\x02\0\x01\x12\x03t\x14\ - \x1f\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x03t\"#\n\x0b\n\x04\x04\x05\x02\ - \x01\x12\x03u\x04$\n\r\n\x05\x04\x05\x02\x01\x04\x12\x04u\x04t$\n\x0c\n\ - \x05\x04\x05\x02\x01\x06\x12\x03u\x04\x15\n\x0c\n\x05\x04\x05\x02\x01\ - \x01\x12\x03u\x16\x1f\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\x03u\"#\nh\n\ - \x04\x04\x05\x02\x02\x12\x03w\x04+\x1a[\x20a\x20map\x20of\x20the\x20peer\ - \x20id,\x20and\x20a\x20custom\x20message\x20indicating\x20success,\x20or\ - \x20why\x20there\x20was\x20a\x20failure\n\n\r\n\x05\x04\x05\x02\x02\x04\ - \x12\x04w\x04u$\n\x0c\n\x05\x04\x05\x02\x02\x06\x12\x03w\x04\x1f\n\x0c\n\ - \x05\x04\x05\x02\x02\x01\x12\x03w\x20&\n\x0c\n\x05\x04\x05\x02\x02\x03\ - \x12\x03w)*\n\x0b\n\x04\x04\x05\x02\x03\x12\x03x\x04\x20\n\x0c\n\x05\x04\ - \x05\x02\x03\x04\x12\x03x\x04\x0c\n\x0c\n\x05\x04\x05\x02\x03\x05\x12\ - \x03x\r\x13\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03x\x14\x1b\n\x0c\n\x05\ - \x04\x05\x02\x03\x03\x12\x03x\x1e\x1f\nP\n\x02\x04\x06\x12\x05|\0\x81\ - \x01\x01\x1aC\x20Contains\x20status\x20information\x20about\x20a\x20part\ - icular\x20disconnect\x20attempt\n\n\n\n\x03\x04\x06\x01\x12\x03|\x08\x16\ - \n?\n\x04\x04\x06\x02\0\x12\x03~\x04\x1a\x1a2\x20indicate\x20whether\x20\ - or\x20not\x20we\x20actually\x20disconnected\n\n\r\n\x05\x04\x06\x02\0\ - \x04\x12\x04~\x04|\x18\n\x0c\n\x05\x04\x06\x02\0\x05\x12\x03~\x04\x08\n\ - \x0c\n\x05\x04\x06\x02\0\x01\x12\x03~\t\x15\n\x0c\n\x05\x04\x06\x02\0\ - \x03\x12\x03~\x18\x19\nD\n\x04\x04\x06\x02\x01\x12\x04\x80\x01\x04\x16\ - \x1a6\x20if\x20disconnected\x20is\x20false,\x20the\x20reason\x20why\x20i\ - t\x20is\x20false\n\n\x0e\n\x05\x04\x06\x02\x01\x04\x12\x05\x80\x01\x04~\ - \x1a\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\x80\x01\x04\n\n\r\n\x05\x04\ - \x06\x02\x01\x01\x12\x04\x80\x01\x0b\x11\n\r\n\x05\x04\x06\x02\x01\x03\ - \x12\x04\x80\x01\x14\x15\nU\n\x02\x05\x02\x12\x06\x84\x01\0\x89\x01\x01\ - \x1aG\x20EXTRASREQTYPE\x20indicates\x20the\x20particular\x20Extras\x20re\ - quest\x20being\x20performed\n\n\x0b\n\x03\x05\x02\x01\x12\x04\x84\x01\ - \x05\x12\nL\n\x04\x05\x02\x02\0\x12\x04\x86\x01\x04\x12\x1a>\x20EX_ENABL\ - E\x20is\x20used\x20to\x20enable\x20a\x20particular\x20node\x20extras\x20\ - feature\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\x86\x01\x04\r\n\r\n\x05\ - \x05\x02\x02\0\x02\x12\x04\x86\x01\x10\x11\nN\n\x04\x05\x02\x02\x01\x12\ - \x04\x88\x01\x04\x13\x1a@\x20EX_DISABLE\x20is\x20used\x20to\x20disable\ - \x20a\x20particular\x20node\x20extras\x20feature\n\n\r\n\x05\x05\x02\x02\ - \x01\x01\x12\x04\x88\x01\x04\x0e\n\r\n\x05\x05\x02\x02\x01\x02\x12\x04\ - \x88\x01\x11\x12\n;\n\x02\x05\x03\x12\x06\x8c\x01\0\x95\x01\x01\x1a-\x20\ - EXTRASTYPE\x20denotes\x20a\x20particular\x20extras\x20type\n\n\x0b\n\x03\ - \x05\x03\x01\x12\x04\x8c\x01\x05\x0f\n0\n\x04\x05\x03\x02\0\x12\x04\x8e\ - \x01\x04\x11\x1a\"\x20IDENTIFY\x20is\x20the\x20identify\x20service\n\n\r\ - \n\x05\x05\x03\x02\0\x01\x12\x04\x8e\x01\x04\x0c\n\r\n\x05\x05\x03\x02\0\ - \x02\x12\x04\x8e\x01\x0f\x10\n2\n\x04\x05\x03\x02\x01\x12\x04\x90\x01\ - \x04\x0f\x1a$\x20PUBSUB\x20is\x20the\x20libp2p\x20pubsub\x20system\n\n\r\ - \n\x05\x05\x03\x02\x01\x01\x12\x04\x90\x01\x04\n\n\r\n\x05\x05\x03\x02\ - \x01\x02\x12\x04\x90\x01\r\x0e\n7\n\x04\x05\x03\x02\x02\x12\x04\x92\x01\ - \x04\x12\x1a)\x20DISCOVERY\x20is\x20a\x20libp2p\x20discovery\x20service\ - \n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\x92\x01\x04\r\n\r\n\x05\x05\x03\ - \x02\x02\x02\x12\x04\x92\x01\x10\x11\n?\n\x04\x05\x03\x02\x03\x12\x04\ - \x94\x01\x04\r\x1a1\x20MDNS\x20is\x20used\x20to\x20discover\x20libp2p\ - \x20hosts\x20over\x20mdns\n\n\r\n\x05\x05\x03\x02\x03\x01\x12\x04\x94\ - \x01\x04\x08\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x94\x01\x0b\x0c\n\x0c\ - \n\x02\x04\x07\x12\x06\x97\x01\0\x9c\x01\x01\n\x0b\n\x03\x04\x07\x01\x12\ - \x04\x97\x01\x08\x15\n5\n\x04\x04\x07\x02\0\x12\x04\x99\x01\x04\"\x1a'\ - \x20indicates\x20the\x20request\x20being\x20performed\n\n\x0f\n\x05\x04\ - \x07\x02\0\x04\x12\x06\x99\x01\x04\x97\x01\x17\n\r\n\x05\x04\x07\x02\0\ - \x06\x12\x04\x99\x01\x04\x11\n\r\n\x05\x04\x07\x02\0\x01\x12\x04\x99\x01\ - \x12\x1d\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\x99\x01\x20!\nD\n\x04\x04\ - \x07\x02\x01\x12\x04\x9b\x01\x04!\x1a6\x20indicates\x20the\x20extras\x20\ - feature\x20this\x20request\x20applies\x20to\n\n\x0f\n\x05\x04\x07\x02\ - \x01\x04\x12\x06\x9b\x01\x04\x99\x01\"\n\r\n\x05\x04\x07\x02\x01\x06\x12\ - \x04\x9b\x01\x04\x0e\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\x9b\x01\x0f\ - \x1c\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x9b\x01\x1f\x20\nA\n\x02\x05\ - \x04\x12\x06\xa0\x01\0\xae\x01\x01\x1a3\x20BSREQTYPE\x20is\x20a\x20parti\ - cular\x20blockstore\x20request\x20type\n\n\x0b\n\x03\x05\x04\x01\x12\x04\ - \xa0\x01\x05\x0e\nB\n\x04\x05\x04\x02\0\x12\x04\xa2\x01\x04\x12\x1a4\x20\ - BS_DELETE\x20is\x20used\x20to\x20delete\x20a\x20block\x20from\x20the\x20\ - store\n\n\r\n\x05\x05\x04\x02\0\x01\x12\x04\xa2\x01\x04\r\n\r\n\x05\x05\ - \x04\x02\0\x02\x12\x04\xa2\x01\x10\x11\nA\n\x04\x05\x04\x02\x01\x12\x04\ - \xa4\x01\x04\x0f\x1a3\x20BS_PUT\x20is\x20used\x20to\x20put\x20a\x20singl\ - e\x20block\x20in\x20the\x20store\n\n\r\n\x05\x05\x04\x02\x01\x01\x12\x04\ - \xa4\x01\x04\n\n\r\n\x05\x05\x04\x02\x01\x02\x12\x04\xa4\x01\r\x0e\nC\n\ - \x04\x05\x04\x02\x02\x12\x04\xa6\x01\x04\x14\x1a5\x20BS_PUT_MANY\x20is\ - \x20used\x20to\x20put\x20many\x20blocks\x20in\x20the\x20store\n\n\r\n\ - \x05\x05\x04\x02\x02\x01\x12\x04\xa6\x01\x04\x0f\n\r\n\x05\x05\x04\x02\ - \x02\x02\x12\x04\xa6\x01\x12\x13\n<\n\x04\x05\x04\x02\x03\x12\x04\xa8\ - \x01\x04\x0f\x1a.\x20BS_GET\x20is\x20used\x20to\x20get\x20a\x20block\x20\ - from\x20the\x20store\n\n\r\n\x05\x05\x04\x02\x03\x01\x12\x04\xa8\x01\x04\ - \n\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xa8\x01\r\x0e\nE\n\x04\x05\x04\ - \x02\x04\x12\x04\xaa\x01\x04\x14\x1a7\x20BS_GET_MANY\x20is\x20used\x20to\ - \x20get\x20many\x20blocks\x20from\x20the\x20store\n\n\r\n\x05\x05\x04\ - \x02\x04\x01\x12\x04\xaa\x01\x04\x0f\n\r\n\x05\x05\x04\x02\x04\x02\x12\ - \x04\xaa\x01\x12\x13\n~\n\x04\x05\x04\x02\x05\x12\x04\xad\x01\x04\x13\ - \x1ap\x20BS_GET_ALL\x20is\x20used\x20to\x20retrieve\x20all\x20blocks\x20\ - from\x20the\x20store\n\x20It\x20is\x20the\x20gRPC\x20equivalent\x20of\ - \x20Blockstore::AllKeysChan\n\n\r\n\x05\x05\x04\x02\x05\x01\x12\x04\xad\ - \x01\x04\x0e\n\r\n\x05\x05\x04\x02\x05\x02\x12\x04\xad\x01\x11\x12\n=\n\ - \x02\x05\x05\x12\x06\xb1\x01\0\xb6\x01\x01\x1a/\x20BSREQOPTS\x20are\x20o\ - ptions\x20for\x20blockstore\x20requests\n\n\x0b\n\x03\x05\x05\x01\x12\ - \x04\xb1\x01\x05\x0e\n=\n\x04\x05\x05\x02\0\x12\x04\xb3\x01\x04\x10\x1a/\ - \x20DEFAULT\x20indicates\x20to\x20use\x20the\x20default\x20settings\n\n\ - \r\n\x05\x05\x05\x02\0\x01\x12\x04\xb3\x01\x04\x0b\n\r\n\x05\x05\x05\x02\ - \0\x02\x12\x04\xb3\x01\x0e\x0f\nY\n\x04\x05\x05\x02\x01\x12\x04\xb5\x01\ - \x04\x11\x1aK\x20BS_FORCE\x20indicates\x20to\x20force\x20the\x20request\ - \x20regardless\x20of\x20any\x20possible\x20issues\n\n\r\n\x05\x05\x05\ - \x02\x01\x01\x12\x04\xb5\x01\x04\x0c\n\r\n\x05\x05\x05\x02\x01\x02\x12\ - \x04\xb5\x01\x0f\x10\nJ\n\x02\x04\x08\x12\x06\xb9\x01\0\xca\x01\x01\x1a<\ - \x20BlockstoreRequest\x20is\x20a\x20message\x20used\x20to\x20control\x20\ - blockstores\n\n\x0b\n\x03\x04\x08\x01\x12\x04\xb9\x01\x08\x19\nA\n\x04\ - \x04\x08\x02\0\x12\x04\xbb\x01\x04\x1e\x1a3\x20\x20indicates\x20the\x20p\ - articular\x20request\x20type\x20being\x20made\n\n\x0f\n\x05\x04\x08\x02\ - \0\x04\x12\x06\xbb\x01\x04\xb9\x01\x1b\n\r\n\x05\x04\x08\x02\0\x06\x12\ - \x04\xbb\x01\x04\r\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xbb\x01\x0e\x19\n\ - \r\n\x05\x04\x08\x02\0\x03\x12\x04\xbb\x01\x1c\x1d\n)\n\x04\x04\x08\x02\ - \x01\x12\x04\xbd\x01\x04#\x1a\x1b\x20optional\x20request\x20settings\n\n\ - \r\n\x05\x04\x08\x02\x01\x04\x12\x04\xbd\x01\x04\x0c\n\r\n\x05\x04\x08\ - \x02\x01\x06\x12\x04\xbd\x01\r\x16\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\ - \xbd\x01\x17\x1e\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xbd\x01!\"\nG\n\ - \x04\x04\x08\x02\x02\x12\x04\xc0\x01\x04\x1d\x1a9\x20cids\x20of\x20block\ - s\n\x20sent\x20by:\x20BS_DELETE,\x20BS_GET,\x20BS_GET_MANY\n\n\r\n\x05\ - \x04\x08\x02\x02\x04\x12\x04\xc0\x01\x04\x0c\n\r\n\x05\x04\x08\x02\x02\ - \x05\x12\x04\xc0\x01\r\x13\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xc0\x01\ - \x14\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xc0\x01\x1b\x1c\nE\n\x04\ - \x04\x08\x02\x03\x12\x04\xc3\x01\x04\x1c\x1a7\x20the\x20data\x20we\x20ar\ - e\x20putting\n\x20sent\x20by:\x20BS_PUT,\x20BS_PUT_MANY\n\n\r\n\x05\x04\ - \x08\x02\x03\x04\x12\x04\xc3\x01\x04\x0c\n\r\n\x05\x04\x08\x02\x03\x05\ - \x12\x04\xc3\x01\r\x12\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xc3\x01\x13\ - \x17\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xc3\x01\x1a\x1b\nl\n\x04\x04\ - \x08\x02\x04\x12\x04\xc6\x01\x04\x1a\x1a^\x20the\x20cid\x20version\x20to\ - \x20use\x20when\x20constructing\x20blocks,\x20default\x20is\x20v1\n\x20s\ - ent\x20by:\x20BS_PUT,\x20BS_PUT_MANY\n\n\x0f\n\x05\x04\x08\x02\x04\x04\ - \x12\x06\xc6\x01\x04\xc3\x01\x1c\n\r\n\x05\x04\x08\x02\x04\x05\x12\x04\ - \xc6\x01\x04\n\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\xc6\x01\x0b\x15\n\r\ - \n\x05\x04\x08\x02\x04\x03\x12\x04\xc6\x01\x18\x19\nt\n\x04\x04\x08\x02\ - \x05\x12\x04\xc9\x01\x04\x18\x1af\x20the\x20hash\x20function\x20to\x20us\ - e\x20when\x20constructing\x20blocks,\x20default\x20is\x20sha2-256\n\x20s\ - ent\x20by:\x20BS_PUT,\x20BS_PUT_MANY\n\n\x0f\n\x05\x04\x08\x02\x05\x04\ - \x12\x06\xc9\x01\x04\xc6\x01\x1a\n\r\n\x05\x04\x08\x02\x05\x05\x12\x04\ - \xc9\x01\x04\n\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\xc9\x01\x0b\x13\n\r\ - \n\x05\x04\x08\x02\x05\x03\x12\x04\xc9\x01\x16\x17\nH\n\x02\x04\t\x12\ - \x06\xcd\x01\0\xd6\x01\x01\x1a:\x20BlockstoreResponse\x20is\x20a\x20resp\ - onse\x20to\x20a\x20BlockstoreqRequest\n\n\x0b\n\x03\x04\t\x01\x12\x04\ - \xcd\x01\x08\x1a\n@\n\x04\x04\t\x02\0\x12\x04\xcf\x01\x04\x1e\x1a2\x20in\ - dicates\x20the\x20particular\x20request\x20type\x20being\x20made\n\n\x0f\ - \n\x05\x04\t\x02\0\x04\x12\x06\xcf\x01\x04\xcd\x01\x1c\n\r\n\x05\x04\t\ - \x02\0\x06\x12\x04\xcf\x01\x04\r\n\r\n\x05\x04\t\x02\0\x01\x12\x04\xcf\ - \x01\x0e\x19\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xcf\x01\x1c\x1d\n\xe2\x01\ - \n\x04\x04\t\x02\x01\x12\x04\xd5\x01\x04\x1e\x1a\xd3\x01\x20a\x20copy\ - \x20of\x20blocks\x20from\x20the\x20blockstore\n\x20sent\x20by:\x20BS_PUT\ - ,\x20BS_PUT_MANY,\x20BS_GET,\x20BS_GET_MANY\n\x20in\x20the\x20case\x20of\ - \x20BS_PUT,\x20and\x20BS_PUT_MANY\x20requests\n\x20the\x20data\x20field\ - \x20will\x20be\x20empty\x20as\x20this\x20is\x20only\x20populated\n\x20by\ - \x20get\x20requests\n\n\r\n\x05\x04\t\x02\x01\x04\x12\x04\xd5\x01\x04\ - \x0c\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\xd5\x01\r\x12\n\r\n\x05\x04\t\ - \x02\x01\x01\x12\x04\xd5\x01\x13\x19\n\r\n\x05\x04\t\x02\x01\x03\x12\x04\ - \xd5\x01\x1c\x1d\n\x0c\n\x02\x04\n\x12\x06\xd8\x01\0\xdd\x01\x01\n\x0b\n\ - \x03\x04\n\x01\x12\x04\xd8\x01\x08\r\n2\n\x04\x04\n\x02\0\x12\x04\xda\ - \x01\x04\x13\x1a$\x20cid\x20is\x20the\x20identifier\x20of\x20the\x20bloc\ - k\n\n\x0f\n\x05\x04\n\x02\0\x04\x12\x06\xda\x01\x04\xd8\x01\x0f\n\r\n\ - \x05\x04\n\x02\0\x05\x12\x04\xda\x01\x04\n\n\r\n\x05\x04\n\x02\0\x01\x12\ - \x04\xda\x01\x0b\x0e\n\r\n\x05\x04\n\x02\0\x03\x12\x04\xda\x01\x11\x12\n\ - 8\n\x04\x04\n\x02\x01\x12\x04\xdc\x01\x04\x13\x1a*\x20data\x20is\x20the\ - \x20actual\x20contents\x20of\x20the\x20block\n\n\x0f\n\x05\x04\n\x02\x01\ - \x04\x12\x06\xdc\x01\x04\xda\x01\x13\n\r\n\x05\x04\n\x02\x01\x05\x12\x04\ - \xdc\x01\x04\t\n\r\n\x05\x04\n\x02\x01\x01\x12\x04\xdc\x01\n\x0e\n\r\n\ - \x05\x04\n\x02\x01\x03\x12\x04\xdc\x01\x11\x12\nR\n\x02\x05\x06\x12\x06\ - \xe0\x01\0\xeb\x01\x01\x1aD\x20DAGREQTYPE\x20indicates\x20the\x20particu\ + \x02\x05\x04\x12\x046\x043\x1d\n\x0c\n\x05\x04\0\x02\x05\x05\x12\x036\ + \x04\n\n\x0c\n\x05\x04\0\x02\x05\x01\x12\x036\x0b\x18\n\x0c\n\x05\x04\0\ + \x02\x05\x03\x12\x036\x1b\x1c\nK\n\x04\x04\0\x02\x06\x12\x039\x04\x1d\ + \x1a>\x20used\x20by:\x20P2PREQTYPE.LISTEN\n\x20must\x20be\x20specified\ + \x20as\x20a\x20multiaddr\n\n\r\n\x05\x04\0\x02\x06\x04\x12\x049\x046\x1d\ + \n\x0c\n\x05\x04\0\x02\x06\x05\x12\x039\x04\n\n\x0c\n\x05\x04\0\x02\x06\ + \x01\x12\x039\x0b\x18\n\x0c\n\x05\x04\0\x02\x06\x03\x12\x039\x1b\x1c\n=\ + \n\x04\x04\0\x02\x07\x12\x03;\x04\"\x1a0\x20used\x20by:\x20P2PREQTYPE.LI\ + STEN,\x20P2PREQTYPE.FORWARD\n\n\r\n\x05\x04\0\x02\x07\x04\x12\x04;\x049\ + \x1d\n\x0c\n\x05\x04\0\x02\x07\x05\x12\x03;\x04\x08\n\x0c\n\x05\x04\0\ + \x02\x07\x01\x12\x03;\t\x1d\n\x0c\n\x05\x04\0\x02\x07\x03\x12\x03;\x20!\ + \n)\n\x04\x04\0\x02\x08\x12\x03=\x04\x1a\x1a\x1c\x20used\x20by:\x20P2PRE\ + QTYPE.LISTEN\n\n\r\n\x05\x04\0\x02\x08\x04\x12\x04=\x04;\"\n\x0c\n\x05\ + \x04\0\x02\x08\x05\x12\x03=\x04\x08\n\x0c\n\x05\x04\0\x02\x08\x01\x12\ + \x03=\t\x15\n\x0c\n\x05\x04\0\x02\x08\x03\x12\x03=\x18\x19\nX\n\x02\x04\ + \x01\x12\x04A\0I\x01\x1aL\x20P2PResponse\x20is\x20a\x20response\x20messa\ + ge\x20sent\x20in\x20response\x20to\x20a\x20P2PRequest\x20message\n\n\n\n\ + \x03\x04\x01\x01\x12\x03A\x08\x13\n\x0b\n\x04\x04\x01\x02\0\x12\x03B\x04\ + \x1f\n\r\n\x05\x04\x01\x02\0\x04\x12\x04B\x04A\x15\n\x0c\n\x05\x04\x01\ + \x02\0\x06\x12\x03B\x04\x0e\n\x0c\n\x05\x04\x01\x02\0\x01\x12\x03B\x0f\ + \x1a\n\x0c\n\x05\x04\x01\x02\0\x03\x12\x03B\x1d\x1e\n)\n\x04\x04\x01\x02\ + \x01\x12\x03D\x04\x1e\x1a\x1c\x20sent\x20by:\x20P2PREQTYPE.LISTEN\n\n\ + \x0c\n\x05\x04\x01\x02\x01\x04\x12\x03D\x04\x0c\n\x0c\n\x05\x04\x01\x02\ + \x01\x05\x12\x03D\r\x13\n\x0c\n\x05\x04\x01\x02\x01\x01\x12\x03D\x14\x19\ + \n\x0c\n\x05\x04\x01\x02\x01\x03\x12\x03D\x1c\x1d\nU\n\x04\x04\x01\x02\ + \x02\x12\x03F\x04\x1a\x1aH\x20sent\x20by:\x20P2PREQTYPE.CLOSE\x20to\x20i\ + ndicate\x20the\x20number\x20of\x20connections\x20closed\n\n\r\n\x05\x04\ + \x01\x02\x02\x04\x12\x04F\x04D\x1e\n\x0c\n\x05\x04\x01\x02\x02\x05\x12\ + \x03F\x04\t\n\x0c\n\x05\x04\x01\x02\x02\x01\x12\x03F\n\x15\n\x0c\n\x05\ + \x04\x01\x02\x02\x03\x12\x03F\x18\x19\nO\n\x04\x04\x01\x02\x03\x12\x03H\ + \x04'\x1aB\x20sent\x20by:\x20P2PREQTYPE.LS\x20and\x20contains\x20all\x20\ + known\x20stream\x20information\n\n\x0c\n\x05\x04\x01\x02\x03\x04\x12\x03\ + H\x04\x0c\n\x0c\n\x05\x04\x01\x02\x03\x06\x12\x03H\r\x16\n\x0c\n\x05\x04\ + \x01\x02\x03\x01\x12\x03H\x17\"\n\x0c\n\x05\x04\x01\x02\x03\x03\x12\x03H\ + %&\nF\n\x02\x04\x02\x12\x04L\0R\x01\x1a:\x20P2PLsInfo\x20contains\x20inf\ + ormation\x20about\x20a\x20single\x20p2p\x20stream\n\n\n\n\x03\x04\x02\ + \x01\x12\x03L\x08\x11\n\x0b\n\x04\x04\x02\x02\0\x12\x03M\x04\x1c\n\r\n\ + \x05\x04\x02\x02\0\x04\x12\x04M\x04L\x13\n\x0c\n\x05\x04\x02\x02\0\x05\ + \x12\x03M\x04\n\n\x0c\n\x05\x04\x02\x02\0\x01\x12\x03M\x0b\x17\n\x0c\n\ + \x05\x04\x02\x02\0\x03\x12\x03M\x1a\x1b\n\x0b\n\x04\x04\x02\x02\x01\x12\ + \x03N\x04\x1d\n\r\n\x05\x04\x02\x02\x01\x04\x12\x04N\x04M\x1c\n\x0c\n\ + \x05\x04\x02\x02\x01\x05\x12\x03N\x04\n\n\x0c\n\x05\x04\x02\x02\x01\x01\ + \x12\x03N\x0b\x18\n\x0c\n\x05\x04\x02\x02\x01\x03\x12\x03N\x1b\x1c\n\x0b\ + \n\x04\x04\x02\x02\x02\x12\x03O\x04\x1d\n\r\n\x05\x04\x02\x02\x02\x04\ + \x12\x04O\x04N\x1d\n\x0c\n\x05\x04\x02\x02\x02\x05\x12\x03O\x04\n\n\x0c\ + \n\x05\x04\x02\x02\x02\x01\x12\x03O\x0b\x18\n\x0c\n\x05\x04\x02\x02\x02\ + \x03\x12\x03O\x1b\x1c\nP\n\x04\x04\x02\x02\x03\x12\x03Q\x04\x13\x1aC\x20\ + indicates\x20whether\x20or\x20not\x20this\x20is\x20a\x20p2p\x20listener\ + \x20or\x20local\x20listener\n\n\r\n\x05\x04\x02\x02\x03\x04\x12\x04Q\x04\ + O\x1d\n\x0c\n\x05\x04\x02\x02\x03\x05\x12\x03Q\x04\x08\n\x0c\n\x05\x04\ + \x02\x02\x03\x01\x12\x03Q\t\x0e\n\x0c\n\x05\x04\x02\x02\x03\x03\x12\x03Q\ + \x11\x12\nW\n\x02\x04\x03\x12\x04U\0X\x01\x1aK\x20GetPeersResponse\x20is\ + \x20a\x20response\x20to\x20GetPeers\x20containing\x20a\x20slice\x20of\ + \x20peer\x20IDs\n\n\n\n\x03\x04\x03\x01\x12\x03U\x08\x18\n\"\n\x04\x04\ + \x03\x02\0\x12\x03W\x04\x20\x1a\x15\x20a\x20slice\x20of\x20peer\x20IDs\n\ + \n\x0c\n\x05\x04\x03\x02\0\x04\x12\x03W\x04\x0c\n\x0c\n\x05\x04\x03\x02\ + \0\x05\x12\x03W\r\x13\n\x0c\n\x05\x04\x03\x02\0\x01\x12\x03W\x14\x1b\n\ + \x0c\n\x05\x04\x03\x02\0\x03\x12\x03W\x1e\x1f\nW\n\x02\x05\x01\x12\x04[\ + \0e\x01\x1aK\x20CONNMGMTREQTYPE\x20indicates\x20the\x20particular\x20Con\ + nMgmt\x20request\x20being\x20performed\n\n\n\n\x03\x05\x01\x01\x12\x03[\ + \x05\x14\n=\n\x04\x05\x01\x02\0\x12\x03]\x04\x13\x1a0\x20CM_CONNECT\x20i\ + s\x20used\x20to\x20connect\x20to\x20a\x20libp2p\x20peer\n\n\x0c\n\x05\ + \x05\x01\x02\0\x01\x12\x03]\x04\x0e\n\x0c\n\x05\x05\x01\x02\0\x02\x12\ + \x03]\x11\x12\nE\n\x04\x05\x01\x02\x01\x12\x03_\x04\x16\x1a8\x20CM_DISCO\ + NNECT\x20is\x20used\x20to\x20disconnect\x20from\x20a\x20libp2p\x20peer\n\ + \n\x0c\n\x05\x05\x01\x02\x01\x01\x12\x03_\x04\x11\n\x0c\n\x05\x05\x01\ + \x02\x01\x02\x12\x03_\x14\x15\n\x9f\x01\n\x04\x05\x01\x02\x02\x12\x03b\ + \x04\x12\x1a\x91\x01\x20CM_STATUS\x20is\x20used\x20to\x20return\x20statu\ + s\x20information\x20about\x20libp2p\x20peer\x20connections\n\x20useful\ + \x20for\x20determining\x20whether\x20or\x20not\x20we\x20are\x20connected\ + \x20to\x20someone\n\n\x0c\n\x05\x05\x01\x02\x02\x01\x12\x03b\x04\r\n\x0c\ + \n\x05\x05\x01\x02\x02\x02\x12\x03b\x10\x11\n<\n\x04\x05\x01\x02\x03\x12\ + \x03d\x04\x15\x1a/CM_GET_PEERS\x20is\x20used\x20to\x20return\x20all\x20k\ + nown\x20peers\n\n\x0c\n\x05\x05\x01\x02\x03\x01\x12\x03d\x04\x10\n\x0c\n\ + \x05\x05\x01\x02\x03\x02\x12\x03d\x13\x14\n\n\n\x02\x04\x04\x12\x04g\0p\ + \x01\n\n\n\x03\x04\x04\x01\x12\x03g\x08\x17\nU\n\x04\x04\x04\x02\0\x12\ + \x03i\x04$\x1aH\x20indicates\x20the\x20particular\x20connection\x20manag\ + ement\x20request\x20being\x20performed\n\n\r\n\x05\x04\x04\x02\0\x04\x12\ + \x04i\x04g\x19\n\x0c\n\x05\x04\x04\x02\0\x06\x12\x03i\x04\x13\n\x0c\n\ + \x05\x04\x04\x02\0\x01\x12\x03i\x14\x1f\n\x0c\n\x05\x04\x04\x02\0\x03\ + \x12\x03i\"#\n8\n\x04\x04\x04\x02\x01\x12\x03l\x04#\x1a+\x20a\x20list\ + \x20of\x20multiaddrs\n\x20sent\x20by:\x20CM_CONNECT\n\n\x0c\n\x05\x04\ + \x04\x02\x01\x04\x12\x03l\x04\x0c\n\x0c\n\x05\x04\x04\x02\x01\x05\x12\ + \x03l\r\x13\n\x0c\n\x05\x04\x04\x02\x01\x01\x12\x03l\x14\x1e\n\x0c\n\x05\ + \x04\x04\x02\x01\x03\x12\x03l!\"\nR\n\x04\x04\x04\x02\x02\x12\x03o\x04\ + \x20\x1aE\x20a\x20list\x20of\x20peer\x20IDs\n\x20sent\x20by:\x20CM_DISCO\ + NNECT,\x20CM_STATUS,\x20CM_GET_PEERS\n\n\x0c\n\x05\x04\x04\x02\x02\x04\ + \x12\x03o\x04\x0c\n\x0c\n\x05\x04\x04\x02\x02\x05\x12\x03o\r\x13\n\x0c\n\ + \x05\x04\x04\x02\x02\x01\x12\x03o\x14\x1b\n\x0c\n\x05\x04\x04\x02\x02\ + \x03\x12\x03o\x1e\x1f\n\n\n\x02\x04\x05\x12\x04r\0y\x01\n\n\n\x03\x04\ + \x05\x01\x12\x03r\x08\x18\nU\n\x04\x04\x05\x02\0\x12\x03t\x04$\x1aH\x20i\ + ndicates\x20the\x20particular\x20connection\x20management\x20request\x20\ + being\x20performed\n\n\r\n\x05\x04\x05\x02\0\x04\x12\x04t\x04r\x1a\n\x0c\ + \n\x05\x04\x05\x02\0\x06\x12\x03t\x04\x13\n\x0c\n\x05\x04\x05\x02\0\x01\ + \x12\x03t\x14\x1f\n\x0c\n\x05\x04\x05\x02\0\x03\x12\x03t\"#\n\x0b\n\x04\ + \x04\x05\x02\x01\x12\x03u\x04$\n\r\n\x05\x04\x05\x02\x01\x04\x12\x04u\ + \x04t$\n\x0c\n\x05\x04\x05\x02\x01\x06\x12\x03u\x04\x15\n\x0c\n\x05\x04\ + \x05\x02\x01\x01\x12\x03u\x16\x1f\n\x0c\n\x05\x04\x05\x02\x01\x03\x12\ + \x03u\"#\nh\n\x04\x04\x05\x02\x02\x12\x03w\x04+\x1a[\x20a\x20map\x20of\ + \x20the\x20peer\x20id,\x20and\x20a\x20custom\x20message\x20indicating\ + \x20success,\x20or\x20why\x20there\x20was\x20a\x20failure\n\n\r\n\x05\ + \x04\x05\x02\x02\x04\x12\x04w\x04u$\n\x0c\n\x05\x04\x05\x02\x02\x06\x12\ + \x03w\x04\x1f\n\x0c\n\x05\x04\x05\x02\x02\x01\x12\x03w\x20&\n\x0c\n\x05\ + \x04\x05\x02\x02\x03\x12\x03w)*\n\x0b\n\x04\x04\x05\x02\x03\x12\x03x\x04\ + \x20\n\x0c\n\x05\x04\x05\x02\x03\x04\x12\x03x\x04\x0c\n\x0c\n\x05\x04\ + \x05\x02\x03\x05\x12\x03x\r\x13\n\x0c\n\x05\x04\x05\x02\x03\x01\x12\x03x\ + \x14\x1b\n\x0c\n\x05\x04\x05\x02\x03\x03\x12\x03x\x1e\x1f\nP\n\x02\x04\ + \x06\x12\x05|\0\x81\x01\x01\x1aC\x20Contains\x20status\x20information\ + \x20about\x20a\x20particular\x20disconnect\x20attempt\n\n\n\n\x03\x04\ + \x06\x01\x12\x03|\x08\x16\n?\n\x04\x04\x06\x02\0\x12\x03~\x04\x1a\x1a2\ + \x20indicate\x20whether\x20or\x20not\x20we\x20actually\x20disconnected\n\ + \n\r\n\x05\x04\x06\x02\0\x04\x12\x04~\x04|\x18\n\x0c\n\x05\x04\x06\x02\0\ + \x05\x12\x03~\x04\x08\n\x0c\n\x05\x04\x06\x02\0\x01\x12\x03~\t\x15\n\x0c\ + \n\x05\x04\x06\x02\0\x03\x12\x03~\x18\x19\nD\n\x04\x04\x06\x02\x01\x12\ + \x04\x80\x01\x04\x16\x1a6\x20if\x20disconnected\x20is\x20false,\x20the\ + \x20reason\x20why\x20it\x20is\x20false\n\n\x0e\n\x05\x04\x06\x02\x01\x04\ + \x12\x05\x80\x01\x04~\x1a\n\r\n\x05\x04\x06\x02\x01\x05\x12\x04\x80\x01\ + \x04\n\n\r\n\x05\x04\x06\x02\x01\x01\x12\x04\x80\x01\x0b\x11\n\r\n\x05\ + \x04\x06\x02\x01\x03\x12\x04\x80\x01\x14\x15\nU\n\x02\x05\x02\x12\x06\ + \x84\x01\0\x89\x01\x01\x1aG\x20EXTRASREQTYPE\x20indicates\x20the\x20part\ + icular\x20Extras\x20request\x20being\x20performed\n\n\x0b\n\x03\x05\x02\ + \x01\x12\x04\x84\x01\x05\x12\nL\n\x04\x05\x02\x02\0\x12\x04\x86\x01\x04\ + \x12\x1a>\x20EX_ENABLE\x20is\x20used\x20to\x20enable\x20a\x20particular\ + \x20node\x20extras\x20feature\n\n\r\n\x05\x05\x02\x02\0\x01\x12\x04\x86\ + \x01\x04\r\n\r\n\x05\x05\x02\x02\0\x02\x12\x04\x86\x01\x10\x11\nN\n\x04\ + \x05\x02\x02\x01\x12\x04\x88\x01\x04\x13\x1a@\x20EX_DISABLE\x20is\x20use\ + d\x20to\x20disable\x20a\x20particular\x20node\x20extras\x20feature\n\n\r\ + \n\x05\x05\x02\x02\x01\x01\x12\x04\x88\x01\x04\x0e\n\r\n\x05\x05\x02\x02\ + \x01\x02\x12\x04\x88\x01\x11\x12\n;\n\x02\x05\x03\x12\x06\x8c\x01\0\x95\ + \x01\x01\x1a-\x20EXTRASTYPE\x20denotes\x20a\x20particular\x20extras\x20t\ + ype\n\n\x0b\n\x03\x05\x03\x01\x12\x04\x8c\x01\x05\x0f\n0\n\x04\x05\x03\ + \x02\0\x12\x04\x8e\x01\x04\x11\x1a\"\x20IDENTIFY\x20is\x20the\x20identif\ + y\x20service\n\n\r\n\x05\x05\x03\x02\0\x01\x12\x04\x8e\x01\x04\x0c\n\r\n\ + \x05\x05\x03\x02\0\x02\x12\x04\x8e\x01\x0f\x10\n2\n\x04\x05\x03\x02\x01\ + \x12\x04\x90\x01\x04\x0f\x1a$\x20PUBSUB\x20is\x20the\x20libp2p\x20pubsub\ + \x20system\n\n\r\n\x05\x05\x03\x02\x01\x01\x12\x04\x90\x01\x04\n\n\r\n\ + \x05\x05\x03\x02\x01\x02\x12\x04\x90\x01\r\x0e\n7\n\x04\x05\x03\x02\x02\ + \x12\x04\x92\x01\x04\x12\x1a)\x20DISCOVERY\x20is\x20a\x20libp2p\x20disco\ + very\x20service\n\n\r\n\x05\x05\x03\x02\x02\x01\x12\x04\x92\x01\x04\r\n\ + \r\n\x05\x05\x03\x02\x02\x02\x12\x04\x92\x01\x10\x11\n?\n\x04\x05\x03\ + \x02\x03\x12\x04\x94\x01\x04\r\x1a1\x20MDNS\x20is\x20used\x20to\x20disco\ + ver\x20libp2p\x20hosts\x20over\x20mdns\n\n\r\n\x05\x05\x03\x02\x03\x01\ + \x12\x04\x94\x01\x04\x08\n\r\n\x05\x05\x03\x02\x03\x02\x12\x04\x94\x01\ + \x0b\x0c\n\x0c\n\x02\x04\x07\x12\x06\x97\x01\0\x9c\x01\x01\n\x0b\n\x03\ + \x04\x07\x01\x12\x04\x97\x01\x08\x15\n5\n\x04\x04\x07\x02\0\x12\x04\x99\ + \x01\x04\"\x1a'\x20indicates\x20the\x20request\x20being\x20performed\n\n\ + \x0f\n\x05\x04\x07\x02\0\x04\x12\x06\x99\x01\x04\x97\x01\x17\n\r\n\x05\ + \x04\x07\x02\0\x06\x12\x04\x99\x01\x04\x11\n\r\n\x05\x04\x07\x02\0\x01\ + \x12\x04\x99\x01\x12\x1d\n\r\n\x05\x04\x07\x02\0\x03\x12\x04\x99\x01\x20\ + !\nD\n\x04\x04\x07\x02\x01\x12\x04\x9b\x01\x04!\x1a6\x20indicates\x20the\ + \x20extras\x20feature\x20this\x20request\x20applies\x20to\n\n\x0f\n\x05\ + \x04\x07\x02\x01\x04\x12\x06\x9b\x01\x04\x99\x01\"\n\r\n\x05\x04\x07\x02\ + \x01\x06\x12\x04\x9b\x01\x04\x0e\n\r\n\x05\x04\x07\x02\x01\x01\x12\x04\ + \x9b\x01\x0f\x1c\n\r\n\x05\x04\x07\x02\x01\x03\x12\x04\x9b\x01\x1f\x20\n\ + A\n\x02\x05\x04\x12\x06\xa0\x01\0\xb0\x01\x01\x1a3\x20BSREQTYPE\x20is\ + \x20a\x20particular\x20blockstore\x20request\x20type\n\n\x0b\n\x03\x05\ + \x04\x01\x12\x04\xa0\x01\x05\x0e\nB\n\x04\x05\x04\x02\0\x12\x04\xa2\x01\ + \x04\x12\x1a4\x20BS_DELETE\x20is\x20used\x20to\x20delete\x20a\x20block\ + \x20from\x20the\x20store\n\n\r\n\x05\x05\x04\x02\0\x01\x12\x04\xa2\x01\ + \x04\r\n\r\n\x05\x05\x04\x02\0\x02\x12\x04\xa2\x01\x10\x11\nA\n\x04\x05\ + \x04\x02\x01\x12\x04\xa4\x01\x04\x0f\x1a3\x20BS_PUT\x20is\x20used\x20to\ + \x20put\x20a\x20single\x20block\x20in\x20the\x20store\n\n\r\n\x05\x05\ + \x04\x02\x01\x01\x12\x04\xa4\x01\x04\n\n\r\n\x05\x05\x04\x02\x01\x02\x12\ + \x04\xa4\x01\r\x0e\nC\n\x04\x05\x04\x02\x02\x12\x04\xa6\x01\x04\x14\x1a5\ + \x20BS_PUT_MANY\x20is\x20used\x20to\x20put\x20many\x20blocks\x20in\x20th\ + e\x20store\n\n\r\n\x05\x05\x04\x02\x02\x01\x12\x04\xa6\x01\x04\x0f\n\r\n\ + \x05\x05\x04\x02\x02\x02\x12\x04\xa6\x01\x12\x13\n<\n\x04\x05\x04\x02\ + \x03\x12\x04\xa8\x01\x04\x0f\x1a.\x20BS_GET\x20is\x20used\x20to\x20get\ + \x20a\x20block\x20from\x20the\x20store\n\n\r\n\x05\x05\x04\x02\x03\x01\ + \x12\x04\xa8\x01\x04\n\n\r\n\x05\x05\x04\x02\x03\x02\x12\x04\xa8\x01\r\ + \x0e\nE\n\x04\x05\x04\x02\x04\x12\x04\xaa\x01\x04\x14\x1a7\x20BS_GET_MAN\ + Y\x20is\x20used\x20to\x20get\x20many\x20blocks\x20from\x20the\x20store\n\ + \n\r\n\x05\x05\x04\x02\x04\x01\x12\x04\xaa\x01\x04\x0f\n\r\n\x05\x05\x04\ + \x02\x04\x02\x12\x04\xaa\x01\x12\x13\n~\n\x04\x05\x04\x02\x05\x12\x04\ + \xad\x01\x04\x13\x1ap\x20BS_GET_ALL\x20is\x20used\x20to\x20retrieve\x20a\ + ll\x20blocks\x20from\x20the\x20store\n\x20It\x20is\x20the\x20gRPC\x20equ\ + ivalent\x20of\x20Blockstore::AllKeysChan\n\n\r\n\x05\x05\x04\x02\x05\x01\ + \x12\x04\xad\x01\x04\x0e\n\r\n\x05\x05\x04\x02\x05\x02\x12\x04\xad\x01\ + \x11\x12\nS\n\x04\x05\x04\x02\x06\x12\x04\xaf\x01\x04\x15\x1aE\x20BS_GET\ + _STATS\x20is\x20used\x20to\x20retrieve\x20statistics\x20about\x20individ\ + ual\x20blocks\n\n\r\n\x05\x05\x04\x02\x06\x01\x12\x04\xaf\x01\x04\x10\n\ + \r\n\x05\x05\x04\x02\x06\x02\x12\x04\xaf\x01\x13\x14\n=\n\x02\x05\x05\ + \x12\x06\xb3\x01\0\xb8\x01\x01\x1a/\x20BSREQOPTS\x20are\x20options\x20fo\ + r\x20blockstore\x20requests\n\n\x0b\n\x03\x05\x05\x01\x12\x04\xb3\x01\ + \x05\x0e\n=\n\x04\x05\x05\x02\0\x12\x04\xb5\x01\x04\x10\x1a/\x20DEFAULT\ + \x20indicates\x20to\x20use\x20the\x20default\x20settings\n\n\r\n\x05\x05\ + \x05\x02\0\x01\x12\x04\xb5\x01\x04\x0b\n\r\n\x05\x05\x05\x02\0\x02\x12\ + \x04\xb5\x01\x0e\x0f\nY\n\x04\x05\x05\x02\x01\x12\x04\xb7\x01\x04\x11\ + \x1aK\x20BS_FORCE\x20indicates\x20to\x20force\x20the\x20request\x20regar\ + dless\x20of\x20any\x20possible\x20issues\n\n\r\n\x05\x05\x05\x02\x01\x01\ + \x12\x04\xb7\x01\x04\x0c\n\r\n\x05\x05\x05\x02\x01\x02\x12\x04\xb7\x01\ + \x0f\x10\nJ\n\x02\x04\x08\x12\x06\xbb\x01\0\xcc\x01\x01\x1a<\x20Blocksto\ + reRequest\x20is\x20a\x20message\x20used\x20to\x20control\x20blockstores\ + \n\n\x0b\n\x03\x04\x08\x01\x12\x04\xbb\x01\x08\x19\nA\n\x04\x04\x08\x02\ + \0\x12\x04\xbd\x01\x04\x1e\x1a3\x20\x20indicates\x20the\x20particular\ + \x20request\x20type\x20being\x20made\n\n\x0f\n\x05\x04\x08\x02\0\x04\x12\ + \x06\xbd\x01\x04\xbb\x01\x1b\n\r\n\x05\x04\x08\x02\0\x06\x12\x04\xbd\x01\ + \x04\r\n\r\n\x05\x04\x08\x02\0\x01\x12\x04\xbd\x01\x0e\x19\n\r\n\x05\x04\ + \x08\x02\0\x03\x12\x04\xbd\x01\x1c\x1d\n)\n\x04\x04\x08\x02\x01\x12\x04\ + \xbf\x01\x04#\x1a\x1b\x20optional\x20request\x20settings\n\n\r\n\x05\x04\ + \x08\x02\x01\x04\x12\x04\xbf\x01\x04\x0c\n\r\n\x05\x04\x08\x02\x01\x06\ + \x12\x04\xbf\x01\r\x16\n\r\n\x05\x04\x08\x02\x01\x01\x12\x04\xbf\x01\x17\ + \x1e\n\r\n\x05\x04\x08\x02\x01\x03\x12\x04\xbf\x01!\"\nU\n\x04\x04\x08\ + \x02\x02\x12\x04\xc2\x01\x04\x1d\x1aG\x20cids\x20of\x20blocks\n\x20sent\ + \x20by:\x20BS_DELETE,\x20BS_GET,\x20BS_GET_MANY,\x20BS_GET_STATS\n\n\r\n\ + \x05\x04\x08\x02\x02\x04\x12\x04\xc2\x01\x04\x0c\n\r\n\x05\x04\x08\x02\ + \x02\x05\x12\x04\xc2\x01\r\x13\n\r\n\x05\x04\x08\x02\x02\x01\x12\x04\xc2\ + \x01\x14\x18\n\r\n\x05\x04\x08\x02\x02\x03\x12\x04\xc2\x01\x1b\x1c\nE\n\ + \x04\x04\x08\x02\x03\x12\x04\xc5\x01\x04\x1c\x1a7\x20the\x20data\x20we\ + \x20are\x20putting\n\x20sent\x20by:\x20BS_PUT,\x20BS_PUT_MANY\n\n\r\n\ + \x05\x04\x08\x02\x03\x04\x12\x04\xc5\x01\x04\x0c\n\r\n\x05\x04\x08\x02\ + \x03\x05\x12\x04\xc5\x01\r\x12\n\r\n\x05\x04\x08\x02\x03\x01\x12\x04\xc5\ + \x01\x13\x17\n\r\n\x05\x04\x08\x02\x03\x03\x12\x04\xc5\x01\x1a\x1b\nl\n\ + \x04\x04\x08\x02\x04\x12\x04\xc8\x01\x04\x1a\x1a^\x20the\x20cid\x20versi\ + on\x20to\x20use\x20when\x20constructing\x20blocks,\x20default\x20is\x20v\ + 1\n\x20sent\x20by:\x20BS_PUT,\x20BS_PUT_MANY\n\n\x0f\n\x05\x04\x08\x02\ + \x04\x04\x12\x06\xc8\x01\x04\xc5\x01\x1c\n\r\n\x05\x04\x08\x02\x04\x05\ + \x12\x04\xc8\x01\x04\n\n\r\n\x05\x04\x08\x02\x04\x01\x12\x04\xc8\x01\x0b\ + \x15\n\r\n\x05\x04\x08\x02\x04\x03\x12\x04\xc8\x01\x18\x19\nt\n\x04\x04\ + \x08\x02\x05\x12\x04\xcb\x01\x04\x18\x1af\x20the\x20hash\x20function\x20\ + to\x20use\x20when\x20constructing\x20blocks,\x20default\x20is\x20sha2-25\ + 6\n\x20sent\x20by:\x20BS_PUT,\x20BS_PUT_MANY\n\n\x0f\n\x05\x04\x08\x02\ + \x05\x04\x12\x06\xcb\x01\x04\xc8\x01\x1a\n\r\n\x05\x04\x08\x02\x05\x05\ + \x12\x04\xcb\x01\x04\n\n\r\n\x05\x04\x08\x02\x05\x01\x12\x04\xcb\x01\x0b\ + \x13\n\r\n\x05\x04\x08\x02\x05\x03\x12\x04\xcb\x01\x16\x17\nH\n\x02\x04\ + \t\x12\x06\xcf\x01\0\xdc\x01\x01\x1a:\x20BlockstoreResponse\x20is\x20a\ + \x20response\x20to\x20a\x20BlockstoreqRequest\n\n\x0b\n\x03\x04\t\x01\ + \x12\x04\xcf\x01\x08\x1a\n@\n\x04\x04\t\x02\0\x12\x04\xd1\x01\x04\x1e\ + \x1a2\x20indicates\x20the\x20particular\x20request\x20type\x20being\x20m\ + ade\n\n\x0f\n\x05\x04\t\x02\0\x04\x12\x06\xd1\x01\x04\xcf\x01\x1c\n\r\n\ + \x05\x04\t\x02\0\x06\x12\x04\xd1\x01\x04\r\n\r\n\x05\x04\t\x02\0\x01\x12\ + \x04\xd1\x01\x0e\x19\n\r\n\x05\x04\t\x02\0\x03\x12\x04\xd1\x01\x1c\x1d\n\ + \xf7\x02\n\x04\x04\t\x02\x01\x12\x04\xdb\x01\x04\x1e\x1a\xe8\x02\x20a\ + \x20copy\x20of\x20blocks\x20from\x20the\x20blockstore\n\x20sent\x20by:\ + \x20BS_PUT,\x20BS_PUT_MANY,\x20BS_GET,\x20BS_GET_MANY,\x20BS_GET_STATS,\ + \x20BS_GET_ALL\n\n\x20in\x20the\x20case\x20of\x20BS_PUT,\x20and\x20BS_PU\ + T_MANY\x20requests\n\x20the\x20data\x20field\x20will\x20be\x20empty\x20a\ + s\x20this\x20is\x20only\x20populated\n\x20by\x20get\x20requests\n\n\x20i\ + n\x20the\x20case\x20of\x20BS_GET_STATS\x20only\x20the\x20cid,\x20and\x20\ + size\x20params\n\x20will\x20be\x20filled\x20out,\x20since\x20we\x20are\ + \x20just\x20interested\x20in\x20the\x20size\n\n\r\n\x05\x04\t\x02\x01\ + \x04\x12\x04\xdb\x01\x04\x0c\n\r\n\x05\x04\t\x02\x01\x06\x12\x04\xdb\x01\ + \r\x12\n\r\n\x05\x04\t\x02\x01\x01\x12\x04\xdb\x01\x13\x19\n\r\n\x05\x04\ + \t\x02\x01\x03\x12\x04\xdb\x01\x1c\x1d\n\x0c\n\x02\x04\n\x12\x06\xde\x01\ + \0\xe7\x01\x01\n\x0b\n\x03\x04\n\x01\x12\x04\xde\x01\x08\r\n2\n\x04\x04\ + \n\x02\0\x12\x04\xe0\x01\x04\x13\x1a$\x20cid\x20is\x20the\x20identifier\ + \x20of\x20the\x20block\n\n\x0f\n\x05\x04\n\x02\0\x04\x12\x06\xe0\x01\x04\ + \xde\x01\x0f\n\r\n\x05\x04\n\x02\0\x05\x12\x04\xe0\x01\x04\n\n\r\n\x05\ + \x04\n\x02\0\x01\x12\x04\xe0\x01\x0b\x0e\n\r\n\x05\x04\n\x02\0\x03\x12\ + \x04\xe0\x01\x11\x12\n8\n\x04\x04\n\x02\x01\x12\x04\xe2\x01\x04\x13\x1a*\ + \x20data\x20is\x20the\x20actual\x20contents\x20of\x20the\x20block\n\n\ + \x0f\n\x05\x04\n\x02\x01\x04\x12\x06\xe2\x01\x04\xe0\x01\x13\n\r\n\x05\ + \x04\n\x02\x01\x05\x12\x04\xe2\x01\x04\t\n\r\n\x05\x04\n\x02\x01\x01\x12\ + \x04\xe2\x01\n\x0e\n\r\n\x05\x04\n\x02\x01\x03\x12\x04\xe2\x01\x11\x12\n\ + \x89\x01\n\x04\x04\n\x02\x02\x12\x04\xe6\x01\x04\x13\x1a{\x20size\x20of\ + \x20the\x20block,\x20only\x20filled\x20out\x20by\x20BS_GET_STATS\n\x20si\ + nce\x20if\x20we\x20just\x20want\x20stats,\x20we\x20dont\x20want\x20to\ + \x20\n\x20retrieve\x20all\x20teh\x20data.\n\n\x0f\n\x05\x04\n\x02\x02\ + \x04\x12\x06\xe6\x01\x04\xe2\x01\x13\n\r\n\x05\x04\n\x02\x02\x05\x12\x04\ + \xe6\x01\x04\t\n\r\n\x05\x04\n\x02\x02\x01\x12\x04\xe6\x01\n\x0e\n\r\n\ + \x05\x04\n\x02\x02\x03\x12\x04\xe6\x01\x11\x12\nR\n\x02\x05\x06\x12\x06\ + \xea\x01\0\xf5\x01\x01\x1aD\x20DAGREQTYPE\x20indicates\x20the\x20particu\ lar\x20DagAPI\x20request\x20being\x20performed\n\n\x0b\n\x03\x05\x06\x01\ - \x12\x04\xe0\x01\x05\x0f\n7\n\x04\x05\x06\x02\0\x12\x04\xe2\x01\x04\x10\ + \x12\x04\xea\x01\x05\x0f\n7\n\x04\x05\x06\x02\0\x12\x04\xec\x01\x04\x10\ \x1a)\x20DAG_PUT\x20is\x20used\x20to\x20add\x20new\x20IPLD\x20objects\n\ - \n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xe2\x01\x04\x0b\n\r\n\x05\x05\x06\ - \x02\0\x02\x12\x04\xe2\x01\x0e\x0f\n<\n\x04\x05\x06\x02\x01\x12\x04\xe4\ + \n\r\n\x05\x05\x06\x02\0\x01\x12\x04\xec\x01\x04\x0b\n\r\n\x05\x05\x06\ + \x02\0\x02\x12\x04\xec\x01\x0e\x0f\n<\n\x04\x05\x06\x02\x01\x12\x04\xee\ \x01\x04\x10\x1a.\x20DAG_GET\x20is\x20used\x20to\x20retrieve\x20IPLD\x20\ - object\x20data\n\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xe4\x01\x04\x0b\n\ - \r\n\x05\x05\x06\x02\x01\x02\x12\x04\xe4\x01\x0e\x0f\nE\n\x04\x05\x06\ - \x02\x02\x12\x04\xe6\x01\x04\x15\x1a7\x20DAG_NEW_NODE\x20is\x20used\x20t\ + object\x20data\n\n\r\n\x05\x05\x06\x02\x01\x01\x12\x04\xee\x01\x04\x0b\n\ + \r\n\x05\x05\x06\x02\x01\x02\x12\x04\xee\x01\x0e\x0f\nE\n\x04\x05\x06\ + \x02\x02\x12\x04\xf0\x01\x04\x15\x1a7\x20DAG_NEW_NODE\x20is\x20used\x20t\ o\x20create\x20a\x20new\x20IPLD\x20node\x20object\n\n\r\n\x05\x05\x06\ - \x02\x02\x01\x12\x04\xe6\x01\x04\x10\n\r\n\x05\x05\x06\x02\x02\x02\x12\ - \x04\xe6\x01\x13\x14\nI\n\x04\x05\x06\x02\x03\x12\x04\xe8\x01\x04\x16\ + \x02\x02\x01\x12\x04\xf0\x01\x04\x10\n\r\n\x05\x05\x06\x02\x02\x02\x12\ + \x04\xf0\x01\x13\x14\nI\n\x04\x05\x06\x02\x03\x12\x04\xf2\x01\x04\x16\ \x1a;\x20DAG_ADD_LINKS\x20is\x20used\x20to\x20add\x20links\x20to\x20an\ - \x20IPLD\x20node\x20object\n\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xe8\ - \x01\x04\x11\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xe8\x01\x14\x15\n\\\n\ - \x04\x05\x06\x02\x04\x12\x04\xea\x01\x04\x16\x1aN\x20DAG_GET_LINKS\x20is\ + \x20IPLD\x20node\x20object\n\n\r\n\x05\x05\x06\x02\x03\x01\x12\x04\xf2\ + \x01\x04\x11\n\r\n\x05\x05\x06\x02\x03\x02\x12\x04\xf2\x01\x14\x15\n\\\n\ + \x04\x05\x06\x02\x04\x12\x04\xf4\x01\x04\x16\x1aN\x20DAG_GET_LINKS\x20is\ \x20used\x20to\x20retrieve\x20all\x20links\x20contained\x20in\x20an\x20I\ - PLD\x20node\x20object\n\n\r\n\x05\x05\x06\x02\x04\x01\x12\x04\xea\x01\ - \x04\x11\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xea\x01\x14\x15\nA\n\x02\ - \x04\x0b\x12\x06\xee\x01\0\x87\x02\x01\x1a3\x20Used\x20to\x20submit\x20a\ + PLD\x20node\x20object\n\n\r\n\x05\x05\x06\x02\x04\x01\x12\x04\xf4\x01\ + \x04\x11\n\r\n\x05\x05\x06\x02\x04\x02\x12\x04\xf4\x01\x14\x15\nA\n\x02\ + \x04\x0b\x12\x06\xf8\x01\0\x91\x02\x01\x1a3\x20Used\x20to\x20submit\x20a\ \x20request\x20to\x20Dag\x20or\x20DagStream\x20RPCs\n\n\x0b\n\x03\x04\ - \x0b\x01\x12\x04\xee\x01\x08\x12\nQ\n\x04\x04\x0b\x02\0\x12\x04\xf1\x01\ + \x0b\x01\x12\x04\xf8\x01\x08\x12\nQ\n\x04\x04\x0b\x02\0\x12\x04\xfb\x01\ \x04\x1f\x1aC\x20indicates\x20the\x20request\x20being\x20performed\n\x20\ sent\x20by:\x20all\x20request\x20types\n\n\x0f\n\x05\x04\x0b\x02\0\x04\ - \x12\x06\xf1\x01\x04\xee\x01\x14\n\r\n\x05\x04\x0b\x02\0\x06\x12\x04\xf1\ - \x01\x04\x0e\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\xf1\x01\x0f\x1a\n\r\n\ - \x05\x04\x0b\x02\0\x03\x12\x04\xf1\x01\x1d\x1e\nL\n\x04\x04\x0b\x02\x01\ - \x12\x04\xf4\x01\x04\x13\x1a>\x20data\x20that\x20we\x20will\x20be\x20sto\ + \x12\x06\xfb\x01\x04\xf8\x01\x14\n\r\n\x05\x04\x0b\x02\0\x06\x12\x04\xfb\ + \x01\x04\x0e\n\r\n\x05\x04\x0b\x02\0\x01\x12\x04\xfb\x01\x0f\x1a\n\r\n\ + \x05\x04\x0b\x02\0\x03\x12\x04\xfb\x01\x1d\x1e\nL\n\x04\x04\x0b\x02\x01\ + \x12\x04\xfe\x01\x04\x13\x1a>\x20data\x20that\x20we\x20will\x20be\x20sto\ ring\n\x20sent\x20by:\x20DAG_PUT,\x20DAG_NEW_NODE\n\n\x0f\n\x05\x04\x0b\ - \x02\x01\x04\x12\x06\xf4\x01\x04\xf1\x01\x1f\n\r\n\x05\x04\x0b\x02\x01\ - \x05\x12\x04\xf4\x01\x04\t\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xf4\x01\ - \n\x0e\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xf4\x01\x11\x12\nX\n\x04\ - \x04\x0b\x02\x02\x12\x04\xf7\x01\x04\x1e\x1aJ\x20the\x20object\x20encodi\ + \x02\x01\x04\x12\x06\xfe\x01\x04\xfb\x01\x1f\n\r\n\x05\x04\x0b\x02\x01\ + \x05\x12\x04\xfe\x01\x04\t\n\r\n\x05\x04\x0b\x02\x01\x01\x12\x04\xfe\x01\ + \n\x0e\n\r\n\x05\x04\x0b\x02\x01\x03\x12\x04\xfe\x01\x11\x12\nX\n\x04\ + \x04\x0b\x02\x02\x12\x04\x81\x02\x04\x1e\x1aJ\x20the\x20object\x20encodi\ ng\x20type\x20(raw,\x20cbor,\x20protobuf,\x20etc...)\n\x20sent\x20by:\ - \x20DAG_PUT\n\n\x0f\n\x05\x04\x0b\x02\x02\x04\x12\x06\xf7\x01\x04\xf4\ - \x01\x13\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\xf7\x01\x04\n\n\r\n\x05\ - \x04\x0b\x02\x02\x01\x12\x04\xf7\x01\x0b\x19\n\r\n\x05\x04\x0b\x02\x02\ - \x03\x12\x04\xf7\x01\x1c\x1d\nX\n\x04\x04\x0b\x02\x03\x12\x04\xfa\x01\ + \x20DAG_PUT\n\n\x0f\n\x05\x04\x0b\x02\x02\x04\x12\x06\x81\x02\x04\xfe\ + \x01\x13\n\r\n\x05\x04\x0b\x02\x02\x05\x12\x04\x81\x02\x04\n\n\r\n\x05\ + \x04\x0b\x02\x02\x01\x12\x04\x81\x02\x0b\x19\n\r\n\x05\x04\x0b\x02\x02\ + \x03\x12\x04\x81\x02\x1c\x1d\nX\n\x04\x04\x0b\x02\x03\x12\x04\x84\x02\ \x04#\x1aJ\x20the\x20serialization\x20format\x20(raw,\x20cbor,\x20protob\ uf,\x20etc...)\n\x20sent\x20by:\x20DAG_PUT\n\n\x0f\n\x05\x04\x0b\x02\x03\ - \x04\x12\x06\xfa\x01\x04\xf7\x01\x1e\n\r\n\x05\x04\x0b\x02\x03\x05\x12\ - \x04\xfa\x01\x04\n\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\xfa\x01\x0b\x1e\ - \n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\xfa\x01!\"\nw\n\x04\x04\x0b\x02\ - \x04\x12\x04\xfd\x01\x04\x18\x1ai\x20the\x20hash\x20function\x20to\x20to\ + \x04\x12\x06\x84\x02\x04\x81\x02\x1e\n\r\n\x05\x04\x0b\x02\x03\x05\x12\ + \x04\x84\x02\x04\n\n\r\n\x05\x04\x0b\x02\x03\x01\x12\x04\x84\x02\x0b\x1e\ + \n\r\n\x05\x04\x0b\x02\x03\x03\x12\x04\x84\x02!\"\nw\n\x04\x04\x0b\x02\ + \x04\x12\x04\x87\x02\x04\x18\x1ai\x20the\x20hash\x20function\x20to\x20to\ \x20use\x20(sha2-256,\x20sha3-512,\x20etc...)\n\x20sent\x20by:\x20DAG_PU\ T,\x20DAG_NEW_NODE,\x20DAG_ADD_LINKS\n\n\x0f\n\x05\x04\x0b\x02\x04\x04\ - \x12\x06\xfd\x01\x04\xfa\x01#\n\r\n\x05\x04\x0b\x02\x04\x05\x12\x04\xfd\ - \x01\x04\n\n\r\n\x05\x04\x0b\x02\x04\x01\x12\x04\xfd\x01\x0b\x13\n\r\n\ - \x05\x04\x0b\x02\x04\x03\x12\x04\xfd\x01\x16\x17\nM\n\x04\x04\x0b\x02\ - \x05\x12\x04\x80\x02\x04\x19\x1a?\x20the\x20cid\x20version\x20to\x20use\ + \x12\x06\x87\x02\x04\x84\x02#\n\r\n\x05\x04\x0b\x02\x04\x05\x12\x04\x87\ + \x02\x04\n\n\r\n\x05\x04\x0b\x02\x04\x01\x12\x04\x87\x02\x0b\x13\n\r\n\ + \x05\x04\x0b\x02\x04\x03\x12\x04\x87\x02\x16\x17\nM\n\x04\x04\x0b\x02\ + \x05\x12\x04\x8a\x02\x04\x19\x1a?\x20the\x20cid\x20version\x20to\x20use\ \x20(0,\x201)\n\x20sent\x20by:\x20DAG_PUT,\x20DAG_NEW_NODE\n\n\x0f\n\x05\ - \x04\x0b\x02\x05\x04\x12\x06\x80\x02\x04\xfd\x01\x18\n\r\n\x05\x04\x0b\ - \x02\x05\x05\x12\x04\x80\x02\x04\t\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\ - \x80\x02\n\x14\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\x80\x02\x17\x18\nv\ - \n\x04\x04\x0b\x02\x06\x12\x04\x83\x02\x04\x14\x1ah\x20the\x20hash\x20of\ + \x04\x0b\x02\x05\x04\x12\x06\x8a\x02\x04\x87\x02\x18\n\r\n\x05\x04\x0b\ + \x02\x05\x05\x12\x04\x8a\x02\x04\t\n\r\n\x05\x04\x0b\x02\x05\x01\x12\x04\ + \x8a\x02\n\x14\n\r\n\x05\x04\x0b\x02\x05\x03\x12\x04\x8a\x02\x17\x18\nv\ + \n\x04\x04\x0b\x02\x06\x12\x04\x8d\x02\x04\x14\x1ah\x20the\x20hash\x20of\ \x20the\x20object\x20we\x20are\x20processing\n\x20sent\x20by:\x20DAG_GET\ ,\x20DAG_NEW_NODe,\x20DAG_ADD_LINKS,\x20DAG_GET_LINKS\n\n\x0f\n\x05\x04\ - \x0b\x02\x06\x04\x12\x06\x83\x02\x04\x80\x02\x19\n\r\n\x05\x04\x0b\x02\ - \x06\x05\x12\x04\x83\x02\x04\n\n\r\n\x05\x04\x0b\x02\x06\x01\x12\x04\x83\ - \x02\x0b\x0f\n\r\n\x05\x04\x0b\x02\x06\x03\x12\x04\x83\x02\x12\x13\nt\n\ - \x04\x04\x0b\x02\x07\x12\x04\x86\x02\x04\"\x1af\x20indicates\x20links\ + \x0b\x02\x06\x04\x12\x06\x8d\x02\x04\x8a\x02\x19\n\r\n\x05\x04\x0b\x02\ + \x06\x05\x12\x04\x8d\x02\x04\n\n\r\n\x05\x04\x0b\x02\x06\x01\x12\x04\x8d\ + \x02\x0b\x0f\n\r\n\x05\x04\x0b\x02\x06\x03\x12\x04\x8d\x02\x12\x13\nt\n\ + \x04\x04\x0b\x02\x07\x12\x04\x90\x02\x04\"\x1af\x20indicates\x20links\ \x20and\x20their\x20names.\x20key\x20=\x20name,\x20value\x20=\x20link\ \x20hash\n\x20sent\x20by:\x20DAG_NEW_NODE,\x20DAG_ADD_LINKS\n\n\x0f\n\ - \x05\x04\x0b\x02\x07\x04\x12\x06\x86\x02\x04\x83\x02\x14\n\r\n\x05\x04\ - \x0b\x02\x07\x06\x12\x04\x86\x02\x04\x17\n\r\n\x05\x04\x0b\x02\x07\x01\ - \x12\x04\x86\x02\x18\x1d\n\r\n\x05\x04\x0b\x02\x07\x03\x12\x04\x86\x02\ - \x20!\n:\n\x02\x04\x0c\x12\x06\x8a\x02\0\x97\x02\x01\x1a,\x20Used\x20in\ + \x05\x04\x0b\x02\x07\x04\x12\x06\x90\x02\x04\x8d\x02\x14\n\r\n\x05\x04\ + \x0b\x02\x07\x06\x12\x04\x90\x02\x04\x17\n\r\n\x05\x04\x0b\x02\x07\x01\ + \x12\x04\x90\x02\x18\x1d\n\r\n\x05\x04\x0b\x02\x07\x03\x12\x04\x90\x02\ + \x20!\n:\n\x02\x04\x0c\x12\x06\x94\x02\0\xa1\x02\x01\x1a,\x20Used\x20in\ \x20response\x20to\x20a\x20Dag\x20or\x20DagStream\x20RPC\n\n\x0b\n\x03\ - \x04\x0c\x01\x12\x04\x8a\x02\x08\x13\nQ\n\x04\x04\x0c\x02\0\x12\x04\x8d\ + \x04\x0c\x01\x12\x04\x94\x02\x08\x13\nQ\n\x04\x04\x0c\x02\0\x12\x04\x97\ \x02\x04\x1f\x1aC\x20indicates\x20the\x20request\x20being\x20performed\n\ \x20sent\x20by:\x20all\x20request\x20types\n\n\x0f\n\x05\x04\x0c\x02\0\ - \x04\x12\x06\x8d\x02\x04\x8a\x02\x15\n\r\n\x05\x04\x0c\x02\0\x06\x12\x04\ - \x8d\x02\x04\x0e\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\x8d\x02\x0f\x1a\n\r\ - \n\x05\x04\x0c\x02\0\x03\x12\x04\x8d\x02\x1d\x1e\n\x80\x01\n\x04\x04\x0c\ - \x02\x01\x12\x04\x90\x02\x04\x1f\x1ar\x20returns\x20the\x20hashes\x20of\ + \x04\x12\x06\x97\x02\x04\x94\x02\x15\n\r\n\x05\x04\x0c\x02\0\x06\x12\x04\ + \x97\x02\x04\x0e\n\r\n\x05\x04\x0c\x02\0\x01\x12\x04\x97\x02\x0f\x1a\n\r\ + \n\x05\x04\x0c\x02\0\x03\x12\x04\x97\x02\x1d\x1e\n\x80\x01\n\x04\x04\x0c\ + \x02\x01\x12\x04\x9a\x02\x04\x1f\x1ar\x20returns\x20the\x20hashes\x20of\ \x20newly\x20generated\x20IPLD\x20objects\n\x20sent\x20by:\x20DAG_PUT,\ \x20DAG_NEW_NODE,\x20DAG_ADD_LINKS,\x20DAG_GET_LINKS\n\n\r\n\x05\x04\x0c\ - \x02\x01\x04\x12\x04\x90\x02\x04\x0c\n\r\n\x05\x04\x0c\x02\x01\x05\x12\ - \x04\x90\x02\r\x13\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\x90\x02\x14\x1a\ - \n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\x90\x02\x1d\x1e\nN\n\x04\x04\x0c\ - \x02\x02\x12\x04\x93\x02\x04\x16\x1a@\x20the\x20actual\x20data\x20contai\ + \x02\x01\x04\x12\x04\x9a\x02\x04\x0c\n\r\n\x05\x04\x0c\x02\x01\x05\x12\ + \x04\x9a\x02\r\x13\n\r\n\x05\x04\x0c\x02\x01\x01\x12\x04\x9a\x02\x14\x1a\ + \n\r\n\x05\x04\x0c\x02\x01\x03\x12\x04\x9a\x02\x1d\x1e\nN\n\x04\x04\x0c\ + \x02\x02\x12\x04\x9d\x02\x04\x16\x1a@\x20the\x20actual\x20data\x20contai\ ned\x20by\x20the\x20IPLD\x20object\n\x20sent\x20by:\x20DAG_GET\n\n\x0f\n\ - \x05\x04\x0c\x02\x02\x04\x12\x06\x93\x02\x04\x90\x02\x1f\n\r\n\x05\x04\ - \x0c\x02\x02\x05\x12\x04\x93\x02\x04\t\n\r\n\x05\x04\x0c\x02\x02\x01\x12\ - \x04\x93\x02\n\x11\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\x93\x02\x14\x15\ - \nV\n\x04\x04\x0c\x02\x03\x12\x04\x96\x02\x04\x20\x1aH\x20the\x20links\ + \x05\x04\x0c\x02\x02\x04\x12\x06\x9d\x02\x04\x9a\x02\x1f\n\r\n\x05\x04\ + \x0c\x02\x02\x05\x12\x04\x9d\x02\x04\t\n\r\n\x05\x04\x0c\x02\x02\x01\x12\ + \x04\x9d\x02\n\x11\n\r\n\x05\x04\x0c\x02\x02\x03\x12\x04\x9d\x02\x14\x15\ + \nV\n\x04\x04\x0c\x02\x03\x12\x04\xa0\x02\x04\x20\x1aH\x20the\x20links\ \x20contained\x20within\x20an\x20IPLD\x20node\x20object\n\x20sent\x20by:\ - \x20DAG_GET_LINKS\n\n\r\n\x05\x04\x0c\x02\x03\x04\x12\x04\x96\x02\x04\ - \x0c\n\r\n\x05\x04\x0c\x02\x03\x06\x12\x04\x96\x02\r\x15\n\r\n\x05\x04\ - \x0c\x02\x03\x01\x12\x04\x96\x02\x16\x1b\n\r\n\x05\x04\x0c\x02\x03\x03\ - \x12\x04\x96\x02\x1e\x1f\n&\n\x02\x04\r\x12\x06\x9a\x02\0\xa1\x02\x01\ + \x20DAG_GET_LINKS\n\n\r\n\x05\x04\x0c\x02\x03\x04\x12\x04\xa0\x02\x04\ + \x0c\n\r\n\x05\x04\x0c\x02\x03\x06\x12\x04\xa0\x02\r\x15\n\r\n\x05\x04\ + \x0c\x02\x03\x01\x12\x04\xa0\x02\x16\x1b\n\r\n\x05\x04\x0c\x02\x03\x03\ + \x12\x04\xa0\x02\x1e\x1f\n&\n\x02\x04\r\x12\x06\xa4\x02\0\xab\x02\x01\ \x1a\x18\x20An\x20IPFS\x20MerkleDAG\x20Link\n\n\x0b\n\x03\x04\r\x01\x12\ - \x04\x9a\x02\x08\x10\n.\n\x04\x04\r\x02\0\x12\x04\x9c\x02\x04\x13\x1a\ + \x04\xa4\x02\x08\x10\n.\n\x04\x04\r\x02\0\x12\x04\xa6\x02\x04\x13\x1a\ \x20\x20multihash\x20of\x20the\x20target\x20object\n\n\x0f\n\x05\x04\r\ - \x02\0\x04\x12\x06\x9c\x02\x04\x9a\x02\x12\n\r\n\x05\x04\r\x02\0\x05\x12\ - \x04\x9c\x02\x04\t\n\r\n\x05\x04\r\x02\0\x01\x12\x04\x9c\x02\n\x0e\n\r\n\ - \x05\x04\r\x02\0\x03\x12\x04\x9c\x02\x11\x12\n<\n\x04\x04\r\x02\x01\x12\ - \x04\x9e\x02\x04\x14\x1a.\x20utf\x20string\x20name.\x20should\x20be\x20u\ - nique\x20per\x20object\n\n\x0f\n\x05\x04\r\x02\x01\x04\x12\x06\x9e\x02\ - \x04\x9c\x02\x13\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\x9e\x02\x04\n\n\r\n\ - \x05\x04\r\x02\x01\x01\x12\x04\x9e\x02\x0b\x0f\n\r\n\x05\x04\r\x02\x01\ - \x03\x12\x04\x9e\x02\x12\x13\n0\n\x04\x04\r\x02\x02\x12\x04\xa0\x02\x04\ + \x02\0\x04\x12\x06\xa6\x02\x04\xa4\x02\x12\n\r\n\x05\x04\r\x02\0\x05\x12\ + \x04\xa6\x02\x04\t\n\r\n\x05\x04\r\x02\0\x01\x12\x04\xa6\x02\n\x0e\n\r\n\ + \x05\x04\r\x02\0\x03\x12\x04\xa6\x02\x11\x12\n<\n\x04\x04\r\x02\x01\x12\ + \x04\xa8\x02\x04\x14\x1a.\x20utf\x20string\x20name.\x20should\x20be\x20u\ + nique\x20per\x20object\n\n\x0f\n\x05\x04\r\x02\x01\x04\x12\x06\xa8\x02\ + \x04\xa6\x02\x13\n\r\n\x05\x04\r\x02\x01\x05\x12\x04\xa8\x02\x04\n\n\r\n\ + \x05\x04\r\x02\x01\x01\x12\x04\xa8\x02\x0b\x0f\n\r\n\x05\x04\r\x02\x01\ + \x03\x12\x04\xa8\x02\x12\x13\n0\n\x04\x04\r\x02\x02\x12\x04\xaa\x02\x04\ \x14\x1a\"\x20cumulative\x20size\x20of\x20target\x20object\n\n\x0f\n\x05\ - \x04\r\x02\x02\x04\x12\x06\xa0\x02\x04\x9e\x02\x14\n\r\n\x05\x04\r\x02\ - \x02\x05\x12\x04\xa0\x02\x04\n\n\r\n\x05\x04\r\x02\x02\x01\x12\x04\xa0\ - \x02\x0b\x0f\n\r\n\x05\x04\r\x02\x02\x03\x12\x04\xa0\x02\x12\x13\n&\n\ - \x02\x04\x0e\x12\x06\xa4\x02\0\xa9\x02\x01\x1a\x18\x20An\x20IPFS\x20Merk\ - leDAG\x20Node\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xa4\x02\x08\x10\n%\n\x04\ - \x04\x0e\x02\0\x12\x04\xa6\x02\x04\x20\x1a\x17\x20refs\x20to\x20other\ - \x20objects\n\n\r\n\x05\x04\x0e\x02\0\x04\x12\x04\xa6\x02\x04\x0c\n\r\n\ - \x05\x04\x0e\x02\0\x06\x12\x04\xa6\x02\r\x15\n\r\n\x05\x04\x0e\x02\0\x01\ - \x12\x04\xa6\x02\x16\x1b\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xa6\x02\x1e\ - \x1f\n\x20\n\x04\x04\x0e\x02\x01\x12\x04\xa8\x02\x04\x13\x1a\x12\x20opaq\ - ue\x20user\x20data\n\n\x0f\n\x05\x04\x0e\x02\x01\x04\x12\x06\xa8\x02\x04\ - \xa6\x02\x20\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xa8\x02\x04\t\n\r\n\ - \x05\x04\x0e\x02\x01\x01\x12\x04\xa8\x02\n\x0e\n\r\n\x05\x04\x0e\x02\x01\ - \x03\x12\x04\xa8\x02\x11\x12\nV\n\x02\x05\x07\x12\x06\xac\x02\0\xb7\x02\ + \x04\r\x02\x02\x04\x12\x06\xaa\x02\x04\xa8\x02\x14\n\r\n\x05\x04\r\x02\ + \x02\x05\x12\x04\xaa\x02\x04\n\n\r\n\x05\x04\r\x02\x02\x01\x12\x04\xaa\ + \x02\x0b\x0f\n\r\n\x05\x04\r\x02\x02\x03\x12\x04\xaa\x02\x12\x13\n&\n\ + \x02\x04\x0e\x12\x06\xae\x02\0\xb3\x02\x01\x1a\x18\x20An\x20IPFS\x20Merk\ + leDAG\x20Node\n\n\x0b\n\x03\x04\x0e\x01\x12\x04\xae\x02\x08\x10\n%\n\x04\ + \x04\x0e\x02\0\x12\x04\xb0\x02\x04\x20\x1a\x17\x20refs\x20to\x20other\ + \x20objects\n\n\r\n\x05\x04\x0e\x02\0\x04\x12\x04\xb0\x02\x04\x0c\n\r\n\ + \x05\x04\x0e\x02\0\x06\x12\x04\xb0\x02\r\x15\n\r\n\x05\x04\x0e\x02\0\x01\ + \x12\x04\xb0\x02\x16\x1b\n\r\n\x05\x04\x0e\x02\0\x03\x12\x04\xb0\x02\x1e\ + \x1f\n\x20\n\x04\x04\x0e\x02\x01\x12\x04\xb2\x02\x04\x13\x1a\x12\x20opaq\ + ue\x20user\x20data\n\n\x0f\n\x05\x04\x0e\x02\x01\x04\x12\x06\xb2\x02\x04\ + \xb0\x02\x20\n\r\n\x05\x04\x0e\x02\x01\x05\x12\x04\xb2\x02\x04\t\n\r\n\ + \x05\x04\x0e\x02\x01\x01\x12\x04\xb2\x02\n\x0e\n\r\n\x05\x04\x0e\x02\x01\ + \x03\x12\x04\xb2\x02\x11\x12\nV\n\x02\x05\x07\x12\x06\xb6\x02\0\xc1\x02\ \x01\x1aH\x20KSREQTYPE\x20indicates\x20the\x20particular\x20KeystoreAPI\ - \x20request\x20being\x20performed\n\n\x0b\n\x03\x05\x07\x01\x12\x04\xac\ - \x02\x05\x0e\nI\n\x04\x05\x07\x02\0\x12\x04\xae\x02\x04\x0f\x1a;\x20KS_H\ + \x20request\x20being\x20performed\n\n\x0b\n\x03\x05\x07\x01\x12\x04\xb6\ + \x02\x05\x0e\nI\n\x04\x05\x07\x02\0\x12\x04\xb8\x02\x04\x0f\x1a;\x20KS_H\ AS\x20is\x20used\x20to\x20check\x20if\x20the\x20key\x20exists\x20in\x20o\ - ur\x20keystore\n\n\r\n\x05\x05\x07\x02\0\x01\x12\x04\xae\x02\x04\n\n\r\n\ - \x05\x05\x07\x02\0\x02\x12\x04\xae\x02\r\x0e\nN\n\x04\x05\x07\x02\x01\ - \x12\x04\xb0\x02\x04\x0f\x1a@\x20KS_GET\x20is\x20used\x20to\x20retrieve\ + ur\x20keystore\n\n\r\n\x05\x05\x07\x02\0\x01\x12\x04\xb8\x02\x04\n\n\r\n\ + \x05\x05\x07\x02\0\x02\x12\x04\xb8\x02\r\x0e\nN\n\x04\x05\x07\x02\x01\ + \x12\x04\xba\x02\x04\x0f\x1a@\x20KS_GET\x20is\x20used\x20to\x20retrieve\ \x20private\x20key\x20bytes\x20from\x20our\x20keystore\n\n\r\n\x05\x05\ - \x07\x02\x01\x01\x12\x04\xb0\x02\x04\n\n\r\n\x05\x05\x07\x02\x01\x02\x12\ - \x04\xb0\x02\r\x0e\nI\n\x04\x05\x07\x02\x02\x12\x04\xb2\x02\x04\x0f\x1a;\ + \x07\x02\x01\x01\x12\x04\xba\x02\x04\n\n\r\n\x05\x05\x07\x02\x01\x02\x12\ + \x04\xba\x02\r\x0e\nI\n\x04\x05\x07\x02\x02\x12\x04\xbc\x02\x04\x0f\x1a;\ \x20KS_PUT\x20is\x20used\x20to\x20store\x20private\x20key\x20bytes\x20in\ - \x20our\x20keystore\n\n\r\n\x05\x05\x07\x02\x02\x01\x12\x04\xb2\x02\x04\ - \n\n\r\n\x05\x05\x07\x02\x02\x02\x12\x04\xb2\x02\r\x0e\nJ\n\x04\x05\x07\ - \x02\x03\x12\x04\xb4\x02\x04\x12\x1a<\x20KS_DELETE\x20is\x20used\x20to\ + \x20our\x20keystore\n\n\r\n\x05\x05\x07\x02\x02\x01\x12\x04\xbc\x02\x04\ + \n\n\r\n\x05\x05\x07\x02\x02\x02\x12\x04\xbc\x02\r\x0e\nJ\n\x04\x05\x07\ + \x02\x03\x12\x04\xbe\x02\x04\x12\x1a<\x20KS_DELETE\x20is\x20used\x20to\ \x20delete\x20private\x20keys\x20from\x20our\x20keystore\n\n\r\n\x05\x05\ - \x07\x02\x03\x01\x12\x04\xb4\x02\x04\r\n\r\n\x05\x05\x07\x02\x03\x02\x12\ - \x04\xb4\x02\x10\x11\nN\n\x04\x05\x07\x02\x04\x12\x04\xb6\x02\x04\x10\ + \x07\x02\x03\x01\x12\x04\xbe\x02\x04\r\n\r\n\x05\x05\x07\x02\x03\x02\x12\ + \x04\xbe\x02\x10\x11\nN\n\x04\x05\x07\x02\x04\x12\x04\xc0\x02\x04\x10\ \x1a@\x20KS_LIST\x20is\x20used\x20to\x20list\x20all\x20keys\x20in\x20our\ \x20keystore\x20by\x20their\x20name\n\n\r\n\x05\x05\x07\x02\x04\x01\x12\ - \x04\xb6\x02\x04\x0b\n\r\n\x05\x05\x07\x02\x04\x02\x12\x04\xb6\x02\x0e\ - \x0f\n8\n\x02\x04\x0f\x12\x06\xba\x02\0\xc3\x02\x01\x1a*\x20Used\x20to\ + \x04\xc0\x02\x04\x0b\n\r\n\x05\x05\x07\x02\x04\x02\x12\x04\xc0\x02\x0e\ + \x0f\n8\n\x02\x04\x0f\x12\x06\xc4\x02\0\xcd\x02\x01\x1a*\x20Used\x20to\ \x20submit\x20a\x20request\x20to\x20Keystore\x20RPC\n\n\x0b\n\x03\x04\ - \x0f\x01\x12\x04\xba\x02\x08\x17\n:\n\x04\x04\x0f\x02\0\x12\x04\xbc\x02\ + \x0f\x01\x12\x04\xc4\x02\x08\x17\n:\n\x04\x04\x0f\x02\0\x12\x04\xc6\x02\ \x04\x1e\x1a,\x20indicates\x20the\x20request\x20type\x20being\x20perform\ - ed\n\n\x0f\n\x05\x04\x0f\x02\0\x04\x12\x06\xbc\x02\x04\xba\x02\x19\n\r\n\ - \x05\x04\x0f\x02\0\x06\x12\x04\xbc\x02\x04\r\n\r\n\x05\x04\x0f\x02\0\x01\ - \x12\x04\xbc\x02\x0e\x19\n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\xbc\x02\x1c\ - \x1d\n^\n\x04\x04\x0f\x02\x01\x12\x04\xbf\x02\x04\x14\x1aP\x20name\x20of\ + ed\n\n\x0f\n\x05\x04\x0f\x02\0\x04\x12\x06\xc6\x02\x04\xc4\x02\x19\n\r\n\ + \x05\x04\x0f\x02\0\x06\x12\x04\xc6\x02\x04\r\n\r\n\x05\x04\x0f\x02\0\x01\ + \x12\x04\xc6\x02\x0e\x19\n\r\n\x05\x04\x0f\x02\0\x03\x12\x04\xc6\x02\x1c\ + \x1d\n^\n\x04\x04\x0f\x02\x01\x12\x04\xc9\x02\x04\x14\x1aP\x20name\x20of\ \x20the\x20key\x20the\x20request\x20is\x20for\n\x20sent\x20by:\x20KS_HAS\ ,\x20KS_GET,\x20KS_PUT,\x20KS_DELETE\n\n\x0f\n\x05\x04\x0f\x02\x01\x04\ - \x12\x06\xbf\x02\x04\xbc\x02\x1e\n\r\n\x05\x04\x0f\x02\x01\x05\x12\x04\ - \xbf\x02\x04\n\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xbf\x02\x0b\x0f\n\r\ - \n\x05\x04\x0f\x02\x01\x03\x12\x04\xbf\x02\x12\x13\n=\n\x04\x04\x0f\x02\ - \x02\x12\x04\xc2\x02\x04\x19\x1a/\x20the\x20actual\x20private\x20key\x20\ + \x12\x06\xc9\x02\x04\xc6\x02\x1e\n\r\n\x05\x04\x0f\x02\x01\x05\x12\x04\ + \xc9\x02\x04\n\n\r\n\x05\x04\x0f\x02\x01\x01\x12\x04\xc9\x02\x0b\x0f\n\r\ + \n\x05\x04\x0f\x02\x01\x03\x12\x04\xc9\x02\x12\x13\n=\n\x04\x04\x0f\x02\ + \x02\x12\x04\xcc\x02\x04\x19\x1a/\x20the\x20actual\x20private\x20key\x20\ bytes\n\x20sent\x20by:\x20KS_PUT\n\n\x0f\n\x05\x04\x0f\x02\x02\x04\x12\ - \x06\xc2\x02\x04\xbf\x02\x14\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\xc2\ - \x02\x04\t\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xc2\x02\n\x14\n\r\n\x05\ - \x04\x0f\x02\x02\x03\x12\x04\xc2\x02\x17\x18\n2\n\x02\x04\x10\x12\x06\ - \xc6\x02\0\xd2\x02\x01\x1a$\x20Used\x20in\x20response\x20to\x20a\x20Keys\ - tore\x20RPC\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xc6\x02\x08\x18\n:\n\x04\ - \x04\x10\x02\0\x12\x04\xc8\x02\x04\x1e\x1a,\x20indicates\x20the\x20reque\ + \x06\xcc\x02\x04\xc9\x02\x14\n\r\n\x05\x04\x0f\x02\x02\x05\x12\x04\xcc\ + \x02\x04\t\n\r\n\x05\x04\x0f\x02\x02\x01\x12\x04\xcc\x02\n\x14\n\r\n\x05\ + \x04\x0f\x02\x02\x03\x12\x04\xcc\x02\x17\x18\n2\n\x02\x04\x10\x12\x06\ + \xd0\x02\0\xdc\x02\x01\x1a$\x20Used\x20in\x20response\x20to\x20a\x20Keys\ + tore\x20RPC\n\n\x0b\n\x03\x04\x10\x01\x12\x04\xd0\x02\x08\x18\n:\n\x04\ + \x04\x10\x02\0\x12\x04\xd2\x02\x04\x1e\x1a,\x20indicates\x20the\x20reque\ st\x20type\x20being\x20performed\n\n\x0f\n\x05\x04\x10\x02\0\x04\x12\x06\ - \xc8\x02\x04\xc6\x02\x1a\n\r\n\x05\x04\x10\x02\0\x06\x12\x04\xc8\x02\x04\ - \r\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xc8\x02\x0e\x19\n\r\n\x05\x04\x10\ - \x02\0\x03\x12\x04\xc8\x02\x1c\x1d\n6\n\x04\x04\x10\x02\x01\x12\x04\xcb\ + \xd2\x02\x04\xd0\x02\x1a\n\r\n\x05\x04\x10\x02\0\x06\x12\x04\xd2\x02\x04\ + \r\n\r\n\x05\x04\x10\x02\0\x01\x12\x04\xd2\x02\x0e\x19\n\r\n\x05\x04\x10\ + \x02\0\x03\x12\x04\xd2\x02\x1c\x1d\n6\n\x04\x04\x10\x02\x01\x12\x04\xd5\ \x02\x04\x19\x1a(\x20the\x20private\x20key\x20bytes\n\x20sent\x20by:\x20\ - KS_GET\n\n\x0f\n\x05\x04\x10\x02\x01\x04\x12\x06\xcb\x02\x04\xc8\x02\x1e\ - \n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\xcb\x02\x04\t\n\r\n\x05\x04\x10\ - \x02\x01\x01\x12\x04\xcb\x02\n\x14\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\ - \xcb\x02\x17\x18\n>\n\x04\x04\x10\x02\x02\x12\x04\xce\x02\x04!\x1a0\x20c\ + KS_GET\n\n\x0f\n\x05\x04\x10\x02\x01\x04\x12\x06\xd5\x02\x04\xd2\x02\x1e\ + \n\r\n\x05\x04\x10\x02\x01\x05\x12\x04\xd5\x02\x04\t\n\r\n\x05\x04\x10\ + \x02\x01\x01\x12\x04\xd5\x02\n\x14\n\r\n\x05\x04\x10\x02\x01\x03\x12\x04\ + \xd5\x02\x17\x18\n>\n\x04\x04\x10\x02\x02\x12\x04\xd8\x02\x04!\x1a0\x20c\ ontains\x20all\x20known\x20key\x20names\n\x20sent\x20by:\x20KS_LIST\n\n\ - \r\n\x05\x04\x10\x02\x02\x04\x12\x04\xce\x02\x04\x0c\n\r\n\x05\x04\x10\ - \x02\x02\x05\x12\x04\xce\x02\r\x13\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\ - \xce\x02\x14\x1c\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xce\x02\x1f\x20\n\ - M\n\x04\x04\x10\x02\x03\x12\x04\xd1\x02\x04\x11\x1a?\x20indicates\x20if\ + \r\n\x05\x04\x10\x02\x02\x04\x12\x04\xd8\x02\x04\x0c\n\r\n\x05\x04\x10\ + \x02\x02\x05\x12\x04\xd8\x02\r\x13\n\r\n\x05\x04\x10\x02\x02\x01\x12\x04\ + \xd8\x02\x14\x1c\n\r\n\x05\x04\x10\x02\x02\x03\x12\x04\xd8\x02\x1f\x20\n\ + M\n\x04\x04\x10\x02\x03\x12\x04\xdb\x02\x04\x11\x1a?\x20indicates\x20if\ \x20we\x20have\x20the\x20key\x20in\x20our\x20keystore\n\x20sent\x20by:\ - \x20KS_HAS\n\n\x0f\n\x05\x04\x10\x02\x03\x04\x12\x06\xd1\x02\x04\xce\x02\ - !\n\r\n\x05\x04\x10\x02\x03\x05\x12\x04\xd1\x02\x04\x08\n\r\n\x05\x04\ - \x10\x02\x03\x01\x12\x04\xd1\x02\t\x0c\n\r\n\x05\x04\x10\x02\x03\x03\x12\ - \x04\xd1\x02\x0f\x10\n\x0c\n\x02\x04\x11\x12\x06\xd4\x02\0\xd7\x02\x01\n\ - \x0b\n\x03\x04\x11\x01\x12\x04\xd4\x02\x08\x16\n'\n\x04\x04\x11\x02\0\ - \x12\x04\xd6\x02\x04\x1d\x1a\x19\x20cids\x20to\x20persist\x20locally\n\n\ - \r\n\x05\x04\x11\x02\0\x04\x12\x04\xd6\x02\x04\x0c\n\r\n\x05\x04\x11\x02\ - \0\x05\x12\x04\xd6\x02\r\x13\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xd6\x02\ - \x14\x18\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xd6\x02\x1b\x1c\n\x0c\n\x02\ - \x04\x12\x12\x06\xd9\x02\0\xde\x02\x01\n\x0b\n\x03\x04\x12\x01\x12\x04\ - \xd9\x02\x08\x17\nB\n\x04\x04\x12\x02\0\x12\x04\xdb\x02\x04!\x1a4\x20key\ + \x20KS_HAS\n\n\x0f\n\x05\x04\x10\x02\x03\x04\x12\x06\xdb\x02\x04\xd8\x02\ + !\n\r\n\x05\x04\x10\x02\x03\x05\x12\x04\xdb\x02\x04\x08\n\r\n\x05\x04\ + \x10\x02\x03\x01\x12\x04\xdb\x02\t\x0c\n\r\n\x05\x04\x10\x02\x03\x03\x12\ + \x04\xdb\x02\x0f\x10\n\x0c\n\x02\x04\x11\x12\x06\xde\x02\0\xe1\x02\x01\n\ + \x0b\n\x03\x04\x11\x01\x12\x04\xde\x02\x08\x16\n'\n\x04\x04\x11\x02\0\ + \x12\x04\xe0\x02\x04\x1d\x1a\x19\x20cids\x20to\x20persist\x20locally\n\n\ + \r\n\x05\x04\x11\x02\0\x04\x12\x04\xe0\x02\x04\x0c\n\r\n\x05\x04\x11\x02\ + \0\x05\x12\x04\xe0\x02\r\x13\n\r\n\x05\x04\x11\x02\0\x01\x12\x04\xe0\x02\ + \x14\x18\n\r\n\x05\x04\x11\x02\0\x03\x12\x04\xe0\x02\x1b\x1c\n\x0c\n\x02\ + \x04\x12\x12\x06\xe3\x02\0\xe8\x02\x01\n\x0b\n\x03\x04\x12\x01\x12\x04\ + \xe3\x02\x08\x17\nB\n\x04\x04\x12\x02\0\x12\x04\xe5\x02\x04!\x1a4\x20key\ \x20=\x20cid,\x20value\x20=\x20whether\x20or\x20not\x20it\x20was\x20pers\ - isted\n\n\x0f\n\x05\x04\x12\x02\0\x04\x12\x06\xdb\x02\x04\xd9\x02\x19\n\ - \r\n\x05\x04\x12\x02\0\x06\x12\x04\xdb\x02\x04\x15\n\r\n\x05\x04\x12\x02\ - \0\x01\x12\x04\xdb\x02\x16\x1c\n\r\n\x05\x04\x12\x02\0\x03\x12\x04\xdb\ - \x02\x1f\x20\n9\n\x04\x04\x12\x02\x01\x12\x04\xdd\x02\x04#\x1a+\x20key\ + isted\n\n\x0f\n\x05\x04\x12\x02\0\x04\x12\x06\xe5\x02\x04\xe3\x02\x19\n\ + \r\n\x05\x04\x12\x02\0\x06\x12\x04\xe5\x02\x04\x15\n\r\n\x05\x04\x12\x02\ + \0\x01\x12\x04\xe5\x02\x16\x1c\n\r\n\x05\x04\x12\x02\0\x03\x12\x04\xe5\ + \x02\x1f\x20\n9\n\x04\x04\x12\x02\x01\x12\x04\xe7\x02\x04#\x1a+\x20key\ \x20=\x20cid,\x20value\x20=\x20error\x20if\x20not\x20persisted\n\n\x0f\n\ - \x05\x04\x12\x02\x01\x04\x12\x06\xdd\x02\x04\xdb\x02!\n\r\n\x05\x04\x12\ - \x02\x01\x06\x12\x04\xdd\x02\x04\x17\n\r\n\x05\x04\x12\x02\x01\x01\x12\ - \x04\xdd\x02\x18\x1e\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xdd\x02!\"b\ + \x05\x04\x12\x02\x01\x04\x12\x06\xe7\x02\x04\xe5\x02!\n\r\n\x05\x04\x12\ + \x02\x01\x06\x12\x04\xe7\x02\x04\x17\n\r\n\x05\x04\x12\x02\x01\x01\x12\ + \x04\xe7\x02\x18\x1e\n\r\n\x05\x04\x12\x02\x01\x03\x12\x04\xe7\x02!\"b\ \x06proto3\ "; diff --git a/ts/node_pb.d.ts b/ts/node_pb.d.ts index a1fd7e3..177f557 100644 --- a/ts/node_pb.d.ts +++ b/ts/node_pb.d.ts @@ -341,6 +341,9 @@ export class Block extends jspb.Message { getData_asB64(): string; setData(value: Uint8Array | string): void; + getSize(): number; + setSize(value: number): void; + serializeBinary(): Uint8Array; toObject(includeInstance?: boolean): Block.AsObject; static toObject(includeInstance: boolean, msg: Block): Block.AsObject; @@ -355,6 +358,7 @@ export namespace Block { export type AsObject = { cid: string, data: Uint8Array | string, + size: number, } } @@ -654,6 +658,7 @@ export interface BSREQTYPEMap { BS_GET: 3; BS_GET_MANY: 4; BS_GET_ALL: 5; + BS_GET_STATS: 6; } export const BSREQTYPE: BSREQTYPEMap;