You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We may already have an issue for this, not sure, but opening in any case.
Currently, Channels keep a copy of their ChannelMonitors and any time we need to update it we copy the full thing out and hand it upwards. This sucks for performance, most of all because that monitor doesn't even get used eventually, it just gets merged in. We should be able to have some concept of a "Update" struct which we can pass up instead.
The text was updated successfully, but these errors were encountered:
I'm taking a look at this - I ended up kinda needing to do this because:
a) want to move Events into ChannelMonitors from the SimpleManyChannelMonitor to continue #474 as this makes it much easier to work with ChannelMonitors during rescan, but
b) leaving ChannelMonitors: Clone while holding events in them is super easy to misuse, as you may end up with multiple copies, with different pending events, or running events multiple times.
Ideally the solution is to implement this and then making ChannelMonitors not Clone at all, instead forcing the user to do something like clone_to_watchtower_mode or so.
We may already have an issue for this, not sure, but opening in any case.
Currently, Channels keep a copy of their ChannelMonitors and any time we need to update it we copy the full thing out and hand it upwards. This sucks for performance, most of all because that monitor doesn't even get used eventually, it just gets merged in. We should be able to have some concept of a "Update" struct which we can pass up instead.
The text was updated successfully, but these errors were encountered: