Lahja is a generic multi process event bus implementation written in Python 3.6+ to enable lightweight inter-process communication, based on non-blocking asyncio
In trinity with the new (in progress, trio-based) peer discovery
protocol, sometimes other endpoints were trying to connect too soon,
before the IPC socket file was bound, causing an error
Also, multiple other endpoints will usually try to connect
simultaneously, causing an error as TrioEndpoint's IPC socket was
hard-coded to accept only one pending connection.
How was it fixed?
allow more than one pending incoming connection, and use a class
attribute to configure that instead of hard-coding
wait for the socket to be bound in _start_serving() so that others
don't try to connect too soon.
What was wrong?
In trinity with the new (in progress, trio-based) peer discovery protocol, sometimes other endpoints were trying to connect too soon, before the IPC socket file was bound, causing an error
Also, multiple other endpoints will usually try to connect simultaneously, causing an error as TrioEndpoint's IPC socket was hard-coded to accept only one pending connection.
How was it fixed?
allow more than one pending incoming connection, and use a class attribute to configure that instead of hard-coding
wait for the socket to be bound in _start_serving() so that others don't try to connect too soon.
To-Do