Difference between revisions of "The Internet Computer for Computer Scientists"

From Internet Computer Wiki
Jump to: navigation, search
Line 6: Line 6:
 
but otherwise they operate (for the most part) independently of each other.
 
but otherwise they operate (for the most part) independently of each other.
  
As in any replicated state machine, a series of <b>transactions</b> is processed.
+
As in any replicated state machine, a series of <b>transaction requests</b> is processed.
A transaction may come from either an external client
+
A transaction request may come from either an external client
 
or from another state machine in the IC.
 
or from another state machine in the IC.
 
The replicas in a subnet must run a [[wikipedia:Consensus_(computer_science)|consensus protocol]] to order the
 
The replicas in a subnet must run a [[wikipedia:Consensus_(computer_science)|consensus protocol]] to order the
incoming transactions, so that each replica processes the transactions in the same order.
+
incoming transaction requests, so that each replica processes the transaction requests in the same order.
 +
Each replica processes the transaction requests in the agreed-upon order.
 +
In processing a transaction request, each replica will update its internal <b>state</b>
 +
according to a deterministic function that maps the pair  (current state, transaction request) to a new state.
 +
Because all replicas in a subnet process transaction requests in the same order,
 +
their internal states will evolve over time in exactly the same way.
 +
In response to processing a transaction, a subnet may also generate an outgoing message,
 +
which can be sent to either an external client or to another state machine in the IC.
 +
 
 +
The reason for using a replicated state machine, rather than just a single state machine,
 +
is to achieve [[wikipedia:fault tolerance]].

Revision as of 15:19, 5 October 2021

To a first approximation, the IC (Internet Computer) is a network of replicated state machines.

Each replicated state machine comprises a subnet of replicas. Subnets may communicate with one another, but otherwise they operate (for the most part) independently of each other.

As in any replicated state machine, a series of transaction requests is processed. A transaction request may come from either an external client or from another state machine in the IC. The replicas in a subnet must run a consensus protocol to order the incoming transaction requests, so that each replica processes the transaction requests in the same order. Each replica processes the transaction requests in the agreed-upon order. In processing a transaction request, each replica will update its internal state according to a deterministic function that maps the pair (current state, transaction request) to a new state. Because all replicas in a subnet process transaction requests in the same order, their internal states will evolve over time in exactly the same way. In response to processing a transaction, a subnet may also generate an outgoing message, which can be sent to either an external client or to another state machine in the IC.

The reason for using a replicated state machine, rather than just a single state machine, is to achieve wikipedia:fault tolerance.