fabric-smart-client

module
v0.27.0 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2026 License: Apache-2.0

README

Fabric Smart Client

License Go Reference OpenSSF Scorecard OpenSSF Best Practices Tests CodeQL Coverage Status

The Fabric Smart Client (FSC) is a next-generation client-side framework for Hyperledger Fabric and Fabric-x.
It lets you focus on business logic and distributed workflows, rather than low-level DLT details.

FSC abstracts away the complexity of a DLT network, enabling developers to build distributed applications with ease.

Key Features

  • High-level APIs that abstract away the complexity of interactive distributed applications.
  • Peer-to-peer client overlay enabling direct interaction as needed.
  • Advanced transaction orchestration to implement complex application business processes.
  • Integration-ready with Fabric and Fabric-x networks via simple configuration, with support for multiple versions.
  • Token SDK as an example of building distributed ledger applications on top of FSC.

Getting Started

To start developing and testing your application with the Fabric Smart Client:

Ensure you have a working Go environment.

Clone the repository:

git clone https://github.com/hyperledger-labs/fabric-smart-client.git
cd fabric-smart-client

Examples and Integration

The integration/ directory includes example applications and integration tests for Fabric and Fabric-x networks.

Start with:

These examples demonstrate common FSC patterns, transaction flows, and how to wire the client with a ledger network.

Contributing

We welcome contributions from everyone. Please read CONTRIBUTING.md for detailed guidelines.

Join our community on the LFDT Discord #fabric-smart-client. We also have a community meeting every Wednesday at 1400 CET on Zoom. Please see the Hyperledger Fabric community calendar for details. Meeting notes are available here.

Versioning

This project follows Semantic Versioning (SemVer). See available releases here: https://github.com/hyperledger-labs/fabric-smart-client/tags

Disclaimer and License

The Fabric Smart Client is provided as-is and has not been formally audited. Use at your own risk. The project is actively developed and APIs may change.

This project is licensed under the Apache License, Version 2.0 (Apache-2.0). Documentation is available under the Creative Commons Attribution 4.0 International License (CC-BY-4.0).

Directories

Path Synopsis
integration module
internal
storage/sqlbuild
Package sqlbuild assembles the handful of SQL statement shapes FSC's storage drivers need, together with their positional parameters.
Package sqlbuild assembles the handful of SQL statement shapes FSC's storage drivers need, together with their positional parameters.
pkg
runner
Package runner adapts batch-processing functions to individual Run and Execute calls.
Package runner adapts batch-processing functions to individual Run and Execute calls.
utils/compose
Package compose builds and splits composite keys from object types and attributes.
Package compose builds and splits composite keys from object types and attributes.
utils/configtest
Package configtest checks the reference configuration in docs/configuration.md against the code that reads it.
Package configtest checks the reference configuration in docs/configuration.md against the code that reads it.
utils/errors
Package errors provides helpers for creating, annotating, wrapping, and joining errors, and for inspecting their causes and types.
Package errors provides helpers for creating, annotating, wrapping, and joining errors, and for inspecting their causes and types.
utils/proto
Package proto provides Protocol Buffer marshaling, unmarshaling, equality, and cloning helpers.
Package proto provides Protocol Buffer marshaling, unmarshaling, equality, and cloning helpers.
platform
common/services/grpc/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
common/services/tlsconfig
Package tlsconfig resolves, merges, validates and loads the TLS configuration of every FSC surface.
Package tlsconfig resolves, merges, validates and loads the TLS configuration of every FSC surface.
common/utils/assert
Package assert provides assertions that panic on failure, including checks for errors, values, and view identities.
Package assert provides assertions that panic on failure, including checks for errors, values, and view identities.
common/utils/collections
Package collections re-exports a subset of the iterators, maps, sets and slices subpackages under shorter names, for callers that only need a handful of these functions and don't want to import each subpackage separately.
Package collections re-exports a subset of the iterators, maps, sets and slices subpackages under shorter names, for callers that only need a handful of these functions and don't want to import each subpackage separately.
common/utils/collections/iterators
Package iterators provides generic iterators over slices and receive streams, with helpers for mapping, filtering, flattening, batching, and reducing their elements.
Package iterators provides generic iterators over slices and receive streams, with helpers for mapping, filtering, flattening, batching, and reducing their elements.
common/utils/collections/maps
Package maps provides generic helpers for copying and inverting maps, extracting keys and values, and selecting entries by key or searching by value.
Package maps provides generic helpers for copying and inverting maps, extracting keys and values, and selecting entries by key or searching by value.
common/utils/collections/sets
Package sets provides mutable sets of unique comparable values, with membership checks, set difference, and conversion to slices.
Package sets provides mutable sets of unique comparable values, with membership checks, set difference, and conversion to slices.
common/utils/collections/slices
Package slices provides generic helpers for removing elements, computing differences and intersections, and repeating values.
Package slices provides generic helpers for removing elements, computing differences and intersections, and repeating values.
common/utils/deferred
Package deferred holds a value that is supplied after the service owning it has been constructed, and keeps readers from seeing it before it exists.
Package deferred holds a value that is supplied after the service owning it has been constructed, and keeps readers from seeing it before it exists.
common/utils/dig
Package utils provides helpers for registering constructors and visualizing dependency graphs in dig containers.
Package utils provides helpers for registering constructors and visualizing dependency graphs in dig containers.
common/utils/lazy
Package lazy provides values that are produced only when first requested.
Package lazy provides values that are produced only when first requested.
fabric/core/generic/chaincode/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/core/generic/config/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/core/generic/ledger/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/core/generic/msp/driver/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/core/generic/rwset/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/core/generic/transaction/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/core/protoutil/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabric/services/endorser/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabricx/core/channel/config/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabricx/core/committer/config/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabricx/core/committer/queryservice/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabricx/core/finality/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabricx/core/ledger/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
fabricx/core/transaction/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/endpoint/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/events/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/id/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/metrics/connstate
Package connstate exports the connection state of FSC's long-lived client connections (orderer, delivery, Fabric-x notification and query services, database) as the fsc_connection_* metric families, all labeled by network, channel, component, and endpoint.
Package connstate exports the connection state of FSC's long-lived client connections (orderer, delivery, Fabric-x notification and query services, database) as the fsc_connection_* metric families, all labeled by network, channel, component, and endpoint.
view/services/metrics/connstate/connstatetest
Package connstatetest records the connection states a component reports through connstate, so tests can assert on them without a Prometheus registry.
Package connstatetest records the connection states a component reports through connstate, so tests can assert on them without a Prometheus registry.
view/services/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/sig/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/storage/driver/common/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/storage/driver/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/storage/driver/multiplexed/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/storage/driver/notifier/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/storage/kvs/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/view/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/view/p2p/mock
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/view/web
Package web is the HTTP binding of the view service (see protos.ProcessCommandHTTPPath).
Package web is the HTTP binding of the view service (see protos.ProcessCommandHTTPPath).
view/services/web/client
Package client dials WebSocket connections for FSC's WebSocket-based transports: the p2p WebSocket host and the view service's HTTP binding.
Package client dials WebSocket connections for FSC's WebSocket-based transports: the p2p WebSocket host and the view service's HTTP binding.
view/services/web/server/middleware/fakes
Code generated by counterfeiter.
Code generated by counterfeiter.
view/services/web/wsproto
Package wsproto frames protobuf messages on a WebSocket: one protojson-encoded text frame per message.
Package wsproto frames protobuf messages on a WebSocket: one protojson-encoded text frame per message.

Jump to

Keyboard shortcuts

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