diff --git a/go.mod b/go.mod index e6419e2a4a6..60ad787e61a 100644 --- a/go.mod +++ b/go.mod @@ -30,7 +30,7 @@ require ( github.com/hyperledger/fabric-chaincode-go v0.0.0-20201119163726-f8ef75b17719 github.com/hyperledger/fabric-config v0.1.0 github.com/hyperledger/fabric-lib-go v1.0.0 - github.com/hyperledger/fabric-protos-go v0.0.0-20211118165945-23d738fc3553 + github.com/hyperledger/fabric-protos-go v0.0.0-20220315113721-7dc293e117f7 github.com/kr/pretty v0.2.1 github.com/magiconair/properties v1.8.1 // indirect github.com/mattn/go-runewidth v0.0.4 // indirect diff --git a/go.sum b/go.sum index 780f3eb0a22..a5572be8a66 100644 --- a/go.sum +++ b/go.sum @@ -171,8 +171,8 @@ github.com/hyperledger/fabric-lib-go v1.0.0/go.mod h1:H362nMlunurmHwkYqR5uHL2UDW github.com/hyperledger/fabric-protos-go v0.0.0-20190919234611-2a87503ac7c9/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= github.com/hyperledger/fabric-protos-go v0.0.0-20200424173316-dd554ba3746e/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= github.com/hyperledger/fabric-protos-go v0.0.0-20210911123859-041d13f0980c/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= -github.com/hyperledger/fabric-protos-go v0.0.0-20211118165945-23d738fc3553 h1:E9f0v1q4EDfrE+0LdkxVtdYKAZ7PGCaj1bBx45R9yEQ= -github.com/hyperledger/fabric-protos-go v0.0.0-20211118165945-23d738fc3553/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= +github.com/hyperledger/fabric-protos-go v0.0.0-20220315113721-7dc293e117f7 h1:YV+siZuYQZwENjRH00t7ZS0CTlywt8Qog/SzL/jf6kE= +github.com/hyperledger/fabric-protos-go v0.0.0-20220315113721-7dc293e117f7/go.mod h1:xVYTjK4DtZRBxZ2D9aE4y6AbLaPwue2o/criQyQbVD0= github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= diff --git a/integration/gateway/gateway_test.go b/integration/gateway/gateway_test.go index a3bf7474d76..f543c014434 100644 --- a/integration/gateway/gateway_test.go +++ b/integration/gateway/gateway_test.go @@ -212,6 +212,7 @@ var _ = Describe("GatewayService", func() { chaincodeEvents := func( ctx context.Context, startPosition *orderer.SeekPosition, + afterTxID string, identity func() ([]byte, error), sign func(msg []byte) ([]byte, error), ) (gateway.Gateway_ChaincodeEventsClient, error) { @@ -226,6 +227,9 @@ var _ = Describe("GatewayService", func() { if startPosition != nil { request.StartPosition = startPosition } + if len(afterTxID) > 0 { + request.AfterTransactionId = afterTxID + } requestBytes, err := proto.Marshal(request) Expect(err).NotTo(HaveOccurred()) @@ -375,7 +379,7 @@ var _ = Describe("GatewayService", func() { }, } - eventsClient, err := chaincodeEvents(eventCtx, startPosition, signingIdentity.Serialize, signingIdentity.Sign) + eventsClient, err := chaincodeEvents(eventCtx, startPosition, "", signingIdentity.Serialize, signingIdentity.Sign) Expect(err).NotTo(HaveOccurred()) _, transactionID := submitTransaction("event", []byte("EVENT_NAME"), []byte("EVENT_PAYLOAD")) @@ -409,7 +413,7 @@ var _ = Describe("GatewayService", func() { }, } - eventsClient, err := chaincodeEvents(eventCtx, startPosition, signingIdentity.Serialize, signingIdentity.Sign) + eventsClient, err := chaincodeEvents(eventCtx, startPosition, "", signingIdentity.Serialize, signingIdentity.Sign) Expect(err).NotTo(HaveOccurred()) event, err := eventsClient.Recv() @@ -426,13 +430,50 @@ var _ = Describe("GatewayService", func() { Expect(proto.Equal(event.Events[0], expectedEvent)).To(BeTrue(), "Expected\n\t%#v\nto proto.Equal\n\t%#v", event.Events[0], expectedEvent) }) + It("should respond with replayed chaincode events after specified transaction ID", func() { + _, afterTransactionID := submitTransaction("event", []byte("WRONG_EVENT_NAME"), []byte("WRONG_EVENT_PAYLOAD")) + _, nextTransactionID := submitTransaction("event", []byte("CORRECT_EVENT_NAME"), []byte("CORRECT_EVENT_PAYLOAD")) + + statusResult, err := commitStatus(afterTransactionID, signingIdentity.Serialize, signingIdentity.Sign) + Expect(err).NotTo(HaveOccurred()) + + _, err = commitStatus(nextTransactionID, signingIdentity.Serialize, signingIdentity.Sign) + Expect(err).NotTo(HaveOccurred()) + + eventCtx, cancel := context.WithTimeout(ctx, 30*time.Second) + defer cancel() + + startPosition := &orderer.SeekPosition{ + Type: &orderer.SeekPosition_Specified{ + Specified: &orderer.SeekSpecified{ + Number: statusResult.BlockNumber, + }, + }, + } + + eventsClient, err := chaincodeEvents(eventCtx, startPosition, afterTransactionID, signingIdentity.Serialize, signingIdentity.Sign) + Expect(err).NotTo(HaveOccurred()) + + event, err := eventsClient.Recv() + Expect(err).NotTo(HaveOccurred()) + + Expect(event.Events).To(HaveLen(1), "number of events") + expectedEvent := &peer.ChaincodeEvent{ + ChaincodeId: "gatewaycc", + TxId: nextTransactionID, + EventName: "CORRECT_EVENT_NAME", + Payload: []byte("CORRECT_EVENT_PAYLOAD"), + } + Expect(proto.Equal(event.Events[0], expectedEvent)).To(BeTrue(), "Expected\n\t%#v\nto proto.Equal\n\t%#v", event.Events[0], expectedEvent) + }) + It("should default to next commit if start position not specified", func() { eventCtx, cancel := context.WithTimeout(ctx, 30*time.Second) defer cancel() var startPosition *orderer.SeekPosition - eventsClient, err := chaincodeEvents(eventCtx, startPosition, signingIdentity.Serialize, signingIdentity.Sign) + eventsClient, err := chaincodeEvents(eventCtx, startPosition, "", signingIdentity.Serialize, signingIdentity.Sign) Expect(err).NotTo(HaveOccurred()) _, transactionID := submitTransaction("event", []byte("EVENT_NAME"), []byte("EVENT_PAYLOAD")) @@ -462,7 +503,7 @@ var _ = Describe("GatewayService", func() { }, } - eventsClient, err := chaincodeEvents(eventCtx, startPosition, badIdentity.Serialize, signingIdentity.Sign) + eventsClient, err := chaincodeEvents(eventCtx, startPosition, "", badIdentity.Serialize, signingIdentity.Sign) Expect(err).NotTo(HaveOccurred()) event, err := eventsClient.Recv() @@ -486,7 +527,7 @@ var _ = Describe("GatewayService", func() { }, } - eventsClient, err := chaincodeEvents(eventCtx, startPosition, signingIdentity.Serialize, badSign) + eventsClient, err := chaincodeEvents(eventCtx, startPosition, "", signingIdentity.Serialize, badSign) Expect(err).NotTo(HaveOccurred()) event, err := eventsClient.Recv() diff --git a/internal/pkg/gateway/api.go b/internal/pkg/gateway/api.go index da9142d74fb..c4bc36a2254 100644 --- a/internal/pkg/gateway/api.go +++ b/internal/pkg/gateway/api.go @@ -548,6 +548,8 @@ func (gs *Server) ChaincodeEvents(signedRequest *gp.SignedChaincodeEventsRequest return err } + isMatch := chaincodeEventMatcher(request) + ledgerIter, err := ledger.GetBlocksIterator(startBlock) if err != nil { return status.Error(codes.Aborted, err.Error()) @@ -563,9 +565,8 @@ func (gs *Server) ChaincodeEvents(signedRequest *gp.SignedChaincodeEventsRequest } var matchingEvents []*peer.ChaincodeEvent - for _, event := range response.Events { - if event.GetChaincodeId() == request.GetChaincodeId() { + if isMatch(event) { matchingEvents = append(matchingEvents, event) } } @@ -586,6 +587,30 @@ func (gs *Server) ChaincodeEvents(signedRequest *gp.SignedChaincodeEventsRequest } } +func chaincodeEventMatcher(request *gp.ChaincodeEventsRequest) func(event *peer.ChaincodeEvent) bool { + chaincodeID := request.GetChaincodeId() + previousTransactionID := request.GetAfterTransactionId() + + if len(previousTransactionID) == 0 { + return func(event *peer.ChaincodeEvent) bool { + return event.GetChaincodeId() == chaincodeID + } + } + + passedPreviousTransaction := false + + return func(event *peer.ChaincodeEvent) bool { + if !passedPreviousTransaction { + if event.TxId == previousTransactionID { + passedPreviousTransaction = true + } + return false + } + + return event.GetChaincodeId() == chaincodeID + } +} + func startBlockFromLedgerPosition(ledger ledger.Ledger, position *ab.SeekPosition) (uint64, error) { switch seek := position.GetType().(type) { case nil: diff --git a/internal/pkg/gateway/api_test.go b/internal/pkg/gateway/api_test.go index b20f51392b8..ae89d3797a9 100644 --- a/internal/pkg/gateway/api_test.go +++ b/internal/pkg/gateway/api_test.go @@ -156,6 +156,7 @@ type testDef struct { interest *peer.ChaincodeInterest blocks []*cp.Block startPosition *ab.SeekPosition + afterTxID string } type preparedTest struct { @@ -1481,131 +1482,109 @@ func TestCommitStatus(t *testing.T) { func TestChaincodeEvents(t *testing.T) { now := time.Now() - transactionId := "TRANSACTION_ID" - - matchChaincodeEvent := &peer.ChaincodeEvent{ - ChaincodeId: testChaincode, - TxId: transactionId, - EventName: "EVENT_NAME", - Payload: []byte("PAYLOAD"), - } - - mismatchChaincodeEvent := &peer.ChaincodeEvent{ - ChaincodeId: "WRONG_CHAINCODE_ID", - TxId: transactionId, - EventName: "EVENT_NAME", - Payload: []byte("PAYLOAD"), - } - - txHeader := &cp.Header{ - ChannelHeader: protoutil.MarshalOrPanic(&cp.ChannelHeader{ - Type: int32(cp.HeaderType_ENDORSER_TRANSACTION), - Timestamp: ×tamp.Timestamp{ - Seconds: now.Unix(), - Nanos: int32(now.Nanosecond()), - }, - TxId: transactionId, - }), + lastTransactionID := "LAST_TX_ID" + + newChaincodeEvent := func(chaincodeName string, transactionID string) *peer.ChaincodeEvent { + return &peer.ChaincodeEvent{ + ChaincodeId: chaincodeName, + TxId: transactionID, + EventName: "EVENT_NAME", + Payload: []byte("PAYLOAD"), + } } - matchTxEnvelope := &cp.Envelope{ - Payload: protoutil.MarshalOrPanic(&cp.Payload{ - Header: txHeader, - Data: protoutil.MarshalOrPanic(&peer.Transaction{ - Actions: []*peer.TransactionAction{ - { - Payload: protoutil.MarshalOrPanic(&peer.ChaincodeActionPayload{ - Action: &peer.ChaincodeEndorsedAction{ - ProposalResponsePayload: protoutil.MarshalOrPanic(&peer.ProposalResponsePayload{ - Extension: protoutil.MarshalOrPanic(&peer.ChaincodeAction{ - Events: protoutil.MarshalOrPanic(matchChaincodeEvent), - }), - }), - }, - }), - }, + newTransactionHeader := func(transactionID string) *cp.Header { + return &cp.Header{ + ChannelHeader: protoutil.MarshalOrPanic(&cp.ChannelHeader{ + Type: int32(cp.HeaderType_ENDORSER_TRANSACTION), + Timestamp: ×tamp.Timestamp{ + Seconds: now.Unix(), + Nanos: int32(now.Nanosecond()), }, + TxId: transactionID, }), - }), + } } - mismatchTxEnvelope := &cp.Envelope{ - Payload: protoutil.MarshalOrPanic(&cp.Payload{ - Header: txHeader, - Data: protoutil.MarshalOrPanic(&peer.Transaction{ - Actions: []*peer.TransactionAction{ - { - Payload: protoutil.MarshalOrPanic(&peer.ChaincodeActionPayload{ - Action: &peer.ChaincodeEndorsedAction{ - ProposalResponsePayload: protoutil.MarshalOrPanic(&peer.ProposalResponsePayload{ - Extension: protoutil.MarshalOrPanic(&peer.ChaincodeAction{ - Events: protoutil.MarshalOrPanic(mismatchChaincodeEvent), + newTransactionEnvelope := func(event *peer.ChaincodeEvent) *cp.Envelope { + return &cp.Envelope{ + Payload: protoutil.MarshalOrPanic(&cp.Payload{ + Header: newTransactionHeader(event.GetTxId()), + Data: protoutil.MarshalOrPanic(&peer.Transaction{ + Actions: []*peer.TransactionAction{ + { + Payload: protoutil.MarshalOrPanic(&peer.ChaincodeActionPayload{ + Action: &peer.ChaincodeEndorsedAction{ + ProposalResponsePayload: protoutil.MarshalOrPanic(&peer.ProposalResponsePayload{ + Extension: protoutil.MarshalOrPanic(&peer.ChaincodeAction{ + Events: protoutil.MarshalOrPanic(event), + }), }), - }), - }, - }), + }, + }), + }, }, - }, + }), }), - }), + } } - block100Proto := &cp.Block{ - Header: &cp.BlockHeader{ - Number: 100, - }, - Metadata: &cp.BlockMetadata{ - Metadata: [][]byte{ - nil, - nil, - { - byte(peer.TxValidationCode_VALID), - }, - nil, - nil, + newBlock := func(number uint64) *cp.Block { + return &cp.Block{ + Header: &cp.BlockHeader{ + Number: number, }, - }, - Data: &cp.BlockData{ - Data: [][]byte{ - protoutil.MarshalOrPanic(mismatchTxEnvelope), + Metadata: &cp.BlockMetadata{ + Metadata: make([][]byte, 5), }, - }, + Data: &cp.BlockData{ + Data: [][]byte{}, + }, + } } - block101Proto := &cp.Block{ - Header: &cp.BlockHeader{ - Number: 101, - }, - Metadata: &cp.BlockMetadata{ - Metadata: [][]byte{ - nil, - nil, - { - byte(peer.TxValidationCode_VALID), - byte(peer.TxValidationCode_VALID), - byte(peer.TxValidationCode_VALID), - }, - nil, - nil, - }, - }, - Data: &cp.BlockData{ - Data: [][]byte{ - protoutil.MarshalOrPanic(&cp.Envelope{ - Payload: protoutil.MarshalOrPanic(&cp.Payload{ - Header: &cp.Header{ - ChannelHeader: protoutil.MarshalOrPanic(&cp.ChannelHeader{ - Type: int32(cp.HeaderType_CONFIG_UPDATE), - }), - }, - }), + addTransaction := func(block *cp.Block, transaction *cp.Envelope, status peer.TxValidationCode) { + metadata := block.GetMetadata().GetMetadata() + metadata[cp.BlockMetadataIndex_TRANSACTIONS_FILTER] = append(metadata[cp.BlockMetadataIndex_TRANSACTIONS_FILTER], byte(status)) + + blockData := block.GetData() + blockData.Data = append(blockData.Data, protoutil.MarshalOrPanic(transaction)) + } + + matchEvent := newChaincodeEvent(testChaincode, "EXPECTED_TX_ID") + wrongChaincodeEvent := newChaincodeEvent("WRONG_CHAINCODE", "WRONG__TX_ID") + oldTransactionEvent := newChaincodeEvent(testChaincode, "OLD_TX_ID") + lastTransactionEvent := newChaincodeEvent(testChaincode, lastTransactionID) + lastTransactionWrongChaincodeEvent := newChaincodeEvent("WRONG_CHAINCODE", lastTransactionID) + + configTxEnvelope := &cp.Envelope{ + Payload: protoutil.MarshalOrPanic(&cp.Payload{ + Header: &cp.Header{ + ChannelHeader: protoutil.MarshalOrPanic(&cp.ChannelHeader{ + Type: int32(cp.HeaderType_CONFIG_UPDATE), }), - protoutil.MarshalOrPanic(mismatchTxEnvelope), - protoutil.MarshalOrPanic(matchTxEnvelope), }, - }, + }), } + noMatchingEventsBlock := newBlock(100) + addTransaction(noMatchingEventsBlock, newTransactionEnvelope(wrongChaincodeEvent), peer.TxValidationCode_VALID) + + matchingEventBlock := newBlock(101) + addTransaction(matchingEventBlock, configTxEnvelope, peer.TxValidationCode_VALID) + addTransaction(matchingEventBlock, newTransactionEnvelope(wrongChaincodeEvent), peer.TxValidationCode_VALID) + addTransaction(matchingEventBlock, newTransactionEnvelope(matchEvent), peer.TxValidationCode_VALID) + + partReadBlock := newBlock(200) + addTransaction(partReadBlock, newTransactionEnvelope(oldTransactionEvent), peer.TxValidationCode_VALID) + addTransaction(partReadBlock, newTransactionEnvelope(lastTransactionEvent), peer.TxValidationCode_VALID) + addTransaction(partReadBlock, newTransactionEnvelope(matchEvent), peer.TxValidationCode_VALID) + + differentChaincodePartReadBlock := newBlock(300) + addTransaction(differentChaincodePartReadBlock, newTransactionEnvelope(oldTransactionEvent), peer.TxValidationCode_VALID) + addTransaction(differentChaincodePartReadBlock, newTransactionEnvelope(lastTransactionWrongChaincodeEvent), peer.TxValidationCode_VALID) + addTransaction(differentChaincodePartReadBlock, newTransactionEnvelope(matchEvent), peer.TxValidationCode_VALID) + tests := []testDef{ { name: "error reading events", @@ -1616,17 +1595,17 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns chaincode events", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, expectedResponses: []proto.Message{ &pb.ChaincodeEventsResponse{ - BlockNumber: block101Proto.GetHeader().GetNumber(), + BlockNumber: matchingEventBlock.GetHeader().GetNumber(), Events: []*peer.ChaincodeEvent{ { ChaincodeId: testChaincode, - TxId: matchChaincodeEvent.GetTxId(), - EventName: matchChaincodeEvent.GetEventName(), - Payload: matchChaincodeEvent.GetPayload(), + TxId: matchEvent.GetTxId(), + EventName: matchEvent.GetEventName(), + Payload: matchEvent.GetPayload(), }, }, }, @@ -1635,18 +1614,79 @@ func TestChaincodeEvents(t *testing.T) { { name: "skips blocks containing only non-matching chaincode events", blocks: []*cp.Block{ - block100Proto, - block101Proto, + noMatchingEventsBlock, + matchingEventBlock, + }, + expectedResponses: []proto.Message{ + &pb.ChaincodeEventsResponse{ + BlockNumber: matchingEventBlock.GetHeader().GetNumber(), + Events: []*peer.ChaincodeEvent{ + { + ChaincodeId: testChaincode, + TxId: matchEvent.GetTxId(), + EventName: matchEvent.GetEventName(), + Payload: matchEvent.GetPayload(), + }, + }, + }, + }, + }, + { + name: "skips previously seen transactions", + blocks: []*cp.Block{ + partReadBlock, }, + afterTxID: lastTransactionID, expectedResponses: []proto.Message{ &pb.ChaincodeEventsResponse{ - BlockNumber: block101Proto.GetHeader().GetNumber(), + BlockNumber: partReadBlock.GetHeader().GetNumber(), Events: []*peer.ChaincodeEvent{ { ChaincodeId: testChaincode, - TxId: matchChaincodeEvent.GetTxId(), - EventName: matchChaincodeEvent.GetEventName(), - Payload: matchChaincodeEvent.GetPayload(), + TxId: matchEvent.GetTxId(), + EventName: matchEvent.GetEventName(), + Payload: matchEvent.GetPayload(), + }, + }, + }, + }, + }, + { + name: "identifies previous transaction ID if from different chaincode", + blocks: []*cp.Block{ + differentChaincodePartReadBlock, + }, + afterTxID: lastTransactionID, + expectedResponses: []proto.Message{ + &pb.ChaincodeEventsResponse{ + BlockNumber: differentChaincodePartReadBlock.GetHeader().GetNumber(), + Events: []*peer.ChaincodeEvent{ + { + ChaincodeId: testChaincode, + TxId: matchEvent.GetTxId(), + EventName: matchEvent.GetEventName(), + Payload: matchEvent.GetPayload(), + }, + }, + }, + }, + }, + { + name: "identifies previous transaction ID if not in start block", + blocks: []*cp.Block{ + noMatchingEventsBlock, + partReadBlock, + }, + afterTxID: lastTransactionID, + expectedResponses: []proto.Message{ + &pb.ChaincodeEventsResponse{ + BlockNumber: partReadBlock.GetHeader().GetNumber(), + Events: []*peer.ChaincodeEvent{ + { + ChaincodeId: testChaincode, + TxId: matchEvent.GetTxId(), + EventName: matchEvent.GetEventName(), + Payload: matchEvent.GetPayload(), }, }, }, @@ -1662,7 +1702,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns error obtaining ledger", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, errCode: codes.NotFound, errString: "LEDGER_PROVIDER_ERROR", @@ -1673,7 +1713,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns error obtaining ledger height", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, errCode: codes.Aborted, errString: "LEDGER_INFO_ERROR", @@ -1684,7 +1724,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "uses block height as start block if next commit is specified as start position", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, postSetup: func(t *testing.T, test *preparedTest) { ledgerInfo := &cp.BlockchainInfo{ @@ -1705,7 +1745,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "uses specified start block", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, postSetup: func(t *testing.T, test *preparedTest) { ledgerInfo := &cp.BlockchainInfo{ @@ -1728,7 +1768,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "defaults to next commit if start position not specified", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, postSetup: func(t *testing.T, test *preparedTest) { ledgerInfo := &cp.BlockchainInfo{ @@ -1744,7 +1784,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns error for unsupported start position type", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, startPosition: &ab.SeekPosition{ Type: &ab.SeekPosition_Oldest{ @@ -1757,7 +1797,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns error obtaining ledger iterator", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, errCode: codes.Aborted, errString: "LEDGER_ITERATOR_ERROR", @@ -1768,7 +1808,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns canceled status error when client closes stream", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, errCode: codes.Canceled, postSetup: func(t *testing.T, test *preparedTest) { @@ -1778,7 +1818,7 @@ func TestChaincodeEvents(t *testing.T) { { name: "returns status error from send to client", blocks: []*cp.Block{ - block101Proto, + matchingEventBlock, }, errCode: codes.Aborted, errString: "SEND_ERROR", @@ -1824,6 +1864,9 @@ func TestChaincodeEvents(t *testing.T) { if tt.startPosition != nil { request.StartPosition = tt.startPosition } + if len(tt.afterTxID) > 0 { + request.AfterTransactionId = tt.afterTxID + } requestBytes, err := proto.Marshal(request) require.NoError(t, err) diff --git a/vendor/github.com/hyperledger/fabric-protos-go/gateway/gateway.pb.go b/vendor/github.com/hyperledger/fabric-protos-go/gateway/gateway.pb.go index 4e0c0793788..4b4210ef74c 100644 --- a/vendor/github.com/hyperledger/fabric-protos-go/gateway/gateway.pb.go +++ b/vendor/github.com/hyperledger/fabric-protos-go/gateway/gateway.pb.go @@ -562,10 +562,14 @@ type ChaincodeEventsRequest struct { // Client requestor identity. Identity []byte `protobuf:"bytes,3,opt,name=identity,proto3" json:"identity,omitempty"` // Position within the ledger at which to start reading events. - StartPosition *orderer.SeekPosition `protobuf:"bytes,4,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + StartPosition *orderer.SeekPosition `protobuf:"bytes,4,opt,name=start_position,json=startPosition,proto3" json:"start_position,omitempty"` + // Only returns events after this transaction ID. Transactions up to and including this one should be ignored. This + // is used to allow resume of event listening from a certain position within a start block specified by + // start_position. + AfterTransactionId string `protobuf:"bytes,5,opt,name=after_transaction_id,json=afterTransactionId,proto3" json:"after_transaction_id,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ChaincodeEventsRequest) Reset() { *m = ChaincodeEventsRequest{} } @@ -621,6 +625,13 @@ func (m *ChaincodeEventsRequest) GetStartPosition() *orderer.SeekPosition { return nil } +func (m *ChaincodeEventsRequest) GetAfterTransactionId() string { + if m != nil { + return m.AfterTransactionId + } + return "" +} + // ChaincodeEventsResponse returns chaincode events emitted from a specific block. type ChaincodeEventsResponse struct { // Chaincode events emitted by the requested chaincode. The events are presented in the same order that the @@ -867,61 +878,62 @@ func init() { func init() { proto.RegisterFile("gateway/gateway.proto", fileDescriptor_285396c8df15061f) } var fileDescriptor_285396c8df15061f = []byte{ - // 853 bytes of a gzipped FileDescriptorProto + // 875 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xdd, 0x6e, 0xe3, 0x44, - 0x18, 0x95, 0x37, 0x25, 0x6d, 0xbe, 0xa6, 0x69, 0xe5, 0xb4, 0x69, 0xd6, 0xea, 0x4a, 0x59, 0x4b, - 0x95, 0x7a, 0xc1, 0x3a, 0x4b, 0xb9, 0x40, 0x48, 0x95, 0x90, 0xb6, 0x44, 0xa8, 0x37, 0x10, 0x9c, - 0x55, 0x85, 0x10, 0x52, 0x34, 0x89, 0x3f, 0x1c, 0x53, 0x7b, 0xc6, 0xcc, 0x4c, 0xba, 0x94, 0x47, - 0xe1, 0x0d, 0xb8, 0xe7, 0x55, 0xb8, 0xe1, 0x39, 0x78, 0x00, 0xe4, 0xf9, 0x71, 0xec, 0x26, 0xad, - 0x8a, 0xe8, 0x05, 0x57, 0xce, 0x7c, 0x3f, 0x33, 0x67, 0xce, 0x9c, 0x39, 0x13, 0x38, 0x8a, 0x89, - 0xc4, 0x0f, 0xe4, 0x6e, 0x68, 0xbe, 0x41, 0xce, 0x99, 0x64, 0xee, 0xb6, 0x19, 0x7a, 0x5e, 0x8e, - 0xc8, 0x87, 0xf3, 0x05, 0x49, 0xe8, 0x9c, 0x45, 0x38, 0xc5, 0x5b, 0xa4, 0x52, 0x17, 0x79, 0x5d, - 0x95, 0xcb, 0x39, 0xcb, 0x99, 0x20, 0xa9, 0x09, 0x9e, 0xd4, 0x82, 0x53, 0x8e, 0x22, 0x67, 0x54, - 0xa0, 0xc9, 0xf6, 0x54, 0x56, 0x72, 0x42, 0x05, 0x99, 0xcb, 0x84, 0x51, 0x3b, 0xd5, 0x9c, 0x65, - 0x19, 0xa3, 0x43, 0xfd, 0x31, 0xc1, 0x03, 0xc6, 0x23, 0xe4, 0xc8, 0x87, 0x64, 0xa6, 0x23, 0xfe, - 0x5f, 0x0e, 0x74, 0x46, 0x34, 0x62, 0x5c, 0x60, 0x88, 0x3f, 0x2f, 0x51, 0x48, 0xf7, 0x14, 0x3a, - 0x95, 0xe9, 0xa6, 0x49, 0xd4, 0x77, 0x06, 0xce, 0x59, 0x2b, 0xdc, 0xab, 0x44, 0xaf, 0x22, 0xf7, - 0x15, 0xc0, 0x7c, 0x41, 0x28, 0xc5, 0xb4, 0x28, 0x79, 0xa1, 0x4a, 0x5a, 0x26, 0x72, 0x15, 0xb9, - 0x57, 0x70, 0xa8, 0x21, 0x63, 0x34, 0xad, 0x34, 0xf6, 0x1b, 0x03, 0xe7, 0x6c, 0xf7, 0xbc, 0xa7, - 0x97, 0x17, 0xc1, 0x24, 0x89, 0x29, 0x46, 0x63, 0xb3, 0xb9, 0xb0, 0x6b, 0x7b, 0xde, 0xaf, 0x5a, - 0xdc, 0xcf, 0xe0, 0x18, 0x15, 0xc4, 0x84, 0xc6, 0x53, 0xc6, 0x63, 0x42, 0x93, 0x5f, 0x49, 0x91, - 0x11, 0xfd, 0xad, 0x41, 0xe3, 0xac, 0x15, 0xf6, 0xca, 0xf4, 0x37, 0xd5, 0xac, 0x7f, 0x0d, 0xfb, - 0xe5, 0xde, 0x34, 0x69, 0xee, 0x65, 0x01, 0x0b, 0x73, 0xc2, 0xef, 0xc1, 0x72, 0x14, 0xac, 0x83, - 0xc0, 0xd0, 0x35, 0xa2, 0xb7, 0x98, 0xb2, 0x1c, 0x0b, 0x40, 0xba, 0xba, 0x02, 0xc8, 0xff, 0xcd, - 0x81, 0xbd, 0xc9, 0x72, 0x96, 0x25, 0xf2, 0x79, 0x39, 0x7b, 0x08, 0x5c, 0xe3, 0xdf, 0x80, 0x3b, - 0x80, 0x8e, 0xc5, 0xa6, 0xf7, 0xec, 0x4f, 0xe0, 0xa5, 0xa6, 0xf9, 0x92, 0x65, 0x59, 0x22, 0x27, - 0x92, 0xc8, 0xa5, 0xb0, 0xc8, 0xfb, 0xb0, 0xcd, 0xf5, 0x4f, 0x05, 0xb9, 0x1d, 0xda, 0xa1, 0x7b, - 0x02, 0x2d, 0x91, 0xc4, 0x94, 0xc8, 0x25, 0x47, 0x85, 0xb5, 0x1d, 0xae, 0x02, 0xfe, 0x07, 0xe8, - 0x6e, 0x9a, 0xee, 0x79, 0x88, 0xf0, 0x60, 0x27, 0x89, 0x90, 0xca, 0x44, 0xde, 0xa9, 0xcd, 0xb7, - 0xc3, 0x72, 0xec, 0xdf, 0xc0, 0x61, 0x7d, 0x61, 0x73, 0xb2, 0x6f, 0xa1, 0xc9, 0x51, 0x2c, 0x53, - 0xbd, 0x8f, 0xce, 0x79, 0xdf, 0x4a, 0xec, 0xfd, 0x2f, 0xd7, 0x24, 0x4d, 0x22, 0xa5, 0x89, 0x4b, - 0x16, 0x61, 0x68, 0xea, 0xdc, 0xd7, 0xd0, 0x9e, 0xa5, 0x6c, 0x7e, 0x33, 0xa5, 0xcb, 0x6c, 0x86, - 0x5c, 0xc1, 0xd8, 0x0a, 0x77, 0x55, 0xec, 0x6b, 0x15, 0xf2, 0xff, 0x74, 0x60, 0x7f, 0x74, 0x4b, - 0xd2, 0x25, 0x91, 0xff, 0xdf, 0xfb, 0xf1, 0x09, 0x1c, 0x4a, 0xc2, 0x63, 0x94, 0x1b, 0x2f, 0x47, - 0x57, 0xe7, 0xea, 0x37, 0xe3, 0x02, 0x0e, 0x56, 0xdb, 0x32, 0x04, 0x9e, 0xd5, 0x08, 0x2c, 0xf4, - 0x66, 0x30, 0xd8, 0x0a, 0x4b, 0x9c, 0x7f, 0x0d, 0x27, 0x46, 0x50, 0xd6, 0xc5, 0x46, 0x85, 0x89, - 0xfd, 0x67, 0x4d, 0xfd, 0xe1, 0x40, 0xef, 0x81, 0x29, 0xeb, 0x6c, 0x3a, 0xf7, 0xd9, 0x7c, 0x0d, - 0xed, 0x95, 0xa3, 0x96, 0x74, 0xef, 0x96, 0xb1, 0xc7, 0x35, 0xe5, 0x5e, 0x40, 0x47, 0x48, 0xc2, - 0xe5, 0x34, 0x67, 0x22, 0x51, 0xc7, 0xb0, 0xa5, 0x28, 0x38, 0x0a, 0x8c, 0x61, 0x06, 0x13, 0xc4, - 0x9b, 0xb1, 0x49, 0x86, 0x7b, 0xaa, 0xd8, 0x0e, 0xfd, 0x14, 0x8e, 0xd7, 0x50, 0x1b, 0x4e, 0x03, - 0x68, 0x2a, 0x7f, 0x17, 0x7d, 0x67, 0xd0, 0xa8, 0x9e, 0x6b, 0xbd, 0x21, 0x34, 0x55, 0x4f, 0x91, - 0xe4, 0x77, 0xb0, 0x3b, 0xe2, 0x9c, 0xf1, 0x2f, 0x51, 0x92, 0x24, 0x2d, 0xb8, 0x26, 0x51, 0xc4, - 0x51, 0x08, 0xc3, 0x8a, 0x1d, 0xba, 0x47, 0xd0, 0xcc, 0x44, 0xbe, 0x62, 0xe3, 0xa3, 0x4c, 0xe4, - 0x57, 0x51, 0xd1, 0x90, 0xa1, 0x10, 0x24, 0x46, 0x45, 0x43, 0x2b, 0xb4, 0x43, 0xff, 0x77, 0x07, - 0xba, 0xe3, 0x0d, 0xfa, 0x7a, 0xa2, 0xe0, 0xcf, 0x61, 0xc7, 0x3e, 0x52, 0x6a, 0xc5, 0x87, 0x55, - 0x5c, 0xd6, 0x3d, 0x66, 0xed, 0x8d, 0x47, 0xad, 0xfd, 0xa7, 0x02, 0xea, 0x9a, 0xf9, 0x3d, 0x15, - 0xea, 0xc7, 0xb0, 0x83, 0xc6, 0x44, 0x0d, 0xd4, 0x75, 0x73, 0x2d, 0x2b, 0xce, 0xff, 0x7e, 0x01, - 0xdb, 0x5f, 0xe9, 0xd7, 0xdb, 0xbd, 0x80, 0x6d, 0xf3, 0xa4, 0xb8, 0xc7, 0x81, 0x7d, 0xe1, 0xeb, - 0x0f, 0xa8, 0xd7, 0x5f, 0x4f, 0x18, 0x39, 0x7c, 0x0e, 0x4d, 0xed, 0xcd, 0x6e, 0xaf, 0xac, 0xa9, - 0x3d, 0x24, 0xde, 0xf1, 0x5a, 0xdc, 0xb4, 0x7e, 0x0b, 0xed, 0xaa, 0xed, 0xb9, 0xfe, 0xaa, 0xf0, - 0x21, 0x6f, 0xf7, 0x5e, 0x95, 0x35, 0x1b, 0x1d, 0xf3, 0x0b, 0xd8, 0xb1, 0x26, 0xe0, 0x56, 0x30, - 0xd7, 0xed, 0xce, 0x7b, 0xb9, 0x21, 0x63, 0x26, 0xf8, 0x01, 0xf6, 0xef, 0x09, 0xdf, 0x3d, 0xbd, - 0x0f, 0x6b, 0xe3, 0x75, 0xf6, 0x06, 0x2b, 0x64, 0x9b, 0x6f, 0xce, 0x5b, 0xe7, 0xdd, 0x02, 0x4e, - 0x19, 0x8f, 0x83, 0xc5, 0x5d, 0x8e, 0x3c, 0xc5, 0x28, 0x46, 0x1e, 0xfc, 0x48, 0x66, 0x3c, 0x99, - 0x5b, 0x55, 0x99, 0x29, 0xde, 0xb5, 0xcd, 0xe1, 0x8c, 0x8b, 0xf0, 0xd8, 0xf9, 0x7e, 0x18, 0x27, - 0x72, 0xb1, 0x9c, 0x15, 0x27, 0x3a, 0xac, 0x74, 0x0f, 0x75, 0xf7, 0x1b, 0xdd, 0xfd, 0x26, 0x66, - 0xf6, 0x1f, 0xda, 0xac, 0xa9, 0x42, 0x9f, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0x7a, 0xac, 0xc2, - 0x21, 0xbb, 0x09, 0x00, 0x00, + 0x14, 0x96, 0x37, 0xdd, 0xb4, 0x39, 0x4d, 0xd3, 0x6a, 0xd2, 0xa6, 0x59, 0xab, 0x2b, 0x65, 0x2d, + 0x55, 0xea, 0x05, 0xeb, 0x94, 0x72, 0x81, 0x90, 0x2a, 0x21, 0x6d, 0x89, 0x50, 0x6f, 0x20, 0x38, + 0x55, 0x85, 0x10, 0x52, 0x34, 0x89, 0xcf, 0x3a, 0xa6, 0xb6, 0xc7, 0xcc, 0x8c, 0xbb, 0x94, 0x47, + 0xe1, 0x0d, 0x78, 0x20, 0x6e, 0x78, 0x00, 0x9e, 0x80, 0x07, 0x40, 0x1e, 0xcf, 0x38, 0x76, 0x92, + 0x56, 0x45, 0xec, 0x05, 0x57, 0xc9, 0x9c, 0x9f, 0x99, 0xef, 0x7c, 0xf3, 0xcd, 0x39, 0x86, 0xa3, + 0x80, 0x4a, 0xfc, 0x40, 0x1f, 0x86, 0xfa, 0xd7, 0x4d, 0x39, 0x93, 0x8c, 0x6c, 0xeb, 0xa5, 0x6d, + 0xa7, 0x88, 0x7c, 0x38, 0x5f, 0xd0, 0x30, 0x99, 0x33, 0x1f, 0xa7, 0x78, 0x8f, 0x89, 0x2c, 0x82, + 0xec, 0xae, 0xf2, 0xa5, 0x9c, 0xa5, 0x4c, 0xd0, 0x48, 0x1b, 0x4f, 0x6a, 0xc6, 0x29, 0x47, 0x91, + 0xb2, 0x44, 0xa0, 0xf6, 0xf6, 0x94, 0x57, 0x72, 0x9a, 0x08, 0x3a, 0x97, 0x21, 0x4b, 0xcc, 0x56, + 0x73, 0x16, 0xc7, 0x2c, 0x19, 0x16, 0x3f, 0xda, 0x78, 0xc0, 0xb8, 0x8f, 0x1c, 0xf9, 0x90, 0xce, + 0x0a, 0x8b, 0xf3, 0xa7, 0x05, 0x9d, 0x51, 0xe2, 0x33, 0x2e, 0xd0, 0xc3, 0x9f, 0x33, 0x14, 0x92, + 0x9c, 0x42, 0xa7, 0xb2, 0xdd, 0x34, 0xf4, 0xfb, 0xd6, 0xc0, 0x3a, 0x6b, 0x79, 0x7b, 0x15, 0xeb, + 0xb5, 0x4f, 0x5e, 0x03, 0xcc, 0x17, 0x34, 0x49, 0x30, 0xca, 0x43, 0x5e, 0xa8, 0x90, 0x96, 0xb6, + 0x5c, 0xfb, 0xe4, 0x1a, 0x0e, 0x0b, 0xc8, 0xe8, 0x4f, 0x2b, 0x89, 0xfd, 0xc6, 0xc0, 0x3a, 0xdb, + 0xbd, 0xe8, 0x15, 0xc7, 0x0b, 0x77, 0x12, 0x06, 0x09, 0xfa, 0x63, 0x5d, 0x9c, 0xd7, 0x35, 0x39, + 0x37, 0xcb, 0x14, 0xf2, 0x39, 0x1c, 0xa3, 0x82, 0x18, 0x26, 0xc1, 0x94, 0xf1, 0x80, 0x26, 0xe1, + 0xaf, 0x34, 0xf7, 0x88, 0xfe, 0xd6, 0xa0, 0x71, 0xd6, 0xf2, 0x7a, 0xa5, 0xfb, 0xdb, 0xaa, 0xd7, + 0xb9, 0x85, 0xfd, 0xb2, 0xb6, 0x82, 0x34, 0x72, 0x95, 0xc3, 0xc2, 0x94, 0xf2, 0x15, 0x58, 0x96, + 0x82, 0x75, 0xe0, 0x6a, 0xba, 0x46, 0xc9, 0x3d, 0x46, 0x2c, 0xc5, 0x1c, 0x50, 0x11, 0x5d, 0x01, + 0xe4, 0xfc, 0x66, 0xc1, 0xde, 0x24, 0x9b, 0xc5, 0xa1, 0xfc, 0xb8, 0x9c, 0x3d, 0x06, 0xae, 0xf1, + 0x6f, 0xc0, 0x1d, 0x40, 0xc7, 0x60, 0x2b, 0x6a, 0x76, 0x26, 0xf0, 0xaa, 0xa0, 0xf9, 0x8a, 0xc5, + 0x71, 0x28, 0x27, 0x92, 0xca, 0x4c, 0x18, 0xe4, 0x7d, 0xd8, 0xe6, 0xc5, 0x5f, 0x05, 0xb9, 0xed, + 0x99, 0x25, 0x39, 0x81, 0x96, 0x08, 0x83, 0x84, 0xca, 0x8c, 0xa3, 0xc2, 0xda, 0xf6, 0x96, 0x06, + 0xe7, 0x03, 0x74, 0x37, 0x6d, 0xf7, 0x71, 0x88, 0xb0, 0x61, 0x27, 0xf4, 0x31, 0x91, 0xa1, 0x7c, + 0x50, 0xc5, 0xb7, 0xbd, 0x72, 0xed, 0xdc, 0xc1, 0x61, 0xfd, 0x60, 0x7d, 0xb3, 0xe7, 0xd0, 0xe4, + 0x28, 0xb2, 0xa8, 0xa8, 0xa3, 0x73, 0xd1, 0x37, 0x12, 0xbb, 0xf9, 0xe5, 0x96, 0x46, 0xa1, 0xaf, + 0x34, 0x71, 0xc5, 0x7c, 0xf4, 0x74, 0x1c, 0x79, 0x03, 0xed, 0x59, 0xc4, 0xe6, 0x77, 0xd3, 0x24, + 0x8b, 0x67, 0xc8, 0x15, 0x8c, 0x2d, 0x6f, 0x57, 0xd9, 0xbe, 0x51, 0x26, 0xe7, 0x0f, 0x0b, 0xf6, + 0x47, 0xf7, 0x34, 0xca, 0xa8, 0xfc, 0xff, 0xbe, 0x8f, 0x4f, 0xe1, 0x50, 0x52, 0x1e, 0xa0, 0xdc, + 0xf8, 0x38, 0xba, 0x85, 0xaf, 0xfe, 0x32, 0x2e, 0xe1, 0x60, 0x59, 0x96, 0x26, 0xf0, 0xac, 0x46, + 0x60, 0xae, 0x37, 0x8d, 0xc1, 0x44, 0x18, 0xe2, 0x9c, 0x5b, 0x38, 0xd1, 0x82, 0x32, 0x5d, 0x6c, + 0x94, 0x37, 0xb1, 0xff, 0xac, 0xa9, 0xbf, 0x2c, 0xe8, 0x3d, 0xb2, 0x65, 0x9d, 0x4d, 0x6b, 0x95, + 0xcd, 0x37, 0xd0, 0x5e, 0x76, 0xd4, 0x92, 0xee, 0xdd, 0xd2, 0xf6, 0xb4, 0xa6, 0xc8, 0x25, 0x74, + 0x84, 0xa4, 0x5c, 0x4e, 0x53, 0x26, 0x42, 0x75, 0x0d, 0x5b, 0x8a, 0x82, 0x23, 0x57, 0x37, 0x4c, + 0x77, 0x82, 0x78, 0x37, 0xd6, 0x4e, 0x6f, 0x4f, 0x05, 0x9b, 0x25, 0x39, 0x87, 0x43, 0xfa, 0x5e, + 0x22, 0x9f, 0xae, 0xc8, 0xe2, 0xa5, 0x02, 0x41, 0x94, 0xef, 0xa6, 0xaa, 0x0d, 0x27, 0x82, 0xe3, + 0xb5, 0x3a, 0xf5, 0x2d, 0xb8, 0xd0, 0x54, 0x13, 0x41, 0xf4, 0xad, 0x41, 0xa3, 0xaa, 0x84, 0x7a, + 0x82, 0xa7, 0xa3, 0x9e, 0x23, 0xe2, 0xef, 0x61, 0x77, 0xc4, 0x39, 0xe3, 0x5f, 0xa1, 0xa4, 0x61, + 0x94, 0xdf, 0x0e, 0xf5, 0x7d, 0x8e, 0x42, 0x68, 0x1e, 0xcd, 0x92, 0x1c, 0x41, 0x33, 0x16, 0xe9, + 0x92, 0xbf, 0x97, 0xb1, 0x48, 0xaf, 0xfd, 0x3c, 0x21, 0x46, 0x21, 0x68, 0x80, 0x8a, 0xb8, 0x96, + 0x67, 0x96, 0xce, 0xef, 0x16, 0x74, 0xc7, 0x1b, 0x14, 0xf9, 0xcc, 0x27, 0x72, 0x01, 0x3b, 0x66, + 0xac, 0xa9, 0x13, 0x1f, 0xd7, 0x7d, 0x19, 0xf7, 0xd4, 0x30, 0x68, 0x3c, 0x39, 0x0c, 0x7e, 0xca, + 0xa1, 0xae, 0xb5, 0xcb, 0xe7, 0x42, 0xfd, 0x04, 0x76, 0x50, 0xb7, 0x5d, 0x0d, 0x75, 0xbd, 0x1d, + 0x97, 0x11, 0x17, 0x7f, 0xbf, 0x80, 0xed, 0xaf, 0x8b, 0x79, 0x4f, 0x2e, 0x61, 0x5b, 0x0f, 0x21, + 0x72, 0xec, 0x9a, 0x6f, 0x82, 0xfa, 0xc8, 0xb5, 0xfb, 0xeb, 0x0e, 0x2d, 0x87, 0x2f, 0xa0, 0x59, + 0x74, 0x73, 0xd2, 0x2b, 0x63, 0x6a, 0xa3, 0xc7, 0x3e, 0x5e, 0xb3, 0xeb, 0xd4, 0xef, 0xa0, 0x5d, + 0x6d, 0x94, 0xc4, 0x59, 0x06, 0x3e, 0x36, 0x0d, 0xec, 0xd7, 0x65, 0xcc, 0xc6, 0x1e, 0xfb, 0x25, + 0xec, 0x98, 0xb6, 0x41, 0x2a, 0x98, 0xeb, 0x0d, 0xd2, 0x7e, 0xb5, 0xc1, 0xa3, 0x37, 0xf8, 0x11, + 0xf6, 0x57, 0x84, 0x4f, 0x4e, 0x57, 0x61, 0x6d, 0x6c, 0x00, 0xf6, 0x60, 0x89, 0x6c, 0xf3, 0xcb, + 0x39, 0xb7, 0xde, 0x2d, 0xe0, 0x94, 0xf1, 0xc0, 0x5d, 0x3c, 0xa4, 0xc8, 0x23, 0xf4, 0x03, 0xe4, + 0xee, 0x7b, 0x3a, 0xe3, 0xe1, 0xdc, 0xa8, 0x4a, 0x6f, 0xf1, 0xae, 0xad, 0x2f, 0x67, 0x9c, 0x9b, + 0xc7, 0xd6, 0x0f, 0xc3, 0x20, 0x94, 0x8b, 0x6c, 0x96, 0xdf, 0xe8, 0xb0, 0x92, 0x3d, 0x2c, 0xb2, + 0xdf, 0x16, 0xd9, 0x6f, 0x03, 0x66, 0xbe, 0xe9, 0x66, 0x4d, 0x65, 0xfa, 0xec, 0x9f, 0x00, 0x00, + 0x00, 0xff, 0xff, 0x41, 0xfb, 0x4e, 0xca, 0xed, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/vendor/github.com/hyperledger/fabric-protos-go/ledger/rwset/kvrwset/kv_rwset.pb.go b/vendor/github.com/hyperledger/fabric-protos-go/ledger/rwset/kvrwset/kv_rwset.pb.go index cb03cd71474..19b86e811bc 100644 --- a/vendor/github.com/hyperledger/fabric-protos-go/ledger/rwset/kvrwset/kv_rwset.pb.go +++ b/vendor/github.com/hyperledger/fabric-protos-go/ledger/rwset/kvrwset/kv_rwset.pb.go @@ -349,6 +349,7 @@ type KVWriteHash struct { KeyHash []byte `protobuf:"bytes,1,opt,name=key_hash,json=keyHash,proto3" json:"key_hash,omitempty"` IsDelete bool `protobuf:"varint,2,opt,name=is_delete,json=isDelete,proto3" json:"is_delete,omitempty"` ValueHash []byte `protobuf:"bytes,3,opt,name=value_hash,json=valueHash,proto3" json:"value_hash,omitempty"` + IsPurge bool `protobuf:"varint,4,opt,name=is_purge,json=isPurge,proto3" json:"is_purge,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -400,6 +401,13 @@ func (m *KVWriteHash) GetValueHash() []byte { return nil } +func (m *KVWriteHash) GetIsPurge() bool { + if m != nil { + return m.IsPurge + } + return false +} + // KVMetadataWriteHash captures all the upserts to the metadata associated with a key hash type KVMetadataWriteHash struct { KeyHash []byte `protobuf:"bytes,1,opt,name=key_hash,json=keyHash,proto3" json:"key_hash,omitempty"` @@ -778,52 +786,53 @@ func init() { } var fileDescriptor_ee5d686eab23a142 = []byte{ - // 744 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0xdf, 0x6b, 0xe3, 0x46, - 0x10, 0x8e, 0x7f, 0xcb, 0x63, 0x3b, 0x71, 0x37, 0x29, 0x51, 0x69, 0x0b, 0x46, 0xa1, 0x60, 0x02, - 0xb1, 0xc1, 0x85, 0xd2, 0xd2, 0xf6, 0xa1, 0x25, 0x3e, 0x72, 0xe4, 0x12, 0xb8, 0x0d, 0x24, 0x70, - 0x2f, 0x62, 0x1d, 0x4d, 0x6c, 0x61, 0x4b, 0xca, 0xad, 0x56, 0xb6, 0xf5, 0x74, 0xdc, 0x5f, 0x77, - 0xff, 0xc8, 0xfd, 0x21, 0xc7, 0xce, 0xca, 0xb1, 0xe2, 0x73, 0x0c, 0x77, 0x4f, 0xd6, 0xce, 0x37, - 0xdf, 0xec, 0x7c, 0xdf, 0x78, 0x77, 0xe1, 0x64, 0x86, 0xde, 0x18, 0x65, 0x5f, 0x2e, 0x62, 0x54, - 0xfd, 0xe9, 0x7c, 0xf5, 0xeb, 0xd2, 0x47, 0xef, 0x51, 0x46, 0x2a, 0x62, 0xb5, 0x2c, 0xee, 0x7c, - 0x2e, 0x40, 0xed, 0xf2, 0x96, 0xdf, 0xdd, 0xa0, 0x62, 0xbf, 0x41, 0x45, 0xa2, 0xf0, 0x62, 0xbb, - 0xd0, 0x29, 0x75, 0x1b, 0x83, 0x83, 0x5e, 0x96, 0xd4, 0xbb, 0xbc, 0xe5, 0x28, 0x3c, 0x6e, 0x50, - 0x36, 0x04, 0x26, 0x45, 0x38, 0x46, 0xf7, 0x7d, 0x82, 0xd2, 0xc7, 0xd8, 0xf5, 0xc3, 0x87, 0xc8, - 0x2e, 0x12, 0xe7, 0xf8, 0x89, 0xc3, 0x75, 0xca, 0xdb, 0x04, 0x65, 0xfa, 0x3a, 0x7c, 0x88, 0x78, - 0x5b, 0xae, 0xd6, 0x3e, 0xc6, 0x3a, 0xc2, 0xba, 0x50, 0x5d, 0x48, 0x5f, 0x61, 0x6c, 0x97, 0x88, - 0xda, 0xce, 0x6d, 0x77, 0xa7, 0x01, 0x9e, 0xe1, 0xec, 0x3f, 0x38, 0x08, 0x50, 0x09, 0x4f, 0x28, - 0xe1, 0x66, 0x94, 0x32, 0x51, 0xec, 0x1c, 0xe5, 0x2a, 0xcb, 0x30, 0xd4, 0xfd, 0x20, 0xbf, 0x8c, - 0x9d, 0x4f, 0x05, 0x68, 0x5c, 0x88, 0x78, 0x82, 0x9e, 0x91, 0xfa, 0x07, 0x34, 0x27, 0xb4, 0x74, - 0xf3, 0x8a, 0x0f, 0x37, 0x14, 0x6b, 0x06, 0x6f, 0x98, 0x44, 0x4e, 0xda, 0xff, 0x82, 0x56, 0xc6, - 0xcb, 0x1a, 0x31, 0xb2, 0x8f, 0x36, 0x7b, 0x27, 0x66, 0xb6, 0x85, 0x69, 0x81, 0x0d, 0xbf, 0x56, - 0x61, 0x84, 0xff, 0xf2, 0x92, 0x0a, 0x2a, 0xb2, 0xa9, 0xe4, 0x15, 0x54, 0x4d, 0x73, 0xac, 0x0d, - 0xa5, 0x29, 0xa6, 0x76, 0xa1, 0x53, 0xe8, 0xd6, 0xb9, 0xfe, 0x64, 0xa7, 0x50, 0x9b, 0xa3, 0x8c, - 0xfd, 0x28, 0xb4, 0x8b, 0x9d, 0xc2, 0x33, 0x4f, 0x6f, 0x4d, 0x9c, 0xaf, 0x12, 0x9c, 0x6b, 0x3d, - 0x77, 0xaa, 0xb9, 0xa5, 0xd0, 0xcf, 0x50, 0xf7, 0x63, 0xd7, 0xc3, 0x19, 0x2a, 0xa4, 0x52, 0x16, - 0xb7, 0xfc, 0xf8, 0x9c, 0xd6, 0xec, 0x08, 0x2a, 0x73, 0x31, 0x4b, 0xd0, 0x2e, 0x75, 0x0a, 0xdd, - 0x26, 0x37, 0x0b, 0xe7, 0x0e, 0x0e, 0x36, 0xda, 0xdf, 0x52, 0x77, 0x00, 0x35, 0x0c, 0x95, 0xfe, - 0x0b, 0x64, 0xc6, 0x6d, 0x9b, 0xe0, 0x30, 0x54, 0x32, 0xe5, 0xab, 0x44, 0xe7, 0x06, 0x60, 0x3d, - 0x0d, 0xf6, 0x13, 0x58, 0x53, 0x4c, 0x5d, 0xed, 0x2c, 0x15, 0x6e, 0xf2, 0xda, 0x14, 0x53, 0x82, - 0xbe, 0x45, 0xbd, 0x07, 0x8d, 0xdc, 0xa4, 0x76, 0x55, 0xdd, 0x69, 0xc5, 0xaf, 0x00, 0xa4, 0xde, - 0x30, 0x8d, 0x1f, 0x75, 0x8a, 0x68, 0xae, 0xe3, 0xc1, 0xe1, 0x96, 0x91, 0xee, 0xda, 0xed, 0x7b, - 0x0c, 0xfa, 0x3b, 0xef, 0x3c, 0x61, 0x8c, 0x41, 0x39, 0x14, 0x01, 0x66, 0xd6, 0xd3, 0xf7, 0x7a, - 0x6c, 0xc5, 0xfc, 0xd8, 0xfe, 0x85, 0x5a, 0x66, 0x8e, 0x56, 0x3a, 0x9a, 0x45, 0xf7, 0x53, 0x37, - 0x4c, 0x02, 0x62, 0x96, 0xb9, 0x45, 0x81, 0xeb, 0x24, 0x60, 0x3f, 0x42, 0x55, 0x2d, 0x09, 0x29, - 0x12, 0x52, 0x51, 0xcb, 0xeb, 0x24, 0x70, 0x3e, 0x16, 0x61, 0xff, 0xf9, 0x49, 0xd7, 0x65, 0x62, - 0x25, 0xa4, 0x72, 0xd7, 0xb3, 0xb7, 0x28, 0x70, 0x89, 0x29, 0x3b, 0xd6, 0xfa, 0x3c, 0x82, 0x8a, - 0x04, 0x55, 0x31, 0xf4, 0x34, 0x70, 0x02, 0x2d, 0x5f, 0x49, 0x17, 0x97, 0x13, 0x91, 0xc4, 0x0a, - 0x3d, 0x32, 0xd3, 0xe2, 0x4d, 0x5f, 0xc9, 0xe1, 0x2a, 0xc6, 0x06, 0x50, 0x97, 0x62, 0x91, 0x1d, - 0xd9, 0x32, 0xcd, 0x78, 0x7d, 0x64, 0xa9, 0x03, 0x3a, 0xa5, 0x17, 0x7b, 0xdc, 0x92, 0x62, 0x61, - 0x4e, 0x2c, 0x87, 0x43, 0xca, 0x77, 0x03, 0x94, 0xd3, 0x99, 0x99, 0x14, 0xc6, 0x76, 0x85, 0xd8, - 0x9d, 0x2d, 0xec, 0x2b, 0xca, 0xbb, 0x49, 0x82, 0x40, 0xc8, 0xf4, 0x62, 0x8f, 0xff, 0x20, 0xd7, - 0x51, 0xba, 0x42, 0xe2, 0xff, 0x9b, 0x00, 0xa6, 0xa6, 0xbe, 0xf9, 0x9c, 0x3f, 0x01, 0xd6, 0x6c, - 0x76, 0x0a, 0x96, 0xbe, 0x6b, 0x77, 0xdd, 0xa3, 0xb5, 0xe9, 0x9c, 0x72, 0x9d, 0x0f, 0x70, 0xfc, - 0xc2, 0xbe, 0xfa, 0x9f, 0x15, 0x88, 0xa5, 0xeb, 0xe1, 0x58, 0xa2, 0x99, 0x63, 0x8b, 0xd7, 0x03, - 0xb1, 0x3c, 0xa7, 0x80, 0x36, 0x59, 0xc3, 0x33, 0x9c, 0xe3, 0x8c, 0x9c, 0x6c, 0x71, 0x2b, 0x10, - 0xcb, 0x37, 0x7a, 0xcd, 0xba, 0xd0, 0x7e, 0x02, 0x57, 0x7a, 0xf5, 0x55, 0xd3, 0xe4, 0xfb, 0xab, - 0x9c, 0x4c, 0x88, 0x84, 0x41, 0x24, 0xc7, 0xbd, 0x49, 0xfa, 0x88, 0xd2, 0x3c, 0x1b, 0xbd, 0x07, - 0x31, 0x92, 0xfe, 0xbd, 0x79, 0x26, 0xe2, 0x5e, 0x16, 0x34, 0xed, 0x67, 0x32, 0xde, 0xfd, 0x33, - 0xf6, 0xd5, 0x24, 0x19, 0xf5, 0xee, 0xa3, 0xa0, 0x9f, 0xa3, 0xf6, 0x0d, 0xf5, 0xcc, 0x50, 0xcf, - 0xc6, 0x51, 0x7f, 0xdb, 0x4b, 0x34, 0xaa, 0x12, 0xfe, 0xfb, 0x97, 0x00, 0x00, 0x00, 0xff, 0xff, - 0x0f, 0x2b, 0xb7, 0xc9, 0xa8, 0x06, 0x00, 0x00, + // 759 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x55, 0x5f, 0x6b, 0xe3, 0x46, + 0x10, 0x3f, 0xff, 0x95, 0x3c, 0xb6, 0x13, 0x77, 0x73, 0x25, 0x2a, 0x6d, 0xc1, 0xe8, 0x28, 0x98, + 0x83, 0xb3, 0xc1, 0x85, 0xd2, 0xd2, 0xf6, 0xa1, 0xe5, 0x5c, 0x52, 0xd2, 0x0b, 0xed, 0x06, 0x12, + 0xe8, 0x8b, 0x58, 0x47, 0x13, 0x5b, 0xd8, 0x92, 0xd2, 0xdd, 0x95, 0x6d, 0x3d, 0x1d, 0xfd, 0x74, + 0xfd, 0x22, 0xfd, 0x20, 0x65, 0x67, 0xa5, 0xb3, 0xce, 0xf5, 0x19, 0xda, 0x27, 0x69, 0xe6, 0x37, + 0xbf, 0xd1, 0xfc, 0x66, 0xb4, 0xb3, 0xf0, 0x62, 0x8d, 0xe1, 0x02, 0xe5, 0x44, 0x6e, 0x15, 0xea, + 0xc9, 0x6a, 0x53, 0x3e, 0x03, 0x7a, 0x19, 0x3f, 0xc9, 0x54, 0xa7, 0xcc, 0x29, 0xfc, 0xfe, 0xdf, + 0x35, 0x70, 0xae, 0xef, 0xf8, 0xfd, 0x2d, 0x6a, 0xf6, 0x05, 0xb4, 0x24, 0x8a, 0x50, 0x79, 0xb5, + 0x61, 0x63, 0xd4, 0x9d, 0x9e, 0x8f, 0x8b, 0xa0, 0xf1, 0xf5, 0x1d, 0x47, 0x11, 0x72, 0x8b, 0xb2, + 0x19, 0x30, 0x29, 0x92, 0x05, 0x06, 0x7f, 0x64, 0x28, 0x23, 0x54, 0x41, 0x94, 0x3c, 0xa6, 0x5e, + 0x9d, 0x38, 0x97, 0xef, 0x38, 0xdc, 0x84, 0xfc, 0x96, 0xa1, 0xcc, 0x7f, 0x4e, 0x1e, 0x53, 0x3e, + 0x90, 0xa5, 0x1d, 0xa1, 0x32, 0x1e, 0x36, 0x82, 0xf6, 0x56, 0x46, 0x1a, 0x95, 0xd7, 0x20, 0xea, + 0xa0, 0xf2, 0xb9, 0x7b, 0x03, 0xf0, 0x02, 0x67, 0x3f, 0xc0, 0x79, 0x8c, 0x5a, 0x84, 0x42, 0x8b, + 0xa0, 0xa0, 0x34, 0x89, 0xe2, 0x55, 0x28, 0x6f, 0x8a, 0x08, 0x4b, 0x3d, 0x8b, 0xab, 0xa6, 0xf2, + 0xff, 0xaa, 0x41, 0xf7, 0x4a, 0xa8, 0x25, 0x86, 0x56, 0xea, 0x57, 0xd0, 0x5b, 0x92, 0x19, 0x54, + 0x15, 0x5f, 0x1c, 0x28, 0x36, 0x0c, 0xde, 0xb5, 0x81, 0x9c, 0xb4, 0x7f, 0x03, 0xfd, 0x82, 0x57, + 0x14, 0x62, 0x65, 0x3f, 0x3f, 0xac, 0x9d, 0x98, 0xc5, 0x27, 0x6c, 0x09, 0x6c, 0xf6, 0x6f, 0x15, + 0x56, 0xf8, 0x67, 0x1f, 0x52, 0x41, 0x49, 0x0e, 0x95, 0xfc, 0x04, 0x6d, 0x5b, 0x1c, 0x1b, 0x40, + 0x63, 0x85, 0xb9, 0x57, 0x1b, 0xd6, 0x46, 0x1d, 0x6e, 0x5e, 0xd9, 0x4b, 0x70, 0x36, 0x28, 0x55, + 0x94, 0x26, 0x5e, 0x7d, 0x58, 0x7b, 0xaf, 0xa7, 0x77, 0xd6, 0xcf, 0xcb, 0x00, 0xff, 0xc6, 0xcc, + 0x9d, 0x72, 0x1e, 0x49, 0xf4, 0x29, 0x74, 0x22, 0x15, 0x84, 0xb8, 0x46, 0x8d, 0x94, 0xca, 0xe5, + 0x6e, 0xa4, 0x5e, 0x93, 0xcd, 0x9e, 0x43, 0x6b, 0x23, 0xd6, 0x19, 0x7a, 0x8d, 0x61, 0x6d, 0xd4, + 0xe3, 0xd6, 0xf0, 0xef, 0xe1, 0xfc, 0xa0, 0xfc, 0x23, 0x79, 0xa7, 0xe0, 0x60, 0xa2, 0xcd, 0x2f, + 0x50, 0x34, 0xee, 0xd8, 0x04, 0x67, 0x89, 0x96, 0x39, 0x2f, 0x03, 0xfd, 0x5b, 0x80, 0xfd, 0x34, + 0xd8, 0x27, 0xe0, 0xae, 0x30, 0x0f, 0x4c, 0x67, 0x29, 0x71, 0x8f, 0x3b, 0x2b, 0xcc, 0x09, 0xfa, + 0x2f, 0xea, 0xdf, 0x42, 0xb7, 0x32, 0xa9, 0x53, 0x59, 0x4f, 0xb6, 0xe2, 0x73, 0x00, 0x52, 0x6f, + 0x99, 0xb6, 0x1f, 0x1d, 0xf2, 0x94, 0x69, 0x23, 0x15, 0x3c, 0x65, 0x72, 0x81, 0x5e, 0x93, 0xa8, + 0x4e, 0xa4, 0x7e, 0x35, 0xa6, 0x1f, 0xc2, 0xc5, 0x91, 0x69, 0x9f, 0x2a, 0xe4, 0xff, 0xf4, 0xee, + 0xdb, 0xea, 0x50, 0x08, 0x63, 0x0c, 0x9a, 0x89, 0x88, 0xb1, 0x98, 0x0a, 0xbd, 0xef, 0x27, 0x5a, + 0xaf, 0x4e, 0xf4, 0x7b, 0x70, 0x8a, 0xbe, 0x99, 0x26, 0xcc, 0xd7, 0xe9, 0xc3, 0x2a, 0x48, 0xb2, + 0x98, 0x98, 0x4d, 0xee, 0x92, 0xe3, 0x26, 0x8b, 0xd9, 0xc7, 0xd0, 0xd6, 0x3b, 0x42, 0xea, 0x84, + 0xb4, 0xf4, 0xee, 0x26, 0x8b, 0xfd, 0x3f, 0xeb, 0x70, 0xf6, 0xfe, 0x12, 0x30, 0x69, 0x94, 0x16, + 0x52, 0x07, 0xfb, 0xdf, 0xc2, 0x25, 0xc7, 0x35, 0xe6, 0xec, 0xd2, 0xe8, 0x0b, 0x09, 0xaa, 0x13, + 0xd4, 0xc6, 0x24, 0x34, 0xc0, 0x0b, 0xe8, 0x47, 0x5a, 0x06, 0xb8, 0x5b, 0x8a, 0x4c, 0x69, 0x0c, + 0xa9, 0xcf, 0x2e, 0xef, 0x45, 0x5a, 0xce, 0x4a, 0x1f, 0x9b, 0x42, 0x47, 0x8a, 0x6d, 0x71, 0x9a, + 0x9b, 0x34, 0xfe, 0xfd, 0x69, 0xa6, 0x0a, 0xe8, 0x00, 0x5f, 0x3d, 0xe3, 0xae, 0x14, 0x5b, 0x7b, + 0x98, 0x39, 0x5c, 0x50, 0x7c, 0x10, 0xa3, 0x5c, 0xad, 0xed, 0x10, 0x51, 0x79, 0x2d, 0x62, 0x0f, + 0x8f, 0xb0, 0xdf, 0x50, 0xdc, 0x6d, 0x16, 0xc7, 0x42, 0xe6, 0x57, 0xcf, 0xf8, 0x47, 0x72, 0xef, + 0xa5, 0xed, 0xa2, 0x7e, 0xec, 0x01, 0xd8, 0x9c, 0x66, 0x29, 0xfa, 0x5f, 0x03, 0xec, 0xd9, 0xec, + 0x25, 0xb8, 0x66, 0x0d, 0x9f, 0x5a, 0xb1, 0xce, 0x6a, 0x43, 0xb1, 0xfe, 0x5b, 0xb8, 0xfc, 0xc0, + 0x77, 0xcd, 0x4f, 0x17, 0x8b, 0x5d, 0x10, 0xe2, 0x42, 0xa2, 0x9d, 0x63, 0x9f, 0x77, 0x62, 0xb1, + 0x7b, 0x4d, 0x0e, 0xd3, 0x64, 0x03, 0xaf, 0x71, 0x83, 0x6b, 0xea, 0x64, 0x9f, 0xbb, 0xb1, 0xd8, + 0xfd, 0x62, 0x6c, 0x36, 0x82, 0xc1, 0x3b, 0xb0, 0xd4, 0x6b, 0xb6, 0x50, 0x8f, 0x9f, 0x95, 0x31, + 0x85, 0x10, 0x09, 0xd3, 0x54, 0x2e, 0xc6, 0xcb, 0xfc, 0x09, 0xa5, 0xbd, 0x51, 0xc6, 0x8f, 0x62, + 0x2e, 0xa3, 0x07, 0x7b, 0x83, 0xa8, 0x71, 0xe1, 0xb4, 0xe5, 0x17, 0x32, 0x7e, 0xff, 0x6e, 0x11, + 0xe9, 0x65, 0x36, 0x1f, 0x3f, 0xa4, 0xf1, 0xa4, 0x42, 0x9d, 0x58, 0xea, 0x2b, 0x4b, 0x7d, 0xb5, + 0x48, 0x27, 0xc7, 0x2e, 0xa9, 0x79, 0x9b, 0xf0, 0x2f, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0x3e, + 0x32, 0xae, 0x35, 0xc3, 0x06, 0x00, 0x00, } diff --git a/vendor/github.com/hyperledger/fabric-protos-go/peer/chaincode_shim.pb.go b/vendor/github.com/hyperledger/fabric-protos-go/peer/chaincode_shim.pb.go index b6a17e60b76..18024c4f0d4 100644 --- a/vendor/github.com/hyperledger/fabric-protos-go/peer/chaincode_shim.pb.go +++ b/vendor/github.com/hyperledger/fabric-protos-go/peer/chaincode_shim.pb.go @@ -50,6 +50,7 @@ const ( ChaincodeMessage_GET_STATE_METADATA ChaincodeMessage_Type = 20 ChaincodeMessage_PUT_STATE_METADATA ChaincodeMessage_Type = 21 ChaincodeMessage_GET_PRIVATE_DATA_HASH ChaincodeMessage_Type = 22 + ChaincodeMessage_PURGE_PRIVATE_DATA ChaincodeMessage_Type = 23 ) var ChaincodeMessage_Type_name = map[int32]string{ @@ -75,6 +76,7 @@ var ChaincodeMessage_Type_name = map[int32]string{ 20: "GET_STATE_METADATA", 21: "PUT_STATE_METADATA", 22: "GET_PRIVATE_DATA_HASH", + 23: "PURGE_PRIVATE_DATA", } var ChaincodeMessage_Type_value = map[string]int32{ @@ -100,6 +102,7 @@ var ChaincodeMessage_Type_value = map[string]int32{ "GET_STATE_METADATA": 20, "PUT_STATE_METADATA": 21, "GET_PRIVATE_DATA_HASH": 22, + "PURGE_PRIVATE_DATA": 23, } func (x ChaincodeMessage_Type) String() string { @@ -463,6 +466,53 @@ func (m *DelState) GetCollection() string { return "" } +type PurgePrivateState struct { + Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PurgePrivateState) Reset() { *m = PurgePrivateState{} } +func (m *PurgePrivateState) String() string { return proto.CompactTextString(m) } +func (*PurgePrivateState) ProtoMessage() {} +func (*PurgePrivateState) Descriptor() ([]byte, []int) { + return fileDescriptor_e5819fec16c96da2, []int{6} +} + +func (m *PurgePrivateState) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PurgePrivateState.Unmarshal(m, b) +} +func (m *PurgePrivateState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PurgePrivateState.Marshal(b, m, deterministic) +} +func (m *PurgePrivateState) XXX_Merge(src proto.Message) { + xxx_messageInfo_PurgePrivateState.Merge(m, src) +} +func (m *PurgePrivateState) XXX_Size() int { + return xxx_messageInfo_PurgePrivateState.Size(m) +} +func (m *PurgePrivateState) XXX_DiscardUnknown() { + xxx_messageInfo_PurgePrivateState.DiscardUnknown(m) +} + +var xxx_messageInfo_PurgePrivateState proto.InternalMessageInfo + +func (m *PurgePrivateState) GetKey() string { + if m != nil { + return m.Key + } + return "" +} + +func (m *PurgePrivateState) GetCollection() string { + if m != nil { + return m.Collection + } + return "" +} + // GetStateByRange is the payload of a ChaincodeMessage. It contains a start key and // a end key required to execute range query. If the collection is specified, // the range query needs to be executed on the private data. The metadata hold @@ -481,7 +531,7 @@ func (m *GetStateByRange) Reset() { *m = GetStateByRange{} } func (m *GetStateByRange) String() string { return proto.CompactTextString(m) } func (*GetStateByRange) ProtoMessage() {} func (*GetStateByRange) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{6} + return fileDescriptor_e5819fec16c96da2, []int{7} } func (m *GetStateByRange) XXX_Unmarshal(b []byte) error { @@ -547,7 +597,7 @@ func (m *GetQueryResult) Reset() { *m = GetQueryResult{} } func (m *GetQueryResult) String() string { return proto.CompactTextString(m) } func (*GetQueryResult) ProtoMessage() {} func (*GetQueryResult) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{7} + return fileDescriptor_e5819fec16c96da2, []int{8} } func (m *GetQueryResult) XXX_Unmarshal(b []byte) error { @@ -604,7 +654,7 @@ func (m *QueryMetadata) Reset() { *m = QueryMetadata{} } func (m *QueryMetadata) String() string { return proto.CompactTextString(m) } func (*QueryMetadata) ProtoMessage() {} func (*QueryMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{8} + return fileDescriptor_e5819fec16c96da2, []int{9} } func (m *QueryMetadata) XXX_Unmarshal(b []byte) error { @@ -652,7 +702,7 @@ func (m *GetHistoryForKey) Reset() { *m = GetHistoryForKey{} } func (m *GetHistoryForKey) String() string { return proto.CompactTextString(m) } func (*GetHistoryForKey) ProtoMessage() {} func (*GetHistoryForKey) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{9} + return fileDescriptor_e5819fec16c96da2, []int{10} } func (m *GetHistoryForKey) XXX_Unmarshal(b []byte) error { @@ -691,7 +741,7 @@ func (m *QueryStateNext) Reset() { *m = QueryStateNext{} } func (m *QueryStateNext) String() string { return proto.CompactTextString(m) } func (*QueryStateNext) ProtoMessage() {} func (*QueryStateNext) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{10} + return fileDescriptor_e5819fec16c96da2, []int{11} } func (m *QueryStateNext) XXX_Unmarshal(b []byte) error { @@ -730,7 +780,7 @@ func (m *QueryStateClose) Reset() { *m = QueryStateClose{} } func (m *QueryStateClose) String() string { return proto.CompactTextString(m) } func (*QueryStateClose) ProtoMessage() {} func (*QueryStateClose) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{11} + return fileDescriptor_e5819fec16c96da2, []int{12} } func (m *QueryStateClose) XXX_Unmarshal(b []byte) error { @@ -770,7 +820,7 @@ func (m *QueryResultBytes) Reset() { *m = QueryResultBytes{} } func (m *QueryResultBytes) String() string { return proto.CompactTextString(m) } func (*QueryResultBytes) ProtoMessage() {} func (*QueryResultBytes) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{12} + return fileDescriptor_e5819fec16c96da2, []int{13} } func (m *QueryResultBytes) XXX_Unmarshal(b []byte) error { @@ -817,7 +867,7 @@ func (m *QueryResponse) Reset() { *m = QueryResponse{} } func (m *QueryResponse) String() string { return proto.CompactTextString(m) } func (*QueryResponse) ProtoMessage() {} func (*QueryResponse) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{13} + return fileDescriptor_e5819fec16c96da2, []int{14} } func (m *QueryResponse) XXX_Unmarshal(b []byte) error { @@ -880,7 +930,7 @@ func (m *QueryResponseMetadata) Reset() { *m = QueryResponseMetadata{} } func (m *QueryResponseMetadata) String() string { return proto.CompactTextString(m) } func (*QueryResponseMetadata) ProtoMessage() {} func (*QueryResponseMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{14} + return fileDescriptor_e5819fec16c96da2, []int{15} } func (m *QueryResponseMetadata) XXX_Unmarshal(b []byte) error { @@ -927,7 +977,7 @@ func (m *StateMetadata) Reset() { *m = StateMetadata{} } func (m *StateMetadata) String() string { return proto.CompactTextString(m) } func (*StateMetadata) ProtoMessage() {} func (*StateMetadata) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{15} + return fileDescriptor_e5819fec16c96da2, []int{16} } func (m *StateMetadata) XXX_Unmarshal(b []byte) error { @@ -973,7 +1023,7 @@ func (m *StateMetadataResult) Reset() { *m = StateMetadataResult{} } func (m *StateMetadataResult) String() string { return proto.CompactTextString(m) } func (*StateMetadataResult) ProtoMessage() {} func (*StateMetadataResult) Descriptor() ([]byte, []int) { - return fileDescriptor_e5819fec16c96da2, []int{16} + return fileDescriptor_e5819fec16c96da2, []int{17} } func (m *StateMetadataResult) XXX_Unmarshal(b []byte) error { @@ -1009,6 +1059,7 @@ func init() { proto.RegisterType((*PutState)(nil), "protos.PutState") proto.RegisterType((*PutStateMetadata)(nil), "protos.PutStateMetadata") proto.RegisterType((*DelState)(nil), "protos.DelState") + proto.RegisterType((*PurgePrivateState)(nil), "protos.PurgePrivateState") proto.RegisterType((*GetStateByRange)(nil), "protos.GetStateByRange") proto.RegisterType((*GetQueryResult)(nil), "protos.GetQueryResult") proto.RegisterType((*QueryMetadata)(nil), "protos.QueryMetadata") @@ -1025,73 +1076,74 @@ func init() { func init() { proto.RegisterFile("peer/chaincode_shim.proto", fileDescriptor_e5819fec16c96da2) } var fileDescriptor_e5819fec16c96da2 = []byte{ - // 1042 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcf, 0x73, 0xda, 0x46, - 0x14, 0x2e, 0xc6, 0x18, 0xf1, 0xb0, 0xf1, 0x66, 0x1d, 0x5c, 0xc2, 0x4c, 0x5a, 0xca, 0xf4, 0xc0, - 0xa1, 0x81, 0x86, 0xf6, 0xd0, 0x43, 0x67, 0x32, 0x32, 0xac, 0x31, 0x63, 0x5b, 0x90, 0x95, 0xec, - 0xa9, 0x7b, 0xd1, 0x08, 0x69, 0x23, 0x34, 0x01, 0xad, 0x2a, 0x2d, 0x69, 0xe8, 0xad, 0xd7, 0x1e, - 0xfb, 0xc7, 0xf5, 0xef, 0xe9, 0xac, 0x7e, 0x19, 0x70, 0x9d, 0x74, 0x7c, 0x42, 0xdf, 0x7b, 0xdf, - 0x7e, 0xef, 0xd7, 0x3e, 0x24, 0x78, 0x11, 0x30, 0x16, 0xf6, 0xec, 0xb9, 0xe5, 0xf9, 0x36, 0x77, - 0x98, 0x19, 0xcd, 0xbd, 0x65, 0x37, 0x08, 0xb9, 0xe0, 0xf8, 0x20, 0xfe, 0x89, 0x9a, 0xcd, 0x1d, - 0x0a, 0xfb, 0xc0, 0x7c, 0x91, 0x70, 0x9a, 0x27, 0xb1, 0x2f, 0x08, 0x79, 0xc0, 0x23, 0x6b, 0x91, - 0x1a, 0xbf, 0x76, 0x39, 0x77, 0x17, 0xac, 0x17, 0xa3, 0xd9, 0xea, 0x5d, 0x4f, 0x78, 0x4b, 0x16, - 0x09, 0x6b, 0x19, 0x24, 0x84, 0xf6, 0x3f, 0x25, 0x40, 0x83, 0x4c, 0xef, 0x9a, 0x45, 0x91, 0xe5, - 0x32, 0xfc, 0x1a, 0xf6, 0xc5, 0x3a, 0x60, 0x8d, 0x42, 0xab, 0xd0, 0xa9, 0xf5, 0x5f, 0x26, 0xd4, - 0xa8, 0xbb, 0xcb, 0xeb, 0x1a, 0xeb, 0x80, 0xd1, 0x98, 0x8a, 0x7f, 0x82, 0x4a, 0x2e, 0xdd, 0xd8, - 0x6b, 0x15, 0x3a, 0xd5, 0x7e, 0xb3, 0x9b, 0x04, 0xef, 0x66, 0xc1, 0xbb, 0x46, 0xc6, 0xa0, 0xf7, - 0x64, 0xdc, 0x80, 0x72, 0x60, 0xad, 0x17, 0xdc, 0x72, 0x1a, 0xc5, 0x56, 0xa1, 0x73, 0x48, 0x33, - 0x88, 0x31, 0xec, 0x8b, 0x8f, 0x9e, 0xd3, 0xd8, 0x6f, 0x15, 0x3a, 0x15, 0x1a, 0x3f, 0xe3, 0x3e, - 0x28, 0x59, 0x89, 0x8d, 0x52, 0x1c, 0xe6, 0x34, 0x4b, 0x4f, 0xf7, 0x5c, 0x9f, 0x39, 0xd3, 0xd4, - 0x4b, 0x73, 0x1e, 0x7e, 0x03, 0xc7, 0x3b, 0x2d, 0x6b, 0x1c, 0x6c, 0x1f, 0xcd, 0x2b, 0x23, 0xd2, - 0x4b, 0x6b, 0xf6, 0x16, 0xc6, 0x2f, 0x01, 0xec, 0xb9, 0xe5, 0xfb, 0x6c, 0x61, 0x7a, 0x4e, 0xa3, - 0x1c, 0xa7, 0x53, 0x49, 0x2d, 0x63, 0xa7, 0xfd, 0x77, 0x11, 0xf6, 0x65, 0x2b, 0xf0, 0x11, 0x54, - 0x6e, 0xb4, 0x21, 0x39, 0x1f, 0x6b, 0x64, 0x88, 0xbe, 0xc0, 0x87, 0xa0, 0x50, 0x32, 0x1a, 0xeb, - 0x06, 0xa1, 0xa8, 0x80, 0x6b, 0x00, 0x19, 0x22, 0x43, 0xb4, 0x87, 0x15, 0xd8, 0x1f, 0x6b, 0x63, - 0x03, 0x15, 0x71, 0x05, 0x4a, 0x94, 0xa8, 0xc3, 0x3b, 0xb4, 0x8f, 0x8f, 0xa1, 0x6a, 0x50, 0x55, - 0xd3, 0xd5, 0x81, 0x31, 0x9e, 0x68, 0xa8, 0x24, 0x25, 0x07, 0x93, 0xeb, 0xe9, 0x15, 0x31, 0xc8, - 0x10, 0x1d, 0x48, 0x2a, 0xa1, 0x74, 0x42, 0x51, 0x59, 0x7a, 0x46, 0xc4, 0x30, 0x75, 0x43, 0x35, - 0x08, 0x52, 0x24, 0x9c, 0xde, 0x64, 0xb0, 0x22, 0xe1, 0x90, 0x5c, 0xa5, 0x10, 0xf0, 0x73, 0x40, - 0x63, 0xed, 0x76, 0x72, 0x49, 0xcc, 0xc1, 0x85, 0x3a, 0xd6, 0x06, 0x93, 0x21, 0x41, 0xd5, 0x24, - 0x41, 0x7d, 0x3a, 0xd1, 0x74, 0x82, 0x8e, 0xf0, 0x29, 0xe0, 0x5c, 0xd0, 0x3c, 0xbb, 0x33, 0xa9, - 0xaa, 0x8d, 0x08, 0xaa, 0xc9, 0xb3, 0xd2, 0xfe, 0xf6, 0x86, 0xd0, 0x3b, 0x93, 0x12, 0xfd, 0xe6, - 0xca, 0x40, 0xc7, 0xd2, 0x9a, 0x58, 0x12, 0xbe, 0x46, 0x7e, 0x31, 0x10, 0xc2, 0x75, 0x78, 0xb6, - 0x69, 0x1d, 0x5c, 0x4d, 0x74, 0x82, 0x9e, 0xc9, 0x6c, 0x2e, 0x09, 0x99, 0xaa, 0x57, 0xe3, 0x5b, - 0x82, 0x30, 0xfe, 0x12, 0x4e, 0xa4, 0xe2, 0xc5, 0x58, 0x37, 0x26, 0xf4, 0xce, 0x3c, 0x9f, 0x50, - 0xf3, 0x92, 0xdc, 0xa1, 0x93, 0xed, 0x14, 0xae, 0x89, 0xa1, 0x0e, 0x55, 0x43, 0x45, 0xcf, 0xa5, - 0x3d, 0x2f, 0xee, 0xde, 0x5e, 0xc7, 0x2f, 0xa0, 0x2e, 0xf9, 0x53, 0x3a, 0xbe, 0x95, 0x1e, 0x69, - 0x35, 0x2f, 0x54, 0xfd, 0x02, 0x9d, 0xb6, 0x7f, 0x06, 0x65, 0xc4, 0x84, 0x2e, 0x2c, 0xc1, 0x30, - 0x82, 0xe2, 0x7b, 0xb6, 0x8e, 0xaf, 0x73, 0x85, 0xca, 0x47, 0xfc, 0x15, 0x80, 0xcd, 0x17, 0x0b, - 0x66, 0x0b, 0x8f, 0xfb, 0xf1, 0x7d, 0xad, 0xd0, 0x0d, 0x4b, 0x7b, 0x08, 0x28, 0x3b, 0x7d, 0xcd, - 0x84, 0xe5, 0x58, 0xc2, 0x7a, 0x82, 0x0a, 0x05, 0x65, 0xba, 0x7a, 0x34, 0x87, 0xe7, 0x50, 0xfa, - 0x60, 0x2d, 0x56, 0x2c, 0x3e, 0x78, 0x48, 0x13, 0xb0, 0xa3, 0x59, 0x7c, 0xa0, 0xf9, 0x3b, 0xa0, - 0x4c, 0xf3, 0x7f, 0x67, 0xf6, 0x40, 0x05, 0xbf, 0x06, 0x65, 0x99, 0x9e, 0x8e, 0xd7, 0xab, 0xda, - 0xaf, 0xe7, 0x6b, 0xb4, 0x29, 0x4d, 0x73, 0x9a, 0x6c, 0xe8, 0x90, 0x2d, 0x9e, 0xda, 0xd0, 0x3f, - 0x0b, 0x70, 0x9c, 0x75, 0xf4, 0x6c, 0x4d, 0x2d, 0xdf, 0x65, 0xb8, 0x09, 0x4a, 0x24, 0xac, 0x50, - 0x5c, 0xe6, 0x52, 0x39, 0xc6, 0xa7, 0x70, 0xc0, 0x7c, 0x47, 0x7a, 0x12, 0xad, 0x14, 0x7d, 0xb6, - 0xb0, 0xe6, 0x4e, 0x61, 0x87, 0x1b, 0x15, 0xcc, 0xa0, 0x36, 0x62, 0xe2, 0xed, 0x8a, 0x85, 0x6b, - 0xca, 0xa2, 0xd5, 0x42, 0xc8, 0x11, 0xfc, 0x26, 0x61, 0x1a, 0x3e, 0x01, 0x9f, 0xab, 0x65, 0x2b, - 0x46, 0x71, 0x27, 0xc6, 0x08, 0x8e, 0xe2, 0x00, 0xf9, 0x6c, 0x9a, 0xa0, 0x04, 0x96, 0xcb, 0x74, - 0xef, 0x8f, 0xe4, 0xff, 0xb4, 0x44, 0x73, 0x2c, 0x7d, 0x33, 0xce, 0xdf, 0x2f, 0xad, 0xf0, 0x7d, - 0x1a, 0x26, 0xc7, 0xed, 0x6f, 0xe3, 0x1b, 0x78, 0xe1, 0x45, 0x82, 0x87, 0xeb, 0x73, 0x1e, 0xca, - 0xe2, 0x1f, 0xb4, 0xbd, 0xdd, 0x82, 0x5a, 0x1c, 0x2e, 0xee, 0xab, 0xc6, 0x3e, 0x0a, 0x5c, 0x83, - 0x3d, 0xcf, 0x49, 0x29, 0x7b, 0x9e, 0xd3, 0xfe, 0x06, 0x8e, 0xef, 0x19, 0x83, 0x05, 0x8f, 0xd8, - 0x03, 0xca, 0x8f, 0x80, 0x36, 0x9a, 0x72, 0xb6, 0x16, 0x2c, 0xc2, 0x2d, 0xa8, 0x86, 0xf7, 0x30, - 0x26, 0x1f, 0xd2, 0x4d, 0x53, 0xfb, 0xaf, 0x42, 0x5a, 0x2a, 0x65, 0x51, 0xc0, 0xfd, 0x88, 0xe1, - 0x3e, 0x94, 0x13, 0x82, 0xe4, 0x17, 0x3b, 0xd5, 0x7e, 0x23, 0xbb, 0x53, 0xbb, 0xf2, 0x34, 0x23, - 0xe2, 0x17, 0xa0, 0xcc, 0xad, 0xc8, 0x5c, 0xf2, 0x30, 0xd9, 0x03, 0x85, 0x96, 0xe7, 0x56, 0x74, - 0xcd, 0xc3, 0x2c, 0xcd, 0x62, 0x96, 0xe6, 0x27, 0x47, 0xeb, 0x42, 0x7d, 0x2b, 0x97, 0xbc, 0xfd, - 0x7d, 0xa8, 0xbf, 0x63, 0xc2, 0x9e, 0x33, 0xc7, 0x0c, 0x99, 0xcd, 0x43, 0x27, 0x32, 0x6d, 0xbe, - 0xf2, 0x45, 0x3a, 0x8b, 0x93, 0xd4, 0x49, 0x13, 0xdf, 0x40, 0xba, 0x3e, 0x39, 0x96, 0x37, 0x70, - 0xb4, 0xbd, 0x7b, 0x0d, 0x28, 0xcb, 0x2c, 0xee, 0xe7, 0x92, 0xc1, 0xff, 0xde, 0xef, 0xf6, 0x39, - 0x9c, 0x6c, 0x6f, 0x58, 0x72, 0x13, 0x7b, 0x50, 0x66, 0xbe, 0x08, 0x3d, 0x96, 0xf5, 0xee, 0x91, - 0x7d, 0xcc, 0x58, 0xfd, 0xdb, 0x8d, 0xf7, 0xb6, 0xbe, 0x0a, 0x02, 0x1e, 0x0a, 0x7c, 0x06, 0x0a, - 0x65, 0xae, 0x17, 0x09, 0x16, 0xe2, 0xc6, 0x63, 0x6f, 0xed, 0xe6, 0xa3, 0x9e, 0x4e, 0xe1, 0xfb, - 0x42, 0x5f, 0x83, 0x4a, 0x6e, 0xc7, 0x2a, 0x94, 0x07, 0xdc, 0xf7, 0x99, 0x2d, 0x9e, 0xaa, 0x77, - 0x46, 0xa1, 0xcd, 0x43, 0xb7, 0x3b, 0x5f, 0x07, 0x2c, 0x5c, 0x30, 0xc7, 0x65, 0x61, 0xf7, 0x9d, - 0x35, 0x0b, 0x3d, 0x3b, 0x3b, 0x25, 0x3f, 0x5b, 0x7e, 0xfd, 0xce, 0xf5, 0xc4, 0x7c, 0x35, 0xeb, - 0xda, 0x7c, 0xd9, 0xdb, 0xa0, 0xf6, 0x12, 0xea, 0xab, 0x84, 0xfa, 0xca, 0xe5, 0x3d, 0xc9, 0x9e, - 0x25, 0x9f, 0x43, 0x3f, 0xfc, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x77, 0x8a, 0x54, 0x7a, 0x32, 0x09, - 0x00, 0x00, + // 1068 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x56, 0xcf, 0x72, 0xe2, 0xc6, + 0x13, 0xfe, 0x61, 0x8c, 0x11, 0x8d, 0x8d, 0x67, 0xc7, 0x8b, 0x97, 0xa5, 0x6a, 0x7f, 0x21, 0x54, + 0x0e, 0x1c, 0xb2, 0x90, 0x25, 0x39, 0xe4, 0x90, 0xaa, 0x2d, 0x19, 0xc6, 0x98, 0xb2, 0x2d, 0xd8, + 0x91, 0xec, 0x8a, 0x73, 0x51, 0x09, 0x69, 0x56, 0xa8, 0x16, 0x34, 0x8a, 0x34, 0x6c, 0x96, 0xdc, + 0x72, 0xcd, 0xa3, 0xe4, 0xe1, 0xf2, 0x0c, 0xa9, 0xd1, 0x3f, 0x03, 0x8e, 0x77, 0x53, 0x3e, 0xc1, + 0xd7, 0xfd, 0xf5, 0xd7, 0x3d, 0xdd, 0xd3, 0xaa, 0x81, 0x97, 0x01, 0x63, 0x61, 0xcf, 0x9e, 0x5b, + 0x9e, 0x6f, 0x73, 0x87, 0x99, 0xd1, 0xdc, 0x5b, 0x76, 0x83, 0x90, 0x0b, 0x8e, 0x0f, 0xe2, 0x9f, + 0xa8, 0xd9, 0xdc, 0xa1, 0xb0, 0x8f, 0xcc, 0x17, 0x09, 0xa7, 0x79, 0x12, 0xfb, 0x82, 0x90, 0x07, + 0x3c, 0xb2, 0x16, 0xa9, 0xf1, 0x2b, 0x97, 0x73, 0x77, 0xc1, 0x7a, 0x31, 0x9a, 0xad, 0xde, 0xf7, + 0x84, 0xb7, 0x64, 0x91, 0xb0, 0x96, 0x41, 0x42, 0x68, 0xff, 0x5d, 0x02, 0x34, 0xc8, 0xf4, 0xae, + 0x59, 0x14, 0x59, 0x2e, 0xc3, 0x6f, 0x60, 0x5f, 0xac, 0x03, 0xd6, 0x28, 0xb4, 0x0a, 0x9d, 0x5a, + 0xff, 0x55, 0x42, 0x8d, 0xba, 0xbb, 0xbc, 0xae, 0xb1, 0x0e, 0x18, 0x8d, 0xa9, 0xf8, 0x47, 0xa8, + 0xe4, 0xd2, 0x8d, 0xbd, 0x56, 0xa1, 0x53, 0xed, 0x37, 0xbb, 0x49, 0xf2, 0x6e, 0x96, 0xbc, 0x6b, + 0x64, 0x0c, 0x7a, 0x4f, 0xc6, 0x0d, 0x28, 0x07, 0xd6, 0x7a, 0xc1, 0x2d, 0xa7, 0x51, 0x6c, 0x15, + 0x3a, 0x87, 0x34, 0x83, 0x18, 0xc3, 0xbe, 0xf8, 0xe4, 0x39, 0x8d, 0xfd, 0x56, 0xa1, 0x53, 0xa1, + 0xf1, 0x7f, 0xdc, 0x07, 0x25, 0x3b, 0x62, 0xa3, 0x14, 0xa7, 0x39, 0xcd, 0xca, 0xd3, 0x3d, 0xd7, + 0x67, 0xce, 0x34, 0xf5, 0xd2, 0x9c, 0x87, 0xdf, 0xc2, 0xf1, 0x4e, 0xcb, 0x1a, 0x07, 0xdb, 0xa1, + 0xf9, 0xc9, 0x88, 0xf4, 0xd2, 0x9a, 0xbd, 0x85, 0xf1, 0x2b, 0x00, 0x7b, 0x6e, 0xf9, 0x3e, 0x5b, + 0x98, 0x9e, 0xd3, 0x28, 0xc7, 0xe5, 0x54, 0x52, 0xcb, 0xd8, 0x69, 0xff, 0x55, 0x84, 0x7d, 0xd9, + 0x0a, 0x7c, 0x04, 0x95, 0x1b, 0x6d, 0x48, 0xce, 0xc7, 0x1a, 0x19, 0xa2, 0xff, 0xe1, 0x43, 0x50, + 0x28, 0x19, 0x8d, 0x75, 0x83, 0x50, 0x54, 0xc0, 0x35, 0x80, 0x0c, 0x91, 0x21, 0xda, 0xc3, 0x0a, + 0xec, 0x8f, 0xb5, 0xb1, 0x81, 0x8a, 0xb8, 0x02, 0x25, 0x4a, 0xd4, 0xe1, 0x1d, 0xda, 0xc7, 0xc7, + 0x50, 0x35, 0xa8, 0xaa, 0xe9, 0xea, 0xc0, 0x18, 0x4f, 0x34, 0x54, 0x92, 0x92, 0x83, 0xc9, 0xf5, + 0xf4, 0x8a, 0x18, 0x64, 0x88, 0x0e, 0x24, 0x95, 0x50, 0x3a, 0xa1, 0xa8, 0x2c, 0x3d, 0x23, 0x62, + 0x98, 0xba, 0xa1, 0x1a, 0x04, 0x29, 0x12, 0x4e, 0x6f, 0x32, 0x58, 0x91, 0x70, 0x48, 0xae, 0x52, + 0x08, 0xf8, 0x39, 0xa0, 0xb1, 0x76, 0x3b, 0xb9, 0x24, 0xe6, 0xe0, 0x42, 0x1d, 0x6b, 0x83, 0xc9, + 0x90, 0xa0, 0x6a, 0x52, 0xa0, 0x3e, 0x9d, 0x68, 0x3a, 0x41, 0x47, 0xf8, 0x14, 0x70, 0x2e, 0x68, + 0x9e, 0xdd, 0x99, 0x54, 0xd5, 0x46, 0x04, 0xd5, 0x64, 0xac, 0xb4, 0xbf, 0xbb, 0x21, 0xf4, 0xce, + 0xa4, 0x44, 0xbf, 0xb9, 0x32, 0xd0, 0xb1, 0xb4, 0x26, 0x96, 0x84, 0xaf, 0x91, 0x9f, 0x0d, 0x84, + 0x70, 0x1d, 0x9e, 0x6d, 0x5a, 0x07, 0x57, 0x13, 0x9d, 0xa0, 0x67, 0xb2, 0x9a, 0x4b, 0x42, 0xa6, + 0xea, 0xd5, 0xf8, 0x96, 0x20, 0x8c, 0x5f, 0xc0, 0x89, 0x54, 0xbc, 0x18, 0xeb, 0xc6, 0x84, 0xde, + 0x99, 0xe7, 0x13, 0x6a, 0x5e, 0x92, 0x3b, 0x74, 0xb2, 0x5d, 0xc2, 0x35, 0x31, 0xd4, 0xa1, 0x6a, + 0xa8, 0xe8, 0xb9, 0xb4, 0xe7, 0x87, 0xbb, 0xb7, 0xd7, 0xf1, 0x4b, 0xa8, 0x4b, 0xfe, 0x94, 0x8e, + 0x6f, 0xa5, 0x47, 0x5a, 0xcd, 0x0b, 0x55, 0xbf, 0x40, 0xa7, 0x49, 0x08, 0x1d, 0x91, 0x2d, 0x27, + 0x7a, 0xd1, 0xfe, 0x09, 0x94, 0x11, 0x13, 0xba, 0xb0, 0x04, 0xc3, 0x08, 0x8a, 0x1f, 0xd8, 0x3a, + 0xbe, 0xe6, 0x15, 0x2a, 0xff, 0xe2, 0xff, 0x03, 0xd8, 0x7c, 0xb1, 0x60, 0xb6, 0xf0, 0xb8, 0x1f, + 0xdf, 0xe3, 0x0a, 0xdd, 0xb0, 0xb4, 0x87, 0x80, 0xb2, 0xe8, 0x6b, 0x26, 0x2c, 0xc7, 0x12, 0xd6, + 0x13, 0x54, 0x28, 0x28, 0xd3, 0xd5, 0xa3, 0x35, 0x3c, 0x87, 0xd2, 0x47, 0x6b, 0xb1, 0x62, 0x71, + 0xe0, 0x21, 0x4d, 0xc0, 0x8e, 0x66, 0xf1, 0x81, 0xe6, 0x6f, 0x80, 0x32, 0xcd, 0xff, 0x5c, 0xd9, + 0x03, 0x15, 0xfc, 0x06, 0x94, 0x65, 0x1a, 0x1d, 0xaf, 0x5d, 0xb5, 0x5f, 0xcf, 0xd7, 0x6b, 0x53, + 0x9a, 0xe6, 0x34, 0xd9, 0xd0, 0x21, 0x5b, 0x3c, 0xb5, 0xa1, 0x04, 0x9e, 0x4d, 0x57, 0xa1, 0xcb, + 0xa6, 0xa1, 0xf7, 0xd1, 0x12, 0xec, 0xa9, 0x32, 0x7f, 0x14, 0xe0, 0x38, 0x1b, 0xcc, 0xd9, 0x9a, + 0x5a, 0xbe, 0xcb, 0x70, 0x13, 0x94, 0x48, 0x58, 0xa1, 0xb8, 0xcc, 0xa5, 0x72, 0x8c, 0x4f, 0xe1, + 0x80, 0xf9, 0x8e, 0xf4, 0x24, 0x5a, 0x29, 0xfa, 0x62, 0x7f, 0x9a, 0x3b, 0xfd, 0x39, 0xdc, 0x68, + 0xc4, 0x0c, 0x6a, 0x23, 0x26, 0xde, 0xad, 0x58, 0xb8, 0xa6, 0x2c, 0x5a, 0x2d, 0x84, 0x9c, 0xe4, + 0xaf, 0x12, 0xa6, 0xe9, 0x13, 0xf0, 0xa5, 0xb3, 0x6c, 0xe5, 0x28, 0xee, 0xe4, 0x18, 0xc1, 0x51, + 0x9c, 0x20, 0x1f, 0x71, 0x13, 0x94, 0xc0, 0x72, 0x99, 0xee, 0xfd, 0x9e, 0x7c, 0xae, 0x4b, 0x34, + 0xc7, 0xd2, 0x37, 0xe3, 0xfc, 0xc3, 0xd2, 0x0a, 0x3f, 0xa4, 0x69, 0x72, 0xdc, 0xfe, 0x26, 0xbe, + 0xc8, 0x17, 0x5e, 0x24, 0x78, 0xb8, 0x3e, 0xe7, 0xa1, 0x3c, 0xfc, 0x83, 0xb6, 0xb7, 0x5b, 0x50, + 0x8b, 0xd3, 0xc5, 0x7d, 0xd5, 0xd8, 0x27, 0x81, 0x6b, 0xb0, 0xe7, 0x39, 0x29, 0x65, 0xcf, 0x73, + 0xda, 0x5f, 0xc3, 0xf1, 0x3d, 0x63, 0xb0, 0xe0, 0x11, 0x7b, 0x40, 0xf9, 0x01, 0xd0, 0x46, 0x53, + 0xce, 0xd6, 0x82, 0x45, 0xb8, 0x05, 0xd5, 0xf0, 0x1e, 0xc6, 0xe4, 0x43, 0xba, 0x69, 0x6a, 0xff, + 0x59, 0x48, 0x8f, 0x4a, 0x59, 0x14, 0x70, 0x3f, 0x62, 0xb8, 0x0f, 0xe5, 0x84, 0x20, 0xf9, 0xc5, + 0x4e, 0xb5, 0xdf, 0xc8, 0xae, 0xe6, 0xae, 0x3c, 0xcd, 0x88, 0xf8, 0x25, 0x28, 0x73, 0x2b, 0x32, + 0x97, 0x3c, 0x4c, 0xd6, 0x49, 0xa1, 0xe5, 0xb9, 0x15, 0x5d, 0xf3, 0x30, 0x2b, 0xb3, 0x98, 0x95, + 0xf9, 0xd9, 0xd1, 0xba, 0x50, 0xdf, 0xaa, 0x25, 0x6f, 0x7f, 0x1f, 0xea, 0xef, 0x99, 0xb0, 0xe7, + 0xcc, 0x31, 0x43, 0x66, 0xf3, 0xd0, 0x89, 0x4c, 0x9b, 0xaf, 0x7c, 0x91, 0xce, 0xe2, 0x24, 0x75, + 0xd2, 0xc4, 0x37, 0x90, 0xae, 0xcf, 0x8e, 0xe5, 0x2d, 0x1c, 0x6d, 0xaf, 0x70, 0x03, 0xca, 0xb2, + 0x8a, 0xfb, 0xb9, 0x64, 0xf0, 0xdf, 0x3f, 0x13, 0xed, 0x73, 0x38, 0xd9, 0x5e, 0xd4, 0xe4, 0x26, + 0xf6, 0xa0, 0xcc, 0x7c, 0x11, 0x7a, 0x2c, 0xeb, 0xdd, 0x23, 0x6b, 0x9d, 0xb1, 0xfa, 0xb7, 0x1b, + 0xcf, 0x02, 0x7d, 0x15, 0x04, 0x3c, 0x14, 0xf8, 0x0c, 0x14, 0xca, 0x5c, 0x2f, 0x12, 0x2c, 0xc4, + 0x8d, 0xc7, 0x1e, 0x05, 0xcd, 0x47, 0x3d, 0x9d, 0xc2, 0x77, 0x85, 0xbe, 0x06, 0x95, 0xdc, 0x8e, + 0x55, 0x28, 0x0f, 0xb8, 0xef, 0x33, 0x5b, 0x3c, 0x55, 0xef, 0x8c, 0x42, 0x9b, 0x87, 0x6e, 0x77, + 0xbe, 0x0e, 0x58, 0xb8, 0x60, 0x8e, 0xcb, 0xc2, 0xee, 0x7b, 0x6b, 0x16, 0x7a, 0x76, 0x16, 0x25, + 0x5f, 0x45, 0xbf, 0x7c, 0xeb, 0x7a, 0x62, 0xbe, 0x9a, 0x75, 0x6d, 0xbe, 0xec, 0x6d, 0x50, 0x7b, + 0x09, 0xf5, 0x75, 0x42, 0x7d, 0xed, 0xf2, 0x9e, 0x64, 0xcf, 0x92, 0xd7, 0xd6, 0xf7, 0xff, 0x04, + 0x00, 0x00, 0xff, 0xff, 0xea, 0xa6, 0x7b, 0x03, 0x91, 0x09, 0x00, 0x00, } // Reference imports to suppress errors if they are not otherwise used. diff --git a/vendor/modules.txt b/vendor/modules.txt index d204e4f5e68..17b9af81238 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -225,7 +225,7 @@ github.com/hyperledger/fabric-config/protolator/protoext/peerext # github.com/hyperledger/fabric-lib-go v1.0.0 ## explicit github.com/hyperledger/fabric-lib-go/healthz -# github.com/hyperledger/fabric-protos-go v0.0.0-20211118165945-23d738fc3553 +# github.com/hyperledger/fabric-protos-go v0.0.0-20220315113721-7dc293e117f7 ## explicit github.com/hyperledger/fabric-protos-go/common github.com/hyperledger/fabric-protos-go/discovery