Interoperability platform for carpooling services, based on Blockchain.
LCE aims at enhancing the credibility of a territorial carpooling service through the interconnexion of multiple operators. Carpooling services’ interoperability being assessed as low, this platform supports the consolidation of offers generated by multiple providers.
LCE platform works as a gate between different carpooling services, it does not replace carpooling applications. User journey are preserved in each provider’s environment to foster open carpooling market places.
Once offers are missing for one request, a carpooling provider connected to LCE platform could deliver a trip operated by another provider. The enhanced service proposal maintains business offers and globally enhances the service.
Blockchain nodes are located at operators’ level, the solution is frugal in terms of deployment, infrastructure and energy. Simultaneously it provides automation, safety, and traceability features. LCE provides specific features to guarantee business data integrity in a collaborative framework.
LCE exposes a blockchain based API enabling carpooling operators to exchange carpooling offers. Offers and transactions are managed through Hyperledger chaincodes.
Users and operators privacy are guaranteed with the use of Proxy re-encryption method.
LCE provides:
- API services that allow operators to create and manage their offers as well as their users bookings and conversations. API services are also used by operators to generate their keys.
- Offer, Transaction and Proofs chaincodes to manage respectively offers, transactions (passengers bookings, drivers confirmation, conversations, cancelation ...) and carpooling proofs.
- KMS chaincode to manage operators keys.
- PRE services which are the proxy services used to generate re-encryption key and re-encrypt entities.
In LCE, we address the privacy requirements imposed by carpooling operators within the blockchain-based carpooling platform. Privacy is considered in two levels; end-users and carpooling operators.
From end-users point of view, it's worth noting that the blockchain does not manage end-users accounts. However, some end-users information is shared with other operators. These pieces of information are stored with offers and transactions and are used to facilitate linkage between driver and passengers (e.g. username, userId). Even if shared information is RGPD compliant, it is possible to track end-users mobility. For example, a malicious node can know that a person called Alice travels every day from a specific origin to a specific destination.
From operators point of view, privacy issue concerns the disclosure of operators business models. It's possible that operator A checks, in its local node, how many offers operator B has and how much money it earns.
To improve confidentiality, techniques need to be applied at the blockchain level so that members cannot observe the content of stored entities, but also cannot link which operator performed which transaction on which entity. To this end, LCE platform set a secure exchange protocol so that data can be shared between members in a trust way.
LCE free software has been elaborated in collaborative research and development project coordinated by the IRT SystemX. LCE collaborative project developed a set of operational solutions to optimise carpooling operations and carpooling lanes’ exploitations. More information: https://www.irt-systemx.fr/en/projets/lce/
Ledger Carpool Exchange (LCE) - A blockchain based carpooling interoperability platform Copyright (C) 2018 - 2021 IRT SystemX - Métropole de Lyon - Coopgo
The LCE codebase is a research prototype meant to elucidate protocol details, proofs-of-concept and benchmarking. It has not been developed nor assessed in a production environment.
This project is licensed under GNU Affero General Public License v3.0.
Install dependencies
We deploy an hyperledger fabric network using the Blockchain Network Composer (BNC). Use the command line below to install BNC.
sudo curl -L https://raw.githubusercontent.com/bxforce/bnc-hlf/master/bin/bnc -o /usr/local/bin/bnc && sudo chmod +x /usr/local/bin/bnc
To facilitate deployment, we provide a script that build and install proxy, blockchain, chaincodes and APIs. This script can be used only for a 2 organizations configuration in the same machine. If you need other configurations, please refer to the documentation provided under /docs
folder.
Below commands to use this script:
- The first command with option init launchs the proxy and generates its keys.
- The second command with option start launchs the blockchain network and setup chaincodes with the proxy public key.
- The third command with option build builds chaincodes.
- The fourth command with option deploy deploys channel and chaincodes in both organizations.
- The last command with option run launches two API services (one per organization).
sh deploy.sh init
sh deploy.sh start
sh deploy.sh build
sh deploy.sh deploy
sh deploy.sh run
For more technical details, or for a step by step deployment refer to the documentation provided under /docs
folder.
Check that your LCE platform is working using this command line:
docker ps
You should be able to see running:
- the proxy and proxy_mongo containers
- the orderers/peers containers
- dev-peer containers of your chaincodes
- two carpooling_lce containers and their databases mongo
To stop the blockchain network and all containers use this script option:
sh deploy.sh clean
We provide a test script with a simple scenario
sh test.sh