Skip to content

Latest commit

 

History

History
92 lines (73 loc) · 5.03 KB

README.md

File metadata and controls

92 lines (73 loc) · 5.03 KB

Lyra

A Tecnologico de Monterrey's Blockchain Project built for performance

Getting Started

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.

Prerequisites

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.

Needed Software

These are the following software packages needed to run Hyperledger Fabric and related applications.

Current functionality and metrics

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.

How to deploy a development environment

Once the prerequisites have been installed, the next steps will require to go through some node processes and scripts:

Step 1 - Go to the Fabric-Lyra folder

This folder includes the most recent Fabric-Lyra iteration to work with and the required packages to work with it.

$ cd Fabric-Lyra

Step 2 - Download all NPM modules to interact with it

This will install modules such as chalk, inquirer, figlet, etc. neccesary for Lyra to run correctly

$ npm install 

Step 3 - Start the network

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.

Step 4 - Start interacting!

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 

Step 5 - Generate the admin and user identities

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;

Admin creation command
$ node index --admin 
User creation command
$ node index --user

Known issues

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.

Notes on Lyra-Composer

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.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • 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.

License

This project is licensed under the Apache 2.0 - see the LICENSE.md file for details