Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cleanup of -debug=net log messages #20724

Merged
merged 5 commits into from
Jan 29, 2021

Conversation

ajtowns
Copy link
Contributor

@ajtowns ajtowns commented Dec 19, 2020

A few changes to -debug=net logging:

  • always log when disconnecting a peer
  • only log various connection errors when -debug=net is enabled, since errors from random untrusted peers is completely expected
  • log when ignoring a message due to violating protocol (primarily to make it easier to debug other implementations)
  • use "peer=123" rather than "from 123" to make grepping logs a bit easier
  • log the value of the bip-37 fRelay field in version messages both when sending and receiving a version message

@jonatack
Copy link
Member

Concept ACK

@ajtowns
Copy link
Contributor Author

ajtowns commented Dec 19, 2020

Having run this patch on a node that does tor and accepts incoming connections for a couple of days, with debug logging disabled, my logs have:

  • 248x UpdateTip: new best=...
  • 160x New outbound peer connected: ... (block-relay)
  • 15x New outbound peer connected: ... (full-relay)
  • 7x Potential stale tip detected, will try using extra outbound peer (last tip update: 1805 seconds ago)

which mostly seem pretty reasonable indicators of what's going on.

But they do also still have:

validation debug info:

  • 11x ERROR: AcceptBlockHeader: Consensus::ContextualCheckBlockHeader: xxx, bad-diffbits, incorrect proof of work

socks/tor debug info (netbase.cpp):

  • 2x Socks5() connect to XXX.onion:8333 failed: host unreachable
  • 5x Socks5() connect to XXX.onion:8333 failed: connection refused

block file management info:

  • 61x Pre-allocating up to position 0xf00000 in rev02368.dat
  • 6x FlushStateToDisk: write coins cache to disk (264560 coins, 36800kB) completed (0.19s)
  • 3x Prune: UnlinkPrunedFiles deleted blk/rev (02353)
  • 2x Leaving block file xxx: CBlockFileInfo(xxx)

For comparison: #19832 (comment)

@practicalswift
Copy link
Contributor

Very strong Concept ACK: this is a great signal-to-noise improvement!

Having run this patch on a node that does tor and accepts incoming connections for a couple of days, with debug logging disabled, my logs have:

  • 248x UpdateTip: new best=...
  • 160x New outbound peer connected: ... (block-relay)
  • 15x New outbound peer connected: ... (full-relay)
  • 7x Potential stale tip detected, will try using extra outbound peer (last tip update: 1805 seconds ago)

Perfect!

@jonatack
Copy link
Member

Yeah, I've resigned myself to always running nodes with net logging on now and grepping for things.

@DrahtBot DrahtBot added the P2P label Dec 19, 2020
@DrahtBot
Copy link
Contributor

DrahtBot commented Dec 20, 2020

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Conflicts

Reviewers, this pull request conflicts with the following ones:

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@jnewbery
Copy link
Contributor

Concept ACK. I have a draft branch that makes fDisconnect private and adds a CNode::Disconncect(), which net processing has to call if it wants to disconnect a peer. That function takes a required message argument which gets logged to the NET category. That'd fix all instances of net_processing not logging disconnections, and ensure that none are introduced in future.

The branch is here: https://github.com/jnewbery/bitcoin/commits/2020-12-log-disconnect. It doesn't necessarily need to go in at the same time as this, but it might make sense to try to fix this definitively.

@Sjors
Copy link
Member

Sjors commented Dec 30, 2020

Concept ACK

@ajtowns
Copy link
Contributor Author

ajtowns commented Jan 6, 2021

Removed dep on #20646 since it's no longer changing late sendaddrv2 from a disconnect, and marked as ready for review.

@ajtowns
Copy link
Contributor Author

ajtowns commented Jan 6, 2021

@jnewbery Didn't like the change to always evaluating the args to the LogPrint format that comes with a CNode::Disconnect(args...) method, or any of the ideas I had to prevent it, so have left it as is for this PR.

@jnewbery
Copy link
Contributor

jnewbery commented Jan 6, 2021

Didn't like the change to always evaluating the args to the LogPrint format that comes with a CNode::Disconnect(args...) method, or any of the ideas I had to prevent it, so have left it as is for this PR.

Good point about always evaluating the LogPrint args. In practice, I don't think it matters very much here. These logs are infrequent, only happen once per connection, and none of them have expensive-to-evaluate log args, so the performance impact would be negligible. Still, if you wanted to do it with zero cost, we could implement some NET_LOG_MESSAGE macro that returns a null object if net logging is disabled and returns the formatted string if net logging is enabled.

src/net_processing.cpp Outdated Show resolved Hide resolved
Copy link

@felipsoarez felipsoarez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concept ACK

src/net.cpp Outdated Show resolved Hide resolved
@ajtowns ajtowns force-pushed the 202012-net-log-cleanup branch from 2219a8d to e28d740 Compare January 7, 2021 00:46
@jnewbery
Copy link
Contributor

jnewbery commented Jan 7, 2021

utACK e28d740

@jnewbery
Copy link
Contributor

utACK b007071

Checked range-diff. Only conflict was change from CNode* pnode to CNode& node in SocketSendData().

@practicalswift
Copy link
Contributor

ACK b007071

Very nice to see so many "attacker log spam" vectors (or worst-case: attacker disk fill vectors) be removed in one go.

Looking forward to seeing this merged!

@DrahtBot
Copy link
Contributor

🕵️ @sipa has been requested to review this pull request as specified in the REVIEWERS file.

Copy link
Member

@maflcko maflcko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

review ACK b007071 🔘

Show signature and timestamp

Signature:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

review ACK b0070717b4fe33f21d6d0d15bc30a26473f06a90 🔘
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p
pUgJAQwAt8D/Rh7yHcjI6ZS+S010qa2U/jXHrKnTvbItbCDH6SMlqyd0djxIfw2t
fDT0bOKNGEZOgfy9v5pnDy9ZbtZmO9t/kLwiRYDTvkX0UigWczjkuXnEWIp3QFjL
XedcGIRRe5jvVNVS0TIJNGwcNxez5cbnfKVcFMX0aRPoC5h+7IxCOBZQ6PvRlFmC
bIj6Z3yhPFBjWXNsfLOPEYGZ74680ahH1GSkJ2ww4aIx/6CNCJhSSH4gIjsbVPBc
jDiXwzgPolnv9LPmpLGfoVzAriV4Z9fcA8bewohzLwAJDJHzCE8/LhziPM+fqYpv
1KHSIL/wJN93UnGtzWQJyWl2p1+meerqUIgqh4sbgBCsL3pQg8AD9sC6HgVOcAxL
8RDh3f3lDSIHkmk+RC5zm6FzfUurEratFs530w6OwTtgdFoyeeuiZ3RlTHBbdoXG
FBaqGjLy3NagvHXqiLFnJJs/pFvQH8hJHh3qosvn2cjF4HB0FLhD/ihcfPw+u9hk
f3hY8LO9
=VKWw
-----END PGP SIGNATURE-----

Timestamp of file with hash d559c553e0361215784d099000b159ebc6ba1b880fcf3dd5cc55c844632bb1fd -

src/net.cpp Outdated Show resolved Hide resolved
src/net.cpp Outdated Show resolved Hide resolved
src/net.cpp Outdated Show resolved Hide resolved
src/net.cpp Outdated Show resolved Hide resolved
src/net_processing.cpp Show resolved Hide resolved
src/net_processing.cpp Show resolved Hide resolved
@ajtowns
Copy link
Contributor Author

ajtowns commented Jan 14, 2021

Addressed marco's comments

@practicalswift
Copy link
Contributor

cr ACK 4424d13

@maflcko
Copy link
Member

maflcko commented Jan 14, 2021

re-ACK 4424d13 only change is fLogIPs fixup in first commit 🤺

Show signature and timestamp

Signature:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

re-ACK 4424d136c45b6b078afd58d5e8fc609ec7e047eb only change is fLogIPs fixup in first commit 🤺
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p
pUgqoQwAqISXnlIpP4THjATHwGs+vLBlbeZuFHDAS6u5UMga5WFym3t99lsZIspM
SMdYiaGJvdPZGgGVw/PRHkQi+ujoC3aBAStbTVgQdz1vjklKRLGtvD6n3+z/xf+o
xlE54T5JjSTQUsqVuT6POjJ2fV/DN70PpfZBE/8NU9gl34LQZ5qjCn4C+XkRGiSd
fqbyeZj+5Z7Lh7b6nAiRiuZrWBaopcCXYb104ocnSh4O0T4xD1VMv8oeyS5dEcZF
H4HA83Y0u9gD4121Qcj41y+XW7uVVp2JXRLEp8bgrgM5jM6WPIRi/AfdtkvV9TXN
+Cg5w6jVHzDKKH0BseDfNPB07CbB0fNkZnd6QqdEdLsMFMObtsOInwNXRqXLDPBF
ggFa+FKVZ0F4v5Nie0IAHvq840CCtMwO5abSm8Q/wQQUJbpOEiksDqPlUd6JudAM
QtOGB3Da3wD4KCWyPzNgyztdTiiDJyc6GP3KE/T3tDuMwGdFm9ZyBHALUhx2j25e
cXJ2Zw9M
=xx8F
-----END PGP SIGNATURE-----

Timestamp of file with hash 60eed5124ad741183bbbac3829cdb44ecd93be7850cab223e0d08ecf68aafea0 -

@decryp2kanon
Copy link
Contributor

Concept ACK. I really wanted this!

@jnewbery
Copy link
Contributor

My PR being merged made this one conflict with master. I've rebased it here: https://github.com/jnewbery/bitcoin/tree/pr20724.1. Feel free to take that if it helps.

utACK dd0aeac if you take it.

@ajtowns ajtowns force-pushed the 202012-net-log-cleanup branch from 4424d13 to 48c8a9b Compare January 28, 2021 08:06
@ajtowns
Copy link
Contributor Author

ajtowns commented Jan 28, 2021

My PR being merged made this one conflict with master. I've rebased it here: https://github.com/jnewbery/bitcoin/tree/pr20724.1. Feel free to take that if it helps.

I manually rebased it onto master in order to include #21000, but I think I got the same changes as your rebase anyway.

@jnewbery
Copy link
Contributor

ACK 48c8a9b

Confirmed I got the same rebase.

@maflcko
Copy link
Member

maflcko commented Jan 28, 2021

re-ACK 48c8a9b only change is rebase 🚓

Show signature and timestamp

Signature:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512

re-ACK 48c8a9b96453ca429b38fc5d5181a310ae5a93bf only change is rebase 🚓
-----BEGIN PGP SIGNATURE-----

iQGzBAEBCgAdFiEE+rVPoUahrI9sLGYTzit1aX5ppUgFAlwqrYAACgkQzit1aX5p
pUgnVwwAlze3mNIb4mRh4Mr+XMEaMI6bUlDanx4Rgcp4R8Dqu0wJvbIxbfuHbQpR
Rs5gmC+aSBb+Orjp1WOxNfOuJ9us3BAb4082jeUH1Pm+UCQ3c2LxmKBQpJlLcHJA
b1U1QaDWph8PoXCubnc1RUkYQV5iSJFqjr2WHnEQdRNmlbKWCWBEmxYGT6jBZ6jg
+i/GziAkpHvuyBlJ/XveizM/sLMeLMFwejb7PJHba5y2+d5p0auBdnLbm0h+V+iy
k8khtntYpJE00Dx+e/IN9ts2b5tNlQm7cr1MsRcy2o4W0LJAKtfM/cUl9GtGP6NF
UKp8qWoWJ9oo0sz4jkbnCPjjAEm88pJG8gCabfLW8wOmGSq5sCfwfg9fMcqefo/L
TbISj8/UppDUY6VRHCQ12EenEPBFOn0fr3SJSg/NtDIS2AKRRKuwNl5nBUm38lGx
sOcRWaVUyGCvABLSXVHVu2NSw/bK8ASHWk7CzgVQkCsD02BUvuTWW7JZsqh5/zvY
LN47eajM
=pRyt
-----END PGP SIGNATURE-----

Timestamp of file with hash 0e792c55bddfb72884acc7a3bc32aebea29b43c845e5ef32b815c89f74e24c28 -

@practicalswift
Copy link
Contributor

re-ACK 48c8a9b

@maflcko maflcko merged commit c8b8351 into bitcoin:master Jan 29, 2021
RonSherfey pushed a commit to RonSherfey/bitcoin that referenced this pull request Jan 29, 2021
48c8a9b net_processing: log txrelay flag from version message (Anthony Towns)
98fab37 net: use peer=N instead of from=N in debug log (Anthony Towns)
1230210 net_processing: additional debug logging for ignored messages (Anthony Towns)
f7edea3 net: make debug logging conditional on -debug=net (Anthony Towns)
a410ae8 net, net_processing: log disconnect reasons with -debug=net (Anthony Towns)

Pull request description:

  A few changes to -debug=net logging:

   * always log when disconnecting a peer
   * only log various connection errors when -debug=net is enabled, since errors from random untrusted peers is completely expected
   * log when ignoring a message due to violating protocol (primarily to make it easier to debug other implementations)
   * use "peer=123" rather than "from 123" to make grepping logs a bit easier
   * log the value of the bip-37 `fRelay` field in version messages both when sending and receiving a version message

ACKs for top commit:
  jnewbery:
    ACK 48c8a9b
  MarcoFalke:
    re-ACK 48c8a9b only change is rebase 🚓
  practicalswift:
    re-ACK 48c8a9b

Tree-SHA512: 6ac530d883dffc4fd7fe20b1dc5ebb5394374c9b499aa7a253eb4a3a660d8901edd72e5ad21ce4a2bf71df25e8f142087755f9756f3497f564ef453a7e9246c1
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Jan 29, 2021
laanwj added a commit that referenced this pull request Feb 11, 2021
…at" log message to debug category

25f899c log: Move "Pre-allocating up to position 0x[...] in [...].dat" log message to debug category (practicalswift)
acd7980 log: Move "Leaving block file [...]: [...]" log message to debug category (practicalswift)

Pull request description:

  Move `Pre-allocating up to position 0x[…] in […].dat` log message to debug category.

  After the cleanup of `-debug=net` log messages PR (#20724) was merged recently the console log now has very high signal to noise ratio. That's great! :)

  This PR increases the signal to noise ratio slightly more by moving the most common remaining implementation detail log message (`Pre-allocating up to position 0x[…] in […].dat`) to the debug category where it belongs :)

  Expected standard output from `bitcoind` (when in steady state) before this patch:

  ```
  $ src/bitcoind
  …
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z Pre-allocating up to position 0x0000000 in blk00000.dat
  0000-00-00T00:00:00Z Pre-allocating up to position 0x000000 in rev00000.dat
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  ```

  Expected standard output from `bitcoind` (when in steady state) after this patch:

  ```
  $ src/bitcoind
  …
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  ```

  I find the latter alternative much easier to visually scan for anomalies (and more aesthetically pleasing TBH!).

  Non-GUI users deserve nice interfaces too :)

ACKs for top commit:
  laanwj:
    ACK 25f899c

Tree-SHA512: 5970798c41b041527ebdcbd843c5e136c257c28c3b21fc74102da8970406ca5c0c7e406305c5e6e67de5c1708dc1858af07a77a2e05f44159b7103423e8ab32f
sidhujag pushed a commit to syscoin/syscoin that referenced this pull request Feb 11, 2021
…n […].dat" log message to debug category

25f899c log: Move "Pre-allocating up to position 0x[...] in [...].dat" log message to debug category (practicalswift)
acd7980 log: Move "Leaving block file [...]: [...]" log message to debug category (practicalswift)

Pull request description:

  Move `Pre-allocating up to position 0x[…] in […].dat` log message to debug category.

  After the cleanup of `-debug=net` log messages PR (bitcoin#20724) was merged recently the console log now has very high signal to noise ratio. That's great! :)

  This PR increases the signal to noise ratio slightly more by moving the most common remaining implementation detail log message (`Pre-allocating up to position 0x[…] in […].dat`) to the debug category where it belongs :)

  Expected standard output from `bitcoind` (when in steady state) before this patch:

  ```
  $ src/bitcoind
  …
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z Pre-allocating up to position 0x0000000 in blk00000.dat
  0000-00-00T00:00:00Z Pre-allocating up to position 0x000000 in rev00000.dat
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  ```

  Expected standard output from `bitcoind` (when in steady state) after this patch:

  ```
  $ src/bitcoind
  …
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  0000-00-00T00:00:00Z UpdateTip: new best=0000000000000000000000000000000000000000000000000000000000000000 height=000000 version=0x00000000 log0_work=00.000000 tx=000000000 date='0000-00-00T00:00:00Z' progress=0.000000 cache=000.0MiB(0000000txo)
  ```

  I find the latter alternative much easier to visually scan for anomalies (and more aesthetically pleasing TBH!).

  Non-GUI users deserve nice interfaces too :)

ACKs for top commit:
  laanwj:
    ACK 25f899c

Tree-SHA512: 5970798c41b041527ebdcbd843c5e136c257c28c3b21fc74102da8970406ca5c0c7e406305c5e6e67de5c1708dc1858af07a77a2e05f44159b7103423e8ab32f
deadalnix pushed a commit to Bitcoin-ABC/bitcoin-abc that referenced this pull request Jan 28, 2022
Summary:
```
A few changes to -debug=net logging:

 - always log when disconnecting a peer
 - only log various connection errors when -debug=net is enabled, since errors from random untrusted peers is completely expected
 - log when ignoring a message due to violating protocol (primarily to make it easier to debug other implementations)
 - use "peer=123" rather than "from 123" to make grepping logs a bit easier
 - log the value of the bip-37 fRelay field in version messages both when sending and receiving a version message
```

Some differences from the source material are due to segwit and out of order backports.

Backport of [[bitcoin/bitcoin#20724 | core#20724]].

Ref T1696.

Test Plan:
  ninja all check-extended

Reviewers: #bitcoin_abc, PiRK

Reviewed By: #bitcoin_abc, PiRK

Maniphest Tasks: T1696

Differential Revision: https://reviews.bitcoinabc.org/D10923
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Aug 16, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants