• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

hyperledger-labs / fabric-smart-client
71%

Build:
DEFAULT BRANCH: main
Repo Added 19 Feb 2026 01:34AM UTC
Token 2ZD9nBTBJg6N8NJjhbgg4nAhR8SewdDLj regen
Build 985 Last
Files 539
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH main
branch: main
CHANGE BRANCH
x
Reset
Sync Branches
  • main
  • 1183-fabricx-support-for-channel-write-policy
  • 1195-fabricx-support-for-sidecar-ledger-api
  • 1202-fabricx-support-for-getconfigtransaction
  • 1339_Join_typo
  • 1343-bugconfig-service-yaml-tags-are-not-respected
  • 1389-choreview-service-runner-for-initiateview
  • 885-grpc-error-messages
  • 967-choreview_service-refactoring-and-clenaup
  • ISSUE-1404
  • ISSUE-1405
  • SA_1211
  • SA_1214
  • SA_1243
  • SA_1244
  • SA_1357
  • SA_1392
  • SA_1394
  • SA_1469
  • SA_doc_node_bench
  • SA_multiendorser
  • SA_new_itest
  • SA_test_1165
  • SA_test_1168
  • SA_transaction_tests
  • SA_unflake_fabricx_iou_test
  • Soumya8898/native-histogram-support
  • Soumya8898/update_github_actions
  • cleanup/replace-fsouza-with-moby-client
  • codex/issue-1358-x509-functional-verification
  • committer-mtls
  • committer-v0.1.8
  • committer-v0.1.9
  • common-utils
  • community-call
  • contrib-bots
  • contrib-docs
  • contributor-process
  • coverage-pkg-utils-proto
  • coverage-platform-common-utils
  • coverage-platform-common-utils-cache
  • coverage-platform-common-utils-lazy
  • coverage-platform-fabric-core-generic-finality
  • coverage-platform-fabric-core-generic-ledger
  • coveralls.io
  • dependabot/go_modules/github.com/go-jose/go-jose/v4-4.1.4
  • dependabot/go_modules/github.com/ipld/go-ipld-prime-0.23.0
  • dependabot/go_modules/github.com/jackc/pgx/v5-5.9.0
  • dependabot/go_modules/github.com/jackc/pgx/v5-5.9.2
  • dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.40.0
  • dependabot/go_modules/go.opentelemetry.io/otel/sdk-1.43.0
  • dependabot/go_modules/google.golang.org/grpc-1.79.3
  • dependabot/go_modules/platform/fabric/services/state/cc/query/google.golang.org/grpc-1.79.3
  • dependabot/go_modules/tools/google.golang.org/grpc-1.79.3
  • dependabot/pip/integration/benchmark/plots/pillow-12.2.0
  • docs/database-layout
  • docs/runtime-db-access
  • endpoint-service-no-ip-resolution
  • f-comm-rework
  • f-config-service-update
  • f-endpoint-service-improvements
  • f-fabricx-sidecar-configuration
  • f-mtls-fix-config
  • fabric-x-dep
  • fabric-x-membership
  • fabricx-committer-1.0.0-alpha
  • fabricx-v1.0.0
  • feat/copy-query-builder-to-fabric-vault
  • feat/vaultstore-squirrel-migration
  • feature/add-grpc-p2p-host
  • fix-cached-identity-signing
  • fix-core-yaml-validation-errors
  • fix-discovery-data-race
  • fix-flaky-parallel-tests
  • fix-flaky-query-test-1250
  • fix-grpc-test-flakiness-1263
  • fix-grpc-tls-merge
  • fix-issue-1374-msp-flaky-tests
  • fix-membership-nil-panic
  • fix-opt-in-hsm
  • fix/bft-broadcast-discard-on-success
  • fix/clientconn-cache-per-network
  • fix/config-service-getint-prefix-wrapper
  • fix/fabricx-arma-broadcaster-alias
  • fix/fabricx-proposal-response-nil-guard
  • fix/flaky-service-isme-test
  • fix/squirrel-migration
  • fix/squirrel-migration-auditinfo
  • fix/squirrel-migration-simplekeydata-unversioned
  • flaky-tests
  • go-kit
  • go.yaml
  • grpc-validate-tlscerthash
  • issue-1093-idemix-curves
  • issue-1233-msp-generic-coverage
  • issue-1233-msp-generic-x509-coverage
  • issue-1233-msp-mgmt-coverage
  • issue-1233-msp-testtools-coverage
  • issue-1233-msp-tlsgen-coverage
  • issue-1233-node-start-profile-coverage
  • issue-1284-fix-flaky-postgres-test
  • issue-1295-fabricx-tls
  • issue-1368-fix-local-ip-extraction
  • issue-1425-view-tests
  • issue-1429-endorser-tests
  • issue-artifactsgen-fabricx
  • issue-templates
  • libp2p
  • linter
  • metric-catalog
  • osc/issue-1324-length-race
  • otel-log-v0.19
  • pkg-tests
  • refactor-signal-handling
  • somesh/issue-1036-idemix-provider-memory
  • somesh/issue-1093-idemix-curve-config
  • somesh/issue-1112-endpoint-tls-enabled
  • somesh/issue-1112-fabric-client-tls
  • somesh/issue-1112-metrics-server
  • somesh/issue-1112-ordering-tls
  • somesh/issue-1112-servername-override
  • somesh/issue-1112-web-tls-naming
  • somesh/issue-1140-fabricx-cached-endorser-identities
  • somesh/issue-1145-1295-runnable
  • somesh/issue-1146-fabricx-cached-envelope-identities
  • somesh/issue-1228-get-namespace-policies
  • somesh/issue-1228-namespace-policies
  • somesh/issue-1233-id-x509-tests
  • somesh/issue-1277-docs-restructure
  • somesh/issue-1289-utility-tests
  • somesh/issue-1290-testing-docs
  • somesh/issue-1297-tls-config
  • somesh/issue-1302-tracing-success
  • somesh/issue-1353-contribution-process
  • somesh/issue-1355-contribution-prototype
  • somesh/issue-1374-x509-flaky
  • somesh/issue-1414-readme-wording
  • somesh/issue-1437-events-tests
  • somesh/issue-1443-go1263
  • somesh/issue-183-node-panic-cleanup
  • somesh/issue-183-view-api-errors
  • somesh/issue-209-config-validate
  • somesh/issue-209-config-validator
  • somesh/issue-474-query-peer-failover
  • somesh/issue-719-recipient-node
  • somesh/issue-797-comm-bench
  • somesh/issue-802-fabricx-dig-register-move
  • test/comm-session-unit-tests
  • test/core-generic-endpoint-coverage
  • test/core-generic-fabricutils-coverage
  • test/core-generic-rwset-coverage-1441
  • test/memory-driver-unit-tests
  • test/rwset-coverage
  • test/services-state-coverage-1431
  • test/storage-service-unit-tests
  • test/tracing-unit-tests-1424
  • test/view-services-id-coverage
  • testify-cleanup
  • thelper
  • tmp/issue-1437-clean
  • tparallel
  • update-golangci-v2.11.4
  • update-linter
  • upstream-pr/bft-channel-slot
  • upstream/fabricx-endpoint-parser
  • view-api-docs
  • view-ctx

