fabric

package
v0.14.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 10, 2026 License: Apache-2.0 Imports: 41 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// QueryPublicParamsFunction is the chaincode function name for querying public parameters.
	QueryPublicParamsFunction = "queryPublicParams"
	// QueryTokensFunctions is the chaincode function name for querying token data.
	QueryTokensFunctions = "queryTokens"
	// AreTokensSpent is the chaincode function name for checking if tokens are spent.
	AreTokensSpent = "areTokensSpent"
)

Variables

This section is empty.

Functions

func NewChaincodePublicParamsFetcher

func NewChaincodePublicParamsFetcher(viewManager *view.Manager) *chaincodePublicParamsFetcher

func NewGenericDriver

func NewGenericDriver(
	fnsProvider *fabric.NetworkServiceProvider,
	tokensManager *tokens.ServiceManager,
	configProvider *config.Service,
	viewManager *view.Manager,
	viewRegistry *view.Registry,
	filterProvider *common.AcceptTxInDBFilterProvider,
	tmsProvider *token.ManagementServiceProvider,
	tracerProvider trace.TracerProvider,
	identityProvider view.IdentityProvider,
	configService cdriver.ConfigService,
	ttxStoreServiceManager ttxdb.StoreServiceManager,
	auditStoreServiceManager auditdb.StoreServiceManager,
	cleanupServiceManager cleanup.ServiceManager,
	endorserStoreServiceManager endorserdb.StoreServiceManager,
	metricsProvider metrics.Provider,
) driver.Driver

func NewLedger

func NewLedger(ch *fabric.Channel, network string, keyTranslator translator.KeyTranslator) *ledger

func NewSetupListenerProvider

func NewSetupListenerProvider(tmsProvider *token2.ManagementServiceProvider, tokensProvider *tokens.ServiceManager) *setupListenerProvider

NewSetupListenerProvider returns a provider for listeners that monitor public parameter updates.

func NewSpentTokenExecutorProvider

func NewSpentTokenExecutorProvider(fnsProvider *fabric.NetworkServiceProvider, keyTranslator translator.KeyTranslator) *spentTokenFetcherProvider

func NewTokenExecutorProvider

func NewTokenExecutorProvider(fnsProvider *fabric.NetworkServiceProvider) *tokenFetcherProvider

Types

type Driver

type Driver struct {
	EndorsementServiceProvider EndorsementServiceProvider
	// contains filtered or unexported fields
}

func NewDriver

func NewDriver(
	fnsProvider *fabric.NetworkServiceProvider,
	tokensManager *tokens.ServiceManager,
	configService *config.Service,
	viewManager *view.Manager,
	filterProvider *common.AcceptTxInDBFilterProvider,
	tmsProvider *token.ManagementServiceProvider,
	tracerProvider trace.TracerProvider,
	identityProvider view.IdentityProvider,
	defaultPublicParamsFetcher NetworkPublicParamsFetcher,
	tokenQueryExecutorProvider driver.TokenQueryExecutorProvider,
	spentTokenQueryExecutorProvider driver.SpentTokenQueryExecutorProvider,
	keyTranslator translator.KeyTranslator,
	flmProvider finality.ListenerManagerProvider,
	llmProvider lookup.ListenerManagerProvider,
	endorsementServiceProvider EndorsementServiceProvider,
	setupListenerProvider SetupListenerProvider,
	ttxStoreServiceManager ttxdb.StoreServiceManager,
	auditStoreServiceManager auditdb.StoreServiceManager,
	cleanupServiceManager cleanup.ServiceManager,
	metricsProvider metrics.Provider,
	supportedDrivers ...string,
) *Driver

func (*Driver) New

func (d *Driver) New(network, channel string) (driver.Network, error)

type EndorsementService

type EndorsementService = endorsement.Service

EndorsementService models the interface for transaction endorsement.

type EndorsementServiceProvider

type EndorsementServiceProvider = lazy.Provider[token2.TMSID, EndorsementService]

EndorsementServiceProvider provides endorsement services for different TMS IDs.

type GetTMSProviderFunc

type GetTMSProviderFunc = func() *token2.ManagementServiceProvider

GetTMSProviderFunc is a function type that returns a ManagementServiceProvider.

type GetTokensFunc

type GetTokensFunc = func() (*tokens.Service, error)

GetTokensFunc is a function type that returns a token Service instance.

type Network

type Network struct {
	// contains filtered or unexported fields
}

Network implements the driver.Network interface for Hyperledger Fabric. It orchestrates finality listeners, state queries, and endorsement requests.

func NewNetwork

func NewNetwork(
	n *fabric.NetworkService,
	ch *fabric.Channel,
	configuration ncommon.Configuration,
	filterProvider ncommon.TransactionFilterProvider[*ncommon.AcceptTxInDBsFilter],
	tokensProvider *tokens.ServiceManager,
	viewManager ViewManager,
	tmsProvider *token2.ManagementServiceProvider,
	endorsementServiceProvider EndorsementServiceProvider,
	tokenQueryExecutor driver.TokenQueryExecutor,
	tracerProvider trace.TracerProvider,
	defaultPublicParamsFetcher NetworkPublicParamsFetcher,
	spentTokenQueryExecutor driver.SpentTokenQueryExecutor,
	keyTranslator translator.KeyTranslator,
	flm finality.ListenerManager,
	llm lookup.ListenerManager,
	setupListenerProvider SetupListenerProvider,
	ttxStoreServiceManager ttxdb.StoreServiceManager,
	auditStoreServiceManager auditdb.StoreServiceManager,
	cleanupServiceManager cleanup.ServiceManager,
	metricsProvider metrics.Provider,
	ledger driver.Ledger,
) *Network

NewNetwork creates a new Fabric Network instance.

func (*Network) AddFinalityListener

func (n *Network) AddFinalityListener(namespace string, txID string, listener driver.FinalityListener) error

AddFinalityListener registers a callback for transaction status updates.

func (*Network) AreTokensSpent

func (n *Network) AreTokensSpent(ctx context.Context, namespace string, tokenIDs []*token.ID, meta []string) ([]bool, error)

AreTokensSpent checks if tokens have been consumed by verifying their existence in the ledger.

func (*Network) Broadcast

func (n *Network) Broadcast(ctx context.Context, blob any) error

Broadcast sends a transaction envelope to the ordering service.

func (*Network) Channel

func (n *Network) Channel() string

Channel returns the name of the Fabric channel.

func (*Network) ComputeTxID

func (n *Network) ComputeTxID(id *driver.TxID) string

ComputeTxID calculates the Fabric transaction ID based on creator and nonce.

func (*Network) Connect

func (n *Network) Connect(ns string) (opts []token2.ServiceOption, err error)

Connect initializes listeners for public parameters and initializes the endorsement service for the namespace.

func (*Network) FetchPublicParameters

func (n *Network) FetchPublicParameters(namespace string) ([]byte, error)

FetchPublicParameters queries the chaincode for the current public parameters.

func (*Network) GetTransactionStatus

func (n *Network) GetTransactionStatus(ctx context.Context, namespace, txID string) (status int, tokenRequestHash []byte, message string, err error)

GetTransactionStatus retrieves the current status and token request hash for a transaction. It delegates to the ledger implementation.

func (*Network) Ledger

func (n *Network) Ledger() (driver.Ledger, error)

Ledger returns direct access to the ledger querying layer.

func (*Network) LocalMembership

func (n *Network) LocalMembership() driver.LocalMembership

LocalMembership returns the membership service for the local FSC node.

func (*Network) LookupTransferMetadataKey

func (n *Network) LookupTransferMetadataKey(namespace string, key string, timeout time.Duration) ([]byte, error)

LookupTransferMetadataKey performs a scan to find transfer metadata matching a sub-key.

func (*Network) Name

func (n *Network) Name() string

Name returns the name of the Fabric network.

func (*Network) NewEnvelope

func (n *Network) NewEnvelope() driver.Envelope

NewEnvelope returns a new transaction envelope for the Fabric network.

func (*Network) Normalize

func (n *Network) Normalize(opt *token2.ServiceOptions) (*token2.ServiceOptions, error)

Normalize ensures that network, channel, and namespace are correctly set in the options.

func (*Network) QueryTokens

func (n *Network) QueryTokens(ctx context.Context, namespace string, IDs []*token.ID) ([][]byte, error)

QueryTokens retrieves token data from the global state.

func (*Network) RequestApproval

func (n *Network) RequestApproval(context view.Context, tms *token2.ManagementService, requestRaw []byte, signer view.Identity, txID driver.TxID, metadata driver.TransientMap) (driver.Envelope, error)

RequestApproval requests an endorsement for a token request.

type NetworkPublicParamsFetcher

type NetworkPublicParamsFetcher interface {
	// Fetch fetches the public parameters for the given network, channel, and namespace
	Fetch(network cdriver.Network, channel cdriver.Channel, namespace cdriver.Namespace) ([]byte, error)
}

NetworkPublicParamsFetcher models a public parameters fetcher per network.

type RWSWrapper

type RWSWrapper struct {
	// contains filtered or unexported fields
}

func NewRWSWrapper

func NewRWSWrapper(r *fabric.RWSet) *RWSWrapper

func (*RWSWrapper) Bytes

func (rwset *RWSWrapper) Bytes() ([]byte, error)

func (*RWSWrapper) DeleteState

func (rwset *RWSWrapper) DeleteState(namespace string, key string) error

func (*RWSWrapper) Done

func (rwset *RWSWrapper) Done()

func (*RWSWrapper) Equals

func (rwset *RWSWrapper) Equals(r any, namespace string) error

func (*RWSWrapper) GetState

func (rwset *RWSWrapper) GetState(namespace string, key string) ([]byte, error)

func (*RWSWrapper) SetState

func (rwset *RWSWrapper) SetState(namespace string, key string, value []byte) error

type SetupListenerProvider

type SetupListenerProvider interface {
	GetListener(token2.TMSID) lookup.Listener
}

SetupListenerProvider defines the interface for obtaining lookup listeners for public parameters setup.

type ViewManager

type ViewManager interface {
	InitiateView(ctx context.Context, view view.View) (any, error)
}

ViewManager models the interface for initiating FSC views.

type ViewRegistry

type ViewRegistry interface {
	RegisterResponder(responder view.View, initiatedBy any) error
}

ViewRegistry models the interface for registering view responders.

Directories

Path Synopsis
fsc
fsc/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
tcc
main command
mock
Code generated by counterfeiter.
Code generated by counterfeiter.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL