mempool min fee not met when using sendrawtransaction #7630

issue grue0 opened this issue on March 2, 2016
  1. grue0 commented at 2:15 AM on March 2, 2016: none

    I'm currently using 0.12.0.

    When I attempt to broadcast a 0 fee, non-dust output transaction using sendrawtransaction, I get the following error message:

    error code: -26
    error message:
    66: mempool min fee not met
    

    After restarting the node, the transaction broadcasts just fine. Shouldn't local RPC calls be excluded from the memory pool's fee policy?

  2. pstratem commented at 2:16 AM on March 2, 2016: contributor

    @gruez there's no bug here

    local transactions are treated exactly the same way that outside transactions are treated to avoid fingerprinting attacks

  3. grue0 commented at 2:30 AM on March 2, 2016: none

    I believe that contradicts the intention for the whitelistforcerelay flag. Here's the relevant comment for it.

                    // Always relay transactions received from whitelisted peers, even
                    // if they were already in the mempool or rejected from it due
                    // to policy, allowing the node to function as a gateway for
                    // nodes hidden behind it.
    

    My interpretation of this is that the transaction should be relayed, even if it was rejected for not meeting the min mempool fee. I checked for when the check for mempool min happens, and it's after the check for whitelistforcerelay, which means the same transaction will also not be relayed, even if it was from a whitelisted node, which appears to contradict what was intended according to the comment.

  4. pstratem commented at 2:38 AM on March 2, 2016: contributor

    There should probably be a flag for sendrawtransaction to act as if whitelisted, default to off.

  5. jameshilliard commented at 4:20 AM on March 2, 2016: contributor

    Maybe it would be simpler to just have a "force" flag for sendrawtransaction that will override everything except consensus rules.

  6. luke-jr commented at 1:30 PM on March 2, 2016: member
  7. laanwj added the label RPC on Mar 3, 2016
  8. laanwj added the label Mempool on Mar 3, 2016
  9. RHavar commented at 4:59 AM on March 9, 2016: contributor

    I ran into this other day, and an easy work around is to first call prioritisetransaction on the transaction setting it a high virtual fee, then sending it

  10. gmaxwell commented at 8:02 AM on March 9, 2016: contributor

    Relaying a transaction you wouldn't accept yourself is generally a waste of time-- not just fingerprinting avoidance-- after all, if your own node wouldn't relay it because the fee is too low, then none of your peers likely will either.

    The whitelist relay stuff is mostly intended to handle rebroadcasts for transactions which weren't correctly relayed the first time because you had few/no peers up at the time.

    Priortizing it is a pretty good general workaround, -- though it still won't make peers handle the transaction. :)

  11. MarcoFalke commented at 2:27 PM on August 6, 2019: member

    Not sure this is a bug. Also, a "workaround" exists.

  12. MarcoFalke closed this on Aug 6, 2019

  13. 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-13 15:15 UTC

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