You are currently on the new version of our website. Access the old version .
SensorsSensors
  • Article
  • Open Access

18 October 2023

A Federated Blockchain Architecture for File Storage with Improved Latency and Reliability in IoT DApp Services

,
,
and
Department of Computer Engineering, Keimyung University, Daegu 42601, Republic of Korea
*
Author to whom correspondence should be addressed.
This article belongs to the Special Issue Blockchain as a Service: Architecture, Networking and Applications

Abstract

Blockchain technology can address data falsification, single point of failure (SPOF), and DDoS attacks on centralized services. By utilizing IoT devices as blockchain nodes, it is possible to solve the problem that it is difficult to ensure the integrity of data generated by using current IoT devices. However, as the amount of data generated by IoT devices increases, scalability issues are inevitable. As a result, large amounts of data are managed on external cloud storage or distributed file storage. However, this has the disadvantage of being outside the blockchain network. This makes it difficult to ensure reliability and causes high latency during data download and upload. To address these limitations, we propose a method for managing large amounts of data in the local storage node of a blockchain network with improved latency and reliability. Each blockchain network node stores data, which is synchronized and recovered based on reaching a consensus between smart contracts in a cluster network. The cluster network consists of a service leader node that serves as a gateway for services and a cluster node that stores service data in storage. The blockchain network stores synchronization and recovery metadata created in the cluster network. In addition, we showed that the performance of smart contract execution, network transmission, and metadata generation, which are elements of the proposed consensus process, is not significantly affected. In addition, we built a service leader node and a cluster node by implementing the proposed structure. We compared the performance (latency) of IoT devices when they utilized the proposed architecture and existing external distributed storage. Our results show improvements up to 4 and 10 times reduction in data upload (store) and download latency, respectively.

1. Introduction

Blockchain technology was first developed to enable distributed smart contracts, and its popularity has grown owing to cryptocurrency networks such as Bitcoin [1]. Later, blockchain platforms supporting smart contracts such as Ethereum [2] and Hyperledger Fabric [3] emerged, making it possible to process multi-purpose transactions. With smart contracts, blockchains manage distributed nodes executing intelligent logic in peer-to-peer (P2P) [4] networks rather than a central trustee; this ensures the reliability of logic and data storage. Because of these advantages, recent generations of decentralized networks, namely Web 3.0 [5,6], rely on blockchain technology. Web 3.0 orchestrates data through a decentralized blockchain network. More specifically, its trusted services, enabled by smart contracts, are transmitted, processed, and stored in a blockchain network such as Ethereum rather than a central server. In addition, decentralized nodes provide services less affected by attacks such as denial of service (DoS) and data tampering by central administrators, thereby reducing hacking and data leakage risks. According to Gartner [7], 63% of digital marketing leaders struggle to deliver personalized experiences, and approximately 84% of digital marketers use artificial intelligence and machine learning, the technology driving Web 3.0 for real-time personalization. These together improve marketing capabilities that deliver a better experience. In addition to Web 2.0, which is currently in use on the Internet, Web 3.0 is a distributed network organized around user data and permissions and implemented using blockchain technology and smart contracts. Similarly, IoT devices can leverage the blockchain technology that Web 3.0 uses to achieve the same positive effects that Web 2.0 has over Web 3.0. IoT devices can collect and process data from the physical world through sensors and actuators. The data they collect can be executed with smart contracts, using distributed ledger technologies like blockchain to ensure immutability and security. Additionally, IoT devices can also be used to securely manage and control the permissions and data that they produce. For example, IoT devices can use blockchain technology to secure user privacy and collect or control data with user consent through smart contracts. Therefore, IoT devices can become more powerful when used in conjunction with blockchain and smart contracts, but are limited by the low performance caused by the blockchain’s interaction with external storage, such as the following.

1.1. Motivation

The data generated by a blockchain network built with IoT devices is stored equally across all IoT devices participating in the blockchain network. As a result, the capacity requirements inside the network increase, which leads to the limitations of blockchain technology.
Therefore, Web 3.0 services with a network backend similar to blockchain networks implemented with IoT devices will also have large file data based on data storage built outside the blockchain network due to scalability issues.
According to Cloudwards.net [8], 94% of businesses use enterprise cloud services. Web 3.0 services [9,10,11] store data outside the blockchain based on the existing cloud and record only metadata in the blockchain. However, the cloud service-based data storage method cannot guarantee transparency and reliability due to its centralized structure, and file loss is possible. To address this limitation, most Web 3.0 services [12,13] use distributed storage network services [14,15] to store data.
Figure 1 shows the data storage process in the existing Web 3.0. In this structure, the file-storing infrastructure and the blockchain network are separated. The client stores data in an external distributed file system and records metadata resulting from the data storage on the blockchain.
Figure 1. Data storage process of existing blockchain based services.

1.2. Challenges

In existing distributed storage networks, it is challenging to prevent file loss by distributing and storing data in only a part of the network owing to scalability problems. In addition, the increase in gateway traffic utilizing a centralized gateway for efficiency in a distributed environment can degrade performance and reliability. To address these limitations, the following challenges must be overcome:
  • Difficult to prevent data loss: In the case of distributed storage configured externally by the blockchain, the node that maintains the file lacks the logic to store it, so it cannot prevent data from being lost.
  • Possibility of data forgery: When file data are stored in a centralized structure such as cloud storage, there is a possibility of data forgery by an administrator.
  • Centralization issues with gateways: In the case of existing distributed data storage, there is a gateway to efficiently process users’ data storage and download requests, but this causes centralization problems.
  • Latency issues with I/O requests: High latency when requesting to download data stored in a distributed file system or external cloud storage must be addressed. In particular, when loading distributed files from a distributed system, there is a large amount of latency in the process of merging the system itself and the external download or upload over the Internet.
To address each of the challenges presented, we have the following contributions.

1.3. Contribution

The main contributions of this paper are listed as follows:
  • File management method based on the service provider to prevent file loss. We propose a service-providing architecture for creating services in a blockchain network based on smart contracts to prevent file loss and a method for storing data in nodes participating in service creation and maintenance.
  • Data consensus technique to ensure the integrity of user data based on original file replication and metadata. When storing user service data, the data of the distributed service nodes are synchronized by executing a synchronization agreement on the service data, and the reliability of the data queried by the client is ensured by performing recovery on the blockchain through metadata recorded on the blockchain. By applying this technique, the blockchain networks running on IoT devices can process data with high performance by requesting data from the blockchain network instead of the external storage network. Metadata are recorded on the blockchain to ensure reliability, and as data are managed locally rather than in an external network, this increases data processing latency while increasing performance.
  • Distributed storage supporting high-performance data I/O based on blockchain network. To ensure the reliability of stored data, a technique is applied in which nodes in the blockchain network maintain service data.
To solve the storage limitation, a service cluster that provides storage resources for services in the blockchain network is formed. In a blockchain network, clusters can be built from multiple service units. In a blockchain network, clusters can be built from multiple service units. Therefore, cluster nodes will only retain data generated by the services to which they belong. Each service cluster also has a service leader node that acts as a gateway. The service leader node serves as a router that forwards data storage and query requests from clients who use the service through the participation of multiple nodes to the cluster node and is periodically replaced by applying a replacement policy to solve the centralization problem.

3. Architecture

3.1. System Architecture

Figure 2 shows the proposed architecture. In this architecture, two kinds of networks are implemented for service offerings. Firstly, the blockchain P2P network is responsible for blockchain maintenance, transactions, and block propagation within and between clusters. In addition, it deploys smart contracts to ensure reliability and synchronization of service data storage, service synchronization, and recovery transactions that can be stored and managed. In addition, it supports the management of the list of services by storing the service leader node that serves as a gateway for service creation, the cluster within the service, and the blockchain account and IP address of the cluster that stores data. Secondly, a configured data consensus network delivers file binary data (to be stored by users) through this data consensus network; metadata are generated and then propagated to the leader node. The consensus algorithm can use PoW, PoS, PBFT, etc. when used in a service cluster, and in this paper, it is composed of PoA-based Geth. In the case of data consensus algorithms, CFT and BFT are important in the process of verifying that the proof data are the same, so we use a PBFT-based consensus algorithm. The operation process is as follows:
Figure 2. System Architecture.
  • The service user sends a request for a data query or insert to the service leader node.
  • In the service cluster, data are synchronized or recovered through the data consensus network within the service cluster.
  • When the processing of data consensus in the cluster is finished, the leader node creates a transaction and records metadata in the blockchain.

3.2. Replacement Policy

Figure 3 shows a proposed technique to solve the centralization of the gateway, a limitation of the existing distributed file system. Users initiate data storage and download requests to the central gateway to store data in the distributed file system. This method transmits data to multiple nodes, but the network traffic of the gateway increases, and the reliability of the data cannot be guaranteed. There are several methods that can be introduced to address these limitations: stake-based, randomized, and round-robin-based selection. In this paper, we implement the round-robin method of leader selection. The round-robin scheme we are talking about in this paper is a simple form of round-robin, where the next node acts as a gateway for each request. In this way, the service leader nodes, which act as gateways for the selected service clusters, can distribute traffic by sending and processing requests every specific round. This leader node is a normal node, such as a node acting as a gateway to another system, and typically takes no additional load beyond the load of maintaining the node. In addition, the proposed architecture records the metadata generated after the request of the cluster node in the blockchain, and consequently, the data transmitted to the gateway cannot be forged or falsified by verifying the signature.
Figure 3. Method to replace the leader node for gateway distributed processing.
In the proposed architecture, nodes in a blockchain network constitute a cluster of service units. A node consists of a service leader node for connecting users and services and a cluster node that stores data in local storage. A user must send a request to store data in a cluster of service units. However, one node is required to send all data to multiple cluster nodes and to aggregate data again for consensus. In addition, in a single node, traffic increases due to the overloading of the communication volume with the cluster node, and if a single node handles all communication, reliability problems occur during the transmission/reception process. Therefore, by applying the Round-Robin [33] method, the user’s request is propagated to all cluster nodes in the service, and the process for collecting responses is distributed and processed by the service leader nodes.
The proposed method solves the traffic increase problem of the gateway used in the existing distributed file system and guarantees reliability through the private key-based signature of the data delivered to the gateway and the data consensus process of the cluster nodes.
In addition, by applying this technique, our system can respond to cases where nodes are dynamically added and deleted in the public blockchain network environment. For example, if a node participating as a service leader node shuts down due to a crash fault, service processing in the cluster that the service leader node participated in may be interrupted for that round. In this case, the next service leader node in the queue is selected using the round-robin method, which allows recovery.
Figure 4 shows the data architecture of the smart contract for creating services, registering service users, registering leaders and cluster nodes, and storing synchronization and recovery transactions. The proposed architecture provides local storage for the nodes of the blockchain network rather than external storage by configuring a service cluster with nodes. This process is based on smart contracts executed by all blockchain network nodes, not by a single node. To do this, service creation, leader nodes, and synchronization are required, and all processes are performed through smart contracts.
Figure 4. Data architecture of smart contract.

3.3. Workflow

This section describes the process for saving data to the storage of blockchain nodes. The description of the term is as Table 2.
Table 2. Notation for Algorithm Representation.
Algorithm 1 [Service creation and user and node registration process] is the process of configuring a service cluster in the blockchain network and registering the leader node of the service cluster, Cluster nodes that provide storage services to persist data, and User.
To configure the Network of Service Cluster for service provision as the node constituting the Network of Ethereum Blockchain Network, the service creator must request service creation from the smart contract. The service creator is created by registering as the leader node of the service cluster first. The created service is stored in a smart contract and can be checked by all nodes. When a registration request is made with a leader node, it is registered with the permission of the existing leader node of the service cluster.
In addition, cluster nodes that provide storage services to persist data of the service provider role that operates to maintain service data can register with a specific service through I D s e r v i c e of the service and blockchain account and I P .
Service U s e r can check the list of service clusters created in the blockchain network. U s e r can register for the service and request data storage and retrieval through a transaction that includes a blockchain account.
Algorithm 2 [Process of synchronizing the data of the data store and cluster nodes] is the data storage process. The process of this algorithm is shown in Algorithm 2; U s e r requests I P of the leader node of the service to store D a t a in the network of service clusters and the leader node of the service cluster Send R e q u e s t Type of STORE. After the data storage process is completed, the user returns I D d a t a . The leader node of the service cluster that receives R e q u e s t verifies the account of U s e r and checks whether it is registered in the service. If verified, R e q u e s t is sent to all cluster nodes that provide storage services registered in the service. The network of service cluster nodes receives R e q u e s t and stores it in D B c l u s t e r . The network of service clusters encrypts the hash of the saved file with K e y p r i v to create S i g , creates M e t a d a t a , including FileHash and S i g , and sends it to the leader node of the service cluster. The leader node counts whether all cluster nodes in the network of service clusters have saved data and sends M e t a d a t a of all cluster nodes to the smart contract to T x s y n c is created. In a smart contract, the data of M e t a d a t a are verified with the K e y p u b of cluster nodes, and the same F i l e H a s h is created. When T x s y n c is saved, F i l e H a s h is broadcast to all cluster nodes so that the saved F i l e H a s h can be verified.
Algorithm 1 The process of crafting service
Procedure: 
THE PROCESS OF REQUEST SERVICE AND ENROLLMENT NODE FROM S C
 1:
S e r v i c e C r e a t o r I n f o A c c o u n t , I P , S t a t u s
 2:
I D s e r v i c e , I D l e a d e r C r e a t e N e w S e r v i c e ( S e r v i c e C r e a t o r I n f o )
 3:
 
Procedure: 
THE PROCESS OF CREATING SERVICE FROM S C
 4:
I D s e r v i c e = C o u n t ( S e r v i c e L i s t ) + 1
 5:
S e r v i c e I n d e x I D s e r v i c e , S e r v i c e T y p e
 6:
N o d e L i s t L e a d e r L i s t , C l u s t e r L i s t
 7:
T x L i s t S y n c T x L i s t , R e s t o r e T x L i s t
 8:
S e r v i c e I n f o S e r v i c e I n d e x , N o d e L i s t , T x L i s t
 9:
S e r v i c e L i s t . A d d ( S e r v i c e I n f o )
10:
 
Procedure: 
THE PROCESS OF ADDING N o d e l e a d e r :
11:
 
12:
if  C h e c k S e r v i c e L e a d e r L i s t ( I D s e r v i c e , A c c o u n t , I P ) is not then
13:
     L e a d e r I n f o L e a d e r I n f o ( I D s e r v i c e , A c c o u n t )
14:
     I D c l u s t e r A d d L e a d e r ( L e a d e r I n f o )
15:
end if
16:
 
Procedure: 
THE PROCESS OF ADDING N o d e c l u s t e r :
17:
 
18:
if  C h e c k S e r v i c e C l u s t e r L i s t ( I D s e r v i c e , A c c o u n t , I P ) is not then
19:
     C l u s t e r I n f o C l u s t e r I n f o ( I D s e r v i c e , A c c o u n t )
20:
     I D c l u s t e r A d d C l u s t e r ( C l u s t e r I n f o )
21:
end if
22:
 
Procedure: 
THE PROCESS OF ADDING U s e r :
23:
 
24:
if  C h e c k S e r v i c e A c c o u n t L i s t ( I D s e r v i c e , A c c o u n t ) is not then
25:
     U s e r I n f o S e r v i c e U s e r I n f o ( I D s e r v i c e , A c c o u n t )
26:
     I D u s e r A d d U s e r ( U s e r I n f o )
27:
end if
Algorithm 2 The Process of storing service data
Procedure: 
THE PROCESS OF Posting R e q u e s t FROM U s e r To N o d e l e a d e r
 1:
I P l e a d e r ← GetCurLeaderNode( I D s e r v i c e )
 2:
I D d a t a ← PostRequest( I D s e r v i c e , I P l e a d e r , I D u s e r , T y p e , A d d r e s s , F i l e )
 3:
 
Procedure: 
THE PROCESS OF Broadcasting R e q u e s t FROM N o d e l e a d e r To N o d e c l u s t e r
 4:
I p T a b l e c l u s t e r ← GetClusterNodeList( I D s e r v i c e )
 5:
M e t a d a t a = B r o a d c a s t R e q u e s t ( I p T a b l e c l u s t e r , R e q u e s t )
 6:
if  C o u n t ( M e t a d a t a ) is C o u n t ( N e t w o r k c l u s t e r )  then
 7:
     T x s y n c C r e a t e S y n c T x ( K e y P r i v )
 8:
     S t o r e S y n c T x ( T x s y n c )
 9:
end if
10:
 
Procedure: 
THE PROCESS OF Storing D a t a FROM N o d e c l u s t e r
11:
R e q e u s t G e t R e q u e s t ( )
12:
P A T H S t o r e D a t a L o c a l S t o r a g e ( R e q e u s t . F i l e )
13:
F i l e H a s h G e n e r a t e S i g ( R e q e u s t . F i l e )
14:
S i g G e n e r a t e S i g ( F i l e H a s h , K e y p r i v )
15:
M e t a d a t a G e n e r a t e M e t a d a t a ( S i g , F i l e H a s h )
16:
R e s p o n s e M e t a d a t a ( M e t a d a t a )
Algorithm 3 [Process of downloading and verifying data] is the process of downloading and verifying data. The process of this algorithm is shown in Algorithm 3 and Figure 5. This shows the process of querying and verifying D a t a stored in the network of service clusters by U s e r . U s e r needs I D d a t a of stored data and the I P of the current leader node of the service cluster to return D a t a . U s e r sends R e q u e s t to the leader node of the service cluster I D d a t a and user’s blockchain A d d r e s s and I D s e r v i c e via I P l e a d e r . Leader nodes of the service cluster delivers R e q u e s t s of query type to C u r N o d e c l u s t e r (current leader node of the service cluster) selected in a round-robin method. The current leader node of the service cluster creates a U R L accessible through P A T H stored in D B c l u s t e r with I D d a t a , and encrypts U R L with K e y p r i v to create S i g . current leader node of the service cluster creates M e t a d a t a through U R L a n d S i g and sends it to U s e r through N o d e l e a d e r . U s e r downloads F i l e B i n a r y through a U R L and creates a F i l e H a s h . Additionally, U s e r is compared with F i l e H a s h recorded in the network of the ethereum blockchain network to verify that the data are synchronized. If F i l e H a s h is different, the recovery process is performed.
Figure 5. The process of query and validating service data.
Algorithm 4 [Process of data recovery] is the recovery process in case the verification is performed after data download. This process occurs when the data returned by U s e r in Algorithm 3 is tampered with or out of sync. This process is performed to keep the data of all service cluster nodes the same through data consensus. Additionally, the client can return synchronized data after this process. If verification of D a t a fails, U s e r requests data recovery from the leader node of the service cluster, and T x r e c o v e r y is saved in a network of the ethereum blockchain. U s e r sends R e q u e s t of Recovery Type to the leader node, and the current leader node broadcasts it to all cluster nodes that provide storage service in the network of service clusters. Cluster nodes that provide storage services sends the F i l e B i n a r y of I D d a t a i ncluded in R e q u e s t to the leader node. When transmitting, every leader node of the service cluster divides F i l e B i n a r y into N equal parts to create a F i l e H a s h . This process decentralizes the creation and verification of F i l e H a s h to be performed by multiple leader nodes in the service cluster. Additionally, the current leader node of service cluster sends a save request to the service contract to create T x r e s t o r e by collecting F i l e H a s h a n d U R L created by the leader node of the service cluster. In a smart contract, the F i l e H a s h of I D d a t a determines another cluster node as the generated F i l e H a s h and sends a U R L for recovery to the cluster nodes.
Algorithm 3 The process of querying and validating service data
Procedure: 
THE PROCESS OF CREATING QUERY R e q u e s t FROM U s e r
 1:
I P l e a d e r ← GetCurLeaderNode( I D s e r v i c e )
 2:
U R L , S i g n a t u r e PostRequest( I D s e r v i c e , I P l e a d e r , I D u s e r , T y p e , A d d r e s s , I D d a t a )
 3:
 
Procedure: 
THE PROCESS OF POSTING R e q u e s t FROM N o d e l e a d e r
 4:
I P c l u s t e r ← GetCurClusterNode( I D s e r v i c e )
 5:
U R L , S i g n a t u r e B r o a d c a s t R e q u e s t ( I P c l u s t e r , R e q u e s t )
 6:
 
Procedure: 
THE PROCESS OF BROADCASTING U R L FROM N o d e c l u s t e r
 7:
P A T H R e a d D a t a L o c a l S t o r a g e ( R e q e u s t . I D d a t a )
 8:
U R L G e n e r a t e U R L ( P A T H )
 9:
S i g G e n e r a t e S i g ( U R L , K e y p r i v )
10:
M e t a d a t a G e n e r a t e M e t a d a t a ( U R L , S i g )
11:
R e s p o n s e M e t a d a t a ( M e t a d a t a )
12:
 
Procedure: 
THE PROCESS OF VERIFICATING D a t a FROM U s e r
13:
F i l e H a s h G e t F i l e H a s h ( I D d a t a )
14:
F i l e G e t F i l e B i n a r y ( U R L )
15:
 
16:
if  G e t F i l e H a s h ( F i l e ) is not F i l e H a s h  then
17:
     I P l e a d e r ← GetCurLeaderNode( I D s e r v i c e )
18:
     U R L , S i g n a t u r e PostRequest( I D s e r v i c e , I P l e a d e r , I D u s e r , T y p e , A d d r e s s , I D d a t a )
19:
end if
Algorithm 4 The process of recovering service data
Procedure: 
THE PROCESS OF BROADCASTING T x r e c o v e r y FROM N o d e l e a d e r
 1:
B r o a d c a s t R e q u e s t ( I P c l u s t e r , R e q u e s t )
 2:
 
 3:
if  N o d e l e a d e r is C u r N o d e l e a d e r  then
 4:
     F i l e H a s h , S i g G e t R e c o v e r y R e s p o n s e ( )
 5:
     F i l e H a s h e s , S i g n a t u r e PostRequest( I D s e r v i c e , I P l e a d e r , I D u s e r , T y p e , A d d r e s s , I D d a t a )
 6:
    if  C o u n t ( F i l e H a s h e s ) is C o u n t ( N e t w o r k l e a d e r )  then
 7:
         T x r e s t o r e C r e a t e R e s t o r e T x ( K e y P r i v , F i l e H a s h e s )
 8:
         S t o r e R e s t o r e T x ( T x r e s t o r e )
 9:
    end if
10:
else if  N o d e l e a d e r is not C u r N o d e l e a d e r  then
11:
     U R L , S i g G e t R e c o v e r y U R L ( )
12:
     F i l e G e t F i l e B i n a r y ( U R L )
13:
     R e s u l t V e r i f y F i l e ( G e t F i l e H a s h ( F i l e ) , F i l e H a s h )
14:
    PostVerificationResult( R e s u l t )
15:
end if

4. Experiment

4.1. Experiment Setup

In this section, we describe the results of experiments conducted to measure and compare the performance of the proposed architecture. For the experiment, U s e r , cluster nodes that provide storage services, and leader node of the service cluster were configured on physically separated devices. The experimental environment in Table 3 is as follows. U s e r sent a request to the leader node via gRPC communication based on WiFi (802.11ac) in a Laptop with an Apple M1 Chip and 16 GB of RAM. The leader node runs on the Dell EMC PowerEdge R740 server (CPU: Intel® Xeon® Silver 4210R 2.4 G, RAM: 32 GB RDIMM), and a total of 3 nodes are configured as Docker containers locally on the server. The Cluster node is a desktop (Gen Intel(R) Core(TM) i9-11900KF, RAM 32.0 GB), and 3 nodes are configured as a Docker container unit. In the experiment, U s e r , cluster node, and leader node were included in different networks, so that the cluster node and the leader node were each assigned an IP. Since the goal of this experiment was to see how well we could distribute traffic rather than address scalability, we configured the network with a total of three nodes. The experiment measured and compared file data storage and query latency from the client’s point of view and measured data storage and recovery agreement and data storage latency during the operation of the proposed architecture.
Table 3. Experiment Enviroment.

4.2. Experiment Data

The performance evaluation criteria compared latency with IPFS, which is the most widely used off-chain. To measure the latency and performance of service data storage, the data size of the currently most used file format was organized as shown in Table 4.
Table 4. Dataset.

4.3. The Latency Service Data I/O

Figure 6 is the result of comparing the data input time of the network implementing the proposed system architecture and IPFS. In the proposed architecture, the user sends a request including the file binary and account information to the service leader node, and the service leader node broadcasts the request to the cluster node. The cluster node delivers the requested metadata to the service leader node, and the leader node combines them and transmits them to the smart contract. In the smart contract, the synchronization transaction is stored through the data transmitted by the service leader node, and the data of all cluster nodes is confirmed to be synchronized. In the process, when the latency from the time the user transmits the request to the synchronization transaction request to the smart contract was measured, the latency was lower than when the data of the same size were stored in the IPFS.
Figure 6. The latency insert compare with proposed method and IPFS.
Figure 7 is the result of comparing the data download request processing time of the network implementing the proposed system architecture and IPFS. In the proposed architecture, the user sends a request, including the ID of the returned data, to the service leader node after saving the data to request data. The service leader node transmits a request to the node corresponding to the current cluster node in a round-robin manner among cluster nodes. Upon receiving the request, the cluster node verifies the user’s address and signature and sends the data-accessible URL and URL to the user through the service leader node, including the encrypted signature with the cluster node’s private key. Users can download data through the URL. The latency in the process was further reduced by using the method of downloading binaries from a single node compared with the IPFS method, in which files are distributed and stored by multiple nodes. Therefore, it showed lower latency compared with the method of uploading data from IPFS and downloading distributed files through CID and showed a larger difference compared with the difference in data storage time.
Figure 7. The latency query compare with proposed method and IPFS.

4.4. The Latency of Processing Synchronization

Figure 8 is the result of measuring the latency for data consensus in progress to ensure synchronization of all cluster nodes for data when saving data in the proposed system architecture. To store the synchronization transaction, the file binary data are passed, and the cluster node must store the binary data and generate metadata, including the file hash and signature. In addition, the service leader node sends a request to store the synchronization transaction in the smart contract through the corresponding metadata. This process is included in the process of data consensus by storing the synchronization transaction. As a result of measuring this process, there was no significant difference according to the data size, and there was no large latency in the smart contract call or metadata generation latency. In the case of network latency, it increased as the data size increased, but it was confirmed that the increase did not significantly affect the performance.
Figure 8. The comparison of the sync consensus latency of data size.

4.5. The Latency of Processing Recovery

Figure 9 shows the latency for the data recovery consensus process by sending a request to the service leader node when the user verifies the data after downloading the file and if the verification fails. When a user sends a request to the service leader node, the leader node forwards the request to all cluster nodes. The cluster node forwards the data included in the request to all leader nodes. All leader nodes generate a FileHash value from file data, encrypt it with their private key, and transmit it to the current leader node, and the leader node calls a smart contract to save the recovery transaction. When the transaction is saved and the block is propagated, the cluster node checks whether the data has been restored through a smart contract event and requests the data through the URL to synchronize the data. In this process, the latency includes the process of requesting the user to download a file from the cluster node, verifying the file hash value through the data recorded in the blockchain, and delivering it to the cluster node through the service leader node. It also includes the process of sending the file binary data from the cluster node to the leader node and generating metadata, as well as the smart contract request time when the leader node currently selected as a round robin sends a recovery transaction storage request. As a result of the measurement, the latency for downloading the file binary data and verifying it by the user was the largest, and the latency for contract calls and metadata creation was constant. In the case of file transfer time, the latency increased according to the file size, but the increase was not large.
Figure 9. The comparison of the restore consensus latency of data size. (When replacing service leader node from 1 to 2).

4.6. The Latency of Service Recovery Due to the Crash Fault of Service Leader Node

Figure 10 shows the result of a comparison with the architecture in which the proposed leader replacement policy is applied to solve the traffic increase problem of the centralized gateway of the existing distributed file system. For the experiment, the user’s request was transmitted at the same interval when the leader node replacement method was applied and when it was not applied. In the case of leader node replacement, the three leader nodes change their order every 0.9 s in a round-robin manner and receive user requests. As a result of the experiment, when the gateway was centralized, the overall traffic increase was high for both data delivery and transmission from the leader node. When the user’s request data are transmitted, network traffic is about three times higher when there is one leader node than when three nodes are changed in a round-robin method. When user data are transmitted to the cluster node, the amount of traffic generated is higher than that of input traffic, and it is twice as high as when round-robin is applied.
Figure 10. The latency leader node replacement.

4.7. The Latency Analysis of Cluster Node Storage Processing

Figure 11 shows the result of measuring the latency when the cluster node stores and queries the file binary data. In this paper, we aim to reduce the latency that occurs when storing and querying file data using the file data management technique based on the existing external network. Both the network speed and file-data storage latency of the cluster node storing the data must be minimized. To this end, the file index was managed based on NoSQL, and the file data was stored in the local storage of the cluster node. Our results show no significant difference between the data storage path indexing latency and the file data storage latency for the data save request, and the read request had a higher latency for reading the file binary data. Both operations showed small latency that did not affect performance, and the increase in latency was not large depending on the file size.
Figure 11. The comparison storage processing latency.

5. Conclusions

In this paper, we propose a blockchain architecture to improve network latency and reliability, which is a limitation of technologies that use external off-chain networks due to the inability to store large amounts of data as the size of the blockchain increases when storing data generated by IoT devices. To reduce latency, blockchain nodes are clustered as a service unit to store and query data in local storage. The reliability of the data was ensured. When compared against existing off-chain alternatives, the results of our proposed architecture showed lower latency, and the local storage data processing speed of the cluster node and the latency in each process had a significant impact on performance. The experiments confirmed that there was no detrimental effect on performance. Additionally, unlike the existing data storage methods such as cloud storage and distributed file systems, the nodes of the blockchain network duplicate the data source, and the client directly verifies the tampering of the data and requests the data of the cluster nodes to synchronize the data to the original data. This guarantees reliability and reduces the possibility of data loss. In subsequent studies, distributed storage techniques are applied to solve the limitation of the local storage increase in each cluster node that is configured in service cluster units and maintains service binary file data in the blockchain network, an efficient replacement policy, and the signatures of leader nodes and cluster nodes. We plan to study how to reduce the gas consumption of smart contracts used for verification. In addition, we will refer to the comparative analysis of consensus algorithms [34] to identify the characteristics of each consensus algorithm and use the identified characteristics to make further improvements to the consensus algorithms we performed or supported in this study. Plus, as the availability of IoT services expands, the system proposed in this paper can be widely used in official document processing services and patent registration [35].

Author Contributions

D.N.: Conceptualization, Methodology, Programming, Writing-original draft preparation. S.P.: Supervision, Review, Project Administration, Funding acquisition. J.K.: Review. J.J.: Review. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by the Institute for Information & Communications Technology Promotion (IITP) funded by the Ministry of Science and ICT (MSIT), Korea Government, (Core technologies for hybrid P2P network-based blockchain services) under Grant 2021-0-00484.

Institutional Review Board Statement

Not applicable.

Data Availability Statement

Not applicable.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Nakamoto, S. Bitcoin: A peer-to-peer electronic cash system. Decentralized Bus. Rev. 2008, 21260. Available online: https://www.researchgate.net/publication/228640975_Bitcoin_A_Peer-to-Peer_Electronic_Cash_System (accessed on 12 October 2023).
  2. Wood, G. Ethereum: A secure decentralised generalised transaction ledger. Ethereum Proj. Yellow Pap. 2014, 151, 1–32. [Google Scholar]
  3. Androulaki, E.; Barger, A.; Bortnikov, V.; Cachin, C.; Christidis, K.; De Caro, A.; Enyeart, D.; Ferris, C.; Laventman, G.; Manevich, Y.; et al. Hyperledger fabric: A distributed operating system for permissioned blockchains. In Proceedings of the Thirteenth EuroSys Conference, Porto, Portugal, 23–26 April 2018; pp. 1–15. [Google Scholar]
  4. Ripeanu, M. Peer-to-peer architecture case study: Gnutella network. In Proceedings of the First International Conference on Peer-to-Peer Computing, Linkoping, Sweden, 27–29 August 2001; pp. 99–100. [Google Scholar]
  5. Khan, A.G.; Zahid, A.H.; Hussain, M.; Farooq, M.; Riaz, U.; Alam, T.M. A journey of WEB and Blockchain towards the Industry 4.0: An Overview. In Proceedings of the 2019 International Conference on Innovative Computing (ICIC), Lahore, Pakistan, 1–2 November 2019; pp. 1–7. [Google Scholar]
  6. Hendler, J. Web 3.0 Emerging. Computer 2009, 42, 111–113. [Google Scholar] [CrossRef]
  7. Gupta, S. What Is Web 3.0, and How Does It Impact Digital Marketers? Available online: https://www.gartner.com/en/digital-markets/insights/what-is-web-3-0 (accessed on 18 July 2022).
  8. Sumina, V. 26 Cloud Computing Statistics, Facts & Trends for 2023. Available online: https://www.cloudwards.net/cloud-computing-statistics/ (accessed on 24 August 2022).
  9. Cryptopedia. NBA Top Shot: Pioneering NFT Collectibles in Sports. Available online: https://www.gemini.com/cryptopedia/nba-topshot-nft-flow-blockchain-nba-moments (accessed on 13 September 2022).
  10. Howell, J. Everything You Need to Know about Axie Infinity. Available online: https://101blockchains.com/axie-infinity/ (accessed on 11 October 2022).
  11. Palaniyappan, G. NFT Marketplaces Are Centralized, and It’s a Real Problem. Available online: https://nftnow.com/features/nft-marketplaces-are-centralized-and-its-a-real-problem/ (accessed on 15 July 2022).
  12. Cpurchase. Sandbox AWS. Available online: https://gostackr.com/news/the-sandbox/ (accessed on 11 May 2023).
  13. Superrare. NFT Marketplace for Curated Cryptoart. Available online: https://superrare.com/ (accessed on 8 February 2023).
  14. Pinata. Pinata Makes It Easy to Build Apps and Share Files Using IPFS. Available online: https://www.pinata.cloud/ (accessed on 12 February 2023).
  15. Infura. The World’s Most Powerful Blockchain Development Suite. Available online: https://infura.io/ (accessed on 2 November 2022).
  16. Psaras, Y.; Dias, D. The interplanetary file system and the filecoin network. In Proceedings of the 2020 50th Annual IEEE-IFIP International Conference on Dependable Systems and Networks-Supplemental Volume (DSN-S), Valencia, Spain, 29 June–2 July 2020; p. 80. [Google Scholar]
  17. Benet, J. Ipfs-content addressed, versioned, p2p file system. arXiv 2014, arXiv:1407.3561. [Google Scholar]
  18. Team, S. Swarm-Whitepape. Available online: https://www.ethswarm.org/swarm-whitepaper.pdf (accessed on 23 September 2022).
  19. Web3Storage. Platform Offering Decentralized Storage Software. Available online: https://web3.storage/ (accessed on 11 March 2023).
  20. Wilkinson, S.; Boshevski, T.; Brandoff, J.; Buterin, V. Storj a Peer-to-Peer Cloud Storage Network. 2014. Available online: https://www.storj.io/storj2014.pdf (accessed on 17 November 2022).
  21. McConaghy, T.; Marques, R.; Müller, A.; De Jonghe, D.; McConaghy, T.; McConaghy, T.; Marques, R.; Müller, A.; De Jonghe, D.; McConaghy, T.; et al. Bigchaindb: A scalable blockchain database. White Pap. BigChainDB 2016, 53–72. Available online: https://www.bigchaindb.com/whitepaper/ (accessed on 12 October 2023).
  22. Bradshaw, S.; Brazil, E.; Chodorow, K. MongoDB: The Definitive Guide: Powerful and Scalable Data Storage; O’Reilly Media: Sebastopol Sonoma County, CA, USA, 2019. [Google Scholar]
  23. Buchman, E. Tendermint: Byzantine Fault Tolerance in the Age of Blockchains. Ph.D. Thesis, University of Guelph, Guelph, ON, Canada, 2016. [Google Scholar]
  24. Perard, D.; Gicquel, L.; Lacan, J. BlockHouse: Blockchain-based distributed storehouse system. In Proceedings of the 2019 9th Latin-American Symposium on Dependable Computing (LADC), Natal, Brazil, 19–21 November 2019; pp. 1–4. [Google Scholar]
  25. Pise, R.; Patil, S. Enhancing Security of Data in Cloud Storage using Decentralized Blockchain. In Proceedings of the 2021 Third International Conference on Intelligent Communication Technologies and Virtual Mobile Networks (ICICV), Tirunelveli, India, 4–6 February 2021; pp. 161–167. [Google Scholar]
  26. Srikanth, S.; Kumar, T.S.; Anamalamudi, S.; Enduri, M. Decentralized Cloud Storage using Unutilized Storage in PC. In Proceedings of the 2021 12th International Conference on Computing Communication and Networking Technologies (ICCCNT), Kharagpur, India, 6–8 July 2021; pp. 1–5. [Google Scholar]
  27. Nandini, K. Efficient-way of Data Storage on Decentralized Cloud using Blockchain Technology. In Proceedings of the 2021 International Conference on Disruptive Technologies for Multi-Disciplinary Research and Applications (CENTCON), Bengaluru, India, 19–21 November 2021; Volume 1, pp. 124–128. [Google Scholar]
  28. Huang, P.; Fan, K.; Yang, H.; Zhang, K.; Li, H.; Yang, Y. A collaborative auditing blockchain for trustworthy data integrity in cloud storage system. IEEE Access 2020, 8, 94780–94794. [Google Scholar] [CrossRef]
  29. Li, R.; Song, T.; Mei, B.; Li, H.; Cheng, X.; Sun, L. Blockchain for large-scale internet of things data storage and protection. IEEE Trans. Serv. Comput. 2018, 12, 762–771. [Google Scholar] [CrossRef]
  30. Wang, S.; Zhang, Y.; Zhang, Y. A blockchain-based framework for data sharing with fine-grained access control in decentralized storage systems. IEEE Access. 2018, 6, 38347–38450. [Google Scholar] [CrossRef]
  31. Tang, Y.; Zou, Q.; Chen, J.; Li, K.; Kamhoua, C.A.; Kwiat, K.; Njilla, L. ChainFS: Blockchain-secured cloud storage. In Proceedings of the 2018 IEEE 11th International Conference on Cloud Computing (CLOUD), San Francisco, CA, USA, 2–7 July 2018; pp. 987–990. [Google Scholar]
  32. Xu, Y.; Huang, Y. Segment blockchain: A size reduced storage mechanism for blockchain. IEEE Access 2020, 8, 17434–17441. [Google Scholar] [CrossRef]
  33. Shreedhar, M.; Varghese, G. Efficient fair queuing using deficit round-robin. IEEE/ACM Trans. Netw. 1996, 4, 375–385. [Google Scholar] [CrossRef]
  34. Yang, G.; Lee, K. Resource Analysis of Blockchain Consensus Algorithms in Hyperledger Fabric. IEEE Access 2022, 10, 74902–74920. [Google Scholar] [CrossRef]
  35. Zheng, Z.; Xie, S. Blockchain challenges and opportunities: A survey. Int. J. Web Grid Serv. 2018, 14, 352–375. [Google Scholar] [CrossRef]
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content.

Article Metrics

Citations

Article Access Statistics

Multiple requests from the same IP address are counted as one view.