Is the consensus order of transactions partial or total?


#1

Hi, I’d appreciate if you could confirm or correct my understanding of AE’s consensus system:

  • The state tree contains the global state of the entire aeternity system. This encodes things like account balances and all the individual on-chain objects (contracts).

  • The entirety of AE is a replicated state machine:

    • The nodes in a network establish consensus about a total, strict ordering of all aeternity on-chain transactions.

    • Starting with the genesis state, the transactions are applied by all nodes in this order, generating the same sequence of states.

In this regard, AE is like Ethereum, and unlike IOTA [1].

Assuming this is true - I’m wondering whether you considered to not establish consensus about a total order of the transactions, instead only establishing consensus on a partial order (a DAG). It seems you do not need consensus about what the order of 2 (or more) adjacent channel-closing transactions is, since the final state is the same either way.

I ask because the old whitepaper seems to emphasize the independence of channel closing transactions.


#2

Hi @bakkhos,
Yes, there is a strict order of transactions - they are always applied in the order provided in the micro-block they were included in. Speaking of micro-blocks, esp. as described in Bitcoin-NG paper, those does not play well with partial order consensus mechanisms.
In this approach our state channel’s closing transactions do not depend much on the context - they only require a corresponding channel object in the state tree.