Bitcoin full node and query server

Feb 16, 2023

View in context in the libbitcoin Slack #general mirror.

evoskuil11:48
Worked on consolidation and better organization of subscribers, possible from the creation of the "resubscriber" template, which allows dropping of subscriptions, and targeting notification to one element by id. Was able to consolidate the session stop, retry and connection-pending subscribers into just one stop subscriber. This took a good amount of refactor so that sessions and channels are constructed with unique identifiers that can be used for desubscription. But came out better/simpler as a result. connectors/accepter now create only running sockets, not channels. Channels are now created after socket is obtained and verified (blacklist, etc) by session. Session then encapsulates the socket in channel, as before but now in one place (session base) vs. connector and acceptor. Now that this is done, I can finally remove the last vector of objects (channels) that's being retained by any class for enumeration. I'll create a message broadcaster object, based on the resubscriber. This will allow channels to subscribe for the message types to relay, instead of exposing this publicly for p2p to push through. This will then be symmetrical with incoming message type subscription and will simplify more complex protocol design. Been wanted this change for a long time.