# Research on Blockchain Data Availability and Storage Scalability
## 3 Definition of Blockchain Data Availability  
The main activities of blockchain can be summarized into two parts: establishing data synchronization processes between nodes and the full transaction lifecycle from creation to uplink. This section introduces the data synchronization process and the full transaction lifecycle, analyzes the specific manifestations of data availability, and proposes a definition of blockchain data availability. The data synchronization process refers to the process that a node needs in order to obtain the latest data in the initialization phase, either when it is newly added to the blockchain or after it is offline and brought online again. It mainly includes five stages: the initiation of a request, the establishment of a connection, data transmission, data validation, and data storage, as shown in Figure 1.  
1. The initiation of a request: A node sends a request to other nodes in the blockchain to obtain the block data. 2. The establishment of a connection: After receiving the request, other nodes establish a connection with the requesting node. 3. Data transmission: Once the node establishes a connection, data can be synchronized. Data, typically including block data, transaction data, etc., is synchronized between nodes by sending and receiving messages. Data needs to be transmitted within a certain time, and therefore, data availability is reflected. 4. Data verification: When the node receives data, it needs to first verify the data to ensure its correctness and legitimacy. For block data, the node needs to verify whether the hash value of a received block is correct and whether the transactions in the block are legal. For transaction data, the node needs to verify whether the signature of the transaction is correct and whether the transaction complies with rules. Data validation needs to obtain relevant data within a certain time; therefore, data availability is reflected. 5. Data storage: When data validation is completed, the node stores the data in its local database. The full transaction lifecycle of blockchain includes seven stages: the creation of a transaction, the broadcasting of the transaction, transaction verification, the entering of the transaction pool, mining, the broadcasting of the block, and blockchain updating, as shown in Figure 2.  
1. The creation of a transaction: The creator of the transaction uses a private key to sign the transaction information, proving its authenticity and validity. 2. The broadcasting of the transaction: The signed transaction information is broadcast to the network. 3. Transaction verification: The node obtains relevant data to verify the signature, the legitimacy of the transaction content, whether there is double spending, and other  
Figure 1: Data synchronization process. Figure 2: Full transaction lifecycle of blockchain. abnormal conditions. The node needs to obtain data within a certain time; therefore, data availability is reflected. 4. The entering of the transaction pool: Verified transactions enter the transaction pool and wait to be packaged into blocks. 5. Mining: Miners select some transactions from the transaction pool and pack them into a new block. 6. The broadcasting of the block: Miners broadcast the newly generated block to the network, and other nodes verify and confirm it. 7. Blockchain updating: Verified and confirmed blocks are added to the blockchain, and transactions are permanently recorded on the blockchain. Based on the above analysis, it is clear that the data availability of blockchain is mainly reflected in the data transmission stage and transaction verification stage. In the data transmission stage, each node has a data acquisition time limit [21; 22], and it is necessary to obtain the target data within this time limit. In the transaction verification stage, nodes need to obtain target data within a time limit. Full nodes need to obtain locally stored target data within a time limit, while degraded nodes need to obtain target data from other nodes within a time limit.