1 2012-05-31 00:04:12 <Rebroad> I'm trying to compile bitcoin-qt on windows.... but I think it's having trouble running genbuild.sh....
  2 2012-05-31 00:04:39 <Rebroad> I've followed the intructions in readme-qt.rst...
  3 2012-05-31 00:08:24 <D34TH> yea
  4 2012-05-31 00:08:29 <D34TH> it doesnt liek to build
  5 2012-05-31 00:12:52 <BlueMatt> yea, have fun
  6 2012-05-31 00:13:00 <BlueMatt> its kinda a mess
  7 2012-05-31 00:13:06 <BlueMatt> if you can help fix it, please pull request
  8 2012-05-31 00:17:15 <Rebroad> who is currently compiling the windows executables?
  9 2012-05-31 00:17:19 <Rebroad> and how are they doing it?>
 10 2012-05-31 00:17:46 <BlueMatt> on ubuntu
 11 2012-05-31 00:17:49 <BlueMatt> cross-compiled
 12 2012-05-31 00:33:49 <Rebroad> ah.. just needed the FORCE for build.h removing...
 13 2012-05-31 00:37:30 <D34TH> if you have git for windows add it to qt creators path and that should fix build.h
 14 2012-05-31 00:49:37 <gribble> New news from bitcoinrss: rebroad opened issue 1401 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/issues/1401>
 15 2012-05-31 00:50:30 <Rebroad> D34TH, ah, thanks. will try that... the docs probably need updating to mention that then
 16 2012-05-31 00:50:41 <D34TH> its a hackfix
 17 2012-05-31 00:50:47 <D34TH> i really wouldnt recommend it
 18 2012-05-31 00:51:18 <Rebroad> recommend what? using git?
 19 2012-05-31 00:51:37 <D34TH> the hack way it uses sh
 20 2012-05-31 00:52:24 <Rebroad> what should it use?
 21 2012-05-31 00:52:48 <D34TH> honestly it shouldnt
 22 2012-05-31 00:52:51 <D34TH> but it works
 23 2012-05-31 00:53:17 <Rebroad> did you just try it?
 24 2012-05-31 00:53:24 <D34TH> ive been trying it
 25 2012-05-31 00:53:30 <D34TH> i cant get the right deps
 26 2012-05-31 00:53:40 <D34TH> but i got the system working
 27 2012-05-31 00:53:40 <Rebroad> you've got it to compile using Qt Creator?
 28 2012-05-31 00:53:45 <D34TH> in the past yes
 29 2012-05-31 00:54:05 <Rebroad> ah, and then it broke ?
 30 2012-05-31 00:54:08 <D34TH> yea
 31 2012-05-31 00:54:21 <Rebroad> can we isolate when it broke?
 32 2012-05-31 00:54:24 <D34TH> nope
 33 2012-05-31 01:00:53 <D34TH> hmm /dev/kvm doesnt exist
 34 2012-05-31 01:00:54 <D34TH> D:
 35 2012-05-31 01:12:55 <D34TH> FATAL: Error inserting kvm_amd (/lib/modules/3.2.0-24-generic/kernel/arch/x86/kvm/kvm-amd.ko): Operation not supported
 36 2012-05-31 01:12:56 <D34TH> damn
 37 2012-05-31 01:12:58 <D34TH> hmm
 38 2012-05-31 01:13:01 <D34TH> livecd time
 39 2012-05-31 01:14:07 <lianj> maybe its no amd? :P
 40 2012-05-31 01:14:13 <D34TH> its def amd
 41 2012-05-31 01:14:51 <splatster> The CPU architecture is a lie!
 42 2012-05-31 01:15:00 <D34TH> lol
 43 2012-05-31 01:15:00 <splatster> </bad Portal reference>
 44 2012-05-31 01:15:44 <D34TH> im going to make a liveusb to gitian it
 45 2012-05-31 01:17:16 <D34TH> oh god
 46 2012-05-31 01:17:21 <D34TH> i might as well just wubi
 47 2012-05-31 01:17:30 <D34TH> because livecd disables repos
 48 2012-05-31 01:24:00 <D34TH> i wonder
 49 2012-05-31 01:24:26 <D34TH> bluematt how did you get bitcoin-qt built for windows on jenkins
 50 2012-05-31 01:26:10 <gmaxwell> D34TH: we cross compile for windows
 51 2012-05-31 01:26:34 <D34TH> i know i wanted to know how bluematt got it on jenkins
 52 2012-05-31 01:26:55 <gmaxwell> ... by just setting up the commands. Jenkins can just run any commands you want.
 53 2012-05-31 01:27:17 <D34TH> ive never used it before
 54 2012-05-31 01:27:20 <D34TH> lol
 55 2012-05-31 01:27:54 <gmaxwell> Jenkins is like fancy java based cron with a snazzy web ui.
 56 2012-05-31 01:29:45 <D34TH> ahh
 57 2012-05-31 01:30:21 <D34TH> well ive decided to get a ubuntu liveusb so i can build it
 58 2012-05-31 01:57:07 <D34TH> gmaxwell, do you think a livecd will be able to use gitian to build
 59 2012-05-31 01:57:13 <D34TH> or will it crash
 60 2012-05-31 02:04:16 <uzyn> Hello
 61 2012-05-31 02:04:34 <uzyn> I'm trying to run bitcoind as a non-root user, but it keeps trying to create .bitcoin at /root/.bitcoin
 62 2012-05-31 02:04:41 <uzyn> here's as pastebin
 63 2012-05-31 02:04:42 <uzyn> http://pastebin.com/V3gNfvFg
 64 2012-05-31 02:04:56 <uzyn> Any idea how I can force it to other dir?
 65 2012-05-31 02:06:17 <gmaxwell> are you su-ing to become the non-root user?
 66 2012-05-31 02:06:23 <uzyn> yup
 67 2012-05-31 02:06:40 <uzyn> that command was run from root, as I wanted to do it from monit
 68 2012-05-31 02:06:54 <gmaxwell> add a -i to your sudo
 69 2012-05-31 02:06:57 <uzyn> if I login as btcuser and run that command, it would work
 70 2012-05-31 02:07:01 <uzyn> oh
 71 2012-05-31 02:07:27 <gmaxwell> (at least I think it's -i .. whatever gives you an enviroment like a login shell)
 72 2012-05-31 02:07:48 <uzyn> Now I get this: http://pastebin.com/N1FREmTp
 73 2012-05-31 02:07:53 <uzyn> hmm
 74 2012-05-31 02:07:59 <uzyn> I wonder what flags monit use
 75 2012-05-31 02:11:18 <gmaxwell> go delete whatever you have in .bitcoin (assuming you don't have a wallet with funds in it)
 76 2012-05-31 02:12:10 <Diablo-D3> Dragon is returning home starting 2:30 AM EDT
 77 2012-05-31 02:12:52 <uzyn> gmaxwell: I have, and it's already backed up. ~/.bitcoin is fine too if I log in as the user and runs the same command without sudoing from root. But when it's sudo -u from root, it tries to use /root/.bitcoin even if I explicitly name the datadir
 78 2012-05-31 02:14:28 <gmaxwell> uzyn: I told you to use -i
 79 2012-05-31 02:14:53 <gmaxwell> and you got a different error, thats progress.
 80 2012-05-31 02:16:17 <uzyn> oh
 81 2012-05-31 02:16:21 <uzyn> thanks. let me give that a try
 82 2012-05-31 02:16:29 <TuxBlackEdo> different errors = progress
 83 2012-05-31 02:16:38 <luke-jr> su -
 84 2012-05-31 02:16:39 <luke-jr> or sudo -i
 85 2012-05-31 02:16:55 <TuxBlackEdo> yeah i would so "su - btcuser"
 86 2012-05-31 02:16:58 <TuxBlackEdo> do*
 87 2012-05-31 02:17:05 <uzyn> actually I'm not in the mercy to specify the flags as it all depends on monit.. I'm just guessing monit uses sudo -u, which may also be sudo -u -i
 88 2012-05-31 02:17:17 <uzyn> anyway I will work on the database issue be starting .bitcoin from fresh
 89 2012-05-31 02:19:28 <luke-jr> sudo -u requires a username
 90 2012-05-31 02:19:30 <luke-jr> sudo -u foobar -i
 91 2012-05-31 02:20:59 <uzyn> luke-jr: thanks. Yup. I did specify a username
 92 2012-05-31 02:29:50 <Cory> I can't paste an address with unallowed characters into the "pay to:" field in -qt on Windows unless I use the "paste address from clipboard" button (so I can't use ctrl + v or the right-click menu, yet the button works). Is that intentional?
 93 2012-05-31 02:36:59 <D34TH> well that was disappointing
 94 2012-05-31 02:37:03 <D34TH> i got kvm working
 95 2012-05-31 02:37:09 <D34TH> but couldnt write to /tmp
 96 2012-05-31 02:37:12 <D34TH> because it was a livecd
 97 2012-05-31 02:49:54 <luke-jr> Cory: report a bug
 98 2012-05-31 03:37:41 <sipa> D34TH: as some people told you a few days ago: the VM inside probably doesn't support hardware virtualization
 99 2012-05-31 03:37:54 <D34TH> it says it does
100 2012-05-31 03:38:02 <D34TH> which is disappointing
101 2012-05-31 03:38:08 <Diablo-D3> that can work
102 2012-05-31 03:38:12 <Diablo-D3> but you gotta be careful with it
103 2012-05-31 03:38:18 <Diablo-D3> like kvm I think still wont work right
104 2012-05-31 03:38:27 <Diablo-D3> but xen will let you have hw virt kvms
105 2012-05-31 03:38:33 <D34TH> i tried a livecd but tmp was mounted nodev
106 2012-05-31 03:38:58 <D34TH> but if i can edit that
107 2012-05-31 03:38:59 <D34TH> gold
108 2012-05-31 03:39:22 <sipa> D34TH: yes your VM program *uses* hardware virt, but it does not provide that *inside* the created VM
109 2012-05-31 03:39:48 <Diablo-D3> vm inside of vm is tricky if the vm doesnt understand its in a vm
110 2012-05-31 03:40:14 <sipa> exactly, it can work, but usually it doesn't
111 2012-05-31 03:40:42 <Diablo-D3> its on kvm's todo list to paravirtualize the hal for that
112 2012-05-31 03:43:06 <D34TH> if i could just edit the /etc/fstab and have it save
113 2012-05-31 03:43:10 <D34TH> id be golden
114 2012-05-31 03:49:01 <D34TH> i wonder if i should temporarily wubi for it
115 2012-05-31 04:14:03 <D34TH> bbl wubi
116 2012-05-31 04:30:55 <d34th> good news
117 2012-05-31 04:31:05 <d34th> after a little  coaxing wubi is working with kvm
118 2012-05-31 04:31:57 <d34th> now im getting the prereqs so ir doesnt scream at me
119 2012-05-31 04:34:14 <TuxBlackEdo> http://www.nasa.gov/multimedia/nasatv/index.html <- coverage live now!
120 2012-05-31 04:35:34 <Diablo-D3> spacex dragon is returning home now, live coverage: http://www.nasa.gov/multimedia/nasatv/index.html
121 2012-05-31 04:55:22 <d34th> hey sipa, is it normal for
122 2012-05-31 04:55:30 <d34th> 02:48:36,110 INFO    : Calling hook: bootstrap
123 2012-05-31 04:55:36 <d34th> and its 02:55
124 2012-05-31 04:55:42 <d34th> still stuck
125 2012-05-31 05:37:40 <gribble> New news from bitcoinrss: rPman opened issue 1402 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/issues/1402>
126 2012-05-31 06:29:24 <eps> ;;bc,tslb
127 2012-05-31 08:09:55 <Rebroad> is anyone familiar with running rebase with -p and -i ?
128 2012-05-31 08:22:04 <sipa> Rebroad: never used -p, but i'm familiar with -i
129 2012-05-31 08:23:22 <Rebroad> -p preserves merges.. I'd like to do that so that my commit history shows both parents, but when used with -i I don't understand what it's doing...
130 2012-05-31 10:38:53 <BlueMatt> gmaxwell: hmm...that weird pruning 1898834 CTxIndex's result from last night is looking right... -checkblocks up to the last checkpoint (where it prunes to) -checklevel=6 finds no errors, and I synced a few thousand blocks last night after pruning with no issues...
131 2012-05-31 10:39:06 <BlueMatt> sipa: had you not calculated how many txes could be pruned previously?
132 2012-05-31 10:39:46 <BlueMatt> if pruning really is able to remove nearly a 1/3 of the items in blkindex.dat Im gonna be amazed
133 2012-05-31 10:41:51 <sipa> unfortunately, most of the space is taken by transactions in blocks, not by the index
134 2012-05-31 10:42:14 <sipa> though pruning the index sounds easy to implement
135 2012-05-31 10:47:37 <BlueMatt> it was
136 2012-05-31 10:47:52 <BlueMatt> the idea is that space isnt the problem - its too much time looking up txes in the index
137 2012-05-31 10:48:08 <BlueMatt> though it appears bdb's delete is entirely lazy, so it may not help
138 2012-05-31 10:48:43 <BlueMatt> but, yea  it appears pruning txindex up to the most recent checkpoint removes 1,898,834 CTxIndexs from blkindex.dat
139 2012-05-31 10:51:56 <BlueMatt> which is just slightly more than 1/2 of blkindex.dat
140 2012-05-31 10:54:05 <luke-jr_> Diablo-D3: nested virtualization is fine in KVM
141 2012-05-31 10:54:17 <luke-jr_> except for a kernel bug that makes it kernel panic every few months
142 2012-05-31 11:41:18 <rebroad> hmmm. github problems.. I'm pushing but nothing's appearing.. :-s
143 2012-05-31 11:53:14 <Diablo-D3> [08:54:05] <luke-jr_> Diablo-D3: nested virtualization is fine in KVM
144 2012-05-31 11:53:16 <Diablo-D3> dont tell me
145 2012-05-31 11:53:19 <Diablo-D3> every 42 days?
146 2012-05-31 11:53:33 <sipa> 49.7 days probably
147 2012-05-31 11:53:34 <Diablo-D3> last time I noticed, kvm couldnt do it yet
148 2012-05-31 11:53:39 <Diablo-D3> sipa: er right
149 2012-05-31 11:53:41 <Diablo-D3> that
150 2012-05-31 11:53:56 <sipa> http://support.microsoft.com/kb/216641
151 2012-05-31 11:54:15 <Diablo-D3> yeah exactly
152 2012-05-31 11:54:23 <Diablo-D3> a 32 bit counter of ms or whatever
153 2012-05-31 11:55:07 <luke-jr_> Diablo-D3: not predictable
154 2012-05-31 11:55:22 <luke-jr_> https://bugzilla.kernel.org/show_bug.cgi?id=42980
155 2012-05-31 11:55:27 <Diablo-D3> huh, might be a failure to roll a counter over
156 2012-05-31 11:55:43 <luke-jr_> no, page fault when the kernel can't handle it
157 2012-05-31 11:55:46 <luke-jr_> or something like that
158 2012-05-31 11:56:13 <Diablo-D3> huh, wonder why its doing that
159 2012-05-31 11:56:21 <luke-jr_> https://bugzilla.kernel.org/show_bug.cgi?id=42980#c5
160 2012-05-31 12:12:38 <gavinandresen> I've been thinking about lower-level RPC commands for creating/sending transactions, looking for feedback:  https://gist.github.com/2839617
161 2012-05-31 12:15:59 <sipa> gavinandresen: i was thinking about something even more low-level; have one "transaction being prepared" in memory, and have commands for 1) adding outputs 2) adding inputs (which become temporarily locked) 3) "completing" a transaction (add inputs so net balance is positive) 4) dumping the constructed transaction as hex/base64 5) broadcasting it 6) aborting it
162 2012-05-31 12:17:18 <gavinandresen> I'd like to keep the RPC interface stateless
163 2012-05-31 12:17:44 <gavinandresen> ... so I don't like the 'transaction being prepared' bit
164 2012-05-31 12:17:48 <sipa> hmm, that's probably better indeed
165 2012-05-31 12:18:14 <gavinandresen> A way to mark inputs as "don't use" might be good, but I'm not sure it is necessary
166 2012-05-31 12:18:38 <gavinandresen> If you're using the low-level RPC calls then you can probably keep track of that yourself.
167 2012-05-31 12:19:17 <gavinandresen> (and if you're using the low-level RPC then you probably shouldn't combine it with the high-level sends anwyay)
168 2012-05-31 12:20:14 <sipa> there are two layers probably; one where you just supply all transaction information yourself, and only use the keystore part of the wallet to create signatures
169 2012-05-31 12:20:18 <gavinandresen> I should add "Testing/Debugging" as one of the motivating use cases
170 2012-05-31 12:20:35 <sipa> and another that does use the wallet as a transaction store for creating them
171 2012-05-31 12:21:29 <gavinandresen> There will be a third layer, too, of people who keep the private keys out of bitcoind and just want it to act as an interface to the network.
172 2012-05-31 12:22:00 <sipa> true, but there's already jeff's  sendrawtx for that
173 2012-05-31 12:22:19 <gavinandresen> I need to look at jgarzik's transaction filter notification stuff a little harder, that plus sendrawtx might be sufficient for that third style of use
174 2012-05-31 12:22:41 <gavinandresen> RE: sendrawtx : any objection to having it return the txid instead of 'true' ?
175 2012-05-31 12:23:13 <sipa> if you want that third layer, you probably don't want to bother using rpc commands to construct; you'll want a bitcoin library to build it
176 2012-05-31 12:23:20 <sipa> i don't care
177 2012-05-31 12:23:43 <sipa> if you call sendrawtx, you can hash it yourself too, so returning the hash doesn't add much functionality, but it may be useful
178 2012-05-31 12:23:56 <gavinandresen> I just like consistency with the other send commands.
179 2012-05-31 12:24:07 <kinlo> is it possible to use the same format of bip10 for those things?  ie, regardless of the fact that multisigs are used, I'd think a createtransaction can be used to create a TxDP just by specifying the input tx'es and outputs, then a seperate signwhatever you can, and finally a submitSignedTxDP
180 2012-05-31 12:24:33 <gavinandresen> kinlo: I've got issues with BIP 10....
181 2012-05-31 12:25:03 <kinlo> I liked it after reading it - I'd love to hear your issues
182 2012-05-31 12:25:51 <gavinandresen> My big issue with BIP 10 is why invent Yet Another Serialization Format?  We've already got JSON and the network serialization format.
183 2012-05-31 12:26:03 <sipa> and base58, and base64, and hex
184 2012-05-31 12:26:17 <kinlo> true
185 2012-05-31 12:26:26 <sipa> (for addresses/secrets, signatures, and pubkeys, respectively)
186 2012-05-31 12:26:48 <gavinandresen> I see a distinction between encodings and formats, but yeah, we've got too many
187 2012-05-31 12:27:17 <kinlo> I guess json would be the way to go
188 2012-05-31 12:27:27 <sipa> gavinandresen: by the way, any further comments on #1389? i know you didn't like the variable defaults sometimes, but i think they do what people would expect and won't hurt people who aren't aware of changes
189 2012-05-31 12:27:33 <kinlo> much easier to parse, more standard libraries, same for base64
190 2012-05-31 12:27:41 <gavinandresen> I'm proposing using the network serialization, hex-encoded, for the RPC.
191 2012-05-31 12:29:06 <gavinandresen> RE: 1389 :  I'll look at it again.  Is there a "run inside tor" meta-argument that just sets a bunch of other flags?  That's the direction I think makes sense
192 2012-05-31 12:30:20 <sipa> gavinandresen: in a discussion with gmaxwell we came to the conclusion that all tor-specific defaults make sense anytime you are behind a proxy (not just tor), so just -proxy=<tor> will give you what you expect
193 2012-05-31 12:31:09 <sipa> mainly not listening when behind a proxy
194 2012-05-31 12:32:02 <sipa> gavinandresen: i wonder; this network-serialized prepared transaction... i suppose with potentially missing signatures in it
195 2012-05-31 12:32:49 <sipa> you're going to need to deserialize, sign, and serialize again, since the size of the signature isn't necessarily known in advance
196 2012-05-31 12:33:32 <sipa> i wonder if it should be allowed to have entire missing txins?
197 2012-05-31 12:34:32 <gavinandresen> RE: 1389: lines of code like this make me not like it:  fNoListen = !GetBoolArg("-listen", mapArgs.count("-bind") || (!mapArgs.count("-connect") && !fProxy));
198 2012-05-31 12:35:24 <gavinandresen> ... maybe I'm just getting old and grumpy
199 2012-05-31 12:35:43 <sipa> (i'm open to discussing whether -connect should influence -listen; i always assumed it did, and others too, but apparently that wasn't the case)
200 2012-05-31 12:36:24 <sipa> however if you specify -bind you definitely want listening, and if you specificy -proxy, you typically don't (and changing that would hurt privacy of people already running behind tor)
201 2012-05-31 12:37:47 <sipa> https://github.com/sipa/bitcoin/blob/e65a3e50b8885148196a6b9c83bebeded57d0eb8/doc/Tor.txt -> that's the Tor documentation file, assuming #1389
202 2012-05-31 12:39:03 <gavinandresen> sipa: I'm not arguing about the logic of what switches on/off what, I'm just saying I like the SoftSetBoolArg() approach better because it makes it much clearer what influences what.
203 2012-05-31 12:39:34 <gavinandresen> e.g. if (proxy set) then SoftSetBoolArg("-listen", 0); SoftSetBoolArg("whatever else", 1), etc
204 2012-05-31 12:40:04 <sipa> oh, really? i hate softsetboolarg - you have to go check the order in which soft sets are done, and then check the line where the actual argument is requested again
205 2012-05-31 12:41:40 <sipa> here the entire logic that influences an option is in one line
206 2012-05-31 12:41:49 <gavinandresen> one impenetrable line
207 2012-05-31 12:41:54 <sipa> personal preference, i suppose - i can change it to softset
208 2012-05-31 12:42:57 <gavinandresen> One line is ok if there was a comment explaining what happens if I set -proxy=foo
209 2012-05-31 12:43:17 <sipa> that's in the help output :)
210 2012-05-31 12:44:01 <gavinandresen> where?
211 2012-05-31 12:44:23 <gavinandresen> "  -port=<port>           " + _("Listen for connections on <port> (default: 8333 or testnet: 18333)") + "\n"
212 2012-05-31 12:44:46 <gavinandresen> Oh, I see, scattered throughout the description of the other options.  That's my objection....
213 2012-05-31 12:44:49 <sipa> "  -listen                " + _("Accept connections from outside (default: 1 if no -proxy or -connect)") + "\n" +
214 2012-05-31 12:45:29 <sipa> i think we reached the point of contest: you want a description of the form "setting X changes the defaults for Y and Z"
215 2012-05-31 12:45:35 <gavinandresen> I don't want to have to read through every option to figure out that -proxy=foo turns off listen, turns off upnp, turns off -discover, etc etc etc
216 2012-05-31 12:45:57 <gavinandresen> sipa: Yes.  In the code as a comment at the very least
217 2012-05-31 12:46:03 <sipa> i have a description of the form "options X, Y influence the default for Z"
218 2012-05-31 12:46:39 <BlueMatt> you should be reading through the help output for each option you are passing
219 2012-05-31 12:46:44 <BlueMatt> or, assuming people do is ok imho
220 2012-05-31 12:48:46 <sipa> well, -proxy influences -listen; -bind influences -listen; -connect influences -listen; -listen influences -discover and -upnp; -externalip influences -discover
221 2012-05-31 12:48:52 <sipa> that's it, i think
222 2012-05-31 12:50:47 <gavinandresen> is -listen changing with ipv6 ?  Or how is listening on more than one network handled?
223 2012-05-31 12:51:39 <sipa> -listen just defines whether you want to listen at all or not
224 2012-05-31 12:52:33 <sipa> you can use -bind to select which addresses to listen on (by default: 0.0.0.0:port if ipv4 is not disbled, [::]:port is ipv6 is not disabled; typically both enabled)
225 2012-05-31 12:53:23 <gavinandresen> I see, so -bind turns listen on and -proxy turns it off?
226 2012-05-31 12:53:31 <sipa> yes
227 2012-05-31 12:54:07 <gavinandresen> ... and if I specify them both....
228 2012-05-31 12:54:31 <splatster> gavinandresen: All hell breaks loose.
229 2012-05-31 12:54:33 <sipa> bind wins; -bind just doesn't make sense without listening
230 2012-05-31 12:55:13 <gavinandresen> bind+proxy doesn't make sense?  I couldn't proxy my ipv4 connection but have a direct ipv6 ?
231 2012-05-31 12:55:45 <sipa> bind is for incoming connections, proxy is for outgoing
232 2012-05-31 12:56:10 <sipa> and sure bind+proxy makes sense; i'm just saying that if you specify both, you will listen, as -bind wins
233 2012-05-31 12:57:03 <sipa> (for now there is no way to specify separate proxies for outgoing ipv4 and ipv6; internally, you can, but there is no cmdline interface for that (yet)
234 2012-05-31 12:57:40 <sipa> fNoListen = !GetBoolArg("-listen",  mapArgs.count("-bind") || (!mapArgs.count("-connect") && !fProxy));
235 2012-05-31 12:58:14 <sipa> -> you're listening by default if -bind is given, or if neither -proxy and -connect are given
236 2012-05-31 13:01:08 <sipa> gavinandresen: anyway, do you envision that serialized transaction format to support missing txins?
237 2012-05-31 13:01:21 <sipa> (as opposed to just missing signatures)
238 2012-05-31 13:01:59 <gavinandresen> sipa: missing txins: no, you need placeholder OP_0's for missing signatures
239 2012-05-31 13:02:29 <gavinandresen> ... that seems like the simplest possible thing that will work
240 2012-05-31 13:02:53 <sipa> but you don't know the size of a signature in advance, right?
241 2012-05-31 13:03:12 <gavinandresen> Right...  so yes, you have to deserialize then reseralize, but that's not a big deal.
242 2012-05-31 13:03:37 <sipa> right; if you need to deserialize and reserialize, i wonder if it's not better to keep them separate until they can be combined once
243 2012-05-31 13:03:56 <gavinandresen> I was waffling on that, too.
244 2012-05-31 13:04:08 <sipa> as deserializing (any transaction) is more complex than serializing the subset of transactions you support yourself
245 2012-05-31 13:04:31 <gavinandresen> Coming up with a good JSON syntax for the signatures isn't obvious, though
246 2012-05-31 13:05:27 <gavinandresen> RE: deserializing ANY:  ah, no, signrawtx would only sign standard transactions
247 2012-05-31 13:05:52 <gavinandresen> signing arbitrary transactions that you don't understand seems to me would ALWAYS be a bad idea
248 2012-05-31 13:06:30 <sipa> you probably want to at least understand what the outputs are doing
249 2012-05-31 13:06:42 <gavinandresen> definitely
250 2012-05-31 13:07:01 <sipa> but i think there is use for transactions where there is a txin from someone else you do not understand
251 2012-05-31 13:07:40 <gavinandresen> The signrawtx code would ignore any inputs that are already correctly signed
252 2012-05-31 13:07:50 <sipa> right
253 2012-05-31 13:07:52 <gavinandresen> ... so if the txin is from somebody else then there's no issue
254 2012-05-31 13:08:29 <sipa> right
255 2012-05-31 13:08:41 <gavinandresen> Do you mean "from somebody else but you need to provide a signature" ?
256 2012-05-31 13:08:56 <sipa> no, i meant "signed or to be signed by someone else"
257 2012-05-31 13:09:43 <gavinandresen> I think ignoring non-standard txins that aren't signed would be the right thing to do...
258 2012-05-31 13:09:56 <sipa> probably
259 2012-05-31 13:10:37 <sipa> no, it probably doesn't matter much whether you serialize the entire transaction before transport
260 2012-05-31 13:10:40 <gavinandresen> Are there cases where you'd care about where the bitcoins are coming from?  I can't really think of any
261 2012-05-31 13:12:10 <sipa> but would there be a use for txins that are missing entirely?
262 2012-05-31 13:12:23 <sipa> as-in: to be filled by someone else (before any signing is done)
263 2012-05-31 13:13:17 <sipa> that would extend the usage of the format to an earlier stage as well
264 2012-05-31 13:14:56 <gavinandresen> Hmm... that might "just work", I don't think signrawtx needs to care if all the txins are present or not.
265 2012-05-31 13:15:19 <sipa> you mean: serialize the missing txins just as zero bytes?
266 2012-05-31 13:16:21 <gavinandresen> I was thinking of serializing a smaller vin.size... but vin.size is signed by SIGHASH_ALL, so that wouldn't work
267 2012-05-31 13:16:39 <sipa> it would certainly be easier to debug if a format was used similar to gettransaction's RPC output now, with inputs and outputs decomposed, and scripts given as hex strings
268 2012-05-31 13:17:05 <gavinandresen> printrawtx would be an easy RPC to write
269 2012-05-31 13:17:38 <gavinandresen> scripts could even be decoded to be human-readable.
270 2012-05-31 13:17:43 <sipa> sure, but if that were used as transmission format, you could just leave out a script or a txin if you don't have it yet
271 2012-05-31 13:18:16 <sipa> that said, i'm not sure if it's wise to force the complexity of json serialization to every piece of code that needs to interact with this
272 2012-05-31 13:18:20 <gavinandresen> This discussion should have happened before pulling sendrawtx into git HEAD
273 2012-05-31 13:18:56 <sipa> i think it's certainly useful in its current form
274 2012-05-31 13:19:11 <gavinandresen> agreed, I just like RPC calls to be consistent with each other
275 2012-05-31 13:19:12 <ThomasV> gavinandresen: why 'sendrawtx' and not 'sendtx'?
276 2012-05-31 13:19:24 <gavinandresen> ThomasV: ask jgarzik
277 2012-05-31 13:19:38 <sipa> agree, more discussion may have been useful
278 2012-05-31 13:20:36 <gavinandresen> ThomasV: I'm guessing the 'raw' is to make it clear that you're working without a net, and can easily send bitcoins into a black hole if you're not very careful
279 2012-05-31 13:20:56 <ThomasV> ic
280 2012-05-31 13:21:14 <sipa> that call is imho to just "inject a transaction into the network", without any wallet handling that interacts
281 2012-05-31 13:24:02 <Diablo-D3> SpaceX Dragon splashdown in 20 minutes
282 2012-05-31 13:28:22 <ThomasV> gavinandresen: do you also plan a rpc to get the list of unconfirmed transactions? something like getmemorypool, but without block restrictions
283 2012-05-31 13:29:00 <sipa> ThomasV: you can use gettransaction on memorypool transactions in current git head
284 2012-05-31 13:29:12 <sipa> though there's no way to get a list of memorypool txid's...
285 2012-05-31 13:29:31 <ThomasV> sipa: how does it work?
286 2012-05-31 13:29:56 <sipa> give txid, get json-decomposed transaction
287 2012-05-31 13:30:09 <gavinandresen> ThomasV: no plans, what is that needed for?
288 2012-05-31 13:30:17 <ThomasV> sipa: oh that's not what I was asking
289 2012-05-31 13:31:06 <ThomasV> gavinandresen: for Electrum servers. there are two things that I currently need to patch. one is 'sendtx', the other is getmemorypool
290 2012-05-31 13:31:30 <sipa> well, as i said, there's no way to get the list of current memory pool transactions
291 2012-05-31 13:32:02 <gavinandresen> getmemorypool doesn't return the list of current memory pool transactions?  that's dumb.
292 2012-05-31 13:32:03 <sipa> TD already suggested a P2P command to request those, though
293 2012-05-31 13:32:20 <sipa> gavinandresen: getmemorypool really is just getwork extended edition
294 2012-05-31 13:32:25 <ThomasV> gavinandresen: well, the name is indeed misleading
295 2012-05-31 13:32:28 <gavinandresen> who designed getmemorypool anyway....
296 2012-05-31 13:33:05 <sipa> getmemorypool should be named getminingdata or something
297 2012-05-31 13:33:56 <gavinandresen> Seems like extending getmemorypool with a new field that IS a list of all transaction ids in the memory pool might be the right thing to do.  But I don't know nuthin about getwork/getmemorypool
298 2012-05-31 13:34:11 <sipa> too few people do
299 2012-05-31 13:34:54 <sipa> and i don't agree; that command (apart from its misleading name) is what someone calls who wants to create blocks; he doesn't need to know the memory pool for that
300 2012-05-31 13:35:29 <ThomasV> it would be easy just to add an option to that command
301 2012-05-31 13:36:18 <sipa> i think it should be a separate command - its purpose would be entirely different
302 2012-05-31 13:36:19 <gavinandresen> doesn't luke have a proposal for extended getmemorypool ?
303 2012-05-31 13:36:43 <sipa> how about reallygetmemorypool? ;)
304 2012-05-31 13:36:51 <ThomasV> yes, I remember he had a proposal. I forgot exactly what it was
305 2012-05-31 13:37:01 <sipa> well, BIP 22 describes it
306 2012-05-31 13:38:10 <ThomasV> oh yes, bip 22 has options that allow to actually request the memory pool
307 2012-05-31 13:38:35 <sipa> does it?
308 2012-05-31 13:38:47 <ThomasV> yes, last time I checked
309 2012-05-31 13:39:04 <ThomasV> (sizelimit, sigoplimit)
310 2012-05-31 13:39:36 <sipa> that will still build a full block for you, not just report transactions
311 2012-05-31 13:40:30 <ThomasV> it returns a json with the list of transactions
312 2012-05-31 13:40:52 <ThomasV> it's fine with me
313 2012-05-31 13:41:11 <luke-jr> gavinandresen: getmemorypool (BIP 22) supports listing txids, but git master isn't compliant until #936 is merged ;P
314 2012-05-31 13:41:24 <ThomasV> if that plus sentrawtx get implemented, I will no longer need to patch bitcoind
315 2012-05-31 13:41:29 <sipa> i really wonder whether everything in bip22 is necessary
316 2012-05-31 13:41:43 <luke-jr> sipa: because you prefer proprietary p2pool
317 2012-05-31 13:42:07 <sipa> luke-jr: will you stop putting words in my mouth?
318 2012-05-31 13:42:18 <sipa> (not sure if that is correct in english)
319 2012-05-31 13:43:05 <luke-jr> sipa: well, that's how it sounds to me
320 2012-05-31 13:43:13 <sipa> i don't understand that
321 2012-05-31 13:43:15 <gavinandresen> I think the correct expression is "putting his foot in your mouth."   (KIDDING)
322 2012-05-31 13:43:32 <sipa> sure, i like p2pool, that's no secret
323 2012-05-31 13:43:52 <sipa> but i also want a good standard for negotiating block creation to be implemented
324 2012-05-31 13:44:34 <sipa> i also have little problems with the code in #936 currently, but i fear about bip22's adoption if it becomes too complex to support
325 2012-05-31 13:44:45 <drizztbsd> sipa: I'll like more a p2pool made in a sane language :)
326 2012-05-31 13:45:00 <drizztbsd> (p2pool actually needs a "strong" cpu)
327 2012-05-31 13:46:18 <sipa> luke-jr: also, as p2pool uses bip22 right now (an earlier version of it), i don't see how i could prefer p2pool to bip22...
328 2012-05-31 13:46:48 <luke-jr> sipa: yes, but you can "skip" lots of BIP22 if you only support the single functionality use-case that p2pool does
329 2012-05-31 13:47:19 <gavinandresen> for the record, I hate so-called "standards" that let you skip lots of stuff
330 2012-05-31 13:47:59 <gavinandresen> "do or do not, there is no try"  or something
331 2012-05-31 13:48:38 <sipa> luke-jr: ok; by all means, i prefer that rpc to be as widely usable as possible - but without 50 optional keywords people may choose to implement or not
332 2012-05-31 13:48:53 <gavinandresen> I agree with sipa.  And yoda.
333 2012-05-31 13:49:06 <sipa> that said, i don't know enough about it, so i will shut up and leave the decision to others
334 2012-05-31 13:49:30 <Diablo-D3> hey guys, a reminder: Diablo Mining Company's dividend payoyt is tommorow
335 2012-05-31 13:49:30 <luke-jr> why waste the bandwidth on a bunch of empty arrays and zeros?
336 2012-05-31 13:50:02 <sipa> gavinandresen: more to say have you?
337 2012-05-31 13:50:10 <gavinandresen> :)
338 2012-05-31 13:50:32 <gavinandresen> So luke-jr : is there a discussion of the changes to getmemorypool somewhere on the forums or in bitcoin-dev ?
339 2012-05-31 13:50:33 <luke-jr> Diablo-D3: are there any dividends yet? O.o
340 2012-05-31 13:50:44 <Diablo-D3> luke-jr: uh, yes?
341 2012-05-31 13:50:46 <luke-jr> gavinandresen: there was at least 2 ML threads
342 2012-05-31 13:50:53 <gavinandresen> ML ?
343 2012-05-31 13:50:56 <luke-jr> gavinandresen: mailing list
344 2012-05-31 13:50:58 <gavinandresen> oh, mailing list
345 2012-05-31 13:51:01 <sipa> haha
346 2012-05-31 13:51:10 <luke-jr> probably came up a few times here and #p2pool too
347 2012-05-31 13:51:12 <gavinandresen> I was thinking the language.....
348 2012-05-31 13:51:36 <sipa> does ML even support threads? ;)
349 2012-05-31 13:54:26 <t7> SML is bloated as poo so i guess so
350 2012-05-31 13:59:13 <luke-jr> (btw, as far as optional noncerange support, I agree it should simply be required, but that creates practical problems for some miners)
351 2012-05-31 13:59:50 <gavinandresen> luke-jr: I don't understand what this line of code is doing: if (strMethod == "getmemorypool"          && n > 0 && params[0].get_str()[0] == '{') ConvertTo<Object>(params[0]);
352 2012-05-31 14:00:22 <luke-jr> gavinandresen: converting a commandline parameter starting with '{' to an object
353 2012-05-31 14:00:43 <gavinandresen> but it is left as a string if it doesn't start with a {
354 2012-05-31 14:00:43 <luke-jr> gavinandresen: gmp(object) gets a template; gmp(data, object) submits a block
355 2012-05-31 14:00:54 <luke-jr> gavinandresen: yes, for the data case
356 2012-05-31 14:01:06 <gavinandresen> and you get a crash if you pass "" as the first argument?
357 2012-05-31 14:01:17 <luke-jr> an error
358 2012-05-31 14:01:31 <luke-jr> (it's an error in any case)
359 2012-05-31 14:01:58 <luke-jr> actually, it doesn't even error there
360 2012-05-31 14:02:31 <sipa> luke-jr: i'm not convinced about noncerange's necessity at all
361 2012-05-31 14:04:44 <gavinandresen> I'd have to be more of a language lawyer to figure out if std::string("")[0] might crash on some implementation.
362 2012-05-31 14:06:41 <luke-jr> gavinandresen: if it matters, I can check; it's invalid either way, and shouldn't create problems in any case I can imagine
363 2012-05-31 14:06:52 <gavinandresen> the old getmemorypool behavior is either call it with no arguments (to get data to work on) or with one argument (to submit a block) ?
364 2012-05-31 14:08:20 <luke-jr> yes
365 2012-05-31 14:08:26 <gavinandresen> I really don't like looking at the first character of the string to determine whether or not it is a JSON object.
366 2012-05-31 14:08:45 <luke-jr> well, it's just for the commandline testing tool; real applications would send an Object outright
367 2012-05-31 14:08:57 <gavinandresen> How about making params always the second argument, and if you want to get data to work on you pass "" {params}
368 2012-05-31 14:10:03 <gavinandresen> (or pass nothing if you have no params)
369 2012-05-31 14:10:07 <luke-jr> I suppose that could work, though a bit ugly IMO (and forces me to reimplement it everywhere&)
370 2012-05-31 14:10:39 <luke-jr> bitcoind-as-test-client implementation issues shouldn't really be a deciding factor IMO
371 2012-05-31 14:10:48 <gavinandresen> Ugly is "the first param is sometimes a string and sometimes an object and is sometimes interpreted as block data and sometimes as params ...."
372 2012-05-31 14:11:02 <gavinandresen> (imho)
373 2012-05-31 14:11:42 <luke-jr> more like, an optional data parameter
374 2012-05-31 14:11:58 <gavinandresen> You're not following the JSON spec, either, because whitespace before the { is OK
375 2012-05-31 14:12:26 <luke-jr> bitcoind-as-client doesn't take JSON as parameters, in most cases
376 2012-05-31 14:12:36 <luke-jr> if it did, things would be much more straightforward here
377 2012-05-31 14:13:00 <luke-jr> (we could just parse params as JSON)
378 2012-05-31 14:13:51 <luke-jr> (to clarify, gmp("", params) is ugly because data is not really optional anymore even when it makes no sense to have it)
379 2012-05-31 14:14:27 <gavinandresen> "" means "There is no data."  That seems pretty clear to me.
380 2012-05-31 14:14:27 <sipa> the point is that you're accepting a parameter that is either object-json-encoded-as-string, or object
381 2012-05-31 14:14:46 <luke-jr> sipa: not in BIP22, just a test tool
382 2012-05-31 14:14:46 <sipa> is that code at the command-line handling point, or inside gmp?
383 2012-05-31 14:16:28 <luke-jr> I suppose gmp(null, params) would be reasonable
384 2012-05-31 14:16:45 <luke-jr> can we match "" and send null?
385 2012-05-31 14:17:18 <luke-jr> (actually, bitcoind-as-client could always match "" and skip the parameter?)
386 2012-05-31 14:19:35 <rebroad> just rebased this (https://github.com/rebroad/bitcoin/compare/ParallelBlockDownload) so that the QuietInitial code goes first... much less messier, and more logical, IMHO...
387 2012-05-31 14:19:52 <rebroad> I wish I knew how to git rebase -i -p so that the merges are kept in the history...
388 2012-05-31 14:20:23 <luke-jr> so, best possibilities IMO are: 1) leave it alone, since bitcoind-as-test-tool is already pick-and-choose for parameter parsing; 2) check for "" in bitcoind-as-test-tool and skip the parameter in that case; 3) require null data for BIP 22 requests
389 2012-05-31 14:20:28 <sipa> rebroad: i don't see why you're including all these changes in a pullreq about parallel block download
390 2012-05-31 14:20:30 <luke-jr> gavinandresen: do you like any of those?
391 2012-05-31 14:20:50 <rebroad> sipa: well, the commits after the parallel can go.. they're just there to make testing easier..
392 2012-05-31 14:21:03 <rebroad> the commits before i think should stay as they're so integrated with the rest of it
393 2012-05-31 14:21:30 <rebroad> testing easier for me, that is, with my flaky internet connection :)
394 2012-05-31 14:21:54 <rebroad> it doesn't have much impact on anyone else, unless they include the command line options provided.
395 2012-05-31 14:22:56 <gavinandresen> luke-jr: I liked the gmp(null, params) idea, although I don't see why you're against treating null and the empty string the same way.   ./bitcoind getmemorypool null '{....}' would be fine with me, and shouldn't be hard to make work
396 2012-05-31 14:23:42 <gavinandresen> (if params[0].get_str() == "null"  then params[0] = ... whatever the null object is in json_spirit)
397 2012-05-31 14:23:59 <luke-jr> gavinandresen: because it complicates the standard even more. I don't see why the protocol should be complicated for a mere testing tool. :p
398 2012-05-31 14:24:33 <sipa> is that special casing based on the first character being '{' in the command-line handling code, or inside gmp?
399 2012-05-31 14:24:46 <luke-jr> sipa: in the commandline handling code
400 2012-05-31 14:24:52 <sipa> i have no problem with that
401 2012-05-31 14:25:52 <gavinandresen> I don't like it.  We'll get "  why doesn't it work when I run ./bitcoind ' { foo }' " and we'll all scratch our heads for an hour or two before we notice the space before the quote
402 2012-05-31 14:26:01 <gavinandresen> ^before^after
403 2012-05-31 14:27:15 <sipa> meh, it's only for testing purposes anyway
404 2012-05-31 14:28:01 <luke-jr> Boost probably has some strip method, if we really care to tolerate spaces&
405 2012-05-31 14:28:09 <luke-jr> or C++ rather
406 2012-05-31 14:28:17 <gavinandresen> bleuch
407 2012-05-31 14:29:32 <luke-jr> http://www.boost.org/doc/libs/1_49_0/doc/html/string_algo/usage.html#id3183616
408 2012-05-31 14:30:32 <gavinandresen> Ok, you've convinced me, I like your option (2) -- skip ""
409 2012-05-31 14:30:53 <luke-jr> k *goes to adjust code*
410 2012-05-31 14:32:21 <D34TH> ok so wubi didnt work
411 2012-05-31 14:35:13 <luke-jr> if (strMethod == "getmemorypool"          && n > 0 && params[0].get_str().empty()) params.erase(params.begin());
412 2012-05-31 14:35:16 <luke-jr> ^ look good?
413 2012-05-31 14:35:43 <gavinandresen> bleuch.  I mean, yes, looks good.
414 2012-05-31 14:37:07 <gavinandresen> Does that match the BIP 22 spec?  I added a comment to it's discussion page just now, it doesn't seem to say that the first param might be an Object of parameters.
415 2012-05-31 14:37:41 <gavinandresen> (which gets back to why I don't like the "if the first param is a string then do this otherwise do that" design)
416 2012-05-31 14:37:59 <luke-jr> gavinandresen: only param*
417 2012-05-31 14:38:23 <gavinandresen> ?
418 2012-05-31 14:38:46 <luke-jr> gavinandresen: the first parameter is data, but it's optional
419 2012-05-31 14:39:40 <gavinandresen> ok.  So how do I leave the first parameter out and specify only the second?
420 2012-05-31 14:39:59 <luke-jr> by only specifying the second
421 2012-05-31 14:40:16 <gavinandresen> But then it isn't the second, it is the first.....
422 2012-05-31 14:40:47 <luke-jr> the first was omitted
423 2012-05-31 14:40:54 <gavinandresen> there is no spoon
424 2012-05-31 14:41:22 <gavinandresen> The spec says:  "The second argument is an Object of request parameters."
425 2012-05-31 14:41:38 <gavinandresen> Implying that if, and only if, there is a second argument....
426 2012-05-31 14:42:16 <luke-jr> it's referring to the fixed set of arguments (data, params), either or both of which may be omitted in the call
427 2012-05-31 14:43:35 <gavinandresen> Look, I'm trying to tell you that somebody reading the BIP 22 spec can interpret it differently than the way you intend.
428 2012-05-31 14:43:37 <gavinandresen> And that is a problem.
429 2012-05-31 14:44:02 <luke-jr> "It accepts two arguments, both of which are optional and may be omitted from calls." <-- clearer?
430 2012-05-31 14:44:49 <gavinandresen> No
431 2012-05-31 14:45:27 <gavinandresen> What happens if the first argument is not a string, but the second object IS an object?
432 2012-05-31 14:45:50 <gavinandresen> e.g. I call   getmemorypool(null, {...})
433 2012-05-31 14:46:12 <gavinandresen> what I fi call  getmemorypool({...}, {....} )
434 2012-05-31 14:46:30 <gavinandresen> how about (null, null)  ?
435 2012-05-31 14:47:55 <luke-jr> they're not valid?
436 2012-05-31 14:48:09 <gavinandresen> where does it say that in the spec?
437 2012-05-31 14:48:40 <luke-jr> "The second argument is an Object of request parameters."
438 2012-05-31 14:49:13 <gavinandresen> (null, { ... } )   <-- second argument IS a Object....
439 2012-05-31 14:50:48 <luke-jr> "If the first argument is provided, is is a String&" <-- fixed?
440 2012-05-31 14:51:17 <gavinandresen> Ok, so how do I provide a second argument if I don't provide a first argument?
441 2012-05-31 14:51:40 <luke-jr> just provide the second argument
442 2012-05-31 14:51:52 <luke-jr> https://en.bitcoin.it/wiki/BIP_0022#Block_Template_Request
443 2012-05-31 14:52:08 <gavinandresen> Anybody else banging their head against the desk at this point ?
444 2012-05-31 14:52:49 <gavinandresen> foo(a,b)  :  a is the first argument.  b is the second.   foo(b) : b is now the first argument.
445 2012-05-31 14:53:55 <phantomcircuit> gavinandresen, my desk would break
446 2012-05-31 14:54:01 <phantomcircuit> cheap ikea stuff
447 2012-05-31 14:54:14 <luke-jr> gavinandresen: is there a way you think it could be phrased better?
448 2012-05-31 14:55:10 <gavinandresen> I think the real problem is overloading the method based on argument types
449 2012-05-31 14:56:53 <gavinandresen> But if you really want, then say "If the first argument is a string, then blah.  If it is an object, then blah.  If it is neither, then error."
450 2012-05-31 14:57:07 <luke-jr> but it's talking about two distinct arguments which are always the same.
451 2012-05-31 15:01:07 <gavinandresen> If it is hard to write a precise description of what it does then that's a sign of mis-design.  To be absolutely precise, you'd need to say what happens for all of the first-arguement-is-or-is-not-an-object-or-a-string cases
452 2012-05-31 15:01:34 <luke-jr> it's not hard. it's perfectly clear to me. I'm not sure why you think it's unclear, but I'm open to suggestions on how to make it better
453 2012-05-31 15:02:26 <gavinandresen> sigh.  if you can't put yourself in other people's shoes and think of all the ways they might misinterpret your spec then I don't think you should be writing specs.
454 2012-05-31 15:03:09 <luke-jr> does s/second/next/ help?
455 2012-05-31 15:03:30 <gavinandresen> yes, that would probably help
456 2012-05-31 15:05:12 <luke-jr> also, new gmp_bip branch pushed
457 2012-05-31 15:07:47 <luke-jr> (with the bitcoind-as-test-tool param parsing change we discussed)
458 2012-05-31 15:08:14 <kinlo> I'd rather see the spec saying "you must supply one parameter, an object, however, for backwards compatibility, gmp will perform a submit block if a string is given altough this is deprecated"
459 2012-05-31 15:09:17 <gavinandresen> I like kinlo's idea.
460 2012-05-31 15:09:33 <luke-jr> kinlo: 1) the string is required for submissions of any kind; 2) the BIP specifies the protocol, not a particular implementation ;)
461 2012-05-31 15:09:56 <luke-jr> (also, the separate submitblock method was done away with)
462 2012-05-31 15:11:30 <kinlo> the string isn't required for submissions, you can both use the submitblock or say that the object must be {"submitblock":"XXXXX"} and unambiguisly define that it is a string to be submitting a block
463 2012-05-31 15:12:33 <luke-jr> oh, you mean put it in the params Object?
464 2012-05-31 15:12:40 <luke-jr> but tolerate it alone for compat
465 2012-05-31 15:12:46 <kinlo> exactly
466 2012-05-31 15:13:00 <kinlo> then there is no mis interpretation possible
467 2012-05-31 15:13:43 <kinlo> for deprecated backwards compatibility, so people know they shouldn't keep using it
468 2012-05-31 15:14:32 <luke-jr> forrestv: you there?
469 2012-05-31 15:14:39 <kinlo> why is submitblock to be removed btw?
470 2012-05-31 15:15:01 <luke-jr> kinlo: it was removed because people didn't like having another method for some reason
471 2012-05-31 15:16:03 <splatster> zomg! finally got sendmany to work!
472 2012-05-31 15:16:19 <luke-jr> &
473 2012-05-31 15:17:14 <splatster> luke-jr: So encoding the array in json format actually breaks it.
474 2012-05-31 15:17:26 <luke-jr> &
475 2012-05-31 15:17:32 <kinlo> splatster: ?
476 2012-05-31 15:17:55 <kinlo> I use sendmany all the time and my code encodes everything in json and it works because that's how it should be done...
477 2012-05-31 15:18:07 <splatster> sendmany('', array(address=>amount,...)) works.
478 2012-05-31 15:18:23 <luke-jr> forrestv: when you get back& gavin and kinlo think gmp(data) should be moved to gmp({"data":data}); OK?
479 2012-05-31 15:18:34 <splatster> but endmany('', json_encode(array(address=>amount,...))) doesn't work.
480 2012-05-31 15:18:36 <luke-jr> splatster: erm, duh?
481 2012-05-31 15:18:47 <BlueMatt> read the code for sendmant(...)
482 2012-05-31 15:18:47 <kinlo> splatster: you're talking about a specific implementation
483 2012-05-31 15:18:52 <splatster> luke-jr: Someone earlier told me I needed to json encode the array.
484 2012-05-31 15:18:53 <BlueMatt> I guarantee you it calls json_encode
485 2012-05-31 15:18:57 <Eliel> splatster: well, duh, the framework you're using already handles json.
486 2012-05-31 15:18:57 <kinlo> splatster: that library will do the encoding
487 2012-05-31 15:19:02 <luke-jr> splatster: well, you do, but that's a lower-level detail
488 2012-05-31 15:19:22 <splatster> Ok, thanks for the highlights, I get it.
489 2012-05-31 15:19:25 <kinlo> :p
490 2012-05-31 15:19:35 <splatster> I screwed up, but was mislead to start with.
491 2012-05-31 15:19:45 <luke-jr> splatster: you need to wrap it in a {"id":0,"method":"sendmany", &} too!
492 2012-05-31 15:20:03 <kinlo> splatster: read the library you're using :)
493 2012-05-31 15:20:08 <Eliel> splatster: not really misled, as the json encoding is needed.
494 2012-05-31 15:20:25 <Eliel> splatster: it's just not something you need to worry about with the library you're using
495 2012-05-31 15:20:28 <splatster> kinlo: Someone told me that for PHP, I needed to json_encode the array.
496 2012-05-31 15:20:43 <Eliel> splatster: and that is true.
497 2012-05-31 15:20:47 <kinlo> splatster: you do, but if the library does it for you, you are doing it implicitly
498 2012-05-31 15:20:57 <D34TH> luke-jr: i feel like i should replace the contents of build-msw.txt with "Not even god can help you now."
499 2012-05-31 15:21:17 <splatster> kinlo: They said I did and they were using the same jsonrpc library I was using.
500 2012-05-31 15:21:19 <luke-jr> D34TH: sounds good
501 2012-05-31 15:21:26 <splatster> but w/e.
502 2012-05-31 15:21:39 <luke-jr> D34TH: or rather, "Only God can&"
503 2012-05-31 15:21:50 <D34TH> lol
504 2012-05-31 15:21:53 <splatster> 10 highlights later, I don't feel any better about telling you guys of my epiphany.
505 2012-05-31 15:21:57 <D34TH> not even got can
506 2012-05-31 15:22:03 <kinlo> splatster: hehe :p
507 2012-05-31 15:22:05 <D34TH> god cant c++
508 2012-05-31 15:22:08 <kinlo> splatster: what are you making?
509 2012-05-31 15:22:10 <luke-jr> D34TH: I bet Satoshi (a Windows developer) couldn't compile on Windows <.<
510 2012-05-31 15:22:16 <luke-jr> (now)
511 2012-05-31 15:22:30 <splatster> kinlo: It's just a payment script for a small little thing I'm running
512 2012-05-31 15:22:35 <kinlo> ic
513 2012-05-31 15:22:42 <splatster> I had it working with a loop of sendtoaddress
514 2012-05-31 15:22:52 <splatster> then adding sendmany was supposed to help...
515 2012-05-31 15:22:57 <Joric> luke-jr, no wonder, if it's not supposed to be compiled on windows at all
516 2012-05-31 15:23:00 <splatster> and then it killed everything
517 2012-05-31 15:23:02 <kinlo> does php have reliable variables to put floating points in for bitcoin payouts?
518 2012-05-31 15:23:08 <splatster> and now I'm re-implementing it.
519 2012-05-31 15:23:15 <kinlo> I would never create payment code in PHP
520 2012-05-31 15:23:34 <splatster> kinlo: No, but round($amount, 8) works just as well.
521 2012-05-31 15:23:48 <kinlo> I strongly dislike the fact that php converts by it self between integer and double values
522 2012-05-31 15:23:55 <luke-jr> splatster: you're doing it wrong!
523 2012-05-31 15:24:03 <luke-jr> :p
524 2012-05-31 15:24:14 <luke-jr> $amount = round($btc * 1e8); <-- right way
525 2012-05-31 15:24:25 <kinlo> I actually dislike that the RPC doesn't allow satoshi's as input value
526 2012-05-31 15:24:32 <luke-jr> kinlo: it really should
527 2012-05-31 15:24:35 <luke-jr> I wrote a patch for that once
528 2012-05-31 15:24:37 <kinlo> I really dislike floating points, especially for money
529 2012-05-31 15:25:07 <kinlo> my code does everything in satoshi's, even in the database, only the rpc needs conversion
530 2012-05-31 15:25:08 <luke-jr> in fact, I think it was my first bitcoind modification
531 2012-05-31 15:25:16 <luke-jr> kinlo: even bitcoind does everything in satoshis :p
532 2012-05-31 15:25:22 <luke-jr> and only converts for RPC
533 2012-05-31 15:25:27 <kinlo> luke-jr: I know...
534 2012-05-31 15:25:33 <kinlo> that's why I dislike it
535 2012-05-31 15:25:47 <luke-jr> so as soon as we break compat somewhere, be sure to move to ints :p
536 2012-05-31 15:25:49 <splatster> luke-jr: I was also confused as to why amounts in the RPC client weren't in satoshis
537 2012-05-31 15:26:11 <luke-jr> splatster: fork it if you must :p
538 2012-05-31 15:26:29 <luke-jr> (but really, it's probably because it's non-trivial to do there)
539 2012-05-31 15:26:33 <splatster> luke-jr: Too late, I already wrote it for doing it in double values.
540 2012-05-31 15:26:40 <luke-jr> fail
541 2012-05-31 15:27:02 <splatster> then round() it just to be really really really sure
542 2012-05-31 15:29:25 <D34TH> heh
543 2012-05-31 15:29:30 <D34TH> round(round())
544 2012-05-31 15:49:03 <Eliel> I modified jsonrpc library for python from jsonrpc.org to use Decimal instead of float when it decodes and encodes json :)
545 2012-05-31 15:50:42 <luke-jr> Eliel: why not just use bitcoinrpc?
546 2012-05-31 15:51:05 <Eliel> I didn't know of it.
547 2012-05-31 15:56:47 <Eliel> but that looks like it'll be a drop-in replacement for this thing I built the code with.
548 2012-05-31 16:03:24 <Joric> ThomasV, testing subscription process :) https://addons.mozilla.org/en-US/firefox/addon/mtgox-ticker/ there's a lot of requirements
549 2012-05-31 16:04:00 <ThomasV> Joric: oh buy you do not need to subscribe
550 2012-05-31 16:05:44 <ThomasV> btw, I doubt they will review bitcoin related code. In fact, I will review it before giving the bounty :)
551 2012-05-31 16:05:45 <Joric> still theres a load of details that could cause problems in the future (old/obsolete apis etc)
552 2012-05-31 16:06:22 <Joric> ThomasV, i got 2 btc for that ticker )
553 2012-05-31 16:06:36 <ThomasV> how far along are you for the electrum client?
554 2012-05-31 16:07:59 <Joric> ThomasV, nowhere near the end i spend just a few days on it it's not functional atm
555 2012-05-31 16:09:46 <Joric> ThomasV, how far along are you for the well-formed json?
556 2012-05-31 16:10:04 <ThomasV> I did not do anything
557 2012-05-31 16:11:47 <ThomasV> but you may just use read/write the wallet in json if the current format causes trouble
558 2012-05-31 16:12:08 <ThomasV> it's a minor point
559 2012-05-31 16:19:48 <BlueMatt> nice, we have several articles right at the top of the ieee spectrum article "The future of money"
560 2012-05-31 16:23:56 <Joric> bitcoinica's starting refunds, price's going up, col
561 2012-05-31 16:25:19 <luke-jr> O.o
562 2012-05-31 16:25:22 <luke-jr> how does that work
563 2012-05-31 16:26:03 <BlueMatt> last I heard, they had lost their backups and couldnt pay...
564 2012-05-31 16:26:49 <Joric> genjix wrote he's returning 80% to trusted customers today, i'm sure i considered trusted! :D
565 2012-05-31 16:27:27 <Joric> topic https://bitcointalk.org/index.php?topic=84042.0
566 2012-05-31 16:34:02 <luke-jr> BlueMatt: IIRC, they lost their user data (who had what balance), but had all the money
567 2012-05-31 16:34:57 <BlueMatt> so how does payout work...
568 2012-05-31 16:35:27 <Joric> you claim something not too much not too little they pay it to you
569 2012-05-31 16:36:31 <luke-jr> BlueMatt: that's why it's just trusted people I guess
570 2012-05-31 16:36:47 <BlueMatt> ok, so what does "trusted" mean?
571 2012-05-31 16:37:46 <Joric> they measure it by a number of posts on bitcointalk
572 2012-05-31 16:37:54 <Joric> well, not entirely, but still
573 2012-05-31 16:38:14 <BlueMatt> I hope you are joking
574 2012-05-31 16:38:29 <Joric> this is my serious face :-I
575 2012-05-31 16:38:43 <Joric> sec i'll find the zhoutong's point system
576 2012-05-31 16:38:56 <BlueMatt> wait, he actually posted his point system?
577 2012-05-31 16:39:10 <Joric> here https://bitcointalk.org/index.php?topic=81045.msg921368#msg921368
578 2012-05-31 16:39:48 <BlueMatt> that was just a suggestion, not what they are using
579 2012-05-31 16:42:23 <Joric> 'You have reported a losing position, with precise details' - 20 points
580 2012-05-31 16:42:34 <Joric> and nothing about the winning position
581 2012-05-31 17:09:29 <phantomcircuit> Joric, point system is an idiotic idea
582 2012-05-31 17:09:40 <phantomcircuit> just rewards people spamming us with non relevant information
583 2012-05-31 17:09:46 <phantomcircuit> im sure zhou knew this when he suggested it
584 2012-05-31 17:30:52 <Joric> phantomcircuit, may i send mail/ids to verify@bitcoinica.com ? i want to speed it up it already took a month
585 2012-05-31 17:31:26 <phantomcircuit> thats not really the hold up right now
586 2012-05-31 18:48:03 <d34th> yeay
587 2012-05-31 18:48:06 <d34th> on ubuntu
588 2012-05-31 18:48:29 <d34th> and kvm exists
589 2012-05-31 19:44:11 <d34th> sipa i think i got it working finally
590 2012-05-31 19:44:19 <d34th> im on configure_os with no errors
591 2012-05-31 20:29:15 <gribble> New news from bitcoinrss: TheBlueMatt opened pull request 1405 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1405>
592 2012-05-31 20:42:20 <d34th> hey rebroad, nice fork
593 2012-05-31 20:42:31 <luke-jr> O.o
594 2012-05-31 20:42:38 <luke-jr> is he seriously forking?
595 2012-05-31 20:43:11 <d34th> well its a git fork
596 2012-05-31 20:43:21 <d34th> pull request i should say
597 2012-05-31 20:43:35 <d34th> 1404
598 2012-05-31 20:44:27 <d34th> aww he isnt even here
599 2012-05-31 20:44:36 <d34th> so i got that system working
600 2012-05-31 20:44:39 <d34th> it just wouldnt build
601 2012-05-31 20:44:52 <d34th> i decided to use wubi
602 2012-05-31 20:47:19 <GTRsdk> looks like a nice pull request
603 2012-05-31 20:47:58 <d34th> yea buddy
604 2012-05-31 20:48:41 <d34th> mmm the dupblocks errors out
605 2012-05-31 20:50:26 <forrestv> luke-jr, sure. i guess "always an object" consistency is good
606 2012-05-31 20:51:37 <GTRsdk> ;;web title https://github.com/bitcoin/bitcoin/pull/1404
607 2012-05-31 20:51:39 <gribble> Pull Request #1404: Download blocks from several peers concurrently by rebroad ??? bitcoin/bitcoin ??? GitHub
608 2012-05-31 21:01:04 <d34th> allrightyo
609 2012-05-31 21:01:17 <d34th> time to go through his code and fix an error
610 2012-05-31 21:01:47 <d34th> too bad i dont know what im doing
611 2012-05-31 21:04:22 <d34th> ok that looks simple enough to fix
612 2012-05-31 21:04:28 <d34th> i hope
613 2012-05-31 21:05:20 <d34th> oh hells yea
614 2012-05-31 21:05:30 <d34th> gtrsdk that patch is a beast
615 2012-05-31 21:05:44 <d34th> atleast 100x faster blockdownloads
616 2012-05-31 21:06:13 <GTRsdk> sweeeet
617 2012-05-31 21:07:58 <BlueMatt> d34th: dont get your hopes up, it will help when downloading from sucky peers, but, in most cases, it wont improve chain download speed at all
618 2012-05-31 21:08:23 <d34th> downloaded 56k blocks in ~ 2 minutes
619 2012-05-31 21:08:35 <sipa> d34th: i typically do 130k blocks in 3 minutes
620 2012-05-31 21:08:46 <sipa> when syncing from a local file
621 2012-05-31 21:08:54 <sipa> it's only afterwards that it gets slow
622 2012-05-31 21:09:15 <sipa> BlueMatt: i think you can prune right up to the end
623 2012-05-31 21:09:25 <BlueMatt> d34th: I typically get something like that for the first n blocks
624 2012-05-31 21:09:38 <sipa> since BIP30, the code does not rely on spent txouts to be present in the index anymore
625 2012-05-31 21:09:42 <d34th> hmm i think this is on the old testnet
626 2012-05-31 21:09:53 <d34th> because its at 60k blocks
627 2012-05-31 21:09:59 <d34th> whats testnet3's blockcount?
628 2012-05-31 21:10:14 <BlueMatt> sipa: and if you reorg and undo a block?
629 2012-05-31 21:10:31 <BlueMatt> now you need to go back and find the txdiskpos again...
630 2012-05-31 21:10:46 <sipa> lemme thing
631 2012-05-31 21:10:48 <sipa> think
632 2012-05-31 21:11:37 <sipa> if you reorg, you rewind the transactions back in opposite order
633 2012-05-31 21:12:09 <sipa> hmm, right
634 2012-05-31 21:12:53 <sipa> i think that could be dealt with, as you actually rewind the full blocks, you could recreate spent txout index records, as you know their position on disk from the block you're rewinding
635 2012-05-31 21:13:51 <gmaxwell> you should just not prune up so close to the tip.
636 2012-05-31 21:14:12 <gmaxwell> just prune up to the highest checkpoint for now perhaps.
637 2012-05-31 21:14:20 <sipa> that's exactly what he implemented
638 2012-05-31 21:14:22 <BlueMatt> gmaxwell: thats what I do
639 2012-05-31 21:14:34 <BlueMatt> sipa: no, you need the tx pos of prev tx, which could be anywhere in the chain
640 2012-05-31 21:14:38 <gmaxwell> sorry, been kinda distracted.
641 2012-05-31 21:16:02 <d34th> submitted my 1404 fix
642 2012-05-31 21:16:03 <d34th> :D
643 2012-05-31 21:16:26 <sipa> BlueMatt: i think you're right
644 2012-05-31 21:17:38 <d34th> wow it actually works
645 2012-05-31 21:17:59 <d34th> ~14k blocks a minute download
646 2012-05-31 21:18:04 <d34th> with only 11 connections
647 2012-05-31 21:18:12 <sipa> you only need one connection
648 2012-05-31 21:18:22 <d34th> yea
649 2012-05-31 21:19:19 <d34th> im have to close my pull because there is an error in one of its dependencies
650 2012-05-31 21:19:37 <d34th> oh i think it has to be closed
651 2012-05-31 21:19:56 <d34th> 1404 and 1406 have an error in dupblocks
652 2012-05-31 21:20:30 <gribble> New news from bitcoinrss: grimd34th opened pull request 1406 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1406>
653 2012-05-31 21:20:42 <d34th> sipa have you seen 1404
654 2012-05-31 21:20:55 <sipa> can you both please just submit pull requests that do one thing only?
655 2012-05-31 21:21:21 <d34th> in reality i was trying to pull it into rebroads
656 2012-05-31 21:21:27 <d34th> but it climbed up the forkchain
657 2012-05-31 21:21:33 <d34th> back to bitcoin
658 2012-05-31 21:22:08 <GTRsdk> ;;web title https://github.com/bitcoin/bitcoin/pull/1406
659 2012-05-31 21:22:09 <gribble> Pull Request #1406: 1404 fix by grimd34th ??? bitcoin/bitcoin ??? GitHub
660 2012-05-31 21:24:26 <gmaxwell> BlueMatt: cool.
661 2012-05-31 21:24:37 <gmaxwell> BlueMatt: did you do any benchmarks to see if there is a performance improvement?
662 2012-05-31 21:24:42 <sipa> i'll do one
663 2012-05-31 21:25:07 <BlueMatt> gmaxwell: havent had a chance yet, no
664 2012-05-31 21:25:25 <gmaxwell> BlueMatt: also, the header-ahead sounds neat but I expect it would hardly be less work than the reverse header fetch, which has a lot of other benefits.
665 2012-05-31 21:25:27 <BlueMatt> gmaxwell: though, I think, you probably have to db_dump | db_load before you see much of any
666 2012-05-31 21:25:42 <BlueMatt> gmaxwell: reverse header fetch?
667 2012-05-31 21:26:24 <gmaxwell> BlueMatt: I gave a sketch of an algorithim, https://en.bitcoin.it/wiki/User:Gmaxwell/Reverse_header-fetching_sync though I might have missed a detail.
668 2012-05-31 21:26:56 <sipa> BlueMatt: oh, it only does the pruning afterwards?
669 2012-05-31 21:27:02 <sipa> not during the sync itself
670 2012-05-31 21:27:05 <BlueMatt> yea
671 2012-05-31 21:27:11 <sipa> that won't speed anything up :D
672 2012-05-31 21:27:12 <BlueMatt> otherwise you could make a node get stuck
673 2012-05-31 21:27:15 <BlueMatt> yep
674 2012-05-31 21:27:22 <sipa> how so?
675 2012-05-31 21:27:29 <gmaxwell> sipa: you could still benchmark blocks post sync.
676 2012-05-31 21:27:37 <gmaxwell> sipa: trigger reorgs between checkpoints.
677 2012-05-31 21:27:46 <BlueMatt> make a diff-1 block that spends really anything, then throw it in before first checkpoint
678 2012-05-31 21:27:52 <BlueMatt> feed it to peers and...stuck!
679 2012-05-31 21:27:52 <sipa> after connecting block N, prune up to block N-2016
680 2012-05-31 21:28:09 <gmaxwell> or after hitting checkpoint X prune up to X.
681 2012-05-31 21:28:10 <BlueMatt> you cant prune only parts, or, I dont see an effecient algorithm to do so
682 2012-05-31 21:28:31 <BlueMatt> well, you could during ibd, sorry
683 2012-05-31 21:28:42 <BlueMatt> but you have to pause download while you do
684 2012-05-31 21:29:03 <sipa> iterate all blocks until X, iterate all transactions of block, iterate all prevouts of those transactions, see which make the prevout tx fully spend, ...
685 2012-05-31 21:29:15 <BlueMatt> oh, yea, durring ibd you could, dur
686 2012-05-31 21:29:15 <sipa> *spent
687 2012-05-31 21:29:20 <gmaxwell> pretty bad network concurrency there.
688 2012-05-31 21:29:36 <sipa> you'd probably only do that every N blocks
689 2012-05-31 21:29:37 <BlueMatt> but, again, you have to pause download (otherwise you cant know if a tx was spent after checkpoint, or before)
690 2012-05-31 21:29:43 <gmaxwell> In any case if it's faster then you should be able to see it measuring highest checkpoint until now.
691 2012-05-31 21:29:45 <BlueMatt> you would only do it on each new checkpoint
692 2012-05-31 21:30:30 <BlueMatt> if you set the db_max_locks unreasonably high you wouldnt have to
693 2012-05-31 21:30:45 <BlueMatt> (and it cant deadlock because you cant lock something in download that you will be removing)
694 2012-05-31 21:31:03 <BlueMatt> oh, wait, no, you still cant commit to db before checking for prunable txes
695 2012-05-31 21:31:31 <sipa> hmm, it's certainly harder than i imagined
696 2012-05-31 21:31:36 <BlueMatt> same
697 2012-05-31 21:32:23 <osmosis> is there a bug files or a fix for the issue in bitcoin-qt where I create a new receiving address and then I have to go scroll down in the list and find it after I just created it?
698 2012-05-31 21:32:46 <sipa> osmosis: don't think there's a reported issue for that
699 2012-05-31 21:34:14 <osmosis> the File Settings Help  menus are also not available sometimes in Ubuntu Unity. seems to be a bitcoin-qt only issue
700 2012-05-31 21:34:36 <osmosis> receiving address creating is really bugging me though
701 2012-05-31 21:35:05 <osmosis> all in v0.6.2-beta
702 2012-05-31 21:35:27 <osmosis> ill create some github 'issues'
703 2012-05-31 21:35:42 <sipa> that unity issue has been reported before, afaik
704 2012-05-31 21:35:53 <BlueMatt> sipa: well, Im gonna go work on cblockstore-recreation, if I can get the parallel checking stuff written again, Ill look at pruning during download at checkpoints and see what the timings like on pruning during download with a buffer
705 2012-05-31 21:36:25 <sipa> BlueMatt: pruning at every checkpoint should be fine for now, i guess
706 2012-05-31 21:38:31 <BlueMatt> luke-jr: read up, you cant just prune or people can disconnect you, it has to be at checkpoints
707 2012-05-31 21:38:31 <gmaxwell> luke-jr: you can't prune if you might reorg (not unless you implement some tricky stuff)
708 2012-05-31 21:39:07 <luke-jr> hmm
709 2012-05-31 21:39:07 <sipa> pruning block X-n after connecting block X should be fine, but is harder
710 2012-05-31 21:39:42 <gmaxwell> sipa: meh, we're diff 1 for like the first 80k blocks or something, mining a few thousand diff one blocks is no big deal.
711 2012-05-31 21:40:17 <sipa> hmm, what's your point?
712 2012-05-31 21:40:26 <gmaxwell> what do you set n to.
713 2012-05-31 21:40:52 <sipa> 2016, would be my suggestion
714 2012-05-31 21:41:28 <sipa> but i see what you're getting at
715 2012-05-31 21:41:46 <BlueMatt> you can always disconnect if you can get someone to prune a block you mined that is malicious, so...
716 2012-05-31 21:41:53 <sipa> true
717 2012-05-31 21:41:54 <BlueMatt> (as long as there is a bigger chain)
718 2012-05-31 21:42:08 <sipa> use different of bnTotalWork as trigger? :)
719 2012-05-31 21:42:13 <sipa> *difference
720 2012-05-31 21:42:20 <gmaxwell> Yea, but it costs all of .063 BTC to create a greifer chain to screw that up.
721 2012-05-31 21:42:28 <osmosis> https://github.com/bitcoin/bitcoin/issues/1407
722 2012-05-31 21:42:39 <BlueMatt> you have no way of knowing if you are or arent on the "proper" chain until you get to head
723 2012-05-31 21:42:51 <BlueMatt> I will gladly tell you my chain goes from genisis to checkpoint 1
724 2012-05-31 21:43:01 <sipa> sure, i get it
725 2012-05-31 21:43:06 <sipa> we need headers-first first
726 2012-05-31 21:43:26 <sipa> so we know the PoW of the entire chain before downloading/connecting
727 2012-05-31 21:43:34 <BlueMatt> ohhh, ok, my bad
728 2012-05-31 21:43:49 <BlueMatt> didnt see what you meant there
729 2012-05-31 21:43:50 <gmaxwell> Yea. Really headersync first makes a lot of things easier and a lot of dumb attacks harder/impossible.
730 2012-05-31 21:44:09 <BlueMatt> especially filling blkNNNN.dat with diff-1 blocks from genisis
731 2012-05-31 21:44:16 <BlueMatt> (which has been a known issue forever...)
732 2012-05-31 21:44:27 <sipa> sssssht!
733 2012-05-31 21:44:44 <BlueMatt> sorry
734 2012-05-31 21:46:09 <gribble> New news from bitcoinrss: stevenph opened issue 1407 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/issues/1407>
735 2012-05-31 21:47:02 <BlueMatt> wait, why do we bother doing full block checking if (Checkpoints::CheckBlock(...)) ?
736 2012-05-31 21:47:04 <gmaxwell> I still think we should make a protocol rule change to increase the minimum difficulty to something on the order of 1000-10000 at the point some checkpoint gets hit.
737 2012-05-31 21:47:14 <BlueMatt> also, am I reading it right that we call CheckBlock twice per new block?
738 2012-05-31 21:49:14 <luke-jr> &
739 2012-05-31 21:49:37 <sipa> heh?
740 2012-05-31 21:50:16 <BlueMatt> ProcessBlock and ConnectBlock
741 2012-05-31 21:51:12 <sipa> oh yes, CheckBlock - but that is only cheap checks
742 2012-05-31 21:51:26 <BlueMatt> yea, its not a huge deal, its cheap, still...
743 2012-05-31 21:51:54 <sipa> i think it's meaningful as consistency check
744 2012-05-31 21:52:14 <BlueMatt> we dont change the block
745 2012-05-31 21:52:24 <sipa> db corruption...
746 2012-05-31 21:52:33 <sipa> you only want to connect blocks to the tree that are valid, but check that they are intact before making them the new best chain
747 2012-05-31 21:53:05 <BlueMatt> its fair during cases where we didnt just check it, but checking it twice in 100ms seems...redundant
748 2012-05-31 21:53:32 <sipa> it's exactly the same in-memory structure there?
749 2012-05-31 21:53:39 <BlueMatt> afaict
750 2012-05-31 21:53:40 <sipa> not dumped to db, and re-read
751 2012-05-31 21:54:01 <sipa> if it is, i wouldn't mind a mutable bool fCheckBlockPassed
752 2012-05-31 21:54:23 <BlueMatt> oh, no you're right
753 2012-05-31 21:55:02 <BlueMatt> oh, wait, no I misread it, yea its the same memory sturcture
754 2012-05-31 21:55:08 <BlueMatt> structure*
755 2012-05-31 21:57:22 <codder1> Hi
756 2012-05-31 21:57:35 <codder1> Anyone here familliar with bitcoind?
757 2012-05-31 21:57:48 <BlueMatt> ask a question, dont ask to ask ;)
758 2012-05-31 21:58:58 <codder1> Ok, I am using bitcoind to accept payments on my site. I would like to know if its possible to get the account address that received the funds
759 2012-05-31 21:59:14 <codder1> Not the sender's address, but the receiver's address.
760 2012-05-31 21:59:21 <codder1> Is it possible?
761 2012-05-31 21:59:23 <sipa> codder1: doesn't listtransactions tell you that?
762 2012-05-31 21:59:31 <sipa> under "address"
763 2012-05-31 21:59:47 <codder1> From what I know, it tells the sender's address but not the receiver's address
764 2012-05-31 21:59:59 <sipa> there is no such thing as a "sender's address" in bitcoin
765 2012-05-31 22:00:17 <codder1> oh!
766 2012-05-31 22:00:19 <luke-jr> (rather, bitcoind hides it)
767 2012-05-31 22:00:48 <sipa> luke-jr: there is "optionally, recognizable addresses the input coins were previously sent to"
768 2012-05-31 22:01:01 <codder1> So I would need to create a loop and check every single address on my site at every single second to see if there is a new transaction?
769 2012-05-31 22:01:30 <luke-jr> codder1: listtransactions will show all
770 2012-05-31 22:01:31 <gmaxwell> codder1: no, you create a new payment address for every sale and then you know which one based on which address got paid.
771 2012-05-31 22:03:26 <codder1> Ok, I am creating a new payment address for every new client on my site. Since its not event based, will need to create a delay loop to check for new payments on all addresses. Assuming I may have over 2000 clients.
772 2012-05-31 22:03:29 <doublec> you still have to poll though to see if the payment was received