CN114201404A - Pressure test system and method of block chain network - Google Patents

Pressure test system and method of block chain network Download PDF

Info

Publication number
CN114201404A
CN114201404A CN202111535104.9A CN202111535104A CN114201404A CN 114201404 A CN114201404 A CN 114201404A CN 202111535104 A CN202111535104 A CN 202111535104A CN 114201404 A CN114201404 A CN 114201404A
Authority
CN
China
Prior art keywords
transaction
blockchain
block chain
workflows
blockchain network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111535104.9A
Other languages
Chinese (zh)
Inventor
郑子彬
刘渤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202111535104.9A priority Critical patent/CN114201404A/en
Publication of CN114201404A publication Critical patent/CN114201404A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

The invention provides a pressure test system and a method of a block chain network, wherein the system comprises: the system comprises a block chain client, a block chain network and a block chain network, wherein the block chain client is used for creating a plurality of transaction data with sequence among a plurality of users, preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and submitting the transaction workflows to the block chain network for pressure test; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction; and the blockchain network is used for executing the pressure test on a plurality of transaction workflows through the nodes of the blockchain network to acquire pressure test performance data of the blockchain network. The invention can utilize the resource performance of the blockchain network to the maximum extent through a plurality of parallel transaction workflows, can improve the execution speed of the blockchain network on a plurality of blockchain transactions, and improves the accuracy of the test result of the blockchain network pressure test.

Description

Pressure test system and method of block chain network
Technical Field
The invention relates to the technical field of block chains, in particular to a system and a method for testing the pressure of a block chain network.
Background
The blockchain, as a typical distributed ledger system, has gained more and more attention and applications in recent years by virtue of its decentralized and non-tamper-proof nature. However, the performance and throughput of the current blockchain still cannot meet the high-load and high-concurrency scenario, and how to accurately acquire the performance index of the blockchain network is very important for normal operation and optimization of the blockchain network.
In the prior art, by injecting transaction flow of a pressure test into a blockchain network, various performance indexes such as load capacity, transaction data processing throughput, delay time and the like of the blockchain network can be obtained, so that normal operation of the blockchain network is maintained according to the performance indexes, and the blockchain network is optimized in a targeted manner.
In the prior art, a massive injection transaction is adopted to perform a pressure test on a blockchain network, factors such as an actual application scene of the transaction, a coupling degree between transactions, a relative sequence between transactions and the like are not considered, and transaction conflict may exist, so that a pressure test result of the blockchain network is not accurate enough.
Disclosure of Invention
The invention provides a pressure test system and method of a block chain network, which aim to solve the technical problems of insufficient pressure test of the block chain network and inaccurate pressure test result of the block chain network caused by transaction conflict.
The purpose of the invention can be realized by the following technical scheme:
a system for pressure testing of a blockchain network, comprising:
the system comprises a block chain client, a block chain network and a block chain network, wherein the block chain client is used for creating a plurality of transaction data with sequence among a plurality of users, preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and submitting the transaction workflows to the block chain network for pressure test; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction;
and the blockchain network is used for executing the pressure test on a plurality of transaction workflows through the nodes of the blockchain network to acquire pressure test performance data of the blockchain network.
Optionally, the transaction data further comprises:
an intelligent contract and a number of calls to the intelligent contract, the intelligent contract being an executable piece of code that when executed generates a plurality of blockchain transactions having a logical relationship.
Optionally, the blockchain client comprises:
the transaction data creating module is used for creating a plurality of transaction data with a sequence among a plurality of users;
the transaction data preprocessing module is used for preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted;
and the task submitting module is used for submitting the transaction workflows to a blockchain network so as to carry out stress testing.
Optionally, the preprocessing the transaction data by the transaction data preprocessing module to obtain a plurality of transaction workflows that can work in parallel and are not conflicted with each other includes:
the transaction data preprocessing module analyzes the transaction data by constructing a directed acyclic graph to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted.
Optionally, the task submitting module submitting the plurality of transaction workflows to a blockchain network for stress testing comprises:
and the task submitting module determines the concurrency number of the transaction workflow according to preset parameters, and submits the transaction workflow to a block chain network according to the concurrency number so as to carry out pressure testing.
The invention also provides a pressure test method of the block chain network, which comprises the following steps:
the method comprises the steps that a blockchain client creates a plurality of transaction data with sequence among a plurality of users, the transaction data are preprocessed to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and the transaction workflows are submitted to a blockchain network for pressure testing; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction;
and the blockchain network executes a plurality of transaction workflows to perform pressure test through the nodes of the blockchain network, and obtains pressure test performance data of the blockchain network.
Optionally, the transaction data further comprises:
an intelligent contract and a number of calls to the intelligent contract, the intelligent contract being an executable piece of code that when executed generates a plurality of blockchain transactions having a logical relationship.
Optionally, the preprocessing the plurality of transaction data to obtain a plurality of transaction workflows that can work in parallel and are not mutually conflicted includes:
and analyzing the transaction data by constructing a directed acyclic graph to obtain a plurality of transaction workflows which can work in parallel and are not conflicted with each other.
Parsing a plurality of the transaction data by constructing a directed acyclic graph comprises:
constructing a directed acyclic graph according to the sequence of the plurality of blockchain transactions, and dividing the blockchain transactions which are not connected successively into different transaction workflows through the directed acyclic graph;
or the logic of the intelligent contract is analyzed by using the abstract syntax tree, the conflict relationship among the block chain accounts is split, and the block chain transactions without sequential connection are divided into different transaction workflows.
Optionally, submitting a plurality of the transaction workflows to a blockchain network for stress testing comprises:
and determining the concurrency number of the transaction workflow according to preset parameters, and submitting the transaction workflow to a block chain network according to the concurrency number so as to carry out pressure testing.
The invention provides a pressure test system and a method of a block chain network, wherein the system comprises: the system comprises a block chain client, a block chain network and a block chain network, wherein the block chain client is used for creating a plurality of transaction data with sequence among a plurality of users, preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and submitting the transaction workflows to the block chain network for pressure test; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction; and the blockchain network is used for executing the pressure test on a plurality of transaction workflows through the nodes of the blockchain network to acquire pressure test performance data of the blockchain network.
In view of the above, the invention brings the following beneficial effects:
the invention provides a pressure test system and a method of a block chain network, wherein a user creates a plurality of block chain transactions with a sequence according to an actual application scene, defines the execution times of each block chain transaction, fully considers the use scene of the block chain transactions and the coupling degree and the relative sequence between the block chain transactions, and can reduce the influence of the randomness of the block chain transactions on the performance of the block chain network; and then preprocessing the block chain transactions, so that a plurality of transaction workflows which can be processed in parallel and are not mutually conflicted can be quickly analyzed from the plurality of block chain transactions, the parallelism in the pressure test process of the block chain network can be improved, the resource performance of the block chain network can be utilized to the maximum extent, the execution speed of the block chain network on the plurality of block chain transactions can be improved, and the accuracy of the test result of the pressure test of the block chain network can be improved.
Drawings
FIG. 1 is a schematic structural diagram of a pressure testing system according to the present invention;
FIG. 2 is a schematic flow chart of the pressure testing method of the present invention;
FIG. 3 is a first flowchart illustrating a pressure testing method according to an embodiment of the present invention;
FIG. 4 is a second flowchart illustrating a pressure testing method according to an embodiment of the present invention.
Detailed Description
Interpretation of terms:
block chains: the blockchain technology is originally developed from a bitcoin system and a principle abstraction thereof, and in a narrow sense, the blockchain refers to a data block which is similar to a data block which is formed by connecting a chained hash structure in the bitcoin system in series, and meanwhile, chained hash certification is realized, so that historical data cannot be tampered.
Directed acyclic graph: the DAG is short, and the references to directed graphs in the present invention are directed acyclic graphs. It is a mathematical concept, in graph theory, a directed acyclic graph refers to a directed graph without loops, and the more precise definition is: if a directed graph cannot go from a certain vertex back to the point through several edges, the graph is a directed acyclic graph.
Intelligent contract: in essence, an intelligent contract is a program that implements automated processing of a traditional contract in the form of computer instructions, simply a piece of code that triggers execution when two parties trade on a blockchain asset, which is an intelligent contract. The contracts are written into the block chains in a digital form, data cannot be deleted or modified due to the characteristics of the block chains, only new data can be added, the whole process is transparent and trackable, the historical traceability is guaranteed, and meanwhile the decentralization is guaranteed by combining the block chains.
Asynchronous concurrency: concurrent in the operating system means that several programs are in a running state in a time period; asynchronous means that the program stream continues to execute without waiting; the combination of the two is simply understood that the processing can be carried out simultaneously without waiting each other in the execution process of a batch of programs, and the effect of quick parallelism is achieved.
Abstract Syntax Tree (AST): syntax tree (Syntax tree) is an abstract representation of the Syntax structure of source code. It represents the syntactic structure of the programming language in the form of a tree, each node on the tree representing a structure in the source code.
To facilitate an understanding of the invention, the invention will now be described more fully with reference to the accompanying drawings. Preferred embodiments of the present invention are shown in the drawings. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete.
Unless defined otherwise, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. The terminology used in the description of the invention herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the term "and/or" includes any and all combinations of one or more of the associated listed items.
The embodiment of the invention provides a system and a method for testing the pressure of a block chain network, which are used for solving the technical problems that the pressure test of the block chain network is insufficient and the pressure test result of the block chain network is not accurate enough due to transaction conflict.
At present, the performance and throughput of the blockchain network still cannot meet the high-load and high-concurrency scenario, and therefore more and more blockchain development researches are generated, and in the development process, obtaining performance index data of the blockchain network becomes an important reference way for developers. By injecting transaction flow of a pressure test into the blockchain network, various performance index data such as the load capacity, transaction data processing throughput and delay time of the blockchain network can be obtained, so that the normal operation of the blockchain is maintained according to the performance indexes, and the performance of the blockchain network is optimized in a targeted manner.
Most of the existing research on block chain test frameworks focuses on building a block chain framework from three aspects of transaction performance, resource performance and network performance, and then testing, for example, performance indexes such as throughput, delay time, consumption of a CPU (central processing unit) and a memory, network delay, availability of nodes and the like. The pressure test on the basis usually achieves the purpose of performance test by injecting a large amount of execution transactions, intelligent contracts or replaying actual world transactions into a built block chain network and then collecting performance indexes through various methods.
In these researches, a large amount of injection transactions are usually used for testing, without considering the coupling degree between users, the actual application scenario of the transactions and the sequence between transactions, and also without considering the result that block chain transactions cannot be highly concurrent and the performance of the block chain is squeezed out as much as possible due to the fact that transaction queues influenced by intelligent contracts and transactions are not considered, so that the pressure test result of the block chain network is far lower than the limit performance of the actual block chain, that is, the performance index obtained by pressure testing the block chain network cannot embody the best performance of the block chain network due to the influence of randomness of a batch of block chain transactions of different test scenarios.
The invention aims to solve the following primary problems: the pressure test scheme of the block chain system, namely under different application scenes of carrying out pressure test aiming at the block chain, the pressure test system and the method of the block chain network provided by the invention can completely extract the resource capability of the block chain network, thereby effectively testing the ultimate performance of the block chain network.
The invention aims at the point, a batch of block chain transactions which need to be subjected to pressure testing are preprocessed, Directed Acyclic Graph (DAG) task analysis is carried out, the analysis comprises intelligent contracts and decoupling of the block chain transactions, the block chain transactions are optimized into transaction workflows which can be executed in parallel as best as possible through the DAG task analysis, and a block chain network is driven to run under the maximum pressure concurrently, so that the measured data is the data which should be obtained under the pressure testing.
Referring to fig. 1, an embodiment of a system for testing a pressure in a blockchain network according to the present invention includes:
the system comprises a block chain client 11, a block chain network and a block chain server, wherein the block chain client is used for creating a plurality of transaction data with sequence among a plurality of users, preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and do not conflict with each other, and submitting the transaction workflows to the block chain network for pressure testing; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction;
and the blockchain network 22 is used for performing pressure test on a plurality of transaction workflows through the nodes of the blockchain network to acquire pressure test performance data of the blockchain network.
The system for testing the pressure of the blockchain network provided in this embodiment can perform an effective pressure test on the blockchain network, and the blockchain network in this embodiment includes various types of blockchain systems, such as an ethernet, an EOS, a Fabric, and various alliance chains.
In this embodiment, the blockchain client creates a plurality of transaction data having a sequence among a plurality of users, and the purpose of defining the transaction data is to simulate the transaction data. The blockchain client in this embodiment includes: the transaction data creating module is used for creating a plurality of transaction data with a sequence among a plurality of users; the transaction data preprocessing module is used for preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted; and the task submitting module is used for submitting the transaction workflows to a blockchain network so as to carry out stress testing.
When the block chain is subjected to pressure testing, testers such as developers, users, experimenters and the like define a batch of transaction data according to an actual scene used by the testers, wherein the transaction data comprises a plurality of block chain transactions and/or intelligent contracts which are used for carrying out pressure testing and have a sequence, and the execution times of the block chain transactions and/or the calling times of the intelligent contracts. The purpose of defining these transaction data in this embodiment is to construct a batch of transactions to simulate the usage scenario of the bank background system by the blockchain client in order to simulate a certain application scenario that the user wants to perform a test, such as using a blockchain by the bank background system and testing the performance of this blockchain network in this scenario; the panning background system uses a block chain, and a batch of transactions are constructed through a block chain client to simulate the use situation of the panning background system.
For example, assuming A, B, C, D, E, F, G, H, I represents a user created by a bank back office system (i.e., a blockchain account), if the blockchain transactions, i.e., the first blockchain transactions, are:
a- - -100- - > B (representing A transferring 100 Yuan to B)
B---100--->C
C---100--->D
E---100--->F
F---100--->G
H---100--->I
For example, for a blockchain of a banking system, a tester can randomly define transfer transactions among a plurality of users through a blockchain client, such as transactions of A transferring to B, B transferring to C, D transferring to F and the like. The tester may also define an intelligent contract through the blockchain client, the intelligent contract defining an executable piece of code that when executed generates a plurality of blockchain transactions having a logical relationship. Logic for some user transfers may be defined in the smart contract, such as: when the balance of the A is larger than that of the B, the A transfers accounts to the B; when the balance of B is larger than that of A, B transfers to A and the like.
Because the users using the blockchain define the content of the trading and/or intelligent contracts according to the familiar application scenes, the trading and/or intelligent contracts defined by different users can have great difference.
In this embodiment, the transaction data may be preprocessed by constructing a directed acyclic graph, or DAG, in a manual or automatic manner. Firstly, a user can plan an optimal transaction sequence and an optimal execution sequence of an intelligent contract according with an actual scene of the user in a mode of constructing a directed acyclic graph; secondly, in a whole batch of blockchain transactions defined by a user, the user can rapidly analyze a plurality of transaction workflows which have the highest speed and can be processed in parallel through the directed acyclic graph, the parallelism in the process of pressure testing on a blockchain network can be improved, the resource performance of the blockchain network can be fully utilized, the execution speed of the blockchain network on the plurality of blockchain transactions can be improved, and the result data of the pressure testing of the blockchain network is more accurate.
It should be noted that the highest-speed transaction workflows that can be processed in parallel refer to transaction workflows in other combination forms, and when the transaction workflows consume the same resources, the execution speed is the fastest, the execution time is the shortest, it can be ensured that block chain transactions are highly concurrent as possible, the performance of a block chain network can be maximally squeezed, and when the group of transaction workflows is used for performing a pressure test on the block chain network, the optimal performance index data can be obtained.
In the construction of a directed acyclic graph, i.e., DAG, in a conventional test scenario, basically all testers have two test approaches, the first test approach is: during testing, a batch of blockchain transactions defined by a user are executed in sequence, namely, the transactions are executed in sequence according to the sequence of the transactions defined by the user, and the method has the defect of low testing speed; the second test means is: the transaction is randomly divided, and a plurality of clients are started to send the transaction in parallel for concurrent execution, so that the conflict among users is not considered, and a great deal of resource waste is caused.
For example, the first batch of blockchain transactions are divided into two parallel execution workflows by adopting a random transaction dividing mode:
(1) the first transaction workflow comprises the following blockchain transactions in sequence:
a- - -100- - > B (representing A transferring 100 Yuan to B)
B---100--->C
C---100--->D
E---100--->F
(2) The second transaction workflow comprises the following blockchain transactions in sequence:
F---100--->G
H---100--->I
analyzing the obtained two transaction workflows, it can be known that the transaction flow of E- > F- > G is divided into two parts for parallel processing, and if it is assumed that the user F originally has no balance, the second workflow F- > G in parallel will fail to be executed because the user F has no balance. In fact, if E- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -. The method has the advantages that the E-F-G is placed in the same workflow, and the defects that concurrent execution fails and stress testing is insufficient due to random segmentation of parallel transaction workflows in an actual application scene can be overcome.
In this embodiment, in order to solve the problem of the coupling degree between users, a relationship graph between users may be constructed according to the directed acyclic graph DAG, and users having a transfer relationship may be associated with each other by using the directed acyclic graph DAG. For example, for a first batch of blockchain transactions, a data structure method is used to construct a plurality of parallel DAG graphs, and the following are 3 DAG graphs obtained:
A--->B--->C--->D
E--->F--->G
H--->I
it can be seen that the constructed DAG graph is not limited by length, the number of transactions contained in each DAG graph may be different, a large length of a DAG graph indicates that more blockchain transactions are contained in the DAG graph, and a small length of a DAG graph indicates that fewer blockchain transactions are contained in the DAG graph. The method comprises the steps of constructing a DAG graph, segmenting users which may have coupling relations, dividing the users which may have coupling relations into different DAG graphs, and segmenting coupling conditions between the users or transactions through the DAG graphs, so that conflicts between the users or the transactions can be avoided.
It is worth noting that if there is a coupling relationship between multiple users, the transactions between these users may also have a coupling relationship. For example, there is a coupling relationship between the user a and the user B, and at the same time, there is a coupling relationship between the user B and the user C,
it should be noted that when the transaction data is preprocessed by constructing a directed acyclic graph, that is, a DAG graph, a user may select to construct the DAG graph manually, or an optimal DAG graph may be constructed automatically. Corresponding transaction workflows can be obtained according to the DAG graphs, each DAG graph corresponds to one transaction workflow, and different transaction workflows corresponding to different DAG graphs have no conflict and can be executed in parallel.
It should be noted that in the blockchain system, the main bodies of the transfer operations are different users, and one transfer operation between them is a transaction, for example, user a transfers 100 yuan to user B, which is a transaction. The intelligent contract is a section of code with certain functions deployed on the block chain, and a user can call the intelligent contract to realize certain functions, for example, the user A can call the intelligent contract C to realize whether the function of transferring accounts to the user B, specifically, the user A judges whether the own balance is more than 100 yuan, if so, the user A transfers the accounts to the user B, otherwise, the user B does not transfer the accounts. The intelligent contract is also a blockchain transaction in a sense that the intelligent contract comprises function codes capable of realizing various self-defined functions.
The embodiment provides a pressure test system of a blockchain network, wherein a blockchain client creates a plurality of blockchain transactions with a sequence according to an actual application scene, defines the execution times of each blockchain transaction, fully considers the use scene of the blockchain transactions and the coupling degree and the relative sequence between the blockchain transactions, and can reduce the influence of the randomness of the blockchain transactions on the performance of the blockchain network; and then preprocessing the block chain transactions, so that a plurality of transaction workflows which can be processed in parallel and are not mutually conflicted can be quickly analyzed from the plurality of block chain transactions, the parallelism in the pressure test process of the block chain network can be improved, the resource performance of the block chain network can be utilized to the maximum extent, the execution speed of the block chain network on the plurality of block chain transactions can be improved, and the accuracy of the test result of the pressure test of the block chain network can be improved.
Referring to fig. 2, the present invention further provides an embodiment of a method for testing a pressure of a blockchain network, including:
s100: the method comprises the steps that a blockchain client creates a plurality of transaction data with sequence among a plurality of users, the transaction data are preprocessed to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and the transaction workflows are submitted to a blockchain network for pressure testing; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction;
s200: and the blockchain network executes a plurality of transaction workflows to perform pressure test through the nodes of the blockchain network, and obtains pressure test performance data of the blockchain network.
In step S100, a user defines a batch of blockchain transactions or intelligent contracts for an actual application scenario of stress testing, and includes the number of times of executing the blockchain transactions and the number of times of invoking the intelligent contracts. The general stress test is simply performed in sequence, for example, a transfers to B1000 times and B transfers to C1000 times. If the user is familiar enough with his own scenario and wishes to have a sequence of transactions, and the relationships between the tasks have more complex relationships, it is possible to construct a DAG graph automatically, and this embodiment provides a specific simple language for constructing a DAG, such as "a (10,100) - - > B (2,20) - - > C", which means that in the workflow, the transaction of first transferring a to B is executed 100 times, the amount of each transaction is 10 yuan, and then the transaction of second transferring B to C is executed 20 times, and the amount of each transaction is 2 yuan.
It should be noted that the blockchain transaction and the smart contract differ mainly in the complexity level between them, the smart contract is also a transaction type in nature, and the execution of the smart contract results in a transaction workflow.
Generally speaking, users do not have a good idea of the DAG graph corresponding to the actual used scenario, but want to extract the performance of the blockchain system as highly concurrent as possible to measure the best performance of the blockchain system. Thus, an automatic DAG workflow schedule may be selected. The workflow scheduling of the DAG is further divided into parsing the blockchain transaction through the DAG and parsing the smart contract through the DAG.
When analyzing the blockchain transaction through the DAG, it is necessary to consider the coupling degree between users, and split the transaction that does not generate coupling in a whole batch of transactions, for example, if a certain batch of blockchain transactions includes the following 5 blockchain transactions: a- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; in the batch blockchain transaction, a transfer relation exists between the user A and the user B, and a transfer relation also exists between the user B and the user C. If the 5 blockchain transactions are divided into transaction workflows that are not connected to each other, and then the transaction workflows are processed in parallel, a situation of a locked state may be caused, that is, a certain transaction workflow must wait for another transaction workflow to be executed before being executed, and a conflict between the transaction workflows may reduce the execution speed. Therefore, the correct way to divide the above 5 transactions is to divide them into the following two transaction workflows: (1) a- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; (2) e- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -; therefore, the two transaction workflows cannot be influenced mutually, and the two transaction workflows are processed in parallel, so that the execution speed can be improved to the maximum extent. The directed acyclic graph DAG is built in an automatic mode, a batch of block chain transactions defined by a user can be quickly analyzed into a plurality of transaction workflows which can work in parallel and do not conflict with each other, and the directed acyclic graph DAG is a very good stress testing means for a block chain execution system with unpredictable states. Meanwhile, if the block chain network is a block chain with a fragmentation function, the concurrence utilization rate of the fragment block chain can be effectively improved. This is the key to resolving user or transaction account conflicts by means of building a DAG.
In this embodiment, a DAG graph is constructed according to the front-back sequence of multiple blockchain transactions defined by users, and a simple data structure diagram is used to define the relationship between users on the graph, for example, a graph relationship of a-B-C-D can be obtained after all transactions are collated, which is a simple data structure for constructing transfer transactions between users. The purpose of constructing the DAG graph is to allocate users without any connection (i.e. no dependency) to different transaction workflows, users in different transaction workflows have no conflict, the transaction workflows are not affected by each other, and can be executed in parallel.
The intelligent contract is analyzed through DAG, the intelligent contract is essentially a section of code, the logic of the code can be analyzed mainly from an Abstract Syntax Tree (AST) in a mode of decomposing the AST, corresponding block chain accounts can be found at the same time, the execution flow of the intelligent contract can be combed out like the detection of transaction conflict, the AST Syntax Tree of the intelligent contract is disassembled, and the final purpose is to split the conflict relationship between the block chain accounts to obtain non-conflict and parallel executable transaction workflows.
It is worth mentioning that an Abstract Syntax Tree (AST) is a tree representation of the abstract syntax structure of the source code, where each node on the tree represents a structure in the source code, and is therefore abstract, and the abstract representation transforms the code into a data structure by means of structured transformation.
Specifically, the DAG parsing process of the intelligent contract is as follows:
the intelligent contract is essentially a piece of code with a logic function deployed on a blockchain, and in a certain sense, the intelligent contract is a mashup of a batch of blockchain transactions with complex relationships, for example, a set of two blockchain transactions, B- > C, C- > D, can be realized by using one intelligent contract (intelligent contract 1), that is, as long as a user calls the intelligent contract, the intelligent contract is equivalent to sequentially executing two blockchain transactions, which are originally to be separately executed, of B- > C, C- > D, that is, calling the intelligent contract once is equivalent to executing a transaction workflow of B- > C- > D.
It is understood that if an intelligent contract is defined in the test scenario, we need only parse the intelligent contract into multiple transactions connected in series, and then construct the DAG in the same way as above.
AST tree parsing is a very common code parsing technique, which is a code tree that judges logic, finds an actual user principal according to defined variables, and then finds a user behavior according to executed logic. Therefore, the AST can be used for analyzing the codes of the intelligent contract to obtain different users and the behaviors of the users, such as the result of B- - - > C- - - > D. Assume that the user defines a set of blockchain transactions:
a- - -100- - > B (representing A transferring 100 money to B)
Intelligent contract 1(B- - - > C- - - > D)
E---100--->F
F---100--->G
H---100--->I
After parsing, the following blockchain transactions can be obtained:
a- - -100- - > B (representing A transferring 100 money to B)
B---100--->C
C---100--->D
E---100--->F
F---100--->G
H---100--->I
And then, further integrating to obtain a final DAG graph, analyzing the intelligent contracts into transactions by using a similar method, and expanding by using a similar method for processing the transactions to obtain a final transaction workflow:
(1) first transaction workflow: a- - - > B, intelligent contract 1;
(2) second transaction workflow: e- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
in this embodiment, a plurality of transaction workflows that can work in parallel and do not conflict with each other are finally determined by manually setting a scene DAG or automatically scheduling a DAG workflow. For the specific number of the transaction workflows which can work in parallel and are not mutually conflicted, the user can preset parameters to determine the concurrent number of the transaction workflows, namely the user presets width parameters of the transaction workflows, the width parameters are related to the number of the concurrent transaction workflows, and then a plurality of processes are opened on the client to simulate a plurality of clients. As shown in fig. 4, there are three transaction workflows, the first transaction workflow is: transaction 1, transaction 3, and transaction 5; the second transaction workflow is: transaction 2, contract 1, and transaction 4; the third transaction workflow is: transaction 6 and transaction 7.
It is worth to be noted that the width parameter of the transaction workflow determines the concurrency number of the transaction workflow, and the width is too small, and the concurrency is too small, so that the purpose of pressure testing is difficult to achieve; however, if the width is too large and the concurrency is too much, the request queue is blocked, the system is blocked, and the speed is reduced, so that the user can select a proper value according to the actual physical resource. Generally, resources are limited, so the number of transaction workflows is not so large, and the width parameter is typically 2 to 5. Moreover, the length of the final transaction workflow is not limited to be as long as possible, the execution can be completed, and the length difference of each transaction workflow is not large.
Because the lengths of the multiple transaction workflows which are executed concurrently are not consistent, if the three transaction workflow clients are started to submit and execute the transaction, obviously, the third transaction workflow is completed quickly, and resource waste is caused. Therefore, we can only set two workflow clients, and combine the original transaction workflows (a- > B- > C- > D, E- > F- > G, H- > I) according to the set workflow width parameters (2) and the average length approach manner, for example, the second transaction workflow is shorter, then the third transaction workflow is executed after the third transaction workflow, and becomes two transaction workflows:
(1) first transaction workflow: a- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
(2) second transaction workflow: e- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -;
it should be noted that, in step S200, a plurality of processes are opened on the same machine, i.e., the blockchain client, and a plurality of clients are simulated, each client can only submit one transaction workflow.
After obtaining a plurality of workflows, a plurality of clients can be started to submit tasks, namely, transaction injection is carried out to a blockchain system, pressure test is carried out on the blockchain network, in the process, statistics on performance of the blockchain can be obtained, the performance statistics is a common method, deep discussion is not carried out, transaction and performance parameters can be rapidly obtained from the blockchain system mainly through a log analysis mode, and time and resource statistics can also be carried out in a client pile insertion mode to carry out real-time calculation.
According to the pressure testing method for the blockchain network, a user creates a plurality of blockchain transactions with a sequence according to an actual application scene, defines the execution times of each blockchain transaction, fully considers the use scene of the blockchain transactions and the coupling degree and the relative sequence between the blockchain transactions, and can reduce the influence of the randomness of the blockchain transactions on the performance of the blockchain network; and then preprocessing the block chain transactions, so that a plurality of transaction workflows which can be processed in parallel and are not mutually conflicted can be quickly analyzed from the plurality of block chain transactions, the parallelism in the pressure test process of the block chain network can be improved, the resource performance of the block chain network can be utilized to the maximum extent, the execution speed of the block chain network on the plurality of block chain transactions can be improved, and the accuracy of the test result of the pressure test of the block chain network can be improved.
According to the pressure testing method of the block chain network provided by the embodiment of the invention, a mode of analyzing batch transactions by using DAG is provided for the first time, and firstly, a user is allowed to define the graph structure and the transaction sequence of a test scene; secondly, the contradiction between concurrency and transaction conflict can be solved, and the block chain system supporting the fragments is accelerated; furthermore, the intelligent contract is also subjected to syntax tree decomposition, DAG decomposition is effectively performed, and the advantages of the DAG are fully exerted in the pressure test of the block chain network.
The method for testing the pressure of the block chain network, provided by the embodiment of the invention, is suitable for different business scenes, industrial scenes and experimental scenes using the block chain, and can perform effective Directed Acyclic Graph (DAG) task analysis on the realization function or a batch of block chain transactions even for simpler and clearer intelligent contracts, so that asynchronous concurrence is realized, and the limit performance of the block chain under the scene is tested to the maximum extent.
Referring to fig. 3, another embodiment of a method for testing a pressure in a blockchain network is provided. In this embodiment, a user may define a set of blockchain transactions and/or intelligent contracts under each stress test scenario of the blockchain network. In this embodiment, the batch of blockchain transactions are preprocessed first, and DAG decomposition is performed on the batch of blockchain transactions according to parameters set by a user (parameters will be explained below), so that a plurality of transaction workflows that can work in parallel and do not interfere with each other can be obtained.
As shown in fig. 4, there are three ways, and a user may select one of the ways to obtain a final DAG, and manually set a scene DAG, which is to completely construct a final DAG similar to the two workflows according to the specific language provided by the user and the actual situation of the user; so as to realize the division of the users with the association relationship.
In this embodiment, transactions are preprocessed through the DAG (a user may manually build the DAG or automatically and optimally build the DAG is selected), and firstly, the user is helped to best plan a transaction sequence and an execution sequence which accord with an actual scene of the user through a workflow graph, and secondly, the user is helped to quickly analyze a highest-speed transaction workflow which can be processed in parallel in a defined whole batch of transactions, so that the parallelism in a pressure testing process is improved, the resource performance of a block chain can be fully utilized, the speed of the block chain for the batch of transactions is improved, and the measured data is more accurate.
After obtaining a plurality of workflows, we can start a plurality of clients to submit tasks, that is, to perform transaction injection to the blockchain system and perform pressure measurement, in this process, we can perform performance statistics on the blockchain through the performance acquisition module, where the performance statistics is a common method, and without deep discussion, the performance statistics can be obtained quickly from the blockchain system mainly through a log analysis form, and also can perform statistics on time and resources at a client plug-in to perform real-time calculation.
The embodiment of the invention firstly provides a mode of analyzing batch transactions by using DAG, and firstly allows a user to define the graph structure and the transaction sequence of a test scene; secondly, the contradiction between concurrency and transaction conflict can be solved, and the block chain system supporting the fragments is accelerated; furthermore, the intelligent contract is also subjected to syntax tree decomposition, DAG decomposition is effectively performed, and the advantages of the DAG are fully exerted in the pressure test of the block chain network.
It is clear to those skilled in the art that, for convenience and brevity of description, the specific working processes of the above-described systems, apparatuses and units may refer to the corresponding processes in the foregoing method embodiments, and are not described herein again.
In the embodiments provided in the present application, it should be understood that the disclosed system, apparatus and method may be implemented in other ways. For example, the above-described apparatus embodiments are merely illustrative, and for example, the division of the units is only one logical division, and other divisions may be realized in practice, for example, a plurality of units or components may be combined or integrated into another system, or some features may be omitted, or not executed. In addition, the shown or discussed mutual coupling or direct coupling or communication connection may be an indirect coupling or communication connection through some interfaces, devices or units, and may be in an electrical, mechanical or other form.
The units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional units in the embodiments of the present invention may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit can be realized in a form of hardware, and can also be realized in a form of a software functional unit.
The integrated unit, if implemented in the form of a software functional unit and sold or used as a stand-alone product, may be stored in a computer readable storage medium. Based on such understanding, the technical solution of the present invention may be embodied in the form of a software product, which is stored in a storage medium and includes instructions for causing a computer device (which may be a personal computer, a server, or a network device) to execute all or part of the steps of the method according to the embodiments of the present invention. And the aforementioned storage medium includes: a U-disk, a removable hard disk, a Read-Only Memory (ROM), a Random Access Memory (RAM), a magnetic disk or an optical disk, and other various media capable of storing program codes.
The above examples are only intended to illustrate the technical solution of the present invention, but not to limit it; although the present invention has been described in detail with reference to the foregoing embodiments, it will be understood by those of ordinary skill in the art that: the technical solutions described in the foregoing embodiments may still be modified, or some technical features may be equivalently replaced; and such modifications or substitutions do not depart from the spirit and scope of the corresponding technical solutions of the embodiments of the present invention.

Claims (10)

1. A system for pressure testing of a blockchain network, comprising:
the system comprises a block chain client, a block chain network and a block chain network, wherein the block chain client is used for creating a plurality of transaction data with sequence among a plurality of users, preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and submitting the transaction workflows to the block chain network for pressure test; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction;
and the blockchain network is used for executing the pressure test on a plurality of transaction workflows through the nodes of the blockchain network to acquire pressure test performance data of the blockchain network.
2. A system for stress testing of a blockchain network according to claim 1, wherein said transaction data further comprises:
an intelligent contract and a number of calls to the intelligent contract, the intelligent contract being an executable piece of code that when executed generates a plurality of blockchain transactions having a logical relationship.
3. A system for stress testing of a blockchain network according to claim 1 or 2, wherein the blockchain client comprises:
the transaction data creating module is used for creating a plurality of transaction data with a sequence among a plurality of users;
the transaction data preprocessing module is used for preprocessing the transaction data to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted;
and the task submitting module is used for submitting the transaction workflows to a blockchain network so as to carry out stress testing.
4. The system for testing the pressure of the blockchain network according to claim 3, wherein the transaction data preprocessing module preprocesses the plurality of transaction data to obtain a plurality of transaction workflows which can work in parallel and are not conflicted with each other comprises:
the transaction data preprocessing module analyzes the transaction data by constructing a directed acyclic graph to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted.
5. The system for stress testing of a blockchain network of claim 3, wherein the task submission module submitting the plurality of transaction workflows to a blockchain network for stress testing comprises:
and the task submitting module determines the concurrency number of the transaction workflow according to preset parameters, and submits the transaction workflow to a block chain network according to the concurrency number so as to carry out pressure testing.
6. A pressure test method of a block chain network is characterized by comprising the following steps:
the method comprises the steps that a blockchain client creates a plurality of transaction data with sequence among a plurality of users, the transaction data are preprocessed to obtain a plurality of transaction workflows which can work in parallel and are not mutually conflicted, and the transaction workflows are submitted to a blockchain network for pressure testing; wherein the transaction data includes a blockchain transaction and a number of executions of the blockchain transaction;
and the blockchain network executes a plurality of transaction workflows to perform pressure test through the nodes of the blockchain network, and obtains pressure test performance data of the blockchain network.
7. A method for stress testing of a blockchain network according to claim 6 wherein said transaction data further comprises:
an intelligent contract and a number of calls to the intelligent contract, the intelligent contract being an executable piece of code that when executed generates a plurality of blockchain transactions having a logical relationship.
8. The method for testing the pressure of the blockchain network according to claim 7, wherein preprocessing the transaction data to obtain a plurality of transaction workflows capable of working in parallel and not conflicting with each other comprises:
and analyzing the transaction data by constructing a directed acyclic graph to obtain a plurality of transaction workflows which can work in parallel and are not conflicted with each other.
9. The method for stress testing of a blockchain network according to claim 8, wherein parsing the plurality of transaction data by constructing a directed acyclic graph comprises:
constructing a directed acyclic graph according to the sequence of the plurality of blockchain transactions, and dividing the blockchain transactions which are not connected successively into different transaction workflows through the directed acyclic graph;
or the logic of the intelligent contract is analyzed by using the abstract syntax tree, the conflict relationship among the block chain accounts is split, and the block chain transactions without sequential connection are divided into different transaction workflows.
10. A method for stress testing of a blockchain network according to any one of claims 6 to 9 wherein submitting a plurality of said transaction workflows to a blockchain network for stress testing comprises:
and determining the concurrency number of the transaction workflow according to preset parameters, and submitting the transaction workflow to a block chain network according to the concurrency number so as to carry out pressure testing.
CN202111535104.9A 2021-12-15 2021-12-15 Pressure test system and method of block chain network Pending CN114201404A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111535104.9A CN114201404A (en) 2021-12-15 2021-12-15 Pressure test system and method of block chain network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111535104.9A CN114201404A (en) 2021-12-15 2021-12-15 Pressure test system and method of block chain network

