1 2012-10-26 00:00:38 <optimator> got it. thanks. oh, last silly question big endian on the var_int?
2 2012-10-26 00:00:51 <Luke-Jr> optimator: ⦠no
3 2012-10-26 00:00:56 <optimator> oh
4 2012-10-26 00:01:07 <Luke-Jr> https://en.bitcoin.it/wiki/Protocol_specification#Variable_length_integer
5 2012-10-26 00:01:21 <Luke-Jr> hmm
6 2012-10-26 00:01:24 <Luke-Jr> I guess that is vague too
7 2012-10-26 00:01:57 <sipa> the uint16, 32 and 64 mentioned there are little endian
8 2012-10-26 00:02:13 <forrestv> optimator, every single thing in bitcoin is little endian ... expect the port number in addr messages
9 2012-10-26 00:02:42 <sipa> and the R and S values in signatures, and the X and Y values in pubkey
10 2012-10-26 00:03:03 <sipa> and secret keys are BE too, i think
11 2012-10-26 00:03:08 <forrestv> ah
12 2012-10-26 00:03:29 <Luke-Jr> forrestv: and SHA256 itself
13 2012-10-26 00:03:37 <optimator> i.... see
14 2012-10-26 00:03:38 <forrestv> i suppose addresses are big-endian too
15 2012-10-26 00:03:44 <forrestv> q:
16 2012-10-26 00:04:32 <sipa> but the 32-byte value produced by SHA256 is interpreted as 256-bit LE number
17 2012-10-26 00:05:03 <sipa> even though it consists of 8 BE encoded integers inside SHA256
18 2012-10-26 00:05:12 <Luke-Jr> optimator: this is the real reason Satoshi went into hidingâ¦
19 2012-10-26 00:05:16 <sipa> haha
20 2012-10-26 00:05:26 <gmaxwell> meh.
21 2012-10-26 00:05:37 <gmaxwell> we find the weirdest little things to complain about.
22 2012-10-26 00:05:39 <optimator> sipa: well my manipulation code now makes sense
23 2012-10-26 00:05:42 <sipa> well, it's not that bad; all the crypto stuff is BE because it's done by OpenSSL
24 2012-10-26 00:05:45 <sipa> all the rest is LE
25 2012-10-26 00:05:51 <gmaxwell> be glad that he didn't specify an arithemetic encoder and entropy code everything.
26 2012-10-26 00:06:08 <sipa> gmaxwell: we'd have 30% smaller blocks dmnit!
27 2012-10-26 00:07:03 <gmaxwell> heh
28 2012-10-26 00:07:24 dvide has quit ()
29 2012-10-26 00:07:39 maaku has joined
30 2012-10-26 00:07:44 <optimator> perfect explaination. got it. So, I try it one way, if it doesn't work try it the other. am i doing this right?
31 2012-10-26 00:07:58 <sipa> that's how you do it in practice :)
32 2012-10-26 00:08:08 <optimator> :)
33 2012-10-26 00:08:52 <Luke-Jr> optimator: whatcha writing? :P
34 2012-10-26 00:08:52 one_zero has joined
35 2012-10-26 00:09:04 <jrmithdobbs> always funny to watch someone's reaction the first time they find out the endianness clusterfuck
36 2012-10-26 00:11:13 noagendamarket has joined
37 2012-10-26 00:11:18 DaQatz has joined
38 2012-10-26 00:12:10 * optimator looks around
39 2012-10-26 00:12:24 <optimator> stratum pool
40 2012-10-26 00:12:30 * optimator ducks
41 2012-10-26 00:13:03 <Luke-Jr> optimator: fail :P
42 2012-10-26 00:13:38 <optimator> ha! it's taught me a lot about bitcoin. i have to say it amazing how it works
43 2012-10-26 00:13:44 <Luke-Jr> optimator: on another note, it'd be neat if someone took Stratum and made a standardized protocol by combining it with GBT ;)
44 2012-10-26 00:13:57 EasyAt is now known as !~Easy@81.17.31.43|EasyAt
45 2012-10-26 00:15:57 <optimator> there's a lot that can be done. the merkle tree calculation in stratum is slick. Combining that with full transaction transparency would also be cool
46 2012-10-26 00:17:55 <optimator> This is also my first exposure to an open source project.
47 2012-10-26 00:18:45 <Luke-Jr> optimator: I would definitely participate in a BIP process for a Stratum-based protocol
48 2012-10-26 00:19:14 <sipa> slush mailed genjix for a BIP id, but didn't get a response yet
49 2012-10-26 00:19:29 <optimator> How does that work? After it's posted comments are accepted?
50 2012-10-26 00:19:44 <sipa> accepted is a fuzzy thing
51 2012-10-26 00:20:08 <Luke-Jr> optimator: someone writes up a draft, then submits it for review
52 2012-10-26 00:20:29 <optimator> the we beat it up? :)
53 2012-10-26 00:20:31 <Luke-Jr> then the development community comments on what they'd like to see different
54 2012-10-26 00:20:32 <optimator> then
55 2012-10-26 00:20:41 <Luke-Jr> and hopefully we end up with a final draft that fits everyone's needs
56 2012-10-26 00:21:34 <optimator> cool. I'll look for that to be posted
57 2012-10-26 00:21:58 <Luke-Jr> sipa: when was this? last I heard slush was opposed to standardizing it
58 2012-10-26 00:22:21 <sipa> a few days ago
59 2012-10-26 00:22:33 <Luke-Jr> well, that's progress at least
60 2012-10-26 00:22:47 <sipa> i answered him to pick 38
61 2012-10-26 00:22:57 <Luke-Jr> O.o
62 2012-10-26 00:23:47 <sipa> if the process slows down development instead of helping, there's something wrong
63 2012-10-26 00:23:58 <gmaxwell> (genjix was unresponsive to email)
64 2012-10-26 00:24:24 <Luke-Jr> I'd think BIP 24 would make sense
65 2012-10-26 00:24:38 <sipa> oh, 24 is not yet taken?
66 2012-10-26 00:24:43 <Luke-Jr> 24-29 are unused
67 2012-10-26 00:24:50 <gmaxwell> "gratitiously slows down"* ... some slowdowns are helpful. The number assignment guy being out of office is not. :P
68 2012-10-26 00:25:23 <sipa> right
69 2012-10-26 00:25:26 bitcoinbulletin has quit (Ping timeout: 246 seconds)
70 2012-10-26 00:26:06 <optimator> thanks for the help. gotta run
71 2012-10-26 00:28:05 pnicholson has joined
72 2012-10-26 00:28:11 <gmaxwell> UukGoblin: re your mental poker interests, I couldn't find any packages for provable secure secret ballot elections.. even though it can be done with basically the same algorithims as your poker shuffles. You aware of anything?
73 2012-10-26 00:29:24 optimator_ has joined
74 2012-10-26 00:29:52 servvs has joined
75 2012-10-26 00:30:13 optimator has quit (Ping timeout: 245 seconds)
76 2012-10-26 00:30:41 <gmaxwell> er crap
77 2012-10-26 00:30:41 <gmaxwell> ./port/atomic_pointer.h:141:2: error: #error Please implement AtomicPointer for this platform.
78 2012-10-26 00:30:57 D34TH has quit (Read error: Connection reset by peer)
79 2012-10-26 00:30:57 <gmaxwell> leveldb appears to break portability to ppc.
80 2012-10-26 00:31:30 <Luke-Jr> *what* portability to PPC?
81 2012-10-26 00:32:00 bitcoinbulletin has joined
82 2012-10-26 00:32:05 <gmaxwell> It at least built before. Actually I was wondering if I _only_ would have to fix varint to get it working and was about to try.
83 2012-10-26 00:32:28 <sipa> varint?
84 2012-10-26 00:32:55 <Luke-Jr> gmaxwell: no. I have an endian-neutral branch and it doesn't work yet
85 2012-10-26 00:33:26 <Luke-Jr> gmaxwell: 'endian' in my git repo
86 2012-10-26 00:34:00 <gmaxwell> Luke-Jr: ah, I'd never bothered trying, so I wasn't sure quite how bad it was.. Do you at least get through the genesis block?
87 2012-10-26 00:34:07 <Luke-Jr> gmaxwell: I forget
88 2012-10-26 00:34:20 <Luke-Jr> gmaxwell: it doesn't work in LE either right now
89 2012-10-26 00:34:28 <sipa> there are several places where direct-to-memory copies are used
90 2012-10-26 00:34:46 <sipa> i don't think that many, but finding them may be tricky
91 2012-10-26 00:36:03 <gmaxwell> Ah it can use c++0x atomics. too bad debian is shipping gcc that is probably too old for that.
92 2012-10-26 00:38:21 <jgarzik> just to triple check... bitcoin address is: encode_base58(version + ripemd160(sha256(raw public key)) + checksum) ?
93 2012-10-26 00:38:49 <sipa> jgarzik: correct
94 2012-10-26 00:39:10 <sipa> and checksum is the first 4 bytes of whatever comes before it (version + ripemd output)
95 2012-10-26 00:39:38 <sipa> eh, first 4 byte of double-sha256 of that
96 2012-10-26 00:57:45 <forrestv> gmaxwell, what's the zero-trust poker shuffle algorithm i've been hearing about?
97 2012-10-26 01:00:25 <jgarzik> BIGNUM is required for base58? How did I never notice that before
98 2012-10-26 01:00:27 <jgarzik> meh
99 2012-10-26 01:01:04 <jgarzik> it was nice living in pynode land, where you don't have to worry about ancillary encodings outside the bitcoin protocol itself ;p
100 2012-10-26 01:01:48 <jgarzik> forrestv: seems like zero trust shuffle is doable with any known, reproducible prng algo
101 2012-10-26 01:02:11 <gmaxwell> jgarzik: well it's tricker when you want no one to know the total order.
102 2012-10-26 01:02:13 <jgarzik> forrestv: start with a seed, hash it, give hash to client, shuffle.
103 2012-10-26 01:03:12 <gmaxwell> forrestv: To get the shuffle you need for poker.. you start with a deck (just a bunch of strings with the card names if you like). Make 1000 copies, encrypt each one using a composable encryption algo and a different key, and shuffle each. and announce all of them.
104 2012-10-26 01:03:48 <gmaxwell> forrestv: then the other players pick 999 of your decks and ask you to show the keys for each of them and they confirm you didn't mess with the desk like replacing cards.
105 2012-10-26 01:04:04 <gmaxwell> forrestv: then the still encrypted deck goes to the next player and he does the same thing.
106 2012-10-26 01:04:40 <gmaxwell> forrestv: at the end you get a shuffle which is secret to everyone. To draw everyone but the player drawing decrypts the next card.. then he decrypts it.
107 2012-10-26 01:05:59 <Luke-Jr> jgarzik: libblkmaker has a minimal base58 implementation
108 2012-10-26 01:06:03 <gmaxwell> ISTM you can do secret ballots with the same kind of composable encryption and zero knoweldge proof.. so that by the end you can't tell which people made which ballot, but none of the shufflers stuffed the box.
109 2012-10-26 01:06:28 <Luke-Jr> jgarzik: which I would appreciate if you could review the code for, btw ;)
110 2012-10-26 01:07:01 <jgarzik> Luke-Jr: url? license?
111 2012-10-26 01:07:13 <Luke-Jr> jgarzik: MIT
112 2012-10-26 01:07:31 <Luke-Jr> http://gitorious.org/bitcoin/libblkmaker/blobs/master/base58.c
113 2012-10-26 01:08:05 skeledrew has quit (Ping timeout: 244 seconds)
114 2012-10-26 01:08:20 <jgarzik> Luke-Jr: tested?
115 2012-10-26 01:08:30 <jgarzik> Luke-Jr: picocoin is MIT
116 2012-10-26 01:09:29 <maaku> picocoin?
117 2012-10-26 01:11:17 <jgarzik> Luke-Jr: looks useful, but unfortunately I have to go in the reverse direction... create and print a bitcoin address, given a public key
118 2012-10-26 01:11:34 JZavala has joined
119 2012-10-26 01:12:04 <maaku> jgarzik: language?
120 2012-10-26 01:12:12 <gmaxwell> jgarzik: well have to go both eventually.
121 2012-10-26 01:12:29 gfinn has quit (Remote host closed the connection)
122 2012-10-26 01:13:09 <Luke-Jr> jgarzik: tested with testnet and pubkey-addresses; 1 other code review so far
123 2012-10-26 01:13:48 <Luke-Jr> I think going the other way should be slightly easier
124 2012-10-26 01:14:33 <jgarzik> straightforward != easy ;p
125 2012-10-26 01:14:48 <jgarzik> it has a lot of wonderful satoshi byteswapping
126 2012-10-26 01:15:26 <jgarzik> bitcoind appears to convert data to little endian, then back to big endian
127 2012-10-26 01:17:40 <jgarzik> matt_von_mises adds the "NOT" keyword to the C language: https://github.com/MatthewLM/cbitcoin/blob/master/src/structures/CBBase58/CBBase58.c
128 2012-10-26 01:17:42 <jgarzik> sigh
129 2012-10-26 01:18:37 <jgarzik> CBBigIntEqualsSubtractionByUInt8(), CBBigIntModuloWith58() and CBBigIntCompareTo58()
130 2012-10-26 01:20:11 gfinn has joined
131 2012-10-26 01:21:29 <gmaxwell> jgarzik: uh, please don't use his code. :)
132 2012-10-26 01:21:47 <jgarzik> gmaxwell: can't even if I wanted to, which I don't
133 2012-10-26 01:21:50 <jgarzik> due to license
134 2012-10-26 01:23:17 skeledrew has joined
135 2012-10-26 01:23:21 maaku has quit (Quit: maaku)
136 2012-10-26 01:23:49 maaku has joined
137 2012-10-26 01:23:59 <gmaxwell> jgarzik: could be worse though; http://minnie.tuhs.org/cgi-bin/utree.pl?file=V7/usr/src/cmd/sh/string.c
138 2012-10-26 01:24:20 <jgarzik> hehe
139 2012-10-26 01:25:16 <Luke-Jr> jgarzik: sad, he should have just used iso646.h
140 2012-10-26 01:25:59 <gmaxwell> Luke-Jr: what use is befuckedness if its STANDARIZED?
141 2012-10-26 01:26:22 bitcoinz has quit (Remote host closed the connection)
142 2012-10-26 01:27:37 bitcoinz has joined
143 2012-10-26 01:28:32 toffoo has quit ()
144 2012-10-26 01:32:03 <jrmithdobbs> jgarzik: i think i have c89 code to do that somewhere already
145 2012-10-26 01:32:20 <jrmithdobbs> jgarzik: i pulled my hair out figuring out where the swapping was actually happening :(
146 2012-10-26 01:32:34 <jgarzik> jrmithdobbs: the answer: EVERYWHERE
147 2012-10-26 01:32:42 <jrmithdobbs> right
148 2012-10-26 01:32:55 <gmaxwell> JOB SECURITY
149 2012-10-26 01:33:41 <jrmithdobbs> jgarzik: oh if you just want the base58 impl i def have that, it's on a machine that's in my bag at the moment though ... assuming you're not going to gpl3 it
150 2012-10-26 01:34:21 <jrmithdobbs> i just used openssl's bignum CORRECTLY though ;p
151 2012-10-26 01:42:41 Bwild has quit (Ping timeout: 252 seconds)
152 2012-10-26 01:42:51 maaku has quit (Quit: maaku)
153 2012-10-26 01:44:56 sebicas has joined
154 2012-10-26 01:48:04 paraipan has quit (Quit: Saliendo)
155 2012-10-26 01:52:24 JZavala has quit (Ping timeout: 245 seconds)
156 2012-10-26 02:02:16 rdponticelli has quit (Remote host closed the connection)
157 2012-10-26 02:07:43 rdponticelli has joined
158 2012-10-26 02:20:08 sebicas has quit (Quit: sebicas)
159 2012-10-26 02:23:54 vazakl- has joined
160 2012-10-26 02:24:38 freakazoid has quit (Ping timeout: 246 seconds)
161 2012-10-26 02:24:47 MiningBuddy- has joined
162 2012-10-26 02:25:17 vazakl has quit (Ping timeout: 240 seconds)
163 2012-10-26 02:26:12 MiningBuddy has quit (Remote host closed the connection)
164 2012-10-26 02:35:42 vampireb_ has quit (Quit: Lost terminal)
165 2012-10-26 02:39:26 agricocb has joined
166 2012-10-26 02:39:28 TheEslbear has joined
167 2012-10-26 02:42:33 <forrestv> hm... a "assimilatewallet" rpc command would be really helpful. i have a folder full of random wallet backups
168 2012-10-26 02:43:09 Eslbaer has quit (Ping timeout: 244 seconds)
169 2012-10-26 02:43:34 <forrestv> is there any way to do something like that besides using pywallet to extract the private keys and using importprivkey?
170 2012-10-26 02:44:18 graingert has quit (Read error: Connection reset by peer)
171 2012-10-26 02:45:03 fiesh has quit (Ping timeout: 255 seconds)
172 2012-10-26 02:49:06 fiesh has joined
173 2012-10-26 02:49:44 senseless1 has joined
174 2012-10-26 02:56:25 agricocb has quit (Remote host closed the connection)
175 2012-10-26 02:58:45 agricocb has joined
176 2012-10-26 02:59:37 leotreasure has joined
177 2012-10-26 03:02:17 leotreasure has quit (Client Quit)
178 2012-10-26 03:03:00 <Luke-Jr> forrestv: probably things in that area will get better now that LevelDB is merged
179 2012-10-26 03:03:12 <Luke-Jr> forrestv: once sipa's HD wallets get done, bdb will be import-only ;)
180 2012-10-26 03:09:43 senseless1 is now known as senseless
181 2012-10-26 03:19:30 <gmaxwell> forrestv: there is that wallet recovery tool. cat them all into one file and run it on them.. only works for non-encrypted wallets.
182 2012-10-26 03:20:00 <gmaxwell> forrestv: I actually got a small amount of bitcoin and a bunch (like 30 BTC worth) of lite by running that crazy tool on my systems..
183 2012-10-26 03:25:36 Arnavion has quit (Quit: Arnavion)
184 2012-10-26 03:25:51 Arnavion has joined
185 2012-10-26 03:25:57 Arnavion has quit (Changing host)
186 2012-10-26 03:25:57 Arnavion has joined
187 2012-10-26 03:26:39 Arnavion has quit (Client Quit)
188 2012-10-26 03:26:54 Arnavion has joined
189 2012-10-26 03:27:40 guruvan has quit (Ping timeout: 276 seconds)
190 2012-10-26 03:27:41 guruvan- is now known as guruvan
191 2012-10-26 03:29:12 spreelanka has quit (Quit: spreelanka)
192 2012-10-26 03:30:09 guruvan_ has joined
193 2012-10-26 03:39:02 maaku has joined
194 2012-10-26 03:41:58 spq has quit (Read error: Connection reset by peer)
195 2012-10-26 03:46:32 rlifchitz has quit (Ping timeout: 246 seconds)
196 2012-10-26 03:49:09 Bwild has joined
197 2012-10-26 03:53:25 ThomasV has joined
198 2012-10-26 03:54:45 Raccoon has left ()
199 2012-10-26 04:03:55 optimator_ is now known as optimator
200 2012-10-26 04:07:51 TheSeven has quit (Disconnected by services)
201 2012-10-26 04:08:03 [7] has joined
202 2012-10-26 04:08:42 maaku has quit (Quit: maaku)
203 2012-10-26 04:09:53 maaku has joined
204 2012-10-26 04:20:19 BitcoinBaltar has quit (Ping timeout: 276 seconds)
205 2012-10-26 04:21:32 BitcoinBaltar has joined
206 2012-10-26 04:45:00 xisalty has quit (Remote host closed the connection)
207 2012-10-26 04:48:57 enolan has quit (Quit: Leaving)
208 2012-10-26 05:10:21 xisalty has joined
209 2012-10-26 05:11:42 toffoo has joined
210 2012-10-26 05:15:54 <jgarzik> w00t
211 2012-10-26 05:16:14 <jgarzik> picocoin just generated its first bitcoin address, from a key stored in its encrypted wallet
212 2012-10-26 05:19:23 maaku has quit (Quit: maaku)
213 2012-10-26 05:20:00 maaku has joined
214 2012-10-26 05:20:10 rlifchitz has joined
215 2012-10-26 05:20:11 rlifchitz has quit (Changing host)
216 2012-10-26 05:20:11 rlifchitz has joined
217 2012-10-26 05:20:57 <jgarzik> all the other binary structure stuff is done
218 2012-10-26 05:21:08 <jgarzik> now it's time to download a block chain, and see if we can find payments to us
219 2012-10-26 05:21:26 <conman> jgarzik, btw any interest in what we talked about?
220 2012-10-26 05:22:07 <jgarzik> conman: definitely
221 2012-10-26 05:22:20 <conman> hokay
222 2012-10-26 05:23:53 <gmaxwell> oh secret conman jgarzik kernel miner backdoor.
223 2012-10-26 05:24:12 <conman> right
224 2012-10-26 05:24:39 <slush> "Luke-Jr: sipa: when was this? last I heard slush was opposed to standardizing it"
225 2012-10-26 05:24:39 <slush> Not true. I'm not against standardizing it, I just don't understood hurdle "boo, it's bad, not a community driven, it doesn't have a BIP" :-P
226 2012-10-26 05:26:05 <Luke-Jr> slush: BIP isn't just a meaningless assignment
227 2012-10-26 05:31:46 brwyatt is now known as brwyatt|Away
228 2012-10-26 05:36:29 noagendamarket has quit (Quit: Leaving)
229 2012-10-26 05:57:04 ThomasV has quit (Ping timeout: 268 seconds)
230 2012-10-26 06:09:26 RazielZ has joined
231 2012-10-26 06:13:06 Arnavion has quit (Quit: Arnavion)
232 2012-10-26 06:16:14 Guest3609 has quit (Ping timeout: 255 seconds)
233 2012-10-26 06:16:52 Arnavion has joined
234 2012-10-26 06:38:18 sirk390 has joined
235 2012-10-26 06:55:32 <UukGoblin> gmaxwell, not off the top of my head, no
236 2012-10-26 06:56:11 <UukGoblin> secure secret ballot elections... what about ensuring that only one person can vote, while also making sure no-one can force other people to vote on someone particular?
237 2012-10-26 07:09:25 PK has joined
238 2012-10-26 07:09:50 sirk390 has quit (Quit: Leaving.)
239 2012-10-26 07:12:28 Bwild has quit (Read error: Operation timed out)
240 2012-10-26 07:13:30 sirk390 has joined
241 2012-10-26 07:13:51 Graet has joined
242 2012-10-26 07:13:52 Graet has quit (Excess Flood)
243 2012-10-26 07:14:21 Graet has joined
244 2012-10-26 07:14:21 Graet has quit (Excess Flood)
245 2012-10-26 07:14:51 Graet has joined
246 2012-10-26 07:14:51 Graet has quit (Excess Flood)
247 2012-10-26 07:15:20 Graet has joined
248 2012-10-26 07:15:20 Graet has quit (Excess Flood)
249 2012-10-26 07:15:50 Graet has joined
250 2012-10-26 07:15:50 Graet has quit (Excess Flood)
251 2012-10-26 07:16:20 Graet has joined
252 2012-10-26 07:16:21 Graet has quit (Excess Flood)
253 2012-10-26 07:16:50 Graet has joined
254 2012-10-26 07:16:51 Graet has quit (Excess Flood)
255 2012-10-26 07:17:21 Graet has joined
256 2012-10-26 07:17:21 Graet has quit (Excess Flood)
257 2012-10-26 07:17:51 Graet has joined
258 2012-10-26 07:17:51 Graet has quit (Excess Flood)
259 2012-10-26 07:18:22 Graet has joined
260 2012-10-26 07:18:23 Graet has quit (Excess Flood)
261 2012-10-26 07:18:52 Graet has joined
262 2012-10-26 07:18:52 Graet has quit (Excess Flood)
263 2012-10-26 07:19:16 maaku has quit (Quit: maaku)
264 2012-10-26 07:19:22 Graet has joined
265 2012-10-26 07:19:22 Graet has quit (Excess Flood)
266 2012-10-26 07:19:53 Graet has joined
267 2012-10-26 07:19:53 Graet has quit (Excess Flood)
268 2012-10-26 07:20:24 Graet has joined
269 2012-10-26 07:20:24 Graet has quit (Excess Flood)
270 2012-10-26 07:20:55 Graet has joined
271 2012-10-26 07:20:55 Graet has quit (Excess Flood)
272 2012-10-26 07:21:51 Graet has joined
273 2012-10-26 07:21:51 Graet has quit (Excess Flood)
274 2012-10-26 07:22:21 Graet has joined
275 2012-10-26 07:22:21 Graet has quit (Excess Flood)
276 2012-10-26 07:22:51 Guest32989 has joined
277 2012-10-26 07:22:51 Guest32989 has quit (Excess Flood)
278 2012-10-26 07:23:21 Graet_ has joined
279 2012-10-26 07:23:21 Graet_ has quit (Excess Flood)
280 2012-10-26 07:23:51 Graet_ has joined
281 2012-10-26 07:23:51 Graet_ has quit (Excess Flood)
282 2012-10-26 07:24:21 Graet_ has joined
283 2012-10-26 07:24:21 Graet_ has quit (Excess Flood)
284 2012-10-26 07:24:29 Bwild has joined
285 2012-10-26 07:24:50 Graet_ has joined
286 2012-10-26 07:24:50 Graet_ has quit (Excess Flood)
287 2012-10-26 07:25:21 Graet_ has joined
288 2012-10-26 07:29:22 Bwild has quit (Ping timeout: 272 seconds)
289 2012-10-26 07:29:24 servvs has quit (Ping timeout: 248 seconds)
290 2012-10-26 07:31:41 ibno has joined
291 2012-10-26 07:41:51 sirk390 has quit (Quit: Leaving.)
292 2012-10-26 07:47:20 CodesInChaos has joined
293 2012-10-26 07:49:45 RainbowDashh has joined
294 2012-10-26 07:50:56 Graet_ is now known as Graet
295 2012-10-26 07:50:57 Graet has quit (Changing host)
296 2012-10-26 07:50:57 Graet has joined
297 2012-10-26 07:55:03 sirk390 has joined
298 2012-10-26 08:02:09 sirk390 has quit (Quit: Leaving.)
299 2012-10-26 08:03:41 <gmaxwell> UukGoblin: sometimes distinguishing people is already solved for you.
300 2012-10-26 08:05:24 <gmaxwell> so if you can agree on who can vote, people create ballots, encrypted with the keys of all the partipants, then the votes go into a track of ZKP mixers. Then everyone decrypts everyone. You end up with a stack of decrypted ballots that everone agrees are authentic but no one knows whos is whos.
301 2012-10-26 08:16:59 PK has quit (Quit: Leaving)
302 2012-10-26 08:23:11 <UukGoblin> ah, right, so not exactly suitable for general presidential elections
303 2012-10-26 08:23:20 t7 has joined
304 2012-10-26 08:23:21 <UukGoblin> and there's nothing that does it? :-O
305 2012-10-26 08:23:46 <UukGoblin> the dutch guys did some multi-party computation to determine a price on a double-betting thing
306 2012-10-26 08:24:52 <UukGoblin> http://viff.dk/
307 2012-10-26 08:27:31 <UukGoblin> gmaxwell, ^ that might do, maybe?
308 2012-10-26 08:35:36 PK has joined
309 2012-10-26 08:38:25 iddo has quit (Changing host)
310 2012-10-26 08:38:25 iddo has joined
311 2012-10-26 08:39:17 toffoo has quit ()
312 2012-10-26 08:42:01 _sudog is now known as sudog
313 2012-10-26 08:48:34 <thermoman> sipa, gmaxwell: rolled back yesterday and i'm now downloading a fresh blockchain with 0.7.1 that i will use to migrate the 0.3.24 clients next week - hopefully i don't need any options in DB_CONFIG any more
314 2012-10-26 08:49:03 <sipa> thermoman: loadblock didn't work?
315 2012-10-26 08:51:50 <thermoman> sipa: was too slow yesterday so we had to rollback anyway
316 2012-10-26 08:52:03 <thermoman> now i'm starting fresh with 0.7.1
317 2012-10-26 08:52:16 <sipa> well it will be faster than downloading from network!
318 2012-10-26 09:02:07 da2ce7 has joined
319 2012-10-26 09:04:07 <thermoman> sipa: yes, that might be. but what if the data in these blk* files is corrupt in the first place?
320 2012-10-26 09:04:35 <thermoman> no problem if it takes 2 or 3 days now - the old client is running in production and we will try migration next week
321 2012-10-26 09:05:51 <thermoman> is it normal that with 0.7.1 117400 blocks loaded = 200MB on disk for blk* together. with 0.3.24 the current size of blk* is 4.7GB <--- ??
322 2012-10-26 09:12:29 <sipa> thermoman: you deleted blkindex.dat without deleting blk000*.dat
323 2012-10-26 09:13:21 <sipa> thermoman: and -loadblock imports blocks as if they had been received from network, but it runs at 100% import speed because there's not network overhead/delay
324 2012-10-26 09:13:34 <sipa> so it's perfectly safe to -loadblock non-trusted data
325 2012-10-26 09:13:42 <sipa> (or potentially corrupt data)
326 2012-10-26 09:14:02 <thermoman> what happens if the blk* files are corrupt?
327 2012-10-26 09:14:09 <thermoman> does the client then load things from network?
328 2012-10-26 09:14:49 <thermoman> i did like you said: moved blk00* to /var/tmp, deleted blkindex*, ran daemon with -load... /var/tmp/ -load... /var/tmp
329 2012-10-26 09:15:19 <thermoman> it imported blocks, yes.
330 2012-10-26 09:15:54 <thermoman> but it would have taken some hours - and we didn't have this time. so we rolled back to backups we had made before the migration
331 2012-10-26 09:16:19 <sipa> depends what kind of corrupted, the client detects certain types anywhere, other types in the last 2500 blocks, and yet other types nowhere
332 2012-10-26 09:16:42 <sipa> in general corruption shouldn't happen, but in practice we've seen more than enough cases where it did
333 2012-10-26 09:17:10 <thermoman> so what happens if i use -loadblock and the file is massively corrupt? does the client simply stop importing or does the client switch to loading the remaining blocks from network?
334 2012-10-26 09:18:07 <thermoman> i want to make sure the blockchain is 100% fine - so i now load them from the network where it doesn't matter if it takes one or 4 days
335 2012-10-26 09:19:37 <sipa> loadblock is always safe; you can feed /dev/urandom into it
336 2012-10-26 09:19:52 <sipa> it will try to find blocks in the file you give it, and import those
337 2012-10-26 09:20:01 <sipa> whatever is invalid or missing will be ignored
338 2012-10-26 09:20:34 <sipa> and it does full validation, like normal blocks received over network are validated
339 2012-10-26 09:21:02 <thermoman> what happens with blocks that are missing? are they fetched from network the next time i run without -loadblock ?
340 2012-10-26 09:27:54 <sipa> they'll just be downloaded when loadblock is finished
341 2012-10-26 09:29:41 aq83 has quit (Quit: KVIrc 4.2.0 Equilibrium http://www.kvirc.net/)
342 2012-10-26 09:30:05 aq83 has joined
343 2012-10-26 09:31:47 ThomasV has joined
344 2012-10-26 09:36:02 <thermoman> is it possible to export wallet.dat to ascii and import it to eliminate any corruptions in the BDB file?
345 2012-10-26 09:40:50 Bwild has joined
346 2012-10-26 09:44:16 <kinlo> thermoman: there is a tool for that, but I don't know if it can handle encrypted wallets
347 2012-10-26 09:44:47 <kinlo> thermoman: https://github.com/jackjack-jj/pywallet
348 2012-10-26 09:45:24 <kinlo> note that most things are now possible with the rpc right in the bitcoin client
349 2012-10-26 09:50:06 <sipa> thermoman: db4.8_dump wallet.dat >wallet.dump
350 2012-10-26 09:50:11 BitcoinBaltar has quit (Remote host closed the connection)
351 2012-10-26 09:51:22 BitcoinBaltar has joined
352 2012-10-26 09:53:51 BlackPrapor has joined
353 2012-10-26 09:57:30 <thermoman> sipa: thanks, i thought of something like this
354 2012-10-26 09:59:48 _W_ has joined
355 2012-10-26 10:21:21 xisalty has quit (Remote host closed the connection)
356 2012-10-26 10:23:39 random_cat has quit (Remote host closed the connection)
357 2012-10-26 10:25:01 spq has joined
358 2012-10-26 10:25:12 random_cat has joined
359 2012-10-26 10:37:19 drizztbsd has joined
360 2012-10-26 10:49:02 jdnavarro has joined
361 2012-10-26 11:02:40 gfinn has quit (Ping timeout: 276 seconds)
362 2012-10-26 11:04:32 MobiusL has quit (Remote host closed the connection)
363 2012-10-26 11:05:58 MobiusL has joined
364 2012-10-26 11:17:04 gfinn has joined
365 2012-10-26 11:19:06 PiZZaMaN2K has quit (away!~PiZZaMaN2@host-72-2-137-170.csinet.net|Ping timeout: 260 seconds)
366 2012-10-26 11:21:02 <Eliel> sipa: have you thought of renaming ultraprune? the name is too confusing as it is since there's no actual pruning going on.
367 2012-10-26 11:23:31 <Eliel> calling it simply "utxodb" would probably cause less confusion :)
368 2012-10-26 11:26:01 <sipa> "the 0.8 engine"
369 2012-10-26 11:27:13 <sipa> i agree by the way, i should have renamed it a long time ago
370 2012-10-26 11:28:02 <sipa> but now that it's merged, i hope i don't need to refer to the name of the branch anymore often
371 2012-10-26 11:28:15 <MC1984> ultrachain man
372 2012-10-26 11:28:28 darkee has quit (Remote host closed the connection)
373 2012-10-26 11:28:40 PK has quit (Ping timeout: 276 seconds)
374 2012-10-26 11:28:41 <MC1984> in fact i sincerely hope pruning WONT ever go on by default
375 2012-10-26 11:28:54 <MC1984> cos i dont like this archive node business
376 2012-10-26 11:29:05 <MC1984> i want the chain to be able to survive a KT event
377 2012-10-26 11:29:16 darkee has joined
378 2012-10-26 11:30:51 <sipa> right now, we're losing a lot of full nodes in favor of spv nodes or non-nodes, because the resource requirements are nontrivial
379 2012-10-26 11:31:11 <Eliel> it's quite hard to figure out a monetary incentive for people to keep publicly available archive nodes. Those who are downloading the archive most likely can't pay yet.
380 2012-10-26 11:32:19 gfinn has quit (Read error: Connection reset by peer)
381 2012-10-26 11:32:20 random_cat has quit (Write error: Connection reset by peer)
382 2012-10-26 11:32:20 BitcoinBaltar has quit (Write error: Connection reset by peer)
383 2012-10-26 11:33:53 BitcoinBaltar has joined
384 2012-10-26 11:34:59 random_cat has joined
385 2012-10-26 11:36:33 <MC1984> sipa really?
386 2012-10-26 11:36:37 <MC1984> you have metrics?
387 2012-10-26 11:39:01 <sipa> no, just a guess
388 2012-10-26 11:39:38 <sipa> abd most of it is probably mostly because the reference client is too slow, and not because it eats too much disk or ram or cpu
389 2012-10-26 11:43:54 gfinn has joined
390 2012-10-26 11:47:37 Pasha has joined
391 2012-10-26 11:48:40 Cory has quit (Ping timeout: 256 seconds)
392 2012-10-26 11:49:38 agricocb has quit (Quit: Leaving.)
393 2012-10-26 11:52:44 <MC1984> theres too much take and not enough give in satoshi atm
394 2012-10-26 11:53:36 <MC1984> im sure most people would be happy to give a huge chunk of thier computer resources to support the network, as long as the cient gives them functionality straight away
395 2012-10-26 11:54:40 PK has joined
396 2012-10-26 11:56:47 <thermoman> mhhh
397 2012-10-26 11:56:48 <thermoman> 10/26/12 11:42:15 getblocks 169789 to 00000000000009ab755e limit 500
398 2012-10-26 11:56:48 <thermoman> 10/26/12 11:42:15 getblocks stopping at 169848 00000000000009ab755e
399 2012-10-26 11:57:03 <thermoman> client stops downloading new blocks
400 2012-10-26 11:57:15 <sipa> just wait
401 2012-10-26 11:57:30 <thermoman> is this an anti-ddos feature?
402 2012-10-26 11:57:53 <sipa> no, it is a crappy ibd algorithm that badly needs rewriting
403 2012-10-26 11:58:06 <thermoman> 10/26/12 11:46:10 ERROR: FetchInputs() : 21e561a2f0 mempool Tx prev not found 7a26d2f4bf
404 2012-10-26 11:58:09 <thermoman> 10/26/12 11:46:10 stored orphan tx 21e561a2f0 (mapsz 75)
405 2012-10-26 11:58:12 <thermoman> ^ this can be ignored, right?
406 2012-10-26 11:58:19 <thermoman> if i recall this from yesterday correctly
407 2012-10-26 11:58:24 <sipa> yes
408 2012-10-26 11:58:54 <thermoman> is this increasing number "mapsz" something to worry about?
409 2012-10-26 12:00:48 <MC1984> it seems like the IBD and general p2p networking barely works as it is
410 2012-10-26 12:01:02 <MC1984> well they work, but they could work a lot better
411 2012-10-26 12:01:52 <MC1984> i was shocked when i found out it will pull the entire chain from a single node if you let it :/
412 2012-10-26 12:02:13 <MC1984> high requirements indeed
413 2012-10-26 12:02:31 <thermoman> when stopping the client started with -detachdb i can copy the blk* files without database directory to other clients, right (all running the same OS, same berkdb version etc etc)
414 2012-10-26 12:03:26 <sipa> yes
415 2012-10-26 12:04:10 <thermoman> without -detachdb the database directory contains statements in the journal that was *not* written to the db files, right?
416 2012-10-26 12:04:26 <thermoman> it's like a filesystem then
417 2012-10-26 12:04:36 <thermoman> a journaling one
418 2012-10-26 12:04:47 <thermoman> sorry for asking stupid questions
419 2012-10-26 12:04:52 <sipa> no, without -detachdb, the db files contain references to the log file even when they already contain all data
420 2012-10-26 12:05:10 <thermoman> ah ok - vice versa then
421 2012-10-26 12:05:21 <sipa> the problem is that without the actual log file being oresence, there is no way of knowing whether all data was effectively written
422 2012-10-26 12:05:32 <sipa> so bdb complains if the log files are missing
423 2012-10-26 12:05:36 <sipa> stupid design
424 2012-10-26 12:05:39 <thermoman> ok
425 2012-10-26 12:06:50 <thermoman> will leveldb be more robust against corruption? i guess better performance than BDB is not a problem knowing how bad BDB performs
426 2012-10-26 12:07:38 <thermoman> running bitcoind from a USB disk (non-SSD) performance is so poor because of constantly writing data to the BDB files ... will this improve with leveldb?
427 2012-10-26 12:08:10 <sipa> yes, but maybe not enough to be useful
428 2012-10-26 12:08:15 <thermoman> ok
429 2012-10-26 12:08:49 <thermoman> is there an estimate on how long this pause regarding "getblocks stopping" will be?
430 2012-10-26 12:09:05 <thermoman> no new block downloaded since 10 minutes
431 2012-10-26 12:10:25 <sipa> that debug message is about someone downloading blocks from you
432 2012-10-26 12:10:36 <sipa> it has nothing to do with your own ibd
433 2012-10-26 12:10:54 robbak has joined
434 2012-10-26 12:11:07 <sipa> however if ibd stoos, it should continue when a new block is found
435 2012-10-26 12:11:12 <sipa> *stoos
436 2012-10-26 12:11:17 <sipa> *stoPs
437 2012-10-26 12:11:29 <thermoman> "found"?
438 2012-10-26 12:11:44 <sipa> yes, generated
439 2012-10-26 12:11:49 <sipa> mined
440 2012-10-26 12:11:55 <sipa> somewhere
441 2012-10-26 12:11:56 <thermoman> but it stopped at 169848 blocks
442 2012-10-26 12:12:03 <thermoman> it's not the end of the blockchain
443 2012-10-26 12:12:24 <sipa> so?
444 2012-10-26 12:12:37 <sipa> the whole blockchain is not sent at once
445 2012-10-26 12:13:23 <thermoman> so we have to wait that a new block is mined to transfer blocks to my client already in the network?
446 2012-10-26 12:13:57 <sipa> yes, your client right now has no idea it doesn't have all blocks
447 2012-10-26 12:14:09 <thermoman> ah ok
448 2012-10-26 12:14:38 <sipa> so when a new block is broadcast, it will notice that an range is missing, and start requesting them
449 2012-10-26 12:14:41 <thermoman> next time a peer i'm connected to receives the new mined block he will send the next 500 blocks to my client?
450 2012-10-26 12:14:59 <thermoman> strange algorithm :)
451 2012-10-26 12:15:08 TD has joined
452 2012-10-26 12:15:08 <sipa> it's a bit more comolex than that
453 2012-10-26 12:15:45 <thermoman> this was implemented to prevent clients constantly polling their peers for missing blocks?
454 2012-10-26 12:16:39 <Luke-Jr> AFAIK it's a bug
455 2012-10-26 12:16:46 <sipa> well, for a long time this was no problem
456 2012-10-26 12:17:22 <sipa> it's only since ibd started taking so long that problems like peers disappearing and interference with new blcoks being broadcasted became an issue
457 2012-10-26 12:17:34 <sipa> but yes, ibd is a hack and it's broken
458 2012-10-26 12:17:40 <thermoman> thins kind of bug is called bug feature at our company ... a bug that is still a feature
459 2012-10-26 12:17:49 <sipa> it works, but far from as good as it can
460 2012-10-26 12:18:26 <thermoman> is it planned to change the way how ibd (what does this mean btw?) work?
461 2012-10-26 12:19:19 <sipa> yes, fundamentally
462 2012-10-26 12:19:35 <sipa> ibd = initial block downloaf
463 2012-10-26 12:19:37 <sipa> d
464 2012-10-26 12:20:23 <thermoman> it would help if there would be a central place to download snapshots from. this place should be a credible source though
465 2012-10-26 12:21:30 <sipa> see the bitcoin bittorrent project
466 2012-10-26 12:22:17 <thermoman> ok
467 2012-10-26 12:22:35 <thermoman> download continued ... yeah
468 2012-10-26 12:29:41 spreelanka has joined
469 2012-10-26 12:33:04 datagutt has joined
470 2012-10-26 12:41:43 Descry has joined
471 2012-10-26 12:51:28 Descry has quit (Ping timeout: 268 seconds)
472 2012-10-26 12:51:28 Bwild has quit (Ping timeout: 268 seconds)
473 2012-10-26 12:53:19 Descry has joined
474 2012-10-26 12:57:48 agricocb has joined
475 2012-10-26 13:01:26 tsche has quit ()
476 2012-10-26 13:07:52 graingert_ecs has joined
477 2012-10-26 13:13:29 TheEslbear has quit (Quit: Verlassend)
478 2012-10-26 13:13:56 paraipan has joined
479 2012-10-26 13:19:20 Maccer has quit (Remote host closed the connection)
480 2012-10-26 13:20:26 Bwild has joined
481 2012-10-26 13:21:26 <robbak> Doing some testing, for myself: How can I tell if it is using the bootstrap.dat file I just put in a fresh directory?
482 2012-10-26 13:23:13 [\\\] has quit (Ping timeout: 264 seconds)
483 2012-10-26 13:24:58 one_zero has quit ()
484 2012-10-26 13:28:56 <robbak> I can't see any reference to it in the logfile
485 2012-10-26 13:39:02 <sipa> do you see messages "received block ..." in debug.log while importing?
486 2012-10-26 13:41:42 TD has quit (Quit: TD)
487 2012-10-26 13:44:11 dvide has joined
488 2012-10-26 13:45:41 <robbak> Only one: just after height 142331: 10/26/12 13:19:48 received block 00000000000004a2cee9
489 2012-10-26 13:46:45 <robbak> I am testing with current git master.
490 2012-10-26 13:47:48 tyn has joined
491 2012-10-26 13:48:33 <sipa> but you do see lots of messages about new best chains?
492 2012-10-26 13:48:46 <sipa> ProcessBlock ...
493 2012-10-26 13:50:42 <robbak> Yes, lots of SetBestChain and ProcessBlock: ACCEPTED. That looks just like a normal download from network.
494 2012-10-26 13:50:42 spreelanka has quit (Quit: spreelanka)
495 2012-10-26 13:51:06 <sipa> ok, then it's using bootstrap
496 2012-10-26 13:51:19 <sipa> it'll rename the file when it's doen
497 2012-10-26 13:52:54 <robbak> OK. A log message that indicates that it has found and importing the file would be good.
498 2012-10-26 13:53:17 <robbak> That said, it's probably staring at me: the bottom line does say "Importing blocks..."!
499 2012-10-26 13:58:26 TD has joined
500 2012-10-26 14:00:47 hsy has joined
501 2012-10-26 14:01:19 copumpkin has quit (Quit: Computer has gone to sleep.)
502 2012-10-26 14:02:06 <hsy> testnet faucet is down. anyone so kind and send me some testnet coins to mgtzk7zeJkYDGSWzUPtBktToBHvbqZptxG ?
503 2012-10-26 14:04:23 <jeremias> hsy: 5 testnet coins sent
504 2012-10-26 14:04:33 <hsy> just got it, thanks jeremias :-)
505 2012-10-26 14:17:46 <robbak> There's a few more.
506 2012-10-26 14:21:47 MiningBuddy- is now known as MiningBuddy
507 2012-10-26 14:21:48 MiningBuddy has quit (Changing host)
508 2012-10-26 14:21:48 MiningBuddy has joined
509 2012-10-26 14:21:53 <hsy> thx robbak :)
510 2012-10-26 14:22:13 <hsy> yellowhat: just secured our play money!!
511 2012-10-26 14:23:31 <sipa> TD: present?
512 2012-10-26 14:23:50 <TD> and correct
513 2012-10-26 14:23:57 <TD> just killing a bit of time before TGIF
514 2012-10-26 14:24:09 <sipa> TD: i've pretty much worked out how to do partial merkle trees
515 2012-10-26 14:24:46 <TD> if you want to write the code (on both sides), go ahead :)
516 2012-10-26 14:25:35 <sipa> well, one question: do want to be able to easily see (this is just an encoding question) which are the matched txids, without verifying the merkle tree
517 2012-10-26 14:25:49 copumpkin has joined
518 2012-10-26 14:26:22 <sipa> as the algorithm is basically just DFS on the merkle tree, and providing nodes' hashes when necessary, the easiest way is to send the actual matched txids as part of that
519 2012-10-26 14:27:32 <sipa> but that means that to actually get that list, you need to walk the tree
520 2012-10-26 14:27:35 <TD> i don't know. i doubt it matters. you need the list of txids of course but if it involves some decoding, no big deal
521 2012-10-26 14:28:19 <sipa> i'll try to implement it this weekend
522 2012-10-26 14:28:56 BitcoinBaltar has quit (Remote host closed the connection)
523 2012-10-26 14:29:39 BitcoinBaltar has joined
524 2012-10-26 14:29:50 <gmaxwell> yea, you dfs and encoded a bit to say if you split or stop. The interesting thing is that if its encoded right then it also tells you the order to hash on decode, so the validation code is very straight forward.
525 2012-10-26 14:30:18 <sipa> gmaxwell: exactly; just the same DFS, consuming hashes/marker bits as necessary
526 2012-10-26 14:30:28 <sipa> in exactly the same order as the output algorithm
527 2012-10-26 14:31:13 <gmaxwell> I think you can implment it so that depending on the bit you either push a value onto a stack, or you merge the last two values push that; e.g. without ever building an explicit tree in the decoder.
528 2012-10-26 14:31:37 tsche has joined
529 2012-10-26 14:31:59 servvs has joined
530 2012-10-26 14:32:02 <sipa> possibly, but just recursive descent would be more readable, using the execution stack as node hash stack
531 2012-10-26 14:32:39 jdnavarro has quit (Read error: Connection reset by peer)
532 2012-10-26 14:33:55 <sipa> simplify things a bit, use a full byte for the marker bits, and adding a flag to say "the next hash is a matched txid", and you get 33 bytes per tree node, with that number of nodes limited by both num_tx_in_block and by log2(num_tx_in_block)*matched_tx
533 2012-10-26 14:34:10 <TD> it would be annoying if large blocks could cause stack overflows
534 2012-10-26 14:34:29 <TD> might be better to write it to use a separate stack
535 2012-10-26 14:34:55 <sipa> i don't think 64 recursion levels is a problem for any language, and i think we can be pretty sure never to have more than 2^64 transactions in a block
536 2012-10-26 14:35:06 jdnavarro has joined
537 2012-10-26 14:36:29 Joric has joined
538 2012-10-26 14:37:11 <sipa> maybe it's not bad that the encoding requires you to walk the tree (explicitly or implicitly) to find the txids, as that lowers the bar for doing merkle tree verification along the way
539 2012-10-26 14:39:14 PiZZaMaN2K has joined
540 2012-10-26 14:39:37 tyn has quit (Ping timeout: 244 seconds)
541 2012-10-26 14:42:07 [\\\] has joined
542 2012-10-26 14:45:26 ThomasV has left ("Leaving")
543 2012-10-26 14:46:13 <gmaxwell> sipa: ah, thats an interesting point.
544 2012-10-26 14:50:40 PK has quit (Quit: Leaving)
545 2012-10-26 14:50:46 <TD> sipa: i doubt it too, though some platforms start with small (4k?) stacks and in C++ it's easy to generate huge stack frames by allocating objects there
546 2012-10-26 14:51:05 <TD> but sure, if you can go 64 frames deep and there's no issue it can be capped there easily
547 2012-10-26 14:51:23 <TD> or at 32
548 2012-10-26 14:51:24 <TD> or whatever
549 2012-10-26 14:52:00 <sipa> currently there's no way of needing more than 12-13 levels, so even 4k shouldn't be a problem
550 2012-10-26 14:52:30 <TD> ok
551 2012-10-26 14:52:58 <TD> on a different topic, miners discouraging blocks that contain double spends against their memory pools
552 2012-10-26 14:53:07 <TD> attackable?
553 2012-10-26 14:53:34 <sipa> as long as transaction malleability exists: trivially
554 2012-10-26 14:54:18 Joric has quit ()
555 2012-10-26 14:55:16 <gmaxwell> Even without malleability it just requires me to have one coin and I can constantly produce a stream of conflicting transactions, and I just give another one to every node. Then I program my own pool to not mine any of these.
556 2012-10-26 14:56:06 <gmaxwell> This is quite cheap to do, and it should increase my share of the solved blocks.
557 2012-10-26 14:56:08 <TD> combined with double spend alerts, so the transactions you're giving out get cancelled and the outputs blacklisted for a while
558 2012-10-26 14:57:18 <gmaxwell> TD: I'm not following you there. If you're thinking of refusing to mine potential double spends then that isn't helpfulâ double spends need to get mined to get resolved. Generally disincentivizing including them leaves the window open.
559 2012-10-26 14:58:51 <TD> they don't need to get mined. if a node sees evidence of an output being double spent, it can simply drop all transactions spending that output from its memory pool and wait a while before accepting any more. if it then sees a block that spends a blacklisted output it doesn't build on top of it
560 2012-10-26 14:59:20 <helo> so it tries to fork?
561 2012-10-26 14:59:45 <TD> it effectively puts the double-spending block onto a fork. this has been called "discouraging" in the past because the block is still valid and accepted by bitcoin nodes
562 2012-10-26 14:59:50 <TD> miners would just not mine on top of them by default
563 2012-10-26 15:00:12 <gmaxwell> TD: I don't see how that addresses the point I was raising.
564 2012-10-26 15:00:13 <TD> so the double-spend would be effective for a short amount of time and then get rolled back
565 2012-10-26 15:00:34 <TD> i don't see what you mean by "double spends need to get mined to get resolved"
566 2012-10-26 15:01:01 <gmaxwell> until one of the spends gets mined you have no clue which one will ultimately be the successful one.
567 2012-10-26 15:01:04 <helo> i guess that just makes it easier for people who don't follow the fork to mine the next block
568 2012-10-26 15:01:37 <TD> double spends aren't supposed to ever happen in normal operation. if (assuming fixed malleability) you see them, dropping them and alerting your peers makes sense
569 2012-10-26 15:01:45 <helo> or easier for someone with what would be less than 50% to have possibly more than 50%? kind of a stretch, but i think technically true
570 2012-10-26 15:01:46 <TD> and then discouraging blocks spending the double-spent output also makes sense
571 2012-10-26 15:01:59 <TD> the point of discouragement is miners say "we believe this behaviour is bad and will discourage it"
572 2012-10-26 15:02:02 <TD> yes you don't have to take part
573 2012-10-26 15:02:13 <TD> if the majority agree to enforce that rule then it's better to side with that majority of course
574 2012-10-26 15:02:17 <gmaxwell> Okay, I'm wondering if you understood the point I was making?
575 2012-10-26 15:02:34 <gmaxwell> As a miner I can use this to attack other miners so my blocks will be more successful than anyone elses.
576 2012-10-26 15:04:28 <gmaxwell> I can do this by giving everyone a different version of the transaction. If you expect double spend alterts to remove this risk (well, it can't completely) then it would only do so by miners refusing to mine any side of a double spend... making inputs that got double spent (e.g. accidentally) unspendable or very slow to spend, which doesn't protect anyone.
577 2012-10-26 15:04:36 MBS_ has joined
578 2012-10-26 15:04:36 <TD> you can broadcast double spends of your own coins, yes. nodes tell each other about those transactions and drop all double spends from their memory pools. it's possible that because of the inherent racyness one miner might include a tx, mine a block and then see the double spend right after, resulting in their block being discouraged. but you need a lot of unspent coins and eventually they all end up blacklisted.
579 2012-10-26 15:06:50 <TD> i think it does protect people. it increases the cost of doing a finney attack because whilst your spend still gets rolled back, you can't spend the money for a while, and you lose any incentive from the block you mined.
580 2012-10-26 15:06:53 <helo> blacklisting coins makes /me a sad panda
581 2012-10-26 15:07:02 gavinandresen has joined
582 2012-10-26 15:07:04 <gmaxwell> also means that I can pay someone, and then make the payment non-confirmable by just periodically announcing a conflictâ makes non-finny attacks against unconfirmed acceptance riskier.
583 2012-10-26 15:07:23 <BlueMatt> gmaxwell: what is this attack on miners?
584 2012-10-26 15:07:26 <sipa> i think the purpose of the network should be to aim for consistency as quickly as possible
585 2012-10-26 15:07:40 <sipa> delaying transactions or shunning blocks doesn't help for this
586 2012-10-26 15:07:42 <gmaxwell> TD: a while = forever. I can just keep reannouncing other people's conflicts forever to keep coins out of circulation.
587 2012-10-26 15:09:12 <gmaxwell> BlueMatt: I can cause miners to mine transactions which some other nodes will consider double spends (by just hitting all the nodes I can with a series of double spends), this exposure is reduced (but not removed) in TD's suggestion to have miners ignore those inputs, but that raises other issues with making the coins unspendable.
588 2012-10-26 15:09:14 <TD> it's true that it lets you cancel an unconfirmed transaction in a different way, yes
589 2012-10-26 15:09:19 twobitcoins_ has joined
590 2012-10-26 15:09:57 <sipa> all this is independent from the idea of broadcasting "hey i saw a double spend" messages, though
591 2012-10-26 15:10:22 <sipa> though i think we want to remove malleability before that too
592 2012-10-26 15:10:23 <gmaxwell> sure, I like provable double spend alerts.
593 2012-10-26 15:10:46 <TD> hmm
594 2012-10-26 15:12:10 twobitcoins has quit (Ping timeout: 244 seconds)
595 2012-10-26 15:12:17 <gmaxwell> sipa: it could be done without solving malleability. E.g. something is a double spend to you only if you recieve it non-first and only if it reduces some output vs the first. Makes the comparisons more messy and may diminish the alerts usage for some contract txn.
596 2012-10-26 15:12:45 <sipa> true
597 2012-10-26 15:13:05 <TD> if on seeing a double spend alert you just relayed it, but didn't remove the spend you saw first from the memory pool, and continued to mine on the tx you saw first, the "panic and stop the sale" use case would still be met, but you couldn't revoke your own spends. you could then discourage a block only if it contained a double spend that had not been previously announced on a network. then what happens?
598 2012-10-26 15:13:53 <gmaxwell> TD: you still have a race on those announcments and an incentive to just not mine those txn at all.
599 2012-10-26 15:14:38 [\\\] has quit (Ping timeout: 240 seconds)
600 2012-10-26 15:14:54 <gmaxwell> (not to mention that I don't see how you could avoid the attacker just announcing the warning instantly before the block; without increasing the race risk)
601 2012-10-26 15:15:02 <TD> right
602 2012-10-26 15:15:05 <TD> that just occurred to me
603 2012-10-26 15:25:01 <BlueMatt> gmaxwell: why would a node consider it a double spend (obv it will be against its mempool, but it should accept the block anyway, no?)? (Im assuming this is a bug, or what)
604 2012-10-26 15:25:04 gfinn has quit (Remote host closed the connection)
605 2012-10-26 15:25:21 <helo> i strongly oppose the "panic and stop the sell" use case. users should remove all doubt before clicking "send"
606 2012-10-26 15:26:05 <gmaxwell> BlueMatt: TD is proposing to discourage block that contain things you'd consider doublespends.
607 2012-10-26 15:26:14 <BlueMatt> ahh
608 2012-10-26 15:26:24 <helo> "panic and stop the sell" seems antithetical to bitcoin
609 2012-10-26 15:26:38 Descry has quit (Ping timeout: 240 seconds)
610 2012-10-26 15:26:52 <gmaxwell> helo: what, so you could happily send goods to someone you can tell is trying to rip you off? uuh. No.
611 2012-10-26 15:27:14 <helo> oh, i didn't understand what he meant by that
612 2012-10-26 15:27:25 conman has quit (Ping timeout: 264 seconds)
613 2012-10-26 15:27:32 <helo> i thought he meant transaction replacment
614 2012-10-26 15:28:02 <helo> carry on... 0_o
615 2012-10-26 15:29:35 <gmaxwell> jgarzik: hopefully picocoin' wallet design doesn't preclued watch only addresses? I expect that would be a major usecase for it.
616 2012-10-26 15:30:52 <gavinandresen> Anybody played with STOMP? http://stomp.github.com//
617 2012-10-26 15:31:56 <drizztbsd> gavinandresen: just another json? :P
618 2012-10-26 15:32:22 <gavinandresen> drizztbsd: no, another store-and-forward messaging system
619 2012-10-26 15:32:43 <gavinandresen> we need a store-and-forward messaging system to do user-friendly multisignature transaction signing
620 2012-10-26 15:33:10 <cosurgi> how long bitcoinminer.com is down?
621 2012-10-26 15:36:41 ThomasV has joined
622 2012-10-26 15:37:20 gfinn has joined
623 2012-10-26 15:37:31 tsche has quit ()
624 2012-10-26 15:38:35 TD has quit (Quit: TD)
625 2012-10-26 15:39:50 maaku has joined
626 2012-10-26 15:44:20 Icoin has joined
627 2012-10-26 15:44:50 <helo> what's a good way to see in debug.log when -loadblock completes?
628 2012-10-26 15:45:43 <helo> apparently the 'getblocks...' lines
629 2012-10-26 15:48:18 <helo> my -loadblock seems to have finished at 22:08:25 height 204954, and then i don't see any new blocks being processed until 07:49:11, when blocks 204955 to 205019 were processed
630 2012-10-26 15:49:46 copumpkin has quit (Ping timeout: 255 seconds)
631 2012-10-26 15:50:31 copumpkin has joined
632 2012-10-26 15:56:56 t7 has quit (Read error: Connection reset by peer)
633 2012-10-26 15:58:07 arij has joined
634 2012-10-26 15:58:31 arij is now known as Guest25958
635 2012-10-26 16:04:24 <BlueMatt> yay free on-bus wifi...
636 2012-10-26 16:04:47 * BlueMatt still feels like messing with double-spend relaying/double-spend discouraging/etc is premature
637 2012-10-26 16:05:34 <BlueMatt> afaik there is still a valid argument to say that it is possible to achieve the same with other means
638 2012-10-26 16:06:30 <helo> should people be discouraged from paying attention to what happens before 6 confirmations?
639 2012-10-26 16:07:52 <BlueMatt> what do you mean "what happens"
640 2012-10-26 16:09:22 <helo> the transaction has from 0 to 5 confirms ;)
641 2012-10-26 16:10:23 <UukGoblin> what's up with the internet?
642 2012-10-26 16:10:38 <UukGoblin> http://www.internettrafficreport.com/ looks like half of it is down
643 2012-10-26 16:11:25 <BlueMatt> helo: yes, and what do you mean by the other half of the question?
644 2012-10-26 16:11:57 <gmaxwell> helo: it depends on the context.
645 2012-10-26 16:12:12 <BlueMatt> and that
646 2012-10-26 16:12:20 <UukGoblin> helo, no, why?
647 2012-10-26 16:12:55 <UukGoblin> it's useful to see if your transaction gets confirmed by the first block, as then you're pretty much guaranteed that it'll be accepted in the following blocks
648 2012-10-26 16:13:21 <helo> i guess i mean from the perspective of someone receiving a payment, rather than sending one
649 2012-10-26 16:13:58 <UukGoblin> that depends on trust I guess
650 2012-10-26 16:14:04 <gmaxwell> helo: it depends. Are you selling a $2 soda pop to someone you can punch in the face later if they ripped you off vs selling your car?
651 2012-10-26 16:15:33 brwyatt is now known as Away!~brwyatt@brwyatt.net|brwyatt
652 2012-10-26 16:15:38 <UukGoblin> gmaxwell, did you check out viff.dk? do you think it might be any good for p2p elections?
653 2012-10-26 16:16:34 <helo> considering preventing transactions from getting into any blocks that look like possible double spends is kind of moot if vendors ignore anything before 6 confirms
654 2012-10-26 16:17:11 <helo> do we want people to use bitcoin to sell soda pop?
655 2012-10-26 16:17:16 <gmaxwell> helo: TD wants people accepting unconfirmed transactions.
656 2012-10-26 16:17:57 <BlueMatt> gmaxwell: I actually still support the idea, but I see nothing wrong with using a bitcoin backbone to check with miners first to be the way to go...
657 2012-10-26 16:17:58 <UukGoblin> there were also talks about building some fast confirmation networks
658 2012-10-26 16:18:02 <BlueMatt> doesnt require protocol changes
659 2012-10-26 16:18:20 <UukGoblin> actually with multisig, you could have semi-trusted authorities that could speed up transaction confirmation
660 2012-10-26 16:18:33 <gmaxwell> BlueMatt: that does no good against a finny attack.
661 2012-10-26 16:18:34 <helo> at this point it seems that more people accepting bitcoin for any level of exchange is good, but in the long run, assuming bitcoin becomes popular, are low value transactions scaleable?
662 2012-10-26 16:18:57 <UukGoblin> helo, no, because of the block limits
663 2012-10-26 16:19:09 <gmaxwell> helo: TD also believes we should hardfork the protocol and remove the block size limits so there would be e.g. 1GB blocks.
664 2012-10-26 16:19:11 * BlueMatt has to go get off the bus...
665 2012-10-26 16:19:26 <gmaxwell> (not now, I assume, but $someday)
666 2012-10-26 16:19:29 <helo> so should we not give any thought to use cases for the $2 soda pop vendor?
667 2012-10-26 16:19:36 <UukGoblin> remove it entirely? :-O
668 2012-10-26 16:19:49 <UukGoblin> that'd just bloat it off indefinitely
669 2012-10-26 16:20:00 <UukGoblin> any 1 miner could create a massive block
670 2012-10-26 16:20:13 <UukGoblin> with lots of porn
671 2012-10-26 16:20:15 <gmaxwell> helo: Today it's helpful but that kind of usage is somewhat incompatible with the kind of consensus algorithim bitcoin uses.
672 2012-10-26 16:20:31 <gmaxwell> UukGoblin: that isn't my biggest concern.
673 2012-10-26 16:21:10 <gmaxwell> UukGoblin: my primary concern is that doing so would make bitcoin substantially non-decenteralized because only major instutions could affort to validate blocks.
674 2012-10-26 16:21:42 <gmaxwell> And well, it might survive that wayâ but why bother? paypal and visa are a lot more efficient if you will tolerate major instutional centeralization.
675 2012-10-26 16:21:54 <UukGoblin> if someone started submitting 1TB blocks, it'd just kill the entire network of fully-validating nodes.
676 2012-10-26 16:22:06 nus- has joined
677 2012-10-26 16:22:12 agricocb has quit (Remote host closed the connection)
678 2012-10-26 16:22:12 <gmaxwell> Uncapping blocks would also remove the economic incentive for substantial txn fees to pay for adequate security.
679 2012-10-26 16:22:54 <UukGoblin> in short, I don't see how it's viable at all.
680 2012-10-26 16:22:54 <Luke-Jr> UukGoblin: my thought was to set the limit to some % over the median block size over the last N blocks
681 2012-10-26 16:23:04 <gmaxwell> UukGoblin: presumably people would reject blocks too big for them... but then that has the cost of making the consensus far less determinstic ("is six confirms enough?"), and also encouraging miner conspiracies which are even less beneficial to the public interest.
682 2012-10-26 16:23:50 <UukGoblin> Luke-Jr, yup, I saw it. It's better, but it still makes the storage space undeterministic
683 2012-10-26 16:24:09 <gmaxwell> Measuring it based on blocks still has the problem of miners would rationally vote for larger limits (moar fees in short term!) with bad long term effects and knocking out validators.
684 2012-10-26 16:24:28 <UukGoblin> yeah
685 2012-10-26 16:24:41 <Luke-Jr> hmm
686 2012-10-26 16:26:01 <sipa> also, the best-performing mining facility gets an incentive to spam the chain within their own capability, in order to make it harder for competitors to mine
687 2012-10-26 16:26:24 <sipa> although that may have rapid effects on the usability of the currency, decreasing its value
688 2012-10-26 16:27:11 <Luke-Jr> sipa: you'd need 51% to single-handedly set the median
689 2012-10-26 16:27:55 <sipa> oh, i'm not specifically talking about the median rule
690 2012-10-26 16:28:38 <sipa> just that if you can process more transactions than your competitors, regardless of your hashrate, you have an incentive to spam the chain to a point beyond their ability to deal with
691 2012-10-26 16:28:54 JZavala has joined
692 2012-10-26 16:30:19 twobitsprite has quit (Ping timeout: 260 seconds)
693 2012-10-26 16:30:43 <gmaxwell> and of course other high performing competition would also do the same, so no one spammer has to be >51%
694 2012-10-26 16:31:13 <gmaxwell> UukGoblin's comment on capacity planning is interesting too.
695 2012-10-26 16:31:17 twobitsprite has joined
696 2012-10-26 16:31:19 <gmaxwell> though that could be addressed.
697 2012-10-26 16:32:20 <gmaxwell> but I don't see any way to balance the interest of all full validators vs the subset that mine, something that is more important as mining has become increasingly specialized.
698 2012-10-26 16:32:43 <gmaxwell> (and coslty compared to validation! holy crap the validation you could have today for the price of mining)
699 2012-10-26 16:33:10 <helo> it would be nice to just neglect low-value transactions for altcoins or centralized systems to handle
700 2012-10-26 16:33:29 <gmaxwell> These kinds of crazy growth ideas do make me more fond of amiller's "random queries against the txoutset POW", since that makes miners costs with increasing txout set size worse than other validators.
701 2012-10-26 16:33:56 <UukGoblin> yes, I think there should be a nice way to separate many small transactions into some sort of "sub" network
702 2012-10-26 16:34:04 <gmaxwell> helo: well thats whats required without a hardfork. But no one is making a good alternative payment system yet so we can prove the integration works.
703 2012-10-26 16:34:45 <gmaxwell> bitcoin based alternatives aren't really alternativesâ they have the same problems fundimentally, even if you might multiple the scale some.
704 2012-10-26 16:34:52 <gmaxwell> (e.g. they can't do reliable fast transactions)
705 2012-10-26 16:35:01 <gmaxwell> and centeralized systems are just too likely to go the way of mybitcoin.
706 2012-10-26 16:35:21 <UukGoblin> gmaxwell, with multi-sig you can have a network of low-trust validators
707 2012-10-26 16:35:21 <gmaxwell> at least today, someday when visa has a bitcoin card that will be viable. :P
708 2012-10-26 16:35:53 <UukGoblin> as soon as a validator does one invalid action, it's instantly seen by everyone and its reputation goes out
709 2012-10-26 16:36:15 <gmaxwell> UukGoblin: lots of things are possible. But these possibilities don't exist, and until they do it's harder to convince people bitcoin won't "need" gigantoblocks.
710 2012-10-26 16:37:04 <Luke-Jr> gmaxwell: if it wasn't for that MSB nonsense, I'd be looking into whether this Bluebird.com thing can serve as a (real) Bitcoin debit card
711 2012-10-26 16:37:32 <helo> it's probably not possible to do with zero-trust, but it would be neat if there was an altcoin that would ditch the entire blockchain in favor of a hash representing the previous blockchain and the uxto set
712 2012-10-26 16:38:29 <gmaxwell> so, what then perhaps, an altcoinâ where semi-fast payment oracles are well integrated which is purely UTXO-SPV based, which has UTXO aging rules.. and which merges mines with bitcoin, and has some special opcodes for doing atomic transactions with bitcoin?
713 2012-10-26 16:38:39 <Luke-Jr> helo: you don't need an altcoin
714 2012-10-26 16:38:39 <gmaxwell> helo: jinx.
715 2012-10-26 16:38:45 <helo> hah
716 2012-10-26 16:38:57 <gmaxwell> thats what I mean by UTXO-SPV.
717 2012-10-26 16:39:30 <gmaxwell> e.g. where _no one_ validates the history more than some window ago. The danger of which is reduced because old transactions age out somewhat rapidly.
718 2012-10-26 16:39:39 <UukGoblin> gmaxwell, correct. Guess I need to get codin'! ;-)
719 2012-10-26 16:41:14 <gmaxwell> UukGoblin: switch its signing algorithim to ed25519 while you're at it. :P
720 2012-10-26 16:41:22 <jgarzik> OK
721 2012-10-26 16:41:28 <jgarzik> not pretending it is anywhere near complete or working
722 2012-10-26 16:41:31 <jgarzik> https://github.com/jgarzik/picocoin
723 2012-10-26 16:41:50 <jgarzik> gmaxwell: right now it just does privkeys, but watch-only makes sense
724 2012-10-26 16:42:08 <gmaxwell> it builds.
725 2012-10-26 16:42:24 <jgarzik> gmaxwell: the network is fork-separated from the rest of the process
726 2012-10-26 16:42:51 <jgarzik> not that the network code actually does anything ;p
727 2012-10-26 16:44:32 theorbtwo has quit (Read error: Operation timed out)
728 2012-10-26 16:44:52 bitcoinz has quit (Remote host closed the connection)
729 2012-10-26 16:45:40 bitcoinz has joined
730 2012-10-26 16:45:40 theorbtwo has joined
731 2012-10-26 16:45:47 <gmaxwell> Static analysis says that if I give it a zero txn block, struct buffer buf = { hashes->data, SHA256_DIGEST_LENGTH }; results in null deref in bp_block_merkle dunno if you have a rule to catch that case earlier on.
732 2012-10-26 16:46:56 <helo> so with UTXO-SPV, you'd have to be very careful that the window is long enough that the amount of work is just unimaginably difficult for any entity to perform on its own in a timeframe less than the window... or something
733 2012-10-26 16:47:50 <helo> "keep all history around forever" seems pretty toxic if UTXO-SPV is viable
734 2012-10-26 16:48:08 <gmaxwell> helo: this is made easier than you might guess by being SPV'd with timestamps locked by bitcoin.
735 2012-10-26 16:48:43 <jgarzik> gmaxwell: if block->vtx is non-null, it should have at least one tx in it
736 2012-10-26 16:49:07 <gmaxwell> helo: you can UTXO-SPV and fully pruned have the same operating costs. It's just bootstrapping that differ, and we could UTXO-SPV in bitcoin too. The primary thing to improve in an altcoin over bitcoin is utxo set size.
737 2012-10-26 16:49:27 MBS_ is now known as MBS
738 2012-10-26 16:49:49 * jgarzik adds a check anyway
739 2012-10-26 16:49:55 <gmaxwell> jgarzik: you code would be nicer if you added assertions as you went generally. :P
740 2012-10-26 16:49:57 MBS is now known as Guest78583
741 2012-10-26 16:50:01 PiZZaMaN2K is now known as PiZZaMaN2K|away
742 2012-10-26 16:50:09 <helo> so this system would be heaviliy dependant upon bitcoin for its security? what if bitcoin's "keep all history around forever" rule ends up killing it off?
743 2012-10-26 16:50:12 <gmaxwell> (simply because assertions tend to be highly synergistic with real testing)
744 2012-10-26 16:50:23 <jgarzik> gmaxwell: generally prefer real runtime checks over assertions
745 2012-10-26 16:50:33 <helo> i.e. what if non-UTXO-SPV isn't viable
746 2012-10-26 16:50:36 <gmaxwell> helo: bitcoin's in no danger of that unless people do the hardfork to increase block sizes.
747 2012-10-26 16:50:52 jdnavarro has quit (Read error: Connection reset by peer)
748 2012-10-26 16:51:10 <gmaxwell> helo: and bitcoin is _not_ "keep all history around forever" on all full nodes.
749 2012-10-26 16:51:29 <gmaxwell> a pruned node is still a full node.
750 2012-10-26 16:52:36 <jgarzik> maaku: see above URL
751 2012-10-26 16:53:04 <helo> gmaxwell: is there a discussion about "atomic transactions with bitcoin"?
752 2012-10-26 16:53:10 <maaku> thank you
753 2012-10-26 16:53:17 <gmaxwell> jgarzik: well, if you want to deal with the extra bugs that can come out of "never can happen thus untestable" error handling code, okay. Though one of the values of formal asserts is that they integrate nicely into test harnesses. E.g. you don't have a "never can happen" assumption get silently ignored because returning an error was expected, just not quite the same error.
754 2012-10-26 16:53:58 jdnavarro has joined
755 2012-10-26 16:54:12 <jgarzik> - if (!block->vtx)
756 2012-10-26 16:54:12 <jgarzik> + if (!block->vtx || !block->vtx->len)
757 2012-10-26 16:54:12 <jgarzik> return false;
758 2012-10-26 16:54:27 <gmaxwell> Yea, in that case, works fine.
759 2012-10-26 16:54:31 <jgarzik> gmaxwell: what I meant was preferring a fix like the one just pasted, rather than pooping assert(blah) all over
760 2012-10-26 16:57:39 <gmaxwell> You could also do something like if (!block->vtx || MUST_BE_FALSE(!block->vtx->len)) where normally #define MUST_BE_FALSE (x) (x) but when assertions are enabled it's an assertion. So you get both a runtime test and a holy-shit back door for the test harness.
761 2012-10-26 16:58:25 Guest78583 is now known as MBS
762 2012-10-26 16:58:35 MBS has quit (Changing host)
763 2012-10-26 16:58:35 MBS has joined
764 2012-10-26 16:58:43 <gmaxwell> (and also a hint for your coverage analysis that you don't expect that branch-condition to ever get hit)
765 2012-10-26 16:58:51 drizztbsd has quit (Read error: Connection reset by peer)
766 2012-10-26 16:59:19 <jgarzik> agree there is logic there, but I've been burned in the past by over-assertive code. GNOME apps are bloody awful for that... full of assertions that poop all over the console like a misbehaving python program
767 2012-10-26 16:59:23 <jgarzik> GNOME/Gtk
768 2012-10-26 16:59:51 freakazoid has joined
769 2012-10-26 17:00:12 <jgarzik> so I just prefer to enable cheap tests unconditionally at runtiome
770 2012-10-26 17:00:14 <jgarzik> *runtime
771 2012-10-26 17:00:39 <jgarzik> the above does that, but at a cost of big source annotations
772 2012-10-26 17:03:33 <gmaxwell> I generally consider assertions included outsider of developer test builds to be really stupid.
773 2012-10-26 17:05:10 <gmaxwell> I think they're useful in the context of development and testing because even with really good testing a lot of nasty behavior is silent or only doomy with an super-improbable sequence of operations that an attacker could create but your tests won't. But in production code. yuck. Thats just admitting your tests are inadequate and the users are the guniepigs or that you're too lazy for error handling.
774 2012-10-26 17:06:08 <gmaxwell> In stuff I do QA on most of my assertions are just my own macros, which get used in CI test harness builds and my own development and nowhere else.
775 2012-10-26 17:06:53 <gmaxwell> Esp since I try to follow the model of untested code is broken, so since I can't by definition trigger my assertions I assume them to be broken, and thus don't want them in production code.
776 2012-10-26 17:09:12 <jgarzik> The kernel follows a different policy from gnome, picocoin and you too ;p In the general, sometimes the users are the only thing that might trigger some code, due to obscure hardware. The kernel tries to make runtime tests unconditionally enabled, yet as cheap as possible, including wrapping with, __builtin_unlikely()
777 2012-10-26 17:09:46 <jgarzik> BUG_ON(condition) will cause a kernel oops, if triggered. that's the kernel's assert ;p
778 2012-10-26 17:10:13 RainbowDashh has quit (Quit: SLEEP MODE. puppy: it'd be wise to actual chat on here and not loiter.)
779 2012-10-26 17:10:53 <jgarzik> of course, that's a very special case, and we smack devs around who BUG_ON() for conditions that do not involve kernel-will-crash-anyway bug conditions
780 2012-10-26 17:12:12 <jgarzik> but all kernel builds do enable BUG_ON() making users the guinea pigs ;p
781 2012-10-26 17:14:06 setkeh has quit (Read error: Connection reset by peer)
782 2012-10-26 17:14:23 setkeh` has joined
783 2012-10-26 17:14:29 random_cat has quit (Ping timeout: 276 seconds)
784 2012-10-26 17:17:44 <jgarzik> Anyway, to get back on topic
785 2012-10-26 17:17:54 <jgarzik> picocoin supports multiple wallets with the latest fix
786 2012-10-26 17:18:09 <jgarzik> ./picocoin w=wallet1 new-address w=wallet2 new-address
787 2012-10-26 17:18:21 xisalty has joined
788 2012-10-26 17:19:00 <gmaxwell> jgarzik: in things like picocoin we should be able to have 100% decision-condition coverage. Or at least I can't think of anything we couldn't test, so thats distinct from the kernel. But yea, lots of worthwhile thoughts exist on the subject. :P
789 2012-10-26 17:19:21 aurigae1 has joined
790 2012-10-26 17:20:37 random_cat has joined
791 2012-10-26 17:21:34 * jgarzik plans to move the generic code into a libccoin eventually
792 2012-10-26 17:21:55 <jgarzik> low priority; would rather have a working app first
793 2012-10-26 17:22:25 <jgarzik> next big push is making a libevent-driven network engine in the child process
794 2012-10-26 17:23:43 <Icoin> jgarzik: is picocoin made for enviroments like the rpi ?
795 2012-10-26 17:24:05 JZavala has quit (Ping timeout: 245 seconds)
796 2012-10-26 17:24:07 <jgarzik> Icoin: it's conceivable... intended to be very low resource
797 2012-10-26 17:24:24 <jgarzik> you will likely need at least 15MB of storage for blockchain data, presently
798 2012-10-26 17:24:35 <jgarzik> but RAM usage should be low
799 2012-10-26 17:24:56 <Icoin> jgarzik: cool, sounds awesome i try it on my rpi after the full bitcoind chainload is finish
800 2012-10-26 17:25:06 <jgarzik> Icoin: it's not ready for that yet
801 2012-10-26 17:25:17 <Icoin> jgarzik: is it possible to use picocoin for devcoins aswell ?
802 2012-10-26 17:25:18 da2ce7_d has joined
803 2012-10-26 17:25:28 <Icoin> ahh ok
804 2012-10-26 17:25:29 <jgarzik> Icoin: still devs-only right now; doesn't do even the basics 100%
805 2012-10-26 17:25:41 <gmaxwell> you can compress past headers pretty substanitally after checking them... I think you only need to store one fullish header every 2016 blocks plus the block hash for all the other headers.. and then you can freely do header reorgs.
806 2012-10-26 17:26:29 <jgarzik> gmaxwell: using a standard or custom compression algo?
807 2012-10-26 17:27:43 <Icoin> jkarzik: by now i lounched i 9 million DVC bounty for the development of a android wallet for DVC similar to BitcoinSpinner, so thats why i wondered if picocoin is eventualy usable for that too
808 2012-10-26 17:27:52 da2ce7 has quit (Ping timeout: 272 seconds)
809 2012-10-26 17:27:59 <jgarzik> Icoin: it should be usable for bitcoin-like altcoins
810 2012-10-26 17:28:08 xisalty has quit (Ping timeout: 276 seconds)
811 2012-10-26 17:28:39 <gmaxwell> 'custom'. I mean just every 2016 blocks store a full header, then otherwise just store the 32 byte block hash and the time. When you scan a block to get txn in it you'll ge the header again anyways, the only reason you need to store anything is for reorgs, and thats enough for them. It halves the required space, so its not a trivial improvement, but certantly not something to worry about now.
812 2012-10-26 17:29:16 <gmaxwell> jgarzik: working on testnet will be nice, considering that most lite clients and webcliets don't have a testnet edition.
813 2012-10-26 17:31:35 RainbowDashh has joined
814 2012-10-26 17:31:45 xisalty has joined
815 2012-10-26 17:32:36 maaku has quit (Quit: maaku)
816 2012-10-26 17:34:02 <jgarzik> it will definitely work on testnet
817 2012-10-26 17:34:12 <jgarzik> out of the box
818 2012-10-26 17:34:22 <jgarzik> other altcoins will require light hacking
819 2012-10-26 17:35:44 <jgarzik> the "network magic" is already variable
820 2012-10-26 17:36:52 <Icoin> jgarzil: thanks for the info :)
821 2012-10-26 17:51:52 optimator_ has joined
822 2012-10-26 17:53:02 optimator has quit (Ping timeout: 244 seconds)
823 2012-10-26 17:55:47 Descry has joined
824 2012-10-26 17:59:19 pnicholson has quit (Quit: pnicholson)
825 2012-10-26 18:03:13 agricocb has joined
826 2012-10-26 18:05:38 toffoo has joined
827 2012-10-26 18:10:54 Pasha is now known as Cory
828 2012-10-26 18:11:29 devrandom has quit (Remote host closed the connection)
829 2012-10-26 18:14:54 Descry has quit (Quit: Leaving)
830 2012-10-26 18:17:12 devrandom has joined
831 2012-10-26 18:28:00 comboy has quit (Ping timeout: 246 seconds)
832 2012-10-26 18:29:28 xisalty has quit (Remote host closed the connection)
833 2012-10-26 18:33:59 comboy has joined
834 2012-10-26 18:37:07 <jgarzik> TD[gone]: JFYI, smartcoin (pybond) is paused for a bit
835 2012-10-26 18:37:14 <jgarzik> while I poke at picocoin
836 2012-10-26 18:39:01 tucenaber has quit (Ping timeout: 244 seconds)
837 2012-10-26 18:39:01 Hasimir has quit (Quit: Vidi, Vici, Veni.)
838 2012-10-26 18:42:05 maaku has joined
839 2012-10-26 18:43:42 D34TH has joined
840 2012-10-26 18:43:42 D34TH has quit (Changing host)
841 2012-10-26 18:43:42 D34TH has joined
842 2012-10-26 18:44:51 agricocb has quit (Quit: Leaving.)
843 2012-10-26 18:44:58 Bwild has quit (Ping timeout: 240 seconds)
844 2012-10-26 18:47:05 jdnavarro has quit (Remote host closed the connection)
845 2012-10-26 18:49:21 PhantomSpark has joined
846 2012-10-26 18:51:44 tucenaber has joined
847 2012-10-26 18:54:01 Descry has joined
848 2012-10-26 18:56:09 Descry has quit (Client Quit)
849 2012-10-26 18:59:42 rlifchitz has quit (Ping timeout: 246 seconds)
850 2012-10-26 19:03:52 molecular has quit (Ping timeout: 260 seconds)
851 2012-10-26 19:04:25 molecular has joined
852 2012-10-26 19:09:50 <rdponticelli> jgarzik: picocoin will be a very funny name in Chile
853 2012-10-26 19:12:08 aurigae1 has quit (Ping timeout: 265 seconds)
854 2012-10-26 19:12:12 <rdponticelli> Maybe it will get used to sell porn there :D
855 2012-10-26 19:13:20 <ThomasV> can I create a tx with more than 255 inputs?
856 2012-10-26 19:14:48 xisalty has joined
857 2012-10-26 19:22:16 jokc has joined
858 2012-10-26 19:25:49 toffoo has quit ()
859 2012-10-26 19:28:09 setkeh has joined
860 2012-10-26 19:30:39 Bwild has joined
861 2012-10-26 19:30:42 setkeh` has quit (Ping timeout: 260 seconds)
862 2012-10-26 19:41:35 optimator has joined
863 2012-10-26 19:41:35 optimator has quit (Changing host)
864 2012-10-26 19:41:35 optimator has joined
865 2012-10-26 19:42:48 optimator_ has quit (Ping timeout: 268 seconds)
866 2012-10-26 19:43:42 <jgarzik> ThomasV: I think so...
867 2012-10-26 19:44:12 <gmaxwell> ThomasV: I just created one with 300 inputs and decoderawtransactioned it and it worked fine.
868 2012-10-26 19:44:47 <jgarzik> rdponticelli: if so, as an international unit of measure, a lot of really tiny things must be amusing in Chile ;p
869 2012-10-26 19:48:55 sebicas has joined
870 2012-10-26 19:57:31 <helo> pico de gallo
871 2012-10-26 19:58:06 agricocb has joined
872 2012-10-26 20:00:37 Joric has joined
873 2012-10-26 20:00:37 Joric has quit (Changing host)
874 2012-10-26 20:00:37 Joric has joined
875 2012-10-26 20:00:54 jokc has quit (Quit: Yo!)
876 2012-10-26 20:03:03 Cusipzzz has joined
877 2012-10-26 20:04:46 nus- has quit (Read error: Connection reset by peer)
878 2012-10-26 20:05:17 <Cusipzzz> EXCEPTION: NSt8ios_base7failureE
879 2012-10-26 20:05:17 <Cusipzzz> CDataStream::read() : end of data
880 2012-10-26 20:05:17 <Cusipzzz> bitcoin in AppInit()
881 2012-10-26 20:05:28 <Cusipzzz> one of my 0.7 nodes is throwing that...any ideas?
882 2012-10-26 20:05:34 nus has joined
883 2012-10-26 20:08:13 <Cusipzzz> anyone? bueller?
884 2012-10-26 20:08:41 darkee has quit (Ping timeout: 276 seconds)
885 2012-10-26 20:10:03 darkee has joined
886 2012-10-26 20:12:18 <Cusipzzz> bueller...frye
887 2012-10-26 20:13:18 <Cusipzzz> hrm, corrupt block data... that sucks
888 2012-10-26 20:13:58 MobiusL has quit (Remote host closed the connection)
889 2012-10-26 20:14:09 <jgarzik> Cusipzzz: version? You may re-run with -checkblocks=0 -checklevel=6 for full block + index checking
890 2012-10-26 20:14:39 MobiusL has joined
891 2012-10-26 20:15:11 <jgarzik> Cusipzzz: or just delete blk*.dat and reload, of course
892 2012-10-26 20:15:40 <Cusipzzz> 0.7
893 2012-10-26 20:16:39 <Cusipzzz> ugh. maybe will copy in the blk files from somewhere else
894 2012-10-26 20:16:44 <Cusipzzz> jgarzik: thanks
895 2012-10-26 20:17:19 <jgarzik> Cusipzzz: with 0.7, you can at least avoid re-downloading the data you already have
896 2012-10-26 20:17:36 <Cusipzzz> what is level 6?
897 2012-10-26 20:18:02 <jgarzik> Cusipzzz: rm blkindex.dat ; mv blk0001.dat blk0001.dat.old ; mv blk0002.dat blk0002.dat.old ; bitcoind [other args] -loadblock=DATA_DIR/blk0001.dat.old -loadblock=DATA_DIR/blk0002.dat.old
898 2012-10-26 20:19:16 <Cusipzzz> thanks will try that next..it is verifying blocks lvl 6
899 2012-10-26 20:19:17 <jgarzik> Cusipzzz: level 6 is "the most integrity checking possible"
900 2012-10-26 20:19:28 <jgarzik> Cusipzzz: lower numbers have fewer checks
901 2012-10-26 20:24:45 D34TH_ has joined
902 2012-10-26 20:24:45 D34TH has quit (Read error: Connection reset by peer)
903 2012-10-26 20:25:34 D34TH_ has quit (Read error: Connection reset by peer)
904 2012-10-26 20:26:09 D34TH_ has joined
905 2012-10-26 20:26:27 D34TH_ has quit (Read error: Connection reset by peer)
906 2012-10-26 20:28:48 pnicholson has joined
907 2012-10-26 20:32:25 D34TH has joined
908 2012-10-26 20:32:53 <Cusipzzz> how long does it typically take to verify 205097 blocks at level 6? :)
909 2012-10-26 20:32:55 devrandom has quit (Remote host closed the connection)
910 2012-10-26 20:33:29 devrandom has joined
911 2012-10-26 20:36:54 <rdponticelli> Cusipzzz: I guess it depends on the system, but it can go from a lot or a whole lot, always upward...
912 2012-10-26 20:37:05 <jgarzik> Cusipzzz: potentially a few hours
913 2012-10-26 20:37:25 <BlueMatt> gmaxwell: meh, finney attack costs too much to be worth it for small items...for large items, I dont think there is any system where you would want to accept unconfirmed or low-confirm txn
914 2012-10-26 20:38:31 <Cusipzzz> jgarzik: is this going to potentially fix the issue or just tell me where the bad data is and i need to rm the blkindex.dat anyway?
915 2012-10-26 20:39:03 <jgarzik> Cusipzzz: no fixing, just read-only checking
916 2012-10-26 20:39:16 <Cusipzzz> thanks
917 2012-10-26 20:48:00 TD has joined
918 2012-10-26 20:53:11 setkeh` has joined
919 2012-10-26 20:53:21 TD has quit (Quit: TD)
920 2012-10-26 20:55:53 setkeh has quit (Ping timeout: 255 seconds)
921 2012-10-26 20:59:22 <Cusipzzz> jgarzik: thanks..back up and running copied in the blk* files, for some reason the -loadblock wasn't working
922 2012-10-26 21:02:03 <optimator> would there be any advantage to submitting a block to multiple bitcoind servers?
923 2012-10-26 21:02:09 <Joric> just replaced my old failing HDD to a brand new (and expensive!) SSD hope it will speed up the syncing
924 2012-10-26 21:02:13 conman has joined
925 2012-10-26 21:02:42 <Cusipzzz> sigh, crashed again sasme errorugh, spoke to spon, same error :/
926 2012-10-26 21:03:39 <jgarzik> optimator: sure
927 2012-10-26 21:04:45 <jgarzik> JFYI,
928 2012-10-26 21:04:56 <jgarzik> Ron/Shamir paper was apparently revised: http://eprint.iacr.org/2012/584.pdf
929 2012-10-26 21:05:48 <BlueMatt> "full public record of this system in one of its two major forms" because blockexplorer is a "major form" of the blockchain data...?
930 2012-10-26 21:06:01 <Joric> 'The one (personal) thing storage-related that I'd like to re-iterate is that I think that rotating storage is going the way of the dodo (or the tape). "How do I hate thee, let me count the ways". The latencies of rotational storage are horrendous, and I personally refuse to use a machine that has those nasty platters of spinning rust in them.' -- Linus Torvalds
931 2012-10-26 21:06:44 <optimator> @jgarzik: so the blocks compete for acceptance by confirmations or is it block size, or both?
932 2012-10-26 21:07:09 <jgarzik> optimator: neither
933 2012-10-26 21:07:24 <optimator> doh!
934 2012-10-26 21:08:15 <jgarzik> optimator: each block represents a certain amount of "work". Each node tries to find the longest chain of blocks (== the total sum of works in each block)
935 2012-10-26 21:09:07 <jgarzik> optimator: the chain containing the most work is the 'best' chain. your goal is always to build on top of the 'best' chain.
936 2012-10-26 21:09:11 <optimator> sum of works != block size in kb?
937 2012-10-26 21:09:18 <jgarzik> optimator: no
938 2012-10-26 21:09:27 <jgarzik> optimator: hashing work
939 2012-10-26 21:09:48 maaku has left ()
940 2012-10-26 21:10:47 <optimator> @jgarzik: got it - thanks. can you recommend a link?
941 2012-10-26 21:12:46 <jgarzik> optimator: http://bitcoin.org/bitcoin.pdf
942 2012-10-26 21:12:58 <jgarzik> optimator: https://en.bitcoin.it/wiki/Main_Page
943 2012-10-26 21:13:58 <optimator> @jgarzik: nice. I haven't seen the first link
944 2012-10-26 21:14:16 * optimator goes to get some reading coffee
945 2012-10-26 21:14:36 <sipa> jgarzik: picocoin == pycoin++ ?
946 2012-10-26 21:14:52 <gmaxwell> BlueMatt: with hash power buying services finney attack can be cheap, maybe too much trouble but cheap
947 2012-10-26 21:14:58 <gmaxwell> and iirc there are now two replacing gpumax
948 2012-10-26 21:15:35 <jgarzik> sipa: picocoin == "low resource SPV-only"
949 2012-10-26 21:15:38 <BlueMatt> gmaxwell: yea, but its still not decent for purchases of like 5 BTC
950 2012-10-26 21:16:38 <gmaxwell> BlueMatt: sure but one block has can have a hundred attacks in it.
951 2012-10-26 21:16:43 <jgarzik> sipa: hopefully exercises upcoming SPV features, validates the SPV model in a reviewable fashion
952 2012-10-26 21:16:54 <jgarzik> never a full node
953 2012-10-26 21:17:05 <sipa> well bitcoinj already does spv nicely, no?
954 2012-10-26 21:17:09 <gmaxwell> BlueMatt: you could even run an attack pool.. "I'll take conflicted transactions so long as they have 0.1 btc fee"
955 2012-10-26 21:17:23 <jgarzik> possibly, but I hate Java and love NIH ;p
956 2012-10-26 21:17:45 <gmaxwell> right or wrong there is a non-trivial userbase who will not touch bitcoinj because java.
957 2012-10-26 21:17:58 <gmaxwell> (and likewise for C I suppose)
958 2012-10-26 21:18:19 <sipa> jgarzik: haha
959 2012-10-26 21:18:37 <BlueMatt> gmaxwell: meh...Im still not sure its worth the effort for a 1 BTC purchase of a soda...
960 2012-10-26 21:18:47 <sipa> the knights who say nih
961 2012-10-26 21:18:55 <jgarzik> personal motivation, too: bots
962 2012-10-26 21:19:03 <jgarzik> I would like to see StorJ or another agent
963 2012-10-26 21:19:20 <jgarzik> something tiny and embeddable might help that effort
964 2012-10-26 21:20:17 <jgarzik> the code is already structured to be easily molded into a lib, if you don't care about picocoin itself
965 2012-10-26 21:20:43 <jgarzik> (similar to pynode/bitcoin/*)
966 2012-10-26 21:21:40 <gmaxwell> (e.g. if bitcoinj were the full answer electrum wouldn't exist, due to c callability it would be eaiser to have $random language front ends built on picocoin)
967 2012-10-26 21:21:44 <sipa> but it is pynode? or something else?
968 2012-10-26 21:22:24 <BlueMatt> its...jgarzik got bored of writing in python and decided to start another bitcoin lib in c ;)
969 2012-10-26 21:22:38 <gavinandresen> jgarzik: so you've got pynode, pybond ? and picocoin now ?
970 2012-10-26 21:22:48 <sipa> c? good luck...
971 2012-10-26 21:22:56 <jgarzik> picocoin? pynode aims to be a full node first, and has no wallet capabilities. picocoin aims for the opposite end of the spectrum: SPV wallet client, never a full node.
972 2012-10-26 21:23:05 <jgarzik> gavinandresen: yep
973 2012-10-26 21:23:08 <sipa> ok
974 2012-10-26 21:23:10 <gavinandresen> okey doke.
975 2012-10-26 21:23:27 ThomasV has quit (Ping timeout: 260 seconds)
976 2012-10-26 21:23:52 <gavinandresen> was the "where is the metadata stored" problem of pybond ever solved?
977 2012-10-26 21:24:39 <jgarzik> gavinandresen: issuers and asset holders would retransmit into DHT. not great solution, but they have an economic interest to do so
978 2012-10-26 21:24:52 <gavinandresen> jgarzik: did you implement a DHT?
979 2012-10-26 21:24:56 <jgarzik> gavinandresen: yes
980 2012-10-26 21:25:23 <gavinandresen> jgarzik: ... and did you figure out a way for it not to get spammed to death?
981 2012-10-26 21:25:25 <sipa> gmaxwell: any attempts with -reindex still?
982 2012-10-26 21:25:32 <jgarzik> gavinandresen: implement P2P + DHT skeleton, but no details/guts
983 2012-10-26 21:25:37 <jgarzik> gavinandresen: no
984 2012-10-26 21:25:55 <jgarzik> gavinandresen: bitcoind's addrman address selection methods help a lot
985 2012-10-26 21:26:07 <jgarzik> gavinandresen: and requiring signed messages and other cheap PoW help a bit
986 2012-10-26 21:26:16 <gavinandresen> jgarzik: I was thinking about that this afternoon, because we need a way of doing things like storing half-signed transactions somewhere clients can find them
987 2012-10-26 21:26:27 <jgarzik> gavinandresen: but those just band-aids
988 2012-10-26 21:26:39 <jgarzik> addrman's address selection is a _big_ step, though.
989 2012-10-26 21:26:52 <sipa> gavinandresen: meh, how about a url?
990 2012-10-26 21:27:17 <gavinandresen> sipa: urls aren't great for Joe Random User who isn't running their own server.
991 2012-10-26 21:27:31 <sipa> joe random won't run his own server
992 2012-10-26 21:28:06 <gavinandresen> sipa: so if you and I are involved in a multisig transaction we both need to subscribe to the same half-signed-transaction-storing service?
993 2012-10-26 21:28:23 <jgarzik> DHT is fine for short term "bulletin board" / "mailbox" storage... provided somebody has an incentive to run the DHT routers
994 2012-10-26 21:28:26 <sipa> hmm yes, i see your point
995 2012-10-26 21:29:01 <sipa> gavinandresen: you have an account at some service, i have another or my own - like email or jabber
996 2012-10-26 21:29:10 <gavinandresen> So, anyway, it occurred to me that perhaps we could use unspent TxOuts as "this is my identity"
997 2012-10-26 21:29:25 <sipa> eh?
998 2012-10-26 21:29:36 <gavinandresen> ... and use the transaction fee that the TxOut was part of as a kind of "I'm a good, fee-paying Bitcoin Network Citizen"
999 2012-10-26 21:29:48 <gavinandresen> ... which would buy you a certain amount of DHT bandwidth/storage
1000 2012-10-26 21:29:55 <sipa> mhnm
1001 2012-10-26 21:30:00 copumpkin has quit (Quit: Computer has gone to sleep.)
1002 2012-10-26 21:30:19 jgarzik has left ("Client exiting")
1003 2012-10-26 21:30:23 jgarzik has joined
1004 2012-10-26 21:30:26 <gavinandresen> All messages would be signed by a key involved in that TxOut, of course
1005 2012-10-26 21:30:27 * jgarzik kicks xchat
1006 2012-10-26 21:31:18 <sipa> gavinandresen: i don't think i like that, but i haven't thought about it too much either
1007 2012-10-26 21:32:19 <gavinandresen> sipa: well, I've been thinking hard for a couple of days about decentralized, robust ways of coordinating multisig transactions, and it's the best I've been able to come up with
1008 2012-10-26 21:32:32 <jgarzik> It's useful to revisit sipa's "why not a URL?" question, to get to the Root Problem that wants a solution. Bitcoin essentially provides an IM service between multiple parties, and those parties' communications are effectively mixed through the P2P network, so that they never have to directly connect via TCP/IP to each other.
1009 2012-10-26 21:32:48 Symbols has joined
1010 2012-10-26 21:33:00 <jgarzik> People want^Wneed this type of messaging service, even outside of currency exchange
1011 2012-10-26 21:33:09 <sipa> yes, anonimity is an advantage of a p2p broadcast service
1012 2012-10-26 21:33:12 <gavinandresen> The root problem is I have a message I want to send to somebody who I know is occasionally connected to the Bitcoin network....
1013 2012-10-26 21:33:15 <jgarzik> This meet-somewhere-to-exchange-payments use case is simply an example
1014 2012-10-26 21:33:18 <sipa> but messaging systems already exist
1015 2012-10-26 21:33:25 <sipa> email works fine
1016 2012-10-26 21:33:29 <gavinandresen> email sucks
1017 2012-10-26 21:33:32 <sipa> they don't need to spam earth
1018 2012-10-26 21:33:45 <Symbols> hello, I'm having trouble getting armory/bitcoind/jsonrpc stuff working
1019 2012-10-26 21:33:45 <jgarzik> gavinandresen: a mailbox
1020 2012-10-26 21:33:49 <sipa> agree, but it's also 40y old
1021 2012-10-26 21:33:53 <jgarzik> (NOT NOT NOT saying SMTP)
1022 2012-10-26 21:33:56 <jgarzik> just "a mailbox"
1023 2012-10-26 21:34:20 <jgarzik> one or both parties may be disconnected, so the "mail" must hang around for a little while
1024 2012-10-26 21:34:25 <Symbols> what I'm trying is: run bitcoin-qt -server
1025 2012-10-26 21:34:34 <Symbols> (win7 64 bit os)
1026 2012-10-26 21:34:34 <jgarzik> financial DHT could define lifetime as "< 7 days" or something
1027 2012-10-26 21:34:48 <gavinandresen> jgarzik: sure. I've been reading up on STOMP and XMPP Personal Eventing and JMS and....
1028 2012-10-26 21:35:07 <gavinandresen> (and AMQP which is actually used in the financial world but looks like a nightmare to implement)
1029 2012-10-26 21:35:09 <Symbols> that runs, and binds 127.0.0.1:8332
1030 2012-10-26 21:35:41 Joric has quit ()
1031 2012-10-26 21:35:48 <gavinandresen> jgarzik: all of those solutions assume a central message broker to store the messages.
1032 2012-10-26 21:36:01 <gavinandresen> jgarzik: which works nicely... assuming EVERYBODY uses the same message broker or brokers.
1033 2012-10-26 21:36:07 <Symbols> then when I try to run bitcoind help it gives me an 'error: no response from server"
1034 2012-10-26 21:36:24 <sipa> gavinandresen: or the brokers can communicate with eachother
1035 2012-10-26 21:37:10 <jgarzik> gavinandresen: DHT + pre-agreed message format seems private and mailbox-y
1036 2012-10-26 21:37:12 <jgarzik> </bias>
1037 2012-10-26 21:37:27 <gavinandresen> jgarzik: I think I agree. Definitely more bitcoin-y
1038 2012-10-26 21:38:14 <gavinandresen> I feel like we should kick non-final transactions out of the transaction memory pool, too, and put them into a DHT
1039 2012-10-26 21:39:12 <jgarzik> agree -- especially if that is supposed to be an area for HFT
1040 2012-10-26 21:41:03 <gmaxwell> an almost final transaction is not the same thing as a not almost final one.
1041 2012-10-26 21:41:17 Maged has joined
1042 2012-10-26 21:41:25 <jgarzik> true
1043 2012-10-26 21:41:44 <gavinandresen> sure, and miners would be free to hold on to transactions however they liked...
1044 2012-10-26 21:42:06 <gavinandresen> ... but for relaying nodes I think the most reasonable thing to do is ignore transactions unless they're final.
1045 2012-10-26 21:42:27 <gmaxwell> Also, be mindful, while I think we can fix the dos vulnerability in dht's (well we have to think very carefully that we're not creating a dos motive in bitcoin), reliablity is still an issue.
1046 2012-10-26 21:43:01 <gmaxwell> gavinandresen: meh, it's costless to check if there within some range of final (e.g. 1 hour/six blocks) and relay those. No?
1047 2012-10-26 21:43:02 <gavinandresen> gmaxwell: sure, although we've got senders and receivers that are both motivated to re-transmit lost data.
1048 2012-10-26 21:43:38 <jgarzik> gavinandresen: true, though that's different from being motivated to keep a DHT router running for more than a few minutes
1049 2012-10-26 21:43:56 <gavinandresen> gmaxwell: re: relaying: ok. But I've got a feeling contracts might work better if they're just not relayed until very close to final (e.g. 1 block or 20 minutes or something)
1050 2012-10-26 21:44:49 <gavinandresen> jgarzik: I'm thinking DHT_STORAGE would maybe be a new SERVICES flag, and most bitcoin nodes would dedicate a few meg of memory to DHT storage.
1051 2012-10-26 21:45:09 <gmaxwell> I wonder if it's possible to compatibly and safely redefine some serial number value as _can't_ go into mempool until locked. There are cases where you don't want pre lock transaction preclusion and there are ones where you do.
1052 2012-10-26 21:45:49 <jgarzik> gavinandresen: reasonable
1053 2012-10-26 21:46:49 <sipa> gmaxwell: 500000000-1
1054 2012-10-26 21:46:53 <gavinandresen> I'm also imagining MASSIVE DHT redundancy. Not quite the "Every node stores the entire blockchain" redundancy that we have for the blockchain, but close to that....
1055 2012-10-26 21:47:37 <jgarzik> gavinandresen: another DHT problem, even in large ones, is hot spots
1056 2012-10-26 21:47:49 <gmaxwell> well dht's have that normally... but it's still hard to give solid reliablity without a lot of redundancy when you have unreliable hosts that don't tell you they've failed.
1057 2012-10-26 21:47:53 <Luke-Jr> let's just put the blockchain in a DHT too!
1058 2012-10-26 21:48:01 * Luke-Jr runs
1059 2012-10-26 21:48:06 <gmaxwell> freenet tries to address hotspots with caching.
1060 2012-10-26 21:48:47 <jgarzik> typical Kademlia hot spot solution is proactive spreading of hot data
1061 2012-10-26 21:48:55 Guest25958 is now known as arij
1062 2012-10-26 21:49:08 <jgarzik> but that logic can be tricky, to avoid unintentional amplification attacks
1063 2012-10-26 21:49:13 arij has quit (Changing host)
1064 2012-10-26 21:49:13 arij has joined
1065 2012-10-26 21:49:16 <sipa> gavinandresen: by the way, just from a utxo set (at least as currently implemented) you can't prove you paid a certain amount of fees
1066 2012-10-26 21:49:27 setkeh has joined
1067 2012-10-26 21:49:38 <gmaxwell> in general availablity works very hard against dos resistance
1068 2012-10-26 21:50:12 <gavinandresen> sipa: really? That would be pretty easy to change, though, wouldn't it? Just store the fee with the tx data....
1069 2012-10-26 21:50:16 <conman> yo
1070 2012-10-26 21:50:23 toffoo has joined
1071 2012-10-26 21:50:38 <sipa> gavinandresen: that'd be possible, but i feel that's somewhat abusing the idea
1072 2012-10-26 21:50:53 <jgarzik> Using the existing addrman address logic for the DHT can close some issues traditionally found in DHT's that discover addresses solely through DHT queries.
1073 2012-10-26 21:50:56 setkeh` has quit (Ping timeout: 245 seconds)
1074 2012-10-26 21:51:01 <jgarzik> i.e. a NODE_DHT would accomplish that
1075 2012-10-26 21:51:15 Joric has joined
1076 2012-10-26 21:51:18 <jgarzik> should help a bit with Sybil
1077 2012-10-26 21:51:35 <sipa> gavinandresen: it's very little data though, but if that's only needed to prove you're a good netizen to someone, meh
1078 2012-10-26 21:52:16 <gavinandresen> sipa: well, you could use the value of the TxOut and use proof-of-stake that you're a good netizen, but I prefer fees
1079 2012-10-26 21:52:32 <jgarzik> amiller and I had also discussed PoW node ID's that require Work to generate, and requiring all messages be signed (or somehow validated beyond simple opaque data)
1080 2012-10-26 21:53:39 <gavinandresen> jgarzik: that could work, too, although on some level requiring another kind of PoW is like creating a parallel currency, when we've already got a perfectly good PoW-based currency
1081 2012-10-26 21:53:43 <sipa> gavinandresen: i think the way to proof you're a good netizen is by not activating people's DoS logic
1082 2012-10-26 21:54:04 copumpkin has joined
1083 2012-10-26 21:54:04 <sipa> gavinandresen: that you have a well-behaving wallet seems unrelated to your network behaviour
1084 2012-10-26 21:54:11 <jgarzik> related:
1085 2012-10-26 21:54:22 <jgarzik> maybe punish DoS()'ers by evicting their address from addrman
1086 2012-10-26 21:54:32 <sipa> jgarzik: good idea
1087 2012-10-26 21:55:02 <gavinandresen> sipa: maybe I'm overthinking the spam problem, but what stops somebody from just relentlessly inserting garbage into the DHT at a rate just under the "trigger DoS" threshold?
1088 2012-10-26 21:55:30 <gavinandresen> you can't tell if your peer is generating the spam or just relaying it....
1089 2012-10-26 21:55:40 ThomasV has joined
1090 2012-10-26 21:56:15 <sipa> gavinandresen: so you're going to introduce a rule that requires a certain payment measured in BTC to get space in the DHT?
1091 2012-10-26 21:56:23 <gavinandresen> sipa: yes
1092 2012-10-26 21:56:24 <sipa> what if the exchange rate changes?
1093 2012-10-26 21:56:50 <gavinandresen> sipa: I imagine space in the DHT is prioritized...
1094 2012-10-26 21:57:05 <sipa> gavinandresen: or how about linking an entry in the DHT to a txout directly
1095 2012-10-26 21:57:24 <sipa> gavinandresen: where the entry is allowed to be deleted when the txout is spent
1096 2012-10-26 21:57:38 <gmaxwell> perhaphs gavin (and whomever else is intereted) should get some time with the freenet core devs, they've been doing the attack resistant anonymous dht thing for longer than anyone else pretty much.
1097 2012-10-26 21:57:56 <gavinandresen> sipa: that might work.
1098 2012-10-26 21:58:28 <gavinandresen> sipa: If you have to be involved in the unspent txout transaction to stick data there, and only a limited amount is allowed....
1099 2012-10-26 21:59:07 <gmaxwell> sipa: creating a increased motivation to bloat the txout set though. :(
1100 2012-10-26 21:59:08 <gavinandresen> still, probably want a threshold for the txout amount to stop satoshi-spammers
1101 2012-10-26 21:59:24 <gmaxwell> perhaps to get dht space you should have to reduce the txout set size and prove you did it. :)
1102 2012-10-26 21:59:38 <sipa> gmaxwell: i think gavinandresen's idea would encourage spamming even more
1103 2012-10-26 22:00:14 <sipa> gmaxwell: ha, that's probably more of a sign of good network behaviour than proving that you paid miners
1104 2012-10-26 22:00:51 <gmaxwell> well txout set has heights, so you could ignore old txouts for the 'must be in it' test, and allow all txouts for the 'must reduce txout set size' check.
1105 2012-10-26 22:01:44 darkee has quit (Remote host closed the connection)
1106 2012-10-26 22:01:58 <gavinandresen> gmaxwell: I'm not following. Since it is easy to increase the txout set size, a spammer could just create a series of transactions that increases then decreases....
1107 2012-10-26 22:02:15 <gmaxwell> gavinandresen: at least when they are done they'll probably clean up after themselves.
1108 2012-10-26 22:02:22 <gmaxwell> I worry about set size much more than traffic.
1109 2012-10-26 22:02:29 darkee has joined
1110 2012-10-26 22:02:39 <gmaxwell> traffic can be mitigated by rate limiters. size accumulates.
1111 2012-10-26 22:05:12 <gavinandresen> I'm open to other suggestions on how to solve the high-level problem.
1112 2012-10-26 22:05:20 <gmaxwell> unfortunately without a consensus algorithim in the dht we can't make work there reusable.. which would mitigate spam.
1113 2012-10-26 22:06:22 <gmaxwell> gavinandresen: anything we're likely to do with DHT's will not be reliable, maybe it won't be that unreliable.. but there must be a reliable option. So I think any of this would need to be DHT+URL at least optionally, might as well implement the URL based part first to get some of the requiremens and UI down..
1114 2012-10-26 22:06:49 <gmaxwell> and I was serious about talking with freenet people they may point out problems we're not thinking of and we might know how to solve things they thought unsolvable..
1115 2012-10-26 22:07:23 <gavinandresen> gmaxwell: doesn't have to be a DHT, we could flood-fill data into a fixed-size data store kept by all the nodes on the network, and just have a way of prioritizing the data items.
1116 2012-10-26 22:07:30 <gavinandresen> ... but a DHT seems better.
1117 2012-10-26 22:07:52 <gavinandresen> Actually, the transaction memory pool IS a flood-filled fixed size data store kept by .....
1118 2012-10-26 22:08:10 <gmaxwell> but it's very small which makes it work, and makes it not very usable for what you want.
1119 2012-10-26 22:08:19 <gmaxwell> ('cause it makes it unreliable)
1120 2012-10-26 22:09:01 <gavinandresen> Small might be OK-- I want to use this for transaction-related setup stuff, like "Hey gmaxwell@somewhere.com, I need a private key from you"
1121 2012-10-26 22:09:10 <gavinandresen> err, PUBLIC key from you...
1122 2012-10-26 22:09:20 <sipa> or even more general: a txout script
1123 2012-10-26 22:09:39 <gavinandresen> or "Hey whoever has pubkey FOO, here's a transaction that I want signed"
1124 2012-10-26 22:10:12 <gavinandresen> sipa: no, full public key, I want that to create a multisig address that can be funded....
1125 2012-10-26 22:10:19 <sipa> gavinandresen: oh, right
1126 2012-10-26 22:10:25 <sipa> well you just asked him for a key -- he's quite likely interesting in things sent to it
1127 2012-10-26 22:10:54 <sipa> *interested
1128 2012-10-26 22:11:20 <gavinandresen> in any case, exact details on what the messages are can be worked out-- but first we need a messaging mechanism
1129 2012-10-26 22:11:44 <gavinandresen> ... and "Just run your bitcoin client 24/7" isnt' a good answer.
1130 2012-10-26 22:12:38 freakazoid has quit (Read error: Operation timed out)
1131 2012-10-26 22:12:42 shotechs_ has joined
1132 2012-10-26 22:13:05 * sipa mentions https://gist.github.com/1237788 again
1133 2012-10-26 22:13:17 <gmaxwell> Generally I think weâ as bitcoin developersâ should be approaching this from "how do we keep people from using the blockchain as a signaling mechnism for ephemerial messages" first and foremost. Rather than worrying about enabling multisig, because really at the moment to get something working the answer is to just use an existing IM/messaging infrastructure and/or URLs (and if that is not private enough for you... do it over tor).
1134 2012-10-26 22:13:37 <shotechs_> hello all
1135 2012-10-26 22:13:45 Joric has quit ()
1136 2012-10-26 22:14:02 <gmaxwell> Knowing that this won't be enough for some people in the long term and working to do things to help avoid blockchain bloat... thats fine. But just for the functionality the less cipherpunk solutions are totally viable.
1137 2012-10-26 22:14:18 <shotechs_> i made an android app called "Bitcoin to Currency Counter" please check it out
1138 2012-10-26 22:15:15 <gavinandresen> gmaxwell: I'll probably end up implementing a STOMP server, and if N people want to multisig, they all have to tell their clients to talk to the same server....
1139 2012-10-26 22:15:31 <gavinandresen> gmaxwell: but I don't really like that solution.
1140 2012-10-26 22:16:26 <sipa> i'd first like to see a working normal-payment-protocol setup, which can later be extended to negotiate multisig transactions
1141 2012-10-26 22:16:37 <gmaxwell> it's nicer than you think, it has very tractable failure modes. Doesn't work? server must be down. I do think any solution would need to at least have that kind of thing as a parallel option in any case.
1142 2012-10-26 22:16:52 <gavinandresen> sipa: I disagree- I think stolen single-sig wallets are much higher priority
1143 2012-10-26 22:17:41 <sipa> maybe, but i don't see any user-friendly solution for that problem that doesn't heavily rely on (low trust) third parties
1144 2012-10-26 22:17:48 Wack0 has quit (Ping timeout: 260 seconds)
1145 2012-10-26 22:18:27 shotechs_ has quit (Ping timeout: 245 seconds)
1146 2012-10-26 22:18:42 <gavinandresen> sipa: hmm? A STOMP server that auto-signed small transactions and SMS'ed your phone for approval of larger transactions would solve 99% of the problem....
1147 2012-10-26 22:18:58 <sipa> gavinandresen: how will you send SMS'es without a third party?
1148 2012-10-26 22:19:07 <gavinandresen> The STOMP sever is the third party.
1149 2012-10-26 22:19:09 Wack0 has joined
1150 2012-10-26 22:19:29 <Luke-Jr> would be nice if it could just work with one of the phone clients
1151 2012-10-26 22:19:45 <gavinandresen> you still need a server to talk to the phone....
1152 2012-10-26 22:20:03 <sipa> well i agree that a part of the infrastructure can be provided (by us?) and available as open-source for people to run their own rendez-vous points
1153 2012-10-26 22:21:27 <sipa> it still won't be able to send you an SMS, though?
1154 2012-10-26 22:21:52 <gavinandresen> what is "it" ?
1155 2012-10-26 22:22:01 <sipa> STOMP, or whatever you're running yourself
1156 2012-10-26 22:22:38 <sipa> (then again, sending an e-mail is easy enough, and nearly equivalent and far more functional in these smartphone times)
1157 2012-10-26 22:22:58 <sipa> so nvm what i said
1158 2012-10-26 22:23:11 <gavinandresen> email sucks from a usability point of view....
1159 2012-10-26 22:23:21 <sipa> and SMS doesn't?
1160 2012-10-26 22:24:03 <sipa> it doesn't matter really - there are certainly ways for software to contact you in some way
1161 2012-10-26 22:24:08 <gavinandresen> slightly less, I think-- text-back "ok" is easier than reply, type 'ok', send.....
1162 2012-10-26 22:24:33 <gavinandresen> email really sucks if you're getting signature requests that have to be dealt with
1163 2012-10-26 22:24:40 <jrmithdobbs> gavinandresen: at least email can be controlled by the person involved, forcing sms requires subjecation to telco companies
1164 2012-10-26 22:24:51 <jrmithdobbs> directly so
1165 2012-10-26 22:25:02 <sipa> gavinandresen: i really don't see the difference (assuming you're on a smartphone)
1166 2012-10-26 22:25:17 osmosis has joined
1167 2012-10-26 22:25:52 <sipa> anyway, doesn't matter
1168 2012-10-26 22:27:37 <gmaxwell> I'll note that we haven't seen much (any?) news of personal wallet theft lately. We have seen loss of coins due to no backups and outdated backups.
1169 2012-10-26 22:28:03 <gmaxwell> dunno why the reports of wallet theft went away, surely crypto didn't solve it. Perhaps all the soft targets are broke now.
1170 2012-10-26 22:28:24 <sipa> because most people have their wallets on blockchain and mtgox now
1171 2012-10-26 22:28:40 <gavinandresen> yes, I suspect that's why.
1172 2012-10-26 22:29:03 agricocb has quit (Quit: Leaving.)
1173 2012-10-26 22:29:29 <gmaxwell> oh well then thats (1) only batching the theft events :( but (2) out of our ability to help with multisign tools (not that they shouldn't be done...)
1174 2012-10-26 22:29:58 freakazoid has joined
1175 2012-10-26 22:31:33 <gavinandresen> hmm? We could come up with a multisig scheme that would make funds stored in a blockchain.info wallet much safer.
1176 2012-10-26 22:31:46 ThomasV has quit (Ping timeout: 245 seconds)
1177 2012-10-26 22:32:13 <gavinandresen> One key would be your encrypted key on your client, another at some non-blockchain.info service that approved transactions (or emailed/sms'ed your phone)
1178 2012-10-26 22:32:31 graingert_ecs has quit (Remote host closed the connection)
1179 2012-10-26 22:32:44 ThomasV has joined
1180 2012-10-26 22:38:18 CodesInChaos has quit (Ping timeout: 240 seconds)
1181 2012-10-26 22:45:05 ThomasV has quit (Quit: Quitte)
1182 2012-10-26 22:45:39 occulta has joined
1183 2012-10-26 22:56:06 occulta has quit (Remote host closed the connection)
1184 2012-10-26 22:57:58 occulta has joined
1185 2012-10-26 23:00:40 ibno has quit (Quit: Lämnar)
1186 2012-10-26 23:01:15 occulta has quit (Client Quit)
1187 2012-10-26 23:02:03 occulta has joined
1188 2012-10-26 23:11:47 freakazoid has quit (Read error: Operation timed out)
1189 2012-10-26 23:12:04 agricocb has joined
1190 2012-10-26 23:18:22 RazielZ has quit (Ping timeout: 246 seconds)
1191 2012-10-26 23:22:23 PhantomSpark has quit (Ping timeout: 276 seconds)
1192 2012-10-26 23:28:39 freakazoid has joined
1193 2012-10-26 23:39:32 occulta has quit (Quit: KVIrc 4.1.3 Equilibrium http://www.kvirc.net/)
1194 2012-10-26 23:40:43 sebicas_ has joined
1195 2012-10-26 23:40:51 sebicas_ has quit (Client Quit)
1196 2012-10-26 23:43:24 sebicas has quit (Ping timeout: 260 seconds)
1197 2012-10-26 23:45:59 gavinandresen has quit (Quit: gavinandresen)
1198 2012-10-26 23:48:07 Diablo-D3 has quit (Ping timeout: 260 seconds)
1199 2012-10-26 23:55:43 sirk390 has joined