LCaaS is a Python-based blockchain tool. It receives data through its API and then use its internal blockchain framework to convert data to blocks and then pushes them to blockchain by establishing hash-binding relationship among blogs.
Furthermore, LCaaS, introduces a solution for the common capacity challenges of the blockchains. In LCaaS, we have introduced a novel solution referred to as “Hierarchical ledger” or also known as “Multi-dimensional blockchains”. For more information, navigate to google scholar page and search for “Logchain as a service” and have your fingers crossed, if you see something along the following lines, you are good to go!
- API for incoming traffic
- Proprietary private blockchain implementation
- Integration with Firebase Realtime Database
- Integration with Ethereum Test Network (Ropsten)
- Configurable functionalities (check config.json for more information)
As LCaaS, is a hirarchical blockchain, it can use itself as the upper-level blockchain or it can use private or publuc blockchains to store superblocks. Currently, the following blockchains are support:
- IBM Blockchain (Private, Permissioned)
- Ethereum (Public, Permission-less)
As LCaaS can be integrated with different blockchain vendors, it is useful to analyze the performance of each integration by using the 'submission time' as a common factor. The following depicts the comparison between LCaaS-IBM Blockchain and LCaaS-Ethereum integrations.
LCaaS uses a number of projects:
- Firebase - Google Real-time Database
- Ropsten Test Network - Ethereum Test Network (based on PoW)
LCaaS is designed and developed with Python 3.6 and make use of the following Python Libraries:
- pyrebase
- ethereum
- flask
- hashlib
- TimeKepper
- json
- web3
- contract_abi
- datetime
Dillinger requires Node.js v4+ to run.
Download the source code and make sure you have the above libraries in your python environment, then, proceed with the following command:
Python index.py
Since LCaaS runs its own internal web server, you should be able to open any broswer and put:
http://127.0.0.1:5000/
You should see the following message on your web-broswer indicating that LCaaS is running.
curl -X POST \
http://127.0.0.1:5000/submit_raw \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: bd3bf06b-5d56-b35f-972f-31f104aea47b' \
-d '{"Log": "User William formatted C Drive at 7:52 AM , Aug 16th, 2018"}'
curl -X POST \
http://127.0.0.1:5000/submit_digest \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: 60dc220e-d201-91e5-c331-6d456cb2a57e' \
-d '{"digest": "10E721E49C013F00C62CF59F2163542A9D8DF02464EFEB615D31051B0FDDC327" }'
curl -X POST \
http://127.0.0.1:5000/verify_raw \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: 23b7ce69-cbc3-e8dc-2e5c-bf4e1b44d9d4' \
-d '{"Log": "User William formatted C Drive at 7:52 AM , Aug 16th, 2018"}'
curl -X POST \
http://127.0.0.1:5000/verify_digest \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: aa9bb524-11e4-74ea-d61c-e0c7f7c2fb10' \
-d '{"digest": "10E721E49C013F00C62CF59F2163542A9D8DF02464EFEB615D31051B0FDDC327" }'
verify_tb to verify the terminal block and ensure that the entire blocks in a circled blockchain are not tampered.
Did not understand a word? read the paper!
curl -X POST \
http://127.0.0.1:5000/verify_tb \
-H 'cache-control: no-cache' \
-H 'content-type: application/json' \
-H 'postman-token: adfacf8b-1292-8644-574a-f6b959418727' \
-d '{"tb_hash": "4aadc7120cf783fa3ce0b961edc12229aa2900c0d0d7238369181877e7892178" }'
Comments and suggestions or questions? please send them to me at [email protected]
For checking the transactions on Ethereum Ropsten network, click here: https://ropsten.etherscan.io/address/0x3f4f9bb697f84a26fbc85883f2ff4d31a36ed83c