Nothing Special   »   [go: up one dir, main page]

CN111967995A - Intelligent contract creating method and device - Google Patents

Intelligent contract creating method and device Download PDF

Info

Publication number
CN111967995A
CN111967995A CN202011126776.XA CN202011126776A CN111967995A CN 111967995 A CN111967995 A CN 111967995A CN 202011126776 A CN202011126776 A CN 202011126776A CN 111967995 A CN111967995 A CN 111967995A
Authority
CN
China
Prior art keywords
account
intelligent contract
transaction
blockchain
resource
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
CN202011126776.XA
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.)
Ant Blockchain Technology Shanghai Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202011126776.XA priority Critical patent/CN111967995A/en
Publication of CN111967995A publication Critical patent/CN111967995A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • Technology Law (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

The present specification provides a method and an apparatus for creating an intelligent contract, which are applied to a node device of a block chain, where a system resource carried by the node device and a virtual resource issued on the block chain are subjected to value anchoring, and the method includes: receiving an intelligent contract creation transaction sent by a blockchain client, wherein the intelligent contract creation transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account; calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identification, executing the intelligent contract creation transaction, and creating an intelligent contract account corresponding to the intelligent contract code in the blockchain.

Description

Intelligent contract creating method and device
Technical Field
One or more embodiments of the present disclosure relate to the field of blockchain technologies, and in particular, to a method and an apparatus for creating an intelligent contract.
Background
The block chain technology, also called distributed ledger technology, is an emerging technology in which several computing devices participate in "accounting" together, and a complete distributed database is maintained together. The blockchain technology has been widely used in many fields due to its characteristics of decentralization, transparency, participation of each computing device in database records, and rapid data synchronization between computing devices.
Disclosure of Invention
In view of this, one or more embodiments of the present specification provide a method, an apparatus, and a computer device for creating an intelligent contract.
In order to achieve the above purpose, one or more embodiments of the present specification provide the following technical solutions:
according to a first aspect of one or more embodiments of the present specification, a method for creating an intelligent contract is provided, where the method is applied to a node device of a blockchain, and a system resource carried by the node device is value-anchored with a virtual resource published on the blockchain, and includes:
receiving an intelligent contract creation transaction sent by a blockchain client, wherein the intelligent contract creation transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
deducting the first amount of virtual resources from virtual resources held by a user account corresponding to the account identifier, and further executing the intelligent contract creation transaction, creating an intelligent contract account corresponding to the intelligent contract code in the blockchain, and allocating account storage resources for the intelligent contract account based on the account storage capacity.
According to a second aspect of one or more embodiments of the present specification, there is provided a method for creating an intelligent contract, which is applied to a node device of a blockchain, where a system resource carried by the node device is value-anchored with a virtual resource published on the blockchain, the method including:
receiving an intelligent contract creation transaction sent by a blockchain client, wherein the intelligent contract creation transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
executing the intelligent contract creation transaction, creating an intelligent contract account in the blockchain corresponding to the intelligent contract code, and allocating account storage resources for the intelligent contract account based on the account storage capacity;
after executing the smart contract creation transaction, calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user; and deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier.
According to a third aspect of one or more embodiments of the present specification, there is provided an apparatus for creating an intelligent contract, which is applied to a node device of a blockchain, where a system resource carried by the node device is value-anchored with a virtual resource published on the blockchain, the apparatus including:
the intelligent contract creating system comprises a receiving unit, a block chain client and a block chain processing unit, wherein the receiving unit is used for receiving an intelligent contract creating transaction sent by the block chain client, and the intelligent contract creating transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
a calculation unit that calculates a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
the deduction unit is used for deducting the virtual resources of the first quantity from the virtual resources held by the user account corresponding to the account identification;
an execution unit, configured to execute the intelligent contract creation transaction after deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier, create an intelligent contract account corresponding to the intelligent contract code in the blockchain, and allocate account storage resources for the intelligent contract account based on the account storage capacity.
According to a fourth aspect of one or more embodiments of the present specification, there is provided an apparatus for creating an intelligent contract, which is applied to a node device of a blockchain, where a system resource carried by the node device is value-anchored with a virtual resource published on the blockchain, the apparatus including:
the intelligent contract creating system comprises a receiving unit, a block chain client and a block chain processing unit, wherein the receiving unit is used for receiving an intelligent contract creating transaction sent by the block chain client, and the intelligent contract creating transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
an execution unit to execute the intelligent contract creation transaction, create an intelligent contract account in the blockchain corresponding to the intelligent contract code, and allocate account storage resources for the intelligent contract account based on the account storage capacity;
a calculation unit that calculates, after execution of the smart contract creation transaction, a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
and the deduction unit is used for deducting the virtual resources of the first quantity from the virtual resources held by the user account corresponding to the account identification.
According to a fifth aspect of one or more embodiments of the present specification, there is provided a computer device comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; the processor executes the method for creating an intelligent contract executed by a node device in the embodiment corresponding to the first aspect.
According to a fifth aspect of one or more embodiments of the present specification, there is provided a computer device comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; when the processor runs the computer program, the method for creating the intelligent contract executed by the node device according to the embodiment of the second aspect is executed.
Based on the method, the apparatus, and the computer device for creating an intelligent contract according to one or more embodiments, the system resources hosted by the node devices of the blockchain may be value-anchored with the virtual resources, so that the system resources of the node devices of the blockchain consumed by the intelligent contract creation transaction (including the account storage resources allocated to the intelligent contract based on the account storage capacity requested by the user) may be anchored based on the node devices, a first amount of the virtual resources may be anchored, and the first amount of the virtual resources may be deducted from the user account included in the intelligent contract creation transaction by the node devices of the blockchain; the effects of quantifying the block chain system resources consumed by the intelligent contract creation transaction and charging corresponding virtual resource fees for the user based on the quantified block chain system resources are achieved.
Drawings
FIG. 1 is a schematic diagram of creating an intelligent contract provided by an exemplary embodiment;
FIG. 2 is a schematic diagram of invoking an intelligent contract, provided by an exemplary embodiment;
FIG. 3 is a schematic diagram of creating an intelligent contract and invoking an intelligent contract provided by an exemplary embodiment;
FIG. 4 is a flowchart diagram of a method for creating an intelligent contract, provided by an exemplary embodiment;
FIG. 5 is a schematic diagram of an apparatus for creating an intelligent contract for application to a node device side of a blockchain according to an exemplary embodiment;
fig. 6 is a schematic diagram of an apparatus for creating an intelligent contract applied to a node device side of a blockchain according to yet another exemplary embodiment;
fig. 7 is a hardware block diagram of an embodiment of a creation apparatus for running an intelligent contract provided by the present specification.
Detailed Description
Reference will now be made in detail to the exemplary embodiments, examples of which are illustrated in the accompanying drawings. When the following description refers to the accompanying drawings, like numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of the present specification. Rather, they are merely examples of apparatus and methods consistent with certain aspects of one or more embodiments of the specification, as detailed in the claims which follow.
It should be noted that: in other embodiments, the steps of the corresponding methods are not necessarily performed in the order shown and described herein. In some other embodiments, the method may include more or fewer steps than those described herein. Moreover, a single step described in this specification may be broken down into multiple steps for description in other embodiments; multiple steps described in this specification may be combined into a single step in other embodiments.
The block chain or block chain network described in one or more embodiments of the present specification may specifically refer to a P2P network system having a distributed data storage structure, where each node device achieves through a common recognition mechanism, the book data in the block chain is distributed within temporally consecutive "blocks", and the latter block may include a data digest of the former block, and according to a difference of a specific common recognition mechanism (such as POW, POS, DPOS, PBFT, or the like), a full backup of data of all or part of nodes is achieved.
Blockchains are generally divided into three types: public chain (Public Blockchain), Private chain (Private Blockchain) and alliance chain (Consortium Blockchain). Furthermore, there may be a combination of the above types, such as private chain + federation chain, federation chain + public chain, and so on.
Among them, the most decentralized is the public chain. The public chain is represented by bitcoin and ether house, and participants (also called nodes in the block chain) joining the public chain can read data records on the chain, participate in transactions, compete for accounting rights of new blocks, and the like. Moreover, each node can freely join or leave the network and perform related operations.
Private chains are the opposite, with the network's write rights controlled by an organization or organization and the data read rights specified by the organization. Briefly, a private chain may be a weakly centralized system with strict restrictions on nodes and a small number of nodes. This type of blockchain is more suitable for use within a particular establishment.
A federation chain is a block chain between a public chain and a private chain, and "partial decentralization" can be achieved. Each node in a federation chain typically has a physical organization or organization corresponding to it; the nodes are authorized to join the network and form a benefit-related alliance, and block chain operation is maintained together.
The computing device may construct the data into a standard transaction (transaction) format supported by the blockchain, then issue the transaction to the blockchain, perform consensus processing on the received transaction by the node devices in the blockchain, and package the transaction into a block by the node devices serving as accounting nodes in the blockchain after the consensus is achieved, and perform persistent evidence storage in the blockchain.
Regardless of which consensus algorithm is adopted by the block chain, the accounting node can pack the received transaction to generate a latest block and send the latest block to other node devices for consensus verification. If the latest block is received by other node equipment and no problem is proved, the latest block can be added to the tail of the original block chain, so that the accounting process of the block chain is completed. The transactions contained in the block may also be performed during the process of the other nodes verifying the new block sent by the accounting node.
It should be noted that, each time a latest block is generated in the blockchain, the corresponding status of the executed transactions in the blockchain changes after the transaction in the latest block is executed. For example, in a block chain constructed by an account model, the account status of an external account or a smart contract account usually changes correspondingly with the execution of a transaction.
For example, when a "transfer transaction" is completed in a block, the balances of the transferring party account and the transferring party account associated with the "transfer transaction" (i.e., the field values of the Balance fields of these accounts) are usually changed.
For another example, the "intelligent contract invocation transaction" in the block is used to invoke an intelligent contract deployed on the blockchain, invoke the intelligent contract in the EVM corresponding to the node device to execute the "intelligent contract invocation transaction", and update the account status of the intelligent contract account in the account of the intelligent contract after the execution of the intelligent contract invocation transaction.
In practical applications, whether public, private, or alliance, it is possible to provide the functionality of a Smart contract (Smart contract). An intelligent contract on a blockchain is a contract on a blockchain that can be executed triggered by a transaction. An intelligent contract may be defined in the form of code.
Taking an Etherhouse as an example, a user is supported to create and call some complex logic in the Etherhouse network. The ethernet workshop is used as a programmable block chain, and the core of the ethernet workshop is an ethernet workshop virtual machine (EVM), and each ethernet workshop node can run the EVM. The EVM is a well-behaved virtual machine through which various complex logic can be implemented. The user issuing and invoking smart contracts in the etherhouse is running on the EVM. In fact, the EVM directly runs virtual machine code (virtual machine bytecode, hereinafter referred to as "bytecode"), so the intelligent contract deployed on the blockchain may be bytecode.
After Bob sends a Transaction (Transaction) containing information to create a smart contract to the ethernet network, each node can execute the Transaction in the EVM, as shown in fig. 1. The From field of the transaction in the figure is used for recording the address of the account initiating the creation of the intelligent contract, the contract code stored in the field value of the Data field of the transaction can be byte code, and the field value of the To field of the transaction is a null account. After the nodes reach the agreement through the consensus mechanism, the intelligent contract is successfully created, and the follow-up user can call the intelligent contract.
After the intelligent contract is established, a contract account corresponding to the intelligent contract appears on the block chain, and the block chain has a specific address; for example, "0 x68e12cf284 …" in each node in fig. 1 represents the address of the contract account created; the contract Code (Code) and account store (Storage) will be maintained in the account store for that contract account. The behavior of the intelligent contract is controlled by the contract code, while the account storage of the intelligent contract preserves the state of the contract. In other words, the intelligent contract causes a virtual account to be generated on the blockchain that contains the contract code and account storage.
As mentioned above, the Data field containing the transaction that created the intelligent contract may hold the byte code of the intelligent contract. A bytecode consists of a series of bytes, each of which can identify an operation. Based on the multiple considerations of development efficiency, readability and the like, a developer can select a high-level language to write intelligent contract codes instead of directly writing byte codes. For example, the high-level language may employ a language such as Solidity, Serpent, LLL, and the like. For intelligent contract code written in a high-level language, the intelligent contract code can be compiled by a compiler to generate byte codes which can be deployed on a blockchain.
Taking the Solidity language as an example, the contract code written by it is very similar to a Class (Class) in the object-oriented programming language, and various members including state variables, functions, function modifiers, events, etc. can be declared in one contract. A state variable is a value permanently stored in an account Storage (Storage) field of an intelligent contract to save the state of the contract.
As shown in FIG. 2, still taking the Etherhouse as an example, after Bob sends a transaction containing the information of the calling intelligent contract to the Etherhouse network, each node can execute the transaction in the EVM. The From field of the transaction in the figure is used for recording the address of the account initiating the intelligent contract calling, the To field is used for recording the address of the intelligent contract called, and the Data field of the transaction is used for recording the method and the parameters for calling the intelligent contract. After invoking the smart contract, the account status of the contract account may change. Subsequently, a client may check the account status of the contract account through the accessed block link points, for example, the account status may be stored in the Storage tree of the intelligent contract in the form of a Key-Value pair. The results of the execution of the transaction that invokes the smart contract, which may be in the form of a transaction receipt (receipt), are stored in the MPT receipt tree.
The intelligent contract can be independently executed at each node in the blockchain network in a specified mode, and all execution records and data are stored on the blockchain, so that after the transaction is executed, transaction certificates which cannot be tampered and lost are stored on the blockchain.
A schematic diagram of creating an intelligent contract and invoking the intelligent contract is shown in fig. 3. An intelligent contract is created in an Ethernet workshop and needs to be subjected to the processes of compiling the intelligent contract, changing the intelligent contract into byte codes, deploying the intelligent contract to a block chain and the like. The intelligent contract is called in the Ethernet workshop, a transaction pointing to the intelligent contract address is initiated, the EVM of each node can respectively execute the transaction, and the intelligent contract code is distributed and operated in the virtual machine of each node in the Ethernet workshop network.
For accounts in a blockchain, the account status of the account is usually maintained through a structure. When a transaction in a block is executed, the status of the account associated with the transaction in the block chain is also typically changed.
Taking etherhouses as an example, the structure of an account usually includes fields such as Balance, Nonce, Code and Storage. Wherein:
a Balance field for maintaining the current account Balance of the account;
a Nonce field for maintaining a number of transactions for the account; the counter is used for guaranteeing that each transaction can be processed only once, and replay attack is effectively avoided;
a Code field for maintaining a contract Code for the account; in practical applications, only the hash value of the contract Code is typically maintained in the Code field; thus, the Code field is also commonly referred to as the Codhash field.
A Storage field for maintaining the Storage contents of the account (default field value is null); for a contract account, a separate storage space is usually allocated to store the storage content of the contract account; this separate storage space is often referred to as the account storage of the contract account. The storage content of the contract account is usually constructed into a data structure of an MPT (media Patricia Trie) tree and stored in the independent storage space; in which, the Storage content based on the contract account is constructed into an MPT tree, which is also commonly referred to as a Storage tree. Whereas the Storage field typically maintains only the root node of the Storage tree; thus, the Storage field is also commonly referred to as the Storage root field.
Wherein, for the external account, the field values of the Code field and the Storage field shown above are both null values.
For most blockchain models, Merkle trees are typically used; alternatively, the data is stored and maintained based on the data structure of the Merkle tree. Taking etherhouses as an example, the etherhouses use MPT tree (a Merkle tree variation) as a data organization form for organizing and managing important data such as account status, transaction information, and the like.
The Etherhouse designs three MPT trees, namely an MPT state tree, an MPT transaction tree and an MPT receipt tree, aiming at data needing to be stored and maintained in a block chain. In addition to the three MPT trees, there is actually a Storage tree constructed based on the Storage content of the contract account.
An MPT state tree, which is an MPT tree organized by account state data of all accounts in a blockchain; an MPT transaction tree, which is an MPT tree organized by transaction (transaction) data in a blockchain; the MPT receipt tree is organized into transaction (receipt) receipts corresponding to each transaction generated after the transactions in the block are executed. The hash values of the root nodes of the MPT state tree, the MPT transaction tree, and the MPT receipt tree shown above are eventually added to the block header of the corresponding block.
The MPT transaction tree and the MPT receipt tree correspond to the blocks, namely each block has the MPT transaction tree and the MPT receipt tree. For the MPT transaction tree, the MPT receipt tree and the MPT state tree which are organized, the MPT transaction tree, the MPT receipt tree and the MPT state tree are finally stored in a Key-Value type database (such as a levelDB) which adopts a multi-level data storage structure.
In the public chain field, the miners are often encouraged to carry out block chaining out through gas, token and other modes, and the miners can select higher-commission-cost transactions such as gas or token to preferentially pack in blocks so as to increase self income; for the non-miner nodes, although the storage and consensus resources are contributed, corresponding benefits are not obtained. In a token-free (token) -based blockchain model, such as a federation chain, especially in an open federation chain environment, how to count blockchain resources provided by node devices and cover corresponding node costs is also an urgent issue to be solved. At present, there is no method for resource management and charging for users of the blockchain based on the use or occupation of blockchain resources.
In view of the above, one or more embodiments of the present specification provide various resource charging approaches in a blockchain system. It is contemplated that the embodiments provided herein can be implemented in a suitable type of blockchain network, such as a public chain, a federation chain, a private chain, and so forth.
The client in one or more embodiments provided in this specification may be an independent device communicatively connected to any node device of the blockchain, or may be a functional module disposed inside any node device, which is not limited herein.
In the charging mode of the blockchain system provided in the present specification, the system resources installed on the node devices of the blockchain are value-anchored to the virtual resources distributed on the blockchain.
The virtual resources published on the blockchain may include virtual tokens published on the blockchain based on a consensus mechanism of the blockchain, such as a mine excavation reward obtained based on a billing node (or miner node) of the blockchain packing and successfully adding blocks, while starting circulation of virtual tokens (e.g., bitcoins, ethercoins, etc.) on the blockchain. Virtual tokens generated based on mineworker node mining typically do not have a value-anchoring relationship with real assets outside the chain; in yet another illustrative embodiment, the virtual resources published on the blockchain may include blockchain assets having a value-anchoring relationship with off-chain real assets held by the user, and virtual resources anchored to the frozen real assets and capable of circulation on the chain may be published on the chain by freezing real-world real assets (including assets in the form of currency, real property, stocks, loan contracts, tickets, accounts receivable, and the like).
When the method is realized, a user client can execute an asset freezing exchange process with node equipment of a block chain network, and the user client sends a certain amount of freezing vouchers of real assets to the node equipment corresponding to an organization with virtual resource exchange authority; the node device can broadcast the frozen voucher to the blockchain network after receiving the frozen voucher, so that the node device in the blockchain can add virtual resources corresponding to the frozen real asset amount value to the account balance of the blockchain of the user based on the frozen voucher.
The virtual resource corresponding to the frozen real asset amount value is added into the balance of the user's blockchain account based on the frozen certificate, and the method can be further realized by the interaction between the user and an intelligent contract: the user client or the node equipment corresponding to the mechanism with the virtual resource exchange authority sends a virtual resource exchange transaction to the blockchain network, wherein the virtual resource exchange transaction comprises the asset freezing voucher; responding to the virtual resource exchange transaction, the node equipment of the blockchain calls a virtual resource exchange contract deployed on the blockchain, executes the resource exchange logic declared by the intelligent contract, and adds virtual resources corresponding to the real asset amount value frozen by the asset freezing voucher into the account balance of the blockchain of the user.
Based on the mode, the user can obtain virtual resources which can be anchored with the value of the real assets in the block chain network based on the real assets held by the user, and the virtual resources can be expressed as the balance of the account on the chain of the user.
In the blockchain network system, the system resources provided by the blockchain node devices for the blockchain service can be value-anchored with the virtual resources published on the blockchain. For example, the storage resources provided by the node device for the data on the blockchain may perform value anchoring with the virtual resources published on the blockchain, and the blockchain data per unit capacity of storage may obtain the virtual resources corresponding thereto; for another example, the CPU computational resources provided by the node device for executing any transaction on the blockchain may be value-anchored with the virtual resources issued on the blockchain, and the virtual resources corresponding to the CPU computational resources may be acquired for each unit number of CPU instruction sets executed; for another example, the network resource provided by the node device for broadcast and consensus of any transaction on the blockchain may perform value anchoring with the virtual resource published on the blockchain, and may obtain the corresponding virtual resource based on the network traffic consumed in the broadcast or consensus process of the uplink transaction.
The block chain developer may quantify the system resources in the form of the storage resources, the computing resources, the network resources, and the like, and price the number of virtual resources corresponding to each unit of the storage resources, the computing resources, the network resources, or the system resources in other forms in the block chain network. For a federation chain, whose federation members are relatively fixed, the system resource pricing resulting from the anchoring can remain fixed for a longer period of time; for a public link system, nodes enter or exit a blockchain network more frequently, and after a blockchain developer performs unit pricing on the system resources in various forms, the blockchain developer performs real-time charging based on the blockchain scale when a user uses the blockchain or performs periodic charging according to a shorter period. Those skilled in the art can also charge the user for the blockchain service provided by the blockchain endpoint device based on any form of system resource having a value anchor relationship with the virtual resource published on the blockchain from the actual cost requirement, which is not limited in the present specification.
As shown in fig. 4, an exemplary embodiment of the present specification provides an intelligent contract creation method, including:
step 402, a node device of the blockchain receives an intelligent contract creation transaction sent by a blockchain client, wherein the intelligent contract creation transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account.
The intelligent contract code may include intelligent contract code in the form of bytecode. The account id is an account id of a user account to which the first amount of virtual resources described below is deducted for creation of the smart contract; the account identification may include the account identification of the intelligent contract creation transaction publisher, and may also include account identifications of other users specified by the intelligent contract creation transaction publisher. The type of the account corresponding to the account identifier may include an external account, and may also include an intelligent contract account.
The account storage capacity requested by the user corresponding to the intelligent contract comprises the capacity of storage resources allocated by the user requesting node equipment for the intelligent contract account created based on the intelligent contract code. In yet another illustrated embodiment, the blockchain system may provide a default account storage capacity for the intelligent contract account, at which time, the fields included in the intelligent contract creation transaction and corresponding to the user-requested account storage capacity corresponding to the intelligent contract may be empty to perform, by the node device, calculation of the amount of virtual resources that can be deducted (as set forth in step 404) and allocation of storage resources based on the default account storage capacity.
Step 404, calculating a first amount of the virtual resource anchored to the system resource value of the node device consumed for processing the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device for the intelligent contract based on the account storage capacity requested by the user.
The process of processing the intelligent contract creation transaction by the node devices of the blockchain may include one or more of receiving, forwarding (broadcasting) the intelligent contract creation transaction, performing consensus verification on the intelligent contract creation transaction, virtual resource transfer, executing the intelligent contract creation transaction, creating an intelligent contract account corresponding to the intelligent contract code, and including the intelligent contract creation transaction in a new block or the like. Because the value of the system resource carried by the node device is anchored with the virtual resource issued on the blockchain, and the node device of the blockchain provides its own system resource in the whole process of processing the intelligent contract creation transaction, the node device of the blockchain can calculate and determine the first amount of virtual resource anchored with the system resource value of the amount based on the amount of the system resource consumed or provided by the node device in the process of processing the intelligent contract creation transaction.
Specifically, the system resources of the node device consumed by processing the intelligent contract creation transaction may include account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user, for example, the blockchain system may price the storage resources provided by the node device: m (virtual resource units)/Gb, where a user requests NGb storage capacity for an account of the smart contract in a smart contract creation transaction, a node device may calculate a first amount of virtual resources anchored to a storage resource value of the node device consumed to process the smart contract creation transaction, including: m N (virtual resource units).
It is noted that the pricing of the storage resources provided by the node devices by the blockchain system may be related to the number of nodes of the blockchain system, and it is expected that the more node devices of the blockchain, the more total amount of the storage resources actually occupied by the created intelligent contract account, and therefore, the blockchain system may adjust the pricing of the storage resources per unit charged to the user based on the number of the node devices.
Based on the specific setting of the blockchain system, the first amount of the virtual resource deducted from the user account pointed by the account identifier may enable the node device to permanently provide NGb storage resources for the account of the intelligent contract, or may enable the node device to provide NGb storage resources for the account of the intelligent contract within a preset effective time period.
To customize the specific length of time that a node device may provide storage resources for an account of a smart contract based on the needs of a user, in yet another illustrated embodiment, the smart contract creation transaction further comprises: the effective duration corresponding to the account storage capacity requested by the user; the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain; accordingly, the calculating the amount of virtual resources anchored to the account storage resource value includes: calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
For example, the blockchain system may price the storage resources provided by the node devices: m (virtual resource units)/Gb/day, a user has requested NGb a storage capacity and a one-year validity duration for an account of the smart contract in a smart contract creation transaction; the node device may calculate a first amount of virtual resources anchored to the value of the storage resources of the node device consumed for processing the smart contract creation transaction, including: m × N × 365 (virtual resource unit).
It is noted that the field corresponding to the validity duration corresponding to the account storage capacity requested by the user, which is included in the smart contract creation transaction, may be null, so that the node device performs the calculation of the first amount of the virtual resource based on the validity duration default to the blockchain system.
In yet another illustrative embodiment, the system resources of the node device consumed for processing the intelligent contract creation transaction may further include computing resources of the node device consumed for processing the intelligent contract creation transaction, or network resources.
The computing resources may include a number of instructions in a CPU instruction set consumed by the node device to execute the smart contract creation transaction. For example, the blockchain system may price the computing resources provided by the node devices: m (virtual resource units)/instruction, the node device may first calculate the number N of instructions in the CPU instruction set consumed to execute the intelligent contract creation transaction, and then calculate the number of virtual resources corresponding to the N instructions, anchored to the value of the computing resources of the node device consumed to process the intelligent contract creation transaction: m N (virtual resource units).
The network resource may include a blockchain network traffic consumed in transmitting the smart contract creation transaction through broadcasting, consensus, or the like, and the network resource is positively correlated to the number of nodes of the blockchain. For example, the blockchain system may price network resources provided by the node devices: m (virtual resource units)/megaflow, the node device may first calculate a total network flow N megameters consumed to execute the intelligent contract creation transaction, and then calculate a number of virtual resources corresponding to the N megaflows, anchored to a network resource value of the node device consumed to process the intelligent contract creation transaction: m N (virtual resource units).
In this embodiment, the form of the system resource is not specifically limited, and besides the computing resource, the network resource, the storage resource, and the storage duration, a block chain system developer may anchor the value of the system resource in the form and the value of the virtual resource issued on the block chain based on other forms of system resources of block chain link point devices consumed in the process of creating the intelligent contract, so that a corresponding amount of virtual resources is deducted from the user account based on the form of system resource consumption in the process of creating the intelligent contract.
In an illustrated embodiment, the underlying protocol of the blockchain may be deployed with a computation model for computing the amount of virtual resources anchored to the system resource value of a node device consumed for processing the intelligent contract creation transaction, and when receiving the intelligent contract creation transaction sent by the blockchain client, the node device may obtain a first amount of virtual resources corresponding to the consumed system resources required for processing the intelligent contract creation transaction, where the first amount is computed by the computation model deployed by the underlying protocol of the blockchain. The system resource may include one or more of the storage resources, storage durations, computing resources, network resources, and other resource forms described in the foregoing embodiments.
Alternatively, an intelligent contract (hereinafter referred to as a resource computation intelligent contract) for computing virtual resource consumption for the intelligent contract creation transaction may be further deployed on the block chain, and the contract code of the resource computation intelligent contract includes execution logic including resource computation logic for computing a first amount of virtual resources that are value-anchored with system resources of the node device consumed for processing the intelligent contract creation transaction;
accordingly, in the above embodiments, calculating the first amount of the virtual resource anchored by the system resource value of the node device of the block chain consumed for processing the smart contract creation transaction includes:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored by a system resource value of a node device consumed by executing the intelligence contract to create a transaction.
It should be noted that, when the node device invokes the resource computation intelligent contract, a Local Transaction (Local Transaction or Local call) may be constructed in response to the obtained intelligent contract creation Transaction, and the resource computation intelligent contract deployed on the blockchain is locally invoked by the node device to determine the first quantity of the virtual resources anchored by the system resource value of the node device consumed for executing the intelligent contract creation Transaction. At this time, the node device may obtain the call execution result of the resource computation contract locally without recognizing the call execution result of the resource computation contract on the blockchain.
Specifically, when the computing resources, network resources, storage resources, or storage durations consumed by the node devices of the blockchain to process the intelligent contract creation transaction all account for the computing process of system resource consumption, the first amount of virtual resources included in the resource computing logic deployed by the computing model or the resource computing intelligent contract and used for computing the system resource value anchor of the node devices consumed by processing the intelligent contract creation transaction may include:
calculating a second amount of computing resources of the node device consumed for processing the smart contract creation transaction and determining a third amount of the virtual resources anchored to the second amount of computing resource value; the computing resources may comprise the number of instructions in a CPU instruction set consumed by the node device to process the smart contract creation transaction;
calculating a fourth amount of network resources of the node device consumed for processing the smart contract creation transaction and determining a fifth amount of the virtual resources anchored with the fourth amount of network resource value; the network resource may include a blockchain network traffic consumed during broadcasting, consensus, etc. transmission of the transaction, the network resource being positively correlated to a number of nodes of the blockchain;
calculating a sixth amount of the virtual resource anchored to the account storage capacity value within the validity duration of the user request;
based on the third quantity, the fifth quantity, and the sixth quantity, a sum of virtual resources anchored to system resource values of node devices consumed to process the smart contract creation transaction may be determined to be a sum of the third quantity, the fifth quantity, and the sixth quantity.
Step 406, deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier.
After deduction is completed, the first amount of virtual resources may be allocated to the blockchain account corresponding to the node device of the blockchain for holding. The deducted first amount of virtual resources may be directly allocated by the node device to a blockchain account corresponding to each node device in the blockchain that handles the smart contract creation transaction, so as to directly complete allocation of the virtual resources.
Alternatively, the node device may allocate the deducted first amount of virtual resources to a block chain account set on a block chain, such as a block chain account corresponding to each round of accounting nodes of the block chain, or a preset block chain account having the virtual resource receiving authority, so as to create system resources of the block chain consumed by the transaction based on processing the intelligent contract, and receive the first amount of virtual resources on behalf of each node device in the block chain.
After that, the blockchain can also set a corresponding virtual resource allocation rule, and the virtual resource obtained based on creating the intelligent contract is allocated to other blockchain user accounts by the set blockchain account based on a preset period (including real-time or periodically); or responding to the cashing requests of other blockchain users, exchanging the virtual resources which are to be distributed to other blockchain users into entity assets outside the chain, and performing logout processing on the virtual resources on the chain after the virtual resources are exchanged.
The rule for allocating the first amount of virtual resources to the blockchain account corresponding to each node device in the blockchain is not specifically limited in this specification. For example, the node device may equally allocate the deducted first amount of virtual resources to the blockchain accounts corresponding to the node devices of the blockchain to hold the deducted first amount of virtual resources.
Or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively. For example, since the storage media configurations of the node devices are different, the blockchain system may rank the storage media of each node device based on the obtained storage media performance attribute (e.g., hard disk performance attribute such as hdd, ssd, or nvm) of each node device, so as to allocate a higher proportion of virtual resources to the node device providing a high-level storage media and allocate a lower proportion of virtual resources to the node device providing a low-level storage media.
Step 408, executing the intelligent contract creation transaction to create an intelligent contract account in the blockchain corresponding to the intelligent contract code, and allocating account storage resources for the intelligent contract account based on the account storage capacity.
As previously described, a structure of a smart contract account may generally include fields such as Balance, Nonce, Code, and Storage. A Balance field for maintaining the current account Balance of the account; a Nonce field for maintaining a number of transactions for the account; the counter is used for guaranteeing that each transaction can be processed only once, and replay attack is effectively avoided; a Code field for maintaining a contract Code for the account; in practice, only the hash value of the contract Code is typically maintained in the Code field (the Code of the smart contract is then stored in the block in which the smart contract creation transaction is recorded).
A Storage field for maintaining the Storage content of the account; for a contract account, a separate storage space is usually allocated to store the storage content of the contract account; this separate storage space is often referred to as the account storage of the contract account. The storage content of the contract account is usually constructed into a data structure of an MPT (media Patricia Trie) tree and stored in the independent storage space; in which, the Storage content based on the contract account is constructed into an MPT tree, which is also commonly referred to as a Storage tree. Whereas the Storage field typically maintains only the root node of the Storage tree; thus, the Storage field is also commonly referred to as the Storage root field.
When the smart contract account corresponding to the smart contract code is created in the blockchain (e.g., MPT status tree), the node device may include a transaction receipt (receive) indicating that the smart contract creation transaction was successfully executed in the MPT receipt tree of the blockchain, so that the node device may return an indication that the smart contract creation transaction was successfully executed to a blockchain client that sent the smart contract creation transaction based on the transaction receipt.
In this embodiment, the allocating, by the node device, the account storage resource to the intelligent contract account based on the account storage capacity may specifically include: the node device may actually allocate an account storage resource to the intelligent contract account based on the account storage capacity (for example, a storage space of the account storage capacity is actually reserved in a storage hard disk of the node device), or the node device may record the account storage capacity, and during a life cycle of the intelligent contract, it is ensured that a storage space of the account storage capacity can be provided for the intelligent contract account, without reserving a storage space of the account storage capacity for the intelligent contract account immediately after the intelligent contract is created.
In one or more of the above embodiments, the sequence of steps 404, 406 and 408 described in fig. 4 is not limited. In an illustrated embodiment, the node device may first perform steps 404 and 406 to pre-calculate, based on the smart contract creation transaction, a first amount of the virtual resource anchored by the system resource value of the node device consumed to process the smart contract creation transaction; after successfully executing the deduction of the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier, the node device further executes step 408, executes the intelligent contract creation transaction, creates an intelligent contract account corresponding to the intelligent contract code in the blockchain, and allocates account storage resources for the intelligent contract account based on the account storage capacity.
Then, the node device may return a prompt to the blockchain client that the execution of the intelligent contract creation transaction is complete (e.g., the intelligent contract creation is successful) based on the execution result of the intelligent contract creation transaction (the transaction receipt corresponding to the intelligent contract creation transaction included in the MPT receipt tree of the blockchain).
In step 406, if the amount of the virtual resources held by the user account corresponding to the account identifier is smaller than the first amount, the node device cannot complete deducting the first amount of the virtual resources, and at this time, the node device may not execute the intelligent contract creation transaction, and return a prompt that the intelligent contract creation transaction fails to be executed (e.g., a failure in creating an intelligent contract) to the blockchain client.
It should be noted that, because the system resources consumed by the node device to execute the intelligent contract creation transaction include various forms such as computing resources, network resources, storage resources, and the like, some resource forms may be calculated based on the code of the intelligent contract before the intelligent contract creation transaction is executed, and some resource forms may be accurately known only after the intelligent contract creation transaction is executed. Thus, when the first amount of virtual resources to be deducted is determined based on the system resource estimate that may need to be consumed to execute the smart contract creation transaction as described in step 406 of this embodiment; the block chain may also set a subsequent system resource consumption verification link to check whether the storage resource consumed by the intelligent contract after being created obviously does not conform to the estimated storage resource, so as to perform corresponding virtual resource supplement or return operation, which is not limited in this specification.
In yet another illustrated embodiment, the node device may first execute step 408, execute the intelligent contract creation transaction, and temporarily store in the memory an intelligent contract account corresponding to the intelligent contract code and a transaction receipt (receive) generated based on an execution result of the intelligent contract creation transaction, which are created after execution; steps 404 and 406 are executed next, calculating a first amount of the virtual resource anchored with the system resource value of the node device actually consumed by the node device to process the smart contract creation transaction based on the smart contract creation transaction; thereby deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier.
If the first amount of virtual resources are successfully deducted from the virtual resources held by the user account, the node device may update the state of the intelligent contract account in the blockchain — creating the intelligent contract account corresponding to the intelligent contract code, and saving a transaction receipt (receive) generated after the intelligent contract creation transaction is executed and indicating that the intelligent contract creation transaction is successfully executed in an MPT receipt tree of the blockchain; at this time, the node device may return a prompt to the blockchain client that execution of the intelligent contract creation transaction is complete (e.g., the intelligent contract creation is successful);
if the amount of the virtual resources held by the user account corresponding to the account identifier is smaller than the first amount, the node device cannot deduct the first amount of the virtual resources, and at this time, a transaction receipt (receipt) which is generated after executing the intelligent contract creation transaction and indicates that the intelligent contract creation transaction is successfully executed and the created intelligent contract account corresponding to the intelligent contract code may be deleted from the memory, and a prompt that the data recovery transaction execution fails (for example, the intelligent contract creation fails) is returned to the blockchain client.
Or, when the amount of the virtual resources held by the user account corresponding to the account identifier is smaller than the first amount and the node device cannot complete deduction of the first amount of the virtual resources, the node device may temporarily store the transaction receipt and send a balance supplement prompt to the blockchain client, after the user completes balance supplement of the user account corresponding to the account identifier, perform virtual resource deduction operation of the first amount, and after deduction is successful, create the intelligent contract account in the blockchain, store the transaction receipt (receive) in an MPT receipt tree of the blockchain, and return a prompt of completion of transaction creation of the intelligent contract to the blockchain client.
In another embodiment, the process of broadcasting, consensus verification, and execution of the transaction of creating the intelligent contract in the blockchain may specifically include:
after receiving the intelligent contract establishing transaction sent by the blockchain client, the node equipment can broadcast and transmit the intelligent contract establishing transaction in a blockchain network;
after receiving the intelligent contract establishing transaction, the consensus node in the block chain can perform consensus verification on the intelligent contract establishing transaction;
if the consensus verification of the intelligent contract creation transaction passes, the node equipment of the blockchain can add the intelligent contract creation transaction into an account book database of the blockchain; and calculating a first amount of virtual resources anchored with a node device processing the intelligent contract creation transaction value, deducting the first amount of virtual resources from virtual resources held by a user account corresponding to the account identification, and creating an intelligent contract account corresponding to the intelligent contract code in the blockchain.
In this embodiment, in order to reduce the waste of system resources of the node device due to a failure of creating the intelligent contract because the balance of virtual resources in the user account corresponding to the account identifier is insufficient to pay the first amount of virtual resources required for processing the intelligent contract creation transaction, the consensus verification process performed by the consensus node of the block chain may include: verifying whether the amount of virtual resources held by the user account included in the smart contract creation transaction is not less than a preset threshold.
The preset threshold may be a fixed threshold of virtual resources set by the blockchain developer for the transaction of the intelligent contract creation type, for example, the preset threshold may be set based on the minimum system resource consumption for executing the transaction of the intelligent contract creation type or the number of virtual resources anchored by the average system resource consumption; under the condition, in order to successfully create the intelligent contract, the user account needs to hold the virtual resource quantity meeting the preset threshold, so that when the virtual resource quantity in the user account is less than the preset threshold, a prompt that the consensus verification fails is directly returned, and further system resources are prevented from being consumed by the node equipment due to the fact that the operation of deducting the first quantity of virtual resources is executed after the consensus verification stage.
In some embodiments, the above-mentioned intelligent contract creation transaction passes the above-mentioned consensus verification that the balance of the user account corresponding to the account identifier is not less than the preset threshold, but may still cause the transaction execution failure due to the above-mentioned intelligent contract code capacity being too large, the account storage capacity corresponding to the intelligent contract requested by the user being too large, or the logic of the above-mentioned intelligent contract being too complex.
Optionally, the consensus verification may further include the process of calculating and processing the first amount of the virtual resource anchored by the system resource value of the node device consumed for the smart contract creation transaction in step 404, for example, when the underlying protocol of the blockchain deploys a calculation model for calculating the amount of the virtual resource anchored by the system resource value of the node device consumed for processing the smart contract creation transaction, when the consensus node acquires the smart contract creation transaction, the first amount of the virtual resource that needs to be deducted from the user account based on the creation of the smart contract based on the calculation model may be acquired, and in this case, the preset threshold may be the first amount of the virtual resource determined by the calculation process, so that the consensus node of the blockchain in the consensus verification directly bases on the first amount of the virtual resource that needs to be deducted from the user account for processing the smart contract creation transaction, and executing consensus verification whether the deduction is enough, thereby providing more accurate consensus verification and improving the execution success rate of the intelligent contract establishing transaction through the consensus verification.
In yet another illustrated embodiment, to further facilitate management of the intelligent contracts, the intelligent contract accounts created in the blockchain and corresponding to the intelligent contract codes may further maintain a remaining effective duration of the effective duration corresponding to the account storage resources (which may be embodied as an effective duration of the account storage resources) based on the account storage capacity requested by the user, the remaining storage capacity of the account storage resources allocated to the intelligent contracts, and/or the effective duration corresponding to the account storage resources. In specific implementation, a content field (except Balance, Nonce, Code, and Storage) supported by the intelligent contract account may be extended to increase a remaining Storage capacity of the account Storage resource allocated to the intelligent contract account by the node device that identifies the block chain, and/or a remaining effective duration corresponding to the account Storage resource.
In one or more embodiments, the node device performs maintenance management on the state of the remaining storage capacity of the account storage resource allocated to the intelligent contract account and/or the remaining effective duration corresponding to the account storage resource by the intelligent contract account itself; optionally, the blockchain may further deploy, in a bottom layer protocol of the system, management logic for a remaining storage capacity state of an account storage resource corresponding to the intelligent contract account, and/or a storage state such as a remaining effective duration corresponding to the account storage resource, to monitor the intelligent contract account in real time or at regular time, and maintain a remaining storage capacity state of the account storage resource corresponding to the intelligent contract, and/or state information such as a remaining effective duration corresponding to the account storage resource; when checking the attribute of the intelligent contract account, each node device may obtain the state of the remaining storage capacity of the account storage resource corresponding to the intelligent contract account, and/or the state information such as the remaining effective duration corresponding to the account storage resource.
In a further illustrated embodiment, the blockchain may further deploy a special management contract for managing, in the management contract account, a remaining storage capacity of the account storage resource allocated by the maintenance node device for the intelligent contract, and/or a remaining effective duration corresponding to the account storage resource.
Therefore, when executing a transaction for creating an intelligent contract, a node device of a blockchain may also invoke the management contract to execute the management contract declared, the storage resource capacity allocated to the intelligent contract by the node device, and/or the remaining storage capacity of the account storage resource of the intelligent contract in the management contract account, together with the management logic of the effective duration of the account storage resource; and/or the remaining effective duration corresponding to the account storage resource.
It should be noted that, during the duration of the intelligent contract, the user may correspondingly extend or reduce the capacity of the storage resource allocated by the node device to the intelligent contract according to the actual demand, and/or correspondingly extend or reduce the effective duration corresponding to the account storage resource, so as to change the remaining storage capacity state of the account storage resource allocated by the node device of the block chain (maintained in the above-mentioned intelligent contract account or the management contract account) to the intelligent contract account, and/or the remaining effective duration state corresponding to the account storage resource, which is maintained in the block chain.
Since the data capacity actually stored in the smart contract account changes after the call transaction of the smart contract is executed, for example, when the call transaction of the smart contract is used to deposit the service data into the smart contract account, after the call transaction of the smart contract is completed, the deposit service data further increases the storage capacity actually occupied in the smart contract account, so that the remaining storage capacity maintained in the block chain (as maintained in the smart contract account or in the management contract account) is not enough to support the increased storage capacity.
Therefore, another illustrative embodiment of the present specification further provides a method for invoking an intelligent contract, including:
the node equipment receives an intelligent contract calling transaction sent by a blockchain client;
verifying whether the remaining storage capacity maintained in the blockchain is below a preset threshold; the preset threshold value can comprise a default and residual storage capacity threshold value set by the blockchain system for the intelligent contract invoking transaction type transaction, or the blockchain system is based on a preset storage resource occupation algorithm, is based on the intelligent contract invoking transaction and is pre-calculated, and executes the intelligent contract invoking transaction to newly increase the occupied storage capacity of the intelligent contract account;
and/or verifying whether the remaining effective duration maintained in the block chain is lower than a preset threshold value; the preset threshold may comprise a default, remaining validity duration threshold (which may be zero) set by the blockchain system for transactions of the intelligent contract invocation transaction type;
if so, returning a prompt of failure in executing the calling transaction to the blockchain client side which sends the calling transaction;
if not, executing the intelligent contract calling transaction, and updating the residual storage capacity (maintained in the intelligent contract account or the management contract account or maintained in the management contract account) maintained in the block chain and/or the residual effective duration after executing the intelligent contract calling transaction.
In this embodiment, verifying, by the node device, whether the remaining storage capacity of the intelligent contract account is lower than a preset threshold, where the preset threshold may be estimated based on an intelligent contract invocation transaction; and/or, verifying whether the remaining effective duration is lower than a preset threshold value: if not, executing the intelligent contract calling transaction, and updating the remaining storage capacity maintained in the block chain and/or the remaining effective duration; if so, the node equipment returns a prompt of failure in execution of the call transaction to the blockchain client sending the call transaction.
Correspondingly, another illustrated embodiment of the present specification further provides a method for invoking an intelligent contract, including:
the node equipment receives an intelligent contract calling transaction sent by a blockchain client;
executing the smart contract invocation transaction,
verifying whether the residual storage capacity of the intelligent contract account is lower than a preset threshold value after executing the intelligent contract calling transaction; the preset threshold may comprise a default, remaining storage capacity threshold (which may be zero) set by the blockchain system for transactions of the intelligent contract invocation transaction type;
and/or verifying whether the remaining effective duration is lower than a preset threshold value; the preset threshold may comprise a default, remaining validity duration threshold (which may be zero) set by the blockchain system for transactions of the intelligent contract invocation transaction type;
if so, returning a prompt of failure in executing the calling transaction to the blockchain client side which sends the calling transaction;
if not, the remaining storage capacity (e.g., maintained in the intelligent contract account or in the administrative contract account) maintained in the blockchain and/or the remaining effective duration are updated.
In this embodiment, the node device executes the smart contract invocation transaction first to obtain the remaining storage capacity of the smart contract account after the transaction is executed, and temporarily stores the state of the smart contract account after the transaction is executed and a transaction receipt generated for the smart contract invocation transaction in a memory, so as to verify whether the remaining storage capacity of the smart contract account maintained in the block chain is lower than a preset threshold after the smart contract invocation transaction is executed, and/or when verifying whether the remaining effective duration is lower than the preset threshold: if not, updating the remaining storage capacity maintained in the block chain and/or the remaining effective duration; if so, the node equipment deletes the state of the intelligent contract account stored in the memory and a transaction receipt generated for the intelligent contract invoking transaction, and returns a prompt of the invoking transaction execution failure to the blockchain client side sending the invoking transaction.
It is to be noted that, in the method for calling a smart contract provided in the above embodiment, the remaining storage capacity maintained in the blockchain is not limited, and/or the remaining effective time period is initially set based on the smart contract creation transaction. For example, the intelligent contract creation transaction may not include the account storage capacity corresponding to the intelligent contract requested by the user and/or the valid duration corresponding to the account storage capacity, and the user may further manage the account storage capacity and/or the valid duration corresponding to the account storage capacity after the intelligent contract creation is completed.
In yet another illustrated embodiment, an intelligent contract creator may set virtual resource transfer logic in execution logic corresponding to contract code of an intelligent contract to cause a node device of a blockchain to invoke a transaction in response to the intelligent contract, invoke the virtual resource transfer logic of the intelligent contract, deduct a virtual resource amount corresponding to the intelligent contract invocation transaction from a user account sending the invocation transaction, and allocate the virtual resource amount corresponding to the intelligent contract invocation transaction to the intelligent contract account or an administrative user account maintained by the intelligent contract.
Specifically, the virtual resource transfer logic of the intelligent contract may declare a virtual resource transfer rule corresponding to a called function type of the intelligent contract call transaction, or an anchor relationship between the new storage capacity occupation of the intelligent contract account and the value of the virtual resource after the intelligent contract call transaction is executed, and the like.
By the intelligent contract calling method, the user can call the execution of the transaction based on the intelligent contract sent by the user, and perform corresponding virtual resource transfer to the intelligent contract account or the management user account maintained by the intelligent contract, so that the user is prevented from calling the intelligent contract randomly, and the storage space management of the intelligent contract account is optimized; and because the intelligent contract can obtain a corresponding amount of virtual resources due to providing the intelligent contract calling service for the user, the intelligent contract developer is encouraged to develop a better intelligent contract calling service.
Based on the method for creating an intelligent contract according to one or more embodiments, the system resources hosted by the node devices of the block chain may be value-anchored with the virtual resources published on the block chain, so that the first amount of the virtual resources anchored by the system resource values of the node devices consumed for processing the intelligent contract creation transaction may be deducted from the user account corresponding to the account identifier included in the intelligent contract creation transaction, so that the node devices of the block chain may further obtain the corresponding virtual resources based on the system resources provided for the intelligent contract creation transaction. The block chain resource allocation is optimized, block chain system resource waste caused by random establishment of intelligent contracts in a non-charging mode is prevented, and compared with the existing mode that only miner nodes charge transaction fees, each node device in the block chain is encouraged to contribute corresponding system resources in a fairer virtual resource allocation mode.
Corresponding to the above flow implementation, the embodiments of the present specification further provide apparatuses 50 and 60 for creating an intelligent contract. The means 50, 60 may be implemented by software, by hardware or by a combination of both. Taking a software implementation as an example, the logical device is formed by reading a corresponding computer program instruction into a memory for running through a Central Processing Unit (CPU) of the device. In terms of hardware, the device in which the apparatus is located generally includes other hardware such as a chip for transmitting and receiving wireless signals and/or other hardware such as a board for implementing a network communication function, in addition to the CPU, the memory, and the storage shown in fig. 7.
As shown in fig. 5, the present specification further provides an apparatus for creating an intelligent contract, which is applied to a node device of a blockchain, where a system resource carried by the node device and a virtual resource published on the blockchain are subjected to value anchoring, and the apparatus includes:
a receiving unit 502, configured to receive an intelligent contract creation transaction sent by a blockchain client, where the intelligent contract creation transaction includes an intelligent contract code, an account storage capacity corresponding to the intelligent contract requested by a user, and an account identifier of a user account;
a calculating unit 504 that calculates a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
a deduction unit 506, configured to deduct the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier;
an executing unit 508, after the deducting unit 506 deducts the first amount of virtual resources, executes the intelligent contract creation transaction, creates an intelligent contract account in the blockchain corresponding to the intelligent contract code, and allocates account storage resources for the intelligent contract account based on the account storage capacity.
In yet another illustrated embodiment, the apparatus 50 further includes an allocating unit 510, allocating the first amount of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the node device of the blockchain for holding, and further executing the intelligent contract creation transaction after the allocation is completed.
In yet another illustrated embodiment, the allocating unit 510 is further configured to:
the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier are averagely distributed to the blockchain accounts corresponding to the node devices of the blockchain to be held respectively;
or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively.
In yet another illustrated embodiment, the smart contract creation transaction further comprises: the effective duration corresponding to the account storage capacity requested by the user;
the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain;
the calculating unit 504 is further configured to:
calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
In yet another illustrated embodiment, a remaining storage capacity of the account storage resources is maintained in the blockchain; and/or the remaining effective duration corresponding to the account storage resource;
the apparatus 50 further comprises:
a verification unit 512, configured to verify whether the remaining storage capacity maintained in the blockchain is lower than a preset threshold in response to a call transaction initiated by a blockchain client for the intelligent contract; and/or whether the remaining effective duration is lower than a preset threshold value;
a returning unit 514, if yes, returning a prompt that the execution of the calling transaction fails to the blockchain client sending the calling transaction;
if not, the updating unit 516 updates the remaining storage capacity and/or the remaining effective duration maintained in the block chain after executing the call transaction of the intelligent contract.
In yet another illustrative embodiment, the executing the invoking transaction of the smart contract comprises:
and calling virtual resource transfer logic of the intelligent contract, deducting the virtual resource quantity corresponding to the calling transaction from the user account sending the calling transaction, and distributing the virtual resource quantity corresponding to the calling transaction to the intelligent contract account or a management user account maintained by the intelligent contract.
In yet another illustrated embodiment, the apparatus 50 further comprises:
a returning unit 514, configured to return a prompt that the execution of the intelligent contract creation transaction fails to the blockchain client if the number of virtual resources held in the user account corresponding to the account identifier is smaller than the first number.
In yet another illustrative embodiment, processing the system resources of the node device consumed by the smart contract creation transaction further comprises:
the computing resources of the node device consumed by processing the smart contract creation transaction or,
processing the network resources of the node device consumed by the smart contract creation transaction.
In a further illustrated embodiment, the blockchain deploys a resource computation intelligence contract, and execution logic corresponding to contract code in the resource computation intelligence contract includes resource computation logic;
the calculating unit 504 is further configured to:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the intelligence contract to create a transaction.
In a further illustrated embodiment, the apparatus further comprises a broadcasting unit 518:
prior to executing the smart contract creation transaction, broadcasting the smart contract creation transaction to a blockchain network for consensus verification of the smart contract creation transaction; wherein the consensus verification comprises: verifying whether the number of virtual resources held by the user account is not less than a preset threshold value;
if consensus verification of the smart contract creation transaction passes, the execution unit 508 executes the smart contract creation transaction.
The specific details of the implementation process of the function and the action of each unit in the apparatus 50 are described in the implementation process of the corresponding step in the intelligent contract creation method executed by the node device, and for relevant points, reference may be made to the partial description of the method embodiment, which is not described herein again.
As shown in fig. 6, the present specification further provides an apparatus 60 for creating an intelligent contract, which is applied to a node device of a blockchain, where a system resource carried by the node device is value-anchored with a virtual resource published on the blockchain, and includes:
a receiving unit 602, configured to receive an intelligent contract creation transaction sent by a blockchain client, where the intelligent contract creation transaction includes an intelligent contract code, an account storage capacity corresponding to the intelligent contract requested by a user, and an account identifier of a user account;
an execution unit 604 that executes the intelligent contract creation transaction, creates an intelligent contract account in the blockchain that corresponds to the intelligent contract code, and allocates account storage resources for the intelligent contract account based on the account storage capacity;
a calculation unit 606 that calculates, after executing the smart contract creation transaction, a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
deducting unit 608, deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier.
In yet another illustrated embodiment, the apparatus 60 further comprises:
the allocating unit 610 allocates the first amount of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the node device of the blockchain for holding.
In yet another illustrated embodiment, the allocation unit 610 is further configured to:
the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier are averagely distributed to the blockchain accounts corresponding to the node devices of the blockchain to be held respectively;
or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively.
In yet another illustrated embodiment, the smart contract creation transaction further comprises:
the effective duration corresponding to the account storage capacity requested by the user; the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain;
the calculating unit 606 is further configured to:
calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
In yet another illustrated embodiment, a remaining storage capacity of the account storage resources is maintained in the blockchain; and/or the remaining effective duration corresponding to the account storage resource;
the apparatus 60 further comprises:
a verification unit 612, configured to verify whether the remaining storage capacity maintained in the blockchain is lower than a preset threshold in response to a call transaction initiated by a blockchain client for the intelligent contract; and/or whether the remaining effective duration is lower than a preset threshold value;
a returning unit 614, if yes, returning a prompt that the execution of the calling transaction fails to the blockchain client sending the calling transaction;
if not, after executing the call transaction of the intelligent contract, the updating unit 616 updates the remaining storage capacity of the account storage resource maintained in the block chain, and/or the remaining effective duration.
In yet another illustrative embodiment, the executing the invoking transaction of the smart contract comprises:
and calling virtual resource transfer logic of the intelligent contract, deducting the virtual resource quantity corresponding to the calling transaction from the user account sending the calling transaction, and distributing the virtual resource quantity corresponding to the calling transaction to the intelligent contract account or a management user account maintained by the intelligent contract.
In another illustrated embodiment, the apparatus 60 further comprises:
a returning unit 614, configured to, if the first amount of virtual resources are successfully deducted from the virtual resources held in the user account corresponding to the account identifier, store the generated transaction receipt corresponding to the smart contract creation transaction to the blockchain, and return a prompt that the smart contract creation is successful to the blockchain client;
and if the quantity of the virtual resources held in the user account corresponding to the account identification is smaller than the first quantity, deleting the generated transaction receipt corresponding to the intelligent contract creation transaction, and returning a prompt of failure in creating the intelligent contract to the blockchain client.
In yet another illustrative embodiment, processing the system resources of the node device consumed by the smart contract creation transaction further comprises:
the computing resources of the node device consumed by processing the smart contract creation transaction or,
processing the network resources of the node device consumed by the smart contract creation transaction.
In a further illustrated embodiment, the blockchain deploys a resource computation intelligence contract, and execution logic corresponding to contract code in the resource computation intelligence contract includes resource computation logic;
the computing unit is further configured to:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the intelligence contract to create a transaction.
In yet another illustrated embodiment, the apparatus 60 further includes a broadcasting unit 618 that broadcasts the intelligent contract creation transaction to a blockchain network for consensus verification of the intelligent contract creation transaction prior to execution of the intelligent contract creation transaction; wherein the consensus verification comprises: verifying whether the number of virtual resources held by the user account is not less than a preset threshold value;
if the consensus verification for the smart contract creation transaction passes, the execution unit 604 executes the smart contract creation transaction.
The specific details of the implementation process of the functions and actions of each unit in the apparatus 60 are described in the implementation process of the corresponding step in the intelligent contract creation method executed by the node device, and for relevant points, reference may be made to the partial description of the method embodiment, which is not described herein again.
The above-described embodiments of the apparatus are merely illustrative, and the units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical modules, may be located in one place, or may be distributed on a plurality of network modules. Some or all of the units or modules can be selected according to actual needs to achieve the purpose of the solution in the specification. One of ordinary skill in the art can understand and implement it without inventive effort.
The apparatuses, units and modules illustrated in the above embodiments may be implemented by a computer chip or an entity, or by a product with certain functions. A typical implementation device is a computer, which may take the form of a personal computer, laptop computer, cellular telephone, camera phone, smart phone, personal digital assistant, media player, navigation device, email messaging device, game console, tablet computer, wearable device, or a combination of any of these devices.
Corresponding to the above method embodiment, the embodiment of the present specification further provides a computer device, as shown in fig. 7, including a memory and a processor. Wherein the memory has stored thereon a computer program executable by the processor; the processor, when running the stored computer program, performs the steps of the method for creating an intelligent contract performed by the node device in which the apparatus shown in fig. 5 is located. For a detailed description of the steps of the intelligent contract creation method executed by the node device, please refer to the previous contents, which are not repeated.
Corresponding to the above method embodiment, the embodiment of the present specification further provides a computer device, as shown in fig. 7, including a memory and a processor. Wherein the memory has stored thereon a computer program executable by the processor; the processor, when running the stored computer program, executes the method of creating an intelligent contract executed by the node device in which the apparatus shown in fig. 6 is located. For a detailed description of the steps of the intelligent contract creation method executed by the node device, please refer to the previous contents, which are not repeated.
The above description is only a preferred embodiment of the present disclosure, and should not be taken as limiting the present disclosure, and any modifications, equivalents, improvements, etc. made within the spirit and principle of the present disclosure should be included in the scope of the present disclosure.
In a typical configuration, a computing device includes one or more processors (CPUs), input/output interfaces, network interfaces, and memory.
The memory may include forms of volatile memory in a computer readable medium, Random Access Memory (RAM) and/or non-volatile memory, such as Read Only Memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
Computer-readable media, including both non-transitory and non-transitory, removable and non-removable media, may implement information storage by any method or technology. The information may be computer readable instructions, data structures, modules of a program, or other data.
Examples of computer storage media include, but are not limited to, phase change memory (PRAM), Static Random Access Memory (SRAM), Dynamic Random Access Memory (DRAM), other types of Random Access Memory (RAM), Read Only Memory (ROM), Electrically Erasable Programmable Read Only Memory (EEPROM), flash memory or other memory technology, compact disc read only memory (CD-ROM), Digital Versatile Discs (DVD) or other optical storage, magnetic cassettes, magnetic tape magnetic disk storage or other magnetic storage devices, or any other non-transmission medium that can be used to store information that can be accessed by a computing device. As defined herein, a computer readable medium does not include a transitory computer readable medium such as a modulated data signal and a carrier wave.
It should also be noted that the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other like elements in a process, method, article, or apparatus that comprises the element.
As will be appreciated by one skilled in the art, embodiments of the present description may be provided as a method, system, or computer program product. Accordingly, embodiments of the present description may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present description may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and so forth) having computer-usable program code embodied therein.

Claims (42)

1. A method for creating an intelligent contract, which is applied to a node device of a blockchain, wherein a system resource carried by the node device is subjected to value anchoring with a virtual resource issued on the blockchain, and comprises the following steps:
receiving an intelligent contract creation transaction sent by a blockchain client, wherein the intelligent contract creation transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
deducting the first amount of virtual resources from virtual resources held by a user account corresponding to the account identifier, and further executing the intelligent contract creation transaction, creating an intelligent contract account corresponding to the intelligent contract code in the blockchain, and allocating account storage resources for the intelligent contract account based on the account storage capacity.
2. The method of claim 1, further comprising:
allocating the first amount of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the blockchain node device for holding, and further executing the intelligent contract creation transaction after the allocation is finished.
3. The method of claim 2, wherein allocating the first amount of virtual resources, deducted from the virtual resources held by the user account corresponding to the account identifier, to the blockchain account corresponding to the node device of the blockchain for holding comprises:
the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier are averagely distributed to the blockchain accounts corresponding to the node devices of the blockchain to be held respectively;
or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively.
4. The method of claim 1, the smart contract creation transaction further comprising: the effective duration corresponding to the account storage capacity requested by the user;
the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain;
calculating the amount of virtual resources anchored to the account storage resource value, comprising:
calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
5. The method of claim 1, the blockchain maintaining a remaining storage capacity of the account storage resource; and/or the remaining effective duration corresponding to the account storage resource;
the method further comprises the following steps:
verifying whether the remaining storage capacity maintained in the blockchain is below a preset threshold in response to a call transaction initiated by a blockchain client for the intelligent contract; and/or whether the remaining effective duration is lower than a preset threshold value;
if so, returning a prompt of failure in executing the calling transaction to the blockchain client side which sends the calling transaction;
and if not, after the calling transaction of the intelligent contract is executed, updating the remaining storage capacity and/or the remaining effective duration maintained in the block chain.
6. The method of claim 5, the executing the call transaction for the smart contract comprising:
and calling virtual resource transfer logic of the intelligent contract, deducting the virtual resource quantity corresponding to the calling transaction from the user account sending the calling transaction, and distributing the virtual resource quantity corresponding to the calling transaction to the intelligent contract account or a management user account maintained by the intelligent contract.
7. The method of claim 1, further comprising:
and if the quantity of the virtual resources held in the user account corresponding to the account identification is less than the first quantity, returning a prompt of failure in executing the intelligent contract creation transaction to the blockchain client.
8. The method of claim 1, processing system resources of the node device consumed by the smart contract creation transaction, further comprising:
the computing resources of the node device consumed by processing the smart contract creation transaction or,
processing the network resources of the node device consumed by the smart contract creation transaction.
9. The method of claim 1 or 8, wherein the blockchain deploys a resource computation intelligence contract, and execution logic corresponding to contract code in the resource computation intelligence contract comprises resource computation logic;
the calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed by processing the smart contract creation transaction includes:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the intelligence contract to create a transaction.
10. The method of claim 1, prior to executing the smart contract creation transaction, the method further comprising:
broadcasting the smart contract creation transaction to a blockchain network for consensus verification of the smart contract creation transaction; wherein the consensus verification comprises: verifying whether the number of virtual resources held by the user account is not less than a preset threshold value;
and executing the intelligent contract creation transaction if the consensus verification on the intelligent contract creation transaction passes.
11. A method for creating an intelligent contract, which is applied to a node device of a blockchain, wherein a system resource carried by the node device is subjected to value anchoring with a virtual resource issued on the blockchain, and comprises the following steps:
receiving an intelligent contract creation transaction sent by a blockchain client, wherein the intelligent contract creation transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
executing the intelligent contract creation transaction, creating an intelligent contract account in the blockchain corresponding to the intelligent contract code, and allocating account storage resources for the intelligent contract account based on the account storage capacity;
after executing the smart contract creation transaction, calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user; and deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier.
12. The method of claim 11, further comprising:
allocating the first amount of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the node device of the blockchain for holding.
13. The method of claim 12, wherein allocating the first amount of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the node device of the blockchain for holding comprises:
the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier are averagely distributed to the blockchain accounts corresponding to the node devices of the blockchain to be held respectively;
or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively.
14. The method of claim 11, the smart contract creation transaction further comprising:
the effective duration corresponding to the account storage capacity requested by the user; the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain;
calculating the amount of virtual resources anchored to the account storage resource value, comprising:
calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
15. The method of claim 11, wherein a remaining storage capacity of the account storage resource is maintained in the blockchain; and/or the remaining effective duration corresponding to the account storage resource;
the method further comprises the following steps:
verifying whether the remaining storage capacity maintained in the blockchain is below a preset threshold in response to a call transaction initiated by a blockchain client for the intelligent contract; and/or whether the remaining effective duration is lower than a preset threshold value;
if so, returning a prompt of failure in executing the calling transaction to the blockchain client side which sends the calling transaction;
if not, after executing the calling transaction of the intelligent contract, updating the residual storage capacity of the account storage resource maintained in the block chain and/or the residual effective duration.
16. The method of claim 15, the executing the invoking transaction of the smart contract comprising:
and calling virtual resource transfer logic of the intelligent contract, deducting the virtual resource quantity corresponding to the calling transaction from the user account sending the calling transaction, and distributing the virtual resource quantity corresponding to the calling transaction to the intelligent contract account or a management user account maintained by the intelligent contract.
17. The method of claim 11, further comprising:
if the first amount of virtual resources are successfully deducted from the virtual resources held in the user account corresponding to the account identification, storing a generated transaction receipt corresponding to the intelligent contract creation transaction to the blockchain, and returning a prompt of successful creation of the intelligent contract to the blockchain client;
and if the quantity of the virtual resources held in the user account corresponding to the account identification is smaller than the first quantity, deleting the generated transaction receipt corresponding to the intelligent contract creation transaction, and returning a prompt of failure in creating the intelligent contract to the blockchain client.
18. The method of claim 11, processing system resources of the node device consumed by the smart contract creation transaction, further comprising:
the computing resources of the node device consumed by processing the smart contract creation transaction or,
processing the network resources of the node device consumed by the smart contract creation transaction.
19. The method of claim 11 or 18, the blockchain deploying a resource computation intelligence contract, execution logic corresponding to contract code in the resource computation intelligence contract comprising resource computation logic;
the calculating a first amount of the virtual resource anchored to a system resource value of a node device consumed by processing the smart contract creation transaction includes:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the intelligence contract to create a transaction.
20. The method of claim 11, prior to executing the smart contract creation transaction, the method further comprising:
broadcasting the smart contract creation transaction to a blockchain network for consensus verification of the smart contract creation transaction; wherein the consensus verification comprises: verifying whether the number of virtual resources held by the user account is not less than a preset threshold value;
and executing the intelligent contract creation transaction if the consensus verification on the intelligent contract creation transaction passes.
21. An apparatus for creating an intelligent contract, applied to a node device of a blockchain, wherein a system resource carried by the node device is value-anchored with a virtual resource issued on the blockchain, the apparatus comprising:
the intelligent contract creating system comprises a receiving unit, a block chain client and a block chain processing unit, wherein the receiving unit is used for receiving an intelligent contract creating transaction sent by the block chain client, and the intelligent contract creating transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
a calculation unit that calculates a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
the deduction unit is used for deducting the virtual resources of the first quantity from the virtual resources held by the user account corresponding to the account identification;
an execution unit, configured to execute the intelligent contract creation transaction after deducting the first amount of virtual resources from the virtual resources held by the user account corresponding to the account identifier, create an intelligent contract account corresponding to the intelligent contract code in the blockchain, and allocate account storage resources for the intelligent contract account based on the account storage capacity.
22. The apparatus of claim 21, further comprising:
and the allocation unit allocates the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the node equipment of the blockchain for holding, and further executes the intelligent contract creation transaction after the allocation is finished.
23. The apparatus of claim 22, the allocation unit, further to:
the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier are averagely distributed to the blockchain accounts corresponding to the node devices of the blockchain to be held respectively;
or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively.
24. The apparatus of claim 21, the smart contract creation transaction further comprising:
the effective duration corresponding to the account storage capacity requested by the user; the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain;
the computing unit is further configured to:
calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
25. The apparatus of claim 21, the blockchain maintaining a remaining storage capacity of the account storage resource; and/or the remaining effective duration corresponding to the account storage resource;
the device further comprises:
the verification unit is used for responding to a calling transaction aiming at the intelligent contract initiated by a block chain client and verifying whether the residual storage capacity maintained in the block chain is lower than a preset threshold value or not; and/or whether the remaining effective duration is lower than a preset threshold value;
if yes, a return unit returns a prompt of the calling transaction execution failure to the blockchain client side which sends the calling transaction;
and if not, after the calling transaction of the intelligent contract is executed, the updating unit updates the residual storage capacity of the account storage resource maintained in the block chain and/or the residual effective duration.
26. The apparatus of claim 25, the executing the invoking transaction of the smart contract comprising:
and calling virtual resource transfer logic of the intelligent contract, deducting the virtual resource quantity corresponding to the calling transaction from the user account sending the calling transaction, and distributing the virtual resource quantity corresponding to the calling transaction to the intelligent contract account or a management user account maintained by the intelligent contract.
27. The apparatus of claim 21, further comprising:
and the returning unit is used for returning a prompt of failure in the establishment of the transaction of the intelligent contract to the blockchain client if the quantity of the virtual resources held in the user account corresponding to the account identification is less than the first quantity.
28. The apparatus of claim 21, processing system resources of the node device consumed by the smart contract creation transaction, further comprising:
the computing resources of the node device consumed by processing the smart contract creation transaction or,
processing the network resources of the node device consumed by the smart contract creation transaction.
29. The apparatus of claim 21 or 28, the blockchain deploying a resource computation intelligence contract, execution logic corresponding to contract code in the resource computation intelligence contract comprising resource computation logic;
the computing unit is further configured to:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the intelligence contract to create a transaction.
30. The apparatus of claim 21, further comprising: a broadcasting unit that broadcasts the intelligent contract creation transaction to a blockchain network for consensus verification of the intelligent contract creation transaction before the intelligent contract creation transaction is executed; wherein the consensus verification comprises: verifying whether the number of virtual resources held by the user account is not less than a preset threshold value;
and executing the intelligent contract creation transaction if the consensus verification on the intelligent contract creation transaction passes.
31. An apparatus for creating an intelligent contract, applied to a node device of a blockchain, wherein a system resource carried by the node device is value-anchored with a virtual resource issued on the blockchain, the apparatus comprising:
the intelligent contract creating system comprises a receiving unit, a block chain client and a block chain processing unit, wherein the receiving unit is used for receiving an intelligent contract creating transaction sent by the block chain client, and the intelligent contract creating transaction comprises an intelligent contract code, account storage capacity corresponding to the intelligent contract requested by a user and account identification of a user account;
an execution unit to execute the intelligent contract creation transaction, create an intelligent contract account in the blockchain corresponding to the intelligent contract code, and allocate account storage resources for the intelligent contract account based on the account storage capacity;
a calculation unit that calculates, after execution of the smart contract creation transaction, a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the smart contract creation transaction; wherein the system resources of the node device consumed by processing the intelligent contract creation transaction comprise account storage resources allocated by the node device to the intelligent contract based on the account storage capacity requested by the user;
and the deduction unit is used for deducting the virtual resources of the first quantity from the virtual resources held by the user account corresponding to the account identification.
32. The apparatus of claim 31, further comprising:
and the allocation unit allocates the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain account corresponding to the node equipment of the blockchain for holding, and further executes the intelligent contract creation transaction after the allocation is finished.
33. The apparatus of claim 32, the allocation unit, further to:
the virtual resources of the first quantity deducted from the virtual resources held by the user account corresponding to the account identifier are averagely distributed to the blockchain accounts corresponding to the node devices of the blockchain to be held respectively;
or, based on the storage medium performance attribute of the account storage resource allocated to the intelligent contract by each node device of the blockchain, allocating the first number of virtual resources deducted from the virtual resources held by the user account corresponding to the account identifier to the blockchain accounts corresponding to each node device of the blockchain to hold the virtual resources respectively.
34. The apparatus of claim 31, the smart contract creation transaction further comprising:
the effective duration corresponding to the account storage capacity requested by the user; the effective duration of the storage resources carried by the node equipment is subjected to value anchoring with the virtual resources released on the block chain;
the computing unit is further configured to:
calculating the number of virtual resources anchored to the account storage resources and the expiration date value.
35. The apparatus of claim 31, the blockchain maintaining a remaining storage capacity of the account storage resource; and/or the remaining effective duration corresponding to the account storage resource;
the device further comprises:
the verification unit is used for responding to a calling transaction aiming at the intelligent contract initiated by a block chain client and verifying whether the residual storage capacity maintained in the block chain is lower than a preset threshold value or not; and/or whether the remaining effective duration is lower than a preset threshold value;
if yes, a return unit returns a prompt of the calling transaction execution failure to the blockchain client side which sends the calling transaction;
and if not, after the calling transaction of the intelligent contract is executed, the updating unit updates the residual storage capacity of the account storage resource maintained in the block chain and/or the residual effective duration.
36. The apparatus of claim 35, the executing the invoking transaction of the smart contract comprising:
and calling virtual resource transfer logic of the intelligent contract, deducting the virtual resource quantity corresponding to the calling transaction from the user account sending the calling transaction, and distributing the virtual resource quantity corresponding to the calling transaction to the intelligent contract account or a management user account maintained by the intelligent contract.
37. The apparatus of claim 31, further comprising:
a returning unit, configured to, if the first amount of virtual resources are successfully deducted from the virtual resources held in the user account corresponding to the account identifier, store the generated transaction receipt corresponding to the intelligent contract creation transaction to the blockchain, and return a prompt indicating that the intelligent contract creation is successful to the blockchain client;
and if the quantity of the virtual resources held in the user account corresponding to the account identification is smaller than the first quantity, deleting the generated transaction receipt corresponding to the intelligent contract creation transaction, and returning a prompt of failure in creating the intelligent contract to the blockchain client.
38. The apparatus of claim 31, processing system resources of the node device consumed by the smart contract creation transaction, further comprising:
the computing resources of the node device consumed by processing the smart contract creation transaction or,
processing the network resources of the node device consumed by the smart contract creation transaction.
39. The apparatus of claim 31 or 38, the blockchain deploying a resource computation intelligence contract, execution logic corresponding to contract code in the resource computation intelligence contract comprising resource computation logic;
the computing unit is further configured to:
invoking the resource computation intelligence contract, executing the resource computation logic, computing a first amount of the virtual resource anchored to a system resource value of a node device consumed to process the intelligence contract to create a transaction.
40. The apparatus of claim 31, further comprising: a broadcasting unit that broadcasts the intelligent contract creation transaction to a blockchain network for consensus verification of the intelligent contract creation transaction before the intelligent contract creation transaction is executed; wherein the consensus verification comprises: verifying whether the number of virtual resources held by the user account is not less than a preset threshold value;
and executing the intelligent contract creation transaction if the consensus verification on the intelligent contract creation transaction passes.
41. A computer device, comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; the processor, when executing the computer program, performs the method of any of claims 1 to 10.
42. A computer device, comprising: a memory and a processor; the memory having stored thereon a computer program executable by the processor; the processor, when executing the computer program, performs the method of any of claims 11 to 20.
CN202011126776.XA 2020-10-20 2020-10-20 Intelligent contract creating method and device Pending CN111967995A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011126776.XA CN111967995A (en) 2020-10-20 2020-10-20 Intelligent contract creating method and device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011126776.XA CN111967995A (en) 2020-10-20 2020-10-20 Intelligent contract creating method and device

Publications (1)

Publication Number Publication Date
CN111967995A true CN111967995A (en) 2020-11-20

Family

ID=73387045

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011126776.XA Pending CN111967995A (en) 2020-10-20 2020-10-20 Intelligent contract creating method and device

Country Status (1)

Country Link
CN (1) CN111967995A (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112559635A (en) * 2020-12-23 2021-03-26 网易(杭州)网络有限公司 Service processing method, device, equipment and medium for Ether house alliance link node
CN112651735A (en) * 2020-12-10 2021-04-13 前海飞算科技(深圳)有限公司 Payment channel selection method and device, computer equipment and storage medium
CN113128992A (en) * 2021-04-30 2021-07-16 支付宝(杭州)信息技术有限公司 Payment method based on intellectual property right use authorization
CN113769412A (en) * 2021-09-18 2021-12-10 北京冰封互娱科技有限公司 Control method and device of virtual prop, storage medium and electronic device
CN116012164A (en) * 2023-03-17 2023-04-25 安徽中科晶格技术有限公司 Block chain cross-fragment transaction method based on virtual account
CN116739593A (en) * 2023-08-15 2023-09-12 腾讯科技(深圳)有限公司 Transaction resource processing method, device, equipment and medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109064330A (en) * 2018-07-19 2018-12-21 中链科技有限公司 Service transacting processing method, system and device based on alliance's block chain
CN111371781A (en) * 2020-03-03 2020-07-03 李斌 Expansion removing optimization method based on block chain account book
CN111401867A (en) * 2020-03-18 2020-07-10 腾讯科技(深圳)有限公司 Resource transfer method and device based on block chain, node equipment and storage medium
CN111784426A (en) * 2019-04-03 2020-10-16 湖州师范学院 Cloud storage resource transaction method based on intelligent contract

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109064330A (en) * 2018-07-19 2018-12-21 中链科技有限公司 Service transacting processing method, system and device based on alliance's block chain
CN111784426A (en) * 2019-04-03 2020-10-16 湖州师范学院 Cloud storage resource transaction method based on intelligent contract
CN111371781A (en) * 2020-03-03 2020-07-03 李斌 Expansion removing optimization method based on block chain account book
CN111401867A (en) * 2020-03-18 2020-07-10 腾讯科技(深圳)有限公司 Resource transfer method and device based on block chain, node equipment and storage medium

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112651735A (en) * 2020-12-10 2021-04-13 前海飞算科技(深圳)有限公司 Payment channel selection method and device, computer equipment and storage medium
CN112559635A (en) * 2020-12-23 2021-03-26 网易(杭州)网络有限公司 Service processing method, device, equipment and medium for Ether house alliance link node
CN112559635B (en) * 2020-12-23 2023-06-16 网易(杭州)网络有限公司 Service processing method, device, equipment and medium for Ethernet alliance chain node
CN113128992A (en) * 2021-04-30 2021-07-16 支付宝(杭州)信息技术有限公司 Payment method based on intellectual property right use authorization
CN113769412A (en) * 2021-09-18 2021-12-10 北京冰封互娱科技有限公司 Control method and device of virtual prop, storage medium and electronic device
CN113769412B (en) * 2021-09-18 2024-04-19 北京冰封互娱科技有限公司 Virtual prop control method and device, storage medium and electronic device
CN116012164A (en) * 2023-03-17 2023-04-25 安徽中科晶格技术有限公司 Block chain cross-fragment transaction method based on virtual account
CN116012164B (en) * 2023-03-17 2023-06-30 安徽中科晶格技术有限公司 Block chain cross-fragment transaction method based on virtual account
CN116739593A (en) * 2023-08-15 2023-09-12 腾讯科技(深圳)有限公司 Transaction resource processing method, device, equipment and medium
CN116739593B (en) * 2023-08-15 2024-01-19 腾讯科技(深圳)有限公司 Transaction resource processing method, device, equipment and medium

Similar Documents

Publication Publication Date Title
WO2021008122A1 (en) Virtual resource allocation method and device employing blockchain, and electronic apparatus
CN111967995A (en) Intelligent contract creating method and device
CN112015823B (en) Block chain data deleting method and device
US20210297368A1 (en) Allocating virtual resource based on blockchain
CN111966757B (en) Method and device for managing storage space of intelligent contract account
CN112015596B (en) Block chain data recovery method and device
CN110458631B (en) Bill number distribution method and device based on block chain and electronic equipment
CN111966538B (en) Block chain data recovery method and device
CN112200571B (en) Resource distribution method and device based on block chain and electronic equipment
CN112015576A (en) Calling method and device of intelligent contract
CN110599323B (en) Resource processing method and processing equipment
CN111967994B (en) Intelligent contract creating method and device
CN111818185B (en) Method and device for starting intelligent contract, electronic equipment and storage medium
CN110473030B (en) Block chain-based electronic bill number claiming method and device and electronic equipment
CN112015822B (en) Block chain data deleting method and device
CN112200567B (en) Resource management method and device based on block chain and electronic equipment
CN111966503B (en) Method and device for managing storage space of intelligent contract account
CN112015577B (en) Intelligent contract calling method and device
CN112200568B (en) Block chain based account creation method and device and electronic equipment
CN112200572A (en) Resource distribution method and device based on block chain and electronic equipment
CN112070503A (en) Contract execution method, device, equipment and storage medium based on block chain
CN110443612B (en) Block chain-based reimbursement expense segmentation method and device and electronic equipment
CN112200570A (en) Resource distribution method and device based on block chain and electronic equipment
CN113034137A (en) Data processing method and device based on block chain and related equipment
CN112365353A (en) Block chain-based content propagation method and device

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
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40040771

Country of ref document: HK

TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20240923

Address after: Room 803, floor 8, No. 618 Wai Road, Huangpu District, Shanghai 200010

Applicant after: Ant blockchain Technology (Shanghai) Co.,Ltd.

Country or region after: China

Address before: 310000 801-11 section B, 8th floor, 556 Xixi Road, Xihu District, Hangzhou City, Zhejiang Province

Applicant before: Alipay (Hangzhou) Information Technology Co.,Ltd.

Country or region before: China