Skip to content

coopgo/lce-carpool

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ledger Carpool Exchange [LCE]

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.

Description

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.

Confidentiality and data management

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.

Acknowledgements

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

Warning

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.

Licence

This project is licensed under GNU Affero General Public License v3.0.

Installation

🛠️ Prerequisites

Install dependencies

Install the Blockchain Network Composer

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

🚀 Getting started

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 if its working

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

Clean platform

To stop the blockchain network and all containers use this script option:

sh deploy.sh clean

✅ Test the platform

We provide a test script with a simple scenario

sh test.sh

📚 Tutorials

About

Blockchain-based carpooling platform

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 52.9%
  • TypeScript 44.3%
  • Shell 2.7%
  • Dockerfile 0.1%