Skip to content

Add Fabric-X Single-Container Devnet Environment - #798

Open
HarK-github wants to merge 15 commits into
hyperledger-labs:mainfrom
HarK-github:fabx_staticfeats
Open

Add Fabric-X Single-Container Devnet Environment#798
HarK-github wants to merge 15 commits into
hyperledger-labs:mainfrom
HarK-github:fabx_staticfeats

Conversation

@HarK-github

@HarK-github HarK-github commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

Description:

This pull request introduces the Fabric-X development environment to Fablo. It establishes a dynamic, Docker-based distributed Byzantine Fault Tolerant (BFT) orchestration system that allows developers to generate and provision fully containerized Fabric-X topologies, complete with multi-node consensus and independent microservice routing.

Changes:

  • Fabric-X Integration: Engineered the core generation engine and templating architecture to support Fabric-X network definitions within Fablo, introducing:

    • Cryptographic definitions (crypto-config.yaml)
    • Channel profiles tailored for ARMA orderer types (configtx.yaml)
    • ARMA distributed shared configurations (shared_config.yaml)
    • Client tool environment settings (fxconfig.yaml)
    • Dynamic microservice configurations for the BFT cluster and committers (config/assembler.yaml, config/batcher.yaml, config/consenter.yaml, config/router.yaml, etc.)
  • Docker Orchestration: Docker Compose provisioning system that dynamically generates and orchestrates 9 core microservice containers (including router, batcher, consenter, and assembler) per BFT node across multi-organization deployments.

  • Makefile Automation: Makefile workflow (make init, make start) for cryptographic generation, genesis block creation, and the Docker container lifecycle.

  • State Lifecycle Management: Built the cryptographic mounting process within the Docker containers, utilizing a secondary alpine step to prevent directory-mount panics and ledger state consistency issues.

  • Consensus Configuration: Created parameterized crypto-config, configtx, and shared_config templates to dynamically support N-party orderer devnets based on the user's topology configuration.

Closes: #789

Screenshots

Screenshot Screenshot
image image

@MaryamArif7

Copy link
Copy Markdown
Contributor

@HarK-github
src/setup-docker/index.ts(74,24): error TS2339: Property 'fabricx' does not exist on type 'FabloConfigExtended'.

Noticed this uses "fabricx" instead of "fabric-x" which is what's already in the schema and my #788 checks.

@HarK-github
HarK-github marked this pull request as draft July 30, 2026 06:53
@HarK-github
HarK-github marked this pull request as ready for review July 31, 2026 04:46
- Refactored index.ts to dynamically render 9 microservice configs per BFT node
- Replaced monolithic docker-compose with multi-org templated compose
- Fixed client-tls-ca.pem directory mount panic via alpine find command
- Removed legacy static mock-orderer and sidecar configurations

Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
Comment thread src/setup-docker/templates/fabric-x/compose.test-committer.yaml.ejs Outdated
Comment thread src/setup-docker/templates/fabric-x/compose.test-committer.yaml.ejs Outdated
Comment thread src/setup-docker/templates/fabric-x/compose.test-committer.yaml.ejs Outdated
Comment thread src/setup-docker/templates/fabric-x/.gitignore Outdated
Comment thread src/setup-docker/templates/fabric-x/fxconfig.yaml.ejs Outdated
Comment thread src/setup-docker/templates/fabric-x/Makefile.ejs Outdated
@HarK-github
HarK-github requested a review from umegbewe August 3, 2026 14:05
Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
…templates

Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
…r-compose.yaml

Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
…xtures

Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
…le) and clean stale comments from docker-compose.yaml

Signed-off-by: Harshit Kandpal <kandpalhar@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants