Research piece on Hyperledger Fabric.

Part 1

Roobee
4 min readJan 9, 2020

As you may already know, the Roobee development team published on GitHub a research piece on the Hyperledger Fabric blockchain.

What this research piece is.

Transparency of services has always been among key principles in the investment sphere. That is why the Roobee platform is being developed on the basis of a blockchain.

To ensure transparency, the Roobee platform will utilize the capabilities of the blockchain technology. Data for all transactions made by the user, including time, prices, investment periods, and more, will be recorded on the blockchain.

This is particularly relevant in the case of alternative investment products like venture funds, real estate, and loans: providers of such products do not share public information on transactions.

The published research piece is the first prototype of a system that will provide reliable accounting for all transactions with the help of the Hyperledger blockchain.

It’s important to note that at the moment, data about beneficiaries will be written and read inside the Hyperledger blockchain thanks to the developed solution.

The Roobee development team has prepared a report divided into three parts.

Here is what you will find in Part 1:
— Why Hyperledger blockchain?;
— Details about dependencies;
— Steps of installing dependencies;
— How samples and containers are loaded;
— Launching and testing the blockchain network.

What is the Hyperledger Fabric blockchain?

The Hyperledger Fabric blockchain is an open-source solution that has the following advantages:

• assignment of different roles to the network nodes: clients, peers, and orderers

• the possibility of choosing the type of consensus depending on the solution under development

• private communication channel for members

• verification at a transactional level

• increased control over verification

• limited access to transaction data

All of the above mentioned combined allows for a highly scalable and private platform. The details about how the blockchain operates and functions will be described in the coming parts.

Fabric is a modular and extensible open-source system for deploying and operating permissioned blockchains. It is one of the Hyperledger projects hosted by the Linux Foundation.

Fabric is also the first blockchain system that runs distributed applications written in standard, general-purpose programming languages, without systemic dependency on a native cryptocurrency. This sharply contrasts with existing blockchain platforms that require smart contracts to be written in domain-specific languages or based on a cryptocurrency. Fabric realizes the permissioned model using a portable notion of membership, that may be integrated with industry-standard identity management.

To support such flexibility, Fabric introduces a new way for blockchains to cope with non-determinism, resource exhaustion, and performance attacks.

The peer transaction manager (PTM) maintains the latest state in a versioned key-value store. It stores one tuple of the form (key, val, ver) for each unique entry key stored by any chaincode, containing its most recently stored value val and its latest version ver. The version consists of the block sequence number and the sequence number of the transaction (that stores the entry) within the block. This makes the version unique and monotonically increasing. The PTM uses a local key-value store to realize its versioned variant, with implementations using LevelDB (in Go) and Apache CouchDB.

Designed as a modular and extensible general-purpose permissioned blockchain, Fabric allows deploying a distributed ledger system that supports the execution of distributed applications written in standard programming languages, in a way that allows them to be executed consistently across many nodes, giving an impression of execution on a single globally-distributed blockchain computer.

Dependencies

Required dependencies:

• NodeJS
• npm
• Docker
• Docker Compose
• python
• GO

Let’s install part of them with the help of the prereqs-ubuntu.sh script

```bashcd HyperLedger_research/scriptschmod u+x prereqs-ubuntu.shcd .../scripts/prereqs-ubuntu.sh```

Checking the dependencies’ versions

  • NodeJS
  • npm
  • Docker
  • Docker Compose
  • python

Installing go

```bashcd ..wget https://dl.google.com/go/go1.12.14.linux-amd64.tar.gztar -xzvf go1.12.14.linux-amd64.tar.gzmv go/ /usr/local```

Setting the environment variable for go

```bashnano ~/.bashrc```

Let’s add the following lines:

```bashexport GOPATH=/usr/local/goexport PATH=$PATH:$GOPATH/bin```

Loading the variables

```bashsource ~/.bashrc```

Loading samples and containers

The [scripts/bootstrap.sh] script will preload all the required Docker containers for Hyperledger Fabric. The default versions are 1.4.1, 1.4.1 and 0.4.15 respectively.

```bashchmod u+x bootstrap.sh./scripts/bootstrap.sh```

Launching and testing the blockchain network

```bashcd fabric-samplescd first-network./byfn.sh generate./byfn.sh up```

Once done, if everything went right, the following output should be displayed:

It means that the network has been deployed and tested.

Subscribe to Roobee’s social media channels so you don’t miss Part 2.

Telegram | Chat | Twitter |Facebook | Reddit | Medium | Instagram | YouTube | Bitcointalk

--

--