Memory leak when using IPC mining interface #33940

issue ryanofsky openend this issue on November 24, 2025
  1. ryanofsky commented at 2:11 pm on November 24, 2025: contributor

    Originally posted by @plebhash in #33899

    we are getting reports of out-of-memory crashes on https://github.com/stratum-mining/sv2-apps/pull/59#issuecomment-3568252007

    initially I suspected there could be thread-related issues similar to what I reported on #33923, but it turns out it was the VPS running out of it’s 2GB available RAM, which only happened after long (12h+) running sessions

    so I leveraged psrecord to observe how Bitcoin Core (a14e7b9dee9145920f93eab0254ce92942bd1e5e from 30.x branch) was consuming RAM across time (connected to mainnet for high mempool activity, for about ~1h to have enough chain tip updates)

    this is RAM consumption of Bitcoin Core with the Rust code from https://github.com/stratum-mining/sv2-apps/pull/59 (more specifically SRI Pool at https://github.com/stratum-mining/sv2-apps/pull/59/commits/57576e083e82fb5acd5dbad75e8b4de7158a3d61) connected to it:

    there’s a clear upwards trend in RAM consumption, which made me wonder if we were doing something wrong on the Rust code

    so then I ran it alongside sv2-tp for a comparison:

    which shows a similar upwards trend that never gets throttled down


    I don’t know whether the root cause for this is related to template memory management, but there’s a chance it is, so I’m reporting it here rather than opening a new issue

    Originally posted by @Sjors in #33899

    I’m planning to make similar plots for #33922 (without CPU and ideally with marks to indicate where blocks were found).

    If you’re measuring the process memory instead of only the template memory (which #33922 enables), you’ll want to hold the mempool itself constant. E.g. by picking some value for -maxmempool and waiting for it to fill before starting the measurement. You also want to set -dbcache to its minimum, because that’s also accuring

    Originally posted by @Sjors in #33899

    @plebhash it looks like you found a real bug. Because BlockTemplate::createNewBlock doesn’t have a context param, it looks like its destroy method is not invoked until sv2-tp disconnects. So the node keeps holding on to templates even though the Template Provider already pruned them.

    I’ll open a PR to fix that.

    Originally posted by @plebhash in #33899

    that’s good to know!

    but do we have to explicitly call destroy or is it sufficient to drop the reference from memory on the client side?

    from my understanding of capnp, I believe it should be sufficient to drop it from memory, but on the other hand there must be a reason for destroy to exist?

    Originally posted by @Sjors in #33899

    @plebhash IIUC libmultiprocess does this automatically, but only sv2-tp uses that library. So it probably depends on how the rust capnp library is implemented. It might be worth testing how that library behaves out of the box, with and without the fix here. Just look for the IPC server destroy messages on the Bitcoin Core side (preferably tested against master).

  2. Sjors commented at 2:17 pm on November 24, 2025: member

    Turns out I was chasing a ghost. The reason destroy wasn’t called by sv2-tp was not because of a missing context param, but because of an unrelated regression.

    So the memory leak @plebhash is seeing is probably due to not calling destroy.

  3. ryanofsky commented at 2:18 pm on November 24, 2025: contributor

    re: #33899 (comment)

    it looks like you found a real bug. Because BlockTemplate::createNewBlock doesn’t have a context param, it looks like its destroy method is not invoked until sv2-tp disconnects.

    I can imagine there’s a bug causing the block template not to be freed until the disconnect happens, but I don’t think createNewBlock method having a context parameter would affect this. Having a context parameter just allows the method to run on an asynchronous thread without blocking the event loop, instead of running on the event loop thread. But which thread the block was created on should not affect how it’s destroyed

  4. ryanofsky commented at 2:24 pm on November 24, 2025: contributor

    re: #33899 (comment)

    but do we have to explicitly call destroy or is it sufficient to drop the reference from memory on the client side?

    from my understanding of capnp, I believe it should be sufficient to drop it from memory, but on the other hand there must be a reason for destroy to exist?

    Your understanding is right, I think, but there are a lot of details here and I can imagine there being some bug where just dropping the reference on the client side does not delete the server side object right away. The reason for having an explicit destroy method is to give clients a way to destroy the server side-object and actually wait for it to be destroyed. If clients just drop their references to server side objects, the server side objects will get destroyed, but it will happen asynchronously.

  5. plebhash commented at 2:57 pm on November 24, 2025: none

    I ran two sessions with #33936 at a3a6861e131120eabf6e2f7ecd15e5ea805c66b2, where the client was our Sv2 Rust code

    both of them had at least one chain tip update, which should trigger templates being flushed from memory (so I’d expect to see a sharp decline in RAM consumption)

    in the first one, we’re not calling destroy:

    in the second one, we’re calling destroy after chain tip updates:

    I guess this indicates that @Sjors approach on #33936 isn’t fully fixing the issue yet, which I guess is already known due to this comment #33936 (comment)

  6. ryanofsky commented at 2:58 pm on November 24, 2025: contributor

    re: #33899 (comment)

    do we have to explicitly call destroy or is it sufficient to drop the reference from memory on the client side?

    Following up on this, it’s good practice to call destroy methods on objects which have them, to guarantee the objects are destroyed right away instead of asynchronously. This is most important if objects have nontrivial destructors, or if it matters what order objects get destroyed.

    Block templates using a lot of memory in a memory-constrained environment could be another reason to call destroy explicitly. But if adding destroy calls to the client fixes a memory leak, this does sound like a bug, because memory should be freed soon after references are dropped even without explicit destroy calls.

    re: #33899 (comment)

    its destroy method is not invoked until sv2-tp disconnects

    The reason destroy wasn’t called by sv2-tp was not because of a missing context param, but because of an unrelated regression.

    I was looking into this to remind myself what current behavior is. It actually changed sort of recently, but before the 30.0 release in https://github.com/bitcoin-core/libmultiprocess/commit/949573da84112388f68d1893f55aae0ca7f12d0c from https://github.com/bitcoin-core/libmultiprocess/pull/160. The commit mention there mentions “this change causes the ProxyServer::m_impl object to be freed shortly after the client is freed, instead of being delayed until the connection is closed.”

    Before that change, libmultiprocess would only delete server objects if the client explicitly called a destroy method, or when the connection was cleaned up. But currently it should delete them immediately even if a destroy method is never called. The previous behavior didn’t matter very much for libmultiprocoess c++ clients call which destroy() internally in their own destructors, but could matter for rust and python clients which don’t do that.

  7. lucasbalieiro commented at 3:50 pm on November 25, 2025: none

    here are some insights from the experiments I’ve been running over the past few days.

    When I first reported this issue (https://github.com/stratum-mining/sv2-apps/pull/59#issuecomment-3568252007), my server was also running a few utility tools that I typically use during long test sessions.

    To eliminate the “maybe it’s something else eating the memory” hypothesis, I started a fresh session with only the following running:

    • sv2-apps
    • Bitcoin Core v30 (mainnet)
    • The essential system processes (no extra utilities, no accessories)

    Server specs (VPS):

    • 2 vCPUs

    • 2 GB RAM

    • Ubuntu 24.04 LTS

      0Distributor ID: Ubuntu
      1Description:    Ubuntu 24.04 LTS
      2Release:        24.04
      3Codename:       noble
      

    Baseline Start

    At startup, with the full SV2 stack running (two apps using IPC), the total memory usage hovered between 800 MB and 1 GB, with some expected minor spikes.

    After letting it run overnight, the total VPS RAM usage sat around 1.5 GB.

    During that same period:

    • Bitcoin Core increased by roughly 160 MB
    • But the rest of the increase could not be explained by Bitcoin Core alone
    • This made me suspect the sv2-apps were also growing over time
    • A few hours later, @plebhash confirmed with psrecord that the apps were indeed growing as well

    Next 8 Hours

    Over the next 8 hours, total RAM usage climbed from 1.5 GB → 1.6 GB.

    Since I had a bit of headroom left, I decided to stress things slightly.


    Adding More Load

    Alongside the already-running apps, I launched three more pool instances (also using IPC).

    Within ~3 hours:

    • Bitcoin Core’s RAM usage increased (expected because of more IPC traffic, I think)
    • Total RAM climbed to 1.75 GB

    I then shut down the extra pool instances.

    However:

    • Bitcoin Core did not release the memory
    • Even by the next morning, RAM usage was still between 1.69–1.75 GB
    • So it seems Bitcoin Core doesn’t reduce its memory footprint after clients disconnect

    Final Incident (Today)

    Since the VPS was close to running out of RAM again, I repeated the test: I spun up one more pool instance using IPC. RAM usage jumped to ~1.82 GB.

    I closed the pool instance and waited to see if memory would drop. It didn’t.

    A few hours later, the OS killed Bitcoin Core:

    0Tue Nov 25 14:51:01 2025] Out of memory: Killed process 2763434 (bitcoin-node) total-vm:13471820kB, anon-rss:1302224kB, file-rss:2916kB, shmem-rss:0kB, UID:0 pgtables:19496kB oom_score_adj:0
    

    So at the moment, Bitcoin Core ends up consuming about 1 .3GB of RAM and never seems to shrink back down.

    Why I’m Reporting This

    I’m sharing these observations because they might help narrow down the behavior we’re seeing, both in Bitcoin Core and the SV2 apps.

    I’m also willing to run another clean testing session. If you have recommendations for specific instrumentation or profiling tools to run, I can set them up. Right now, I avoided using things like psrecord during the run so I could rule out secondary tools affecting the memory footprint.

  8. Sjors commented at 6:17 pm on November 25, 2025: member
    @lucasbalieiro does Bitcoin Core behave better if you compile the 30.x branch from source? That’s the equivalent of how v30.1 will behave when it comes out.
  9. lucasbalieiro commented at 9:46 pm on November 25, 2025: none

    @lucasbalieiro does Bitcoin Core behave better if you compile the 30.x branch from source? That’s the equivalent of how v30.1 will behave when it comes out.

    Built Bitcoin Core at commit a14e7b9dee9145920f93eab0254ce92942bd1e5e:

    0root@srv-f20833:~/Projects/bitcoin/build/bin# git log
    1commit a14e7b9dee9145920f93eab0254ce92942bd1e5e (HEAD -> 30.x, origin/30.x)
    2Merge: d0f6d9953a ae63cc4bf2
    3Author: merge-script <fanquake@gmail.com>
    4Date:   Thu 
    

    Ran the same stress test again (spawning multiple IPC-heavy apps).

    Observed differences:

    • Core feels noticeably more tolerant. Baseline RAM usage is ~100 MB lower. I could spin up more apps simultaneously without Core hitting big spikes, looks like it’s using less memory per connected app.
    • However, after disconnecting the extra pool I used for stress testing, the RAM doesn’t drop back down to the original baseline (the level seen when only the SV2 apps + Core were running). It stays elevated, as if it’s still serving several pool apps.

    Even when disconnecting all the apps. It does not return to its ~700MB of consumption

  10. ryanofsky commented at 1:41 am on November 26, 2025: contributor

    Thanks the the updates! If I’m understanding correctly, it seems like memory usage increasing 160MB overnight and 100MB over next 8 hours, and this would be pretty consistent with block templates not being freed. I think there are two key unknowns here:

    • We don’t know whether the client is holding onto the block template references. If it is, then the memory usage going up would be expected and this is client bug, otherwise it is a server bug.
    • We don’t know if server is failing to release block templates when the client disconnects. The fact that RSS number does not decrease when the client disconnects suggests that server is failing to release memory, but it’s not a reliable indicator, because it only show much memory has been allocated by the OS to the process, but not how much memory is actually in use by the process. When the C library frees memory, it’s normal for it to hold onto the pages that were in use and not return them to the OS. It’s possible to see how much memory is actually in use using a tool like heaptrack

    Probably a good next step would be to add log statements to BlockTemplateImpl constructor and destructor and write a python test program creating a template, and seeing if the destructor is actually called on sudden disconnect, or when calling the destroy method, or when just deleting the reference with del template; await asyncio.sleep(0). This could indicate if there’s an obvious problem with the IPC server. It does seem like there is a real leak here, but it’s not clear if it this is caused by a bug on the client side or server side.

  11. Sjors commented at 9:44 am on November 26, 2025: member

    The node log messages should contain a destroy entry every time the client releases a template. It’s probably also a good idea to have the client emit a log message when it discards a template. If the client waits until disconnect you’ll see a flood of destroy methods at that point.

    If the latter isn’t happening, that could suggest a bug where Bitcoin Core doesn’t release the memory after the client disconnects. As suggested by @ryanofsky adding logging to BlockTemplateImpl and ~BlockTemplateImpl should reveal this.

  12. plebhash commented at 6:52 pm on November 26, 2025: none

    we merged https://github.com/stratum-mining/sv2-apps/pull/59 so deploying SRI Pool and/or JDC for testing can be done from main branch

    The node log messages should contain a destroy entry every time the client releases a template. It’s probably also a good idea to have the client emit a log message when it discards a template.

    I just did some tests with:

    on Pool logs, after block 0000000000000000000077e34472247575f4858357541269d56a8df5b429862b, we destroyed 84 stale templates:

     02025-11-26T17:25:37.848442Z DEBUG bitcoin_core_sv2: Creating a dedicated thread IPC client for destroy_ipc_client
     12025-11-26T17:25:37.848446Z DEBUG bitcoin_core_sv2: Creating new thread IPC client
     2...
     32025-11-26T17:25:37.848727Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 53
     42025-11-26T17:25:37.848961Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 40
     52025-11-26T17:25:37.849116Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 2
     62025-11-26T17:25:37.849244Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 28
     72025-11-26T17:25:37.849361Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 30
     82025-11-26T17:25:37.849469Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 38
     92025-11-26T17:25:37.849572Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 83
    102025-11-26T17:25:37.849681Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 56
    112025-11-26T17:25:37.849784Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 74
    122025-11-26T17:25:37.849892Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 78
    132025-11-26T17:25:37.849985Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 11
    142025-11-26T17:25:37.850105Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 62
    152025-11-26T17:25:37.850412Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 33
    162025-11-26T17:25:37.850624Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 4
    172025-11-26T17:25:37.850733Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 9
    182025-11-26T17:25:37.850827Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 60
    192025-11-26T17:25:37.851049Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 41
    202025-11-26T17:25:37.851254Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 58
    212025-11-26T17:25:37.851392Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 19
    222025-11-26T17:25:37.851487Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 20
    232025-11-26T17:25:37.851582Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 66
    242025-11-26T17:25:37.851836Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 7
    252025-11-26T17:25:37.851976Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 65
    262025-11-26T17:25:37.852159Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 34
    272025-11-26T17:25:37.852310Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 61
    282025-11-26T17:25:37.852428Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 72
    292025-11-26T17:25:37.852529Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 80
    302025-11-26T17:25:37.852681Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 1
    312025-11-26T17:25:37.852807Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 84
    322025-11-26T17:25:37.852913Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 51
    332025-11-26T17:25:37.853050Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 76
    342025-11-26T17:25:37.853141Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 24
    352025-11-26T17:25:37.853236Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 25
    362025-11-26T17:25:37.853330Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 67
    372025-11-26T17:25:37.853433Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 81
    382025-11-26T17:25:37.853538Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 52
    392025-11-26T17:25:37.853635Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 16
    402025-11-26T17:25:37.853744Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 54
    412025-11-26T17:25:37.853838Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 71
    422025-11-26T17:25:37.854109Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 43
    432025-11-26T17:25:37.854312Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 26
    442025-11-26T17:25:37.854399Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 59
    452025-11-26T17:25:37.854538Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 63
    462025-11-26T17:25:37.854842Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 5
    472025-11-26T17:25:37.854982Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 47
    482025-11-26T17:25:37.855140Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 31
    492025-11-26T17:25:37.855235Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 48
    502025-11-26T17:25:37.855347Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 50
    512025-11-26T17:25:37.855592Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 32
    522025-11-26T17:25:37.855800Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 3
    532025-11-26T17:25:37.855927Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 12
    542025-11-26T17:25:37.856130Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 18
    552025-11-26T17:25:37.856264Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 79
    562025-11-26T17:25:37.856481Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 14
    572025-11-26T17:25:37.856598Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 73
    582025-11-26T17:25:37.856811Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 15
    592025-11-26T17:25:37.856966Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 8
    602025-11-26T17:25:37.857177Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 23
    612025-11-26T17:25:37.857442Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 45
    622025-11-26T17:25:37.857652Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 17
    632025-11-26T17:25:37.857810Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 22
    642025-11-26T17:25:37.858028Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 69
    652025-11-26T17:25:37.858241Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 36
    662025-11-26T17:25:37.858478Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 37
    672025-11-26T17:25:37.858753Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 6
    682025-11-26T17:25:37.858937Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 10
    692025-11-26T17:25:37.859114Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 68
    702025-11-26T17:25:37.859342Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 35
    712025-11-26T17:25:37.859488Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 44
    722025-11-26T17:25:37.859668Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 57
    732025-11-26T17:25:37.859808Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 29
    742025-11-26T17:25:37.860018Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 55
    752025-11-26T17:25:37.860223Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 75
    762025-11-26T17:25:37.860526Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 82
    772025-11-26T17:25:37.860771Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 21
    782025-11-26T17:25:37.860934Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 77
    792025-11-26T17:25:37.861091Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 27
    802025-11-26T17:25:37.861339Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 46
    812025-11-26T17:25:37.861568Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 39
    822025-11-26T17:25:37.862058Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 13
    832025-11-26T17:25:37.862436Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 42
    842025-11-26T17:25:37.862732Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 64
    852025-11-26T17:25:37.862947Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 70
    862025-11-26T17:25:37.863187Z DEBUG bitcoin_core_sv2::template_data: Destroying template IPC client: 49
    

    all of this come from the execution of TemplateData::destroy_ipc_client, where we allocate one dedicated server thread, and then destroy each template sequentially

    and on Bitcoin Core logs, we also see 84 stale templates being destroyed:

      02025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#356](/bitcoin-bitcoin/356/) {bitcoin-node-50907/30921742 (from )}
      12025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#357](/bitcoin-bitcoin/357/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
      22025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#357](/bitcoin-bitcoin/357/) {bitcoin-node-50907/30931699 (from )}
      32025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#357](/bitcoin-bitcoin/357/) BlockTemplate.destroy$Results ()
      42025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
      52025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#358](/bitcoin-bitcoin/358/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
      62025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#358](/bitcoin-bitcoin/358/) {bitcoin-node-50907/30931699 (from )}
      72025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#358](/bitcoin-bitcoin/358/) BlockTemplate.destroy$Results ()
      82025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
      92025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#359](/bitcoin-bitcoin/359/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     102025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#359](/bitcoin-bitcoin/359/) {bitcoin-node-50907/30931699 (from )}
     112025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#359](/bitcoin-bitcoin/359/) BlockTemplate.destroy$Results ()
     122025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     132025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#360](/bitcoin-bitcoin/360/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     142025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#360](/bitcoin-bitcoin/360/) {bitcoin-node-50907/30931699 (from )}
     152025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#360](/bitcoin-bitcoin/360/) BlockTemplate.destroy$Results ()
     162025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     172025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#361](/bitcoin-bitcoin/361/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     182025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#361](/bitcoin-bitcoin/361/) {bitcoin-node-50907/30931699 (from )}
     192025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#361](/bitcoin-bitcoin/361/) BlockTemplate.destroy$Results ()
     202025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     212025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#362](/bitcoin-bitcoin/362/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     222025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#362](/bitcoin-bitcoin/362/) {bitcoin-node-50907/30931699 (from )}
     232025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#362](/bitcoin-bitcoin/362/) BlockTemplate.destroy$Results ()
     242025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     252025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#363](/bitcoin-bitcoin/363/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     262025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#363](/bitcoin-bitcoin/363/) {bitcoin-node-50907/30931699 (from )}
     272025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#363](/bitcoin-bitcoin/363/) BlockTemplate.destroy$Results ()
     282025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     292025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#364](/bitcoin-bitcoin/364/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     302025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#364](/bitcoin-bitcoin/364/) {bitcoin-node-50907/30931699 (from )}
     312025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#364](/bitcoin-bitcoin/364/) BlockTemplate.destroy$Results ()
     322025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     332025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#365](/bitcoin-bitcoin/365/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     342025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#365](/bitcoin-bitcoin/365/) {bitcoin-node-50907/30931699 (from )}
     352025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#365](/bitcoin-bitcoin/365/) BlockTemplate.destroy$Results ()
     362025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     372025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#366](/bitcoin-bitcoin/366/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     382025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#366](/bitcoin-bitcoin/366/) {bitcoin-node-50907/30931699 (from )}
     392025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#366](/bitcoin-bitcoin/366/) BlockTemplate.destroy$Results ()
     402025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     412025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#367](/bitcoin-bitcoin/367/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     422025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#367](/bitcoin-bitcoin/367/) {bitcoin-node-50907/30931699 (from )}
     432025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#367](/bitcoin-bitcoin/367/) BlockTemplate.destroy$Results ()
     442025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     452025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#368](/bitcoin-bitcoin/368/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     462025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#368](/bitcoin-bitcoin/368/) {bitcoin-node-50907/30931699 (from )}
     472025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#368](/bitcoin-bitcoin/368/) BlockTemplate.destroy$Results ()
     482025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     492025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#369](/bitcoin-bitcoin/369/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     502025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#369](/bitcoin-bitcoin/369/) {bitcoin-node-50907/30931699 (from )}
     512025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#369](/bitcoin-bitcoin/369/) BlockTemplate.destroy$Results ()
     522025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     532025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#370](/bitcoin-bitcoin/370/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     542025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#370](/bitcoin-bitcoin/370/) {bitcoin-node-50907/30931699 (from )}
     552025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#370](/bitcoin-bitcoin/370/) BlockTemplate.destroy$Results ()
     562025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     572025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#371](/bitcoin-bitcoin/371/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     582025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#371](/bitcoin-bitcoin/371/) {bitcoin-node-50907/30931699 (from )}
     592025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#371](/bitcoin-bitcoin/371/) BlockTemplate.destroy$Results ()
     602025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     612025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#372](/bitcoin-bitcoin/372/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     622025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#372](/bitcoin-bitcoin/372/) {bitcoin-node-50907/30931699 (from )}
     632025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#372](/bitcoin-bitcoin/372/) BlockTemplate.destroy$Results ()
     642025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     652025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#373](/bitcoin-bitcoin/373/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     662025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#373](/bitcoin-bitcoin/373/) {bitcoin-node-50907/30931699 (from )}
     672025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#373](/bitcoin-bitcoin/373/) BlockTemplate.destroy$Results ()
     682025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     692025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#374](/bitcoin-bitcoin/374/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     702025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#374](/bitcoin-bitcoin/374/) {bitcoin-node-50907/30931699 (from )}
     712025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#374](/bitcoin-bitcoin/374/) BlockTemplate.destroy$Results ()
     722025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     732025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#375](/bitcoin-bitcoin/375/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     742025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#375](/bitcoin-bitcoin/375/) {bitcoin-node-50907/30931699 (from )}
     752025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#375](/bitcoin-bitcoin/375/) BlockTemplate.destroy$Results ()
     762025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     772025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#376](/bitcoin-bitcoin/376/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     782025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#376](/bitcoin-bitcoin/376/) {bitcoin-node-50907/30931699 (from )}
     792025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#376](/bitcoin-bitcoin/376/) BlockTemplate.destroy$Results ()
     802025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     812025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#377](/bitcoin-bitcoin/377/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     822025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#377](/bitcoin-bitcoin/377/) {bitcoin-node-50907/30931699 (from )}
     832025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#377](/bitcoin-bitcoin/377/) BlockTemplate.destroy$Results ()
     842025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     852025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#378](/bitcoin-bitcoin/378/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     862025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#378](/bitcoin-bitcoin/378/) {bitcoin-node-50907/30931699 (from )}
     872025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#378](/bitcoin-bitcoin/378/) BlockTemplate.destroy$Results ()
     882025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     892025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#379](/bitcoin-bitcoin/379/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     902025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#379](/bitcoin-bitcoin/379/) {bitcoin-node-50907/30931699 (from )}
     912025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#379](/bitcoin-bitcoin/379/) BlockTemplate.destroy$Results ()
     922025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     932025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#380](/bitcoin-bitcoin/380/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     942025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#380](/bitcoin-bitcoin/380/) {bitcoin-node-50907/30931699 (from )}
     952025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#380](/bitcoin-bitcoin/380/) BlockTemplate.destroy$Results ()
     962025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
     972025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#381](/bitcoin-bitcoin/381/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
     982025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#381](/bitcoin-bitcoin/381/) {bitcoin-node-50907/30931699 (from )}
     992025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#381](/bitcoin-bitcoin/381/) BlockTemplate.destroy$Results ()
    1002025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1012025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#382](/bitcoin-bitcoin/382/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1022025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#382](/bitcoin-bitcoin/382/) {bitcoin-node-50907/30931699 (from )}
    1032025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#382](/bitcoin-bitcoin/382/) BlockTemplate.destroy$Results ()
    1042025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1052025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#383](/bitcoin-bitcoin/383/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1062025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#383](/bitcoin-bitcoin/383/) {bitcoin-node-50907/30931699 (from )}
    1072025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#383](/bitcoin-bitcoin/383/) BlockTemplate.destroy$Results ()
    1082025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1092025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#384](/bitcoin-bitcoin/384/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1102025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#384](/bitcoin-bitcoin/384/) {bitcoin-node-50907/30931699 (from )}
    1112025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#384](/bitcoin-bitcoin/384/) BlockTemplate.destroy$Results ()
    1122025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1132025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#385](/bitcoin-bitcoin/385/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1142025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#385](/bitcoin-bitcoin/385/) {bitcoin-node-50907/30931699 (from )}
    1152025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#385](/bitcoin-bitcoin/385/) BlockTemplate.destroy$Results ()
    1162025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1172025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#386](/bitcoin-bitcoin/386/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1182025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#386](/bitcoin-bitcoin/386/) {bitcoin-node-50907/30931699 (from )}
    1192025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#386](/bitcoin-bitcoin/386/) BlockTemplate.destroy$Results ()
    1202025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1212025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#387](/bitcoin-bitcoin/387/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1222025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#387](/bitcoin-bitcoin/387/) {bitcoin-node-50907/30931699 (from )}
    1232025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#387](/bitcoin-bitcoin/387/) BlockTemplate.destroy$Results ()
    1242025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1252025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#388](/bitcoin-bitcoin/388/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1262025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#388](/bitcoin-bitcoin/388/) {bitcoin-node-50907/30931699 (from )}
    1272025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#388](/bitcoin-bitcoin/388/) BlockTemplate.destroy$Results ()
    1282025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1292025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#389](/bitcoin-bitcoin/389/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1302025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#389](/bitcoin-bitcoin/389/) {bitcoin-node-50907/30931699 (from )}
    1312025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#389](/bitcoin-bitcoin/389/) BlockTemplate.destroy$Results ()
    1322025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1332025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#390](/bitcoin-bitcoin/390/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1342025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#390](/bitcoin-bitcoin/390/) {bitcoin-node-50907/30931699 (from )}
    1352025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#390](/bitcoin-bitcoin/390/) BlockTemplate.destroy$Results ()
    1362025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1372025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#391](/bitcoin-bitcoin/391/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1382025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#391](/bitcoin-bitcoin/391/) {bitcoin-node-50907/30931699 (from )}
    1392025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#391](/bitcoin-bitcoin/391/) BlockTemplate.destroy$Results ()
    1402025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1412025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#392](/bitcoin-bitcoin/392/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1422025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#392](/bitcoin-bitcoin/392/) {bitcoin-node-50907/30931699 (from )}
    1432025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#392](/bitcoin-bitcoin/392/) BlockTemplate.destroy$Results ()
    1442025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1452025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#393](/bitcoin-bitcoin/393/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1462025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#393](/bitcoin-bitcoin/393/) {bitcoin-node-50907/30931699 (from )}
    1472025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#393](/bitcoin-bitcoin/393/) BlockTemplate.destroy$Results ()
    1482025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1492025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#394](/bitcoin-bitcoin/394/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1502025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#394](/bitcoin-bitcoin/394/) {bitcoin-node-50907/30931699 (from )}
    1512025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#394](/bitcoin-bitcoin/394/) BlockTemplate.destroy$Results ()
    1522025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1532025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#395](/bitcoin-bitcoin/395/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1542025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#395](/bitcoin-bitcoin/395/) {bitcoin-node-50907/30931699 (from )}
    1552025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#395](/bitcoin-bitcoin/395/) BlockTemplate.destroy$Results ()
    1562025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1572025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#396](/bitcoin-bitcoin/396/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1582025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#396](/bitcoin-bitcoin/396/) {bitcoin-node-50907/30931699 (from )}
    1592025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#396](/bitcoin-bitcoin/396/) BlockTemplate.destroy$Results ()
    1602025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1612025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#397](/bitcoin-bitcoin/397/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1622025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#397](/bitcoin-bitcoin/397/) {bitcoin-node-50907/30931699 (from )}
    1632025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#397](/bitcoin-bitcoin/397/) BlockTemplate.destroy$Results ()
    1642025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1652025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#398](/bitcoin-bitcoin/398/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1662025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#398](/bitcoin-bitcoin/398/) {bitcoin-node-50907/30931699 (from )}
    1672025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#398](/bitcoin-bitcoin/398/) BlockTemplate.destroy$Results ()
    1682025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1692025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#399](/bitcoin-bitcoin/399/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1702025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#399](/bitcoin-bitcoin/399/) {bitcoin-node-50907/30931699 (from )}
    1712025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#399](/bitcoin-bitcoin/399/) BlockTemplate.destroy$Results ()
    1722025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1732025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#400](/bitcoin-bitcoin/400/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1742025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#400](/bitcoin-bitcoin/400/) {bitcoin-node-50907/30931699 (from )}
    1752025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#400](/bitcoin-bitcoin/400/) BlockTemplate.destroy$Results ()
    1762025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1772025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#401](/bitcoin-bitcoin/401/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1782025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#401](/bitcoin-bitcoin/401/) {bitcoin-node-50907/30931699 (from )}
    1792025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#401](/bitcoin-bitcoin/401/) BlockTemplate.destroy$Results ()
    1802025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1812025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#402](/bitcoin-bitcoin/402/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1822025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#402](/bitcoin-bitcoin/402/) {bitcoin-node-50907/30931699 (from )}
    1832025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#402](/bitcoin-bitcoin/402/) BlockTemplate.destroy$Results ()
    1842025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1852025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#403](/bitcoin-bitcoin/403/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1862025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#403](/bitcoin-bitcoin/403/) {bitcoin-node-50907/30931699 (from )}
    1872025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#403](/bitcoin-bitcoin/403/) BlockTemplate.destroy$Results ()
    1882025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1892025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#404](/bitcoin-bitcoin/404/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1902025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#404](/bitcoin-bitcoin/404/) {bitcoin-node-50907/30931699 (from )}
    1912025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#404](/bitcoin-bitcoin/404/) BlockTemplate.destroy$Results ()
    1922025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1932025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#405](/bitcoin-bitcoin/405/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1942025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#405](/bitcoin-bitcoin/405/) {bitcoin-node-50907/30931699 (from )}
    1952025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#405](/bitcoin-bitcoin/405/) BlockTemplate.destroy$Results ()
    1962025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    1972025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#406](/bitcoin-bitcoin/406/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    1982025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#406](/bitcoin-bitcoin/406/) {bitcoin-node-50907/30931699 (from )}
    1992025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#406](/bitcoin-bitcoin/406/) BlockTemplate.destroy$Results ()
    2002025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2012025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#407](/bitcoin-bitcoin/407/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2022025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#407](/bitcoin-bitcoin/407/) {bitcoin-node-50907/30931699 (from )}
    2032025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#407](/bitcoin-bitcoin/407/) BlockTemplate.destroy$Results ()
    2042025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2052025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#408](/bitcoin-bitcoin/408/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2062025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#408](/bitcoin-bitcoin/408/) {bitcoin-node-50907/30931699 (from )}
    2072025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#408](/bitcoin-bitcoin/408/) BlockTemplate.destroy$Results ()
    2082025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2092025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#409](/bitcoin-bitcoin/409/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2102025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#409](/bitcoin-bitcoin/409/) {bitcoin-node-50907/30931699 (from )}
    2112025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#409](/bitcoin-bitcoin/409/) BlockTemplate.destroy$Results ()
    2122025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2132025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#410](/bitcoin-bitcoin/410/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2142025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#410](/bitcoin-bitcoin/410/) {bitcoin-node-50907/30931699 (from )}
    2152025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#410](/bitcoin-bitcoin/410/) BlockTemplate.destroy$Results ()
    2162025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2172025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#411](/bitcoin-bitcoin/411/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2182025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#411](/bitcoin-bitcoin/411/) {bitcoin-node-50907/30931699 (from )}
    2192025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#411](/bitcoin-bitcoin/411/) BlockTemplate.destroy$Results ()
    2202025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2212025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#412](/bitcoin-bitcoin/412/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2222025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#412](/bitcoin-bitcoin/412/) {bitcoin-node-50907/30931699 (from )}
    2232025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#412](/bitcoin-bitcoin/412/) BlockTemplate.destroy$Results ()
    2242025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2252025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#413](/bitcoin-bitcoin/413/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2262025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#413](/bitcoin-bitcoin/413/) {bitcoin-node-50907/30931699 (from )}
    2272025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#413](/bitcoin-bitcoin/413/) BlockTemplate.destroy$Results ()
    2282025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2292025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#414](/bitcoin-bitcoin/414/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2302025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#414](/bitcoin-bitcoin/414/) {bitcoin-node-50907/30931699 (from )}
    2312025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#414](/bitcoin-bitcoin/414/) BlockTemplate.destroy$Results ()
    2322025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2332025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#415](/bitcoin-bitcoin/415/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2342025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#415](/bitcoin-bitcoin/415/) {bitcoin-node-50907/30931699 (from )}
    2352025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#415](/bitcoin-bitcoin/415/) BlockTemplate.destroy$Results ()
    2362025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2372025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#416](/bitcoin-bitcoin/416/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2382025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#416](/bitcoin-bitcoin/416/) {bitcoin-node-50907/30931699 (from )}
    2392025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#416](/bitcoin-bitcoin/416/) BlockTemplate.destroy$Results ()
    2402025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2412025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#417](/bitcoin-bitcoin/417/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2422025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#417](/bitcoin-bitcoin/417/) {bitcoin-node-50907/30931699 (from )}
    2432025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#417](/bitcoin-bitcoin/417/) BlockTemplate.destroy$Results ()
    2442025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2452025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#418](/bitcoin-bitcoin/418/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2462025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#418](/bitcoin-bitcoin/418/) {bitcoin-node-50907/30931699 (from )}
    2472025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#418](/bitcoin-bitcoin/418/) BlockTemplate.destroy$Results ()
    2482025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2492025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#419](/bitcoin-bitcoin/419/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2502025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#419](/bitcoin-bitcoin/419/) {bitcoin-node-50907/30931699 (from )}
    2512025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#419](/bitcoin-bitcoin/419/) BlockTemplate.destroy$Results ()
    2522025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2532025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#420](/bitcoin-bitcoin/420/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2542025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#420](/bitcoin-bitcoin/420/) {bitcoin-node-50907/30931699 (from )}
    2552025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#420](/bitcoin-bitcoin/420/) BlockTemplate.destroy$Results ()
    2562025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2572025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#421](/bitcoin-bitcoin/421/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2582025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#421](/bitcoin-bitcoin/421/) {bitcoin-node-50907/30931699 (from )}
    2592025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#421](/bitcoin-bitcoin/421/) BlockTemplate.destroy$Results ()
    2602025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2612025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#422](/bitcoin-bitcoin/422/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2622025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#422](/bitcoin-bitcoin/422/) {bitcoin-node-50907/30931699 (from )}
    2632025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#422](/bitcoin-bitcoin/422/) BlockTemplate.destroy$Results ()
    2642025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2652025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#423](/bitcoin-bitcoin/423/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2662025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#423](/bitcoin-bitcoin/423/) {bitcoin-node-50907/30931699 (from )}
    2672025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#423](/bitcoin-bitcoin/423/) BlockTemplate.destroy$Results ()
    2682025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2692025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#424](/bitcoin-bitcoin/424/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2702025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#424](/bitcoin-bitcoin/424/) {bitcoin-node-50907/30931699 (from )}
    2712025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#424](/bitcoin-bitcoin/424/) BlockTemplate.destroy$Results ()
    2722025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2732025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#425](/bitcoin-bitcoin/425/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2742025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#425](/bitcoin-bitcoin/425/) {bitcoin-node-50907/30931699 (from )}
    2752025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#425](/bitcoin-bitcoin/425/) BlockTemplate.destroy$Results ()
    2762025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2772025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#426](/bitcoin-bitcoin/426/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2782025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#426](/bitcoin-bitcoin/426/) {bitcoin-node-50907/30931699 (from )}
    2792025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#426](/bitcoin-bitcoin/426/) BlockTemplate.destroy$Results ()
    2802025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2812025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#427](/bitcoin-bitcoin/427/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2822025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#427](/bitcoin-bitcoin/427/) {bitcoin-node-50907/30931699 (from )}
    2832025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#427](/bitcoin-bitcoin/427/) BlockTemplate.destroy$Results ()
    2842025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2852025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#428](/bitcoin-bitcoin/428/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2862025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#428](/bitcoin-bitcoin/428/) {bitcoin-node-50907/30931699 (from )}
    2872025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#428](/bitcoin-bitcoin/428/) BlockTemplate.destroy$Results ()
    2882025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2892025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#429](/bitcoin-bitcoin/429/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2902025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#429](/bitcoin-bitcoin/429/) {bitcoin-node-50907/30931699 (from )}
    2912025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#429](/bitcoin-bitcoin/429/) BlockTemplate.destroy$Results ()
    2922025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2932025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#430](/bitcoin-bitcoin/430/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2942025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#430](/bitcoin-bitcoin/430/) {bitcoin-node-50907/30931699 (from )}
    2952025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#430](/bitcoin-bitcoin/430/) BlockTemplate.destroy$Results ()
    2962025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    2972025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#431](/bitcoin-bitcoin/431/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    2982025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#431](/bitcoin-bitcoin/431/) {bitcoin-node-50907/30931699 (from )}
    2992025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#431](/bitcoin-bitcoin/431/) BlockTemplate.destroy$Results ()
    3002025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3012025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#432](/bitcoin-bitcoin/432/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3022025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#432](/bitcoin-bitcoin/432/) {bitcoin-node-50907/30931699 (from )}
    3032025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#432](/bitcoin-bitcoin/432/) BlockTemplate.destroy$Results ()
    3042025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3052025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#433](/bitcoin-bitcoin/433/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3062025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#433](/bitcoin-bitcoin/433/) {bitcoin-node-50907/30931699 (from )}
    3072025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#433](/bitcoin-bitcoin/433/) BlockTemplate.destroy$Results ()
    3082025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3092025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#434](/bitcoin-bitcoin/434/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3102025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#434](/bitcoin-bitcoin/434/) {bitcoin-node-50907/30931699 (from )}
    3112025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#434](/bitcoin-bitcoin/434/) BlockTemplate.destroy$Results ()
    3122025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3132025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#435](/bitcoin-bitcoin/435/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3142025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#435](/bitcoin-bitcoin/435/) {bitcoin-node-50907/30931699 (from )}
    3152025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#435](/bitcoin-bitcoin/435/) BlockTemplate.destroy$Results ()
    3162025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3172025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#436](/bitcoin-bitcoin/436/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3182025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#436](/bitcoin-bitcoin/436/) {bitcoin-node-50907/30931699 (from )}
    3192025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#436](/bitcoin-bitcoin/436/) BlockTemplate.destroy$Results ()
    3202025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3212025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#437](/bitcoin-bitcoin/437/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3222025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#437](/bitcoin-bitcoin/437/) {bitcoin-node-50907/30931699 (from )}
    3232025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#437](/bitcoin-bitcoin/437/) BlockTemplate.destroy$Results ()
    3242025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3252025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#438](/bitcoin-bitcoin/438/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3262025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#438](/bitcoin-bitcoin/438/) {bitcoin-node-50907/30931699 (from )}
    3272025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#438](/bitcoin-bitcoin/438/) BlockTemplate.destroy$Results ()
    3282025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3292025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#439](/bitcoin-bitcoin/439/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3302025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#439](/bitcoin-bitcoin/439/) {bitcoin-node-50907/30931699 (from )}
    3312025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#439](/bitcoin-bitcoin/439/) BlockTemplate.destroy$Results ()
    3322025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    3332025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server recv request  [#440](/bitcoin-bitcoin/440/) BlockTemplate.destroy$Params (context = (thread = <external capability>))
    3342025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server post request  [#440](/bitcoin-bitcoin/440/) {bitcoin-node-50907/30931699 (from )}
    3352025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server send response [#440](/bitcoin-bitcoin/440/) BlockTemplate.destroy$Results ()
    3362025-11-26T17:25:37Z [ipc] {bitcoin-node-50907/b-capnp-loop-30920310} IPC server destroy N2mp11ProxyServerIN3ipc5capnp8messages13BlockTemplateEEE
    
  13. ryanofsky commented at 9:40 pm on December 2, 2025: contributor

    Following up on #33940 (comment), I added log statements to the BlockTemplateImpl constructor and destructor and wrote a python test creating a block template object and calling the destroy method or not (DESTROY variable), and deleting the python template variable or not (DEL variable). As soon as either of these things were done, I could see the ~BlockTemplateImpl destructor being called. I could also see the destructor being called just disconnecting regardless of whether these things were done. I tested with current bitcoin master and with the v30.0 tag and saw the same behavior in both.

    This test would seem to indicate that the leak is happening on the rust client side, and that when the bug happens, the client is probably not dropping references to all old templates or calling destroy on them, since doing either of these things should be sufficient to free memory on the server. It is possible there is a more subtle bug on the server side, and not a problem on the client, but so far I haven’t seen behavior that looks like a problem. The test program looks like:

     0#!/usr/bin/env python3
     1
     2import asyncio
     3from pathlib import Path
     4import shutil
     5import capnp
     6
     7SRC_DIR = "/home/ryanofsky/work/bitcoin/src"
     8SOCK_PATH = "/home/ryanofsky/.bitcoin/regtest/node.sock"
     9DESTROY = 1
    10DEL = 1
    11
    12class IPCInterfaceTest:
    13    def main(self):
    14        if capnp_bin := shutil.which("capnp"):
    15            capnp_dir = Path(capnp_bin).resolve().parent.parent / "include"
    16        else:
    17            capnp_dir = Path(capnp.__path__[0]).parent
    18        src_dir = Path(SRC_DIR)
    19        mp_dir = src_dir / "ipc" / "libmultiprocess" / "include"
    20        imports = [str(mp_dir), str(capnp_dir), str(src_dir)]
    21        self.capnp_modules = {
    22            "proxy": capnp.load(str(mp_dir / "mp" / "proxy.capnp"), imports=imports),
    23            "init": capnp.load(str(src_dir / "ipc" / "capnp" / "init.capnp"), imports=imports),
    24            "echo": capnp.load(str(src_dir / "ipc" / "capnp" / "echo.capnp"), imports=imports),
    25            "mining": capnp.load(str(src_dir / "ipc" / "capnp" / "mining.capnp"), imports=imports),
    26        }
    27        print("Running mining test")
    28
    29        async def async_routine():
    30            ctx, init = await self.make_capnp_init_ctx()
    31            mining = init.makeMining(ctx)
    32            opts = self.capnp_modules['mining'].BlockCreateOptions()
    33            opts.useMempool = True
    34            opts.blockReservedWeight = 4000
    35            opts.coinbaseOutputMaxAdditionalSigops = 0
    36            template = await mining.result.createNewBlock(opts)
    37            print("Created template")
    38            if DESTROY:
    39                template.result.destroy(ctx)
    40                print("Destroyed template")
    41            if DEL:
    42                del template
    43                await asyncio.sleep(0)
    44                print("Deleted template")
    45            await asyncio.sleep(1000)
    46
    47        asyncio.run(capnp.run(async_routine()))
    48
    49    async def make_capnp_init_ctx(self):
    50        connection = await capnp.AsyncIoStream.create_unix_connection(SOCK_PATH)
    51        client = capnp.TwoPartyClient(connection)
    52        init = client.bootstrap().cast_as(self.capnp_modules['init'].Init)
    53        threadmap = init.construct().threadMap
    54        thread = threadmap.makeThread("pythread").result
    55        ctx = self.capnp_modules['proxy'].Context()
    56        ctx.thread = thread
    57        return ctx, init
    58
    59if __name__ == '__main__':
    60    IPCInterfaceTest().main()
    
  14. ryanofsky commented at 9:54 pm on December 2, 2025: contributor

    re: #33940 (comment)

    after block 0000000000000000000077e34472247575f4858357541269d56a8df5b429862b, we destroyed 84 stale templates: […] all of this come from the execution of TemplateData::destroy_ipc_client, where we allocate one dedicated server thread, and then destroy each template sequentially @plebhash, I’m trying to figure out what these logs mean. One thing I’m not sure about is why exactly the rust client is keeping 84 block template references. Is this because of lack of interruptWait method and inability to delete templates before waitNext() returns? Or are the references being kept because the blocks might need to be submitted? Or maybe some other reason?

    I guess from looking at the rust code, it is currently designed to hold onto all templates and then free them when the tip changes. If so, this seems reasonable and should hopefully not use too much memory since the blocks should contain many of the same transactions. I guess the logs also indicate that rust code is able to trigger blocktemplate deletions on the server side, so this also seems good. If I’m understanding correctly, your logs here seem to show the rust client behaving well and deleting the templates it doesn’t need.

  15. plebhash commented at 12:18 pm on December 3, 2025: none

    One thing I’m not sure about is why exactly the rust client is keeping 84 block template references.

    We are conservatively keeping all templates in memory up until a chain tip update, because we could potentially receive a solution to any of them.

    This might change with #33899, but the limit will remain something to be configured on Bitcoin Core, and whenever waitNext returns Overloaded error, we discard the oldest template.

    Is this because of lack of interruptWait method and inability to delete templates before waitNext() returns?

    no, so far I haven’t noticed any meaningful limitations around deleting templates being imposed by the lack of interruptWait

    I guess from looking at the rust code, it is currently designed to hold onto all templates and then free them when the tip changes.

    correct.

    If so, this seems reasonable and should hopefully not use too much memory since the blocks should contain many of the same transactions.

    we don’t keep transaction data on the client side… whenever it’s needed, we fetch it via getBlock ad-hoc.

    If I’m understanding correctly, your logs here seem to show the rust client behaving well and deleting the templates it doesn’t need.

    yes, that’s also my understanding… the puzzling thing is that we’re still having the memory leaks… so we’re either missing some detail on this analysis, or the cause is related to something other than templates

  16. ryanofsky commented at 3:37 pm on December 3, 2025: contributor

    yes, that’s also my understanding… the puzzling thing is that we’re still having the memory leaks… so we’re either missing some detail on this analysis, or the cause is related to something other than templates

    I think at this point we’ve ruled out the obvious possible causes of leaks, and need to start debugging the issue more directly.

    It would help to have some steps to reproduce. If someone can let me know what code to check out and build, and what commands to run that will show the increasing memory usage over time, that would be great. As long as we can observe it happening we should be able to figure out the cause.

  17. plebhash commented at 9:09 am on December 4, 2025: none

    If someone can let me know what code to check out and build, and what commands to run that will show the increasing memory usage over time, that would be great.

    • launch Bitcoin Core on mainnet (for high mempool activity)
    • git clone https://github.com/stratum-mining/sv2-apps -b v0.1.0
    • edit sv2-apps/pool-apps/pool/config-examples/mainnet/pool-config-bitcoin-core-ipc-example.toml to make sure unix_socket_path is set correctly
    • cd sv2-apps/pool-apps/pool; cargo run -- -c config-examples/mainnet/pool-config-bitcoin-core-ipc-example.toml

    at this point, you can start monitoring RAM

    I used psrecord: psrecord $(pgrep bitcoin-node | head -1) --plot plot.png

    but it also consumes a lot of RAM itself (so the OS might kill it if your system doesn’t have enough and you run it for too long), so maybe there’s more sophisticated ways to do this kind of instrumentation

  18. ryanofsky commented at 5:43 pm on December 8, 2025: contributor

    re: #33940 (comment)

    • git clone https://github.com/stratum-mining/sv2-apps -b v0.1.0

    Thanks for the instructions. I’ve been experimenting with the v0.1.0 pool_sv2 app on regtest with a python script to generate transactions & connect blocks quickly to make a memory leak happen without needing to wait a long time.

    So far, behavior has been mostly as expected, where generating lots of transactions without connecting new blocks causes block templates to accumulate and memory usage to go up, but when a new block is connected, the templates get released by the mining client.

    One thing I saw that was surprising was that if the python client connected blocks too quickly, the mining client seemed to fall behind and only release templates after a delay. Like the mining client would be calling destroy method on the template from block height 5000 when block height 5015 was being connected. But pausing the python script would cause the mining client to catch up.

    I guess I need to try letting the code run a longer time to see if memory usage will accumulate. But I think a slow & gradual leak could be pretty difficult to debug and fix. So if there’s anything that can be done to trigger a leak quickly, it will make this debugging this issue a lot easier.

     0#!/usr/bin/env python3
     1
     2from test_framework.authproxy import AuthServiceProxy
     3from test_framework.address import create_deterministic_address_bcrt1_p2tr_op_true
     4from test_framework.messages import (
     5    CTxOut,
     6)
     7from test_framework.script import (
     8    CScript,
     9    OP_RETURN,
    10)
    11from test_framework.util import (
    12    get_auth_cookie,
    13)
    14from test_framework.wallet import MiniWallet
    15from random import randbytes
    16
    17SRC_DIR = "/home/ryanofsky/work/bitcoin/src"
    18DATADIR = "/home/ryanofsky/.bitcoin"
    19SOCK_PATH = "/home/ryanofsky/.bitcoin/regtest/node.sock"
    20
    21INIT_BLOCKS = 200
    22BLOCKS_TO_MINE = 300
    23TXS_PER_BLOCK = 100
    24TX_BYTES = 50000
    25
    26def main():
    27    rpc_u, rpc_p = get_auth_cookie(DATADIR, "regtest")
    28    host = '127.0.0.1'
    29    port = 18443
    30    url = "http://%s:%s@%s:%d" % (rpc_u, rpc_p, host, int(port))
    31    node = AuthServiceProxy(url)
    32
    33    print(f"Generating {INIT_BLOCKS} blocks without transactions")
    34    node.generatetoaddress(1, create_deterministic_address_bcrt1_p2tr_op_true()[0])
    35
    36    print("Creating wallet")
    37    wallet = MiniWallet(node)
    38
    39    print(f"Generating {BLOCKS_TO_MINE} blocks with transactions")
    40    for i in range(BLOCKS_TO_MINE):
    41        bheight = node.getblockcount()
    42        bhash = node.getblockhash(bheight)
    43        print(f"block{i} height={bheight} hash={bhash}")
    44        for j in range(TXS_PER_BLOCK):
    45            tx = wallet.create_self_transfer(fee_rate=0)["tx"]
    46            tx_data = [randbytes(TX_BYTES)]
    47            tx.vout.append(CTxOut(nValue=0, scriptPubKey=CScript([OP_RETURN] + tx_data)))
    48            tx.vout[0].nValue -= tx.get_vsize()  # simply pay 1sat/vbyte fee
    49            txid = wallet.sendrawtransaction(from_node=node, tx_hex=tx.serialize().hex())
    50            assert txid == tx.txid_hex
    51            print(f"  {bheight=} {bhash=} {tx.txid_hex=}")
    52            assert tx.txid_hex in node.getrawmempool(True)
    53        node.generatetoaddress(1, create_deterministic_address_bcrt1_p2tr_op_true()[0])
    54
    55if __name__ == '__main__':
    56    main()
    
     0--- a/src/node/interfaces.cpp
     1+++ b/src/node/interfaces.cpp
     2@@ -858,11 +858,24 @@ class BlockTemplateImpl : public BlockTemplate
     3 public:
     4     explicit BlockTemplateImpl(BlockAssembler::Options assemble_options,
     5                                std::unique_ptr<CBlockTemplate> block_template,
     6+                               std::atomic<int>& count,
     7                                NodeContext& node) : m_assemble_options(std::move(assemble_options)),
     8                                                     m_block_template(std::move(block_template)),
     9+                                                    m_count(count),
    10                                                     m_node(node)
    11     {
    12         assert(m_block_template);
    13+        int c = ++m_count;
    14+        uint256 hash{m_block_template->block.hashPrevBlock};
    15+        CBlockIndex* block{WITH_LOCK(cs_main, return chainman().m_blockman.LookupBlockIndex(hash))};
    16+        LogError("==== CONSTRUCT BlockTemplateImpl() ptr=%p count=%i height=%i", this, c, block ? block->nHeight : -1);
    17+    }
    18+    ~BlockTemplateImpl() override
    19+    {
    20+        int c = --m_count;
    21+        uint256 hash{m_block_template->block.hashPrevBlock};
    22+        CBlockIndex* block{WITH_LOCK(cs_main, return chainman().m_blockman.LookupBlockIndex(hash))};
    23+        LogError("==== DESTROY BlockTemplateImpl() ptr=%p count=%i height=%i", this, c, block ? block->nHeight : -1);
    24     }
    25 
    26     CBlockHeader getBlockHeader() override
    27@@ -914,7 +927,7 @@ public:
    28     std::unique_ptr<BlockTemplate> waitNext(BlockWaitOptions options) override
    29     {
    30         auto new_template = WaitAndCreateNewBlock(chainman(), notifications(), m_node.mempool.get(), m_block_template, options, m_assemble_options, m_interrupt_wait);
    31-        if (new_template) return std::make_unique<BlockTemplateImpl>(m_assemble_options, std::move(new_template), m_node);
    32+        if (new_template) return std::make_unique<BlockTemplateImpl>(m_assemble_options, std::move(new_template), m_count, m_node);
    33         return nullptr;
    34     }
    35 
    36@@ -930,6 +943,7 @@ public:
    37     bool m_interrupt_wait{false};
    38     ChainstateManager& chainman() { return *Assert(m_node.chainman); }
    39     KernelNotifications& notifications() { return *Assert(m_node.notifications); }
    40+    std::atomic<int>& m_count;
    41     NodeContext& m_node;
    42 };
    43 
    44@@ -965,7 +979,7 @@ public:
    45 
    46         BlockAssembler::Options assemble_options{options};
    47         ApplyArgsManOptions(*Assert(m_node.args), assemble_options);
    48-        return std::make_unique<BlockTemplateImpl>(assemble_options, BlockAssembler{chainman().ActiveChainstate(), context()->mempool.get(), assemble_options}.CreateNewBlock(), m_node);
    49+        return std::make_unique<BlockTemplateImpl>(assemble_options, BlockAssembler{chainman().ActiveChainstate(), context()->mempool.get(), assemble_options}.CreateNewBlock(), m_template_count, m_node);
    50     }
    51 
    52     bool checkBlock(const CBlock& block, const node::BlockCheckOptions& options, std::string& reason, std::string& debug) override
    53@@ -981,6 +995,7 @@ public:
    54     ChainstateManager& chainman() { return *Assert(m_node.chainman); }
    55     KernelNotifications& notifications() { return *Assert(m_node.notifications); }
    56     NodeContext& m_node;
    57+    std::atomic<int> m_template_count{0};
    58 };
    59 } // namespace
    60 } // namespace node
    
  19. Sjors commented at 5:50 pm on December 8, 2025: member

    if the python client connected blocks too quickly, the mining client seemed to fall behind and only release templates after a delay

    There’s a hardcoded 10(?) second grace period where the Template Provider (both implementations) hold on to templates after a new tip is connected. It’s there for two reasons:

    1. Trying to relay the block anyway (requires further node changes, since we currently honour the first-seen rule even when that means “our” block loses)
    2. Giving pools a chance to verify the template (via JDS) and award shares (especially in schemes that reward both hash power and total fees)

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-12-17 06:13 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me