Arthur Brock
1 min readSep 18, 2020

--

Yes... Holochain does function "local first," however, let me explain why it may not be so easy to reason about which process should be able to commit to your source chain in the way you suggest.

Let's use the example of a hosted application of HoloFuel. Consider the following situation:

1. You have a connection to your hosted instance of HoloFuel from your phone and you are changing your account nickname.

2. You have a connection to your hosted instance from a browser in your laptop and you are initiating a payment.

3. You have a request/invoice pending waiting to paid, and now the counterparty is initiating payment (which involves you updating your chain to accept the funds).

4. You have a previously authorized payment, for which the counterparty has just agreed to the transaction and is initiating the transfer.

All of these things may be happening at the same time... and as soon as one succeeds in changing the state of your chain, it changes your HoloFuel balance, so whatever other tasks were in process will need to restart their validation and make sure their action can still validate successfully.

You can't count on whichever one STARTED first to be related at all to which one can FINISH first. Because network communications can be slow, or completely unreliable (like you started finalizing a transaction with your counterparty, but their connection dropped so you can't finish it).

That's why, whichever action succeeds in finishing first wins. We can't know of ones that start, which will finish successfully.

Does that make sense?

--

--

Arthur Brock
Arthur Brock

Written by Arthur Brock

Culture hacker, software architect, & targeted currencies geek… Building bridges to the next economy & network society. http://ArtBrock.com

Responses (2)