Skip to content

Commit c00898d

Browse files
Simplify vault
Signed-off-by: Alexandros Filios <alexandros.filios@ibm.com>
1 parent da9f9b1 commit c00898d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+2392
-2987
lines changed

docs/fabric/fabricdev/core/fabricdev/channelprovider.go

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/events"
2525
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/hash"
2626
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics"
27+
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault"
2728
"github.com/hyperledger/fabric-protos-go/common"
2829
"github.com/pkg/errors"
2930
"go.opentelemetry.io/otel/trace"
@@ -90,11 +91,12 @@ func (p *provider) NewChannel(nw driver.FabricNetworkService, channelName string
9091
}
9192

9293
// Vault
93-
vault, txIDStore, err := p.newVault(nw.ConfigService(), channelName, p.drivers, p.metricsProvider, p.tracerProvider)
94+
vaultStore, err := vault.NewWithConfig(p.drivers, nw.ConfigService(), nw.Name(), channelName)
9495
if err != nil {
9596
return nil, err
9697
}
9798

99+
vault := p.newVault(nw.ConfigService(), vaultStore, p.metricsProvider, p.tracerProvider)
98100
envelopeService := transaction.NewEnvelopeService(p.envelopeKVS, nw.Name(), channelName)
99101
transactionService := transaction.NewEndorseTransactionService(p.endorseTxKVS, nw.Name(), channelName)
100102
metadataService := transaction.NewMetadataService(p.metadataKVS, nw.Name(), channelName)
@@ -173,7 +175,7 @@ func (p *provider) NewChannel(nw driver.FabricNetworkService, channelName string
173175
peerService,
174176
ledgerService,
175177
channelConfig.CommitterWaitForEventTimeout(),
176-
txIDStore,
178+
vaultStore,
177179
nw.TransactionManager(),
178180
func(ctx context.Context, block *common.Block) (bool, error) {
179181
// commit the block, if an error occurs then retry
@@ -193,7 +195,6 @@ func (p *provider) NewChannel(nw driver.FabricNetworkService, channelName string
193195
ChannelName: channelName,
194196
FinalityService: finalityService,
195197
VaultService: vault,
196-
TXIDStoreService: txIDStore,
197198
ES: envelopeService,
198199
TS: transactionService,
199200
MS: metadataService,

docs/fabric/fabricdev/core/fabricdev/vault/service.go

Lines changed: 7 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -7,55 +7,28 @@ SPDX-License-Identifier: Apache-2.0
77
package vault
88

99
import (
10+
driver3 "github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1011
"github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging"
1112
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault"
12-
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault/txidstore"
13+
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault/cache"
1314
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver"
1415
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/cache/secondcache"
15-
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db"
16-
dbdriver "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/db/driver"
1716
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics"
18-
"github.com/pkg/errors"
1917
"go.opentelemetry.io/otel/trace"
2018
)
2119

2220
var logger = logging.MustGetLogger("fabric-sdk.core.vault")
2321

24-
func New(configService driver.ConfigService, channel string, drivers []dbdriver.NamedDriver, metricsProvider metrics.Provider, tracerProvider trace.TracerProvider) (*Vault, driver.TXIDStore, error) {
25-
var d dbdriver.Driver
26-
for _, driver := range drivers {
27-
if driver.Name == configService.VaultPersistenceType() {
28-
d = driver.Driver
29-
break
30-
}
31-
}
32-
if d == nil {
33-
return nil, nil, errors.Errorf("failed getting driver [%s]", configService.VaultPersistenceType())
34-
}
35-
logger.Debugf("new fabric vault for channel [%s] with config [%v]", channel, configService)
36-
persistence, err := db.OpenVersioned(d, db.EscapeForTableName(configService.NetworkName(), channel), db.NewPrefixConfig(configService, configService.VaultPersistencePrefix()))
37-
if err != nil {
38-
return nil, nil, errors.Wrapf(err, "failed creating vault")
39-
}
40-
41-
var txidStore driver.TXIDStore
42-
txidStore, err = vault.NewTXIDStore(db.Unversioned(persistence))
43-
if err != nil {
44-
return nil, nil, errors.Wrapf(err, "failed creating txid store")
45-
}
46-
22+
func New(configService driver.ConfigService, vaultStore driver3.VaultStore, metricsProvider metrics.Provider, tracerProvider trace.TracerProvider) *vault.Vault {
4723
txIDStoreCacheSize := configService.VaultTXStoreCacheSize()
48-
if err != nil {
49-
return nil, nil, errors.Wrapf(err, "failed loading txID store cache size from configuration")
50-
}
5124

5225
if txIDStoreCacheSize > 0 {
5326
logger.Debugf("creating txID store second cache with size [%d]", txIDStoreCacheSize)
54-
c := txidstore.NewCache(txidStore, secondcache.NewTyped[*txidstore.Entry](txIDStoreCacheSize), logger)
55-
return NewVault(persistence, c, metricsProvider, tracerProvider), c, nil
27+
c := cache.NewCache(vaultStore, secondcache.NewTyped[*cache.Entry](txIDStoreCacheSize), logger)
28+
return NewVault(c, metricsProvider, tracerProvider)
5629
} else {
5730
logger.Debugf("txID store without cache selected")
58-
c := txidstore.NewNoCache(txidStore)
59-
return NewVault(persistence, c, metricsProvider, tracerProvider), c, nil
31+
c := cache.NewNoCache(vaultStore)
32+
return NewVault(c, metricsProvider, tracerProvider)
6033
}
6134
}

docs/fabric/fabricdev/core/fabricdev/vault/vault.go

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,44 +8,42 @@ package vault
88

99
import (
1010
"github.com/hyperledger-labs/fabric-smart-client/platform/common/core/generic/vault"
11-
"github.com/hyperledger-labs/fabric-smart-client/platform/common/core/generic/vault/txidstore"
1211
"github.com/hyperledger-labs/fabric-smart-client/platform/common/driver"
1312
"github.com/hyperledger-labs/fabric-smart-client/platform/common/services/logging"
13+
vault3 "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault"
14+
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/vault/cache"
1415
fdriver "github.com/hyperledger-labs/fabric-smart-client/platform/fabric/driver"
1516
"github.com/hyperledger-labs/fabric-smart-client/platform/view/services/metrics"
17+
vault2 "github.com/hyperledger-labs/fabric-smart-client/platform/view/services/storage/vault"
1618
"go.opentelemetry.io/otel/trace"
1719
)
1820

19-
type (
20-
TXIDStore = vault.TXIDStore[fdriver.ValidationCode]
21-
Vault = vault.Vault[fdriver.ValidationCode]
22-
TXIDStoreReader = vault.TXIDStoreReader[fdriver.ValidationCode]
23-
SimpleTXIDStore = txidstore.SimpleTXIDStore[fdriver.ValidationCode]
24-
)
25-
2621
// NewVault returns a new instance of Vault
27-
func NewVault(store vault.VersionedPersistence, txIDStore TXIDStore, metricsProvider metrics.Provider, tracerProvider trace.TracerProvider) *Vault {
28-
return vault.New[fdriver.ValidationCode](
22+
func NewVault(vaultStore cache.CachedVaultStore, metricsProvider metrics.Provider, tracerProvider trace.TracerProvider) *vault3.Vault {
23+
v := vault.New[fdriver.ValidationCode](
2924
logging.MustGetLogger("fabric-sdk.generic.vault"),
30-
store,
31-
txIDStore,
32-
&fdriver.ValidationCodeProvider{},
25+
vault2.NewNoCache(vaultStore),
26+
fdriver.ValidationCodeProvider,
3327
newInterceptor,
3428
&populator{},
3529
metricsProvider,
3630
tracerProvider,
3731
&CounterBasedVersionBuilder{},
3832
)
33+
return &vault3.Vault{
34+
Vault: v,
35+
VaultStore: vaultStore,
36+
}
3937
}
4038

41-
func newInterceptor(logger vault.Logger, rwSet vault.ReadWriteSet, qe vault.VersionedQueryExecutor, txIDStore TXIDStoreReader, txID string) vault.TxInterceptor {
39+
func newInterceptor(logger vault.Logger, rwSet vault.ReadWriteSet, qe vault.VersionedQueryExecutor, vaultStore vault.TxStatusStore, txID string) vault.TxInterceptor {
4240
return vault.NewInterceptor[fdriver.ValidationCode](
4341
logger,
4442
rwSet,
4543
qe,
46-
txIDStore,
44+
vaultStore,
4745
txID,
48-
&fdriver.ValidationCodeProvider{},
46+
fdriver.ValidationCodeProvider,
4947
&marshaller{},
5048
&CounterBasedVersionComparator{},
5149
)

platform/common/core/generic/vault/db/helpers.go

Lines changed: 0 additions & 105 deletions
This file was deleted.

0 commit comments

Comments
 (0)