CA3161753A1 - Blockchain-smart-contract debugging and releasing method and system thereof - Google Patents
Blockchain-smart-contract debugging and releasing method and system thereofInfo
- Publication number
- CA3161753A1 CA3161753A1 CA3161753A CA3161753A CA3161753A1 CA 3161753 A1 CA3161753 A1 CA 3161753A1 CA 3161753 A CA3161753 A CA 3161753A CA 3161753 A CA3161753 A CA 3161753A CA 3161753 A1 CA3161753 A1 CA 3161753A1
- Authority
- CA
- Canada
- Prior art keywords
- test
- contract
- channel
- smart contract
- smart
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000012360 testing method Methods 0.000 claims abstract description 184
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 238000013102 re-test Methods 0.000 abstract 1
- 230000008569 process Effects 0.000 description 5
- 230000002708 enhancing effect Effects 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000002452 interceptive effect Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004904 shortening Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004224 protection Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Finance (AREA)
- Accounting & Taxation (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
A blockchain-based smart contract debugging and releasing method and apparatus. The method comprises: S1: automatically create a test channel while creating a transaction channel, and enable a user to join or exit the test channel synchronously when the user joins or exits the transaction channel; S2: deploy a smart contract to be tested on the test channel, and all users on the test channel jointly perform service test on contract contents; S3: determine whether the test of said contract passes or not, if yes, execute step S4, and if not, return said contract to a developer to modify or select a new smart contract, return to step S2, and re-test said contract; S4: carry out consensus on the content of said contract by all users on the test channel, and deploy said contract on the transaction channel after obtaining feedback of the agreed deployment. According to the method, the workload of participants can be reduced, the contract updating operation period is shortened, and the operation and query efficiency of the blockchain underlying network is effectively improved.
Description
BLOCKCHAIN-SMART-CONTRACT DEBUGGING AND RELEASING METHOD
AND SYSTEM THEREOF
BACKGROUND OF THE INVENTION
Technical Field [0001] The present invention relates to the technical field of blockchain, and more particularly to a blockchain-smart-contract debugging and releasing method and a system thereof.
Description of Related Art
AND SYSTEM THEREOF
BACKGROUND OF THE INVENTION
Technical Field [0001] The present invention relates to the technical field of blockchain, and more particularly to a blockchain-smart-contract debugging and releasing method and a system thereof.
Description of Related Art
[0002] With the emergence and development of blockchain technology, there have been more and more businesses and organizations trying to explore landing application of blockchain technology in diverse commercial and living scenarios and expect the new technology to bring tangible benefits to various producing and living activities in the society. As a foundational platform that provides upper services with environments to run contracts and with technical supports, a blockchain platform has to ensure its own operational stability while supporting and securing stability and availability of its upper-layer services.
[0003] At present, blockchain technology has been extensively used in many fields, like finance, logistics, copyright protections and more. Because of the complexity and variability of the upper layer services, smart contracts deployed on blockchains usually need repeated revision and test to be verified as matching requirements for their respective business operations. The typical practice in a blockchain platform is to repeatedly revise and repeatedly deploy its smart contract, and this can lead to two problems:
[0004] 1. Every time the smart contract is revised and deployed, consensus has to be reached for its content in the transaction channel, making workload of every participating party in the blockchain even heavier; and Date Recue/Date Received 2022-05-16
[0005] 2. For the same reason, there are a huge amount of useless test data in the transaction channel, leading to inefficient query and storage of blocks and transactions in the channel.
SUMMARY OF THE INVENTION
SUMMARY OF THE INVENTION
[0006] To solve the problems in the prior art, one embodiment of the present invention provides a blockchain-smart-contract debugging and releasing method which solves problems in the prior art about heavy workload for participating parties in a blockchain caused by frequent revision and deployment of smart contracts, and about inefficient query and storage of blocks and transactions in transaction channels due to the presence of useless test data accumulated in transaction channels.
[0007] In one aspect, the present invention provides a blockchain-smart-contract debugging and releasing method, comprising the following steps:
[0008] Si: automatically creating a test channel while creating a transaction channel, and entering or leaving a user with respect to the test channel synchronously when the user enters or leaves the transaction channel;
[0009] S2: deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract;
[0010] S3: determining whether the smart contract passes the test, if yes, proceeding with the step S4, if no, returning the smart contract to its developer for revising or selecting another smart contract and then going back to the step S2 to test the smart contract again; and
[0011] S4: waiting for all the users in the test channel to reach consensus on the content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
[0012] Further, the to-be-tested smart contract includes a newly submitted smart contract and/or a smart contract of a historical version.
[0013] Further, the step S3 comprises:
[0014] if the newly submitted smart contract passes the test, performing the step S4, and if the newly submitted smart contract does not pass the test, returning the smart contract to the Date Recue/Date Received 2022-05-16 developer for revising and then going back to the step S2 to test the smart contract again;
and/or,
and/or,
[0015] if the smart contract of a historical version passes the test, performing the step S4, and if the smart contract of a historical version does not pass the test, selecting another smart contract and then going back to the step S2 to test the smart contract again.
[0016] Further, the step S2 further comprises:
[0017] recording test data generated when the smart contract is operated in the test channel into the test channel, so that the test data become queriable to the users in the test channel.
[0018] Further, in the step S2 comprises:
[0019] after the consensus is reached among all the users in the test channel, the test data can be deleted.
[0020] Further, the step S4 further comprises:
[0021] recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel, so that the block and/or the transaction data become queriable to the users in the transaction channel.
[0022] In another aspect, the present invention provides a blockchain-smart-contract debugging and releasing system, at least comprising:
[0023] a creation module, for a user to operate to create a transaction channel, and for automatically creating a test channel while creating the transaction channel;
[0024] a registration module, for the user to operate to enter or leave the transaction channel, and for entering or leaving the user with respect to the test channel when the user enters or leaves the transaction channel;
[0025] a test module, for deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract;
[0026] a determination module, for determining whether the smart contract passes the test, if yes, sending the to-be-tested smart contract to a release module, if no, returning the smart contract to its developer for revising or selecting another smart contract and then sending to the test module to test the smart contract again; and
[0027] the release module, for waiting for all the users in the test channel to reach consensus on Date Recue/Date Received 2022-05-16 the content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
[0028] Further, the system further comprises:
[0029] a first storage module, for recording test data generated when the smart contract is operated in the test channel into the test channel; and
[0030] a first query module, for the user to operate to query the test data in the test channel.
[0031] Further, the system further comprises:
[0032] a deletion module, for deleting the test data after the consensus is reached among all the users in the test channel.
[0033] Further, the system further comprises:
[0034] a second storage module, for recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel; and
[0035] a second query module, for the user to operate to query the block and/or transaction data in the transaction channel.
[0036] The technical schemes of the embodiments of the present invention provide the following beneficial effects:
[0037] 1. When a user creates a transaction channel, the blockchain-smart-contract debugging and releasing method and system provided by the embodiments of the present invention system automatically create a test channel having the same participating parties as the transaction channel so as to provide an environment for performing test before formal deployment of a contract and eliminate the need for consensus verification every time a test is deployed because the content of the smart contract is verified to be matching the businesses of participating parties in the transaction channel, thereby reducing workload for the participating parties and shortening the operational cycle for updating the contract;
[0038] 2. The blockchain-smart-contract debugging and releasing method and system provided by the embodiments of the present invention store test data and transaction data separately, so as to prevent mutual interference between the two sets of data, thereby effectively improving operational and query efficiency of the underlying network of the blockchain and enhancing stability; and Date Recue/Date Received 2022-05-16
[0039] 3. The blockchain-smart-contract debugging and releasing method and system provided by the embodiments of the present invention introduce the concept of process specification and manageability in software development engineering into the debugging and releasing process for a smart contract of a blockchain channel, thereby reducing costs for maintaining the contract and maximizing teamwork efficiency.
BRIEF DESCRIPTION OF THE DRAWINGS
BRIEF DESCRIPTION OF THE DRAWINGS
[0040] The accompanying drawings are provided herein for better understanding of the present invention and form a part of this disclosure. The illustrative embodiments and their descriptions are for explaining the present invention and by no means form any improper limitation to the present invention, wherein:
[0041] FIG. 1 is a flowchart of a blockchain-smart-contract debugging and releasing method according to one exemplary embodiment of the present invention; and
[0042] FIG. 2 is a structural diagram of a blockchain-smart-contract debugging and releasing system according to one exemplary embodiment of the present invention.
DETAILED DESCRIPTION OF THE INVENTION
DETAILED DESCRIPTION OF THE INVENTION
[0043] To make the foregoing objectives, features, and advantages of the present invention clearer and more understandable, the following description will be directed to some embodiments as depicted in the accompanying drawings to detail the technical schemes disclosed in these embodiments. It is, however, to be understood that the embodiments referred herein are only a part of all possible embodiments and thus not exhaustive. Based on the embodiments of the present invention, all the other embodiments can be conceived without creative labor by people of ordinary skill in the art, and all these and other embodiments shall be encompassed in the scope of the present invention.
[0044] FIG. 1 is a flowchart of a blockchain-smart-contract debugging and releasing method according to one exemplary embodiment of the present invention. As shown, the method comprises the following steps.
Date Recue/Date Received 2022-05-16
Date Recue/Date Received 2022-05-16
[0045] At the step Si, the method involves automatically creating a test channel while creating a transaction channel, and entering or leaving a user with respect to the test channel synchronously when the user enters or leaves the transaction channel.
[0046] Specifically, a user of a blockchain may create a transaction channel according to his/her business needs. When a user uses the system to create a transaction channel, the system automatically creates a test channel having the same participating users for the user at the same time. When the new blockchain user enters or leaves the transaction channel, he/she will enter or leave the corresponding test channel synchronously.
[0047] The step S2 is about deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract.
[0048] Specifically, a user in a blockchain may deploy a to-be-tested smart contract submitted by a contract developer into the test channel, so that all users in the test channel jointly perform a business test on content of the contract. It is to be noted that, in the embodiment of the present invention, the content of the smart contract content has only to be verified by the participating parties in the test channel (who are also the participating parties in the transaction channel) that it matches their business during testing, without the need the need for consensus verification every time a test is deployed. This helps reduce workload for every participating party and shorten the operational cycle for updating the contract.
[0049] To verify whether the content of the smart contract matches the respective businesses of the individual participating parties, the following process can be performed:
[0050] acquiring a smart contract code corresponding to the to-be-tested smart contract, and compiling the smart contract code, so as to obtain a compilation file;
[0051] analyzing the compilation file to generate a function testing page;
[0052] after the user input test parameters to the function testing page, performing a function test on the to-be-tested smart contract.
[0053] Further, the method comprises recording test data generated when the smart contract is operated in the test channel into the test channel, so that the test data become queriable to the users in the test channel.
[0054] Specifically, before the smart contract is formally deployed into the transaction channel, Date Recue/Date Received 2022-05-16 the test data generated when it is run in the test channel are recorded in the test channel for query and display. In other words, users can query the test data in the test channel.
[0055] Further, in the disclosed method, after the consensus is reached among all the users in the test channel, the test data can be deleted.
[0056] Specifically, deletion of any data in the blockchain is prohibited unless consensus on this among all users in the channel is reached. For example, when the data capacity of a blockchain is about to reach its limit, a user in a channel in which test data occupy more space than other channels may initiate a request to delete the test data. Only when consensus on agreement to the request is reached, can the storage space taken by the test data be released. This helps protect data in the blockchain from unauthorized deletion.
[0057] It is to be noted that, in the embodiment of the present invention, an application is allowed to call an SDK to write transactions into the test channel, and a limit about how fast the transactions can be submitted may be set in the SDK, so as to prevent testing operation in the test channel from interfering the performance of the transaction channel.
[0058] The step S3 is for determining whether the smart contract passes the test, if yes, proceeding with the step S4, if no, returning the smart contract to its developer for revising or selecting another smart contract and then going back to the step S2 to test the smart contract again.
[0059] Specifically, after all users in the test channel jointly perform a business test on content of the contract, according to the test results, it can be determined whether the to-be-tested smart contract passes the test. If it does, the method is proceeded with the step S4. If it fails in the test, the smart contract is transferred to its developer for revising or reselection of another smart contract. Then the revised or newly selected smart contract is subjected to the step S2 where it is tested again.
[0060] At S4, the method comprises waiting for all the users in the test channel to reach consensus on the content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the formal transaction channel for use.
[0061] Specifically, after passing the test, the smart contract has to get consensus on its content Date Recue/Date Received 2022-05-16 from all the users in the test channel and receive a feedback of agreement on deployment before it can be to deployed into the transaction channel.
[0062] Further, recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel, so that the block and/or the transaction data become queriable to the users in the transaction channel.
[0063] Specifically, the block and/or transaction data generated when the smart contract is run in the transaction channel are recorded in the transaction channel, and the block and/or transaction data can be queryd and displayed in the transaction channel, so the user can query the block and/or transaction data in the transaction channel. It is to be noted that both the data of the transaction channel and the data of the test channel have the characteristic of being incorruptible as all data in a blockchain, an since they are stored separately, the two sets of data are prevented from interfering each other, thereby effectively improving operational and query efficiency of the underlying network of a blockchain, and in turn enhancing stability.
[0064] Further, the to-be-tested smart contract includes a newly submitted smart contract and/or a smart contract of a historical version.
[0065] Further, the step S3 comprises:
[0066] if the newly submitted smart contract passes the test, performing the step S4, and if the newly submitted smart contract does not pass the test, returning the smart contract to the developer for revising and then going back to the step S2 to test the smart contract again;
and/or,
and/or,
[0067] if the smart contract of a historical version passes the test, performing the step S4, and if the smart contract of a historical version does not pass the test, selecting another smart contract and then going back to the step S2 to test the smart contract again.
[0068] Specifically, in the embodiment of the present invention, the to-be-tested smart contract may include a newly submitted smart contract and/or a smart contract of historical versions. In either case, if the smart contract passes the test, the method goes to the step S4. However, if the smart contract fails the test, the subsequent progress is different. To be specific, if the newly submitted smart contract fails the test, the smart contract is Date Recue/Date Received 2022-05-16 returned to the developer for revision and then subjected to the step S2, where it is tested again. If the smart contract of a historical version fails the test, another smart contract is selected and then the method goes back to the step S2 to test the smart contract again.
[0069] That is to say, if the content of the smart contract needs to be changed according to business needs and therefore needs to be updated or rolled back to an earlier version, users in the blockchain may select to deploy a new smart contract submitted by the developer or a smart contract of an earlier version that once used in the present transaction channel into the test channel, so that all the users of the test channel perform a business test on the content of the contract in the test channel. If the smart contract fails the test, the newly submitted smart contract can be transferred to its developer for revising, resubmission and retesting. As to a smart contract of a historical version, since it cannot be altered, the only solution is to select another smart contract for re-deployment and retesting in the test channel. At this time, in the transaction channel, there is still the previous formally deployed contract running. If the test has a positive result, all the users in the channel try to reach consensus in the content of the smart contract and after a feedback of agreement on deployment is received, the updated contract is formally deployed into the transaction channel for use.
[0070] All of the foregoing alternative technical scheme may be combined in an arbitrary manner to form an alternative embodiment of the present invention, and these possible combinations are not exhaustively described herein.
[0071] FIG. 2 is a structural diagram of a blockchain-smart-contract debugging and releasing system according to an exemplary embodiment of the present invention. As shown, the system at least comprises the following modules.
[0072] A creation module is for a user to operate to create a transaction channel, and for automatically creating a test channel when the user creates the transaction channel.
Therein, the test channel and the transaction channel correspond to each other.
Therein, the test channel and the transaction channel correspond to each other.
[0073] A registration module is for the user to operate to enter or leave the transaction channel, and for entering or leaving the user with respect to the test channel when the user enters or leaves the transaction channel.
Date Recue/Date Received 2022-05-16
Date Recue/Date Received 2022-05-16
[0074] A test module is for deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract.
[0075] Specifically, in the embodiment of the present invention, the content of the smart contract content has only to be verified by the participating parties in the test channel (who are also the participating parties in the transaction channel) that it matches their businesses during testing, without the need the need for consensus verification every time a test is deployed. This helps reduce workload for every participating party and shorten the operational cycle for updating the contract.
[0076] A determination module is for determining whether the smart contract passes the test, if yes, sending the to-be-tested smart contract to a release module, if no, returning the smart contract to its developer for revising or selecting another smart contract and then sending to the test module to test the smart contract again.
[0077] It is to be noted that the to-be-tested smart contract may include a newly submitted smart contract and/or a smart contract of a historical version. If the newly submitted smart contract does not pass the testing, it may be transferred the developer of the contract for revision for subsequent resubmission and test. A smart contract of the historical version cannot be revised, so the only solution is to select another smart contract and deploy it into the test channel for testing.
[0078] The release module is for waiting for all the users in the test channel to reach consensus on the content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
[0079] Further, the system further comprises:
[0080] a first storage module, for recording test data generated when the smart contract is operated in the test channel into the test channel; and
[0081] a first query module, for the user to operate to query the test data in the test channel;
[0082] a deletion module, for deleting the test data after the consensus is reached among all the users in the test channel;
[0083] a second storage module, for recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel; and Date Recue/Date Received 2022-05-16
[0084] a second query module, for the user to operate to query the block and/or transaction data in the transaction channel.
[0085] Specifically, in the embodiment of the present invention, both the data of the transaction channel and the data of the test channel have the characteristic of being incorruptible as all data in a blockchain, an since they are stored separately, the two sets of data are prevented from interfering each other, thereby effectively improving operational and query efficiency of the underlying network of a blockchain, and in turn enhancing stability.
[0086] It is to be noted that implementation of the blockchain-smart-contract debugging and releasing system may be based on the blockchain-smart-contract debugging and releasing method as described previously.
[0087] To sum up, the technical schemes of the embodiments of the present invention provide the following beneficial effects:
[0088] 1. When a user creates a transaction channel, the blockchain-smart-contract debugging and releasing method and system provided by the embodiments of the present invention system automatically create a test channel having the same participating parties as the transaction channel so as to provide an environment for performing test before formal deployment of a contract and eliminate the need for consensus verification every time a test is deployed because the content of the smart contract is verified to be matching the businesses of participating parties in the transaction channel, thereby reducing workload for the participating parties and shortening the operational cycle for updating the contract;
[0089] 2. The blockchain-smart-contract debugging and releasing method and system provided by the embodiments of the present invention store test data and transaction data separately, so as to prevent mutual interference between the two sets of data, thereby effectively improving operational and query efficiency of the underlying network of the blockchain and enhancing stability; and
[0090] 3. The blockchain-smart-contract debugging and releasing method and system provided by the embodiments of the present invention introduce the concept of process specification and manageability in software development engineering into the debugging and releasing process for a smart contract of a blockchain channel, thereby reducing costs Date Recue/Date Received 2022-05-16 for maintaining the contract and maximizing teamwork efficiency.
[0091] It is to be noted that work division among the foregoing functional modules for the blockchain-smart-contract debugging and releasing system of the present embodiment to implement debugging and releasing services is merely exemplary. In practical implementations, the work division may be made among different functional modules. In other words, the internal architecture of the order-based phoning system may be reconfigured with different functional modules to perform all or a part of the functions as described previously. In addition, since the order-based phoning system of the present embodiment and the disclosed order-based phoning method in the previous embodiment stem from the same conception, the details of its implementation can be learned from the description made to the method of the previous embodiment, and no repetition is made herein.
[0092] As will be appreciated by people of ordinary skill in the art, implementation of all or a part of the steps of the method of the present invention as described previously may be realized by having a program instruct related hardware components. The program may be stored in a computer-readable storage medium, and the program is about performing the individual steps of the methods described in the foregoing embodiments.
The storage medium may be a ROM, a hard drive, an optical disk, or the like.
The storage medium may be a ROM, a hard drive, an optical disk, or the like.
[0093] The preferred embodiments of the present invention described previously are not intended to limit the present invention. Any modification, equivalent replacement, and improvement made under the spirit and principle of the present invention shall be embraces in the scope of the present invention.
Date Recue/Date Received 2022-05-16
Date Recue/Date Received 2022-05-16
Claims (10)
1. A blockchain-smart-contract debugging and releasing method, comprising:
S1: automatically creating a test channel while creating a transaction channel, and entering or leaving a user with respect to the test channel synchronously when the user enters or leaves the transaction channel;
S2: deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract;
S3: determining whether the smart contract passes the test, if yes, proceeding with the step S4, if no, returning the smart contract to its developer for revising or selecting another smart contract and then going back to the step S2 to test the smart contract again; and S4: waiting for all the users in the test channel to reach consensus on the content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
S1: automatically creating a test channel while creating a transaction channel, and entering or leaving a user with respect to the test channel synchronously when the user enters or leaves the transaction channel;
S2: deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract;
S3: determining whether the smart contract passes the test, if yes, proceeding with the step S4, if no, returning the smart contract to its developer for revising or selecting another smart contract and then going back to the step S2 to test the smart contract again; and S4: waiting for all the users in the test channel to reach consensus on the content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
2. The blockchain-smart-contract debugging and releasing method of claim 1, wherein the to-be-tested smart contract includes a newly submitted smart contract and/or a smart contract of a historical version.
3. The blockchain-smart-contract debugging and releasing method of claim 2, wherein the step S3 comprises:
if the newly submitted smart contract passes the test, performing the step S4, and if the newly submitted smart contract does not pass the test, returning the smart contract to the developer for revising and then going back to the step S2 to test the smart contract again;
and/or, if the smart contract of a historical version passes the test, performing the step S4, and if the smart contract of a historical version does not pass the test, selecting another smart contract and then going back to the step S2 to test the smart contract again.
Date Recue/Date Received 2022-05-16
if the newly submitted smart contract passes the test, performing the step S4, and if the newly submitted smart contract does not pass the test, returning the smart contract to the developer for revising and then going back to the step S2 to test the smart contract again;
and/or, if the smart contract of a historical version passes the test, performing the step S4, and if the smart contract of a historical version does not pass the test, selecting another smart contract and then going back to the step S2 to test the smart contract again.
Date Recue/Date Received 2022-05-16
4. The blockchain-smart-contract debugging and releasing method of any of claims 1 through 3, wherein the step S2 further comprises:
recording test data generated when the smart contract is operated in the test channel into the test channel, so that the test data become queriable to the users in the test channel.
recording test data generated when the smart contract is operated in the test channel into the test channel, so that the test data become queriable to the users in the test channel.
5. The blockchain-smart-contract debugging and releasing method of claim 4, wherein in the step S2 further comprises:
after the consensus is reached among all the users in the test channel, the test data can be deleted.
after the consensus is reached among all the users in the test channel, the test data can be deleted.
6. The blockchain-smart-contract debugging and releasing method of any of claims 1 through 3, wherein the step S4 further comprises:
recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel, so that the block and/or the transaction data become queriable to the users in the transaction channel.
recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel, so that the block and/or the transaction data become queriable to the users in the transaction channel.
7. A blockchain-smart-contract debugging and releasing system, comprising:
a creation module, for a user to operate to create a transaction channel, and for automatically creating a test channel while creating the transaction channel;
a registration module, for the user to operate to enter or leave the transaction channel, and for entering or leaving the user with respect to the test channel when the user enters or leaves the transaction channel;
a test module, for deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract;
a determination module, for determining whether the smart contract passes the test, if yes, sending the to-be-tested smart contract to a release module, if no, returning the smart contract to its developer for revising or selecting another smart contract and then sending to the test module to test the smart contract again; and the release module, for waiting for all the users in the test channel to reach consensus on the Date Recue/Date Received 2022-05-16 content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
a creation module, for a user to operate to create a transaction channel, and for automatically creating a test channel while creating the transaction channel;
a registration module, for the user to operate to enter or leave the transaction channel, and for entering or leaving the user with respect to the test channel when the user enters or leaves the transaction channel;
a test module, for deploying a to-be-tested smart contract into the test channel, so that all users in the test channel jointly perform a business test on content of the contract;
a determination module, for determining whether the smart contract passes the test, if yes, sending the to-be-tested smart contract to a release module, if no, returning the smart contract to its developer for revising or selecting another smart contract and then sending to the test module to test the smart contract again; and the release module, for waiting for all the users in the test channel to reach consensus on the Date Recue/Date Received 2022-05-16 content of the smart contract, and after a feedback of agreement on deployment is received, deploying the smart contract into the transaction channel.
8. The blockchain-smart-contract debugging and releasing system of claim 7, further comprising:
a first storage module, for recording test data generated when the smart contract is operated in the test channel into the test channel; and a first query module, for the user to operate to query the test data in the test channel.
a first storage module, for recording test data generated when the smart contract is operated in the test channel into the test channel; and a first query module, for the user to operate to query the test data in the test channel.
9. The blockchain-smart-contract debugging and releasing system of claim 8, further comprising:
a deletion module, for deleting the test data after the consensus is reached among all the users in the test channel.
a deletion module, for deleting the test data after the consensus is reached among all the users in the test channel.
10. The blockchain-smart-contract debugging and releasing system of claim 7 or 8, further comprising :
a second storage module, for recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel;
and a second query module, for the user to operate to query the block and/or transaction data in the transaction channel.
Date Recue/Date Received 2022-05-16
a second storage module, for recording a block and/or transaction data generated when the smart contract is operated in the transaction channel into the transaction channel;
and a second query module, for the user to operate to query the block and/or transaction data in the transaction channel.
Date Recue/Date Received 2022-05-16
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811381098.4 | 2018-11-19 | ||
CN201811381098.4A CN109670951B (en) | 2018-11-19 | 2018-11-19 | Block chain intelligent contract debugging and publishing method and system |
PCT/CN2019/106021 WO2020103545A1 (en) | 2018-11-19 | 2019-09-16 | Blockchain-based smart contract debugging and releasing method and system |
Publications (1)
Publication Number | Publication Date |
---|---|
CA3161753A1 true CA3161753A1 (en) | 2020-05-28 |
Family
ID=66141813
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CA3161753A Pending CA3161753A1 (en) | 2018-11-19 | 2019-09-16 | Blockchain-smart-contract debugging and releasing method and system thereof |
Country Status (3)
Country | Link |
---|---|
CN (1) | CN109670951B (en) |
CA (1) | CA3161753A1 (en) |
WO (1) | WO2020103545A1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109670951B (en) * | 2018-11-19 | 2021-03-26 | 南京苏宁软件技术有限公司 | Block chain intelligent contract debugging and publishing method and system |
CN110290168B (en) * | 2019-05-08 | 2022-04-12 | 深圳壹账通智能科技有限公司 | Data transmission method, device, server and storage medium |
CN110347609B (en) * | 2019-07-18 | 2023-05-23 | 腾讯科技(深圳)有限公司 | Method and device for testing blockchain software |
CN110543419B (en) * | 2019-08-28 | 2021-09-03 | 杭州趣链科技有限公司 | Intelligent contract code vulnerability detection method based on deep learning technology |
CN111290958B (en) * | 2020-02-20 | 2023-05-30 | 联动优势科技有限公司 | Method and device for debugging intelligent contract |
CN111459504B (en) * | 2020-03-30 | 2023-07-04 | 百度国际科技(深圳)有限公司 | Intelligent contract processing method, device, equipment and storage medium |
CN111782551B (en) * | 2020-08-04 | 2021-07-27 | 腾讯科技(深圳)有限公司 | Test method and device for block chain item and computer equipment |
CN111723102A (en) * | 2020-08-21 | 2020-09-29 | 支付宝(杭州)信息技术有限公司 | Intelligent contract updating method and device |
CN111984271B (en) * | 2020-08-27 | 2023-11-03 | 京东科技信息技术有限公司 | Block chain application program processing method and device and block chain application system |
CN112433939A (en) * | 2020-11-19 | 2021-03-02 | 腾讯科技(深圳)有限公司 | Intelligent contract testing method and device |
CN113672632A (en) * | 2021-08-06 | 2021-11-19 | 戈尔特西斯科技(济南)有限公司 | Quick query and call method for change records of historical data on chain based on intelligent contract |
CN113961202B (en) * | 2021-12-21 | 2022-02-22 | 北京中科金财科技股份有限公司 | Method and system for automatically debugging intelligent contract |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9934138B1 (en) * | 2016-12-07 | 2018-04-03 | International Business Machines Corporation | Application testing on a blockchain |
CN108073513A (en) * | 2017-04-21 | 2018-05-25 | 富士通株式会社 | The apparatus and method tested the intelligent contract based on block chain |
CN107943691B (en) * | 2017-11-17 | 2022-03-01 | 深圳圣马歌科技有限公司 | Method and device for automatically generating function test page of intelligent contract |
CN108304307B (en) * | 2018-01-24 | 2022-03-04 | 深圳圣马歌科技有限公司 | Performance detection method of intelligent contract on block chain |
CN108446947B (en) * | 2018-02-07 | 2021-05-18 | 平安科技(深圳)有限公司 | Real estate transaction method and device |
CN108763058A (en) * | 2018-04-24 | 2018-11-06 | 苏州同济区块链研究院有限公司 | A kind of block chain evaluation system |
CN108628745A (en) * | 2018-05-03 | 2018-10-09 | 深圳市牛鼎丰科技有限公司 | Track record system, method, computer equipment and the storage medium of application program |
CN108776890A (en) * | 2018-06-04 | 2018-11-09 | 青岛大学 | A kind of believable intelligent paying out wages method and system based on block chain |
CN109670951B (en) * | 2018-11-19 | 2021-03-26 | 南京苏宁软件技术有限公司 | Block chain intelligent contract debugging and publishing method and system |
-
2018
- 2018-11-19 CN CN201811381098.4A patent/CN109670951B/en active Active
-
2019
- 2019-09-16 CA CA3161753A patent/CA3161753A1/en active Pending
- 2019-09-16 WO PCT/CN2019/106021 patent/WO2020103545A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN109670951A (en) | 2019-04-23 |
CN109670951B (en) | 2021-03-26 |
WO2020103545A1 (en) | 2020-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA3161753A1 (en) | Blockchain-smart-contract debugging and releasing method and system thereof | |
US8677320B2 (en) | Software testing supporting high reuse of test data | |
US11042471B2 (en) | System and method for providing a test manager for use with a mainframe rehosting platform | |
US8387066B1 (en) | Dependency-based task management using set of preconditions to generate scheduling data structure in storage area network | |
US10785128B1 (en) | System, apparatus and method for deploying infrastructure to the cloud | |
US9513936B2 (en) | Dynamically loadable composite software application | |
CN107908543A (en) | Applied program testing method, device, computer equipment and storage medium | |
US9589240B2 (en) | System and method for flexible chaining of distinct workflow task instances in a business process execution language workflow | |
WO2018145559A1 (en) | Method and system for generating continuous integration pipeline | |
CN108845954A (en) | Method for testing pressure, system and storage medium | |
US8645766B2 (en) | Serialized error injection into a function under test | |
CN111061551A (en) | Node merging and scheduling method, device, equipment and storage medium | |
Schulz et al. | Towards automating representative load testing in continuous software engineering | |
US20160266882A1 (en) | Systems and processes of accessing backend services with a mobile application | |
CN111309624B (en) | Test method, test device, test equipment and storage medium | |
US10466974B2 (en) | Independent expression animations | |
US10496402B1 (en) | System, method, and computer program for defining and utilizing minimal testable values for software project development and operations | |
CN113407914A (en) | Network software authority control method, device, equipment and storage medium | |
JP2004348736A (en) | Technique for creating activation solution for providing commercial network service | |
CN106446233A (en) | Web-based Linux file management method and device | |
CN110991983A (en) | Task processing method, device, medium and equipment | |
CN109947645A (en) | Automatic configuration tool method and system | |
CN116521509A (en) | Intelligent contract testing method, device, equipment, storage medium and product | |
CN110992166B (en) | Method and device for testing online loan application | |
CN114936152A (en) | Application testing method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EEER | Examination request |
Effective date: 20220916 |
|
EEER | Examination request |
Effective date: 20220916 |
|
EEER | Examination request |
Effective date: 20220916 |
|
EEER | Examination request |
Effective date: 20220916 |
|
EEER | Examination request |
Effective date: 20220916 |