FIWARE / CanisMajor

CanisMajor is a blockchain adaptor that supports various DLT, the adaptor aims to submit the data to DLT using FIWARE Technologies.

Home Page:https://fiware.github.io/CanisMajor/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

CanisMajor - FIWARE DLT Adaptor

FIWARE Blockchain CII Best Practices License Docker badge
CI

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

Overview

Current Architecture

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.

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

License

CanisMajor is licensed under the Apache License, Version 2.0. See LICENSE for the full license text.

© 2021 FIWARE Foundation e.V.

About

CanisMajor is a blockchain adaptor that supports various DLT, the adaptor aims to submit the data to DLT using FIWARE Technologies.

https://fiware.github.io/CanisMajor/

License:Apache License 2.0


Languages

Language:Java 95.9%Language:Go 2.0%Language:Gherkin 1.3%Language:Dockerfile 0.5%Language:Shell 0.3%