From 127fbb8bace0a6aa1fb4ec2e4f797c213d61137b Mon Sep 17 00:00:00 2001 From: MaryamArif7 Date: Mon, 7 Sep 2026 13:09:27 +0500 Subject: [PATCH 1/5] fix: Making the Fabric-X channel configurable Signed-off-by: MaryamArif7 --- src/setup-docker/templates/fabric-x/configtx.yaml | 2 +- src/setup-docker/templates/fabric-x/fxconfig.yaml | 2 +- src/setup-docker/templates/fabric-x/scripts/base-functions.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/setup-docker/templates/fabric-x/configtx.yaml b/src/setup-docker/templates/fabric-x/configtx.yaml index 319bc43e..534a74d2 100644 --- a/src/setup-docker/templates/fabric-x/configtx.yaml +++ b/src/setup-docker/templates/fabric-x/configtx.yaml @@ -149,7 +149,7 @@ Channel: &ChannelDefaults <<: *ChannelCapabilities Profiles: - OrgsChannel: + <%= channels[0].profileName %>: <<: *ChannelDefaults Orderer: <<: *OrdererDefaults diff --git a/src/setup-docker/templates/fabric-x/fxconfig.yaml b/src/setup-docker/templates/fabric-x/fxconfig.yaml index 86c92024..1df4532a 100644 --- a/src/setup-docker/templates/fabric-x/fxconfig.yaml +++ b/src/setup-docker/templates/fabric-x/fxconfig.yaml @@ -7,7 +7,7 @@ msp: orderer: address: orderer-router:7050 - channel: mychannel + channel: <%= channels[0].name %> tls: enabled: true clientCert: /tls/server.crt diff --git a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh index a8e9cf57..7e1b3c82 100644 --- a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh +++ b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh @@ -58,7 +58,7 @@ generateArtifacts() { docker run --rm --user "$(id -u):$(id -g)" \ -v "$FABRIC_X_ROOT:/config" \ "$TOOLS_IMAGE" \ - configtxgen --channelID mychannel --profile OrgsChannel \ + configtxgen --channelID <%= channels[0].name %> --profile <%= channels[0].profileName %> \\ --outputBlock /config/crypto/config-block.pb.bin \ --configPath /config } From 53eebd8324f37c0e0ef7482c1880d0d8690a30f4 Mon Sep 17 00:00:00 2001 From: MaryamArif7 Date: Tue, 8 Sep 2026 07:41:48 +0500 Subject: [PATCH 2/5] fix:minor backslash fix Signed-off-by: MaryamArif7 --- src/setup-docker/templates/fabric-x/scripts/base-functions.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh index 7e1b3c82..ee90cb20 100644 --- a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh +++ b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh @@ -58,7 +58,7 @@ generateArtifacts() { docker run --rm --user "$(id -u):$(id -g)" \ -v "$FABRIC_X_ROOT:/config" \ "$TOOLS_IMAGE" \ - configtxgen --channelID <%= channels[0].name %> --profile <%= channels[0].profileName %> \\ + configtxgen --channelID <%= channels[0].name %> --profile <%= channels[0].profileName %> \ --outputBlock /config/crypto/config-block.pb.bin \ --configPath /config } From 0bd4a084243e1ef89d1be00f72bcbda89c4e61b3 Mon Sep 17 00:00:00 2001 From: MaryamArif7 Date: Wed, 16 Sep 2026 19:13:30 +0500 Subject: [PATCH 3/5] modified channle name in FabricXDockerWriter Signed-off-by: MaryamArif7 --- src/setup-docker/fabricXDockerWriter.ts | 17 ++++++++++++++--- .../templates/fabric-x/configtx.yaml | 2 +- .../templates/fabric-x/fxconfig.yaml | 2 +- .../fabric-x/scripts/base-functions.sh | 2 +- src/types/FabloConfigExtended.ts | 4 ++++ 5 files changed, 21 insertions(+), 6 deletions(-) diff --git a/src/setup-docker/fabricXDockerWriter.ts b/src/setup-docker/fabricXDockerWriter.ts index dcb7402a..2a1b1381 100644 --- a/src/setup-docker/fabricXDockerWriter.ts +++ b/src/setup-docker/fabricXDockerWriter.ts @@ -1,15 +1,26 @@ -import { FabloConfigExtended } from "../types/FabloConfigExtended"; +import { FabloConfigExtended, FabricXTemplateModel } from "../types/FabloConfigExtended"; import { renderTemplate, getTemplatePath, getDestinationPath } from "../utils/templateUtils"; import * as fs from "fs-extra"; import * as path from "path"; + +export const getFabricXTemplateModel = (configExtended: FabloConfigExtended): FabricXTemplateModel => { + const [channel] = configExtended.channels; + + return { + channelName: channel.name, + channelProfileName: channel.profileName, + }; +}; + export class FabricXDockerWriter { + constructor(private templatesDir: string, private outputDir: string, private log: (msg: string) => void) {} public async write(configExtended: FabloConfigExtended): Promise { this.log("Generating Fabric-X network files..."); - - const data = configExtended as unknown as Record; + const fabricX = getFabricXTemplateModel(configExtended); + const data = { ...configExtended, fabricX } as unknown as Record; await this.renderTemplateFile("fabric-x-docker.sh", data); await this.renderTemplateDirectory("fabric-x", data); diff --git a/src/setup-docker/templates/fabric-x/configtx.yaml b/src/setup-docker/templates/fabric-x/configtx.yaml index 534a74d2..c9a7abcb 100644 --- a/src/setup-docker/templates/fabric-x/configtx.yaml +++ b/src/setup-docker/templates/fabric-x/configtx.yaml @@ -149,7 +149,7 @@ Channel: &ChannelDefaults <<: *ChannelCapabilities Profiles: - <%= channels[0].profileName %>: + <%- fabricX.channelProfileName %>: <<: *ChannelDefaults Orderer: <<: *OrdererDefaults diff --git a/src/setup-docker/templates/fabric-x/fxconfig.yaml b/src/setup-docker/templates/fabric-x/fxconfig.yaml index 1df4532a..26f806ec 100644 --- a/src/setup-docker/templates/fabric-x/fxconfig.yaml +++ b/src/setup-docker/templates/fabric-x/fxconfig.yaml @@ -7,7 +7,7 @@ msp: orderer: address: orderer-router:7050 - channel: <%= channels[0].name %> + channel: <%- fabricX.channelName %> tls: enabled: true clientCert: /tls/server.crt diff --git a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh index cf55ac2b..8fceb053 100644 --- a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh +++ b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh @@ -58,7 +58,7 @@ generateArtifacts() { docker run --rm --user "$(id -u):$(id -g)" \ -v "$FABRIC_X_ROOT:/config" \ "$TOOLS_IMAGE" \ - configtxgen --channelID <%= channels[0].name %> --profile <%= channels[0].profileName %> \ + configtxgen --channelID <%- fabricX.channelName %> --profile <%- fabricX.channelProfileName %> \ --outputBlock /config/crypto/config-block.pb.bin \ --configPath /config diff --git a/src/types/FabloConfigExtended.ts b/src/types/FabloConfigExtended.ts index ee2ea36e..410b36d4 100644 --- a/src/types/FabloConfigExtended.ts +++ b/src/types/FabloConfigExtended.ts @@ -209,3 +209,7 @@ export interface FabloConfigExtended { chaincodes: ChaincodeConfig[]; hooks: HooksConfig; } +export interface FabricXTemplateModel { + channelName: string; + channelProfileName: string; +} \ No newline at end of file From 71ddf5befb0961174a22793d58c645668ba16724 Mon Sep 17 00:00:00 2001 From: MaryamArif7 Date: Fri, 18 Sep 2026 03:33:31 +0500 Subject: [PATCH 4/5] channel config Signed-off-by: MaryamArif7 --- src/setup-docker/fabricXDockerWriter.ts | 11 ++++++++--- .../templates/fabric-x/scripts/base-functions.sh | 2 +- src/types/FabloConfigExtended.ts | 4 ---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/setup-docker/fabricXDockerWriter.ts b/src/setup-docker/fabricXDockerWriter.ts index 2a1b1381..e4acac73 100644 --- a/src/setup-docker/fabricXDockerWriter.ts +++ b/src/setup-docker/fabricXDockerWriter.ts @@ -1,12 +1,17 @@ -import { FabloConfigExtended, FabricXTemplateModel } from "../types/FabloConfigExtended"; +import { FabloConfigExtended } from "../types/FabloConfigExtended"; import { renderTemplate, getTemplatePath, getDestinationPath } from "../utils/templateUtils"; import * as fs from "fs-extra"; import * as path from "path"; - +export interface FabricXTemplateModel { + channelName: string; + channelProfileName: string; +} export const getFabricXTemplateModel = (configExtended: FabloConfigExtended): FabricXTemplateModel => { const [channel] = configExtended.channels; - + if (!channel) { + throw new Error("Fabric-X generation requires exactly one channel."); + } return { channelName: channel.name, channelProfileName: channel.profileName, diff --git a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh index 8fceb053..7334d0b2 100644 --- a/src/setup-docker/templates/fabric-x/scripts/base-functions.sh +++ b/src/setup-docker/templates/fabric-x/scripts/base-functions.sh @@ -58,7 +58,7 @@ generateArtifacts() { docker run --rm --user "$(id -u):$(id -g)" \ -v "$FABRIC_X_ROOT:/config" \ "$TOOLS_IMAGE" \ - configtxgen --channelID <%- fabricX.channelName %> --profile <%- fabricX.channelProfileName %> \ + configtxgen --channelID <%- fabricX.channelName %> --profile <%- fabricX.channelProfileName %> \ --outputBlock /config/crypto/config-block.pb.bin \ --configPath /config diff --git a/src/types/FabloConfigExtended.ts b/src/types/FabloConfigExtended.ts index 410b36d4..ee2ea36e 100644 --- a/src/types/FabloConfigExtended.ts +++ b/src/types/FabloConfigExtended.ts @@ -209,7 +209,3 @@ export interface FabloConfigExtended { chaincodes: ChaincodeConfig[]; hooks: HooksConfig; } -export interface FabricXTemplateModel { - channelName: string; - channelProfileName: string; -} \ No newline at end of file From e33514ddde392d99f23b704c124b0c9ea6c5be79 Mon Sep 17 00:00:00 2001 From: Great Date: Fri, 18 Sep 2026 13:34:22 +0100 Subject: [PATCH 5/5] Apply suggestion from @umegbewe Signed-off-by: Great --- src/setup-docker/fabricXDockerWriter.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/setup-docker/fabricXDockerWriter.ts b/src/setup-docker/fabricXDockerWriter.ts index e4acac73..0b8e6f09 100644 --- a/src/setup-docker/fabricXDockerWriter.ts +++ b/src/setup-docker/fabricXDockerWriter.ts @@ -7,6 +7,7 @@ export interface FabricXTemplateModel { channelName: string; channelProfileName: string; } + export const getFabricXTemplateModel = (configExtended: FabloConfigExtended): FabricXTemplateModel => { const [channel] = configExtended.channels; if (!channel) {