@@ -24,6 +24,7 @@ import (
24
24
"github.com/hyperledger/fabric/core/comm"
25
25
"github.com/hyperledger/fabric/core/committer"
26
26
"github.com/hyperledger/fabric/core/committer/txvalidator"
27
+ "github.com/hyperledger/fabric/core/common/ccprovider"
27
28
"github.com/hyperledger/fabric/core/common/privdata"
28
29
"github.com/hyperledger/fabric/core/common/sysccprovider"
29
30
"github.com/hyperledger/fabric/core/ledger"
@@ -174,7 +175,7 @@ var validationWorkersSemaphore *semaphore.Weighted
174
175
// Initialize sets up any chains that the peer has from the persistence. This
175
176
// function should be called at the start up when the ledger and gossip
176
177
// ready
177
- func Initialize (init func (string ), sccp sysccprovider.SystemChaincodeProvider ) {
178
+ func Initialize (init func (string ), ccp ccprovider. ChaincodeProvider , sccp sysccprovider.SystemChaincodeProvider ) {
178
179
nWorkers := viper .GetInt ("peer.validatorPoolSize" )
179
180
if nWorkers <= 0 {
180
181
nWorkers = runtime .NumCPU ()
@@ -203,7 +204,7 @@ func Initialize(init func(string), sccp sysccprovider.SystemChaincodeProvider) {
203
204
continue
204
205
}
205
206
// Create a chain if we get a valid ledger with config block
206
- if err = createChain (cid , ledger , cb , sccp ); err != nil {
207
+ if err = createChain (cid , ledger , cb , ccp , sccp ); err != nil {
207
208
peerLogger .Warningf ("Failed to load chain %s(%s)" , cid , err )
208
209
peerLogger .Debugf ("Error reloading chain %s with message %s. We continue to the next chain rather than abort." , cid , err )
209
210
continue
@@ -252,7 +253,7 @@ func getCurrConfigBlockFromLedger(ledger ledger.PeerLedger) (*common.Block, erro
252
253
}
253
254
254
255
// createChain creates a new chain object and insert it into the chains
255
- func createChain (cid string , ledger ledger.PeerLedger , cb * common.Block , sccp sysccprovider.SystemChaincodeProvider ) error {
256
+ func createChain (cid string , ledger ledger.PeerLedger , cb * common.Block , ccp ccprovider. ChaincodeProvider , sccp sysccprovider.SystemChaincodeProvider ) error {
256
257
chanConf , err := retrievePersistedChannelConfig (ledger )
257
258
if err != nil {
258
259
return err
@@ -346,7 +347,7 @@ func createChain(cid string, ledger ledger.PeerLedger, cb *common.Block, sccp sy
346
347
* chainSupport
347
348
* semaphore.Weighted
348
349
}{cs , validationWorkersSemaphore }
349
- validator := txvalidator .NewTxValidator (vcs , sccp )
350
+ validator := txvalidator .NewTxValidator (vcs , ccp , sccp )
350
351
c := committer .NewLedgerCommitterReactive (ledger , func (block * common.Block ) error {
351
352
chainID , err := utils .GetChainIDFromBlock (block )
352
353
if err != nil {
@@ -387,7 +388,7 @@ func createChain(cid string, ledger ledger.PeerLedger, cb *common.Block, sccp sy
387
388
}
388
389
389
390
// CreateChainFromBlock creates a new chain from config block
390
- func CreateChainFromBlock (cb * common.Block , sccp sysccprovider.SystemChaincodeProvider ) error {
391
+ func CreateChainFromBlock (cb * common.Block , ccp ccprovider. ChaincodeProvider , sccp sysccprovider.SystemChaincodeProvider ) error {
391
392
cid , err := utils .GetChainIDFromBlock (cb )
392
393
if err != nil {
393
394
return err
@@ -398,7 +399,7 @@ func CreateChainFromBlock(cb *common.Block, sccp sysccprovider.SystemChaincodePr
398
399
return fmt .Errorf ("Cannot create ledger from genesis block, due to %s" , err )
399
400
}
400
401
401
- return createChain (cid , l , cb , sccp )
402
+ return createChain (cid , l , cb , ccp , sccp )
402
403
}
403
404
404
405
// GetLedger returns the ledger of the chain with chain ID. Note that this
0 commit comments