Skip to content

Commit

Permalink
Resolves hyperledger#80, this commit contains dependency update from …
Browse files Browse the repository at this point in the history
…fabric-protos-go to fabric-protos-go-apiv2 and "github.com/golang/protobuf"(deprecated) to "google.golang.org/protobuf

Bumped google.golang.org/protobuf to v1.31.0 from v1.5.2

It can be noticed that the package "github.com/golang/protobuf" is still an indirect dependency used by google.golang.org/grpc/credentials v1.53.0, even the latest update v1.58.0 still does.

Made sure all tests passed.

CHANGES INCLUDE:

	SOURCE CODE
The "AssertProtoEqual" was borrowed from: // https://github.com/hyperledger/fabric-gateway/blob/cd1bc1f3fcf007bd97244120d9a8d112153322cd/pkg/internal/test/transaction.go#L20-L22
which is more apt to test the Protobufs of google.golang.org/protobuf/ implementation. It replaced assertEqual.

now := ptypes.TimestampNow() --> now := timestamp.Now()

IMPORTS
All Import aliases are kept.
"github.com/golang/protobuf/proto" --> "google.golang.org/protobuf/proto"

pb "github.com/hyperledger/fabric-protos-go/peer" --> pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"

"github.com/golang/protobuf/ptypes/timestamp" --> timestamp "google.golang.org/protobuf/types/known/timestamppb"

"github.com/hyperledger/fabric-protos-go/ledger/queryresult" --> "github.com/hyperledger/fabric-protos-go-apiv2/ledger/queryresult"

"github.com/hyperledger/fabric-protos-go/ledger/msp" →
"github.com/hyperledger/fabric-protos-go-apiv2/ledger/msp"
"github.com/hyperledger/fabric-protos-go/common" --> "github.com/hyperledger/fabric-protos-go-apiv2/common"

Signed-off-by: tobigiwa <[email protected]>
  • Loading branch information
tobigiwa committed Oct 2, 2023
1 parent d626e9a commit f7de737
Show file tree
Hide file tree
Showing 23 changed files with 91 additions and 83 deletions.
6 changes: 3 additions & 3 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ module github.com/hyperledger/fabric-chaincode-go
go 1.20

require (
github.com/golang/protobuf v1.5.2
github.com/hyperledger/fabric-protos-go v0.3.0
github.com/hyperledger/fabric-protos-go-apiv2 v0.3.0
github.com/stretchr/testify v1.8.2
google.golang.org/grpc v1.53.0
google.golang.org/protobuf v1.31.0
)

require (
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/golang/protobuf v1.5.2 // indirect
github.com/kr/pretty v0.3.0 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
golang.org/x/net v0.7.0 // indirect
golang.org/x/sys v0.5.0 // indirect
golang.org/x/text v0.7.0 // indirect
google.golang.org/genproto v0.0.0-20230110181048-76db0878b65f // indirect
google.golang.org/protobuf v1.28.1 // indirect
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
)
5 changes: 4 additions & 1 deletion go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw
github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY=
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38=
github.com/hyperledger/fabric-protos-go v0.3.0 h1:MXxy44WTMENOh5TI8+PCK2x6pMj47Go2vFRKDHB2PZs=
github.com/hyperledger/fabric-protos-go v0.3.0/go.mod h1:WWnyWP40P2roPmmvxsUXSvVI/CF6vwY1K1UFidnKBys=
github.com/hyperledger/fabric-protos-go-apiv2 v0.3.0 h1:DOmDMloF3vKKJKXz+CsZhFgkUmnXKzP5ei71yGIbeOw=
github.com/hyperledger/fabric-protos-go-apiv2 v0.3.0/go.mod h1:smwq1q6eKByqQAp0SYdVvE1MvDoneF373j11XwWajgA=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0=
Expand Down Expand Up @@ -43,6 +44,8 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
google.golang.org/protobuf v1.28.1 h1:d0NfwRgPtno5B1Wa6L2DAG+KivqkdutMf1UhdNx175w=
google.golang.org/protobuf v1.28.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8=
google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
Expand Down
4 changes: 2 additions & 2 deletions pkg/attrmgr/attrmgr.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ import (
"errors"
"fmt"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-protos-go/msp"
"github.com/hyperledger/fabric-protos-go-apiv2/msp"
"google.golang.org/protobuf/proto"
)

