Skip to content

Commit 73bdfc5

Browse files
author
Saad Karim
committed
FAB-12866 - Refactor NewProvider for ledger
The metrics provider will be provided by the initializer which is passed into Initialize function. The NewCommonStorageDBProvider will require the metrics provider be passed into it. Thus moving the call to NewCommonStorageDBProvider into initialize function. Change-Id: I1c23d5cf261719cae0725a09c3ededaafbb8aef8 Signed-off-by: Saad Karim <skarim@us.ibm.com>
1 parent 7cbf47a commit 73bdfc5

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

core/ledger/kvledger/kv_ledger_provider.go

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,22 +58,17 @@ func NewProvider() (ledger.PeerLedgerProvider, error) {
5858
// Initialize the ID store (inventory of chainIds/ledgerIds)
5959
idStore := openIDStore(ledgerconfig.GetLedgerProviderPath())
6060
ledgerStoreProvider := ledgerstorage.NewProvider()
61-
bookkeepingProvider := bookkeeping.NewProvider()
62-
// Initialize the versioned database (state database)
63-
vdbProvider, err := privacyenabledstate.NewCommonStorageDBProvider(bookkeepingProvider)
64-
if err != nil {
65-
return nil, err
66-
}
6761
// Initialize the history database (index for history of values by key)
6862
historydbProvider := historyleveldb.NewHistoryDBProvider()
6963
logger.Info("ledger provider Initialized")
7064
provider := &Provider{idStore, ledgerStoreProvider,
71-
vdbProvider, historydbProvider, nil, nil, bookkeepingProvider, nil, nil}
65+
nil, historydbProvider, nil, nil, nil, nil, nil}
7266
return provider, nil
7367
}
7468

7569
// Initialize implements the corresponding method from interface ledger.PeerLedgerProvider
76-
func (provider *Provider) Initialize(initializer *ledger.Initializer) {
70+
func (provider *Provider) Initialize(initializer *ledger.Initializer) error {
71+
var err error
7772
configHistoryMgr := confighistory.NewMgr(initializer.DeployedChaincodeInfoProvider)
7873
collElgNotifier := &collElgNotifier{
7974
initializer.DeployedChaincodeInfoProvider,
@@ -91,7 +86,13 @@ func (provider *Provider) Initialize(initializer *ledger.Initializer) {
9186
provider.configHistoryMgr = configHistoryMgr
9287
provider.stateListeners = stateListeners
9388
provider.collElgNotifier = collElgNotifier
89+
provider.bookkeepingProvider = bookkeeping.NewProvider()
90+
provider.vdbProvider, err = privacyenabledstate.NewCommonStorageDBProvider(provider.bookkeepingProvider)
91+
if err != nil {
92+
return err
93+
}
9494
provider.recoverUnderConstructionLedger()
95+
return nil
9596
}
9697

9798
// Create implements the corresponding method from interface ledger.PeerLedgerProvider

core/ledger/ledger_interface.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ type Initializer struct {
2626

2727
// PeerLedgerProvider provides handle to ledger instances
2828
type PeerLedgerProvider interface {
29-
Initialize(initializer *Initializer)
29+
Initialize(initializer *Initializer) error
3030
// Create creates a new ledger with the given genesis block.
3131
// This function guarantees that the creation of ledger and committing the genesis block would an atomic action
3232
// The chain id retrieved from the genesis block is treated as a ledger id

0 commit comments

Comments
 (0)