I was trying to understand concept of state channel in a little deeper way and suddenly this came into my mind. Here is thread of what I have understood so far.
Is it possible to transact with having internet connection.
Imagine a small remote village in India, where the internet connection is very weak. I tried giving it a thought, and I came up with following protocol (hypothesis).
First I decoupled the FSM module from the Ae Node and kept it on the client side
I removed the noise protocol for FSM to FSM communication
Sender will request sender FSM to form a transaction (1.0)
Sender signs it and update its FSM (2.0)
Sender sends the halfSignedtx to receiever via HTTP (if internet is there) or Bluetooth or NFC offline (3.0)
Receiver signs the message and updated its FSM
Receiver finally responds to sender with fullSignedTx (3.8)
Sender updates its FSM
Now my question is, if I have to make a simple poc for this protocol, will it be even possible to do? I am willing to fork the aenode and understand its code base.
This is something we’ve been bouncing a lot but there are some issues there.
This could be done but to a limited extend. Doing this you lose:
contract support: now channels are dumbed down to payment channels
none of the participants will be able to use generalized accounts (because they do require contract execution)
the whole notification system for malicious behaviour
I’d rather see the WebSocket layer being provided with a fallback mechanism to a HTTP but keep the FSM with a stable connection to a node.
This is already available. If the initiator is offline, the responder being the service provider can provide both FSMs with a co-authenticated transaction. So if the initiator has bad internet connection - they still can provide the responder with authentications and this will work. Important: if one of the participants does not have a stable connection to a node, they enter in a trustful scenario - the other participant can cheat them