CanisMajor - FIWARE DLT Adaptor
CanisMajor is a blockchain adaptor that supports persistence and verification of NGSI-LD Entity-Transactions (e.g., create/delete/update- operations) in blockchains.
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 send informations 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.
Testing
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
ADRs
- Delegate transaction signing to the client
- Use envoy as proxy
- Use a transparent proxy for forward data to CanisMajor
License
CanisMajor is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
© 2021 FIWARE Foundation e.V.