< bitcoin-git>
bitcoin/master 2f10f06 Suhas Daftuar: qa: Increase a sync_blocks timeout in pruning.py
< bitcoin-git>
bitcoin/master f895023 MarcoFalke: Merge #9628: qa: Increase a sync_blocks timeout in pruning.py...
< bitcoin-git>
[bitcoin] MarcoFalke closed pull request #9628: qa: Increase a sync_blocks timeout in pruning.py (master...2017-01-longer-pruning-sync) https://github.com/bitcoin/bitcoin/pull/9628
< bitcoin-git>
[bitcoin] jtimon opened pull request #9634: Fail in DecodeHexTx if there is extra data at the end (master...upstream-fail-decode-tx) https://github.com/bitcoin/bitcoin/pull/9634
< gmaxwell>
cfields: re your earlier question-- show me the code. I'm unsure about matt's suggestion because I can read it in ways that wouldn't be good. E.g. if the recieve for a verack unconditionally set fsuccessfullyconnected true then something that veracked without ever going through version could be successfully connected.
< gmaxwell>
assuming that it doesn't do anything stupid, it's fine
< gmaxwell>
and I think it would be fine to clamp down the handshake and require the states be followed as expected...
< gmaxwell>
not just fine but good: I could imagine us having some uninitlized something as a result of getting that wrong.
< gmaxwell>
cfields: but I will gladly review whatever comes up when it comes up.
< bitcoin-git>
bitcoin/master 5a00659 Russell Yanofsky: [wallet] Clarify getbalance help string to explain interaction with bumpfee...
< bitcoin-git>
bitcoin/master 07421cf Wladimir J. van der Laan: Merge #9613: [wallet] Clarify getbalance help string to explain interaction with bumpfee...
< bitcoin-git>
[bitcoin] laanwj closed pull request #9613: [wallet] Clarify getbalance help string to explain interaction with bumpfee (master...pr/getbalance-help) https://github.com/bitcoin/bitcoin/pull/9613
< bitcoin-git>
[bitcoin] laanwj closed pull request #9587: Do not shadow local variable named `tx`. (master...20170119_Wshadow_net_processing) https://github.com/bitcoin/bitcoin/pull/9587
< bitcoin-git>
[bitcoin] jonasschnelli opened pull request #9637: [Qt] fix transaction details output-index to reflect vout index (master...2017/01/qt_vout) https://github.com/bitcoin/bitcoin/pull/9637
< bitcoin-git>
[bitcoin] MarcoFalke opened pull request #9638: qa: Actually test assertions in pruning.py (master...Mf1701-qaPruning_try) https://github.com/bitcoin/bitcoin/pull/9638
< instagibbs>
meeting in 6 minutes
< jtimon>
a fast question before the meeting...I did the gitian builds as described in the manual, but didn't sign them yet, it is expected that I create a new gpg key only to sign gitian builds or that I reuse my own?
< instagibbs>
jtimon, I don't know if there's expectation, but it's pretty common yeah
< instagibbs>
make a subkey
< achow101>
jtimon: I don't think it matters. I have been using my own key
< wumpus>
I just use my own
< sipa>
I just use my own
< instagibbs>
wumpus, o_0 crap I recall you using another key that you've signed. Maybe im delusional
< achow101>
instagibbs: maybe you are thinking of the release key?
< instagibbs>
ah, that might be it
< jtimon>
well, my gpg key has 2 subkeys for signing already, but they're in yubikey, not in the VM, I guess I can copy my ~/.gnupg to the VM and then see how I can use the yubikey from the VM, thanks everyone
< wumpus>
though generally it's best to keep things separated, a subkey sounds like the right thing to do, but I haven't got around to figuring out how that gpg functionality works
< jtimon>
instagibbs: np, got good answers already
< sipa>
if people don't shoot me for it, i'd like to briefly bring up coding style
< wumpus>
bleh
< jtimon>
if there's no other topic, I don't see why not
< instagibbs>
how about just a grazing flesh wound
< wumpus>
but yes there's no other proposals so go ahead
< MarcoFalke>
If morcos is around, we could make a short topic on how to get the priority patch merged. (Seems to bit rot fast)
< wumpus>
#topic coding style
< sipa>
it seems that we're not really asking people to stick to particular coding style, and that sometimes leads to unclarities "what style should i use here?"
< BlueMatt>
ugh
< morcos>
i'm here.. i'm happy to worry about that after 0.14
< MarcoFalke>
just use clang-format-diff.py *hides*
< sipa>
and i think that the "mimick the surrounding code" advice we've been following is a bad idea
< wumpus>
I don't really see the point in spending more energy on this
< sipa>
it doesn't actually help in making the codebase converge (which i think is goal)
< jonasschnelli>
I once proposed that, but everyone was against that. A CI check for clang style. We can still accept it... and could be something different then travis.
< jtimon>
but yeah, since it's not done automatically project wise I often violate it without noticing
< MarcoFalke>
Just format the diff on every patch and we will converge eventually.
< sipa>
i'm not suggesting we go fix everything at once
< wumpus>
I think mimicing the surrounding code is a good thing, usually, as long as you don't introduce really crappy looking lines well I won't hold up merging on a few code style nits
< morcos>
wumpus: i do think it would be nice if we were at least slowly converging on a common code style... i think we are making small progress.. for instance now i know to always brace my if's and i don't mind if someone points out that i forget it
< jtimon>
MarcoFalke: IIRC there was a python script to do that automatically
< BlueMatt>
jonasschnelli: I'm opposed to a CI check for clang style...I'm in favor of a bot which auto-opens a pr which fixes clang style on recently-broken PRs
< wumpus>
morcos: yes, always using braces makes sense from a security/correctness point of view
< MarcoFalke>
jtimon: Yes I commited those :)
< jtimon>
or something similar, but I've never used it
< morcos>
what is annoying is when you don't know what you're supposed to do, and then something is pointed out to you and you feel like its just a difference in taaste
< sipa>
right - my goal is to make the codebase converge
< wumpus>
but some other things, meh
< BlueMatt>
sipa: yes, that would be nice
< wumpus>
it usually *is* a difference in taste
< sipa>
not necessarily fast, and not necessarily to whatever my own personal preference is
< jtimon>
MarcoFalke: right, so I think if we all use that, as you say we will eventually converge (or be close enough that is not a big deal to do the remaining stuff all at once)
< sipa>
but i'd like to get an agreement that the goal is converging
< * BlueMatt>
votes for coding-style-recent-pr-fixup bog
< BlueMatt>
bot
< wumpus>
as I said, I don't really see the point of spending much energy on this. There are tons of real issue
< BlueMatt>
that way none of us have to think about it, but it still happens :)
< morcos>
i'm +1 on converging to someone's taste. i don't much care whose, as long as there is an answer that doesn't depend on who you ask
< wumpus>
I don't want to see even more 'massage around a few characters idly' pulls
< jtimon>
what about just a check in travis or something?
< wumpus>
no.
< MarcoFalke>
jtimon: We don't want travis to fail due to style
< paveljanik>
I'm in favour of slow non-forced (no-CI) convergence.
< wumpus>
travis should check correctness
< instagibbs>
Can we at least have a cultural push towards one? I don't care which.
< wumpus>
if travis fails due to style, it will always be broken, believe me
< sipa>
instagibbs: +1
< BlueMatt>
yes, no travis-says-no-for-garbage-reasons
< MarcoFalke>
But we might add a non-voting other-than-travis ci, if that is possible?
< wumpus>
I don't want to block pulls on stupid style issues
< BlueMatt>
wumpus: yes, very much that
< wumpus>
there are already enough valid reasons to hold up pulls for months
< wumpus>
please
< wumpus>
focus on important stuff
< jtimon>
wumpus: right, it would be only on style on the newly modified code, but yeah, it seems it could fail when we don't want it to
< jtimon>
anyway, the bot could just nit open prs instead of fixing things by himself
< BlueMatt>
the only coding style issue I'd be ok with travis complaining about is bad indentation
< morcos>
sipa, or anyone else that has an opinon on coding style.. if you'd like to get people to move to your style on any specific thing, i think you need to get your request merged to developer-notes
< BlueMatt>
because that leads to bugs
< sipa>
maybe what i'm after is being able to ask people (as a non-blocking nit, even) to fix style issue, without it being seen as "forcing your personal opinion"
< wumpus>
I say if there's use of coding style that is known to introduce bugs (such as unbraced conditionals) there's a point to pointing it out
< morcos>
if its in there, i think its fair game for pointing out not meeting it... if its not in there.. well come on
< BlueMatt>
jtimon: people already complain about endless nits when they show up for the first time to contribute...I'm ok with my own prs getting that, but not people trying to do one-offs
< sipa>
morcos: of course, only for things in the style guide
< wumpus>
morcos: yes, it should certainly be documented in that file
< * jtimon>
wonders if this is the right time to indent CheckTxInputs
< wumpus>
if it's not in there there's no basis for pointing it out
< morcos>
we are all talking about NEW code... but jtimon brings up a good point...
< sipa>
a move-only commit should probably not change style
< morcos>
for instance i have a couple of recent PR's that add braces without changing indentation....
< sipa>
about that:
< wumpus>
eh, indeed, that makes it harder to check whether it's mov only
< morcos>
i thought thats what people preferred... but i'm happy to add the indentation if people can figure out how to ignore the white space changes
< gmaxwell>
changing style though should result in the same object files.
< sipa>
and even github supports whitespace ignoring diffs, add ?w=1 to the URL
< wumpus>
gmaxwell: definitely
< morcos>
ok... good wiht me.. i just thought people wanted differently b/c of similar examples in the codebase
< BlueMatt>
sipa: you meant -b
< wumpus>
gmaxwell: that means adding/removing no empty lines though
< wumpus>
gmaxwell: because line numbers
< instagibbs>
do we have a style guide already?
< instagibbs>
"if" braces even
< wumpus>
instagibbs: you don't know?
< jtimon>
yeah, regarding CheckTxInputs I believe I was asked to wait after moving it for indenting ages ago or something, but yeah, didn't know -w and that's more reason not to wait for anything (specially moves that may never happen)
< BlueMatt>
wumpus: I think lots of people dont...
< gmaxwell>
I think we should avoid changing indents spairingly. And then fix it not long after.
< instagibbs>
wumpus, I'm here to ask the dumb questions
< gmaxwell>
the developer nodes style guide isn't much of a style guide (not a complaint), and its more of one recently, but I don't normally consider it the place to go to figure out how to format something. :)
< wumpus>
BlueMatt: we refer to it in CONTRIBUTING.md, which automatically gets linked if you submit a PR
< wumpus>
gmaxwell: it's not supposed to have a lot of formatting guidelines, just basic ones
< sipa>
gmaxwell: i'm perfectly fine restricting my style nits to things that are in that file
< BlueMatt>
wumpus: I believe only for issues - I've never seen it for PRs
< BlueMatt>
but, ok, fair
< wumpus>
it mentions the "always use braces" though
< jtimon>
right, I believe we should try to avoid style nits that we don't have documented
< * BlueMatt>
thinks the endless "add braces here" comments in the past month got kinda annoying for a while
< wumpus>
definitely. In general please try to not cloud out serious discussion with lots of style nits
< BlueMatt>
wumpus: yes, just agreeing, I suppose :)
< MarcoFalke>
We should just raise awareness that there is a script to do the formatting for you.
< sipa>
yeah, no point in "add braces here" and "and here!" and "and here also!" comments all over the place, i guess
< MarcoFalke>
No need to spam pull requests
< gmaxwell>
Peopel should say if it bothers them, but my expirence is that small things like that improve moral in development teams. It's an oppturnity to help each other which is very easy and clear. Not "please totally redesign your patch". :)
< gmaxwell>
people*
< jtimon>
MarcoFalke: right, althought the bot that runs the script for you and complains in your PR sounds like a good idea to me
< gmaxwell>
At least I find it gratifying to go, fixed, fixed, fixed, fixed.. and now the patch is awesome hurray and thanks for your help. :)
< sipa>
enough said on the topic, as far as i'm concerned
< instagibbs>
sipa, feel free to propose a "non blocking, non-nitting" style
< instagibbs>
:P
< MarcoFalke>
#action PSA Use clang-format-diff.py before submitting a patch, whenever possible.
< wumpus>
gmaxwell: sure, as long as it's not overly pedantic, and doesn't continue time after time. e.g. you're just about to merge something and a new screenful of style nits appears
< gmaxwell>
MarcoFalke: is there instructions on that? also does it know about our new brace requirements?
< wumpus>
morcos: good advice I suppose, should go into CONTRIBUTING.md
< sipa>
wumpus: so how about treating style always as non-blocking (for the person deciding to merge)
< jtimon>
we can always ignore the bot in certain cases if it makes sense
< MarcoFalke>
gmaxwell: There should be a doc in /contrib/dev-tools, no?
< wumpus>
yes there is documentation on how to use it
< * wumpus>
wonders if there is still so much differnce between clang versions, for recent versions
< gmaxwell>
MarcoFalke: I dunno, never used that tool before. it's not mentioned in contributing.md.
< wumpus>
I mean in how clang-format formats
< jtimon>
right, we need to use the same version
< gmaxwell>
yea, I'm willing to install a specific version of clang for this-- as most of us should be... but just something to keep in mind for random contributors from the interwebs.
< MarcoFalke>
wumpus: Last time I checked there were no diffs, but it was a year ago or so.
< wumpus>
gmaxwell: well it's very possible that it stabilized, it's less important for format-patch than when requiring a reformat of the whole source, then it will oscillate :p
< MarcoFalke>
But it should not matter for 99.9% of the code.
< wumpus>
anyhow, other topics?
< sipa>
how are we on 0.14 bugs?
< gmaxwell>
All bugs are features, hurray.
< morcos>
i have one more that needs tagging 0.14.. and i think sdaftuar has 1-2 coming
< wumpus>
#topic bug-fixing for 0.14
< morcos>
they are all kind of minor fixups for bumpfee or replacement type stuff... mostly edge cases.. nothing serious
< MarcoFalke>
morcos: I think the one you want to tag is more a feature than a bug fix. At some point we need to draw the line and release.
< MarcoFalke>
But the one that is tagged right now should be merged as bug fix
< achow101>
I have a bug-fix (I think) for decoderawtx rpc
< morcos>
MarcoFalke: well its a bug fix b/c if we ever do a release without having a more conservative wallet incremental fee, then we are screwed for ever incrementing it
< morcos>
this has bit us in the past with dust fees
< wumpus>
tagged
< jtimon>
reminder, there's currently 6 open prs for 0.14.0: 9638 9626 9622 9609 9589 9108
< morcos>
its also really simple
< morcos>
i also mention in there that i think we should increase the incremental fee... that coudl be a topic.. but i realize people might not want to do it this close to release, but at least worth discussing it as a general idea and why..
< * BlueMatt>
is waiting on (needs to review 9609) and then run things in helgrind again...will generate lots of std::atomic changes
< BlueMatt>
but they should all be minor/trivial
< gmaxwell>
:-/
< morcos>
but given that it might already be close to needing to be raised, we have to do 9615
< MarcoFalke>
What if we want to increment it to 6000 satoshis in two years, then 0.14 will "fall off" regardless.
< gmaxwell>
BlueMatt: if there are helgrind results I am doubtful that sprinking atomics everywhere is usually the right solution. For some things like flags it can be... but if we're hitting helgrind errors it means we've gotten the locking wrong.
< cfields>
whoops, lost track of time. here.
< MarcoFalke>
But I get your point, I just think it is not a blocker. It could also go into 0.14.1
< morcos>
MarcoFalke: yes.. but that is something we will keep in mind if ever changing the default... is how many old versions will become less than optimal.. i don't know any better way to do it... there is a tradeoff
< BlueMatt>
gmaxwell: shit like CNode::copyStats...should be trivial, is only used in (effectively) debug info, doesnt matter much
< BlueMatt>
gmaxwell: but, yes, otherwise agreed
< morcos>
but if it goes in 0.14.1 then 0.14.0 could become broken for bumpfee within a few months... that seems bad!
< wumpus>
gmaxwell: tend to agree, doesn't seem like making everything atomic is the proper way to solve concurrency issues - it just shuts up the warnings, without addressing the root cause
< BlueMatt>
wumpus: thats why I never did a pile of PRs to do it :p
< gmaxwell>
morcos: oh incremental is just the thing that bumpfee uses but not the acceptance policy (behind on the naming since the split)
< wumpus>
that's like putting (unsigned) everywhere to shut up comparisons between signed/unsigned errors without looking at the ranges
< MarcoFalke>
gmaxwell: Yes, the goal is to split the wallet default and the relay default.
< wumpus>
BlueMatt: yes for statistics it seems harmless
< instagibbs>
morcos, I didn't expect people to button-mash bumpfee, but maybe I'm wrong on usage patterns
< morcos>
gmaxwell: incremental is the policy, #9615 introduces a wallet incremental which is higher than the default incremental to future-proof... not configurable, but maxed with actual incremental
< gmaxwell>
I would agree that bumpfees behavior should be more conservative. (IMO bumpfee should always increase at least multiple of the prior feerate, not just the incremental, in order to give log() bumps at worst)
< cfields>
wumpus: many are net things that have been around forever (CNodeStats). I have some ideas in mind for fixing them post-0.14, but I think the changes will end up being too big for 0.14
< cfields>
(re atomics)
< instagibbs>
In the case of "I just did it, or est feerate is same, I just want higher" this concern seems real
< wumpus>
cfields: right
< morcos>
instagibbs: i think its reasonable to expect stuck transaction problems might get considerably worse over the next 6 months... an improved fee estimation is definitely needed... but its certainly possible bumpfee will be important.
< wumpus>
cfields: forgot for a minute that the topic is fixes for 0.14 :)
< cfields>
wumpus: yes, otherwise i'd be yelling about s/int/atomic_int/ too, for sure :)
< morcos>
gmaxwell: it by default does a new estimatefee... it just max's that with a multiple of the increment above to make sure it will pass policy
< gmaxwell>
morcos: right, I think it should also max with a e.g. 10% increase... so that you don't ever have the issue of needing hundreds of bumps to span a plausable range. I'm in the weeds here though.
< morcos>
this is the first time we're releasing bumpfee... i think we've come up with a lot of minor improvements recently and i know its a lot to keep track of.. but it doesn't make sense to me to release it for the first time with sub-optimal behavior if there are known simple fixes
< morcos>
gmaxwell: yeah.. maybe.. but that could be an improvement for the future... i just want to make it so the old version doesn't run into a problem where its txs aren't even accepted by peers mempools if we change default policy (which i think should be another topic)
< wumpus>
well, I'm happy that at least we've merged it for 0.14, makes sense to improve it where possible before the release, if we have clear ideas of course
< gmaxwell>
(well the observation that a multiplictive increase is necessary and sufficient to span an arbitary range with log() bumps is not a new observation. ... I believe it's mentioned in the RBF FAQ.)
< morcos>
yes to be clear i'm not opposed to anyone else doing gmaxwell's idea before release.. i jsut want to do at least what i've suggested
< gmaxwell>
Someone should take a look at what green address and electrum are doing here to see if they've caught anything we've missed-- both have bumping in production. I volunteer to check greenaddress.
< morcos>
i mean this ties into my other topic
< morcos>
when i heard petertodd talking about how he just presses bumpfee in a loop (or maybe he does his own version, but in the future other people might just press bumpfee)
< morcos>
it occurred to me we are allowing WAY too much relay for 1 tx being mined
< morcos>
so gmaxwell is right that there are 2 ways to improve upon this... 1) raise incremental relay rate required... and 2) make it so the behavior of our own code doesn't cause this ridiculous relay iteration by default if people want to do periodic bumping to get confirmed
< gmaxwell>
minrelayfee is minrealy fee, replacement is orthorgonal-- you can use X bytes of relay for exposing yourself to Y fee either way.
< morcos>
i don't know if it's important to do 1 or 2 before 0.14.. i don't care strongly.. but i do think they are probably both needed improvements
< BlueMatt>
gmaxwell: that is no longer true (I mean it is in principal, but not in code)
< BlueMatt>
min relay fee is min(minRelayFee, minReplacementFee)
< gmaxwell>
the fact that my mempool is sitting at 14MB of data right now suggest the relay fee is not too low, though I wish it were.
< morcos>
that's only b/c of good behavior
< gmaxwell>
uh what? the whole security design of RBF is based on the replacement being the actual in-use min-relay fee.
< BlueMatt>
gmaxwell: ok, hold on...there is still a min relay fee which is used for bumping, that didnt go away, its just a different CLI flag name now
< morcos>
so gmaxwell the new design is that incrementalrelayfee is the number that you feel like should be the minimum cost to relay
< gmaxwell>
morcos: the operative question is would increasing it cut of transactions that would otherwise confirm in a not crazy amount of time. And it would, I think?
< morcos>
definitely every byte transmitted one way or the other would have to pay at least that
< morcos>
minrelaytxfee in initparamaterinteraction has to be at least that.. but could optionally be higher
< morcos>
but my point is that number is actually really really low if you compare it to the "useful" relay rate which is much closer to 50 sat/ byte (as opposed to 1) and allowing somoene to relay 50 times just to keep bumping from 1 to 50, kind of sucks
< gmaxwell>
I don't see why you're talking about bumping.
< morcos>
gmaxwell: i mean i guess if we raised it from 1 to 5, then yes some small amount of txs that paid between 2-5 would have to now pay 5... but raising it to 2 would basically harm nothing and cut down on the potential to relay lots and lots of times for fun
< gmaxwell>
They can also relay 50 transactions, the bumping is orthorgonal. I would say 50 that probably won't confirm, even avoiding the fee, but thats not actually true. (or if it's true and I didn't notice, then yes sure we should up the increment)
< gmaxwell>
okay, I haven't measured carefully, if 2 is the realistic floor what what gets confirmed then thats what the value should be.
< morcos>
btwn 1-2 might not ever confirm. my best guess is you have 1 chance in 3 ... >2 would i agree eventually confirm
< gmaxwell>
sounds like at a very minimum we should make an estimate now of what will realistically confirm and make the wallet do that.
< morcos>
anyway this is the next topic.. (topic: are we charging adequately for relay) i just wanted to start a discussion about it. i don't feel it has to be changed for 0.14. but the fact that its even a consideration is why i want to future-proof the wallet for 0.14 (the change made in #9615)
< wumpus>
#topic are we charging adequately for relay?
< gmaxwell>
morcos: we should change wallet behavior in advance of changing relay behavior.
< gmaxwell>
so if we think relay behavior should change to 2-3 we should change wallet to that now. these are all insignificant amounts.
< morcos>
i think we might be done with that topic too... i think greg's point is if someting close to the low end of relay fee can still get confirmed a non-trivial amount of the time.. then relay cost isn't too high. i agree this seems to be true.. maybe we could raise from 1 to 2.. but it seems insufficiently motivated to push through now
< gmaxwell>
2s/b is a half cent for a median size txn at $1000/btc.
< morcos>
gmaxwell: yes... wallet change in 9615 is to pay at least 5 greater than transaction it is replacing... small enough not to hurt but enough to be in advance of future changes
< * BlueMatt>
got 0.1 s/b confirmed last weekend pretty easily, so I think it is premature to be discussing bumping it
< BlueMatt>
(not proposing we lower it, but blocks are very often not full at all)
< gmaxwell>
as far as what gets confirmed, I think we have hangover legacy of many miners having turned up minrelay fee before there was mempool limiting and before createnewblock was fast.
< gmaxwell>
So it may be prudent to first rename the arguments to cause people to reconsider or go back to the defaults... before concluding that 1s/b will not confirm. doubly so with the fact that segwit may well put the fee behavior back in a disfunctional state (though perhaps thats also an argument to increase the default minimum relay fee in advance of it.)
< instagibbs_>
5 minutes
< BlueMatt>
gmaxwell: thats fair
< BlueMatt>
I'm not against renaming the relay fee options
< morcos>
There is basically no reason to use minrelaytxfee at all anymore...
< morcos>
in fact in my remove priority PR i make it so you can set it to 0
< wumpus>
no conceptual problems with ti, but it's too late to make option changes for 0.14
< morcos>
but incrementalrelayfee controls cost of relay and blockmintxfee controls orphan risk
< morcos>
so we can just advise in the 0.14 release notes that it is not a necessary DoS protection to set minrelaytxfee at all any more
< gmaxwell>
I doubt its much correlated with orphan risk at all now due to Fibre and BIP152.
< morcos>
(not to mention mempool limiting and the mempool min fee)
< instagibbs_>
People will have to intervene to turn on walletrbf, I don't think a default tweak is a bridge too far as well.
< gmaxwell>
Lets announce in the release notes that the option will be renamed, and encourage people to remove it.
< BlueMatt>
if you're using FIBRE (some pools still arent), there is 0 correlation....
< wumpus>
+1 gmaxwell
< morcos>
gmaxwell: sounds good.
< gmaxwell>
BlueMatt: not for 0.14 but someone really ought to implement the createnewblock tweak to skip very recently recieved low fee txn.. which does have a relationship to orphan risk. I think doing something fairly dumb would still be a big improvement.
< wumpus>
#endmeeting
< lightningbot>
Meeting ended Thu Jan 26 19:59:55 2017 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
< instagibbs_>
gmaxwell: do you think this is part of the unseen transactions that CB misses from mempool?
< sipa>
i assume so
< BlueMatt>
gmaxwell: yea, i think we've talked about this before...needs to happen
< gmaxwell>
instagibbs_: oh absolutely, with the extra pool there should only be two remaining sources of misses-- things that just didn't propagate yet (those), and miners with 'priority service'.
< morcos>
gmaxwell: -blockrecenttxminfee ?
< morcos>
I would like a baker's dozen min fees
< instagibbs_>
gmaxwell: yes OOB was my other thought
< instagibbs_>
wasn't sure of proportion
< instagibbs_>
high fee not prop vs low fee not prop vs low fee + OOB
< sipa>
or a conversion factor between time and feerate... higher fee things may be worth taking a slight propagation risk for
< gmaxwell>
morcos: sounds fine to me. could be set pretty high, my perspective is that the only reason to not deny very recent txn completely is that someone may notice themselves missing a large fee and feel regret. :)
< gmaxwell>
I collected data for that, measuring the mempool consistency between a node in europe, califorina, and au. Somewhere I have graphs.
< instagibbs_>
miners may be willing to miss out on a single reasonble fee tx, but maybe not a 150BTC one ;)
< gmaxwell>
instagibbs_: dunno the propotion but we can't do anything about OOB.
< sdaftuar>
we could prefill the compact block
< gmaxwell>
yea, I don't want to create an incentive to go rip out or deactivate a good feature because you missed a 1BTC fee. anyways, I did math on a orphaning mediated rational setting and came up with some number that was significantly higher than typical fees at the time, but I think actually lower than typical fees now.
< gmaxwell>
sdaftuar: yes, 0.15 feature, we needed extra in first-- since the best scheme I'm aware of for prefill is to use what missed on transmission to you... it was important to get your own logic as smart as possible first.
< sdaftuar>
sure, makes sense
< sdaftuar>
these createnewblock changes are just hard to reason about without real-world data on the various tradeoffs
< gmaxwell>
well I collected data that IIRC basically said everyone was consistent after about 10 seconds. I don't even think never including transactions until you've had them for 10 seconds would be bad... except for the risk that it might enrage someone due to missing a high fee txn.
< gmaxwell>
so my thought was just having a dumb limit, ignore txn newer to you than ten seconds unless the fee rate is 'high'. ten seconds is an insigificant enough delay to mostly not care about it.
< gmaxwell>
new measurements should be performned I guess.
< sdaftuar>
ok, maybe that is simple enough to just do then
< sdaftuar>
my initial thought was, maybe we should include a small recent medium fee tx that we can prefill without eg using more packets on the wire for the compact block
< sdaftuar>
but taht's definitely too complicated :)
< gmaxwell>
yea, and who cares that you delay a typical fee by ten seconds? you'll include another typical fee instead. :)
< sdaftuar>
right
< instagibbs_>
gmaxwell: is your thought to also prefill(after complete misses) the extra pool hits if space allowed?
< gmaxwell>
instagibbs_: no, I would propose we see how many we missed, if it's too many do no prefill. If it's not, prefill only our misses... assumption is that the peers mempool is the same as ours.
< instagibbs_>
you're also assuming there that extra pool is same(maybe right)
< gmaxwell>
if we missed too many, assumption is they're going to take a RTT regardless, don't waste bandwidth on prefill that the're going to get three copies of.
< gmaxwell>
instagibbs_: I am. well extra pool unlike mempool is actually convergent.. (or at least ignoring its size limit it is)
< gmaxwell>
e.g. given time extra pools become more similar while due to rbf-acceptance-threshold and doublespends the mempool is not.
< morcos>
wait, so it won't count as a miss if it was in our extrapool right
< gmaxwell>
Yes.
< instagibbs_>
correct
< gmaxwell>
We could expirement with things but "peer is the same as us" is a really good first approximation that will be hard to beat.
< gmaxwell>
it's also important to not overdo the prefill: the prefill is in the same message as the CB so any size added to the prefill adds delay to the CB even if the peer could perform a prefill-less reconstruction.
< sdaftuar>
huh, i hadn't thought about extrapool convergence before. will it really converge, given that we don't relay the things in it? or are you saying that extrapool+mempool taken together should converge?
< gmaxwell>
sdaftuar: extrapool+mempool will converge where mempool alone will not.
< instagibbs_>
sdaftuar: you relayed them in the past tho
< sdaftuar>
instagibbs_: not orphans
< gmaxwell>
Subject to all sorts of messy bits of reality...
< instagibbs_>
sdaftuar: mm yes
< gmaxwell>
but once you have a conflict in your mempool you'll never accept the alternative no matter how many times it gets given to you.
< instagibbs_>
that's an arg to prefil orphans
< gmaxwell>
extrapool isn't like that. :) "Give me your tired, your poor,
< gmaxwell>
Your huddled masses yearning to breathe free"
< instagibbs_>
but maybe same peers are passing to you, *shrug*
< gmaxwell>
in any case before BIP152 spec was done, I tested prefill based on misses and it cut the rount trip rate by a ton... but it was on a dumb test network. debug=mempool logs enough to let you make the measurement with existing nodes.
< gmaxwell>
e.g. if there are IIRC <5 missing it logs the missed txids. so you can compare that on a pair of nodes to see how many RT it would eliminate.
< BlueMatt>
gmaxwell: that was with an infinte extrapool, no?
< BlueMatt>
(well, effectively infinite by looking back through debug.log)
< instagibbs_>
how do you specify two debug flags, mempool and cmpctblock?
< instagibbs_>
btw
< instagibbs_>
without doing debug=1
< sipa>
-debug=mempool -debug=cmpctblock ?
< BlueMatt>
-debug=mempool -debug=cmpctblock
< sipa>
same as with all multiarg
< BlueMatt>
it is confusing that some of our args are multiarg some of them are replace-last-arg
< instagibbs_>
oh mapmultiArgs, yes
< instagibbs_>
should have tried
< gmaxwell>
BlueMatt: yes.
< bitcoin-git>
[bitcoin] sdaftuar opened pull request #9640: Bumpfee: bugfixes for error handling and feerate calculation (master...2017-01-bumpfee-error-cleanup) https://github.com/bitcoin/bitcoin/pull/9640
< ptk>
hi
< ptk>
can you help me?
< ptk>
# Build the library and install to our prefix cd db-4.8.30.NC/build_unix/ # Note: Do a static build so that it can be embedded into the executable, instead of having to find a .so at runtime ../dist/configure --enable-cxx --disable-shared --with-pic --prefix=$BDB_PREFIX make install