| Literature DB >> 35591142 |
Nihar Ranjan Pradhan1, Akhilendra Pratap Singh1, Sahil Verma2,3, Navneet Kaur2,4, Diptendu Sinha Roy1, Jana Shafi5, Marcin Wozniak6, Muhammad Fazal Ijaz7.
Abstract
As a result of the proliferation of digital and network technologies in all facets of modern society, including the healthcare systems, the widespread adoption of Electronic Healthcare Records (EHRs) has become the norm. At the same time, Blockchain has been widely accepted as a potent solution for addressing security issues in any untrusted, distributed, decentralized application and has thus seen a slew of works on Blockchain-enabled EHRs. However, most such prototypes ignore the performance aspects of proposed designs. In this paper, a prototype for a Blockchain-based EHR has been presented that employs smart contracts with Hyperledger Fabric 2.0, which also provides a unified performance analysis with Hyperledger Caliper 0.4.2. The additional contribution of this paper lies in the use of a multi-hosted testbed for the performance analysis in addition to far more realistic Gossip-based traffic scenario analysis with Tcpdump tools. Moreover, the prototype is tested for performance with superior transaction ordering schemes such as Kafka and RAFT, unlike other literature that mostly uses SOLO for the purpose, which accounts for superior fault tolerance. All of these additional unique features make the performance evaluation presented herein much more realistic and hence adds hugely to the credibility of the results obtained. The proposed framework within the multi-host instances continues to behave more successfully with high throughput, low latency, and low utilization of resources for opening, querying, and transferring transactions into a healthcare Blockchain network. The results obtained in various rounds of evaluation demonstrate the superiority of the proposed framework.Entities:
Keywords: Blockchain; Electronic Healthcare Records (EHR); Gossip protocol; Hyperledger Fabric; RAFT orderer
Mesh:
Year: 2022 PMID: 35591142 PMCID: PMC9103768 DOI: 10.3390/s22093449
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.847
Related work on blockchain-based approaches for the EHR system.
| References | Year | Objective | Performance | Limitation | Performance |
|---|---|---|---|---|---|
| Azaria et al. [ | 2016 | MedRec: Ethereum | It slows down | Full | No |
| Shen et al. [ | 2019 | MedChain: patient | Only calculated average | Full | Partially |
| Gorenflo et al. [ | 2018 | To scale a blockchain | Demonstrable capability | Increased computing | No |
| Sun et al. [ | 2018 | To propose a | Verifiable secure sharing | Attribute certificates, | Partially |
| Chen et al. [ | 2019 | To design a searchable | Security analysis | Scalability | No |
| Singh et al. [ | 2020 | To design and propose | EHR with smart | No fault tolerance | Yes |
| Proposed | 2022 | To design and propose | Transaction traffic | Fault tolerance | Yes |
Figure 1Multi-Host Framework for Blockchain-Enabled Healthcare.
Figure 2Transaction flow sequence in the proposed system.
Figure 3Genesis block creation by crypto materials.
Requirements and specification of proposed EHR Blockchain network.
| Requirements | Specification |
|---|---|
| Operating System | Ubuntu Linux 18.04 (8 GB RAM)(64 bit) |
| Virtual machine 1 (35.102.12 .31) | Ubuntu Linux 18.04 (2core, 8 GB RAM, 30 GB memory, 64 bit) |
| Virtual machine 2 (35.102.12 .34) | Ubuntu Linux 18.04 (2core, 4 GB RAM, 30 GB memory, 64 bit) |
| Virtual machine 3 (35.102.12 .33) | Ubuntu Linux 18.04 (2core, 4 GB RAM, 30 GB memory, 64 bit) |
| Virtual machine 4 (35.102.12 .32) | Ubuntu Linux 18.04 (2core, 4 GB RAM, 30 GB memory, 64 bit) |
| cURL Tool | Version 7.74.0 |
| Docker engine | Version 17.06.2 |
| Docker Composer | Version 1.14 |
| Javascript | 1.8.5 |
| Node JS | Version 10.21 |
| NPM | Version 6.14.4 |
| Hyperledger Fabric | 2.0.1 |
| VS Code | 1.49.1 |
| Docker Swarm Network | 12.06 |
| Postman API | v7.333.0 |
| Hyperledger Caliper | v0.4.2 |
| Fauxton Apache couch DB | version 6.1 |
Creating Docker Swarm Network.
|
|
EHR Chaincode Approvals Endorsement Policy.
|
|
EHR Chaincode Invoke.
|
|
EHR Chaincode Query.
|
|
Figure 4Memory Consumption for Open.
Figure 5Memory Consumption for Transfer.
Figure 6Throughput for Open.
Figure 7CPU Utilization for Open.
Figure 8CPU Utilization for Transfer.
Figure 9Latency for Open.
Figure 10Heatmap of Transaction Traffic Gossip (SOLO).
Figure 11Heatmap of Transaction Traffic Gossip for Proposed Framework (RAFT).
Figure 12Transaction Traffic for VM 1.
Figure 13Transaction Traffic for VM 2.
Figure 14Transaction Traffic for VM 3.
Figure 15Transaction Traffic for RAFT orderer.
Figure 16Caliper benchmarking process.
Efficacy of the proposed multi-host, RAFT framework with 1000 transactions.
| Name | No. of TXs | Succ | Send Rate (TPS) | Avg Latency (s) | Throughput |
|---|---|---|---|---|---|
| RAFT (Open) | 1000 | 946 | 50, 150, 250 | 0.2, 0.3, 0.5 | 50, 135, 185 |
| Kafka (Open) | 1000 | 727 | 50, 150, 250 | 3.8, 4.2, 6.1 | 42, 122, 164 |
| RAFT (Query) | 1000 | 1000 | 50, 150, 250 | 0.12, 3.63, 7.62 | 66, 77, 87 |
| Kafka (Query) | 1000 | 1000 | 50, 150, 250 | 4.12, 5.86, 8.11 | 67, 84, 105 |
| RAFT (Transfer) | 1000 | 1000 | 50, 150, 250 | 0.2, 0.3, 1.3 | 45, 61, 92 |
| Kafka (Transfer) | 1000 | 1000 | 50, 150, 250 | 3.2, 3.3, 4.6 | 32, 53, 84 |
Resource consumption after first round (RAFT).
| Type | Name | Memory (Max MB) | Memory (Avg MB) | CPU (Max) | CPU (Avg) | Traffic In | Traffic Out | Disc Write |
|---|---|---|---|---|---|---|---|---|
| Docker | peer 0.org 1.35.102.12.31 | 403.8 | 389.3 | 5.23% | 3.13% | 3.3 | 1.9 | 18.3 |
| Docker | peer 1.org 1.35.102.12.31 | 512.9 | 406.4 | 4.52% | 3.7 % | 3.3 | 1.86 | 18.3 |
| Docker | peer 0.org 2.35.102.12.34 | 205.3 | 200.3 | 5.16% | 3.03% | 3.3 | 1.7 | 17.3 |
| Docker | peer1.org2.35.102.12.34 | 201.3 | 200.3 | 4.57% | 3.23% | 3.3 | 1.77 | 17.3 |
| Docker | peer 0.org 3.35.102.12.33 | 203.9 | 200.3 | 5.64% | 3.01% | 3.3 | 1.81 | 16.3 |
| Docker | peer 1.org 3.35.102.12.33 | 146.6 | 119.3 | 4.28% | 3.04% | 3.3 | 2.0 | 16.3 |
| Docker | RAFTorderer.35.102.12.32 | 19.6 | 18.0 | 1.01% | 0.26% | 2.3 | 4.5 | 8.0 |
| Docker | ca.org 1.35.102.12.31 | 8.3 | 7.6 | 0.13% | 0.00% | 1.5 | 0 | 0 |
| Docker | ca.org 2.35.102.12.34 | 8.3 | 7.6 | 0.13% | 0.00% | 1.5 | 0 B | 0 B |
| Docker | ca.org 3.35.102.12.33 | 8.6 | 7.8 | 0.29% | 0.00% | 1.4 | 0 | 0 |
Resource consumption after second round (RAFT).
| Type | Name | Memory (Max MB) | Memory (Avg MB) | CPU (Max) | CPU (Avg) | Traffic In | Traffic Out | Disc Write |
|---|---|---|---|---|---|---|---|---|
| Docker | peer 0.org 1.35.102.12.31 | 405.7 | 138.0 | 6.47% | 3.16% | 6.6 | 3.61 | 34.5 |
| Docker | peer 1.org 1.35.102.12.31 | 405.7 | 125.0 | 6.19% | 3.16% | 6.8 | 3.62 | 33.5 |
| Docker | peer 0.org 2.35.102.12.34 | 208.6 | 124.0 | 6.29% | 3.16% | 6.72 | 3.5 | 34.8 |
| Docker | peer 1.org 2.35.102.12.34 | 207.6 | 124.0 | 6.19% | 3.16% | 6.5 | 3.53 | 33.5 |
| Docker | peer 0.org 3.35.102.12.33 | 204.6 | 124.0 | 5.19% | 3.16% | 6.6 | 3.62 | 32.5 |
| Docker | peer 1.org 3.35.102.12.33 | 66.3 | 61.1 | 4.39% | 3.15% | 6.6 | 3.59 | 34.15 |
| Docker | RAFTorderer.35.102.12.32 | 34.5 | 24.1 | 1.51% | 0.26% | 4.5 | 9.0 | 16.1 |
| Docker | ca.org 1.35.102.12.31 | 6.5 | 5.8 | 0.20% | 0.00% | 729 | 0 | 0 |
| Docker | ca.org 2.35.102.12.34 | 6.5 | 5.8 | 0.20% | 0.00% | 729 | 0 | 0 |
| Docker | ca.org 3.35.102.12.33 | 5.9 | 5.9 | 0.29% | 0.00% | 729 | 0 | 0 |