Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ import (
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/chaincode"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/committer"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/delivery"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/driver/config"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/finality"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/membership"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/rwset"
Expand All @@ -36,7 +35,6 @@ import (
var logger = logging.MustGetLogger()

type provider struct {
configProvider config.Provider
envelopeKVS driver.EnvelopeStore
metadataKVS driver.MetadataStore
endorseTxKVS driver.EndorseTxStore
Expand All @@ -53,7 +51,6 @@ type provider struct {
}

func NewChannelProvider(
configProvider config.Provider,
envelopeKVS driver.EnvelopeStore,
metadataKVS driver.MetadataStore,
endorseTxKVS driver.EndorseTxStore,
Expand All @@ -69,7 +66,6 @@ func NewChannelProvider(
acceptedHeaderTypes []common.HeaderType,
) *provider {
return &provider{
configProvider: configProvider,
envelopeKVS: envelopeKVS,
metadataKVS: metadataKVS,
endorseTxKVS: endorseTxKVS,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ func NewProvider(
return &Provider{
configProvider: configProvider,
channelProvider: fabricdev.NewChannelProvider(
configProvider,
envelopeKVS,
metadataKVS,
endorseTxKVS,
Expand Down
4 changes: 0 additions & 4 deletions platform/fabric/core/generic/channelprovider.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import (
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/chaincode"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/committer"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/delivery"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/driver/config"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/finality"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/services"
"github.com/hyperledger-labs/fabric-smart-client/platform/fabric/core/generic/transaction"
Expand Down Expand Up @@ -74,7 +73,6 @@ type ChannelProvider interface {
}

type provider struct {
configProvider config.Provider
envelopeKVS driver.EnvelopeStore
metadataKVS driver.MetadataStore
endorserTxKVS driver.EndorseTxStore
Expand All @@ -91,7 +89,6 @@ type provider struct {
}

func NewChannelProvider(
configProvider config.Provider,
envelopeKVS driver.EnvelopeStore,
metadataKVS driver.MetadataStore,
endorserTxKVS driver.EndorseTxStore,
Expand All @@ -107,7 +104,6 @@ func NewChannelProvider(
useFilteredDelivery bool,
) *provider {
return &provider{
configProvider: configProvider,
envelopeKVS: envelopeKVS,
metadataKVS: metadataKVS,
endorserTxKVS: endorserTxKVS,
Expand Down
4 changes: 0 additions & 4 deletions platform/fabric/core/generic/driver/config/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,6 @@ type Provider interface {
GetConfig(network string) (ConfigService, error)
}

func NewCore(config driver.ConfigService) (*core.Config, error) {
return core.NewConfig(config)
}

func NewProvider(config driver.ConfigService) (Provider, error) {
c, err := core.NewConfig(config)
if err != nil {
Expand Down
7 changes: 1 addition & 6 deletions platform/fabric/core/provider.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,12 +143,7 @@ func (p *FSNProvider) InitFabricLogging() {
}

func (p *FSNProvider) newFNS(network string) (driver.FabricNetworkService, error) {
fnsConfig, err := NewConfig(p.configService)
if err != nil {
return nil, errors.WithMessagef(err, "failed to load configuration")
}

netConfig, err := fnsConfig.Config(network)
netConfig, err := p.config.Config(network)
if err != nil {
return nil, errors.WithMessagef(err, "failed to get configuration for [%s]", network)
}
Expand Down
4 changes: 4 additions & 0 deletions platform/fabric/fns.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,10 @@ func (nsp *NetworkServiceProvider) FabricNetworkService(id string) (*NetworkServ
return ns, nil
}

func (nsp *NetworkServiceProvider) Names() []string {
return nsp.fnsProvider.Names()
}

func GetNetworkServiceProvider(sp services.Provider) (*NetworkServiceProvider, error) {
s, err := sp.GetService(networkServiceProviderType)
if err != nil {
Expand Down
212 changes: 99 additions & 113 deletions platform/fabric/sdk/dig/generic/providers.go
Original file line number Diff line number Diff line change
Expand Up @@ -97,119 +97,105 @@ func NewChannelProvider(in struct {
}) generic.ChannelProvider {
flmProvider := committer2.NewFinalityListenerManagerProvider[driver.ValidationCode](in.TracerProvider)
channelConfigProvider := generic.NewChannelConfigProvider(in.ConfigProvider)
return generic.NewChannelProvider(
in.ConfigProvider,
in.EnvelopeKVS,
in.MetadataKVS,
in.EndorseTxKVS,
in.Hasher,
in.Drivers,
func(_ string, configService driver.ConfigService, vaultStore driver2.VaultStore) (*vault.Vault, error) {
cachedVault := vault2.NewCachedVault(vaultStore, configService.VaultTXStoreCacheSize())
return vault.NewVault(cachedVault, in.MetricsProvider, in.TracerProvider), nil
},
channelConfigProvider,
func(
channelName string,
nw driver.FabricNetworkService,
chaincodeManager driver.ChaincodeManager,
) (driver.Ledger, error) {
return ledger.New(
channelName,
chaincodeManager,
nw.LocalMembership(),
nw.ConfigService(),
nw.TransactionManager(),
), nil
},
func(
channel string,
nw driver.FabricNetworkService,
envelopeService driver.EnvelopeService,
transactionService driver.EndorserTransactionService,
vault driver.RWSetInspector,
) (driver.RWSetLoader, error) {
return rwset.NewLoader(
nw.Name(),
channel,
envelopeService,
transactionService,
nw.TransactionManager(),
vault,
), nil
},
func(
nw driver.FabricNetworkService,
channelName string,
vault driver.Vault,
envelopeService driver.EnvelopeService,
ledger driver.Ledger,
rwsetLoaderService driver.RWSetLoader,
channelMembershipService driver.MembershipService,
fabricFinality committer.FabricFinality,
quiet bool,
) (generic.CommitterService, error) {
os, ok := nw.OrderingService().(committer.OrderingService)
if !ok {
return nil, errors.New("ordering service is not a committer.OrderingService")
}
channelConfig, err := channelConfigProvider.GetChannelConfig(nw.Name(), channelName)
if err != nil {
return nil, err
}
return committer.New(
nw.ConfigService(),
channelConfig,
vault,
envelopeService,
ledger,
rwsetLoaderService,
nw.ProcessorManager(),
in.Publisher,
channelMembershipService,
os,
fabricFinality,
nw.TransactionManager(),
committer.NewSerialDependencyResolver(),
quiet,
flmProvider.NewManager(),
in.TracerProvider,
in.MetricsProvider,
), nil
},
func(
nw driver.FabricNetworkService,
channel string,
peerManager delivery.Services,
ledger driver.Ledger,
vault delivery.Vault,
callback driver.BlockCallback,
) (generic.DeliveryService, error) {
channelConfig, err := channelConfigProvider.GetChannelConfig(nw.Name(), channel)
if err != nil {
return nil, err
}
return delivery.NewService(
channel,
channelConfig,
in.Hasher,
nw.Name(),
nw.LocalMembership(),
nw.ConfigService(),
peerManager,
ledger,
vault,
nw.TransactionManager(),
callback,
in.TracerProvider,
in.MetricsProvider,
[]common.HeaderType{common.HeaderType_ENDORSER_TRANSACTION},
)
},
func(channelName string) driver.MembershipService {
return membership.NewService(channelName)
},
true)
return generic.NewChannelProvider(in.EnvelopeKVS, in.MetadataKVS, in.EndorseTxKVS, in.Hasher, in.Drivers, func(_ string, configService driver.ConfigService, vaultStore driver2.VaultStore) (*vault.Vault, error) {
cachedVault := vault2.NewCachedVault(vaultStore, configService.VaultTXStoreCacheSize())
return vault.NewVault(cachedVault, in.MetricsProvider, in.TracerProvider), nil
}, channelConfigProvider, func(
channelName string,
nw driver.FabricNetworkService,
chaincodeManager driver.ChaincodeManager,
) (driver.Ledger, error) {
return ledger.New(
channelName,
chaincodeManager,
nw.LocalMembership(),
nw.ConfigService(),
nw.TransactionManager(),
), nil
}, func(
channel string,
nw driver.FabricNetworkService,
envelopeService driver.EnvelopeService,
transactionService driver.EndorserTransactionService,
vault driver.RWSetInspector,
) (driver.RWSetLoader, error) {
return rwset.NewLoader(
nw.Name(),
channel,
envelopeService,
transactionService,
nw.TransactionManager(),
vault,
), nil
}, func(
nw driver.FabricNetworkService,
channelName string,
vault driver.Vault,
envelopeService driver.EnvelopeService,
ledger driver.Ledger,
rwsetLoaderService driver.RWSetLoader,
channelMembershipService driver.MembershipService,
fabricFinality committer.FabricFinality,
quiet bool,
) (generic.CommitterService, error) {
os, ok := nw.OrderingService().(committer.OrderingService)
if !ok {
return nil, errors.New("ordering service is not a committer.OrderingService")
}
channelConfig, err := channelConfigProvider.GetChannelConfig(nw.Name(), channelName)
if err != nil {
return nil, err
}
return committer.New(
nw.ConfigService(),
channelConfig,
vault,
envelopeService,
ledger,
rwsetLoaderService,
nw.ProcessorManager(),
in.Publisher,
channelMembershipService,
os,
fabricFinality,
nw.TransactionManager(),
committer.NewSerialDependencyResolver(),
quiet,
flmProvider.NewManager(),
in.TracerProvider,
in.MetricsProvider,
), nil
}, func(
nw driver.FabricNetworkService,
channel string,
peerManager delivery.Services,
ledger driver.Ledger,
vault delivery.Vault,
callback driver.BlockCallback,
) (generic.DeliveryService, error) {
channelConfig, err := channelConfigProvider.GetChannelConfig(nw.Name(), channel)
if err != nil {
return nil, err
}
return delivery.NewService(
channel,
channelConfig,
in.Hasher,
nw.Name(),
nw.LocalMembership(),
nw.ConfigService(),
peerManager,
ledger,
vault,
nw.TransactionManager(),
callback,
in.TracerProvider,
in.MetricsProvider,
[]common.HeaderType{common.HeaderType_ENDORSER_TRANSACTION},
)
}, func(channelName string) driver.MembershipService {
return membership.NewService(channelName)
}, true)
}

func NewEndorseTxStore(config driver2.ConfigService, drivers multiplexed.Driver) (driver.EndorseTxStore, error) {
Expand Down
Loading