Admin tool to manage hyperledger fabric blockchain network? - hyperledger-fabric

When I install a hyperledger fabric network (as instructed on hyperledger.readthedocs.io), it gives me ability to communicate with the deployed blockchain instance. There are a few CLI commands that I can use to stop/restart the service.
I am looking for a UI based tool, that an admin user can leverage to view the activity, as well as control the different entities in the blockchain network.
Note: I have already seen Blockchain explorer but its apparently a read-only tool.
Many Thanks.

I think Hyperledger Composer is best way to access the Hyperledger Fabric Network.
It Provides UI to access full blockchain network.
You can find the tutorials here.
Also, if you want to view total blocks, transactions, peers data, then You can use Hyperledger Blockchain Explorer.
The link is here.

Hyperledger Cello is the tool which can help you to manage blockchain in an efficient way.
Using Cello, everyone can easily:
Build up a Blockchain as a Service (BaaS) platform quickly from scratch.
Provision customizable Blockchains instantly, e.g., a Hyperledger fabric network v1.0.
Maintain a pool of running blockchain networks on top of baremetals, Virtual Clouds (e.g., virtual machines, vsphere Clouds), Container clusters (e.g., Docker, Swarm, Kubernetes).
Check the system status, adjust the chain numbers, scale resources... through dashboards.
https://cello.readthedocs.io/en/latest/
enter link description here

Related

Is it necessary of Deploying a Hyperledger Composer blockchain business network to Hyperledger Fabric (multiple organizations)

I created a composer business network and successfully deployed in to the fabric network(Single organization) . The next step is deploying to the fabric network(Multiple organizations). I'm not understanding the purpose of deploying to Multiple organizations . Is it necessary to deploy the composer network into fabric Multiple organizations. Can any one help me from this confusion .
Thanks in advance..
IMHO, The OP is asking "Why do I need to deploy to Multi-org fabric network", not how.
While it is not required for you to deploy anything to a multi-organizational fabric network, typically in real-world scenarios you'd be mostly deploying to such a network structure.
Enterprise Blockchain solutions typically are most useful when they are bringing together different organizations which do business together, and though they are co-operating with each other while doing so, they typically don't trust each other.
Normally, in a non-blockchain scenario, these organizations would each have their own system of record keeping, and all business transactions would get entered into multiple independent record books. This creates all sorts of delays, dependencies and need for arbitration when one organization's records don't agree with the other organization's records.
The blockchain becomes a single record for all these co-operating but untrusting organizations. All data entered in to the blockchain is first reviewed by all the organizations, and only after consensus is it entered into the records.
This kind of setup is only possible using the multi-org network, with each peer hosting it's own peers that it trusts to review the transactions and perform consensus. THAT'S WHY you need this kind of setup in real-world scenarios.
The composer multi-org tutorial provides the information needed to understand the operational aspects needed to run a business network in a multi-organisational fabric network. The tutorial can be found here
https://hyperledger.github.io/composer/latest/tutorials/deploy-to-fabric-multi-org
From there you will see that defining an endorsement policy (in the case of the tutorial, both organisations have to endorse transactions) that you need to install the business network onto at least 1 of the peers in each organisation (in the case of the multi-org tutorial the business network is installed to all peers in the organisation).
Once installed and the business network started those peers are able to endorse the transaction.
hyperledger fabric is designed to allow multiple different organisations to share a ledger between them. This is a very common use case of hyperledger fabric.

How to deploy a Chain Code with Hyperledger Fabric?

I’m interested into the development of Blockchain Apps using Fabric and Composer.
I’ve got just one question: while Ethereum is a public blockchain so you can deploy your Smart Contract on it and use them freely, can we do the same thing with Fabric? Let me explain: Ethereum has a running Blockchain on which we can work and access, but Fabric has not, right? Should I set up an entire new blockchain network before (setting up all the nodes, giving permissions etc.)?
Thank you
Hyperledger Fabric is different to the blockchain systems you mention in it is private and permissioned. Rather than an open permissionless system that allows unknown identities to participate in the network (requiring protocols like “proof of work” to validate transactions and secure the network), the members of a Hyperledger Fabric network enroll through a trusted Membership Service Provider (MSP). Member organisations would generally set up their own Fabric infrastructure, if they're participating in the blockchain network (context provided earlier). See more on FAQ here -> http://hyperledger-fabric.readthedocs.io/en/release-1.2/Fabric-FAQ.html and understand more on key Fabric Concepts here -> http://hyperledger-fabric.readthedocs.io/en/release-1.2/key_concepts.html . As for Hyperledger Composer, that is a development framework, with tools etc to accelerate development and abstract things to a business level (ie App development using structure/validated, model driven development as a given). See more here -> https://hyperledger.github.io/composer/latest/introduction/introduction (and also see the architectural and key concept links there).
So yes, you will have a running, private blockchain network (including all of the functionality discussed in the docs) with Hyperledger Fabric.
As in Ethereum we can able to create public blockchain and then the user can able to run smart contract on it, same thing we can do in Hyperledger fabric also.
Hyperledger Fabric has the same functionality as smart contracts called as “chaincode”.
A chaincode is a program that is written to read and update the ledger state. All the business logic handled by chaincode.
For example, if a transaction created then chaincode share and update the ledger throughout the network.
About a Fabric based running blockchain we can work on it and can access it but that's only possible when someone from existing network invites you.
It is quite difficult to say you should setup an entire new blockchain network until I know your use case. Based on your use case you can setup an entire new blockchain network using fabric which will be private.

