Monitoring multi-party computation in Hyperledger Fabric
You work for an organization that uses multi-party computation systems, which has historically presented difficulties - handoffs within these systems invite blind spots, they are asynchronous, and it's difficult to capture a concrete lifecycle of data between these systems. Because of this, your organization has moved to using Hyperledger Fabric as a way to collaborate without compromising on safety and integrity. Now, you need to create an architecture for observability of these systems to drive efforts such as evidence-based debugging and to boost your continuous deployments.
You need to expose a number of different pieces of data:
Environment metrics | Transaction traces | Logs | Ledger data |
---|---|---|---|
|
|
|
|
Data required
Procedure
You can analyze Hyperledger Fabric’s data with the following tools:
- Splunk Connect for Hyperledger Fabric. This add-on ingests ledger and metric data from a Hyperledger Fabric deployment. The Splunk Docker logging driver can be used to send container logs to Splunk.
- Splunk App for Hyperledger Fabric. This app facilitates the analysis of this data in Splunk.
In this example there are six channels and two organizations - that is, two organizations that don't trust each other, with six different private channels to exchange information. A number of dashboards are included within the app that provide both traditional network and health metrics to help you understand how the system is running, along with transaction analytics to help understand action on the chain and what data has been transferred.
You can also search any data on the chain, as well as go deeper into each of the metrics to understand more.
Check the Transaction Analytics dashboard to see a number of bids which are being executed on your chain. The dashboard refreshes every minute, showing the last 60 minutes of activity, and towards the top of this area you can see a number of metrics exposed as well as the transaction history. Any of these transactions can be selected to find out who it's for and what is happening with it.
You can also see all the blocks lower down the screen in this area and each of the blocks' transactions, helping you understand how things are being batched.
To dive in deeper, developers will need a different view. The SignalFX view allows you to see a real-time view and in the last 10 seconds, what is being exchanged on the network. You can see different versions of the chain code as you execute, allowing you to quickly react whenever a new chain deployment occurs to see if it's been taken up or if errors are being reported.
You can also use traces to see how the systems transact with each other, with a map view that allows you to see how services communicate, helping you make sense of the blockchain in the context of the whole system.
If you need more detail, you can view a trace of the execution of a bid. In this example, you can see bid Bot auction 445 with the node.js call out to the blockchain. The blockchain is executing the chain code twice for the two organizations which are sharing this code base. Here the traces are being reported back from the organization's own environments, so you can understand exactly what's going on.
Next steps
The content in this guide comes from a previously published blog, one of the thousands of Splunk resources available to help users succeed. In addition, these Splunk resources might help you understand and implement this use case:
- Blog: Introducing Splunk App for Hyperledger Fabric
- Use case: Detecting threats in multi-party computation systems
- Data descriptor: Blockchain data