29 May 2026 11:17AM UTC coverage: 71.233% (+0.04%) from 71.197%
26634201560

push

github

web-flow
perf(bft): per-orderer channel-slot pool to fix semaphore mutex starvation (#1490)

BFTBroadcaster.getConnection serialized every caller through the single
sync.Mutex inside a shared golang.org/x/sync/semaphore.Weighted, and spun
on a 1s-timeout Acquire retry loop when the pool was empty. Under high
broadcast concurrency this collapses into mutex starvation: every
broadcaster contends on the one semaphore regardless of which orderer it
dials, and a caller whose context is cancelled mid-acquire busy-spins
because the loop has no ctx.Done() exit.

Replace the global semaphore with per-orderer state:
  - a fixed-capacity channel of slot tokens that bounds connections per
    orderer without a mutex shared across orderers, and
  - a buffered pool of idle *Connection for reuse.

getConnection becomes a three-stage, non-spinning acquire (try pool, try
slot, then block on a select over pool / slot / ctx.Done()). SendAndRecv
wraps the send+recv round-trip in a derived context so a hung Recv is
cancelled and torn down instead of leaking.

Tests: adapt the partial-failure discard test to the per-orderer slot
accounting, and add a regression test that getConnection returns promptly
on a cancelled context.

Observed in our deployment (c=1000 stress): submit p99 6.18s -> 1.59s,
678 TPS sustained.

Signed-off-by: Evan <evanyan@sign.global>

84 of 118 new or added lines in 2 files covered. (71.19%)

11 existing lines in 4 files now uncovered.

28425 of 39904 relevant lines covered (71.23%)

2515.62 hits per line

Relevant lines Covered
Build:
Build:
39904 RELEVANT LINES 28425 COVERED LINES
2515.62 HITS PER LINE
Source Files on main
  • Tree
  • List 539
  • Changed 20
  • Source Changed 2
  • Coverage Changed 20
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
26634201560 main perf(bft): per-orderer channel-slot pool to fix semaphore mutex starvation (#1490) BFTBroadcaster.getConnection serialized every caller through the single sync.Mutex inside a shared golang.org/x/sync/semaphore.Weighted, and spun on a 1s-timeout A... push 29 May 2026 11:25AM UTC web-flow github
71.23
26579103782 main fix(fabric/ordering): always discard failed connections in BFT broadcast (#1485) * fix(fabric/ordering): always discard failed connections in BFT broadcast Broadcast() only ran its usedConnections cleanup on the overall-failure path. When a broa... push 28 May 2026 02:04PM UTC web-flow github
71.2
26570305140 main Enable TLS for Fabric-X Committer Container (#1298) * refactor(fabricx)!: Enable TLS for committer all-in-one container in fabric-x integration tests Signed-off-by: Shashank <yshashank959@gmail.com> Signed-off-by: Marcus Brandenburger <bur@zuri... push 28 May 2026 11:00AM UTC web-flow github
70.95
26521406930 main fix(grpc): cache *grpc.ClientConn per (service, network) in ClientProvider (#1483) * fix(grpc): cache *grpc.ClientConn per (service, network) in ClientProvider ClientProvider.NotificationServiceClient and QueryServiceClient called grpc.NewClient... push 27 May 2026 03:43PM UTC web-flow github pending completion  
26439324389 main test: more view service tests (#1452) Signed-off-by: Shashank <yshashank959@gmail.com> push 26 May 2026 07:53AM UTC web-flow github
70.95
26259950622 main test: add rwset composite key coverage (#1457) Signed-off-by: Ayush3941 <ayushkgaur1@gmail.com> push 21 May 2026 11:57PM UTC web-flow github
70.4
26222550227 main refactor: replace viper with koanf (#1407) - replace viper with koanf - adopt t.TempDir in fsccli tests - fix fsccli docs - fix fsccli validate flags Signed-off-by: Shashank <yshashank959@gmail.com> Signed-off-by: Marcus Brandenburger <bur@zuric... push 21 May 2026 11:20AM UTC web-flow github
70.36
26214073710 main test: add unit coverage for fabric services state (#1466) Signed-off-by: Ayush3941 <ayushkgaur1@gmail.com> push 21 May 2026 08:20AM UTC web-flow github
70.36
26213240779 main test: address reviewer comments on listener manager coverage (#1455) Signed-off-by: Somesh Mal <malsomesh9@gmail.com> push 21 May 2026 08:02AM UTC web-flow github
69.17
26161902229 main fix(msp): resolve flaky TestService_IsMe by isolating shared mock state (#1468) * fix(msp): resolve flaky TestService_IsMe by isolating shared mock state Signed-off-by: Siddhi Khandelwal <siddhi.200727@gmail.com> push 20 May 2026 12:21PM UTC web-flow github
68.72
See All Builds (713)

Badge your Repo: fabric-smart-client

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

Refresh
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc