## 6 Experiment
### Experimental Results  
Simulation experiments were carried out on the state data, transaction data, query efficiency, and the blockchain to verify the storage efficiency, query efficiency, and data availability provided by this solution. During the experiment, a small-world network with 100 nodes (\(dim=3\), \(size=5\), \(nei=1\), \(p=0.1\)) was created with the use of the igraph library in Python. Based on the cluster division method designed in our system, the nodes in the network were divided into four clusters. At this time, \(m=4\), \(n=25\), and the number of sharding replicas \(s\) was set to \(s=\left\lceil 2n/3\right\rceil\), i.e., two thirds of the total number of nodes in the cluster rounded upward to obtain the number of replicas of the sharding. The small-world network model is shown in Figure 5.  
Experiment 1: Single-node storage consumption. In the experiment, we set the size of a world's state record to \(S_{w}\), transaction data to \(S_{t}\), and a block to \(S_{b}\). For simplicity of the experiments, the block header data were ignored. Transactions were simulated between different world states, and the transaction data were stored. When the transaction data reached the threshold of the specified block size, a new block was generated and broadcasted, and the block was stored on a peer node in the network according to the design of this scheme. The network was initialized according to the Fabric default values, setting the \(S_{b}\) value to 512k, while each block contained 10 transaction data, bringing the \(S_{t}\) value to 51.2k. The variable \(N_{t}\) indicates the total number of transactions generated in the network, and \(N_{w}\) indicates the total number of world states generated in the network. The experimental results of the simulated storage consumption within a single node are shown in Figure 6.  
By analyzing the experimental results in Figure 6, it can be concluded that:  
(1) When \(N_{t}\) was less than or equal to \(N_{w}\) in the network (one world state corresponding to at most one transaction), there was no significant change in the storage space consumed by DBDSM nodes compared with the Fabric node data storage. When \(N_{t}\) dimin  
Figure 5: Small-world network model. Figure 6: Single-node storage consumption. ished, as \(N_{w}\) increased, the DBDSM node storage consumption was closer to the original Fabric node storage consumption. (2) When \(N_{t}\) in the network was larger than \(N_{w}\), with one world state corresponding to multiple transactions, DBDSM node storage consumption appeared significantly reduced compared with the Fabric node data storage. When \(N_{t}\) was much larger than \(N_{w}\), compared with the transaction data, the impact of state data on node storage consumption can be neglected. At this time, the storage consumption of DBDSM nodes was smaller compared with the Fabric nodes, at 66% of the storage consumption of Fabric nodes. From the experimental results in Figure 7, it can be concluded that:  
(1) When the number of transactions generated in the network was small, the data generated were also small, and the quantities of data stored by the nodes in the DBDSM model, RapidChain model, and the Fabric model did not differ greatly. Because each scheme stores state data, when the transaction data were small, the main impact on storage was restricted to the state data. (2) With the increase in the number of transactions generated in the network, compared with Fabric, the DBDSM model and the RapidChain model tended to flatten the increment of node storage data, because both the DBDSM model and the RapidChain model use a sharding scheme, reducing the number of single nodes and the amount of data stored by each node. (3) When the number of transactions generated in the network continued to increase, the growth rate of data storage in the DBDSM model nodes was slower than in RapidChain. We can conclude that the DBDSM model has good scalability performance. Experiment 2: Query efficiency.