How to share data between two chaincodes on Hyperledger Fabric on Single Channel?

I have started to learn Hyperledger Fabric and Composer. I am able to create a simple Business Network using Composer and deploy it on Fabric, but I have a question. Let's say I have 2 BNA (instantiated on single channel) files both having same namespace (org.example) and having same participant name as well, as Customer (identifier will be org.example.Customer). Is there any way that I can access the participants created by first Business Network App in another Business Network App? Logically what I can think of is since both have been instantiated in the same channel with different chaincode and same model file, data should be cross accessible. But it isn't.
Although chaincodes share the same ledger when installed on the same channel (and as business networks are just chaincodes this applies to them also). Fabric still partitions the data that a chaincode can read/write by it's chaincode id. So when you install 2 business networks onto the same channel they will have different chaincode id's and so their data is separately partitioned.
As mentioned in the other answer (although the link is not quite correct), what you can do is make use of a feature of composer to be able to invoke another business network on the same or even different channel from the executing business network.
As the 2 business networks are on the same channel you can not only read information but you are also able to invoke transactions that can change information. (You can only read information if the business networks are on different channels).
The correct link for the tutorial is here
https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network
Unfortunately this tutorial is rather basic and only offers a glimpse of how to interact with other business networks.
Is available a tutorial about how to interact from a bna to another one.
Here the link to the official Hyperledger Composer documentation.
https://hyperledger.github.io/composer/latest/tutorials/invoke-composer-network

What is the relation between `Fabric`, `Composer`, `Cello` and other Hyperledger applications?

When I was tasting the fabric, I found many other blockchain projects, like Composer, Cello, Explorer. They are all belong to Hyperledger. I'm very confused that there are so many projects. Should I learn all of them? It seems each project plays a role in the blockchain. BUT:
What's the relation between them?
I draw a picture to explain my question. The picture is not correct, I just want to make my question clear.
If I figure it out, when we want to use the blockchain in our project, I can just study few of them, and use them appropriately.
Fabric provides a framework to set up a blockchain network. It is data/application agnostic.
Composer provides a set of tools to define a business network on top of Fabric. This provides a higher level of abstraction than Fabric where the data are essentially just bits. With Composer you can define assets, transactions, etc.
Cello helps with provisioning of the network.
Explorer simply provides a web based interface to explore what's on a blockchain.
Fabric is a permissioned blockchain distributed ledger, it is at the end; an implementation of a permissioned blockchain.
Hyperledger project comprises a suite of tools for building blockchain business networks, what they name it "Hyperledger Composer".
it is used for developing,testing, deploying application on blockchain
also it is used for integrating your blockchain with external systems,
Cello, is a blockchain provision and operation system, which helps manage blockchain networks, and make the blockchain as service BaaS, it is not a blockchain, but it is used to manage the blockchain network.
Check this link for better understanding Cello
Hyperledger Cello
Explorer provide you KPI that show the blockchain
Cello is admin tool that help you to monitor the host and network with and container inside it, actually cello using fabric script if you take around in fabric you will find byfn (build your first network) script that setup container and example peer.
so cello uses this script to create container and show to you status of this and delete it or edit.
composer provide a tools to help you create your business card and your smart contract to write your smart contract you need to write acl(access control language which define rule),your logic , define participant and assets.
then composer will create bna archive file and install it on blockchain.
there is some module in composer like playground and restserver and also there is generator for frontend
fabric is the framework that setup the blockchain network, it's the base that cello and other module uses it
i hope i help you

Hyperledger Composer model not persisted

I'm using Hyperledger Composer on Fabric v1.0. When stopping Fabric with fabric-tools/stopFabric.sh and then starting with startFabric.sh, the deployed model (.bna file) is no longer there.
How do I set the system up so that data will stay there after a system reboot?
This is an operational consideration for how to set up a fabric environment and as you correctly observe, because our fabric dev server just start up fabric containers, if those containers are destroyed for any reason then their internal filesystem are lost.
In the hyperledger fabric documentation they describe a simple way to make the fabric containers persist their data outside of their isolated file systems.
see
http://hyperledger-fabric.readthedocs.io/en/latest/build_network.html
and the section called "A Note on Data Persistence" which provide detail on this. In this case you would need to apply the concepts described there to the docker-compose.yml file in the hlfv1/composer directory in our fabric dev server.
If you were deploying using the composer playground, you can save your bna using the export button on the lower left of the playground define interface.
If you want to persist your deployment itself, you can modify the docker-compose files to persist the data in the /var/hyperledger/production on the peer and orderer containers using a data volume. This will persist the ledger and credentials the next time you bring up the network.

Resources