KalyChain Documents
  • KalyChain
  • Quick Start
    • Whats is KalyChain
    • Install
    • Start Node
    • How To
    • Genesis File
  • Consensus
    • Proof of Authority (PoA)
    • QBFT
    • Validators
    • Bootnodes
  • Transactions
    • Transaction pool
    • Transaction types
    • Transaction Validation
  • Operate a node
    • Data storage formats
    • Events and logs
    • Backup/restore node instance
    • Add and remove validators without voting
  • JSON RPC Commands
    • Access Logs
    • Authenticate
    • Graphql
    • JSON RPC
    • RPC Pub/Sub
Powered by GitBook
On this page
  1. Transactions

Transaction Validation

What transaction validation and when

PreviousTransaction typesNextData storage formats

Last updated 2 years ago

For transactions submitted and added to a block, KalyChain validates the transactions, as illustrated in the following diagram.

Transaction Validation

KalyChain repeats the set of transaction pool validations after propagating the transaction. KalyChain repeats the same set of validations when importing the block that includes the transaction, except the nonce must be exactly right when importing the block.

!!! important

Private transactions are not added to the transaction pool. The privacy marker transaction is
submitted to the transaction pool but the private transaction itself is directly distributed
to the transaction participants.

When adding the transaction to a block, KalyChain performs an additional validation to check that the transaction gas limit is less than the remaining block gas limit. After creating a block, the node imports the block and then repeats the transaction pool validations.

!!! important

The transaction is only added if the entire transaction gas limit is less than the remaining
gas for the block. The total gas used by the transaction is not relevant to this validation.
That is, if the total gas used by the transaction is less than the remaining block gas, but the
transaction gas limit is more than the remaining block gas, the transaction is not added.