multichain.png

Multichain Opensource Blockchain Platform

17/November/2017
Multichain is a free and open source blockchain platform to create private/permissioned blockchain networks. Multichain is an extended version of the bitcoin core software, which is used for financial transactions. The bitcoin engine provides security and control over peer to peer communications to Multichain.

Language support
The thing which makes Multichain more powerful is its support to 5 high-level languages, they are Python, JavaScript, Ruby, Php, and C#.  Multichain provides a simple API and a command line interface for the application development. The developer can download Multichain packages for all those languages from Github repository and start development. Multichain doesn't use cryptocurrencies and smart contracts. So that financial transactions are not possible with it. 
Compared to other blockchain platforms average block time is very low in Multichain and it is about 2 seconds. But the speed increases the chance of occurring hash collisions.

Security
The main feature of a Multichain is that the visibility of blockchain activities are kept private within the chosen participants. Only those selected participants can see the activities in the blockchain. It uses a set of collective admins, i.e.; a set of identifiable entities are defined as miners and all the validation/mining task will be done by them only. But the mining process doesn't involve the proof-of-work (PoW) scheme. Many blockchain networks including bitcoin use PoW scheme, in which a is a piece of data is created to verify the transaction which is difficult to produce but easy for others to verify
In Multichain, all the transactions between two participants are secured with a handshaking mechanism. In which a handshaking message and acknowledgment message is used to make sure that the exact participants are available on the communication channel.

Following steps will take place between two participants before starting a transaction
  1) Each node submits its identity as a public address in a permitted list.
  2) Each node will verify that the other nodes address is there in its permitted list
  3) Each node will send a challenge message to the other node.
  4) After receiving the challenge message each node will send back a signature of the challenge message providing their ownership of the private key corresponding to the public key.

If the node who sent the challenge message received a signature message then the transaction between those two participants will start.
And if a satisfying signature is not received then the peer to peer connection between those two nodes will disconnect.

Mining
If a transaction occurs in the blockchain the miners have to validate those transactions. Multichain introduces a new parameter called ‘mining diversity’ for defining the mining process. The mining diversity is used for defining the participation of minors in the mining process.

In Multichain, mining is done in a “Round-robin schedule”. The minors can create valid blocks in a round robin fashion so that all the minors can participate in the mining process equally.
    The mining diversity is defined as
“0<= Mining Diversity <=1” 
    The ‘1’ represents that every permitted miner will participate in the round robin rotation and ‘zero’ represents no restrictions in mining. All miners can equally participate in the mining process and the validity of the block can be verified through different steps.
 
In a Multichain platform, there is no transaction cost or block rewards by default. But we can define those parameters in the params.dat file. The params.dat file contains several parameters for defining the blockchain behavior. 
Some of the parameters are here.
multichain-opensource-blockchain-platform-1-blockchainexpert
System requirements
Basic system requirements for running the Multichain client on your local system. 
Linux:
 - 64-bit OS
 - 512 MB of RAM
 - 1 GB of disk space
 - Supports Ubuntu 12.04 and above, CentOS 6.2 and above, Debian 7 and above, Fedora 15 and above, RHEL 6.2 and above.

Windows:
 - 64-bit OS
 - 512 MB of RAM
 - 1 GB of disk space
 - Supports Windows 7, 8, 10, Server 2008 or later.

Mac:
 - 64-bit OS
 - Supports OS X 10.12.
 - 512 MB of RAM
 - 1 GB of disk space
Other than the local implementation, Cloud platforms like Windows Azure also provides deployment platform. 

There is an agricultural supply chain application already available on the Multichain platform. The app can control the entire supply chain system starting from the farmer to the customer. Each stage can be tracked through blockchain and the approach will help to increase the quality, reach and profitability of the product.