What’s an action?
Actions define atomic behaviors within a smart contract.
What’s the difference between explicit actions and implicit (or inline) actions?
Explicit = done within a smart contract -present in a signed transaction Explicit actions contain the payload data, if any associated with the action to be executed as a part of the transaction.
Implicit also inline actions = by application code. -created as a side effort of processing a transaction -also found in smart contract code. Inline actions are not included in the actual transactions propagated through the network. They are not included in the block. Implicit actions are generated as a result of an explicit caller action within a transaction or another nested inline action. It requires that implicit action to preform an operation for the caller action to continue. They operate within the scope and permissions of the called action. As a result they are guaranteed to execute within the same transaction.
What’s the difference between an action and a transaction?
Actions specify and define the actual behaviors of the contract. Actions are implemented as C++ methods within the derived class.
Transactions are created at the application level. Transactions are generated dynamically within an eosio application. The EOSIO software processes each transaction instance and keeps track of its state as it evolves from creation, signing, validation, and execution.
Transaction
transaction header
eligibility to be included in the block
block number
block ID prefix (prevents cross chain or cross fork attacks)
upper limits for CPU and network usage,
block number
delay if any
list of actions instances
and transaction extensions that make the actual transaction.
Signed transaction instance:
basic contents:
signature(s)
data associated with the context free actions
Packed Transaction instance:
optionally compressed
additional housekeeping fields to allow for decompression and quick validation
minimize space footprint and block size in the long run
What is a transaction receipt and what does it mean to receive it?
Transaction receipts summarize the result of the transaction (executed, unexecuted, failed, expired, deferred, etc…), including the actual amount of CPU billed in microseconds, and the total NET storage used
I answered the questions based on what I saw in the article, but I don’t understand most of what I wrote.
- what is atomic behavior? What does it compare with?
- I don’t understand explicit vs implicit actions
- Actions are the triggers in a smart contract that calls for a transaction, right?? I’m not sure.
- I would expect more order in a block Should be header contains A, B, C… Body contains D,E,F… closing contains G,H, receipt. I looked for this format, but didn’t see it.