Skip to content

Conversation

@dpereowei
Copy link
Contributor

@dpereowei dpereowei commented May 10, 2025

#429 link 429

This PR supports installing and running chaincode from a Docker image (CCaaS mode), rather than a local directory. It’s useful for teams who prefer building and deploying chaincode separately.

  • lang: "ccaas" is now supported in chaincode definitions
  • When lang is ccaas:
    • image and port are required
    • directory is optional
  • Lifecycle scripts were updated to handle packaging without source
  • Docker Compose now includes services for chaincodes running in CCaaS mode

Example config

{
    "name": "chaincode1",
    "version": "0.0.1",
    "lang": "ccaas",
    "channel": "my-channel1",
    "image": "realartisan/chaincode-kv-node:latest",
    "port": 7052
}


@dzikowski
Copy link
Contributor

@dpereowei that looks good, have you tested it locally? It would be good to make it as a part of one of pipelines. I think test-04-snapshot.sh is a good fit. The test can be reworked in a wollowing way:

  1. The config that is used there (fablo-config-hlf2-1org-1chaincode-raft-explorer.json), could have a chaincode docker image (ccaas) instead from a chaincode from source
  2. The test can build the chaincode docker image before starting the network

This test in CI would allow us to ensure it actually works, and how it behaves when tls is enabled (currently there is hardcoded false in chaincodePackage function).

Also an additional comment - I see you create the chaincode archive in /tmp. I think it's good to keep it in the current directory, or maybe in <pwd>/chaincodes subdirectory.

@dpereowei
Copy link
Contributor Author

Hi @dzikowski, I appreciate your feedback and I will get to working on the tests, thanks

@dpereowei dpereowei force-pushed the fix-install-chaincode-from-docker branch from b6d5793 to f459423 Compare June 6, 2025 15:49
const networkConfig = parseFabloConfig(this.fs.read(this.options.fabloConfigPath));
this._validateFabricVersion(networkConfig.global);
this._validateJsonSchema(networkConfig);
// this._validateJsonSchema(networkConfig);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that's the line that fails tests in CI

@umegbewe
Copy link
Contributor

@dpereowei please squash these commits

dzikowski and others added 21 commits June 20, 2025 12:57
… is lower than 2.5

Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
…the versions for fabric shim

Signed-off-by: Sanket <telisanket2002@gmail.com>

added the snapshots

Signed-off-by: Sanket <telisanket2002@gmail.com>

suggest recommended node

Signed-off-by: Sanket <telisanket2002@gmail.com>

reafactored the code to avoid the breaking due to import of v1.4

added the snapshots

fixed the function, now it is returning the proper required version

Signed-off-by: Sanket Teli <telisanket2002@gmail.com>

Update src/setup-docker/templates/fabric-docker/scripts/chaincode-functions-v2.sh

Co-authored-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Sanket Teli <104385297+Sanket-0510@users.noreply.github.com>

changes the directory location

Signed-off-by: Sanket Teli <telisanket2002@gmail.com>

added snapshots

Signed-off-by: Sanket Teli <telisanket2002@gmail.com>
Signed-off-by: Sanket Teli <telisanket2002@gmail.com>
Signed-off-by: Sanket Teli <telisanket2002@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Jakub Dzikowski <jakub.t.dzikowski@gmail.com>
Signed-off-by: Sanket Teli <telisanket2002@gmail.com>
Signed-off-by: Sanket Teli <telisanket2002@gmail.com>
dpereowei added 22 commits June 20, 2025 13:42
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-update test suites for code changes

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-update test suites for code changes

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-update test suites for code changes

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

Fix-review comments and file changes

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

Fix-updated test suites for new code changes

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-validate json schema

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-re-enable explorer test and update changelog

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-add .DS_STORE to gitignore

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

fix-increase validation warning count

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

generate certs using openssl for cc container

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

feat-generate-tls-certs-for-ccaass-container

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>

feat-prepare-main-for-ccaas-tls-issue

Signed-off-by: Pereowei Daniel <iwenyadaniel12@gmail.com>
@dpereowei dpereowei force-pushed the fix-install-chaincode-from-docker branch from 2c9a4d0 to fe6bdcb Compare June 20, 2025 22:43
Signed-off-by: Pereowei Daniel <82245725+dpereowei@users.noreply.github.com>
@dpereowei dpereowei closed this Jun 20, 2025
@dpereowei dpereowei deleted the fix-install-chaincode-from-docker branch June 20, 2025 23:24
@dpereowei dpereowei restored the fix-install-chaincode-from-docker branch June 21, 2025 15:32
@dpereowei dpereowei reopened this Jun 21, 2025
@dzikowski
Copy link
Contributor

handled in #594

@dzikowski dzikowski closed this Aug 22, 2025
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.

9 participants