-
Notifications
You must be signed in to change notification settings - Fork 45
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't recover from state loss after close/update and before settle #1370
Comments
@andrevmatos is your focus more on not being able to recover the funds or not being able to open a new channel within that pair?
|
I think both, but on our testnet testings, what was more annoying was not being able to open a new channel within that pair. |
In a discussion with andre he stated that this problem appears to be more relevant in the LC since it only stores the latest balance hashes. This issue is addressed in raiden-network/light-client#1607 |
That LightClient issue isn't replacing this one. It was just a new issue we discovered about our LC implementation upon thinking more about it in the light of this one, but this is a different issue, which can affect not only the light-client. |
We could still allow a cooperative settle in that case. That would nicely solve the issue without introducing much additional code to write and test and even allows the nodes to decide on the fair split in this case in a flexible way. |
other options
For this current sprint, we want to come to a decision on the way forward. |
Looking through the TokenNetwork code, it seems like withdraws are possible for closed (but not settled) channels. So the tokens are not lost if both participants can agree on the balances. If both participants lost their dbs, I would expect them to revert to the on-chain balances and would thus be in agreement about the balances. This is similar to what I wrote about coop settle above, but more interesting, since we already have working withdraws. This does not help with the "we can't get an open channel between those participants again"-problem, though. |
Ok, after a call with @karlb , we understand that allowing for a default settle after no matter how long timeout isn't advisable, since the nodes are responsible for settling (there's no MS for settle) and a node which knows their partner will be offline for long can take advantage this to do a unilateral settle. |
If a pair of nodes call
closeChannel
/updateNonClosingBalanceProof
, but then for any reason lose the state (namely,transferred_amount
,locked_amount
&locksroot
of each side which produced thebalance_hash
of the close/update calls), the channel can never be settled, the funds stay forever locked in the contracts, and that pair of nodes can never have a new channel between them on the same TokeNetwork.Of course we don't expect both nodes to lose state often, but nonetheless IMO this lockout scenario isn't desired in any situation, and maybe we can consider this a bug to be fixed.
The text was updated successfully, but these errors were encountered: