1 2017-09-28 02:16:41 0|jimpo|Why is this check for input index out of bounds below the BIP 143 sighash handling? https://github.com/bitcoin/bitcoin/blob/master/src/script/interpreter.cpp#L1223
2 2017-09-28 02:32:36 0|sipa|the bip143 code has the same check here: https://github.com/bitcoin/bitcoin/blob/master/src/script/interpreter.cpp#L1194
3 2017-09-28 02:33:22 0|sipa|oh, no; you're just talking about the sanity check
4 2017-09-28 02:33:32 0|sipa|that should be an assert really, and it can go above, indeed
5 2017-09-28 02:47:19 0|jimpo|sipa: So it's safe if I change that to an assert at the top?
6 2017-09-28 02:54:55 0|sipa|jimpo: imo, yes
7 2017-09-28 02:55:14 0|bitcoin-git|[13bitcoin] 15jimpo opened pull request #11411: script: Change SignatureHash input index check to an assert. (06master...06sighash-bounds-check) 02https://github.com/bitcoin/bitcoin/pull/11411
8 2017-09-28 02:55:24 0|jimpo|I'm running the test suite on it now. Let's see...
9 2017-09-28 03:10:25 0|bitcoin-git|13bitcoin/06master 1422f816e 15Wladimir J. van der Laan: net: Improve and document SOCKS code...
10 2017-09-28 03:10:25 0|bitcoin-git|[13bitcoin] 15jonasschnelli pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/ef8340d25f7c...d90a00eabed0
11 2017-09-28 03:10:26 0|bitcoin-git|13bitcoin/06master 14d90a00e 15Jonas Schnelli: Merge #11397: net: Improve and document SOCKS code...
12 2017-09-28 03:11:04 0|bitcoin-git|[13bitcoin] 15jonasschnelli closed pull request #11397: net: Improve and document SOCKS code (06master...062017_09_socks_refactor) 02https://github.com/bitcoin/bitcoin/pull/11397
13 2017-09-28 03:39:15 0|bitcoin-git|[13bitcoin] 15jonasschnelli opened pull request #11412: Simplify GetWarnings() (06master...062017/09/getwarnings) 02https://github.com/bitcoin/bitcoin/pull/11412
14 2017-09-28 04:11:55 0|jonasschnelli|Beg for reviews on #7061 (from 2015!)
15 2017-09-28 04:11:58 0|gribble|https://github.com/bitcoin/bitcoin/issues/7061 | [Wallet] Add RPC call "rescanblockchain " by jonasschnelli ÷ Pull Request #7061 ÷ bitcoin/bitcoin ÷ GitHub
16 2017-09-28 04:21:53 0|warren|I liked sipa's comment "I would still prefer an approach that imports with birthdate instead of explicit rescanning."
17 2017-09-28 04:22:35 0|warren|opportunity to optionally encode a birthdate in the address, but there was concern of bikeshedding or something
18 2017-09-28 06:34:12 0|bitcoin-git|[13bitcoin] 15laanwj pushed 3 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/d90a00eabed0...c9a4aa8a0e7e
19 2017-09-28 06:34:13 0|bitcoin-git|13bitcoin/06master 143826253 15Wladimir J. van der Laan: rpc: Handle `getinfo` locally in bitcoin-cli w/ `-getinfo`...
20 2017-09-28 06:34:13 0|bitcoin-git|13bitcoin/06master 145e69a43 15John Newbery: Add test for bitcoin-cli -getinfo...
21 2017-09-28 06:34:14 0|bitcoin-git|13bitcoin/06master 14c9a4aa8 15Wladimir J. van der Laan: Merge #10871: Handle getinfo in bitcoin-cli w/ -getinfo (revival of #8843)...
22 2017-09-28 06:34:39 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10871: Handle getinfo in bitcoin-cli w/ -getinfo (revival of #8843) (06master...06cli-getinfo) 02https://github.com/bitcoin/bitcoin/pull/10871
23 2017-09-28 06:44:37 0|bitcoin-git|[13bitcoin] 15kallewoof opened pull request #11413: [wallet] [rpc] sendtoaddress: Add explicit feerate option to sendtoaddress (06master...06explicit-fee) 02https://github.com/bitcoin/bitcoin/pull/11413
24 2017-09-28 08:41:11 0|ThomasV|can someone clarify the syntax of importmulti?
25 2017-09-28 08:41:17 0|ThomasV|"Array of strings giving pubkeys that must occur in the output or redeemscript"
26 2017-09-28 08:41:55 0|ThomasV|does that mean that for each execution path of redeemScript, you have to import a different array of pubkeys?
27 2017-09-28 08:49:12 0|sipa|ThomasV: signing with anything other than pure multisig is not supported, so there can't be multiple execution paths
28 2017-09-28 08:49:50 0|sipa|so no, it's just the list of all public keys that appear
29 2017-09-28 08:49:55 0|ThomasV|sipa: will the syntax need to be changed for other scripts?
30 2017-09-28 08:50:06 0|sipa|i think it's also only necessary for single-pubkey cases
31 2017-09-28 08:50:15 0|sipa|if you give the redeemscript, you're good
32 2017-09-28 08:50:26 0|sipa|if you want solvability or signability
33 2017-09-28 08:53:45 0|sipa|ThomasV: the idea is you give a) what script/address you're interested in b) what you want for it (watching, solving, signing) c) all the information necessary for that (redeemscripts, public keys, private keys, ...)
34 2017-09-28 08:56:39 0|ThomasV|sipa: so if you pass pubkeys you do not need to pass redeemscript?
35 2017-09-28 08:57:30 0|sipa|rather the other way around
36 2017-09-28 08:57:50 0|sipa|passing pubkeys (i think) is only useful for single-key cases (pay to pubkey etc)
37 2017-09-28 08:58:24 0|ThomasV|but why is it an array, then?
38 2017-09-28 08:58:56 0|ThomasV|and the doc says "Array of strings giving pubkeys that must occur in the output or redeemscript"
39 2017-09-28 08:59:14 0|ThomasV|that suggests an execution path
40 2017-09-28 08:59:23 0|sipa|yes - you're free to pass in multiple keys if they all appear
41 2017-09-28 08:59:30 0|sipa|that doesn't mean that you need to
42 2017-09-28 08:59:36 0|ThomasV|hmm
43 2017-09-28 08:59:44 0|sipa|presumably it's for being future proofness
44 2017-09-28 09:00:08 0|ThomasV|ok, so future plan is to extend that to arbitrary scripts?
45 2017-09-28 09:00:37 0|sipa|we'll only ever be able to sign the scripts we can sign
46 2017-09-28 09:00:54 0|sipa|importmulti is just a way for passing in all the information the signing logic may possibly need
47 2017-09-28 09:02:15 0|gmaxwell|I don't believe its computationally tractable to be able to sign actually arbritary scripts.
48 2017-09-28 09:02:20 0|ThomasV|sipa: the signing logic needs to know the position of the signature in the witness. this position may differ depending on the execution path
49 2017-09-28 09:02:44 0|sipa|ThomasV: if it knows the redeemscript, it knows all possible execution paths
50 2017-09-28 09:02:44 0|ThomasV|so I would expect that info to be passed to importmulti
51 2017-09-28 09:02:52 0|gmaxwell|Though there are presumably large classes that could be signed automatically, or partially using the fill in the blanks technique.
52 2017-09-28 09:03:14 0|sipa|(but currently no scripts with conditionals are supported in the signer)
53 2017-09-28 09:04:45 0|ThomasV|sipa: it depends what you mean by "it knows". does the signing logic execute the redeem script in order to figure that out?
54 2017-09-28 09:05:01 0|ThomasV|(or parse it)
55 2017-09-28 09:05:18 0|sipa|it uses template matching
56 2017-09-28 09:05:41 0|sipa|again, the current logic can't deal with anything other than P2PK, P2PKH, P2SH, and simple multisig
57 2017-09-28 09:05:49 0|ThomasV|ok, so the only template it currently has is pure multisig
58 2017-09-28 09:06:07 0|sipa|however, i believe that the interface for importmulti doesn't need changing
59 2017-09-28 09:06:16 0|sipa|if the signing logic gets extended
60 2017-09-28 09:07:13 0|sipa|say we'd add support for signing an A-and-B OR C-and-D like script, if you've given it the redeemscript (which includes the 4 pubkeys), it can theoretically sign for something like that
61 2017-09-28 09:14:46 0|ThomasV|gmaxwell: signing arbitrary scripts is not tractable if you expect the signing logic to understand the script. however, I think that burden could be moved to the user who owns the privkey
62 2017-09-28 09:16:08 0|ThomasV|when you import a key, you could also tell the wallet in which context it should be used
63 2017-09-28 09:16:09 0|gmaxwell|I think you're thinking of what I mean by fill in the blanks technique, where you attempt to verify the script, assume all checksigs pass and record their inputs, and then go and sign any that you know the keys for.
64 2017-09-28 09:16:28 0|gmaxwell|or perhaps you didn't. :)
65 2017-09-28 09:17:54 0|ThomasV|I mean to tell the wallet which execution path is the key for
66 2017-09-28 09:18:32 0|sipa|i don't understand why that's necessary, if the wallet knows all execution paths anyway
67 2017-09-28 09:18:59 0|ThomasV|the wallet does not know how the script is going to be executed
68 2017-09-28 09:19:06 0|sipa|so?
69 2017-09-28 09:19:29 0|ThomasV|so, if I sign a transaction, I should provide that info
70 2017-09-28 09:19:48 0|sipa|usually there are just a few branches, it can easily try all of that
71 2017-09-28 09:21:05 0|sipa|but in general - i'm sure there are cases where it's not feasible (say you have 30 independent conditionals - you'd need to try 2^30 combinations)
72 2017-09-28 09:21:14 0|ThomasV|sipa: there might be branches that you do not want to sign.
73 2017-09-28 09:22:11 0|gmaxwell|ThomasV: I don't follow, it's for the execution path(s) that involve the corresponding public key.
74 2017-09-28 09:22:15 0|sipa|at some point you can't expect a generic wallet to deal with arbitrarily complex scenarios, and you'll just need to write your own software i think
75 2017-09-28 09:23:42 0|ThomasV|gmaxwell: maybe the same pubkey occurs in 2 branches
76 2017-09-28 09:24:39 0|gmaxwell|Then it's the same secret... which choice you were signing with would be a signing time decision, I think, not an importmulti-time decision.
77 2017-09-28 09:25:55 0|ThomasV|gmaxwell: exactly. my point is that making it an import time decision makes signing arbitrary scripts a lot simpler.
78 2017-09-28 09:26:31 0|ThomasV|you only need to pass the position of the signature in the witness, and the length of the witness
79 2017-09-28 09:26:46 0|ThomasV|and you don't need to fill the blanks, or parse scripts
80 2017-09-28 09:27:02 0|gmaxwell|I don't follow your thinking at all there.
81 2017-09-28 09:27:57 0|sipa|if there is a script that has a pubkey in multiple branches, meaning you're able to participate in multiple branches, and you have that key... why would you - at importing time - want to be forced to choose only one of those branches?
82 2017-09-28 09:28:12 0|ThomasV|gmaxwell: import_privkey_with_role(privkey, redeemscript, role_in_witness)
83 2017-09-28 09:28:13 0|sipa|sure, you may want to make that choice at signing time
84 2017-09-28 09:28:16 0|gmaxwell|that sounds like you're thinking signatures in the witness always have a fixed position? they don't.. okay but I understand why you wouldn't want any understanding of script in general.
85 2017-09-28 09:28:42 0|sipa|with signature aggregation there will just be a single signature anyway :)
86 2017-09-28 09:28:49 0|sipa|much easier! *ducks*
87 2017-09-28 09:29:06 0|ThomasV|gmaxwell: my point is precisely that they do not have a fixed position. that's what I mean by role
88 2017-09-28 09:29:30 0|gmaxwell|but since a "stick signature in this position" approach cannot sign arbritary scripts or even remotely arbritary, is it really that unreasonable to do simple template matching of the script?
89 2017-09-28 09:30:04 0|ThomasV|gmaxwell: why can't it sign arbitrary scripts?
90 2017-09-28 09:30:41 0|ThomasV|the logic is "if I see that redeemscript, then I sign"
91 2017-09-28 09:31:00 0|gmaxwell|ThomasV: because the position your signature needs to go into can depend on data set by another signer (for example) in each specific instance of signing.
92 2017-09-28 09:31:00 0|ThomasV|no template matching needed
93 2017-09-28 09:31:48 0|ThomasV|gmaxwell: in that case you import the same key with several roles
94 2017-09-28 09:32:23 0|gmaxwell|e.g. if you have a signature that has a policy that looks like (A || (B && C)) && D and you are D, the stack element your will sign with depends on which of the paths are in use by the OR people.
95 2017-09-28 09:33:01 0|gmaxwell|ThomasV: well that would be a very inefficient interface if there were many paths, I don't think it would make sense for us to do it that way, since we can simply just run through the script and see what is actually needed.
96 2017-09-28 09:33:44 0|gmaxwell|Esp with recently proposed future enancements e.g. mark or jl's tree constructions, there could be a huhdred possible locations for a redeemscript.
97 2017-09-28 09:34:24 0|sipa|i'm sure there could be an alternate more lowlevel interface, where you say "this redeemscript can be signed for with this witness template... with a signature-for-key-A in position this, and a signature-for-key-B in position this, ..."
98 2017-09-28 09:34:54 0|sipa|but that question isn't even relevant at this point - we only do signing of specific templates anyway
99 2017-09-28 09:35:24 0|sipa|which i think will cover the vast majority of use cases - especially the uses cases for those who aren't able to write custom signing code themselves
100 2017-09-28 09:36:05 0|gmaxwell|well the fill in the blanks would cover a far greater subset of those...
101 2017-09-28 09:36:33 0|sipa|with MAST-like constructions something like that could make sense - where you're able to sign for a MAST root even if you don't know all MAST branches - only the ones you participate in
102 2017-09-28 09:44:40 0|ThomasV|gmaxwell: good point. indeed, that would be inefficient.
103 2017-09-28 09:48:01 0|ThomasV|sipa: so, the witness of a partially signed transaction would be a tree? in greg's example: ((sigA (sigB, sigC)), sigD), where sigX is either a signature or an empty placeholder
104 2017-09-28 09:48:37 0|ThomasV|until it's fully signed
105 2017-09-28 09:49:19 0|sipa|ThomasV: have you seen achow101'w partially signed transaction format?
106 2017-09-28 09:49:54 0|ThomasV|no
107 2017-09-28 09:50:20 0|ThomasV|is there a link?
108 2017-09-28 09:50:23 0|sipa|https://github.com/bitcoin/bips/blob/master/bip-0174.mediawiki
109 2017-09-28 09:50:27 0|ThomasV|thanks
110 2017-09-28 11:20:15 0|bitcoin-git|13bitcoin/06master 14fa082b4 15MarcoFalke: doc: move gitian building to external repo...
111 2017-09-28 11:20:15 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/c9a4aa8a0e7e...4202273ffa45
112 2017-09-28 11:20:16 0|bitcoin-git|13bitcoin/06master 144202273 15Wladimir J. van der Laan: Merge #11401: doc: move gitian building to external repo...
113 2017-09-28 11:20:59 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #11401: doc: move gitian building to external repo (06master...06Mf1708-docGitianFedora) 02https://github.com/bitcoin/bitcoin/pull/11401
114 2017-09-28 13:10:49 0|bitcoin-git|[13bitcoin] 15fanquake opened pull request #11414: [docs] Remove partial gitian build instructions from descriptors dir. (06master...06gitian-cleanups) 02https://github.com/bitcoin/bitcoin/pull/11414
115 2017-09-28 14:39:54 0|bitcoin-git|[13bitcoin] 15laanwj pushed 4 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/4202273ffa45...9a8e9167f263
116 2017-09-28 14:39:55 0|bitcoin-git|13bitcoin/06master 148502b20 15Andrew Chow: Unify help text for GetWarnings output in get*info RPCs
117 2017-09-28 14:39:55 0|bitcoin-git|13bitcoin/06master 14f77f0e4 15Andrew Chow: Add warnings field to getblockchaininfo
118 2017-09-28 14:39:56 0|bitcoin-git|13bitcoin/06master 14395cef7 15Andrew Chow: Change getmininginfo errors field to warnings...
119 2017-09-28 14:40:24 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10858: [RPC] Add "errors" field to getblockchaininfo and unify "errors" field in get*info RPCs (06master...06getblockchaininfo-errors) 02https://github.com/bitcoin/bitcoin/pull/10858
120 2017-09-28 15:06:29 0|bitcoin-git|[13bitcoin] 15laanwj pushed 4 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/9a8e9167f263...9d31ed2e69fd
121 2017-09-28 15:06:30 0|bitcoin-git|13bitcoin/06master 142416dd7 15Cory Fields: net: separate resolving and conecting...
122 2017-09-28 15:06:30 0|bitcoin-git|13bitcoin/06master 1445fd754 15Cory Fields: net: remove now-superfluous numeric resolve...
123 2017-09-28 15:06:31 0|bitcoin-git|13bitcoin/06master 14b887676 15Cory Fields: net: remove now-unused functions
124 2017-09-28 15:07:14 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #10663: net: split resolve out of connect (06master...06split-resolve-connect) 02https://github.com/bitcoin/bitcoin/pull/10663
125 2017-09-28 17:00:24 0|jonasschnelli|BlueMatt: how did you know I'm working on the RPC long poll notifications?
126 2017-09-28 17:00:55 0|jonasschnelli|I started to pick it up yesterday
127 2017-09-28 17:11:01 0|BlueMatt|lol, I'm just going through old prs
128 2017-09-28 17:14:32 0|jtimon|I'm going to miss the meeting, review beg #8498 and #8994 if at any moment seems relevant
129 2017-09-28 17:14:35 0|gribble|https://github.com/bitcoin/bitcoin/issues/8498 | Near-Bugfix: Optimization: Minimize the number of times it is checked that no money... by jtimon ÷ Pull Request #8498 ÷ bitcoin/bitcoin ÷ GitHub
130 2017-09-28 17:14:36 0|gribble|https://github.com/bitcoin/bitcoin/issues/8994 | Testchains: Introduce custom chain whose constructor... by jtimon ÷ Pull Request #8994 ÷ bitcoin/bitcoin ÷ GitHub
131 2017-09-28 17:18:12 0|jtimon|and https://github.com/bitcoin/bitcoin/pull/10669 too, why not?
132 2017-09-28 18:02:14 0|bitcoin-git|13bitcoin/06master 14d552ed6 15Paul Berg: Put back inadvertently removed copyright notices...
133 2017-09-28 18:02:14 0|bitcoin-git|[13bitcoin] 15laanwj pushed 2 new commits to 06master: 02https://github.com/bitcoin/bitcoin/compare/9d31ed2e69fd...a72003d794f3
134 2017-09-28 18:02:15 0|bitcoin-git|13bitcoin/06master 14a72003d 15Wladimir J. van der Laan: Merge #11318: Put back inadvertently removed copyright notices...
135 2017-09-28 18:02:55 0|bitcoin-git|[13bitcoin] 15laanwj closed pull request #11318: Put back inadvertently removed copyright notices (06master...06fix_copying) 02https://github.com/bitcoin/bitcoin/pull/11318
136 2017-09-28 18:04:10 0|meshcollider|Heh I was expecting the meeting to be now, but New Zealand just switched to daylight savings time so I'm an hour early
137 2017-09-28 18:15:34 0|bitcoin-git|[13bitcoin] 15danra closed pull request #11306: Refactor: Move core files from src root to src/core and improve incluââ¬Â¦ (06master...06refactor/core-files) 02https://github.com/bitcoin/bitcoin/pull/11306
138 2017-09-28 18:35:12 0|wumpus|yeah, DST remains an ever present source of annoyance with timing international meetings
139 2017-09-28 18:36:23 0|wumpus|still a month to go here, october 29 winter time starts in NL
140 2017-09-28 18:41:07 0|Sentineo|I like this period though, US will switch 2 weaks before Europe to winter time. So there i less time difference ;)
141 2017-09-28 18:59:24 0|luke-jr|you should all just adopt a tonal timezone-less clock ;)
142 2017-09-28 19:00:39 0|luke-jr|meeting is at ̨夁.9 regardless of what part of the year
143 2017-09-28 19:01:13 0|instagibbs|meeting is now?
144 2017-09-28 19:01:25 0|wumpus|yes
145 2017-09-28 19:01:29 0|petertodd|if it is, then hi
146 2017-09-28 19:01:30 0|lightningbot|Meeting started Thu Sep 28 19:01:29 2017 UTC. The chair is wumpus. Information about MeetBot at http://wiki.debian.org/MeetBot.
147 2017-09-28 19:01:30 0|lightningbot|Useful Commands: #action #agreed #help #info #idea #link #topic.
148 2017-09-28 19:01:30 0|wumpus|#startmeeting
149 2017-09-28 19:01:35 0|achow101|hi
150 2017-09-28 19:01:37 0|meshcollider|Hello again
151 2017-09-28 19:01:47 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
152 2017-09-28 19:01:49 0|meshcollider|lightningbot?
153 2017-09-28 19:02:10 0|cfields|hi
154 2017-09-28 19:02:20 0|wumpus|luke-jr: yes, you could ignore DST for yourself and live in GMT time, the difficulty is shop opening times and such :)
155 2017-09-28 19:02:23 0|jnewbery|hi
156 2017-09-28 19:02:24 0|kanzure|hi.
157 2017-09-28 19:02:29 0|Chris_Stewart_5|hello
158 2017-09-28 19:02:33 0|wumpus|oh no the bot is missing
159 2017-09-28 19:02:38 0|wumpus|#action find the bot
160 2017-09-28 19:02:47 0|achow101|is it?
161 2017-09-28 19:02:59 0|petertodd|wumpus: one of the perils of replacing humans with machines
162 2017-09-28 19:03:14 0|wumpus|ehh.. no it isn't, sorry
163 2017-09-28 19:03:33 0|wumpus|petertodd: but it lives in the cloud! humans can't live in a cloud!
164 2017-09-28 19:03:43 0|wumpus|#topic High priority for review
165 2017-09-28 19:04:02 0|BlueMatt|again
166 2017-09-28 19:04:22 0|BlueMatt|10663 got merged
167 2017-09-28 19:04:25 0|BlueMatt|same with 10871
168 2017-09-28 19:04:45 0|jonasschnelli|hi
169 2017-09-28 19:04:45 0|wumpus|yes, finally
170 2017-09-28 19:04:58 0|BlueMatt|=D
171 2017-09-28 19:05:20 0|wumpus|BlueMatt: yours has wallet in the name, that seems to put a curse on it with regard to reviewers
172 2017-09-28 19:05:32 0|luke-jr|XD
173 2017-09-28 19:05:34 0|jonasschnelli|Maybe someone can review #10387 (in high prio), ideally cfields
174 2017-09-28 19:05:35 0|gribble|https://github.com/bitcoin/bitcoin/issues/10387 | Implement BIP159, define and signal NODE_NETWORK_LIMITED (pruned peers) by jonasschnelli ÷ Pull Request #10387 ÷ bitcoin/bitcoin ÷ GitHub
175 2017-09-28 19:05:46 0|jonasschnelli|Would be great to have this in 0.16
176 2017-09-28 19:05:55 0|wumpus|which reminds me
177 2017-09-28 19:05:58 0|cfields|jonasschnelli: will do asap
178 2017-09-28 19:06:02 0|wumpus|#topic put up 0.16 release schedule
179 2017-09-28 19:06:05 0|jonasschnelli|cfields: thanks!
180 2017-09-28 19:06:12 0|BlueMatt|wumpus: yea, I think so...I havent been pushing it cause folks want 0.15.1 first, but afterwards I really want that to go in asap, cause I really want to have it in early in 0.16 so it simmers for months
181 2017-09-28 19:06:40 0|wumpus|10387 is already in "high priority for review"
182 2017-09-28 19:06:46 0|jonasschnelli|Yes
183 2017-09-28 19:06:50 0|wumpus|BlueMatt: seems it has had quite some review though
184 2017-09-28 19:06:53 0|jonasschnelli|Just no reviews. :)
185 2017-09-28 19:06:59 0|BlueMatt|#11089 needs to get removed from high priority, it needs major rebase
186 2017-09-28 19:07:01 0|gribble|https://github.com/bitcoin/bitcoin/issues/11089 | Enable various p2sh-p2wpkh functionality by luke-jr ÷ Pull Request #11089 ÷ bitcoin/bitcoin ÷ GitHub
187 2017-09-28 19:07:02 0|achow101|#10637 for high prio review?
188 2017-09-28 19:07:06 0|gribble|https://github.com/bitcoin/bitcoin/issues/10637 | Coin Selection with Murchs algorithm by achow101 ÷ Pull Request #10637 ÷ bitcoin/bitcoin ÷ GitHub
189 2017-09-28 19:07:18 0|wumpus|BlueMatt: ok
190 2017-09-28 19:07:23 0|gmaxwell|jonasschnelli: Oh, I'm surprised that patch is so large, I was kinda hoping to see it widely backported so pruned nodes on older branches could see it advertised.
191 2017-09-28 19:07:26 0|jonasschnelli|Maybe next to the release schedule for 0.16, ... what do we want in 0.16?
192 2017-09-28 19:07:38 0|sipa|most of 11089's functionality is included in #11403
193 2017-09-28 19:07:39 0|gribble|https://github.com/bitcoin/bitcoin/issues/11403 | SegWit wallet support by sipa ÷ Pull Request #11403 ÷ bitcoin/bitcoin ÷ GitHub
194 2017-09-28 19:07:45 0|jonasschnelli|gmaxwell: I'm happy if you see a way how to reduce it
195 2017-09-28 19:07:47 0|jonasschnelli|Or split it
196 2017-09-28 19:08:08 0|gmaxwell|jonasschnelli: yea, will look. Sorry, didn't see it until now.
197 2017-09-28 19:08:12 0|wumpus|11089 removed for now
198 2017-09-28 19:08:14 0|jonasschnelli|Although +264 âËâ13 shouldn't be too large
199 2017-09-28 19:08:28 0|jonasschnelli|(incl. new test)
200 2017-09-28 19:08:55 0|morcos|oh man i feel like i'm buried under PR's to review ... maybe i'd make some progress if you could review via tweet
201 2017-09-28 19:09:03 0|jonasschnelli|heh
202 2017-09-28 19:09:18 0|luke-jr|would be nice to have GUI multiwallet in 0.16, but #10615 is stuck on desires for refactoring :/
203 2017-09-28 19:09:20 0|gribble|https://github.com/bitcoin/bitcoin/issues/10615 | RPC: Allow rpcauth configs to specify a 4th parameter naming a specific wallet (multiwallet RPC support) by luke-jr ÷ Pull Request #10615 ÷ bitcoin/bitcoin ÷ GitHub
204 2017-09-28 19:09:40 0|BlueMatt|luke-jr: I think it is unacceptable to add so many more ifdef WALLET in bitcoin server
205 2017-09-28 19:09:46 0|jonasschnelli|luke-jr: can you remove the rpcauth part? It's not necesdarry and contraversial.
206 2017-09-28 19:09:48 0|wumpus|this is tagged for 0.16 right now (both issues and PRs):https://github.com/bitcoin/bitcoin/milestones/0.16.0
207 2017-09-28 19:09:49 0|BlueMatt|(and believe it would be easy to remove them)
208 2017-09-28 19:09:53 0|gmaxwell|jonasschnelli: I don't understand why the flags set would change at runtime? Setting the flag is a property of the node's configuration.
209 2017-09-28 19:10:04 0|sipa|morcos: well there is @BitcoinMerges...
210 2017-09-28 19:10:09 0|gmaxwell|(and in our case we don't have any configuration where it shouldn't be set, AFAIK)
211 2017-09-28 19:10:23 0|wumpus|morcos: well at least we can fit twice as much code in a tweet now...
212 2017-09-28 19:10:25 0|morcos|sipa: that's brilliant, at least it would constantly remind me
213 2017-09-28 19:10:30 0|jonasschnelli|gmaxwell: maybe no longer required with a single NODE_NETWORK_LIMITED bit
214 2017-09-28 19:10:32 0|luke-jr|jonasschnelli: I think that's possible, but I don't see why it should be controversial, and doesn't help with BlueMatt's refactoring wants
215 2017-09-28 19:10:50 0|jonasschnelli|luke-jr: it's a fact that it is contraversial
216 2017-09-28 19:10:58 0|jonasschnelli|* controversial
217 2017-09-28 19:11:06 0|gmaxwell|jonasschnelli: ah! right, so this code was originally based on the more complex spec.
218 2017-09-28 19:11:12 0|BlueMatt|luke-jr: I dont think I'm the only one who objects to ifdef wallet's being added to http server cpp files........
219 2017-09-28 19:11:32 0|jonasschnelli|gmaxwell: thanks for pointing out... i'll review it and check if I can remove the runtime switching
220 2017-09-28 19:11:34 0|wumpus|BlueMatt: no, you aren't, that's obviously wrong, we've been working hard to remove those as they cause circular refs :(
221 2017-09-28 19:11:50 0|jnewbery|luke-jr: cherry-picking the non-controversial commits from your PR gives us the GUI functionality without adding a bunch of server->wallet dependencies or the rpcauth stuff
222 2017-09-28 19:12:16 0|luke-jr|jnewbery: I don't see how that's possible
223 2017-09-28 19:12:21 0|gmaxwell|jonasschnelli: my completely ignorant (only barely read the patch) thought is that there should be one commit which should be a nearly one line change to just set the bit everywhere.. then another commit or two for the relay, then another for selection. And the first commit we'd backport, maybe the second, but not the third.
224 2017-09-28 19:12:46 0|luke-jr|BlueMatt: so httprpc calls a callback for "populate JSONRequest with metadata" which is only used for this one thing?
225 2017-09-28 19:12:51 0|luke-jr|BlueMatt: or what did you have in mind?
226 2017-09-28 19:12:53 0|wumpus|see e.g. #7965. We want to go toward 0 wallet references in bitcoin_server
227 2017-09-28 19:12:55 0|gribble|https://github.com/bitcoin/bitcoin/issues/7965 | Remaining instances of ENABLE_WALLET in `libbitcoin_server.a` ÷ Issue #7965 ÷ bitcoin/bitcoin ÷ GitHub
228 2017-09-28 19:13:15 0|jonasschnelli|gmaxwell: I thought it is basically like that (factored in a bit more commits though)
229 2017-09-28 19:13:17 0|achow101|wumpus: we can check getinfo off that list now
230 2017-09-28 19:13:25 0|wumpus|achow101: thanks good point
231 2017-09-28 19:13:30 0|BlueMatt|luke-jr: yes, that would be sufficient
232 2017-09-28 19:13:34 0|BlueMatt|imo
233 2017-09-28 19:13:54 0|luke-jr|ok, I'll try that
234 2017-09-28 19:13:59 0|wumpus|achow101: updated
235 2017-09-28 19:14:16 0|BlueMatt|luke-jr: you may wish to seek concept acks on the *idea* of rpc auth-based multiwallet
236 2017-09-28 19:14:21 0|BlueMatt|I'm ok with it, but I dont know if others are
237 2017-09-28 19:14:28 0|luke-jr|#action refactor #10615 for a "populate JSONRequest" callback, and separate out rpcauth stuff
238 2017-09-28 19:14:30 0|gribble|https://github.com/bitcoin/bitcoin/issues/10615 | RPC: Allow rpcauth configs to specify a 4th parameter naming a specific wallet (multiwallet RPC support) by luke-jr ÷ Pull Request #10615 ÷ bitcoin/bitcoin ÷ GitHub
239 2017-09-28 19:14:54 0|gmaxwell|jonasschnelli: ah, right though the setter isn't simple like I expected but now I understand why.
240 2017-09-28 19:14:55 0|jonasschnelli|BlueMatt , luke-jr : the rpcauth multiwallet is completely orthogonal to GUI multiwallet
241 2017-09-28 19:15:00 0|gmaxwell|and that should be fixable.
242 2017-09-28 19:15:24 0|wumpus|jonasschnelli: indeed, let's not confound things unnecessarily
243 2017-09-28 19:15:35 0|luke-jr|jonasschnelli: yeah, I'll split it off
244 2017-09-28 19:15:49 0|jonasschnelli|yes. It's smells like smuggling in controversial stuff packed in a nice feature
245 2017-09-28 19:15:56 0|gmaxwell|Yes, please split those things up. (I say this as a supporter of rpcauth based multiwallet control)
246 2017-09-28 19:16:05 0|sipa|i'm ok with rpcauth-based multiwallet, but i think it may be a longer-term thing; it would probably require some review of security of non-wallet RPCs (should a wallet-specific rpc user be allowed to call stop?)
247 2017-09-28 19:16:26 0|luke-jr|sipa: well, it wasn't meant to be a security thing, but maybe we can consider that
248 2017-09-28 19:16:45 0|sipa|yeah, just saying - i think multiwallet gui can be done much faster
249 2017-09-28 19:16:48 0|BlueMatt|I was assuming rpcauth-based multiwallet would only allow you to call wallet functions
250 2017-09-28 19:16:48 0|luke-jr|right
251 2017-09-28 19:16:53 0|sipa|everyone clearly wants it
252 2017-09-28 19:16:57 0|gmaxwell|sipa: main interest I have in it is anti-footgun. Can't spend accidentally what you don't have access too.
253 2017-09-28 19:16:59 0|jonasschnelli|rpcauth opens up the usecase and suddenly users think Core is a 100k multiuser wallet system
254 2017-09-28 19:17:09 0|jonasschnelli|we just need to be sure we want this
255 2017-09-28 19:17:09 0|wumpus|yes, multiwallet GUI isn't controversial in any way
256 2017-09-28 19:17:19 0|gmaxwell|jonasschnelli: Then we can simply say it isn't. I don't think that is a good argument.
257 2017-09-28 19:17:39 0|morcos|yeah lets pleast punt on rpcauth for now... seems better use of our time to move towards splitting off wallet
258 2017-09-28 19:17:42 0|wumpus|the gui even has some scaffolding already to be able to handle multiple wallets IIRC, of course it's not complete
259 2017-09-28 19:17:43 0|achow101|gmaxwell: people will probably still use it that way though
260 2017-09-28 19:17:47 0|luke-jr|leaving `stop` etc accessible makes it clearly not that IMO
261 2017-09-28 19:17:49 0|jonasschnelli|We may end up in the same situation like the accounts... i'm not against it. But we should discuss it wisely and not related to GUI multiwallet
262 2017-09-28 19:18:02 0|wumpus|morcos: +1, I'm kind of sick of discussing that tbh
263 2017-09-28 19:18:13 0|jonasschnelli|`/rpcauth (ack)
264 2017-09-28 19:18:18 0|luke-jr|wumpus: #11383 is there already, just needs to get past this initial stuff
265 2017-09-28 19:18:20 0|gribble|https://github.com/bitcoin/bitcoin/issues/11383 | Basic Multiwallet GUI support by luke-jr ÷ Pull Request #11383 ÷ bitcoin/bitcoin ÷ GitHub
266 2017-09-28 19:18:26 0|wumpus|luke-jr: yes
267 2017-09-28 19:18:38 0|wumpus|so anything that needs to be discussed with regard to GUI multiwallet?
268 2017-09-28 19:19:05 0|luke-jr|someone mentioned that they think the current design is too unobservable
269 2017-09-28 19:19:05 0|wumpus|if not, any other topics?
270 2017-09-28 19:19:15 0|jonasschnelli|the UI itself is not clear yeat. But luke-jr first approach is something we could have in 0.16
271 2017-09-28 19:19:26 0|BlueMatt|yes, next topic?
272 2017-09-28 19:19:41 0|jonasschnelli|topic: I wanted to ask if there are opinions against the concept of RPC long poll
273 2017-09-28 19:19:48 0|jonasschnelli|I'd like to work on this for 0.16
274 2017-09-28 19:19:49 0|wumpus|#topic RPC long poll
275 2017-09-28 19:19:50 0|sipa|i'd like to bring up segwit wallet support
276 2017-09-28 19:20:01 0|luke-jr|proposed topic: would be nice to get some code review on https://github.com/BitcoinHardfork/bitcoin/pulls PRs before November in case we need it (other PRs welcome)
277 2017-09-28 19:20:11 0|BlueMatt|jonasschnelli: please give a tl;dr; of what it is :)
278 2017-09-28 19:20:12 0|wumpus|jonasschnelli: no, no problems with it, I think it's superior to other ways we've considered
279 2017-09-28 19:20:15 0|jonasschnelli|RPC long poll would allow similar push benefits then ZMQ offers but without any dependencies
280 2017-09-28 19:20:30 0|gmaxwell|jonasschnelli: long poll for what specifically?
281 2017-09-28 19:20:36 0|luke-jr|jonasschnelli: we already have RPC long poll
282 2017-09-28 19:20:37 0|wumpus|for any of the current notifications
283 2017-09-28 19:20:44 0|wumpus|blocks, transactions, wallet events
284 2017-09-28 19:20:48 0|gmaxwell|you mean like blocks and transactions...
285 2017-09-28 19:20:49 0|jonasschnelli|you open an http connection (with a timeout of lets say 60seconds)... once a new block/tx pops in, you get it back and reopen the timeout 60 channel
286 2017-09-28 19:20:50 0|gmaxwell|ah.
287 2017-09-28 19:20:59 0|jonasschnelli|It's how Cellphone OSes do push notifications
288 2017-09-28 19:21:01 0|wumpus|yes. the stuff that now requires launching an external notify script
289 2017-09-28 19:21:04 0|jonasschnelli|very nat friendlly
290 2017-09-28 19:21:12 0|wumpus|jonasschnelli: yes, it's very basic and easy to use
291 2017-09-28 19:21:20 0|gmaxwell|Well. "Better than ZMQ"-- part of the argument against it in the past was socket monopolization but with libevent now that should be much less of an issue.
292 2017-09-28 19:21:23 0|jonasschnelli|Very easy to use... no ZMQ library, just an http client
293 2017-09-28 19:21:24 0|sdaftuar|how does reopening work? i don't understand how you avoid missing transactions in between
294 2017-09-28 19:21:42 0|luke-jr|gmaxwell: hopefully. libevent has a history of having problems in this area IIRC
295 2017-09-28 19:21:47 0|jonasschnelli|sdaftuar: you just open the http channel again... there is a queue on the server..
296 2017-09-28 19:21:47 0|wumpus|it's not meant as a competition to ZMQ, ZMQ will stay
297 2017-09-28 19:21:52 0|jonasschnelli|losing notifications is impossible
298 2017-09-28 19:21:58 0|jonasschnelli|(or very unlikely)
299 2017-09-28 19:22:02 0|luke-jr|sdaftuar: you have a session
300 2017-09-28 19:22:13 0|gmaxwell|jonasschnelli: impossible and very unlikely are not the same. :P
301 2017-09-28 19:22:22 0|cfields|didn't we have this discussion wrt waitfornewblock and friends? I'm missing how this is different
302 2017-09-28 19:22:24 0|wumpus|zmq is for low latency notifications, longpoll is for easy notifications over the same channel RPC already works
303 2017-09-28 19:22:26 0|jonasschnelli|yeah.. probably same level then ZMQ (where you can also loose nots)
304 2017-09-28 19:22:44 0|wumpus|zmq requires careful extra setup
305 2017-09-28 19:22:50 0|luke-jr|or order the events, and have the client request with the last-seen-event (as GBT does)
306 2017-09-28 19:22:53 0|jonasschnelli|It would allow clients to better interect with Core without opening an ZMQ & RPC channel (only RPC)
307 2017-09-28 19:22:57 0|gmaxwell|if you are using it to notice new transactions, losing a message means you fail to credit a customer with a $10,000 deposit... and look like a theif or even actually lose the money. :)
308 2017-09-28 19:23:01 0|jonasschnelli|and it would allow *auth based notifications"
309 2017-09-28 19:23:04 0|jonasschnelli|like wallet notifications
310 2017-09-28 19:23:11 0|jonasschnelli|(which should be behing the auth)
311 2017-09-28 19:23:33 0|jonasschnelli|notifications may lead to an RPC roundtrip...
312 2017-09-28 19:23:40 0|wumpus|gmaxwell: true, but the -Xnotify that launches a script can also fail to launch a script in some cases, losing notification
313 2017-09-28 19:23:42 0|BlueMatt|if its for wallet you can just use it to get info about when you need to call listsinceblock
314 2017-09-28 19:23:44 0|gmaxwell|ZMQ has wire protocol incompatiblity between versions, which makes it harder to use except in very tightly coupled setups.
315 2017-09-28 19:23:44 0|jonasschnelli|It just ellimitens constant triggering
316 2017-09-28 19:23:51 0|BlueMatt|which isnt so bad...but for mempool its unclear how you can do it safely
317 2017-09-28 19:23:55 0|wumpus|gmaxwell: we have to be realistic too
318 2017-09-28 19:24:00 0|sipa|wumpus: but on the next notification you'll notice it
319 2017-09-28 19:24:12 0|gmaxwell|wumpus: Is there a reason we can't give a reliable notification?
320 2017-09-28 19:24:13 0|wumpus|sipa: yes, that's why the zmq notifications have sequence numebrs too
321 2017-09-28 19:24:15 0|luke-jr|we probably don't want to use the same LP for wallet and non-wallet
322 2017-09-28 19:24:41 0|wumpus|sipa: you'll notice that you've lost an event, you just don't know what it is so need to do reconciliation in that case
323 2017-09-28 19:24:55 0|jonasschnelli|My LP PR (which I'm currently re-doing) has sequence numbers
324 2017-09-28 19:25:03 0|cfields|ah
325 2017-09-28 19:25:04 0|wumpus|gmaxwell: well the problem is that send buffers can be full
326 2017-09-28 19:25:17 0|jonasschnelli|If you miss a notification, do a data re-sync
327 2017-09-28 19:25:20 0|sipa|i wonder if we shouldn't think about something more generic... you configure "i have an RPC client, which is interested in all events which satisfy condition X, Y, Z....", and then there can be means for the client to read the event log, or get notifications when there are new events, ...
328 2017-09-28 19:25:21 0|wumpus|gmaxwell: 100%(ish) reliable notifications means storing them to disk if the client isn't processing them
329 2017-09-28 19:25:35 0|sipa|and the server keeps track of what the client has seen and hasn't
330 2017-09-28 19:25:51 0|BlueMatt|(as long as all of those events come out of the CValidationInterface =D)
331 2017-09-28 19:25:53 0|luke-jr|sipa: that makes me think of pruning - "I need to use block data, so don't prune until I say I'm done with it"
332 2017-09-28 19:25:54 0|wumpus|gmaxwell: I mean reliable messaging/notification is a huge topic in itself..
333 2017-09-28 19:26:03 0|luke-jr|sipa: not the same thing, but perhaps has some overlap
334 2017-09-28 19:26:05 0|gmaxwell|wumpus: or allowing the send buffer to grow to the point that it gets swapped out and ultimately crashes. :)
335 2017-09-28 19:26:11 0|sipa|luke-jr: indeed, it seems related
336 2017-09-28 19:26:19 0|wumpus|gmaxwell: yes, in which case it's lost too
337 2017-09-28 19:26:21 0|jonasschnelli|sipa: my LP PR does basically something like that. You can register a UUID for notifications and the server keeps track what you have received and what not
338 2017-09-28 19:26:30 0|jonasschnelli|It's multi-client capable
339 2017-09-28 19:26:46 0|wumpus|luke-jr: yeah there's certainly overlap there
340 2017-09-28 19:26:53 0|gmaxwell|wumpus: yes, though cold start init is something that everything has to have and has to have tested, as it happens at every start.
341 2017-09-28 19:26:57 0|wumpus|luke-jr: block consumers ideally should be able to set a low-water mark
342 2017-09-28 19:27:14 0|luke-jr|maybe they should share jonasschnelli's UUID
343 2017-09-28 19:27:18 0|wumpus|gmaxwell: well it needs reconciliation, you could also do that if you miss a notification ( which can be detected from the sequence number)
344 2017-09-28 19:27:40 0|wumpus|gmaxwell: so if you have something to handle potential crashes, you also have something to handle the case where a message gets lost
345 2017-09-28 19:27:42 0|luke-jr|although for block consumption, we'd want to store it in a persistent db IMO
346 2017-09-28 19:28:02 0|luke-jr|(or could use rwconf and have a config param, but that seems ugly for this)
347 2017-09-28 19:28:17 0|gmaxwell|obligitory question: Is any user asking for this or is it just interesting?
348 2017-09-28 19:28:40 0|jonasschnelli|gmaxwell: Yes. Me as an user... :)
349 2017-09-28 19:28:42 0|wumpus|yes yes yes
350 2017-09-28 19:28:49 0|luke-jr|gmaxwell: the block consumption part would allow Armory to do pruning, at least ;0
351 2017-09-28 19:28:51 0|wumpus|joinmarket for example would like a better notification mechanism
352 2017-09-28 19:28:53 0|jonasschnelli|(for the hardware wallet client i'm working)
353 2017-09-28 19:28:56 0|cfields|luke-jr: hmm, so clients could issue a single rpc command and have new blocks announcements replayed after a day offline?
354 2017-09-28 19:29:10 0|wumpus|gmaxwell: they currently have a hack where you have to set walletnotify in bitcoin.conf, which isn't very flexible and easy to forget
355 2017-09-28 19:29:16 0|luke-jr|cfields: I don't see why not
356 2017-09-28 19:29:23 0|wumpus|gmaxwell: if their software could just subscribe to events through RPC, that problem'd be solved
357 2017-09-28 19:29:34 0|cfields|that's interesting
358 2017-09-28 19:29:35 0|jonasschnelli|See also https://github.com/bitcoin/bitcoin/pull/10554
359 2017-09-28 19:29:36 0|gmaxwell|wumpus: why doesn't it just poll?
360 2017-09-28 19:29:36 0|wumpus|no need for restarting bitcoind even!
361 2017-09-28 19:29:38 0|jonasschnelli|#10554
362 2017-09-28 19:29:40 0|gribble|https://github.com/bitcoin/bitcoin/issues/10554 | ZMQ: add publishers for wallet transactions. by somdoron ÷ Pull Request #10554 ÷ bitcoin/bitcoin ÷ GitHub
363 2017-09-28 19:29:42 0|BlueMatt|jonasschnelli: if its not a big bother, then, as wumpus points out, can you ask the joinmarket guys if your proposed protocol is sufficient for them? would be good to be in sync on it
364 2017-09-28 19:29:53 0|luke-jr|related: my GUI NetWatch branch has a circular memory-efficient buffer of weak-linked txs and blocks
365 2017-09-28 19:29:53 0|wumpus|gmaxwell: because polling sucks
366 2017-09-28 19:29:56 0|jonasschnelli|BlueMatt: good point
367 2017-09-28 19:30:10 0|wumpus|it causes extra delays, at least, and uses more CPU time
368 2017-09-28 19:30:26 0|wumpus|(depending on how fast you poll)
369 2017-09-28 19:30:41 0|jonasschnelli|wumpus: and the UX may suck,... LP gives you a TX, block within ms not s
370 2017-09-28 19:30:52 0|gmaxwell|ISTM the caller will need a consierable amount of complexity to avoid losing data, vs sending a poll every coupld seconds. Polling faster than seconds hardly makes sense in the context of bitcoin in any case, since txn take seconds to propagate through the network.
371 2017-09-28 19:30:52 0|wumpus|I really don't understand why we're arguing whether to add a sane notification system at all and considering repetitive polling good enough
372 2017-09-28 19:31:09 0|gmaxwell|wumpus: because we already have one almost unused unreliable notification system.
373 2017-09-28 19:31:17 0|wumpus|sigh, never mind
374 2017-09-28 19:31:20 0|wumpus|another topic?
375 2017-09-28 19:31:25 0|jonasschnelli|sipa had one
376 2017-09-28 19:31:34 0|gmaxwell|bleh, I'm not trying to bludgon it.
377 2017-09-28 19:31:36 0|wumpus|and no, zmq is not unused
378 2017-09-28 19:31:53 0|jonasschnelli|IMO it is heavely used in some enterprises
379 2017-09-28 19:31:54 0|wumpus|just that you're not using or it's not good/reliable enough for you it doesn't mean no one is using it
380 2017-09-28 19:32:11 0|gmaxwell|I've never encountered someone using it in production. I don't doubt that it is somewhere.
381 2017-09-28 19:32:18 0|wumpus|as I've said many times, loss of messages can be handled if it can be detected, and it can be detected using the sequence numbers
382 2017-09-28 19:32:27 0|sipa|i think there is a lot of merit in creating a reliable event logging system for clients to observe
383 2017-09-28 19:32:37 0|luke-jr|BlueMatt: indeed, blocknotify is sane IMO
384 2017-09-28 19:32:42 0|sipa|if we have that, adding a notification for "you have new events!" seems both trivial and obvious
385 2017-09-28 19:32:52 0|jnewbery|suggested topic: next Bitcoin Core meetup
386 2017-09-28 19:32:59 0|jonasschnelli|BlueMatt: ZMQ / LP is "hey, you should poll now"
387 2017-09-28 19:33:00 0|cfields|agreed. and agree with wumpus. Seems like a no-brainer to me.
388 2017-09-28 19:33:01 0|luke-jr|jnewbery: another one?
389 2017-09-28 19:33:02 0|jonasschnelli|We only send hashes
390 2017-09-28 19:33:19 0|BlueMatt|jonasschnelli: I wouldnt even send hashes
391 2017-09-28 19:33:28 0|gmaxwell|But we don't get a report flow on it that suggests that its in use... And the advice I give is to poll because it's reliable, hard to get wrong, and has no scaling issues on any system that can keep up with the network. And the reason I was asking questions is because I was trying to understand what the gain in having another one would be... one thought I had was maybe it would be more reliab
392 2017-09-28 19:33:30 0|BlueMatt|just do the old "disconnect upon new data" pattern
393 2017-09-28 19:33:34 0|gmaxwell|le, but I see why thats hard.
394 2017-09-28 19:33:35 0|luke-jr|blocknotify='killall -USR1 programname' â˺
395 2017-09-28 19:34:09 0|sipa|19:19:49 < sipa> i'd like to bring up segwit wallet support
396 2017-09-28 19:34:21 0|wumpus|gmaxwell: you can do polling in addition to processing notifications, that's what I mean with 'reconciliation'
397 2017-09-28 19:34:25 0|morcos|notification system for topic suggestions?
398 2017-09-28 19:34:40 0|gmaxwell|Obviously if people want to work on it, I don't mind. I'll even spend some time reviewing it. But there are so many other things we've left half complete... so thats just my reservation. I'm sorry for frustrating you.
399 2017-09-28 19:35:02 0|wumpus|anyhow, time for sipa's topic
400 2017-09-28 19:35:07 0|wumpus|#topic segwit wallet support
401 2017-09-28 19:35:14 0|sipa|yay!
402 2017-09-28 19:35:15 0|morcos|for the record i'm also wary about adding more and more notification systems, but that's not to say i don't think we shouldn't improve from where we are now
403 2017-09-28 19:35:25 0|wumpus|morcos: you've just missed that topic
404 2017-09-28 19:35:30 0|wumpus|:p
405 2017-09-28 19:35:51 0|sipa|so, i have a PR #11403 which i think implements most of what we want, except some import/export and message signing
406 2017-09-28 19:35:53 0|gribble|https://github.com/bitcoin/bitcoin/issues/11403 | SegWit wallet support by sipa ÷ Pull Request #11403 ÷ bitcoin/bitcoin ÷ GitHub
407 2017-09-28 19:36:01 0|sipa|however, i think there are 2 differences compared to what we discussed before
408 2017-09-28 19:36:45 0|sipa|1) importprivkey works, and actually imports all corresponding addresses for that given key (P2PKH, P2SH-P2WPKH, P2WPKH)
409 2017-09-28 19:36:48 0|wumpus|nice
410 2017-09-28 19:37:43 0|sipa|that's not how i want things to work long term, but it's very hard and probably confusing to users to almost everywhere follow the "a key corresponds to all 3 forms of corresponding addresses", except when importing (and importing is inevitably needed anyway for testing)
411 2017-09-28 19:38:39 0|sipa|2) once you generate a segwit address with this patch, you can't really downgrade to older software anymore (unless you go fix your missing addresses with addwitnessaddress), though no new backup is needed
412 2017-09-28 19:39:06 0|luke-jr|why 2?
413 2017-09-28 19:39:07 0|BlueMatt|wait, why?
414 2017-09-28 19:39:08 0|morcos|2 confuses me
415 2017-09-28 19:39:20 0|sipa|which differs from the earlier idea of every new addresses effectively calling addwitnessaddress
416 2017-09-28 19:39:25 0|BlueMatt|yea, what we discussed was auto-addwitnessaddress
417 2017-09-28 19:39:35 0|morcos|i think it depends on what we are expecting 0.16 to do
418 2017-09-28 19:39:40 0|sipa|well, auto-addwitnessaddress doesn't actually achieve what you want either
419 2017-09-28 19:40:58 0|morcos|if the manual upgrade of a wallet to 0.16 is going to auto add all 3 versions of all keys, then what you are suggesting seems maybe ok... but that will lead to more bloat in 0.16 as opposed to just having the scripts already in the wallet moved over
420 2017-09-28 19:41:38 0|sipa|effectively what the patch does is just implicitly making redeemscripts for all your keys known, without writing them to the file
421 2017-09-28 19:42:01 0|meshcollider|Oh so if you wrote them to the file downgrading would be fine
422 2017-09-28 19:42:32 0|achow101|sipa: why not write them?
423 2017-09-28 19:42:33 0|sipa|meshcollider: not really... new transactions you receive while downgrading are risky
424 2017-09-28 19:42:42 0|sipa|achow101: bloat, and it doesn't fully solve the problem
425 2017-09-28 19:42:46 0|BlueMatt|sipa: yes, why did you decide to do that over the previous discussion?
426 2017-09-28 19:43:04 0|luke-jr|morcos: don't add segwit stuff for old keys..
427 2017-09-28 19:43:33 0|sipa|BlueMatt: because keys the old version adds to the keypool during auto-topup won't get their witnesses added, and will go undetected
428 2017-09-28 19:43:40 0|gmaxwell|meshcollider: writing them doesn't make downgrading fine though, because the downgraded one won't be adding them for things in the keypool. so in the presences of restores they'd potentially silently lose funds.
429 2017-09-28 19:43:56 0|luke-jr|would be pretty ugly if the address list tripled in size simply with an upgrade; ideally we should only list one type per key, perhaps excepting the import case
430 2017-09-28 19:44:07 0|BlueMatt|sipa: huh? I figured youd "auto-addwitnessaddress" when you getnewaddress/get the address for gui/etc
431 2017-09-28 19:44:10 0|BlueMatt|not when the key is generated
432 2017-09-28 19:44:18 0|sipa|BlueMatt: that won't work at all
433 2017-09-28 19:44:28 0|gmaxwell|luke-jr: we're kinda stuck with that right now, obviously when we change the wallet design we can move to a model where there is a 1:1 matching between chains and keys. But thats a major redesign.
434 2017-09-28 19:44:31 0|sipa|BlueMatt: as old versions will then miss all transactions received while offline
435 2017-09-28 19:44:33 0|BlueMatt|sipa: yes, please explain why
436 2017-09-28 19:44:33 0|luke-jr|gmaxwell: if you getnewaddress with an older version, you won't get a segwit address, so they don't *need* to be added..
437 2017-09-28 19:44:43 0|sipa|(their keypool entries won't have witnesses, so won't be watched for)
438 2017-09-28 19:44:48 0|luke-jr|gmaxwell: we can leave existing keys alone, at least
439 2017-09-28 19:44:49 0|BlueMatt|ah, i see your point
440 2017-09-28 19:44:57 0|gmaxwell|BlueMatt: then backup and restore is completely no durable and you'll miss payments if you start with a restored wallet...
441 2017-09-28 19:45:00 0|gmaxwell|yea.
442 2017-09-28 19:45:30 0|luke-jr|gmaxwell: only if you restore a backup with an old version?
443 2017-09-28 19:45:37 0|luke-jr|that seems like a very niche problem area
444 2017-09-28 19:45:43 0|sipa|there is a possible best-effort approach of adding witnesses for all keypool entries and new addresses... but given that that's not even water tight...
445 2017-09-28 19:45:52 0|luke-jr|"when restoring a backup, don't use old versions" seems the straightforward "fix"
446 2017-09-28 19:45:56 0|gmaxwell|luke-jr: no, the best we could do is store a flag where the segwittyness starts and handle that, but because users are _already_ using addwitnessaddress this would not resolve their current recovery problems while adding for all does.
447 2017-09-28 19:46:26 0|gmaxwell|luke-jr: this whole discussion is about old restores, if you don't do that all is fantastic in sipa's code.
448 2017-09-28 19:46:41 0|luke-jr|gmaxwell: so I'm a user. I upgrade, and suddenly my address list has 500 new addresses. So instead of making new ones, I just use those up..
449 2017-09-28 19:46:47 0|BlueMatt|sipa: so downgrades are broken anyway cause they wont know to scan for witness-ified scripts anyway
450 2017-09-28 19:46:51 0|BlueMatt|(and you have to do a rescan or so)
451 2017-09-28 19:46:55 0|gmaxwell|by old restores I mean downgrade.
452 2017-09-28 19:47:08 0|luke-jr|gmaxwell: it sounds like sipa's code will fail to work properly if you simply downgrade with a wallet that's used a segwit address
453 2017-09-28 19:47:20 0|luke-jr|no backup/restore involved
454 2017-09-28 19:47:27 0|BlueMatt|sipa: so it sounds like we're back to needing to bump wallet version?
455 2017-09-28 19:47:42 0|sipa|BlueMatt: that would be nice, yes...
456 2017-09-28 19:47:46 0|gmaxwell|luke-jr: right, it doesn't downgrade.
457 2017-09-28 19:48:06 0|gmaxwell|luke-jr: but downgrading is just not possible to support here. At best it can look kinda like it works but lose funds.
458 2017-09-28 19:48:10 0|BlueMatt|sipa: so are we back to the wallet-overhaul-ish approach, then?
459 2017-09-28 19:48:13 0|morcos|sipa: it would be really helpful if you would spell this all out in a document. including how it'll interact with 0.16
460 2017-09-28 19:48:18 0|luke-jr|if it doesn't downgrade, I see no value in this temporary approach
461 2017-09-28 19:48:25 0|sipa|morcos: it's spelled out
462 2017-09-28 19:48:26 0|sipa|BlueMatt: NO
463 2017-09-28 19:48:29 0|gmaxwell|jesus fucking christ.
464 2017-09-28 19:48:39 0|sipa|BlueMatt: all we need is a version number
465 2017-09-28 19:48:42 0|morcos|lets find flaws in the overall plan now, and not wait and realize we made a mistake now that makes 0.16 more difficult
466 2017-09-28 19:48:47 0|sipa|overhauling will take far longer
467 2017-09-28 19:48:49 0|morcos|sipa: where is it spelled out
468 2017-09-28 19:48:54 0|sipa|morcos: it doesn't make 0.16 harder
469 2017-09-28 19:48:55 0|gmaxwell|luke-jr: If you don't see value in supporting segwit this year then I don't have anything more to discuss with you.
470 2017-09-28 19:48:56 0|morcos|i agree, overhaul is goign to take a long time
471 2017-09-28 19:49:05 0|morcos|but i just want to understand now what we are going to do
472 2017-09-28 19:49:11 0|BlueMatt|sipa: well at a minimum its now blocked on hd upgrade, then, no?
473 2017-09-28 19:49:22 0|sipa|BlueMatt: no
474 2017-09-28 19:49:25 0|BlueMatt|why not?
475 2017-09-28 19:49:35 0|gmaxwell|BlueMatt: there is a pretty straight forward fix, set the version to maximum and introduce a new version field.
476 2017-09-28 19:49:48 0|BlueMatt|argh, lets not
477 2017-09-28 19:49:53 0|sipa|hd upgrade requires a new backup
478 2017-09-28 19:49:55 0|sipa|_this doesn't_
479 2017-09-28 19:50:13 0|BlueMatt|hd upgrade requires no more backup than keypool topup
480 2017-09-28 19:50:16 0|sipa|it should simply be "minimum software version to read this file is X"
481 2017-09-28 19:50:22 0|BlueMatt|(hd upgrade doesnt neccessarily imply you *must* wipe your keypool)
482 2017-09-28 19:50:36 0|sipa|BlueMatt: it will write a hd master key though, which must be backed up
483 2017-09-28 19:50:37 0|BlueMatt|(and is also quite simple)
484 2017-09-28 19:51:01 0|BlueMatt|sipa: no more than topping up your keypool? or you mean you'd want to be able to use segwit-wallet without keypool topup and with an encrypted (and locked) wallet?
485 2017-09-28 19:51:26 0|sipa|so to be clear... it *is* possible to make downgrade work, if restoring a backup with an older version isn't a concern - though at the cost of some bloat
486 2017-09-28 19:51:34 0|sipa|and it may make expectations unclear
487 2017-09-28 19:52:08 0|BlueMatt|you mean as long as you dont restore a backup, just use the latest wallet, right?
488 2017-09-28 19:52:15 0|BlueMatt|ie via the addwitnessaddress method?
489 2017-09-28 19:52:19 0|sipa|yes
490 2017-09-28 19:52:23 0|gmaxwell|restoring a backup is always a concern though. I don't understand why downgrading suddenly shows up as a hard requirement. It's something that you generally can't do with a new feature except through the cheat of introducing it first but disabled.
491 2017-09-28 19:52:52 0|BlueMatt|gmaxwell: yes, but we generally "support" it in the sense that you have to manually do -walletupgrade if you want new features
492 2017-09-28 19:52:57 0|sdaftuar|gmaxwell: i agree that restoring a backup is important, and supporting downgrade not a big deal
493 2017-09-28 19:53:01 0|morcos|sipa: i'm sorry if i missed this, but can you point me to where this is spelled out or just explain what we will do when you upgrade to a 0.16 wallet? Add 3x number of keys pkscripts to your ismine set? which we'll do for all keys in your wallet for all time?
494 2017-09-28 19:53:05 0|gmaxwell|BlueMatt: don't restore a backup, don't run concurrent copies... perhaps some other corner cases we haven't considered.
495 2017-09-28 19:53:07 0|BlueMatt|and thus we support running the latest version and going back to the previous release eg if there's some critical issue for you
496 2017-09-28 19:53:14 0|sipa|> Every wallet key implicitly adds its corresponding P2WPKH script to the wallet's known redeemscripts - without writing to the file. This is simpler, needs significantly less space on disk, needs no one-time upgrade for existing keys, but does mean that once a SegWit address has been used, you can't really downgrade to older software anymore.
497 2017-09-28 19:53:16 0|BlueMatt|"don't restore a backup"???
498 2017-09-28 19:53:22 0|sipa|^ from my PR description
499 2017-09-28 19:53:42 0|BlueMatt|sipa: yes, to me that implies we need to bump wallet version
500 2017-09-28 19:53:45 0|morcos|i would distinguish that from the addwitness approach where you wouldn't have to do that (but you could have an i'm upgrading from a backup option that does do that to make sure you didn't miss anything)
501 2017-09-28 19:53:53 0|BlueMatt|which is fine, but that leads us back to the question of hd upgrade
502 2017-09-28 19:54:05 0|BlueMatt|we can do some hack to let people upgrade to segwit-wallet without an hd upgrade
503 2017-09-28 19:54:13 0|BlueMatt|or we can jsut implement hd upgrade, which I think is rather trivial
504 2017-09-28 19:54:28 0|promag|instagibbs: is https://github.com/bitcoin/bitcoin/pull/11407/files#diff-06ca130427d8b52a085dc51ffea1a541R545 really necessary?
505 2017-09-28 19:54:33 0|gmaxwell|BlueMatt: Trivial but invalidates their backups.
506 2017-09-28 19:54:38 0|instagibbs|promag, meeting wait please
507 2017-09-28 19:54:47 0|BlueMatt|gmaxwell: see previous discussion on keypool? or do you mean locked wallets?
508 2017-09-28 19:54:51 0|BlueMatt|thats a rather narrow use-case, no?
509 2017-09-28 19:55:16 0|sipa|BlueMatt: yeah, i don't know
510 2017-09-28 19:55:26 0|sipa|i may be convinced of doing the addwitnessaddress approach
511 2017-09-28 19:55:56 0|sipa|though i'm uneasy with the inability to restore while downgrading
512 2017-09-28 19:56:07 0|BlueMatt|yea, I'd tend to agree
513 2017-09-28 19:56:19 0|luke-jr|what if we bump the wallet version only in backups?
514 2017-09-28 19:56:21 0|sipa|on the other hand - everything will be fixed by upgrading again and rescanning
515 2017-09-28 19:56:27 0|gmaxwell|BlueMatt: hdupgrade invalidates backups, even without a locked wallet. Though thats another point you have to unlock to do it.
516 2017-09-28 19:56:36 0|wumpus|3 minutes to go
517 2017-09-28 19:57:06 0|gmaxwell|I think if restore isn't reliable we shouldn't run with the older version. Thats a big footgun in a mixed wallet where you may not notice a non-trivial percentage of funds vanishing.
518 2017-09-28 19:57:24 0|luke-jr|backups don't need to use the same version as the latest-wallet
519 2017-09-28 19:57:35 0|sipa|luke-jr: people use cp to make backups
520 2017-09-28 19:57:40 0|luke-jr|sipa: that's broken
521 2017-09-28 19:57:44 0|luke-jr|:/
522 2017-09-28 19:57:52 0|sipa|luke-jr: irrelevant - it will cause lost funds
523 2017-09-28 19:58:05 0|luke-jr|it can cause lost funds even as-is
524 2017-09-28 19:58:27 0|gmaxwell|luke-jr: yes, but it's a minor addition to make it not load in older software.
525 2017-09-28 19:58:53 0|jnewbery|suggested topic: next Bitcoin Core meetup
526 2017-09-28 19:58:53 0|sipa|so, open for discussion perhaps on the PR: auto-add witnesses so downgrading when not restoring a backup works, or some scheme of versioning to make old software fail
527 2017-09-28 19:58:58 0|sipa|endtopic
528 2017-09-28 19:59:00 0|wumpus|#topic suggested topic: next Bitcoin Core meetup (jnewbery)
529 2017-09-28 19:59:02 0|BlueMatt|sdaftuar: points out that downgrade + restore is always broken
530 2017-09-28 19:59:06 0|achow101|jnewbery: already?
531 2017-09-28 19:59:09 0|BlueMatt|cause even if you bump the version number....
532 2017-09-28 19:59:11 0|instagibbs|NYC :D
533 2017-09-28 19:59:15 0|BlueMatt|hence why its nice to have an explicit walletupgrade
534 2017-09-28 19:59:35 0|jnewbery|ok, just a quick announcement - we're in the early stages of planning the next one in NYC the week of March 5th 2018
535 2017-09-28 19:59:35 0|sipa|jnewbery: what timeframe were you thinking of?
536 2017-09-28 19:59:41 0|luke-jr|BlueMatt: can you elaborate on sdaftuar's point after meeting?
537 2017-09-28 19:59:45 0|jnewbery|more details to follow by email
538 2017-09-28 19:59:47 0|BlueMatt|luke-jr: yes
539 2017-09-28 20:00:02 0|wumpus|achow101: better to plan it long in advance so people can take it into account, instead of on short notice
540 2017-09-28 20:00:16 0|luke-jr|I'm expecting a baby in February, so I will probably pass on the March meetup
541 2017-09-28 20:00:18 0|cfields|jnewbery: woohoo! thanks for planning!
542 2017-09-28 20:00:18 0|jonasschnelli|jnewbery: thanks for the date! thanks for organising.
543 2017-09-28 20:00:25 0|sipa|jnewbery: cool, on the way back from Financial Crypto :)
544 2017-09-28 20:00:27 0|instagibbs|\o/ marked on it calender
545 2017-09-28 20:00:31 0|wumpus|jnewbery: works for me
546 2017-09-28 20:01:13 0|cfields|luke-jr: didn't know that, congrats :)
547 2017-09-28 20:01:19 0|wumpus|jonasschnelli: that's two times US in a row, let's plan another one in europe next
548 2017-09-28 20:01:20 0|luke-jr|cfields: thx
549 2017-09-28 20:01:46 0|promag|europe +1
550 2017-09-28 20:01:48 0|jonasschnelli|wumpus: I can organise fall 2018 in Europe
551 2017-09-28 20:01:51 0|luke-jr|we haven't done Australia or Russia yet. but those might just be inconvenient for too many people :p
552 2017-09-28 20:01:53 0|jnewbery|New York is almost in Europe. Just a short flight :)
553 2017-09-28 20:02:00 0|meshcollider|Australia +1 ;)
554 2017-09-28 20:02:02 0|achow101|lol
555 2017-09-28 20:02:02 0|luke-jr|jnewbery: lol
556 2017-09-28 20:02:17 0|jonasschnelli|jnewbery: hehe
557 2017-09-28 20:02:23 0|wumpus|austrialia would be fine with me too, russia meh
558 2017-09-28 20:02:27 0|instagibbs|not incredibly bad for Tokyo folks
559 2017-09-28 20:02:48 0|wumpus|anyhow thanks everyone, it's time to wrap up the meeting
560 2017-09-28 20:03:06 0|jonasschnelli|Iceland would be cool...
561 2017-09-28 20:03:19 0|jonasschnelli|and cold
562 2017-09-28 20:03:20 0|BlueMatt|wumpus: long since time
563 2017-09-28 20:03:20 0|wumpus|jonasschnelli: finally a meeting in UTC+0!
564 2017-09-28 20:03:21 0|meshcollider|https://www.irccloud.com/pastebin/XrHj6tr8
565 2017-09-28 20:03:24 0|lightningbot|Meeting ended Thu Sep 28 20:03:23 2017 UTC. Information about MeetBot at http://wiki.debian.org/MeetBot . (v 0.1.4)
566 2017-09-28 20:03:24 0|wumpus|#endmeeting
567 2017-09-28 20:03:25 0|lightningbot|Log: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-09-28-19.01.log.html
568 2017-09-28 20:03:25 0|lightningbot|Minutes: http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-09-28-19.01.html
569 2017-09-28 20:03:25 0|lightningbot|Minutes (text): http://www.erisian.com.au/meetbot/bitcoin-core-dev/2017/bitcoin-core-dev.2017-09-28-19.01.txt
570 2017-09-28 20:03:48 0|meshcollider|Oops didn't mean to post that at a snippet lol
571 2017-09-28 20:04:19 0|jnewbery|sipa: is there a write-up of your current plans for the wallet in 0.15.0.1 and 0.16? I saw the PR notes, but I feel like I don't fully understand the longer term plans and the concerns that were raised in the meeting
572 2017-09-28 20:05:01 0|luke-jr|meshcollider: eh, people can still review/open PRs without meeting discussion ;)
573 2017-09-28 20:05:22 0|cfields|jonasschnelli: got a few min to talk about 10387?
574 2017-09-28 20:05:35 0|wumpus|yes, meetings certainly aren't intended to become a bottleneck for discussion
575 2017-09-28 20:06:02 0|sipa|jnewbery: sounds like something i need to write up
576 2017-09-28 20:06:17 0|instagibbs|+1
577 2017-09-28 20:06:31 0|wumpus|IRC meetings are basically for topics that need as many people as possible to give input
578 2017-09-28 20:06:47 0|wumpus|for the rest please just discuss on github or IRC outside the meeting...
579 2017-09-28 20:06:55 0|sipa|jonasschnelli: iceland can be up to 20C in summer :)
580 2017-09-28 20:07:13 0|jnewbery|sipa: thanks :)
581 2017-09-28 20:07:35 0|meshcollider|Yeah although the PRs Luke linked were in another repo and obviously super controversial, not just review heh
582 2017-09-28 20:08:23 0|meshcollider|And yeah sipa: a writeup would be nice yeah I'm still confused as well haha
583 2017-09-28 20:11:05 0|sipa|jonasschnelli: ... if you're lucky
584 2017-09-28 20:24:21 0|wraithm|24 hours of sun heats things up (sort of)
585 2017-09-28 22:31:07 0|promag|sipa: is bench/bech32.cpp useful?
586 2017-09-28 22:32:15 0|sipa|promag: it's just for addresses... hardly performance critical
587 2017-09-28 22:33:13 0|promag|theres is base58, for comparison?
588 2017-09-28 22:35:06 0|gmaxwell|there is bench base58 because someone wanted to make 'optimizations' that sounded reasonable, but it's not reasonable to optimize things without a benchmark. :)
589 2017-09-28 22:35:39 0|gmaxwell|if someone wanted to 'optimize' bech32 though they're just rip out the C++ one and put in the C one. :P
590 2017-09-28 22:36:38 0|promag|heh that was me #7656
591 2017-09-28 22:36:41 0|gribble|https://github.com/bitcoin/bitcoin/issues/7656 | Improve EncodeBase58 performance by promag ÷ Pull Request #7656 ÷ bitcoin/bitcoin ÷ GitHub
592 2017-09-28 22:36:55 0|gmaxwell|:)
593 2017-09-28 22:37:39 0|gmaxwell|personally I'd just suggest waiting until someone wants to optimize it, though that code was already pessimized for the sake of readability, and the C version is quite a bit faster.
594 2017-09-28 22:39:05 0|promag|why not add the C version?
595 2017-09-28 22:39:15 0|sipa|it's less readable
596 2017-09-28 22:39:33 0|sipa|we prefer C++ish code over Cish code where possible
597 2017-09-28 22:39:35 0|gmaxwell|I don't think there is any case where the performance matters here.
598 2017-09-28 22:39:47 0|gmaxwell|or at least where a factor of two would matter.
599 2017-09-28 22:39:50 0|promag|it's also the reference implementation
600 2017-09-28 22:40:17 0|sipa|there's also a C++ reference implementation
601 2017-09-28 22:40:25 0|sipa|(which the code in my PR is based on)
602 2017-09-28 22:41:35 0|promag|just curious.. anyway I've added bench/bech32.cpp while reviewing #11167
603 2017-09-28 22:41:39 0|gribble|https://github.com/bitcoin/bitcoin/issues/11167 | Full BIP173 (Bech32) support by sipa ÷ Pull Request #11167 ÷ bitcoin/bitcoin ÷ GitHub
604 2017-09-28 23:58:47 0|promag|addwitnessaddress doesn't lock wallet, it should?
605 2017-09-28 23:59:50 0|sipa|i don't think so