Join GitHub today
GitHub is home to over 20 million developers working together to host and review code, manage projects, and build software together.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
Already on GitHub? Sign in to your account
RPC: sendrawtransaction: Allow the user to ignore/override specific rejections #7533
Conversation
added a commit
to luke-jr/bitcoin
that referenced
this pull request
Feb 14, 2016
added a commit
to luke-jr/bitcoin
that referenced
this pull request
Feb 14, 2016
added a commit
to luke-jr/bitcoin
that referenced
this pull request
Feb 14, 2016
laanwj
added
the
RPC/REST/ZMQ
label
Feb 15, 2016
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Feb 25, 2016
luke-jr
referenced this pull request
Mar 2, 2016
Open
mempool min fee not met when using sendrawtransaction #7630
|
concept ACK |
|
@luke-jr why not turn the second argument an JSON object to be more scalable. For instance, I was planning to add option unlockUnspents. |
MarcoFalke
and 1 other
commented on an outdated diff
Mar 30, 2016
| @@ -281,7 +281,22 @@ void PruneAndFlush(); | ||
| /** (try to) add transaction to memory pool **/ | ||
| bool AcceptToMemoryPool(CTxMemPool& pool, CValidationState &state, const CTransaction &tx, bool fLimitFree, |
MarcoFalke
Member
|
added a commit
to bitcoinknots/bitcoin
that referenced
this pull request
Jun 28, 2016
|
Is this something that we might be able to get in 0.13? Without something like this the alternative for pool operators is usually to patch out the problematic is-standard check blocking the send which is usually not desired. |
|
Sorry, no, this missed the feature freeze for 0.13 by a long haul. |
|
Needs rebase on top of master instead of 0.13 |
|
@jameshilliard Knots has had this for a while. Miners should probably be using it anyway. @MarcoFalke Rebased. |
|
Concept ACK |
|
Rebased. Could be combined with #9422 to restore policy-bypassing transactions after a restart, but I consider that beyond the scope of this PR, and something to address after both get merged. |
|
I'm not convinced about the need to ignore based on the exact reason (as that is likely something that's hard to maintain, as reasons change over time). How about just a boolean to bypass standardness/fee/mempool policy rules (but keep consensus and script execution flags for upgradability)? |
|
Agree with @sipa. This is not going to be maintainable for API clients. Are you planning on rebasing this luke? |
|
Typically people only want to bypass a specific policy, and not others. For example, a miner might want to bypass the fee checks or bypass the ancestor limit on replacements, but not other policies. Will have a rebase done soon. |
|
I don't think it's all that important to have the ability to have granular overrides, if that's important to some miners it can be implemented externally, most of the time a miner will just want to force add the transaction and will have already checked that it violates policy rules(often by looking at the failure reason when they try and send it normally). |
|
@jameshilliard It can't be added externally... Looking at the first failure reason won't tell you if it violates other policies as well. Anyhow, rebase is ready for review, and refactored somewhat so hopefully it's also easier to review. |
luke-jr
added some commits
Jan 16, 2016
|
I think the ability to override specific rejection reasons is overkill, and risks creating an interface that is unmaintainable. A boolean to say "ignore all policy, accept if consensus-valid" would be fine, though. |
|
Agree with @sipa, making this too granular makes this unmaintainable as rejection reasons might come and go, or implemented differently, as policy changes. After all, policy is not standardized. |
luke-jr commentedFeb 14, 2016
Replace boolean allowhighfees with an Array of rejections to ignore (in a backward compatible manner)
This is useful for node operators who wish to manually accept transactions that don't meet their typical policies, yet don't necessarily want to override all the policies.
It's a bit ugly internally - suggestions on improving that are welcome.