Hyperledger Cactus is a new approach to the blockchain interoperability problem
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
Sandeep Nishad 7abf3dd009 chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
.devcontainer refactor(examples): include sample apps in monorepo build 11 months ago
.github chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
.husky chore(deps): project-wide upgrade August, 2021 2 years ago
.vscode docs(vscode): add GitHub to recommended extensions list 7 months ago
.yarn/releases fix(security): upgrade to yarn > 1.22.0 - CVE-2019-10773, CVE-2020-8131 1 year ago
docs docs(htlc-coordinator): added the flow diagram 1 year ago
examples chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
extensions chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
images refactor: update modules and links to hyperledger/cacti/weaver 3 months ago
packages chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
packages-python build(deps): bump cryptography 3 months ago
tools chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
typings fix(security): address CVE-2021-23358 1 year ago
weaver chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
whitepaper refactor(examples): include sample apps in monorepo build 11 months ago
.cspell.json feat(cactus-plugin-persistence-ethereum): add new persistence plugin 2 months ago
.dcilintignore refactor(weaver): prefix cacti to all weaver packages, set publish target to cacti 1 month ago
.dockerignore docs(examples): migrate containers to ubuntu-20.04 Docker-in-Docker 2 years ago
.eslintignore fix: cannot read config eslint-config-prettier/@typescript-eslint.js 3 months ago
.eslintrc.js build: use tsc project references, npm v7 workspaces #312 #973 2 years ago
.gitattributes build(openapi): generate kotlin client 5 months ago
.gitguardian.yaml chore: adding custom gitguardian check 2 months ago
.gitignore test(connector-fabric): fix v2-2-x/deploy-lock-asset.test.ts 2 months ago
.lintstagedrc.json build: use tsc project references, npm v7 workspaces #312 #973 2 years ago
.npmignore build: use tsc project references, npm v7 workspaces #312 #973 2 years ago
.nuclei-config.yaml ci: add fuzzer tests for our APIs 1 year ago
.prettierignore feat(plugin-keychain-memory-wasm): add WebAssmebly PoC 2 years ago
.prettierrc.js build(deps): migrate to ESLint+Prettier 2 years ago
.readthedocs.yaml chore(ci): update actions 1 month ago
.taprc test(test-tooling): jestify containers.test.ts 6 months ago
.yarnrc fix(security): upgrade to yarn > 1.22.0 - CVE-2019-10773, CVE-2020-8131 1 year ago
BUILD.md build(yarn): migrate to CorePack 2 months ago
CHANGELOG.md chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
CODEOWNERS docs(maintainers/codeowners): update Sandeep's GH user to sandeepnRES 3 months ago
CODE_OF_CONDUCT.md fix: repo-linter error - missing code of conduct file #711 2 years ago
CONTRIBUTING.md test(get-consortium-jws): jestify get consortium jws endpoint test 11 months ago
FAQ.md docs(faq): add instructions to install in Apple M1 processor (ARM-based) 1 year ago
GOVERNANCE.md docs(readthedocs): readthedocs documentation 2 years ago
LICENSE Initial commit 4 years ago
MAINTAINERS.md refactor: update modules and links to hyperledger/cacti/weaver 3 months ago
README-cactus.md docs(readme): cactus & weaver => cacti - new README and illustrations 4 months ago
README.md refactor: update modules and links to hyperledger/cacti/weaver 3 months ago
ROADMAP.md docs(readme): cactus & weaver => cacti - new README and illustrations 4 months ago
SECURITY.md docs: add SECURITY.md file to comply with the HL repo linter 2 years ago
changelog.config.js style: remove confusing emojis from changelog.config.js 3 years ago
commitlint.config.js chore(commitlint): husky to run commitlint in pre-commit hooks 3 years ago
jest.config.js test(test-tooling): jestify containers.test.ts 6 months ago
karma.conf.js feat(common): KeyConverter class to and from PEM/hex/buffe 3 years ago
lerna.json chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
package.json chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago
tsconfig.base.json refactor: dangling package.json inside packages directory #682 2 years ago
tsconfig.json feat(cactus-plugin-persistence-ethereum): add new persistence plugin 2 months ago
webpack.config.js build: use tsc project references, npm v7 workspaces #312 #973 2 years ago
webpack.dev.node.js build: use tsc project references, npm v7 workspaces #312 #973 2 years ago
webpack.dev.web.js fix(examples): front-end packages missing browserify polyfills #1224 2 years ago
webpack.prod.node.js feat(connector-iroha): adds connector plugin 2 years ago
webpack.prod.web.js fix(examples): front-end packages missing browserify polyfills #1224 2 years ago
yarn.lock chore(release): publish v2.0.0-alpha-prerelease 4 weeks ago

README.md

Cacti Logo Color Cacti Logo Color

Hyperledger Cacti

Hyperledger Cacti is a multi-faceted pluggable interoperability framework to link networks built on heterogeneous distributed ledger and blockchain technologies and to run transactions spanning multiple networks. This project is the result of a merger of the Weaver Lab project with Hyperledger Cactus, which was subsequently renamed to Cacti. It draws on the cutting-edge technological features of both constituent projects to provide a common general purpose platform and toolkit for DLT interoperability. This was the first-of-a-kind merger of two systems, architecture and code bases, to create a new project, under the Hyperledger Foundation. See this Hyperledger Foundation blog article for more information about the merger.

Cacti is an Incubation Hyperledger project, inheriting that status from Hyperledger Cactus. Information on the different stages of a Hyperledger project and graduation criteria can be found in the Hyperledger Project Incubation Exit Criteria document.

Scope of Project

The existence of several blockchain and distributed ledger technologies of different flavors in the market as well as networks of varying scopes and sizes built on them necessitates the need for interoperability and integration, lest we end up with a fragmented ecosystem where digital assets and the workfows (often contracts) governing them remain isolated in silos. The solution to this is not to force all chains to coalesce (i.e., "a single chain to rule them all") but rather enable the networks to orchestrate transactions spanning their boundaries without sacrificing security, privacy, or governance autonomy (i.e., self-sovereignty). Hyperledger Cacti offers a family of protocols, modules, libraries, and SDKs, that can enable one network to be interoperable with, and carry out transactions directly with, another while eschewing the need for a central or common settlement chain. Cacti will allow networks to share ledger data, and exchange and transfer assets atomically, and manage identities, across their boundaries, as illustrated in the figure below.

As a fusion of two earlier systems (Cactus and Weaver) that have similar philosophies and goals, yet offer distinct mechanisms backed by differemt design and trust assumptions, Cacti offers a spectrum of selectable and configurable features for cross-network transaction orchestrations. An example illustrated below shows how distributed applications running on Fabric and Besu ledgers respectively can carry out the same set of cross-network transactions using the Node Server (Cactus legacy) or through Relays (Weaver legacy).

The present (initial) version of the Cacti code base is simply an aggregation of the legacy Cactus and Weaver code bases with their original folder structures. Until merge and integration (see further below), users should examine, test, and use them separately as follows:

  • Cactus code and documentation lies within this (root) folder, excluding the weaver folder. See Cactus documentation to test and use Cactus.
  • Weaver code and documentation lies within the weaver folder. See Weaver documentation to test and use Weaver.

Roadmap

See ROADMAP.md for details on the envisioned integration.

Inclusive Language Statement

These guiding principles are very important to the maintainers and therefore we respectfully ask all contributors to abide by them as well:

  • Consider that users who will read the docs are from different backgrounds and cultures and that they have different preferences.
  • Avoid potential offensive terms and, for instance, prefer "allow list and deny list" to "white list and black list".
  • We believe that we all have a role to play to improve our world, and even if writing inclusive documentation might not look like a huge improvement, it's a first step in the right direction.
  • We suggest to refer to Microsoft bias free writing guidelines and Google inclusive doc writing guide as starting points.

Contact

Contributing

We welcome contributions to Hyperledger Cacti in many forms, and there’s always plenty to do!

Please review contributing guidelines to get started.

License

This distribution is published under the Apache License Version 2.0 found in the LICENSE file.