1 2017-06-22 00:11:49	0|sipa|jonasschnelli: https://github.com/sipa/bitcoin/commits/progress
  2 2017-06-22 00:12:35	0|sipa|jonasschnelli: you were just returning from Upgrade without shutting down... no wonder you get a corruption :)
  3 2017-06-22 06:02:46	0|jonasschnelli|sipa: okay. I see. :/
  4 2017-06-22 07:00:09	0|bitcoin-git|[13bitcoin] 15jonasschnelli opened pull request #10649: Make sure we only mine via the first wallet (06master...062017/06/wallet_generate) 02https://github.com/bitcoin/bitcoin/pull/10649
  5 2017-06-22 07:38:05	0|bitcoin-git|[13bitcoin] 15jonasschnelli opened pull request #10650: Multiwallet: add RPC endpoint support (06master...062017/06/wallet_rpc_endpoint) 02https://github.com/bitcoin/bitcoin/pull/10650
  6 2017-06-22 08:53:32	0|bitcoin-git|13bitcoin/06master 145555fa8 15MarcoFalke: qa: Add stopatheight test
  7 2017-06-22 08:53:32	0|bitcoin-git|[13bitcoin] 15MarcoFalke pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/d083bd9b9c52...c68a9a69278a
  8 2017-06-22 08:53:33	0|bitcoin-git|13bitcoin/06master 14c68a9a6 15MarcoFalke: Merge #10632: qa: Add stopatheight test...
  9 2017-06-22 08:54:04	0|bitcoin-git|[13bitcoin] 15MarcoFalke closed pull request #10632: qa: Add stopatheight test (06master...06Mf1706-qaStopAtHeight) 02https://github.com/bitcoin/bitcoin/pull/10632
 10 2017-06-22 14:12:05	0|bitcoin-git|13bitcoin/06master 14700d8d8 15practicalswift: Remove obsolete _MSC_VER check...
 11 2017-06-22 14:12:05	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/c68a9a69278a...1d991f6f18df
 12 2017-06-22 14:12:06	0|bitcoin-git|13bitcoin/06master 141d991f6 15Wladimir J. van der Laan: Merge #10642: Remove obsolete _MSC_VER check...
 13 2017-06-22 14:12:50	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10642: Remove obsolete _MSC_VER check (06master...06undefined-msc-ver) 02https://github.com/bitcoin/bitcoin/pull/10642
 14 2017-06-22 14:31:07	0|bitcoin-git|13bitcoin/06master 142c3fc51 15fanquake: [depends] expat 2.2.1
 15 2017-06-22 14:31:07	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/1d991f6f18df...8465b68985f4
 16 2017-06-22 14:31:08	0|bitcoin-git|13bitcoin/06master 148465b68 15Wladimir J. van der Laan: Merge #10628: [depends] expat 2.2.1...
 17 2017-06-22 14:31:55	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10628: [depends] expat 2.2.1 (06master...06expat-2-2-1) 02https://github.com/bitcoin/bitcoin/pull/10628
 18 2017-06-22 14:33:47	0|sdaftuar|sipa: i've finished my functional test for #10148 -- https://github.com/sdaftuar/bitcoin/tree/test-10148
 19 2017-06-22 14:33:51	0|gribble|https://github.com/bitcoin/bitcoin/issues/10148 | Use non-atomic flushing with block replay by sipa · Pull Request #10148 · bitcoin/bitcoin · GitHub
 20 2017-06-22 15:04:21	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10541: Docs:  Update INSTALL.md to add link to build notes (06master...06patch-1) 02https://github.com/bitcoin/bitcoin/pull/10541
 21 2017-06-22 15:17:03	0|bitcoin-git|13bitcoin/06master 14e5c6168 15Pavlos Antoniou: Fix instantiation and array accesses in class base_uint<BITS>...
 22 2017-06-22 15:17:03	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/8465b68985f4...87e69c2549c4
 23 2017-06-22 15:17:04	0|bitcoin-git|13bitcoin/06master 1487e69c2 15Wladimir J. van der Laan: Merge #10530: Fix invalid instantiation and possibly unsafe accesses of array in class base_uint<BITS>...
 24 2017-06-22 15:17:44	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10530: Fix invalid instantiation and possibly unsafe accesses of array in class base_uint<BITS> (06master...06master) 02https://github.com/bitcoin/bitcoin/pull/10530
 25 2017-06-22 15:44:05	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #8831: Replace CWalletDB::ReadKeyValue with CWallet::LoadKeyValue (06master...062016-09-28-cwallet-loadkeyvalue) 02https://github.com/bitcoin/bitcoin/pull/8831
 26 2017-06-22 16:20:15	0|earlz|Why is CheckTransaction in CheckBlock just a normal rejection and not a DoS rejection? Is there some valid case where CheckTransaction can fail and it not be a malicious actor?
 27 2017-06-22 16:23:32	0|bitcoin-git|13bitcoin/06master 146171826 15Alex Morcos: Don't create change at the dust limit, even if it means paying more than expected
 28 2017-06-22 16:23:32	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/87e69c2549c4...209eef60a9ac
 29 2017-06-22 16:23:33	0|bitcoin-git|13bitcoin/06master 14209eef6 15Wladimir J. van der Laan: Merge #9343: Don't create change at dust limit...
 30 2017-06-22 16:23:42	0|sipa|earlz: yes!
 31 2017-06-22 16:23:44	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9343: Don't create change at dust limit (06master...06noneconomicchange) 02https://github.com/bitcoin/bitcoin/pull/9343
 32 2017-06-22 16:23:46	0|sipa|soft forks
 33 2017-06-22 16:24:04	0|sipa|earlz: the peer may not be aware of a softfork that you are aware of
 34 2017-06-22 16:25:14	0|def|https://0x0.st/lFn.txt <- i can't get signrawtransaction to work, any ideas? i know this isn't a support channel but i'm becoming increasingly convinced that this might be a bug in bitcoin-qt
 35 2017-06-22 16:34:01	0|sipa|def: can you show the output you are trying to spend?
 36 2017-06-22 16:35:44	0|earlz|ah, didn't think about softforks
 37 2017-06-22 17:16:58	0|bitcoin-git|[13bitcoin] 15laanwj pushed 3 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/209eef60a9ac...ffce893982d9
 38 2017-06-22 17:16:59	0|bitcoin-git|13bitcoin/06master 141ae86ec 15Karl-Johan Alm: Changed event RAII helper functions to inline to deal with duplicate symbol linker errors.
 39 2017-06-22 17:16:59	0|bitcoin-git|13bitcoin/06master 14fd369d2 15Kalle Alm: Switched httpserver.cpp to use RAII wrapped libevents.
 40 2017-06-22 17:17:00	0|bitcoin-git|13bitcoin/06master 14ffce893 15Wladimir J. van der Laan: Merge #9517: [refactor] Switched httpserver.cpp to use RAII wrapped libevents....
 41 2017-06-22 17:17:09	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #9517: [refactor] Switched httpserver.cpp to use RAII wrapped libevents. (06master...06raii-httpserver) 02https://github.com/bitcoin/bitcoin/pull/9517
 42 2017-06-22 17:33:32	0|bitcoin-git|13bitcoin/06master 148d4dafd 15Andres G. Aragoneses: contrib/verifybinaries: allow filtering by platform...
 43 2017-06-22 17:33:32	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/ffce893982d9...b750b33c3cea
 44 2017-06-22 17:33:33	0|bitcoin-git|13bitcoin/06master 14b750b33 15Wladimir J. van der Laan: Merge #10276: contrib/verifybinaries: allow filtering by platform...
 45 2017-06-22 17:33:52	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10276: contrib/verifybinaries: allow filtering by platform (06master...06filterByPlatformInVerifySh) 02https://github.com/bitcoin/bitcoin/pull/10276
 46 2017-06-22 17:55:00	0|bitcoin-git|13bitcoin/06master 14cf68a48 15Pieter Wuille: Deduplicate addrdb.cpp and use CHashWriter/Verifier
 47 2017-06-22 17:55:00	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/b750b33c3cea...01c4b143a87e
 48 2017-06-22 17:55:01	0|bitcoin-git|13bitcoin/06master 1401c4b14 15Wladimir J. van der Laan: Merge #10248: Rewrite addrdb with less duplication using CHashVerifier...
 49 2017-06-22 17:55:25	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10248: Rewrite addrdb with less duplication using CHashVerifier (06master...06chashverifier) 02https://github.com/bitcoin/bitcoin/pull/10248
 50 2017-06-22 18:05:39	0|bitcoin-git|[13bitcoin] 15TheBlueMatt opened pull request #10651: Verify binaries from bitcoincore.org and bitcoin.org (06master...062017-06-verify-coreorg) 02https://github.com/bitcoin/bitcoin/pull/10651
 51 2017-06-22 18:19:08	0|bitcoin-git|13bitcoin/06master 14999923e 15MarcoFalke: [qa] util: Check return code after closing bitcoind proc...
 52 2017-06-22 18:19:08	0|bitcoin-git|[13bitcoin] 15MarcoFalke pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/01c4b143a87e...4bc853b50fd9
 53 2017-06-22 18:19:09	0|bitcoin-git|13bitcoin/06master 144bc853b 15MarcoFalke: Merge #10636: [qa] util: Check return code after closing bitcoind proc...
 54 2017-06-22 18:19:42	0|bitcoin-git|[13bitcoin] 15MarcoFalke closed pull request #10636: [qa] util: Check return code after closing bitcoind proc (06master...06Mf1706-qaTraceback) 02https://github.com/bitcoin/bitcoin/pull/10636
 55 2017-06-22 18:46:58	0|bitcoin-git|13bitcoin/06master 140a5a6b9 15Dimitris Tsapakidis: Fixed multiple typos...
 56 2017-06-22 18:46:58	0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/4bc853b50fd9...6bef7ca8bc6a
 57 2017-06-22 18:46:59	0|bitcoin-git|13bitcoin/06master 146bef7ca 15Wladimir J. van der Laan: Merge #10633: doc: Fix various typos...
 58 2017-06-22 18:47:33	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10633: doc: Fix various typos (06master...06patch-1) 02https://github.com/bitcoin/bitcoin/pull/10633
 59 2017-06-22 18:57:44	0|bitcoin-git|[13bitcoin] 15laanwj pushed 4 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/6bef7ca8bc6a...8c2098ad1209
 60 2017-06-22 18:57:45	0|bitcoin-git|13bitcoin/06master 14405b86a 15Andrew Chow: Replace lcov -r commands with faster way...
 61 2017-06-22 18:57:45	0|bitcoin-git|13bitcoin/06master 14c8914b9 15Andrew Chow: Have `make cov` optionally include branch coverage statistics...
 62 2017-06-22 18:57:46	0|bitcoin-git|13bitcoin/06master 14d5711f4 15Andrew Chow: Filter subtrees and and benchmarks from coverage report...
 63 2017-06-22 18:58:28	0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10565: [coverage] Remove subtrees and benchmarks from coverage report (06master...06lcov-remove-extra) 02https://github.com/bitcoin/bitcoin/pull/10565
 64 2017-06-22 19:00:41	0|BlueMatt|meeting?
 65 2017-06-22 19:00:46	0|lightningbot|Meeting started Thu Jun 22 19:00:45 2017 UTC.  The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.
 66 2017-06-22 19:00:46	0|lightningbot|Useful Commands: #action #agreed #help #info #idea #link #topic.
 67 2017-06-22 19:00:46	0|wumpus|#startmeeting
 68 2017-06-22 19:00:53	0|achow101|hi
 69 2017-06-22 19:00:56	0|jonasschnelli|hi
 70 2017-06-22 19:00:58	0|wumpus|#bitcoin-core-dev Meeting: wumpus sipa gmaxwell jonasschnelli morcos luke-jr btcdrak sdaftuar jtimon cfields petertodd kanzure bluematt instagibbs phantomcircuit codeshark michagogo marcofalke paveljanik NicolasDorier jl2012 achow101
 71 2017-06-22 19:01:06	0|cfields|hi
 72 2017-06-22 19:01:07	0|wumpus|topics?
 73 2017-06-22 19:01:16	0|sipa|ohai
 74 2017-06-22 19:01:47	0|wumpus|#topic high priority for review
 75 2017-06-22 19:01:49	0|wumpus|#link https://github.com/bitcoin/bitcoin/projects/8
 76 2017-06-22 19:02:11	0|wumpus|any new ones?
 77 2017-06-22 19:02:33	0|BlueMatt|should i give up on #10179 (+ #10286)?
 78 2017-06-22 19:02:36	0|gribble|https://github.com/bitcoin/bitcoin/issues/10179 | Give CValidationInterface Support for calling notifications on the CScheduler Thread by TheBlueMatt · Pull Request #10179 · bitcoin/bitcoin · GitHub
 79 2017-06-22 19:02:37	0|BlueMatt|at least for 15
 80 2017-06-22 19:02:38	0|gribble|https://github.com/bitcoin/bitcoin/issues/10286 | Call wallet notify callbacks in scheduler thread (without cs_main) by TheBlueMatt · Pull Request #10286 · bitcoin/bitcoin · GitHub
 81 2017-06-22 19:02:49	0|sipa|BlueMatt: no
 82 2017-06-22 19:02:52	0|kanzure|hi.
 83 2017-06-22 19:03:12	0|BlueMatt|sipa: well i mean point being that is something that really needs to stew in master for a month (or more) before a release
 84 2017-06-22 19:03:18	0|BlueMatt|so its hitting up against the 15 deadline already
 85 2017-06-22 19:03:22	0|wumpus|why give up?
 86 2017-06-22 19:03:29	0|BlueMatt|not a huge deal to push to 16
 87 2017-06-22 19:03:29	0|instagibbs|hi
 88 2017-06-22 19:03:45	0|BlueMatt|because i dont want to ship 10286 right after merging it
 89 2017-06-22 19:03:57	0|BlueMatt|its a real not-gonna-see-the-issues-unless-its-in-master-for-a-month kinda thing :(
 90 2017-06-22 19:04:26	0|wumpus|that's about the risk - what would be the main gain for merging it for 0.15?
 91 2017-06-22 19:04:47	0|wumpus|eh it's already in high-priority for review category
 92 2017-06-22 19:05:10	0|wumpus|we can't bump it anything higher :p
 93 2017-06-22 19:05:15	0|BlueMatt|well im asking if we should drop it from high priority, unless we still think we can get both in pretty quick i think we should say we wont until its 16
 94 2017-06-22 19:05:18	0|jtimon|I would like review on #8498
 95 2017-06-22 19:05:21	0|gribble|https://github.com/bitcoin/bitcoin/issues/8498 | Optimization: Minimize the number of times it is checked that no money... by jtimon · Pull Request #8498 · bitcoin/bitcoin · GitHub
 96 2017-06-22 19:05:57	0|wumpus|ok, but I mean, what would we lose if we decide to drop it for 0.15. Is there something else would be prioritized before it?
 97 2017-06-22 19:06:17	0|wumpus|I don't think it collides with e.g. multiwallet
 98 2017-06-22 19:06:28	0|BlueMatt|just 10286 - the dont-really-block-on-wallet-for-block-connection thing
 99 2017-06-22 19:06:42	0|BlueMatt|its not itself a huge win, but iterative steps towards better disconnection
100 2017-06-22 19:06:47	0|cfields|BlueMatt: I'll try to get through it today, I've put it off long enough :)
101 2017-06-22 19:06:55	0|BlueMatt|i know ryanofsky wanted it for the separate-process-wallet stuff he was working on
102 2017-06-22 19:07:01	0|sipa|BlueMatt: how about we re-assess it next week?
103 2017-06-22 19:07:06	0|BlueMatt|ok, sounds good
104 2017-06-22 19:07:07	0|jtimon|and #8994 too, not sure which one is more likely to get it
105 2017-06-22 19:07:07	0|wumpus|looks like they're both getting reviews
106 2017-06-22 19:07:09	0|sipa|and hope for review in the mean time
107 2017-06-22 19:07:11	0|gribble|https://github.com/bitcoin/bitcoin/issues/8994 | Testchains: Introduce custom chain whose constructor... by jtimon · Pull Request #8994 · bitcoin/bitcoin · GitHub
108 2017-06-22 19:07:13	0|wumpus|yeah...
109 2017-06-22 19:07:28	0|ryanofsky|yeah i'd prefer 10286 not to be delayed for months
110 2017-06-22 19:08:22	0|jonasschnelli|#10286
111 2017-06-22 19:08:25	0|gribble|https://github.com/bitcoin/bitcoin/issues/10286 | Call wallet notify callbacks in scheduler thread (without cs_main) by TheBlueMatt · Pull Request #10286 · bitcoin/bitcoin · GitHub
112 2017-06-22 19:09:01	0|wumpus|ok, any other topics?
113 2017-06-22 19:09:03	0|jtimon|wumpus: well, maybe none of my prs should be in project 8, I don't know
114 2017-06-22 19:09:28	0|phantomcircuit|pong
115 2017-06-22 19:09:28	0|sipa|wumpus: coin selection / effective feerate / bnb
116 2017-06-22 19:09:32	0|BlueMatt|random PSA: there is now a copy of binaries hosted on https://bitcoincore.org/bin as well as https://bitcoin.org/bin. This will be the new "official" download site (though the bitcoin.org folks said they were gonna keep their mirror up for those who are used to bitcoin.org to not have to hop to another site)
117 2017-06-22 19:09:32	0|wumpus|jtimon: I'm not sure that one warrants extra priority pre-0.15
118 2017-06-22 19:10:06	0|wumpus|sipa: that's one topic or three?
119 2017-06-22 19:10:11	0|sipa|wumpus: one
120 2017-06-22 19:10:18	0|wumpus|#topic coin selection / effective feerate / bnb
121 2017-06-22 19:10:42	0|sipa|we have a number of open PRs (and one just merged I think) that interact with coin selection
122 2017-06-22 19:10:45	0|jtimon|wumpus: egoistically for elements project, it would be very nice to have #8994 before 0.15 for next elements rebase (not that bitcoin should care)
123 2017-06-22 19:10:47	0|gribble|https://github.com/bitcoin/bitcoin/issues/8994 | Testchains: Introduce custom chain whose constructor... by jtimon · Pull Request #8994 · bitcoin/bitcoin · GitHub
124 2017-06-22 19:11:23	0|sipa|#10637 #10360 #10333
125 2017-06-22 19:11:25	0|gribble|https://github.com/bitcoin/bitcoin/issues/10360 | [WIP] [Wallet] Target effective value during transaction creation by instagibbs · Pull Request #10360 · bitcoin/bitcoin · GitHub
126 2017-06-22 19:11:25	0|jtimon|regarding #8498 it's an optimization (perhaps again "not worth it", like #10339)
127 2017-06-22 19:11:28	0|gribble|https://github.com/bitcoin/bitcoin/issues/10637 | Coin Selection with Murchs algorithm by achow101 · Pull Request #10637 · bitcoin/bitcoin · GitHub
128 2017-06-22 19:11:29	0|gribble|https://github.com/bitcoin/bitcoin/issues/10333 | [wallet] fee fixes: always create change, adjust value, and p… by instagibbs · Pull Request #10333 · bitcoin/bitcoin · GitHub
129 2017-06-22 19:11:31	0|gribble|https://github.com/bitcoin/bitcoin/issues/8498 | Optimization: Minimize the number of times it is checked that no money... by jtimon · Pull Request #8498 · bitcoin/bitcoin · GitHub
130 2017-06-22 19:11:33	0|gribble|https://github.com/bitcoin/bitcoin/issues/10339 | Optimization: Calculate block hash less times by jtimon · Pull Request #10339 · bitcoin/bitcoin · GitHub
131 2017-06-22 19:12:00	0|sipa|are instagibbs, achow101, ... here?
132 2017-06-22 19:12:03	0|instagibbs|I'm not sure many are even close to merge.
133 2017-06-22 19:12:05	0|instagibbs|yeah
134 2017-06-22 19:12:11	0|sipa|i agree
135 2017-06-22 19:12:17	0|achow101|i'm here
136 2017-06-22 19:12:18	0|gmaxwell|Hellow meeting.
137 2017-06-22 19:12:19	0|instagibbs|10333 is closest, but needs more revision
138 2017-06-22 19:12:23	0|sipa|but i think there are two approaches to follow here
139 2017-06-22 19:12:37	0|wumpus|jtimon: I really think we should have #8994, but it seems to collide with a lot of other things
140 2017-06-22 19:12:40	0|gribble|https://github.com/bitcoin/bitcoin/issues/8994 | Testchains: Introduce custom chain whose constructor... by jtimon · Pull Request #8994 · bitcoin/bitcoin · GitHub
141 2017-06-22 19:13:15	0|sipa|one is to aim for overhauling coin selection... which will take a long time, and probably should be merged early in a cycle, so not for 0.15
142 2017-06-22 19:13:28	0|gmaxwell|10333 needs to get in (in some form) because it's an important fix.
143 2017-06-22 19:13:46	0|instagibbs|I can do suggested change that gmaxwell gave, which I noted.
144 2017-06-22 19:13:51	0|sipa|another is to make changes that 1) fix existing bugs and 2) work as a preprocessing step (in the form "let's see if algorithm X finds a good solution... otherwise fallback to what exists"
145 2017-06-22 19:14:11	0|wumpus|agree with doing coin selection changes early in a release cycle
146 2017-06-22 19:14:16	0|jtimon|wumpus: I guess that will wait forever then, previous versions were closed because they "collided with mempool/fee stuff", like more than 1 year ago? I'm happy to help people do the trivial rebases for people if that's the problem
147 2017-06-22 19:14:16	0|sipa|if 10333 is considered a bug fix, perhaps it should be prioritized for 0.15?
148 2017-06-22 19:14:35	0|jtimon|anyway, topic changed...
149 2017-06-22 19:14:38	0|gmaxwell|10333 should do nothing other than prevent serious overpayment in some corner cases.
150 2017-06-22 19:14:45	0|instagibbs|sipa, It's marked as such, but if people deem it higher priority I'll make it one
151 2017-06-22 19:15:06	0|gmaxwell|(at least once it's twiddled some)
152 2017-06-22 19:15:38	0|sipa|would 10333 + 10637  be reasonable to aim for in 0.15?
153 2017-06-22 19:15:43	0|instagibbs|It needs rebasing likely due to recent dust change merge
154 2017-06-22 19:15:48	0|instagibbs|#10637
155 2017-06-22 19:15:50	0|gribble|https://github.com/bitcoin/bitcoin/issues/10637 | Coin Selection with Murchs algorithm by achow101 · Pull Request #10637 · bitcoin/bitcoin · GitHub
156 2017-06-22 19:16:03	0|wumpus|I don't think so
157 2017-06-22 19:16:23	0|instagibbs|latter seems a stretch imo, as great as it would be.
158 2017-06-22 19:16:24	0|wumpus|#10637 would be better for 0.16 IMO
159 2017-06-22 19:16:26	0|gribble|https://github.com/bitcoin/bitcoin/issues/10637 | Coin Selection with Murchs algorithm by achow101 · Pull Request #10637 · bitcoin/bitcoin · GitHub
160 2017-06-22 19:16:30	0|sipa|to clarify, 10637 is just a preprocessing step that makes it much more likely to find a match without change, reducing UTXO set size
161 2017-06-22 19:16:32	0|wumpus|the other one is already marked for 0.15
162 2017-06-22 19:16:38	0|sipa|if it fails, it falls back to what we have
163 2017-06-22 19:16:46	0|achow101|I don't think 10637 would be good for 0.15. I haven't entirely made sure that it doesn't do anything stupid
164 2017-06-22 19:16:53	0|instagibbs|sipa, if the code is correct, sure, earlier it wasn't (I'd have to do lots of review to make sure)
165 2017-06-22 19:16:54	0|sipa|ok
166 2017-06-22 19:16:58	0|sipa|instagibbs: of course
167 2017-06-22 19:17:02	0|gmaxwell|I am not in favor of takin total overhaul as a general strategy. The problem is that each logical change has a complex 'whole system impact' question connected to it, which is really hard to reasona about for "hay guies, I replaced the whole thing!"  So I would much rather see a series of 'obviously sane' changes followed by "I reworked it to make the code clearer with no substantive change in b
168 2017-06-22 19:17:06	0|wumpus|achow101: agree, no need to hurry it just to make a release
169 2017-06-22 19:17:08	0|gmaxwell|ehavior".
170 2017-06-22 19:17:08	0|instagibbs|it's a nasty web of code, not his fault, just a fact
171 2017-06-22 19:17:36	0|sipa|ok, so let's aim for all coin selection changes in 0.16
172 2017-06-22 19:17:40	0|sipa|apart from bug fixes
173 2017-06-22 19:17:48	0|wumpus|the problem is that at some point the code is so convoluted that no option remains but 'redesign the whole thing'
174 2017-06-22 19:17:58	0|jtimon|yeah, I've been trying to do something like #8494 since at least   Jun 10, 2015, but I think actually earlier
175 2017-06-22 19:17:59	0|gmaxwell|:( is it so late to the end of 0.15 that we're slipping things out of it?
176 2017-06-22 19:18:00	0|gribble|https://github.com/bitcoin/bitcoin/issues/8494 | [init, wallet] ParameterInteraction() iff wallet enabled by MarcoFalke · Pull Request #8494 · bitcoin/bitcoin · GitHub
177 2017-06-22 19:18:08	0|wumpus|most of that has been replaced by now, but the coin selection code is arguably some of that
178 2017-06-22 19:18:21	0|sipa|gmaxwell: i wish you were right, but i believe at some point we'll need to bite the bullet
179 2017-06-22 19:18:39	0|sipa|though a number of steps can be taken before that point
180 2017-06-22 19:18:41	0|wumpus|gmaxwell: well it starts to be important, even now, to prioritize things
181 2017-06-22 19:18:51	0|instagibbs|With BnB in place, lays decent groundwork for more extensions
182 2017-06-22 19:18:53	0|gmaxwell|wumpus: will then we stay where we've been stuck for years then?  I think it improved a lot, changes we made in 0.14 cleaned up CreateTransaction a lot.
183 2017-06-22 19:19:31	0|jtimon|gmaxwell: agree on that way of doing big refactors, that's the sanest way to review them at least
184 2017-06-22 19:19:32	0|instagibbs|making sane change-making policy could come next
185 2017-06-22 19:19:46	0|instagibbs|sane steps exist i think
186 2017-06-22 19:21:34	0|gmaxwell|sipa: obviously it needs to be reworked, but I cannot review something that is just "here is replacement code that does everything subtly differently" against threats like "will this cause runaway upbidding" or "will this potentially cause the utxo set size to skyrocket relative to the current code" or "will this trash user privacy" (well hard do to worse than the current on that mark. :P).  But
187 2017-06-22 19:21:40	0|gmaxwell|I can review things like instagibbs's effective rate change against those criteria.
188 2017-06-22 19:22:18	0|gmaxwell|I think it's important to seperate intentional behavioral changes from implementation structure.
189 2017-06-22 19:22:18	0|jtimon|so why not try to get merged 10333 first which seems the simpler to review and then revisit the other 2 ?
190 2017-06-22 19:22:36	0|gmaxwell|jtimon: instagibbs has changes he needs to make.
191 2017-06-22 19:22:41	0|gmaxwell|And sure.
192 2017-06-22 19:22:48	0|sipa|gmaxwell: i'm worried about something like 10360 to cause unintended runaway behaviour due to some interaction as well
193 2017-06-22 19:22:50	0|wumpus|jtimon: yes
194 2017-06-22 19:23:08	0|sipa|gmaxwell: even if it looks perfectly fine by all metrics we considered
195 2017-06-22 19:23:18	0|gmaxwell|Though if integrated correctly (not saying it is yet) 10637 is just a preprocessing stage that can't make things worse. (not saying that it's yet integrated correctly).
196 2017-06-22 19:23:30	0|instagibbs|Action item is me incorporating suggestion to 10333 make more robust and beg for review again here
197 2017-06-22 19:23:47	0|wumpus|so should we add 10333 to high priority for review?
198 2017-06-22 19:24:40	0|achow101|imo, yes
199 2017-06-22 19:25:02	0|gmaxwell|sipa: I don't think it looks fine, I think it fixes a flaw we depend on due to a ~total lack of other mechenisms to sweep txins.
200 2017-06-22 19:25:55	0|sipa|gmaxwell: yes, but i can't reason about its total effect
201 2017-06-22 19:26:17	0|gmaxwell|(it's easy to show that 10360 will abandon more txouts than current code; and also the current code will _create_ txouts that an immediate second run under that patch would not consider spending)
202 2017-06-22 19:26:17	0|sipa|i like the change as such, but who knows what interaction we missed
203 2017-06-22 19:26:59	0|gmaxwell|So the only thing I don't know if the effect would be castrophic or just merely not perfect.
204 2017-06-22 19:26:59	0|sipa|anyway, probably a discussion for later
205 2017-06-22 19:27:11	0|sipa|yes, i think 10333 should be prioritized
206 2017-06-22 19:27:18	0|gmaxwell|ack on 10333.
207 2017-06-22 19:27:44	0|wumpus|ok, added
208 2017-06-22 19:28:20	0|gmaxwell|sipa: I think a simple invarient is that we must spend everything we create at least under more or less stationary conditions. Anything less leads to runaway utxo set growth (though perhaps slowly...).
209 2017-06-22 19:29:02	0|gmaxwell|but thats a minimum and perhaps not sufficient. But still 10360 fails it.
210 2017-06-22 19:29:50	0|gmaxwell|to be fair, it's not 10360's fault so much as that we only pass that criteria now due to bugs that 10360 fixes.
211 2017-06-22 19:30:31	0|sipa|other topics?
212 2017-06-22 19:31:06	0|cfields|quick topic suggestion: add "strongly discourage/forbit default function arguments" to the style guide?
213 2017-06-22 19:31:29	0|luke-jr|cfields: eh, I don't think that's a good idea
214 2017-06-22 19:31:31	0|wumpus|#topic  add "strongly discourage/forbit default function arguments" to the style guide
215 2017-06-22 19:31:32	0|cfields|*forbid. forbitting would be too much :p
216 2017-06-22 19:31:33	0|BlueMatt|not always
217 2017-06-22 19:31:38	0|wumpus|f-orbitting
218 2017-06-22 19:31:48	0|gmaxwell|default arguments are a footgun for sure, can we articluate where they are okay-- if they aren't forbidden?
219 2017-06-22 19:31:50	0|sipa|f(ire from) orbit?
220 2017-06-22 19:31:53	0|luke-jr|the important thing should be making sure the behaviour doesn't change, when func signatures change
221 2017-06-22 19:31:53	0|wumpus|no, I don't think that's a good rule in general either
222 2017-06-22 19:31:58	0|BlueMatt|if theres 20 arguments to the function or its a big many-callers function, maybe
223 2017-06-22 19:32:12	0|cfields|gmaxwell: yes, i think that's the discussion I was looking for.
224 2017-06-22 19:32:25	0|luke-jr|"if code calling it before compiles with the new signature, it must behave the same"
225 2017-06-22 19:32:25	0|wumpus|if there's 20 arguments to a function there's something wrong in general
226 2017-06-22 19:32:31	0|BlueMatt|but depends on where, eg I think https://github.com/bitcoin/bitcoin/pull/10179/commits/dd53c6f0a3f9fa34b0d8d0f6b9a3e4df51a3eda7 is probably fine
227 2017-06-22 19:32:32	0|wumpus|please make a rule not to have 20 arguments please
228 2017-06-22 19:32:35	0|wumpus|certainly not booleans :(
229 2017-06-22 19:32:39	0|BlueMatt|(adds a default arg to CScheduler::schedule())
230 2017-06-22 19:32:45	0|BlueMatt|wumpus: lol, yes, indeed
231 2017-06-22 19:32:48	0|sipa|"It is strongly encouraged to have 19 arguments to functions."
232 2017-06-22 19:32:50	0|wumpus|Foo(false, true, false, true, false, true, true)
233 2017-06-22 19:33:09	0|BlueMatt|wumpus: you forgot the NULL for good measure which may or may not be a pointer :p
234 2017-06-22 19:33:16	0|wumpus|BlueMatt: oh yes
235 2017-06-22 19:33:42	0|wumpus|default arguments are mostly good for one thing: transitions without touching all the code
236 2017-06-22 19:33:44	0|gmaxwell|I think the default arg is okay when going from 0 to 1 arguments to add a flag, for example.
237 2017-06-22 19:33:56	0|sipa|well i think defaults arguments are often used to reduce code impact of a patch... adding an optional argument at the end (especially directly after a non-optional one, and with a type incompatible with the first optional one if any) is perfectly safe and can strongly reduce the amount of code touched
238 2017-06-22 19:34:13	0|sipa|the same can be achieved by adding a fewer-arguments wrapper, though
239 2017-06-22 19:34:18	0|wumpus|e.g. if you add an argument to a function that's called from 400 places, it's usually better to add a default argument, at least temporarily
240 2017-06-22 19:34:50	0|wumpus|right. I think that's a valid use.
241 2017-06-22 19:34:59	0|sipa|i like the approach of creating a new function (with more args, and perhaps even a different name), and changing the old one to be a wrapper around the new one
242 2017-06-22 19:35:08	0|luke-jr|indeed, I have been rebasing the rescanblockchain RPC, and this is needed to minimise the conflicts
243 2017-06-22 19:35:19	0|gmaxwell|The defaults lead to negative interactions with the fact that arguments aren't named.  I like sipa's suggestion.
244 2017-06-22 19:35:23	0|wumpus|well if it has the same name there is no effective difference
245 2017-06-22 19:35:28	0|luke-jr|(it adds an argument for a stop-scanning index)
246 2017-06-22 19:35:34	0|BlueMatt|sipa: thats how you end up with AcceptToMemoryPoolWorker(tx, true, false, false, true, NULL, (default) false)
247 2017-06-22 19:35:35	0|BlueMatt|:(
248 2017-06-22 19:35:46	0|gmaxwell|wumpus: because when you make further additions to the arguments, you don't mess things up.
249 2017-06-22 19:35:53	0|sipa|that wrapper approach also is more restrictive: it _just_ allows the exact old use case, and a new one - not a variety of combinations based on multiple optional args
250 2017-06-22 19:36:11	0|wumpus|absent argument naming, I like enums better than booleans
251 2017-06-22 19:36:24	0|wumpus|anyhow, no, I don't think we should add a general rule about this
252 2017-06-22 19:36:29	0|gmaxwell|We had a near consensus fault in the main split as a result of something related to this. IIRC.
253 2017-06-22 19:36:30	0|wumpus|just pay attention at reviews to the specific case
254 2017-06-22 19:36:50	0|cfields|ok
255 2017-06-22 19:36:55	0|wumpus|not everything has to be spelled out in the style guide, that just makes for laziness *we've checked all the checkboxes*
256 2017-06-22 19:37:06	0|gmaxwell|right
257 2017-06-22 19:37:24	0|sipa|also, i wish there was a sed-like took that understood our AST a bit better, so you could add a new argument to a function everywhere
258 2017-06-22 19:37:38	0|sipa|but regexps are fundamentally not strong enough to do that :(
259 2017-06-22 19:37:43	0|wumpus|if only c++ was easier to parse...
260 2017-06-22 19:37:53	0|gmaxwell|though I still think sipa's suggestion is good: if you need to introduce an argument to a function called in many places, wrap it with something that provides the default. Then over time we change call sites to call the new function.
261 2017-06-22 19:37:55	0|luke-jr|at least it's not Perl
262 2017-06-22 19:37:58	0|wumpus|you can do things like that using python + clang, but it's pretty involved, and not fun
263 2017-06-22 19:38:29	0|jtimon|ack on strongly discouraging optional arguments, we have way too many and some are really stupid IMO (ehem, ehem #9717 )
264 2017-06-22 19:38:31	0|gribble|https://github.com/bitcoin/bitcoin/issues/9717 | Pow: Remove fCheckPOW from CheckBlockHeader by jtimon · Pull Request #9717 · bitcoin/bitcoin · GitHub
265 2017-06-22 19:38:34	0|gmaxwell|then we don't end up with function signatures that are full of a mix of default and non-default arguments.
266 2017-06-22 19:38:53	0|wumpus|even if you have a c++ parser you get such a lot of information into your mutation function, so many cases to handle
267 2017-06-22 19:39:34	0|wumpus|gmaxwell: I fully agree, just don't think it makes sense as a rule
268 2017-06-22 19:39:40	0|gmaxwell|ACK
269 2017-06-22 19:40:09	0|jtimon|you can also have simpler wrappers on functions with less parameters and "default values" instead of optional arguments
270 2017-06-22 19:40:23	0|wumpus|yes
271 2017-06-22 19:40:32	0|gmaxwell|yea, thats what sipa was just saying.
272 2017-06-22 19:40:34	0|sipa|jtimon: that's what i was suggestion
273 2017-06-22 19:40:53	0|jtimon|sipa: sorry, catching up...
274 2017-06-22 19:41:00	0|wumpus|though the advantage of default arguments is that they're self-documenting in the function signature
275 2017-06-22 19:42:09	0|wumpus|anyhow, more topics?
276 2017-06-22 19:42:23	0|sipa|do we want to bring up multiwallet API again?
277 2017-06-22 19:42:26	0|jonasschnelli|yes
278 2017-06-22 19:42:30	0|gmaxwell|I don't think I've personally found that too useful except for functions with just a couple arguments with one or two simple flags.  FrobThing(&thing,FrobHarder=true).
279 2017-06-22 19:42:34	0|wumpus|#topic multiwallet API
280 2017-06-22 19:42:40	0|jonasschnelli|can we decide what we want to use? path or query string and or versioning?
281 2017-06-22 19:42:46	0|wumpus|path
282 2017-06-22 19:42:50	0|jonasschnelli|I think /v1/wallet/<walletid> seems ideal
283 2017-06-22 19:43:01	0|gmaxwell|can we at least put a version in first?
284 2017-06-22 19:43:01	0|wumpus|we've decided that last time, that wallet will be based on endpoints
285 2017-06-22 19:43:02	0|luke-jr|query string <.<
286 2017-06-22 19:43:13	0|jonasschnelli|gmaxwell: yes. See above
287 2017-06-22 19:43:19	0|sipa|luke-jr: i've been thinking about the advantages and disadvantages of both
288 2017-06-22 19:43:24	0|jonasschnelli|luke-jr: what advantages do you see with query strings?
289 2017-06-22 19:43:26	0|wumpus|oh sure /v1/something is fine with me
290 2017-06-22 19:43:44	0|luke-jr|jonasschnelli: it's not hacking the path into a parameter? it's extensible?
291 2017-06-22 19:43:45	0|wumpus|if we can use /v1 as the general node endpoint hten
292 2017-06-22 19:43:55	0|sipa|query string has the advantage that it's more flexible - there could be multiple things to direct the RPC, and they don't need to be in a hierarchical pattern
293 2017-06-22 19:43:58	0|wumpus|and /v1/walletname for the wallet
294 2017-06-22 19:44:06	0|wumpus|don't use query strings with POST
295 2017-06-22 19:44:07	0|wumpus|just don't
296 2017-06-22 19:44:10	0|jonasschnelli|luke-jr: you can still add a query string later if you need non-hirarichal inputs later
297 2017-06-22 19:44:11	0|gmaxwell|path seems fine to me, so long as there is a version, but I'm clueless.  I do have some questions though.
298 2017-06-22 19:44:20	0|jonasschnelli|what wumpus sais
299 2017-06-22 19:44:38	0|wumpus|POST has always been used with the idea that the parameters are in the payload
300 2017-06-22 19:44:47	0|wumpus|POST should not have URI parameters
301 2017-06-22 19:44:49	0|jonasschnelli|wumpus: exactly
302 2017-06-22 19:44:51	0|ryanofsky|i think query strings are analogous to command line options, paths are analogous to positional command line arguments
303 2017-06-22 19:44:52	0|sipa|however, most things that would go into the path/query string as well, can just become RPC arguments as well
304 2017-06-22 19:45:05	0|wumpus|if you confuse them, it will be hard to use from some languages
305 2017-06-22 19:45:09	0|sipa|i think that perhaps the wallet name is different, in that it's actually a different "module" you're sending it to
306 2017-06-22 19:45:19	0|jonasschnelli|sipa: indeed... but the /wallet/ endpoint could have a different rpc server once
307 2017-06-22 19:45:23	0|ryanofsky|options are better for non required things that tweak the current operation, arguments are better for required values that determine operation
308 2017-06-22 19:45:25	0|gmaxwell|I think it's likely in the future that we'll support doing this "create transaction in wallet A but also able using coins from wallet B,C"-- seems clear to me how this could work in the GUI.  How could we RPC call that?
309 2017-06-22 19:45:32	0|sipa|so i think my preference is path - and for things that don't fit in the normal hierarchical structure, use named RPC arguments
310 2017-06-22 19:45:40	0|wumpus|oh no... not commands from multiple wallets
311 2017-06-22 19:45:59	0|sipa|gmaxwell: ugh...
312 2017-06-22 19:46:00	0|wumpus|can we at least agree on one object to apply commands too
313 2017-06-22 19:46:04	0|luke-jr|BTW, did we consider a generic JSON-RPC "wallet" named param?
314 2017-06-22 19:46:08	0|gmaxwell|it's not really 'from multiple wallets'.
315 2017-06-22 19:46:13	0|sipa|luke-jr: i suggested that before, yes
316 2017-06-22 19:46:23	0|wumpus|gmaxwell: in that case you should just use the raw transactions api
317 2017-06-22 19:46:35	0|wumpus|you can listunspent on multiple wallets, then use thei r utxos
318 2017-06-22 19:46:37	0|sipa|luke-jr: i'd be fine with it, except it's less compatible with a future change that moves it to a different process (which will necessarily have a new endpoint)
319 2017-06-22 19:46:46	0|jonasschnelli|luke-jr: generic wallet named parameter seems fine. Is it mixable with the non-named parameter?
320 2017-06-22 19:46:52	0|wumpus|no need to do some obscure voodoo calling a method on multiple objects on the same time
321 2017-06-22 19:46:54	0|gmaxwell|in any case, without that you are forced to make idiotic pay wallet A from wallet B transactions just to make a large payment.  (or as wumpus notes, do something with raw transactions)
322 2017-06-22 19:46:56	0|jonasschnelli|I guess we then would only allow wallet selecting with name bases params?
323 2017-06-22 19:46:58	0|wumpus|that way madness lies
324 2017-06-22 19:47:07	0|luke-jr|sipa: ah, right
325 2017-06-22 19:47:34	0|sipa|so i think this guideline may help: arguments that select something that may in the future move to another process, should go into the path
326 2017-06-22 19:47:37	0|gmaxwell|wumpus: fair enough that you wouldn't want to do a ?wallet=a&wallet=b  voodoo in any case there, so no interaction with this question.
327 2017-06-22 19:47:40	0|sipa|other things should be RPC named args
328 2017-06-22 19:47:41	0|jonasschnelli|I guess endpoints will also make process separation simpler
329 2017-06-22 19:47:48	0|sipa|jonasschnelli: that's what i was saying
330 2017-06-22 19:48:11	0|wumpus|sipa: +1
331 2017-06-22 19:48:20	0|jonasschnelli|Okay. Lets then go for /v1/wallet/walletID for now
332 2017-06-22 19:48:28	0|wumpus|yes
333 2017-06-22 19:48:31	0|sipa|ack
334 2017-06-22 19:48:33	0|luke-jr|v0? :P
335 2017-06-22 19:48:39	0|jonasschnelli|WalletID is the wallet filename for now... not sure if this is a problem
336 2017-06-22 19:48:45	0|sipa|luke-jr: v0 already exists :p
337 2017-06-22 19:48:47	0|jonasschnelli|v0 is not what users are expecting..
338 2017-06-22 19:48:48	0|wumpus|no, v1, v0 is what we had before :)
339 2017-06-22 19:48:55	0|luke-jr|but this isn't changing the API
340 2017-06-22 19:49:03	0|sipa|no, it's creating a new API
341 2017-06-22 19:49:05	0|jonasschnelli|it's just a prevention for future api changes
342 2017-06-22 19:49:10	0|wumpus|yes.
343 2017-06-22 19:49:12	0|gmaxwell|adding /wallet/ is a new API.
344 2017-06-22 19:49:20	0|gmaxwell|even though its a trivial one.
345 2017-06-22 19:49:33	0|wumpus|I think it's good to add it just in case, we should be able to use /v1 as endpoint for non-wallet methods
346 2017-06-22 19:49:47	0|luke-jr|oh, that's a point: how do we specify "no wallet"?
347 2017-06-22 19:49:47	0|wumpus|and / for both wallet methos and non-wallet methods (wallet will use 'the default wallet')
348 2017-06-22 19:49:55	0|jonasschnelli|Yes. /v1 should do the same / (selecting the default wallet)
349 2017-06-22 19:49:56	0|gmaxwell|oh nice, though if we're going to do that, we need to ban wallet methods on /v1/  right away.
350 2017-06-22 19:50:04	0|wumpus|gmaxwell: yes please
351 2017-06-22 19:50:10	0|sipa|how about we also add /v1/node for all non-wallet RPCs?
352 2017-06-22 19:50:31	0|wumpus|/v1 should do away with wallet methods, / should have them for backward compat
353 2017-06-22 19:50:36	0|sipa|yes
354 2017-06-22 19:50:37	0|jonasschnelli|Wait, do we want to ban non wallet methods sent to /v1/wallet/?
355 2017-06-22 19:50:40	0|jtimon|wumpus: why not use query string with POST? we do everything with POST in the rpc, there's no GET, perhaps a link I could read?
356 2017-06-22 19:50:42	0|wumpus|jonasschnelli: yes
357 2017-06-22 19:50:44	0|sipa|jonasschnelli: yes
358 2017-06-22 19:50:47	0|gmaxwell|well we have node rpcs but we also have pure function rpcs.   though I don't know how good it is to bother callers with the fine details of how an rpc is implemented.
359 2017-06-22 19:50:50	0|luke-jr|:|
360 2017-06-22 19:50:54	0|jonasschnelli|Okay. That makes it a bit more complex. :)
361 2017-06-22 19:50:59	0|jonasschnelli|And not user friendly.
362 2017-06-22 19:51:04	0|jtimon|oh, the params after ?, right, sorry
363 2017-06-22 19:51:08	0|sipa|jonasschnelli: how so?
364 2017-06-22 19:51:14	0|instagibbs|we should just ban all calls, start fresh :P
365 2017-06-22 19:51:18	0|luke-jr|sipa: can't just change the endpoint for existing software..
366 2017-06-22 19:51:23	0|jonasschnelli|what about createrawtransaction?
367 2017-06-22 19:51:33	0|sipa|luke-jr: then use the old API, which keeps working
368 2017-06-22 19:51:40	0|luke-jr|sipa: then you can't select the wallet
369 2017-06-22 19:51:54	0|wumpus|jonasschnelli: well... the methods thaat have both wallet and non-wallet functionality are obviously special here
370 2017-06-22 19:51:55	0|jonasschnelli|switch over to /wallet when you call fundrawtransaction and back to /node when using signrawtransactionwithkey?
371 2017-06-22 19:51:55	0|jtimon|sipa: most things? all things I believe, even for GET
372 2017-06-22 19:52:06	0|wumpus|jonasschnelli: they could be on both, I don't care
373 2017-06-22 19:52:08	0|gmaxwell|having them track that "x is a wallet rpc" vs "y is a node" rpc is already asking a lot.  and following this there should be something for pure rpcs that interact not with the node state or wallet. and so on.
374 2017-06-22 19:52:18	0|gmaxwell|I guess I'm raising the same concern as jonasschnelli
375 2017-06-22 19:52:29	0|sipa|i see there is a usability issue in doing so
376 2017-06-22 19:52:29	0|wumpus|gmaxwell: it's a good preparation for beginning to split off the wallet though
377 2017-06-22 19:52:37	0|jonasschnelli|Not sure if we can/should already seperate the calls in endpoints
378 2017-06-22 19:52:38	0|wumpus|gmaxwell: when the wallet would be a separate process it also won't have the node methods
379 2017-06-22 19:52:58	0|gmaxwell|Yes, and I think the wallet split is reasonable, I'm cautioning about what happens if you continue the logic.
380 2017-06-22 19:53:01	0|jonasschnelli|Once we have process separation, then we would need it. Yes.
381 2017-06-22 19:53:03	0|wumpus|also it's a bit starnge to have the same non-wallet methods aliased for every wallet
382 2017-06-22 19:53:06	0|jonasschnelli|We could warn in the release notes.
383 2017-06-22 19:53:11	0|wumpus|aliasing is usually a bad idea
384 2017-06-22 19:53:35	0|luke-jr|I suppose if people want backward compatibility, they can just user per-username default wallets, and have multiple users
385 2017-06-22 19:53:56	0|gmaxwell|Maybe there really are only three kinds:  Things that talk to the node, things that talk to a wallet (and maybe also a node),  and  things that are pure functions.
386 2017-06-22 19:54:04	0|wumpus|what makes /v1/wallet/mywallet getnetworkinfo different from /v1/otherwallet netnetworkinfo
387 2017-06-22 19:54:14	0|wumpus|none has anything to do with wallets
388 2017-06-22 19:54:21	0|wumpus|gmaxwell: yes, those three kinds exist
389 2017-06-22 19:54:25	0|jonasschnelli|Yes. Agree that it looks bad.
390 2017-06-22 19:54:32	0|sipa|can you give an example of the middle one?
391 2017-06-22 19:54:42	0|wumpus|gmaxwell: we've been trying to get rid of " things that talk to a wallet (and maybe also a node)"
392 2017-06-22 19:54:43	0|sipa|oh, signrawtransaction needing UTXO access
393 2017-06-22 19:54:51	0|jonasschnelli|hm... wumpus: not sure. The wallet could have it's own network rules in future
394 2017-06-22 19:54:52	0|wumpus|sipa: getinfo
395 2017-06-22 19:55:01	0|sipa|wumpus: i don't care about getinfo :)
396 2017-06-22 19:55:11	0|gmaxwell|it's a little unfortunate to expose the three kinds to users though.  decoderawtransaction and createrawtransaction are pure, signrawtransaction is not.
397 2017-06-22 19:55:13	0|wumpus|jonasschnelli: sure, then it could have a *different* getnetworkinfo
398 2017-06-22 19:55:32	0|wumpus|sipa: there are more, I've listed them in some issue, let me see
399 2017-06-22 19:55:59	0|jonasschnelli|I don't think it's wrong to have node calls in /v1/wallet/mywallet .. it allows us to – in theory – have different peering for different wallets. Also chaintips can be different.
400 2017-06-22 19:56:05	0|sipa|i think i'm fine with making v1 support all non-deprecated non-wallet RPCs as well
401 2017-06-22 19:56:05	0|wumpus|sipa: #7965
402 2017-06-22 19:56:06	0|gribble|https://github.com/bitcoin/bitcoin/issues/7965 | Remaining instances of ENABLE_WALLET in `libbitcoin_server.a` · Issue #7965 · bitcoin/bitcoin · GitHub
403 2017-06-22 19:56:08	0|gmaxwell|I think a split on anything other than wallet vs non-wallet basically exposes implementation details to users.
404 2017-06-22 19:56:20	0|bitcoin-git|[13bitcoin] 15TheBlueMatt opened pull request #10652: Small step towards demangling cs_main from CNodeState (06master...062017-06-cnodestateaccessors-1) 02https://github.com/bitcoin/bitcoin/pull/10652
405 2017-06-22 19:56:24	0|gmaxwell|jonasschnelli: those don't sound like very interesting things to accomplish. IMO.
406 2017-06-22 19:56:26	0|luke-jr|I think we're adding too much complexity to make 0.15 :<
407 2017-06-22 19:56:49	0|wumpus|"RPC still has some calls that vary depending on wallet support. We should split these up. This is the more annoying part as it will involve API changes. No non-wallet RPC call should make an assumption about "a wallet"."
408 2017-06-22 19:56:53	0|sipa|can we please at least remove getinfo from v1?
409 2017-06-22 19:56:58	0|BlueMatt|YES
410 2017-06-22 19:57:00	0|wumpus|YES
411 2017-06-22 19:57:05	0|gmaxwell|(and by wallet vs non-wallet, I mean a logical split where the address and transaction manipulating functions which are technically pure would still be wallet functions)
412 2017-06-22 19:57:26	0|jonasschnelli|Okay. Should the call split be in the same PR that introduces the endpoint?
413 2017-06-22 19:57:36	0|wumpus|jonasschnelli: not necessarily, small steps are fine
414 2017-06-22 19:57:38	0|sipa|jonasschnelli: i don't care
415 2017-06-22 19:57:56	0|jonasschnelli|I think it may get pretty big.
416 2017-06-22 19:57:58	0|gmaxwell|we shouldn't ship a release with /v1/ though that has a lot of calls we intend to remove, however.
417 2017-06-22 19:57:59	0|jonasschnelli|And ideally the endpoint is in 0.15 (otherwise multiwallet is not really useful)
418 2017-06-22 19:58:01	0|wumpus|at this point it's better to make progress at all
419 2017-06-22 19:58:03	0|luke-jr|let's get rid of BTC amounts while we're at it! :x
420 2017-06-22 19:58:05	0|sipa|gmaxwell: agree
421 2017-06-22 19:58:27	0|wumpus|gmaxwell: if it's in a release it means it needs to be /v2
422 2017-06-22 19:58:30	0|sipa|jonasschnelli: we have time, i think
423 2017-06-22 19:58:32	0|wumpus|gmaxwell: simple as that
424 2017-06-22 19:58:39	0|gmaxwell|luke-jr: I'd like that but switching to integers could be a v2 thing too...
425 2017-06-22 19:58:45	0|wumpus|sigh
426 2017-06-22 19:58:58	0|sipa|wumpus: sure; but i think we can merge endpoints now, and do another PR before 0.15 to remove some of the unnecessary stuff from the wallet endpoints
427 2017-06-22 19:59:00	0|gmaxwell|wumpus: well will we want to continue supporting v1 for a long time in th case?
428 2017-06-22 19:59:01	0|jtimon|I would not apps anything in the uri, just /v1/wallet/ with {"wallet": "mywalley", "otherparam" : "other value"}
429 2017-06-22 19:59:30	0|sipa|jtimon: the downside of that is that doesn't prepare downstream apps well for a future process split
430 2017-06-22 19:59:37	0|jonasschnelli|jtimon: having it in the JSON layer would make process seperation harder...
431 2017-06-22 19:59:39	0|wumpus|(sorry, just tired of the whole 'switching to integers' thing)
432 2017-06-22 19:59:56	0|sipa|wumpus: i think the current solutions which accepts strings everywhere is perfectly fine
433 2017-06-22 20:00:01	0|gmaxwell|wumpus: oh I thought other people wanted to do that, but the inability to change the api was holding it off.
434 2017-06-22 20:00:46	0|sipa|PLOINK
435 2017-06-22 20:00:55	0|jtimon|luke-jr: super ACK on finally moving from BTC to satoshi once and for all, but last time I tried I had to close the PR
436 2017-06-22 20:00:56	0|luke-jr|sipa fell in the ocean?
437 2017-06-22 20:00:59	0|instagibbs|that's dutch for "meeting over"
438 2017-06-22 20:00:59	0|wumpus|gmaxwell:  I mean the problem is that JSON doesn't have integers
439 2017-06-22 20:01:03	0|lightningbot|Log:            http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-06-22-19.00.log.html
440 2017-06-22 20:01:03	0|lightningbot|Meeting ended Thu Jun 22 20:01:02 2017 UTC.  Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
441 2017-06-22 20:01:03	0|lightningbot|Minutes:        http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-06-22-19.00.html
442 2017-06-22 20:01:03	0|lightningbot|Minutes (text): http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-06-22-19.00.txt
443 2017-06-22 20:01:03	0|wumpus|#endmeeting
444 2017-06-22 20:01:13	0|sipa|instagibbs: indeed; clearly at least wumpus got it
445 2017-06-22 20:01:39	0|gmaxwell|wumpus: yea, I thought the suggestion was integers in strings. sorry if I'm desynced there.
446 2017-06-22 20:01:44	0|BlueMatt|sorry cfields, I didnt want to hold off on PRing #10652 anymore....I only started it last dec :p
447 2017-06-22 20:01:46	0|gribble|https://github.com/bitcoin/bitcoin/issues/10652 | Small step towards demangling cs_main from CNodeState by TheBlueMatt · Pull Request #10652 · bitcoin/bitcoin · GitHub
448 2017-06-22 20:01:59	0|luke-jr|JSON has Numbers, which can be integers just fine
449 2017-06-22 20:02:09	0|wumpus|if only we used a *SANE* RPC mechanism that support uint64 values
450 2017-06-22 20:02:11	0|jtimon|I see, the reason to have the wallet id in the uri is for processes, thanks
451 2017-06-22 20:02:13	0|cfields|BlueMatt: np, great to see
452 2017-06-22 20:02:15	0|sipa|wumpus: ASN.1
453 2017-06-22 20:02:20	0|cfields|haha
454 2017-06-22 20:02:22	0|wumpus|we'd haved save hours, no, days of discussion
455 2017-06-22 20:02:23	0|gmaxwell|wumpus: the issue that its trying to address is that some json libraries coerse json numbers to 32-bit floats and other horrors and do corrupt our values.
456 2017-06-22 20:02:41	0|jonasschnelli|cfields: interested if you know why I got again dependencies issues on travis only: https://travis-ci.org/bitcoin/bitcoin/jobs/245674276#L2089
457 2017-06-22 20:02:42	0|gmaxwell|luke-jr: if you're willing to support proper handling of number we don't need to change anything-- current thing is fine.
458 2017-06-22 20:02:43	0|wumpus|gmaxwell: we currently accept strings as BTC amounts
459 2017-06-22 20:02:57	0|gmaxwell|wumpus: yes, but we don't return them.
460 2017-06-22 20:02:59	0|luke-jr|gmaxwell: current thing confuses internals with externals
461 2017-06-22 20:03:49	0|wumpus|ASN.1 hehe
462 2017-06-22 20:03:51	0|jtimon|unrelated: I would add #9271 to project 6 (libconsensus), although I don't manage to fix the tests if I change the enums for the consensus part. Removing that last part doesn't feel right either
463 2017-06-22 20:03:52	0|gribble|https://github.com/bitcoin/bitcoin/issues/9271 | Theres two types of flags: consensus and script by jtimon · Pull Request #9271 · bitcoin/bitcoin · GitHub
464 2017-06-22 20:04:11	0|gmaxwell|I'm sorry for commenting. perhaps it would just be better addressed by offering an RPC that isn't json in the future.
465 2017-06-22 20:04:20	0|cfields|jonasschnelli: will take a look
466 2017-06-22 20:04:25	0|sipa|gmaxwell: XML?
467 2017-06-22 20:04:28	0|jtimon|I gave up on verifyHeader, but not on verifyTx
468 2017-06-22 20:04:34	0|jonasschnelli|cfields: thanks!
469 2017-06-22 20:04:39	0|wumpus|gmaxwell: no, don't be sorry, I'm sorry for reacting so heavily to it, it's just that it's been discussed so many times, and every time it goes the same
470 2017-06-22 20:05:02	0|jtimon|sipa: SOAP :p
471 2017-06-22 20:05:08	0|luke-jr|wumpus: because we never change the API..
472 2017-06-22 20:05:15	0|wumpus|some people want solution A, some want B, it never changes
473 2017-06-22 20:05:19	0|gmaxwell|My skin crawls a bit about the big footgun json gives our callers here. :(  (though seems luke wasn't even concerned about that)
474 2017-06-22 20:05:33	0|cfields|jonasschnelli: btw, I pinged you a few days ago for discussion about the policy change, but I guess I missed you. I suspect it's too late now to pester you about it for a min?
475 2017-06-22 20:05:46	0|wumpus|two? three? years ago I had a PR open that allows, with a command line argument, to change the encoding of amounts to four different things
476 2017-06-22 20:05:51	0|wumpus|both for accepting and returning
477 2017-06-22 20:06:01	0|wumpus|but no, no one was interested
478 2017-06-22 20:06:06	0|wumpus|we rather just keep discussing it
479 2017-06-22 20:06:50	0|gmaxwell|changing the API from a commandline seems unsafe, however.  I think it came up here because we're doing api versions.
480 2017-06-22 20:06:56	0|wumpus|yeah yeah...
481 2017-06-22 20:06:57	0|wumpus|never mind
482 2017-06-22 20:07:32	0|gmaxwell|(e.g. you set the commandline one way then run joinmarket that doesn't know about that, and Bad Things Happen (tm) ... though I apologize if your PR actually addressed that.)
483 2017-06-22 20:08:04	0|wumpus|so, we could switch between just btc amount and "btc amount" and drop the integer variants, also fine with me
484 2017-06-22 20:08:44	0|luke-jr|wumpus: that would just make the problem worse
485 2017-06-22 20:09:00	0|wumpus|no way that's dangerous as it would just result in incompatible values that wouldn't be parsed instead of 10^8 blowup
486 2017-06-22 20:09:05	0|wumpus|oh yeah of course it just makes things worse
487 2017-06-22 20:09:07	0|wumpus|OF COURSE
488 2017-06-22 20:09:17	0|gmaxwell|wumpus: Thats a good point
489 2017-06-22 20:10:00	0|wumpus|jtimon: it's not just bitcoin, no one ever agrees about RPC mechanisms, ever, anywhere :)
490 2017-06-22 20:10:08	0|luke-jr|lol
491 2017-06-22 20:10:25	0|gmaxwell|actually what effective numeric value does "1.0000" have in javascript? (a string with a 1.00 in it)
492 2017-06-22 20:10:39	0|wumpus|that's why hundreds different ones exist
493 2017-06-22 20:11:19	0|wumpus|1.0000 if you interpret it as number
494 2017-06-22 20:11:47	0|jtimon|wumpus: right, I just remembered with gmaxwell comments what I had used i the past, I hated soap and liked ice
495 2017-06-22 20:11:57	0|gmaxwell|okay, that looks vaguely safe. I was worring for a moment that it would be 0 or something.
496 2017-06-22 20:12:48	0|wumpus|gmaxwell:   javascript:alert("1.0000"+0)
497 2017-06-22 20:13:21	0|bitcoin-git|[13bitcoin] 15achow101 closed pull request #10511: [Tests] Include branch coverage info in coverage test (06master...06lcov) 02https://github.com/bitcoin/bitcoin/pull/10511
498 2017-06-22 20:13:50	0|gmaxwell|I don't know how anyone can stand programming in this language because "blart"+0 = "blart0"
499 2017-06-22 20:15:05	0|sipa|gmaxwell: https://www.destroyallsoftware.com/talks/wat
500 2017-06-22 20:15:56	0|wumpus|gmaxwell: I don't know either, it's just madness
501 2017-06-22 20:19:26	0|wumpus|but yes, that probably means that changing a number to a string is going to result in funny results instead of errors immediately
502 2017-06-22 21:57:59	0|sipa|Can I haz some review on https://github.com/bitcoin-core/leveldb/pull/2 ?
503 2017-06-22 22:27:22	0|luke-jr|sipa: but I thought we all trusted you to do the LevelDB review? :P
504 2017-06-22 22:31:42	0|sipa|luke-jr: not of my own code
505 2017-06-22 22:32:06	0|luke-jr|oh, that's not just the version bump
506 2017-06-22 22:32:28	0|wumpus|no, the version bump was already done
507 2017-06-22 22:33:46	0|wumpus|this just moves the atomic pointer code
508 2017-06-22 22:34:20	0|sipa|yes, it makes it prefer the c++11 native construct over the adhoc asm code
509 2017-06-22 22:39:37	0|wumpus|yep
510 2017-06-22 22:45:04	0|gmaxwell|sipa: unrelated to us reviewing it, but any feedback from upstream about it?
511 2017-06-22 22:45:14	0|gmaxwell|I certantly feel much more comfortable using C++ atomics.
512 2017-06-22 22:46:24	0|sipa|gmaxwell: it's even code from upstream
513 2017-06-22 22:46:34	0|sipa|i just changed the priority of choosing one over another
514 2017-06-22 22:46:48	0|sipa|not a single comment in the upstream github repo
515 2017-06-22 22:50:28	0|profall|Can two different people mine to different accounts on the same node?
516 2017-06-22 22:52:59	0|wumpus|since when can you mine on people?
517 2017-06-22 22:53:46	0|profall|Sweat shop with people hashing with pen and paper
518 2017-06-22 22:54:16	0|profall|ASIC, Miner, machine do-dad hashing thing. Want me to rephrase the statement?
519 2017-06-22 22:54:32	0|sipa|what do accounts have to do with iy
520 2017-06-22 22:54:38	0|sipa|what have nodes to do with it
521 2017-06-22 22:56:06	0|wumpus|the question just makes no sense, also this is not the place to ask support questions, try #bitcoin
522 2017-06-22 22:56:22	0|profall|If Miner #1 is mining to address ABC and Miner #2 is mining to address XZY. However, they have are using the same bitcoin core daemon.
523 2017-06-22 22:56:24	0|gribble|https://github.com/bitcoin/bitcoin/issues/1 | JSON-RPC support for mobile devices ("ultra-lightweight" clients) · Issue #1 · bitcoin/bitcoin · GitHub
524 2017-06-22 22:56:26	0|gribble|https://github.com/bitcoin/bitcoin/issues/2 | Long-term, safe, store-of-value · Issue #2 · bitcoin/bitcoin · GitHub
525 2017-06-22 22:56:27	0|profall|Alright, will ask there.
526 2017-06-22 22:57:51	0|sipa|profall: bitcoin core is irrelevant in this question; all core does is provide a block template to mine from
527 2017-06-22 22:58:17	0|sipa|it does not care what you do with that, where you make the payout go, or where you submit the solved block
528 2017-06-22 22:58:37	0|profall|Alright, thank you sipa
529 2017-06-22 23:54:56	0|bitcoin-git|[13bitcoin] 15ryanofsky opened pull request #10653: Simple, backwards compatible RPC multiwallet support (06master...06pr/multiparam) 02https://github.com/bitcoin/bitcoin/pull/10653
530 2017-06-22 23:55:24	0|achow101|morcos: sdaftuar: what's the best way to get a long term fee rate (e.g. estimatesmartfee for 1008 blocks)? I need this for #10637.
531 2017-06-22 23:55:26	0|gribble|https://github.com/bitcoin/bitcoin/issues/10637 | Coin Selection with Murchs algorithm by achow101 · Pull Request #10637 · bitcoin/bitcoin · GitHub
532 2017-06-22 23:56:19	0|achow101|right now I am doing this abomination: https://0bin.net/paste/aql1DfVmBRbaZ9ks#P+ZTH6yYhbb4X-+YeCrCU/Mmt85cjNpkBvlqFvxxHFZ since it seems that estimatesmartfee() will return a fee rate of 0 if the confirmation target is out of the data range
533 2017-06-22 23:57:08	0|achow101|(getminimumfeerate in that snippet is a function that gets the fee rate with estimatesmartfee and then returns the max of that or the minrelayfee)