var (
Expand Down
4 changes: 2 additions & 2 deletions pkg/cid/cid.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ import (
"encoding/pem"
"fmt"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-chaincode-go/pkg/attrmgr"
"github.com/hyperledger/fabric-protos-go/msp"
"github.com/hyperledger/fabric-protos-go-apiv2/msp"
"google.golang.org/protobuf/proto"
)

// GetID returns the ID associated with the invoking identity. This ID
Expand Down
4 changes: 2 additions & 2 deletions pkg/cid/cid_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import (
"encoding/base64"
"testing"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-chaincode-go/pkg/cid"
"github.com/hyperledger/fabric-protos-go/msp"
"github.com/hyperledger/fabric-protos-go-apiv2/msp"
"github.com/stretchr/testify/assert"
"google.golang.org/protobuf/proto"
)

const certWithOutAttrs = `-----BEGIN CERTIFICATE-----
Expand Down
6 changes: 3 additions & 3 deletions pkg/statebased/statebasedimpl.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ import (
"fmt"
"sort"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-protos-go/common"
"github.com/hyperledger/fabric-protos-go/msp"
"github.com/hyperledger/fabric-protos-go-apiv2/common"
"github.com/hyperledger/fabric-protos-go-apiv2/msp"
"google.golang.org/protobuf/proto"
)

// stateEP implements the KeyEndorsementPolicy
Expand Down
6 changes: 3 additions & 3 deletions pkg/statebased/statebasedimpl_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ package statebased_test
import (
"testing"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-chaincode-go/pkg/statebased"
"github.com/hyperledger/fabric-protos-go/common"
"github.com/hyperledger/fabric-protos-go/msp"
"github.com/hyperledger/fabric-protos-go-apiv2/common"
"github.com/hyperledger/fabric-protos-go-apiv2/msp"
"github.com/stretchr/testify/assert"
"google.golang.org/protobuf/proto"
)

func TestAddOrg(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion shim/chaincodeserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"errors"

"github.com/hyperledger/fabric-chaincode-go/shim/internal"
pb "github.com/hyperledger/fabric-protos-go/peer"
pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"

"google.golang.org/grpc/keepalive"
)
Expand Down
30 changes: 15 additions & 15 deletions shim/handler.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ import (
"fmt"
"sync"

"github.com/golang/protobuf/proto"
pb "github.com/hyperledger/fabric-protos-go/peer"
pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
"google.golang.org/protobuf/proto"
)

type state string
Expand Down Expand Up @@ -52,7 +52,7 @@ type Handler struct {
// need lock to protect chaincode from attempting
// concurrent requests to the peer
responseChannelsMutex sync.Mutex
responseChannels map[string]chan pb.ChaincodeMessage
responseChannels map[string]chan *pb.ChaincodeMessage
}

func shorttxid(txid string) string {
Expand Down Expand Up @@ -85,7 +85,7 @@ func transactionContextID(chainID, txid string) string {
return chainID + txid
}

func (h *Handler) createResponseChannel(channelID, txid string) (<-chan pb.ChaincodeMessage, error) {
func (h *Handler) createResponseChannel(channelID, txid string) (<-chan *pb.ChaincodeMessage, error) {
h.responseChannelsMutex.Lock()
defer h.responseChannelsMutex.Unlock()

Expand All @@ -98,7 +98,7 @@ func (h *Handler) createResponseChannel(channelID, txid string) (<-chan pb.Chain
return nil, fmt.Errorf("[%s] channel exists", shorttxid(txCtxID))
}

responseChan := make(chan pb.ChaincodeMessage)
responseChan := make(chan *pb.ChaincodeMessage)
h.responseChannels[txCtxID] = responseChan
return responseChan, nil
}
Expand All @@ -125,18 +125,18 @@ func (h *Handler) handleResponse(msg *pb.ChaincodeMessage) error {
if responseCh == nil {
return fmt.Errorf("[%s] responseChannel does not exist", shorttxid(msg.Txid))
}
responseCh <- *msg
responseCh <- msg
return nil
}

// sendReceive sends msg to the peer and waits for the response to arrive on
// the provided responseChan. On success, the response message will be
// returned. An error will be returned msg was not successfully sent to the
// peer.
func (h *Handler) sendReceive(msg *pb.ChaincodeMessage, responseChan <-chan pb.ChaincodeMessage) (pb.ChaincodeMessage, error) {
func (h *Handler) sendReceive(msg *pb.ChaincodeMessage, responseChan <-chan *pb.ChaincodeMessage) (*pb.ChaincodeMessage, error) {
err := h.serialSend(msg)
if err != nil {
return pb.ChaincodeMessage{}, err
return &pb.ChaincodeMessage{}, err
}

outmsg := <-responseChan
Expand All @@ -148,7 +148,7 @@ func newChaincodeHandler(peerChatStream PeerChaincodeStream, chaincode Chaincode
return &Handler{
chatStream: peerChatStream,
cc: chaincode,
responseChannels: map[string]chan pb.ChaincodeMessage{},
responseChannels: map[string]chan *pb.ChaincodeMessage{},
state: created,
}
}
Expand Down Expand Up @@ -219,11 +219,11 @@ func (h *Handler) handleTransaction(msg *pb.ChaincodeMessage) (*pb.ChaincodeMess

// callPeerWithChaincodeMsg sends a chaincode message to the peer for the given
// txid and channel and receives the response.
func (h *Handler) callPeerWithChaincodeMsg(msg *pb.ChaincodeMessage, channelID, txid string) (pb.ChaincodeMessage, error) {
func (h *Handler) callPeerWithChaincodeMsg(msg *pb.ChaincodeMessage, channelID, txid string) (*pb.ChaincodeMessage, error) {
// Create the channel on which to communicate the response from the peer
respChan, err := h.createResponseChannel(channelID, txid)
if err != nil {
return pb.ChaincodeMessage{}, err
return &pb.ChaincodeMessage{}, err
}
defer h.deleteResponseChannel(channelID, txid)

Expand Down Expand Up @@ -451,7 +451,7 @@ func (h *Handler) handleQueryStateNext(id, channelID, txid string) (*pb.QueryRes

msg := &pb.ChaincodeMessage{Type: pb.ChaincodeMessage_QUERY_STATE_NEXT, Payload: payloadBytes, Txid: txid, ChannelId: channelID}

var responseMsg pb.ChaincodeMessage
var responseMsg *pb.ChaincodeMessage

if responseMsg, err = h.sendReceive(msg, respChan); err != nil {
return nil, fmt.Errorf("[%s] error sending %s", shorttxid(msg.Txid), pb.ChaincodeMessage_QUERY_STATE_NEXT)
Expand Down Expand Up @@ -488,7 +488,7 @@ func (h *Handler) handleQueryStateClose(id, channelID, txid string) (*pb.QueryRe

msg := &pb.ChaincodeMessage{Type: pb.ChaincodeMessage_QUERY_STATE_CLOSE, Payload: payloadBytes, Txid: txid, ChannelId: channelID}

var responseMsg pb.ChaincodeMessage
var responseMsg *pb.ChaincodeMessage

if responseMsg, err = h.sendReceive(msg, respChan); err != nil {
return nil, fmt.Errorf("[%s] error sending %s", shorttxid(msg.Txid), pb.ChaincodeMessage_QUERY_STATE_CLOSE)
Expand Down Expand Up @@ -552,7 +552,7 @@ func (h *Handler) handleGetHistoryForKey(key string, channelID string, txid stri
payloadBytes := marshalOrPanic(&pb.GetHistoryForKey{Key: key})

msg := &pb.ChaincodeMessage{Type: pb.ChaincodeMessage_GET_HISTORY_FOR_KEY, Payload: payloadBytes, Txid: txid, ChannelId: channelID}
var responseMsg pb.ChaincodeMessage
var responseMsg *pb.ChaincodeMessage

if responseMsg, err = h.sendReceive(msg, respChan); err != nil {
return nil, fmt.Errorf("[%s] error sending %s", shorttxid(msg.Txid), pb.ChaincodeMessage_GET_HISTORY_FOR_KEY)
Expand Down Expand Up @@ -594,7 +594,7 @@ func (h *Handler) handleInvokeChaincode(chaincodeName string, args [][]byte, cha
// Send INVOKE_CHAINCODE message to peer chaincode support
msg := &pb.ChaincodeMessage{Type: pb.ChaincodeMessage_INVOKE_CHAINCODE, Payload: payloadBytes, Txid: txid, ChannelId: channelID}

var responseMsg pb.ChaincodeMessage
var responseMsg *pb.ChaincodeMessage

if responseMsg, err = h.sendReceive(msg, respChan); err != nil {
errStr := fmt.Sprintf("[%s] error sending %s", shorttxid(msg.Txid), pb.ChaincodeMessage_INVOKE_CHAINCODE)
Expand Down
8 changes: 4 additions & 4 deletions shim/handler_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"testing"

"github.com/hyperledger/fabric-chaincode-go/shim/internal/mock"
peerpb "github.com/hyperledger/fabric-protos-go/peer"
peerpb "github.com/hyperledger/fabric-protos-go-apiv2/peer"

"github.com/stretchr/testify/assert"
)
Expand Down Expand Up @@ -46,7 +46,7 @@ func TestNewHandler_CreatedState(t *testing.T) {
expected := &Handler{
chatStream: chatStream,
cc: cc,
responseChannels: map[string]chan peerpb.ChaincodeMessage{},
responseChannels: map[string]chan *peerpb.ChaincodeMessage{},
state: created,
}

Expand Down Expand Up @@ -210,7 +210,7 @@ func TestHandleMessage(t *testing.T) {
handler := &Handler{
chatStream: chatStream,
cc: cc,
responseChannels: map[string]chan peerpb.ChaincodeMessage{},
responseChannels: map[string]chan *peerpb.ChaincodeMessage{},
state: ready,
}

Expand All @@ -234,7 +234,7 @@ func TestHandlePeerCalls(t *testing.T) {
payload := []byte("error")
h := &Handler{
cc: &mockChaincode{},
responseChannels: map[string]chan peerpb.ChaincodeMessage{},
responseChannels: map[string]chan *peerpb.ChaincodeMessage{},
state: ready,
}
chatStream := &mock.PeerChaincodeStream{}
Expand Down
6 changes: 3 additions & 3 deletions shim/interfaces.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@
package shim

import (
"github.com/golang/protobuf/ptypes/timestamp"
"github.com/hyperledger/fabric-protos-go/ledger/queryresult"
pb "github.com/hyperledger/fabric-protos-go/peer"
"github.com/hyperledger/fabric-protos-go-apiv2/ledger/queryresult"
pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
timestamp "google.golang.org/protobuf/types/known/timestamppb"
)

// Chaincode interface must be implemented by all chaincodes. The fabric runs
Expand Down
2 changes: 1 addition & 1 deletion shim/internal/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import (
"crypto/tls"
"time"

peerpb "github.com/hyperledger/fabric-protos-go/peer"
peerpb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
"google.golang.org/grpc/keepalive"
Expand Down
2 changes: 1 addition & 1 deletion shim/internal/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
"testing"
"time"

pb "github.com/hyperledger/fabric-protos-go/peer"
pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
"github.com/stretchr/testify/assert"
"google.golang.org/grpc"
"google.golang.org/grpc/keepalive"
Expand Down
2 changes: 1 addition & 1 deletion shim/internal/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import (
"time"

. "github.com/hyperledger/fabric-chaincode-go/shim/internal"
peerpb "github.com/hyperledger/fabric-protos-go/peer"
peerpb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
"github.com/stretchr/testify/assert"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials"
Expand Down
2 changes: 1 addition & 1 deletion shim/internal/mock/client_stream.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion shim/internal/mock/peer_chaincode_stream.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion shim/response.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
package shim

import (
pb "github.com/hyperledger/fabric-protos-go/peer"
pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
)

const (
Expand Down
4 changes: 2 additions & 2 deletions shim/shim.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ import (
"os"
"unicode/utf8"

"github.com/golang/protobuf/proto"
"github.com/hyperledger/fabric-chaincode-go/shim/internal"
peerpb "github.com/hyperledger/fabric-protos-go/peer"
peerpb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
"google.golang.org/protobuf/proto"
)

const (
Expand Down
2 changes: 1 addition & 1 deletion shim/shim_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import (
"testing"

"github.com/hyperledger/fabric-chaincode-go/shim/internal/mock"
peerpb "github.com/hyperledger/fabric-protos-go/peer"
peerpb "github.com/hyperledger/fabric-protos-go-apiv2/peer"

"github.com/stretchr/testify/assert"
)
Expand Down
10 changes: 5 additions & 5 deletions shim/stub.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@ import (
"os"
"unicode/utf8"

"github.com/golang/protobuf/proto"
"github.com/golang/protobuf/ptypes/timestamp"
"github.com/hyperledger/fabric-protos-go/common"
"github.com/hyperledger/fabric-protos-go/ledger/queryresult"
pb "github.com/hyperledger/fabric-protos-go/peer"
"github.com/hyperledger/fabric-protos-go-apiv2/common"
"github.com/hyperledger/fabric-protos-go-apiv2/ledger/queryresult"
pb "github.com/hyperledger/fabric-protos-go-apiv2/peer"
"google.golang.org/protobuf/proto"
timestamp "google.golang.org/protobuf/types/known/timestamppb"
)

// ChaincodeStub is an object passed to chaincode for shim side handling of
Expand Down
Loading

0 comments on commit f7de737

Please sign in to comment.