Stellar offers a model in which Operations (ops) are aggregated into Transactions (tx) which are aggregated into blocks. You can stuff 100(?) ops in a tx and 100(?) txs in a block (or ledger).

but why bother with this design? Presumably, there's a reason ops were invented. are they "cheaper"? would it be somehow less taxing to send 1 tx with 100 ops than 100 txs with 1 op? why? what is gained here?

  • I understand that all the ops in a tx are guaranteed ACID, but is this the only reason to have them? or are there efficiency considerations here as well? – FuzzyAmi Sep 1 '19 at 17:09

Stellar Transactions satisfy the ACID property: either all operations in the transaction are applied or none is.

For example, you can have a transaction with two operations: in one Alice sends Bob Lumens, and in the other Bob sends Alice another asset. When they submit the transaction to the network, the core will check that it can apply both operations before accepting the transaction. If we didn't have transactions, then it can happen that if one operation fails (for example Bob does not have enough funds) the other one is applied anyway (so Bob receives Lumens without sending anything to Alice).

  • 1
    Yes atomic swaps (and smart contracts in general) were the motivation for this – MonsieurNicolas Sep 10 '19 at 14:23

Perhaps this design choice (using a Transaction wrapper for operations) is derived from SCP itself: In SCP, the different parties need to agree on a statement. Currently, this statement is the hash of the tx-set. Rather than having to agree to each and every op, the just need to agree to one (the hash), which greatly simplifies the communication between them.


This seems like more of a philosophical question than a technical one. So I will interject as resident noob enthusiast. I think scopes are just inherit to conveying and understanding intentions.

  • 1
    I can assure you this question comes from a very technical problem: increasing the throughput of the Stellar model. At any rate, I believe my answer is the correct one and an alternative implementation - one where there are no txs but only ops - would be considerably slower because it would require a lot more agreeing. – FuzzyAmi Sep 8 '19 at 5:39

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.