Publications (1)

Publication Number Publication Date
CN114201404A true CN114201404A (en) 2022-03-18

Family

ID=80654124

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111535104.9A Pending CN114201404A (en) 2021-12-15 2021-12-15 Pressure test system and method of block chain network

Country Status (1)

Country Link
CN (1) CN114201404A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741323A (en) * 2022-06-10 2022-07-12 中国信息通信研究院 Block chain performance testing method and device, electronic equipment and storage medium

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114741323A (en) * 2022-06-10 2022-07-12 中国信息通信研究院 Block chain performance testing method and device, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
Dwyer et al. Parallel randomized state-space search
US7386577B2 (en) Dynamic determination of transaction boundaries in workflow systems
US7278135B2 (en) Method and system for generating an efficient test suite from a domain description with given constraints
US6928393B2 (en) Method and system for supporting negative testing in combinatorial test case generators
Leno et al. Identifying candidate routines for robotic process automation from unsegmented UI logs
CN110532084B (en) Platform task scheduling method, device, equipment and storage medium
Chen et al. From tpc-c to big data benchmarks: A functional workload model
CN110633200A (en) Method and device for testing intelligent contracts
Chatterjee et al. Strategy synthesis for multi-dimensional quantitative objectives
CN111966597B (en) Test data generation method and device
CN114201404A (en) Pressure test system and method of block chain network
CN112559525B (en) Data checking system, method, device and server
Coulden et al. Performance modelling of database contention using queueing petri nets
CN114201403A (en) Distributed pressure test system and method of block chain network
US9081605B2 (en) Conflicting sub-process identification method, apparatus and computer program
Skouradaki et al. Representative BPMN 2.0 process model generation from recurring structures
Zhang et al. Optimizing completion time and resource provisioning of pig programs
US6938054B2 (en) Systems, methods, and computer program products to optimize serialization when porting code to IBM S/390 UNIX system services from a UNIX system
Hamadi et al. Boosting distributed constraint satisfaction
CN113867709A (en) Block chain intelligent contract read-write set construction method and device
Zhang et al. Regression test generation approach based on tree-structured analysis
CN110837464A (en) Test case processing method and device
CN111160403A (en) Method and device for multiplexing and discovering API (application program interface)
Ferme et al. IT-Centric Process Automation: Study About the Performance of BPMN 2.0 Engines
Tsirigotis et al. Oríon: Experiment version control for efficient hyperparameter optimization

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination