Before we talk about the PlatON testing, we need to figure out the difference between blockchain testing and traditional Internet testing. That is mainly reflected in the blurring of the system boundary: the former is not only between the front-end API and a certain blockchain node but also among a large number of blockchain nodes.
At the same time, it should be noted that the PlatON chain includes public chains and private chains that vary from each other in terms of management, user identity, the maximum number of nodes, etc. The testing needs to factor in all the modes, making the testing schemes and scenarios more complicated than in conventional testing.
Now let’s look at PlatON. First of all, it is not a product of exchange, but a basic ecological service based on blockchain technology and the value generated by chain technology. It has a different focus as well. PlatON testing will pay more attention to the base layer, such as the consensus algorithm, network, storage, and economic model.
Overview of PlatON Testing
It can be seen from the case panorama that the process is divided into five categories to verify the system for the sake of security and reliability.
1. Initialization
On the stage of the chain initialization, we mainly verify the rationality of the contract account, information and parameters in the economic model when the private chain is built on or linked to the mainnet.
Implicit initialization — connection to the PlatON mainnet without a network specified. We need to verify the consistency between the on-chain information and the built-in information after the network node is successfully built.
Explicit initialization — connection to a specific private network through the initialization of the genesis file. Then we need to verify the consistency between the on-chain information and the built-in information.=
Consensus — Economic model, governance, penalty, reward, and additional issuance.
Initialization parameters are general system parameters, mainly in two types: the mainnet parameters and the custom parameters:
Mainnet parameters — linked to the PlatON mainnet by adding command parameters when starting the node. We need to verify the consistency between the on-chain consensus, economic model, governance parameters, etc. and the mainnet parameters.
Custom parameters — realized by adjusting the initialization parameters in the initial genesis file when the node is started. Then we initialize the node through the chain and verify the consistency between the parameters on the chain and the parameters in the genesis file.
However, it should be noted that when we customize the parameters, the thresholds in the genesis file should be adjusted reasonably. Different parameter combinations will eventually determine the success of the chain startup and the changes in the rules running on the chain. Our testing is to verify whether the various boundary values arising from the changes of these parameters and the parameters can provide reasonable standards for the operation of the chain.
2. Start-up
In the start-up phase, the testing is divided into two categories: one for single nodes and one for clusters. The way a chain operates relies on the number of nodes. So we start from a simple structure, and then slowly increase the number of nodes to simulate the real environment.
Single node
- Startup node
- View node
- View version
- On-chain functions
Cluster
- A cluster of quick parameters
- Mainnet cluster
- On-chain functions
As the carrier of the blockchain operation, nodes get involved in almost everything, such as network communication, logical operations, transactions, and data verification. The blockchain is generally composed of multiple nodes in synergy, so the node attributes and the management of nodes are essential. In reality, nodes can join or exit the blockchain network, under the control of the manager, without affecting the normal operation of the business or be scaled.
The node-related verification mainly includes the operation of nodes when the chain with different numbers of nodes is deployed and the effect of different parameter combinations on the chain when the genesis file is started, such as the number of consensus nodes, governance parameter configuration, and synchronization method. We verify the rationality of the configuration parameters in different combinations. At the same time, since nodes come with different startup parameters, we need to verify the validity of the startup commands and their impact on the chain by adjusting the startup parameters during the operation of the chain.
It is also necessary to verify the functions on the chain under the single node and cluster modes to ensure the PlatON economic model delivers consistent business expression in different modes.
Publisher:PlatONWorld,Please indicate the source for forwarding:https://platonworld.org/?p=4095