fabric

package
v0.15.1 Latest Latest
Warning

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

Go to latest
Published: Jul 22, 2026 License: Apache-2.0 Imports: 42 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,
	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,
	ppValidator fsc.PublicParamsValidator,
) 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,
	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,
	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.

func (*Network) SetupPublicParams added in v0.15.1

func (n *Network) SetupPublicParams(context view.Context, tmsID token2.TMSID, publicParamsRaw []byte, signer view.Identity, txID driver.TxID) (driver.Envelope, error)

SetupPublicParams submits new or updated public parameters for a namespace, mirroring RequestApproval. It resolves the endorsement service by TMSID directly, so it also works for first-time setup of a namespace that has no public parameters yet.

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.
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