A Tecnologico de Monterrey's Blockchain Project built for performance
These instructions should help you get the project up and running on your local machine for devewlopment and testing. This project should deploy in a similar manner on multiple Linux Based Systems although some configuration needs to be made. This project was made for Banorte with the technical help from IBM and it's subject to licensing. Through this README, the Lyra Fabric Network will be called LFN.
For testing purposes and speed considerations, Lyra should be deployed on an Unix based system (Linux and OS X) server environment. It has been shown that Hyperledger Fabric nodes can run on a Raspberry Pi 3 so minimum hardware requirements may depend on the amount of processing needed.
These are the following software packages needed to run Hyperledger Fabric and related applications.
- curl 7.56.1 or newer
- Docker 17.09.0 or newer
- Docker Compose 1.16.1 or newer
- Go Programming Language 1.9 or newer
- Node.js 8.9.1 or newer
- NPM 5.5.1 or newer
- Python 2.7 or newer
As of now, the current system can do the following things:
- Make batch accounts with balances in them
- Make batch transactions with deterministic behaviour
- Manipulate the Fabric Network
And current metrics show that a transaction takes about: 45ms single threaded and to a single orderer. This number can be greatly improved by launching several transactions to multiple orderer nodes, by creating alternative channels and by using cryptographically ready mainframes. This number has been created by running Lyra on a MacBook Pro 15in 2015 with 16GB of RAM, 512GB SSD and an AMD Radeon R9 M370X 2GB.
Once the prerequisites have been installed, the next steps will require to go through some node processes and scripts:
This folder includes the most recent Fabric-Lyra iteration to work with and the required packages to work with it.
$ cd Fabric-Lyra
This will install modules such as chalk, inquirer, figlet, etc. neccesary for Lyra to run correctly
$ npm install
This will deploy a Hyperledger Fabric network composed of Orderers, Peers and Certificate Authorities to interact with
$ ./startFabric.sh
This will also install and instantiate the Halley Smart contract automatically or any smart contract within the chaincode folder.
Once the network has started up and all node modules have been installed, it's now possible to start interacting with Lyra. To show all possible commands, issue:
$ node index --help
For Hyperledger Fabric to start making transactions, it needs to sign each proposal with the private key of an user. For an user to sign a transaction it needs to be generated by an admin. To do these, issue the following commands;
$ node index --admin
$ node index --user
This process has been known to be problematic, if an issue arises the following steps might help :
- Check if Docker is up and running
- Check if the hfc-key-store has any user or admin from previous development cycles. If so, try deleting and generating them again.
- Restart the network by issuing the startFabric.sh command
If after all these steps the problem persists, feel free to create an issue on this Github page to be solved ASAP and included into this readme.
As stated on the [4d728a] commit, the Lyra Composer project was moved into the Composer-Lyra folder. This project is a POC for what the Fabric-Lyra project would become. This is easily deployable by following the instructions on the README.md file within the folder.
We use SemVer for versioning. For the versions available, see the tags on this repository.
- Andres Bustamante Diaz - Programming consultant and non-technical Documentation leader
- Enrique Navarro Torres-Arpi - Programming consultant and Technical Documentation leader
- Fernando Martin Garcia Del Angel - Smart Contract Programmer, Lyra Programmer and Documentation consultant
- Hector Carlos Flores Reynoso - Smart Contract Programmer and Network Architect
See also the list of contributors who participated in this project.
This project is licensed under the Apache 2.0 - see the LICENSE.md file for details