Transaction module

Module Overview

In the nuls2.0 ecosystem, trades flow between chains or chains, and the nodes of each chain not only deal with transactions within the chain, but also deal with cross-chain transactions, so each node needs to be processed. The trades are more and more complex and more complex, so we need a single but separate module to handle the various transactions.From the architectural design of nuls2.0, we need a separate module to handle transaction collection, verification, secure transaction data, storage and other functions for block assembly. For all transactions, these functions have commonality. Uniformity, so we run transaction management as a separate module.

Transaction Processing Logic

  • Collecting transactions
  • Local verification
  • Broadcast forwarding transactions to other nodes
  • Extract packageable transactions
  • Submit, rollback transactions
  • Save unconfirmed, packageable and confirmed transactions
  • Provide data for the transaction

Interface List

tx_register

Register module transactions / Register module transactions

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
moduleCode string module code for registering transactions yes
list list Data for pending transactions Yes
        txType int Transaction Type Yes
        systemTx boolean Is it a system transaction Yes
        unlockTx boolean Whether it is an unlock transaction Yes
        verifySignature boolean Does the transaction require a signature Yes
        verifyFee boolean Does the transaction require a verification fee Yes
delList list<integer> Pending registered transaction data No

return value

Field Name Field Type Parameter Description
value boolean Whether registration is successful

tx_getTx

According to the hash to get the transaction, first check the unconfirmed, can not find the reconfirmed / Get transaction by tx hash

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHash string To-be-traded hash Yes

return value

Field Name Field Type Parameter Description
tx string Get the string of the serialized data of the transaction

tx_newTx

Receive local new transaction /receive a new transaction

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
tx string Transaction Serialized Data String Yes

return value

Field Name Field Type Parameter Description
value boolean success
hash string transaction hash

tx_batchVerify

Verify all transactions in the block / Verify all transactions in the block

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txList list<string> To-be-verified transaction serialized data string collection Yes
blockHeader string Corresponding block header Yes
preStateRoot string previous block state root yes

return value

Field Name Field Type Parameter Description
value boolean Whether verification succeeds
contractList list<string> Smart Contract New Deal

tx_rollback

Rollback block transaction / transaction rollback

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHashList list<string> To-be-rolled transaction collection Yes
blockHeader string Block Head Yes

return value

Field Name Field Type Parameter Description
value boolean success

tx_cs_state

Set the node packing status (set by the consensus module) / Set the node packaging state

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
packaging boolean Whether it is being packaged Yes

return value

Field Name Field Type Parameter Description
N/A void No specific return value, set without success

tx_packableTxs

Get a packageable transaction set/returns a list of packaged transactions

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
EndTimestamp long Deadline Yes
maxTxDataSize int Maximum transaction set capacity Yes
blockTime long This block time Yes
packingAddress string current block address yes
preStateRoot string The status root of the previous block Yes

return value

Field Name Field Type Parameter Description
list list<string> packageable transaction set
stateRoot string The current state of the current block
packageHeight long The height of this packaging block

tx_backPackableTxs

The consensus module returns the unpackable transaction and rejoins the package to be packaged/back packaged transactions

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txList list<string> Transaction Serialization Data String Collection Yes

return value

Field Name Field Type Parameter Description
value boolean success

tx_save

Save the new block transaction / Save the confirmed transaction

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txList list<string> The set of transactions to be saved Yes
contractList list<string> Smart Contract Trading Yes
blockHeader string Block Head Yes

return value

Field Name Field Type Parameter Description
value boolean success

tx_gengsisSave

Save the transactions of the Genesis block

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txList list<string> The set of transactions to be saved Yes
blockHeader string Block Head Yes

return value

Field Name Field Type Parameter Description
value boolean success

tx_getSystemTypes

Get all system transaction types / Get system transaction types

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes

return value

Field Name Field Type Parameter Description
list list<integer> System Transaction Type Collection

tx_getConfirmedTx

Get confirmed transactions based on hash (check only confirmed) / Get confirmed transaction by tx hash

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHash string To-be-traded hash Yes

return value

Field Name Field Type Parameter Description
tx string Get the string of the serialized data of the transaction

tx_getBlockTxs

Get the complete transaction of the block, if there is no query, or if the query is not the complete transaction data of the block, then return the empty set / Get block transactions

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHashList list<string> To-be-reported hash collection Yes

return value

Field Name Field Type Parameter Description
txList list<string> Returns a collection of transaction serialized data strings

tx_getBlockTxsExtend

According to the hash list, get the transaction, first check the unconfirmed, then check the confirmed / Get transactions by hashs

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHashList list<string> To-be-reported hash collection Yes
allHits boolean true: must be found to return data, otherwise return empty list; false: check several returns a few Yes

return value

Field Name Field Type Parameter Description
txList list<string> Returns a collection of transaction serialized data strings

tx_getNonexistentUnconfirmedHashs

Query the incoming transaction hash, the transaction in the unconfirmed library hash/Get nonexistent unconfirmed transaction hashs

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHashList list<string> To-be-reported hash collection Yes

return value

Field Name Field Type Parameter Description
txList list<string> Returns a collection of transaction serialized data strings

tx_bl_state

Set node block synchronization status (set by block module) / Set the node block state

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
status int Whether to wait, not to process transactions Yes

return value

Field Name Field Type Parameter Description
N/A void No specific return value, set without success

tx_blockHeight

Receive the latest block height/Receive the latest block height

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
height long block height yes

return value

Field Name Field Type Parameter Description
value boolean success

tx_getTxClient

Get the transaction according to the hash, first check the unconfirmed, check and check the confirmed / Get transaction by tx hash

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHash string To-be-traded hash Yes

return value

Field Name Field Type Parameter Description
tx string Get the string of the serialized data of the transaction
height string Get the confirmed height of the transaction, the unconfirmed transaction height is -1
status string Get the status of the confirmed transaction

tx_verifyTx

Verify transaction interface, including basic verification, validator, account verification/Verify transation

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
tx string Full string to be verified Yes

return value

Field Name Field Type Parameter Description
value string transaction hash

transferCMDTest

scope:public

version:1.0

parameter list

No parameters

return value

No return value

tx_getConfirmedTxClient

Get confirmed transactions based on hash (check only confirmed) / Get confirmed transaction by tx hash

scope:public

version:1.0

parameter list

Parameter Name Parameter Type Parameter Description Is Not Empty
chainId int chain id yes
txHash string To-be-traded hash Yes

return value

Field Name Field Type Parameter Description
tx string Get the string of the serialized data of the transaction
height string Get the confirmed height of the transaction
status string Get the status of the confirmed transaction
Last Updated: 9/5/2019, 4:50:57 PM