Repository: ethereum/consensus-specs

Issue:
Rename `Transactions` back to `Operations`
A few of us implementers have been talking about the naming of `Transactions` and believe it is best renamed back to `Operations` to lower confusion and potentially mistaking `Transactions` with transactions in the classical sense. The only thing that should be known as a `Transaction` is a `Transfer`.

If not, it would be great to know what the reason behind the rename was.



Discussion:
+1
I'm pro :)
Spent a long time coming up with the name Operations and was sad to see it go
> it would be great to know what the reason behind the rename was

Abstractly, a "blockchain" is a chain of "blocks" that advance "state", where the blocks contain signed messages called "transactions". The beacon chain is a "system blockchain" which has "system blocks", "system state" and... "system transactions".

In summary, the word "transaction" was picked to fit the block/state/transaction framework. While I think the nomenclature is natural I can see how it can be confusing. Looks like people are in favour of renaming back to "operation" :)
@justindrake thanks for the full clarification. As we have user transactions on the beaconchain now I’d definitely support going back to operations. 
> As we have user transactions on the beaconchain now I’d definitely support going back to operations.

Sure. (As a side note, transfers are a temporary thing to be removed in phase 2.)

Resolving patch:
diff --git a/utils/phase0/state_transition.py b/utils/phase0/state_transition.py
--- a/utils/phase0/state_transition.py
+++ b/utils/phase0/state_transition.py
@@ -22,31 +22,31 @@ def expected_deposit_count(state: BeaconState) -> int:
     )
 
 
-def process_transaction_type(state: BeaconState,
-                             transactions: List[Any],
-                             max_transactions: int,
-                             tx_fn: Callable[[BeaconState, Any], None]) -> None:
-    assert len(transactions) <= max_transactions
-    for transaction in transactions:
-        tx_fn(state, transaction)
+def process_operation_type(state: BeaconState,
+                           operations: List[Any],
+                           max_operations: int,
+                           tx_fn: Callable[[BeaconState, Any], None]) -> None:
+    assert len(operations) <= max_operations
+    for operation in operations:
+        tx_fn(state, operation)
 
 
-def process_transactions(state: BeaconState, block: BeaconBlock) -> None:
-    process_transaction_type(
+def process_operations(state: BeaconState, block: BeaconBlock) -> None:
+    process_operation_type(
         state,
         block.body.proposer_slashings,
         spec.MAX_PROPOSER_SLASHINGS,
         spec.process_proposer_slashing,
     )
 
-    process_transaction_type(
+    process_operation_type(
         state,
         block.body.attester_slashings,
         spec.MAX_ATTESTER_SLASHINGS,
         spec.process_attester_slashing,
     )
 
-    process_transaction_type(
+    process_operation_type(
         state,
         block.body.attestations,
         spec.MAX_ATTESTATIONS,
@@ -54,14 +54,14 @@ def process_transactions(state: BeaconState, block: BeaconBlock) -> None:
     )
 
     assert len(block.body.deposits) == expected_deposit_count(state)
-    process_transaction_type(
+    process_operation_type(
         state,
         block.body.deposits,
         spec.MAX_DEPOSITS,
         spec.process_deposit,
     )
 
-    process_transaction_type(
+    process_operation_type(
         state,
         block.body.voluntary_exits,
         spec.MAX_VOLUNTARY_EXITS,
@@ -69,7 +69,7 @@ def process_transactions(state: BeaconState, block: BeaconBlock) -> None:
     )
 
     assert len(block.body.transfers) == len(set(block.body.transfers))
-    process_transaction_type(
+    process_operation_type(
         state,
         block.body.transfers,
         spec.MAX_TRANSFERS,
@@ -84,7 +84,7 @@ def process_block(state: BeaconState,
     spec.process_randao(state, block)
     spec.process_eth1_data(state, block)
 
-    process_transactions(state, block)
+    process_operations(state, block)
     if verify_state_root:
         spec.verify_block_state_root(state, block)
 


Test patch: