MCPcopy
hub / github.com/hyperledger/fabric / createDeliverEnvelope

Function createDeliverEnvelope

integration/pvtdata/pvtdata_test.go:1163–1218  ·  view source on GitHub ↗

createDeliverEnvelope creates a deliver request based on the block number. blockNum=0 means newest block

(channelID string, signingIdentity *nwo.SigningIdentity, blockNum uint64)

Source from the content-addressed store, hash-verified

1161// createDeliverEnvelope creates a deliver request based on the block number.
1162// blockNum=0 means newest block
1163func createDeliverEnvelope(channelID string, signingIdentity *nwo.SigningIdentity, blockNum uint64) (*cb.Envelope, error) {
1164 creator, err := signingIdentity.Serialize()
1165 if err != nil {
1166 return nil, err
1167 }
1168 header, err := createHeader(cb.HeaderType_DELIVER_SEEK_INFO, channelID, creator)
1169 if err != nil {
1170 return nil, err
1171 }
1172
1173 // if blockNum is not greater than 0, seek the newest block
1174 var seekInfo *ab.SeekInfo
1175 if blockNum > 0 {
1176 seekInfo = &ab.SeekInfo{
1177 Start: &ab.SeekPosition{
1178 Type: &ab.SeekPosition_Specified{
1179 Specified: &ab.SeekSpecified{Number: blockNum},
1180 },
1181 },
1182 Stop: &ab.SeekPosition{
1183 Type: &ab.SeekPosition_Specified{
1184 Specified: &ab.SeekSpecified{Number: blockNum},
1185 },
1186 },
1187 }
1188 } else {
1189 seekInfo = &ab.SeekInfo{
1190 Start: &ab.SeekPosition{
1191 Type: &ab.SeekPosition_Newest{
1192 Newest: &ab.SeekNewest{},
1193 },
1194 },
1195 Stop: &ab.SeekPosition{
1196 Type: &ab.SeekPosition_Newest{
1197 Newest: &ab.SeekNewest{},
1198 },
1199 },
1200 }
1201 }
1202
1203 // create the envelope
1204 raw := protoutil.MarshalOrPanic(seekInfo)
1205 payload := &cb.Payload{
1206 Header: header,
1207 Data: raw,
1208 }
1209 payloadBytes := protoutil.MarshalOrPanic(payload)
1210 signature, err := signingIdentity.Sign(payloadBytes)
1211 if err != nil {
1212 return nil, err
1213 }
1214 return &cb.Envelope{
1215 Payload: payloadBytes,
1216 Signature: signature,
1217 }, nil
1218}
1219
1220func createHeader(txType cb.HeaderType, channelID string, creator []byte) (*cb.Header, error) {

Callers 1

registerForDeliverEventFunction · 0.70

Calls 4

MarshalOrPanicFunction · 0.92
createHeaderFunction · 0.85
SerializeMethod · 0.65
SignMethod · 0.65

Tested by

no test coverage detected