monorepo
monorepo copied to clipboard
[node] Insufficient awaits for multiple protocols being executed across clients
Currently, if two Nodes that have a channel with each other simultaneously dispatch calls in which this channel is operated on, the state of the channel can get modified that effect the execution of the protocols (i.e. signature verification on differing channel states).
This happens because:
- there are no global queues for the clients to look up which channels are "locked" (i.e. being operated on) (since only local queues exist)
- the checks for whether a protocol is already in execution on this channel such that the incoming operation should be awaited is seemingly faulty