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

mempool min fee not met when using sendrawtransaction #7630

Closed
grue0 opened this issue Mar 2, 2016 · 8 comments
Closed

mempool min fee not met when using sendrawtransaction #7630

grue0 opened this issue Mar 2, 2016 · 8 comments

Comments

@grue0
Copy link

grue0 commented Mar 2, 2016

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?

@pstratem
Copy link
Contributor

pstratem commented Mar 2, 2016

@Gruez there's no bug here

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

@grue0
Copy link
Author

grue0 commented Mar 2, 2016

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.

@pstratem
Copy link
Contributor

pstratem commented Mar 2, 2016

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

@jameshilliard
Copy link
Contributor

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

@luke-jr
Copy link
Member

luke-jr commented Mar 2, 2016

@pstratem @jameshilliard See #7533

@RHavar
Copy link
Contributor

RHavar commented Mar 9, 2016

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

@gmaxwell
Copy link
Contributor

gmaxwell commented Mar 9, 2016

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. :)

@maflcko
Copy link
Member

maflcko commented Aug 6, 2019

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

@maflcko maflcko closed this as completed Aug 6, 2019
@bitcoin bitcoin locked as resolved and limited conversation to collaborators Dec 16, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants