CanisMajor is a blockchain adaptor that supports persistence and verification of NGSI-LD Entity-Transactions (e.g., create/delete/update- operations) in blockchains.
This project is a part of FIWARE. For more information check the FIWARE Catalogue entry for the Core Context Management.
📚 Documentation | 🎓 Academy | quay.io | 🎯 Roadmap |
---|
In order to persist transactions inside the blockchain, a client has to send information about its transactions(e.g. create/update/delete entity) to CanisMajor.
The request should include information about the Wallet (e.g., Keystore) to be used for signing the transaction. Please check the API (tag NGSI-LD
) on how to
send the transactions and provide the Wallet-Information. CanisMajor will create a Merkle-Tree from the submitted data
and include it as data into the transaction for the Blockchain. In order to properly sign the transaction, CanisMajor uses the provided Wallet-Information and delegates the
signing to the client's Wallet. The signed transaction is then put into the Oketh-compatible blockchain.
Run unit-tests via: mvn clean test
A set of integration tests (using cucumber) is available under it/. To run them use:
cd it
docker-compose -f docker-compose/docker-compose-env.yaml -f docker-compose/docker-compose-java.yaml up
mvn clean test
The integration tests use the following values by default:
Variable | Value |
---|---|
VAULT_IMAGE |
quay.io/fiware/vault-ethereum:1.0.1 |
ORION_IMAGE |
quay.io/fiware/orion-ld:1.7.1 |
ORION_LD_PORT |
1026 |
EXPOSED_PORT |
1026 |
MONGO_DB_VERSION |
mongo:6.0 |
MONGO_DB_PORT |
27017 |
Additionally NGSI_ADDRESS=localhost:4000
should be set if running locally.
CanisMajor is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
© 2021-2025 FIWARE Foundation e.V.