If checks 1–3 passed, and the calculation of the result (check 4.1) failed with an error or throwing an exception before the complexity of performed calculations exceeded the threshold for saving failed transactions, the transaction is also discarded. If one of the checks 1–3 failed, the transaction is discarded.When adding the transaction to the block, the result of validation depends on the transaction type. If all the checks passed, the transaction is added to the UTX pool that is the list of transactions waiting to be added to the block.If one of the checks failed, the transaction is discarded.When the transaction is received via broadcast or over the network: When receiving an Invoke Script transaction over the network, the node performs calculations of the callable function (check 4.1) up to the threshold for saving unsuccessful transactions. When receiving the transaction via the broadcast endpoint, or adding transaction to a block, or receiving a block over the network, the node performs full validation of the transaction. Check that the transaction fee is not less than the minimum fee based on script actions.Įxecution of asset scripts if the transaction uses smart assets, including scripts of assets used in dApp script actions. dApp balance check: dApp account should have enough funds for dApp script actions.Ĥ.3. Calculation of the result of dApp callable function.Ĥ.2. A similar check is performed for orders in an Exchange transaction.įor the Invoke Script transaction and the Ethereum transaction that invokes a dApp script:Ĥ.1. The sender's signature verification for ordinary account (without script), or account script execution if the sender is smart account, or the verifier function execution if the sender is dApp. Order senders in the Exchange transaction should have enough funds to exchange. If a sponsored asset is used for the fee, the sponsor's balance is also checked.ĭepending on the type of transaction, the sender should have enough asset for transfer or for payments attached to the Invoke Script transaction. The sender should have enough funds to pay the fee. Check of fields depending on the transaction type.Check of token amounts: the values must be non-negative.Transaction type check: all the features required to support this type should be activated.Transaction version check: all the features required to support this version should be activated.Timestamp check: the transaction timestamp should be not more than 2 hours ago or 1.5 hours ahead from the current block timestamp.The node receives a block (or microblock) from another node in the network.įull transaction validation includes the following checks:.The block generator adds the transaction to a block.The node receives the transaction from another node of the blockchain network using the binary protocol.The node receives the transaction via the broadcast endpoint of Node REST API or gRPC Server.A Waves node validates each transaction in the following cases:
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |