[Documentation] limitations in processing inventory #15476

issue HashUnlimited opened this issue on February 25, 2019
  1. HashUnlimited commented at 7:14 PM on February 25, 2019: contributor

    #14897 has introduced new limits which not only causes nightmares for copy-pasta devs but also introduces some undesired behaviour.

    MEMPOOL requests are answered as an unlimited batch. The newly introduced limits are forcing us to drop further incoming transactions if the mempool size exceeds 100. Our peers will in no way bother to send us these again because they are filtered by PushInventory as well as timeLastMempoolReq.

    Unless those transactions are included in a block, we'll have no way to know about them, especially when we're behind a gateway node without further peers.

  2. MarcoFalke added the label P2P on Feb 25, 2019
  3. MarcoFalke added the label Brainstorming on Feb 25, 2019
  4. sdaftuar commented at 7:55 PM on February 25, 2019: member

    Do you have a test case for reproducing the issue you're encountering? My understanding of the code is that we'll just request transactions 100 at a time; I don't see why this would break anything. (It would indeed be a bug if we are unable to request all the transactions from a peer that is announcing more than 100 transactions at once.)

  5. HashUnlimited renamed this:
    [bug] limitations in processing inventory
    [Documentation] limitations in processing inventory
    on Feb 25, 2019
  6. HashUnlimited commented at 8:54 PM on February 25, 2019: contributor

    Well, "potential bug" would maybe describe it better. Missed out the NetMsgType::MEMPOOL has silently been deprecated and isn't used anymore as outgoing message, just answered for older nodes. However, BIP35 is still present in all Developer references and it won't work with the current code. So some little hint would be nice.

  7. sdaftuar commented at 9:03 PM on February 25, 2019: member

    It sounds like you're saying that we've broken the ability to eventually request all the transactions from a peer, if they announce some large number at a time. If that is true, it would be a bug -- do you have a test case that reproduces such a problem, or is this just speculation?

  8. HashUnlimited commented at 9:10 PM on February 25, 2019: contributor

    it isn't, actually happened on my test environment where I'm issuing the mempool message as a first request when a peer is fully connected.

    steps: add blank peer -> finish IBD -> issue mempool req

  9. sdaftuar commented at 10:03 PM on February 25, 2019: member

    Can you share a minimal patch on top of master that demonstrates the issue?

  10. HashUnlimited commented at 1:13 AM on February 26, 2019: contributor

    Will try to reproduce reliably but it might well be that I'm chasing a ghost here. For now it looks like some of my gateway nodes are crapped out, logs suggest so. Needed a while to consider that as those are released code and I'm playing with master on the private side. Will report back if there are other findings. Closing for now, sorry for any inconvenience.

  11. HashUnlimited closed this on Feb 26, 2019

  12. DrahtBot locked this on Dec 16, 2021

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: 2026-04-15 15:14 UTC

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