| Literature DB >> 32521762 |
Ting Lin1, Xu Yang1, Taoyi Wang1, Tu Peng1, Feng Xu1, Shengxiong Lao1, Siyuan Ma1, Hanfeng Wang1, Wenjiang Hao1.
Abstract
With the development of technology, the network structure has changed a lot. Many people regard the Internet of Things as the next-generation network structure, which means all the embedded devices can communicate with each other directly. However, some problems remain in IoT before it can be applied in a large scale. Blockchain, which has become a hot research topic in recent years, may be one of the solutions. However, currently, the transaction speed of blockchain is still a disadvantage compared to traditional transaction methods. This paper focuses on to implement a high-performance blockchain platform. After investigation of the current blockchain consensus algorithm and blockchain architecture, we propose: (1) an improved blockchain consensus algorithm, which is implemented based on the mortgage model instead of probability model; (2) a cross-chain protocol with transverse expansion capacity, which would support the message transmission among chains; (3) a high-performance cross-chain blockchain network structure, which could handle more than 1000 transactions per second per chain by verification. Experiments have been carried out, and shown that the cross-chain blockchain network structure we provided is feasible to meet the requirement of large-scale distributed IoT applications.Entities:
Keywords: IoT; blockchain; consensus algorithm; cross-chain protocol; high-performance
Year: 2020 PMID: 32521762 PMCID: PMC7309068 DOI: 10.3390/s20113268
Source DB: PubMed Journal: Sensors (Basel) ISSN: 1424-8220 Impact factor: 3.576
Figure 1Flow of the designed consensus algorithm.
Figure 2Idea of light client.
Figure 3Cross-Chain network structure.
Figure 4Structure of a single chain.
Structure of block head.
| Name | Type | Meaning |
|---|---|---|
| ChainID | String | Id of the chain |
| Height | Int | Height level of the block |
| Time | Date | Creation time of a block |
| NumTxs | Int | Number of transactions |
| LastBlock ID | BlockID | Previous block’s ID |
| LastCommitHash | [ ]byte | Hash for previous block from producer node |
| DataHash | [ ]byte | Hash of transaction |
| BlockProducer Hash | [ ]byte | Hash of the producer node which is packaging the current block |
| AppHash | [ ]byte | Merkle root of the previous block transaction |
Data structure of SendTx.
| Name | Type | Meaning |
|---|---|---|
| From | []SendFrom | Transaction input |
| To | []SendTo | Transaction output |
Data structure of SendFrom.
| Name | Type | Meaning |
|---|---|---|
| From | String | Sender |
| Token | Token | The amount of token |
| Sequence | Int | Sequence number |
| Signature | Signature | Signature |
| PublicKey | PubKey | Public key of the sender |
Data structure of SendTo.
| Name | Type | Meaning |
|---|---|---|
| To | String | The transaction receiver |
| Token | Token | The amount of token |
Data structure of Token.
| Name | Type | Meaning |
|---|---|---|
| Symbol | String | Symbol |
| Amount | Int64 | Token amount |
Network latency with 4 producer nodes under failure assumption.
| TimeoutPropose | Min (ms) | Max (ms) | Average (ms) | Median (ms) | 95% Percentile |
|---|---|---|---|---|---|
| 500 | 433 | 15,327 | 2178 | 1103 | 5574 |
| 1000 | 521 | 18,150 | 2180 | 1049 | 5669 |
| 2000 | 472 | 15,065 | 2038 | 1052 | 5480 |
| 3000 | 429 | 9959 | 2003 | 1091 | 5501 |
Network latency with 8 producer nodes under failure assumption.
| TimeoutPropose | Min (ms) | Max (ms) | Average (ms) | Median (ms) | 95% Percentile |
|---|---|---|---|---|---|
| 500 | 619 | 126,320 | 2701 | 992 | 5590 |
| 1000 | 572 | 9835 | 1761 | 963 | 5837 |
| 2000 | 595 | 8872 | 1659 | 970 | 5483 |
| 3000 | 536 | 10102 | 1635 | 961 | 5489 |
Network latency with 16 producer nodes under failure assumption.
| TimeoutPropose | Min (ms) | Max (ms) | Average (ms) | Median (ms) | 95% Percentile |
|---|---|---|---|---|---|
| 500 | 783 | 21,360 | 1978 | 1002 | 5931 |
| 1000 | 759 | 12,661 | 1762 | 983 | 5645 |
| 2000 | 752 | 21,283 | 2043 | 1006 | 6871 |
| 3000 | 720 | 72,403 | 2392 | 990 | 5986 |
Network latency with 32 producer nodes under failure assumption.
| TimeoutPropose | Min (ms) | Max (ms) | Average (ms) | Median (ms) | 95% Percentile |
|---|---|---|---|---|---|
| 500 | 761 | 24,693 | 2592 | 1085 | 14,026 |
| 1000 | 752 | 19,697 | 2326 | 1113 | 9325 |
| 2000 | 853 | 21,041 | 2176 | 1140 | 6512 |
| 3000 | 762 | 25,585 | 2287 | 1118 | 6706 |
Figure 5Relationship of network latency and transaction efficiency.
Figure 6Relationship of throughput and block size.
Figure 7Relationship of transaction amount and block latency for single data center.
Figure 8Comparison of the query overhead for reads.
Figure 9Comparison of the CPU usage in percentage.
Figure 10Comparison of the memory usage in percentage.
Figure 11Compare with Bitcoin and Ethereum.
Figure 12Cross-chain transaction efficiency.
Comparison with Bitcoin and Ethereum.
| Architecture | Byzantine Fault Tolerance | Cross-Chain Transaction | High-Performance |
|---|---|---|---|
| Blockchain designed in this paper |
|
|
|
| Bitcoin |
| × | × |
| Ethereum |
| × | × |