Skip to content

Commit 1b4ad7c

Browse files
committed
FAB-3557 Remove duplicate ChaincodeInstance
This change set removes the duplicate definition of the ChaincodeInstance struct. Change-Id: I507ba3d14855bc7ef183e5f0a01bf43504cd0bc8 Signed-off-by: Alessandro Sorniotti <[email protected]>
1 parent b982051 commit 1b4ad7c

File tree

2 files changed

+27
-33
lines changed

2 files changed

+27
-33
lines changed

core/committer/txvalidator/txvalidator_test.go

+16-15
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import (
2323
"github.com/hyperledger/fabric/common/configtx/test"
2424
"github.com/hyperledger/fabric/common/ledger/testutil"
2525
util2 "github.com/hyperledger/fabric/common/util"
26+
"github.com/hyperledger/fabric/core/common/sysccprovider"
2627
"github.com/hyperledger/fabric/core/ledger/ledgermgmt"
2728
"github.com/hyperledger/fabric/core/ledger/util"
2829
ledgerUtil "github.com/hyperledger/fabric/core/ledger/util"
@@ -214,12 +215,12 @@ func TestGetTxCCInstance(t *testing.T) {
214215
payload, err := utils.GetPayload(env)
215216
assert.NoError(t, err)
216217

217-
expectInvokeCCIns := &ChaincodeInstance{
218+
expectInvokeCCIns := &sysccprovider.ChaincodeInstance{
218219
ChainID: chainID,
219220
ChaincodeName: "lscc",
220221
ChaincodeVersion: "",
221222
}
222-
expectUpgradeCCIns := &ChaincodeInstance{
223+
expectUpgradeCCIns := &sysccprovider.ChaincodeInstance{
223224
ChainID: chainID,
224225
ChaincodeName: upgradeCCName,
225226
ChaincodeVersion: upgradeCCVersion,
@@ -235,20 +236,20 @@ func TestGetTxCCInstance(t *testing.T) {
235236
}
236237

237238
func TestInvalidTXsForUpgradeCC(t *testing.T) {
238-
txsChaincodeNames := map[int]*ChaincodeInstance{
239-
0: &ChaincodeInstance{"chain0", "cc0", "v0"}, // invoke cc0/chain0:v0, should not be affected by upgrade tx in other chain
240-
1: &ChaincodeInstance{"chain1", "cc0", "v0"}, // invoke cc0/chain1:v0, should be invalided by cc1/chain1 upgrade tx
241-
2: &ChaincodeInstance{"chain1", "lscc", ""}, // upgrade cc0/chain1 to v1, should be invalided by latter cc0/chain1 upgtade tx
242-
3: &ChaincodeInstance{"chain1", "cc0", "v0"}, // invoke cc0/chain1:v0, should be invalided by cc1/chain1 upgrade tx
243-
4: &ChaincodeInstance{"chain1", "cc0", "v1"}, // invoke cc0/chain1:v1, should be invalided by cc1/chain1 upgrade tx
244-
5: &ChaincodeInstance{"chain1", "cc1", "v0"}, // invoke cc1/chain1:v0, should not be affected by other chaincode upgrade tx
245-
6: &ChaincodeInstance{"chain1", "lscc", ""}, // upgrade cc0/chain1 to v2, should be invalided by latter cc0/chain1 upgtade tx
246-
7: &ChaincodeInstance{"chain1", "lscc", ""}, // upgrade cc0/chain1 to v3
239+
txsChaincodeNames := map[int]*sysccprovider.ChaincodeInstance{
240+
0: &sysccprovider.ChaincodeInstance{"chain0", "cc0", "v0"}, // invoke cc0/chain0:v0, should not be affected by upgrade tx in other chain
241+
1: &sysccprovider.ChaincodeInstance{"chain1", "cc0", "v0"}, // invoke cc0/chain1:v0, should be invalided by cc1/chain1 upgrade tx
242+
2: &sysccprovider.ChaincodeInstance{"chain1", "lscc", ""}, // upgrade cc0/chain1 to v1, should be invalided by latter cc0/chain1 upgtade tx
243+
3: &sysccprovider.ChaincodeInstance{"chain1", "cc0", "v0"}, // invoke cc0/chain1:v0, should be invalided by cc1/chain1 upgrade tx
244+
4: &sysccprovider.ChaincodeInstance{"chain1", "cc0", "v1"}, // invoke cc0/chain1:v1, should be invalided by cc1/chain1 upgrade tx
245+
5: &sysccprovider.ChaincodeInstance{"chain1", "cc1", "v0"}, // invoke cc1/chain1:v0, should not be affected by other chaincode upgrade tx
246+
6: &sysccprovider.ChaincodeInstance{"chain1", "lscc", ""}, // upgrade cc0/chain1 to v2, should be invalided by latter cc0/chain1 upgtade tx
247+
7: &sysccprovider.ChaincodeInstance{"chain1", "lscc", ""}, // upgrade cc0/chain1 to v3
247248
}
248-
upgradedChaincodes := map[int]*ChaincodeInstance{
249-
2: &ChaincodeInstance{"chain1", "cc0", "v1"},
250-
6: &ChaincodeInstance{"chain1", "cc0", "v2"},
251-
7: &ChaincodeInstance{"chain1", "cc0", "v3"},
249+
upgradedChaincodes := map[int]*sysccprovider.ChaincodeInstance{
250+
2: &sysccprovider.ChaincodeInstance{"chain1", "cc0", "v1"},
251+
6: &sysccprovider.ChaincodeInstance{"chain1", "cc0", "v2"},
252+
7: &sysccprovider.ChaincodeInstance{"chain1", "cc0", "v3"},
252253
}
253254

254255
txsfltr := ledgerUtil.NewTxValidationFlags(8)

core/committer/txvalidator/validator.go

+11-18
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,6 @@ type txValidator struct {
8686
vscc vsccValidator
8787
}
8888

89-
// ChaincodeInstance is unique identifier of chaincode instance
90-
type ChaincodeInstance struct {
91-
ChainID string
92-
ChaincodeName string
93-
ChaincodeVersion string
94-
}
95-
9689
var logger *logging.Logger // package-level logger
9790

9891
func init() {
@@ -121,9 +114,9 @@ func (v *txValidator) Validate(block *common.Block) error {
121114
// Initialize trans as valid here, then set invalidation reason code upon invalidation below
122115
txsfltr := ledgerUtil.NewTxValidationFlags(len(block.Data.Data))
123116
// txsChaincodeNames records all the invoked chaincodes by tx in a block
124-
txsChaincodeNames := make(map[int]*ChaincodeInstance)
117+
txsChaincodeNames := make(map[int]*sysccprovider.ChaincodeInstance)
125118
// upgradedChaincodes records all the chaincodes that are upgrded in a block
126-
txsUpgradedChaincodes := make(map[int]*ChaincodeInstance)
119+
txsUpgradedChaincodes := make(map[int]*sysccprovider.ChaincodeInstance)
127120
for tIdx, d := range block.Data.Data {
128121
if d != nil {
129122
if env, err := utils.GetEnvelopeFromBlock(d); err != nil {
@@ -238,14 +231,14 @@ func (v *txValidator) generateCCKey(ccName, chainID string) string {
238231
}
239232

240233
// invalidTXsForUpgradeCC invalid all txs that should be invalided because of chaincode upgrade txs
241-
func (v *txValidator) invalidTXsForUpgradeCC(txsChaincodeNames map[int]*ChaincodeInstance, txsUpgradedChaincodes map[int]*ChaincodeInstance, txsfltr ledgerUtil.TxValidationFlags) ledgerUtil.TxValidationFlags {
234+
func (v *txValidator) invalidTXsForUpgradeCC(txsChaincodeNames map[int]*sysccprovider.ChaincodeInstance, txsUpgradedChaincodes map[int]*sysccprovider.ChaincodeInstance, txsfltr ledgerUtil.TxValidationFlags) ledgerUtil.TxValidationFlags {
242235
if len(txsUpgradedChaincodes) == 0 {
243236
return txsfltr
244237
}
245238

246239
// Invalid former cc upgrade txs if there're two or more txs upgrade the same cc
247240
finalValidUpgradeTXs := make(map[string]int)
248-
upgradedChaincodes := make(map[string]*ChaincodeInstance)
241+
upgradedChaincodes := make(map[string]*sysccprovider.ChaincodeInstance)
249242
for tIdx, cc := range txsUpgradedChaincodes {
250243
if cc == nil {
251244
continue
@@ -285,7 +278,7 @@ func (v *txValidator) invalidTXsForUpgradeCC(txsChaincodeNames map[int]*Chaincod
285278
return txsfltr
286279
}
287280

288-
func (v *txValidator) getTxCCInstance(payload *common.Payload) (invokeCCIns, upgradeCCIns *ChaincodeInstance, err error) {
281+
func (v *txValidator) getTxCCInstance(payload *common.Payload) (invokeCCIns, upgradeCCIns *sysccprovider.ChaincodeInstance, err error) {
289282
// This is duplicated unpacking work, but make test easier.
290283
chdr, err := utils.UnmarshalChannelHeader(payload.Header.ChannelHeader)
291284
if err != nil {
@@ -301,7 +294,7 @@ func (v *txValidator) getTxCCInstance(payload *common.Payload) (invokeCCIns, upg
301294
return nil, nil, err
302295
}
303296
invokeCC := hdrExt.ChaincodeId
304-
invokeIns := &ChaincodeInstance{ChainID: chainID, ChaincodeName: invokeCC.Name, ChaincodeVersion: invokeCC.Version}
297+
invokeIns := &sysccprovider.ChaincodeInstance{ChainID: chainID, ChaincodeName: invokeCC.Name, ChaincodeVersion: invokeCC.Version}
305298

306299
// Transaction
307300
tx, err := utils.GetTransaction(payload.Data)
@@ -345,23 +338,23 @@ func (v *txValidator) getTxCCInstance(payload *common.Payload) (invokeCCIns, upg
345338
return invokeIns, nil, nil
346339
}
347340

348-
func (v *txValidator) getUpgradeTxInstance(chainID string, cdsBytes []byte) (*ChaincodeInstance, error) {
341+
func (v *txValidator) getUpgradeTxInstance(chainID string, cdsBytes []byte) (*sysccprovider.ChaincodeInstance, error) {
349342
cds, err := utils.GetChaincodeDeploymentSpec(cdsBytes)
350343
if err != nil {
351344
return nil, err
352345
}
353346

354-
return &ChaincodeInstance{
347+
return &sysccprovider.ChaincodeInstance{
355348
ChainID: chainID,
356349
ChaincodeName: cds.ChaincodeSpec.ChaincodeId.Name,
357350
ChaincodeVersion: cds.ChaincodeSpec.ChaincodeId.Version,
358351
}, nil
359352
}
360353

361354
// GetInfoForValidate gets the ChaincodeInstance(with latest version) of tx, vscc and policy from lscc
362-
func (v *vsccValidatorImpl) GetInfoForValidate(txid, chID, ccID string) (*ChaincodeInstance, *ChaincodeInstance, []byte, error) {
363-
cc := &ChaincodeInstance{ChainID: chID}
364-
vscc := &ChaincodeInstance{ChainID: chID}
355+
func (v *vsccValidatorImpl) GetInfoForValidate(txid, chID, ccID string) (*sysccprovider.ChaincodeInstance, *sysccprovider.ChaincodeInstance, []byte, error) {
356+
cc := &sysccprovider.ChaincodeInstance{ChainID: chID}
357+
vscc := &sysccprovider.ChaincodeInstance{ChainID: chID}
365358
var policy []byte
366359
if ccID != "lscc" {
367360
// when we are validating any chaincode other than

0 commit comments

Comments
 (0)