Я использую Hyperledger Golang SDK для реализации клиента для работы с бухгалтерской книгой.Мое приложение полагается на отправляемые события, однако я хочу использовать BlockEvents, чтобы быть уверенным в том, что данные уже записаны в книгу, а не в цепочечные события.К сожалению, документация по этому типу событий очень ограничена.Я зарегистрировался в BlockEvents с использованием func (c *Client) RegisterBlockEvent()...
и получил BlockEvent
ответов со структурой Block
, на которую ссылается каждый из них.Структура блока выглядит следующим образом:
type Block struct {
Header *BlockHeader `protobuf:"bytes,1,opt,name=header,proto3" json:"header,omitempty"`
Data *BlockData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"`
Metadata *BlockMetadata `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
Я могу перейти к BlockData
:
type BlockData struct {
Data [][]byte `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
Однако в этот момент я потерян, имея только необработанный массив байтов.массивы как данные.Я хочу, чтобы на конкретное событие создания актива и нужно проанализировать данные блока для поиска данных.Какая структура или структура используется для этих данных?Я предполагаю, что каждая запись массива представляет транзакцию, но без структуры, отображаемой на ней, синтаксический анализ чрезвычайно труден.