1 2012-08-05 00:00:34 Guest93418 has quit (Ping timeout: 246 seconds)
   2 2012-08-05 00:02:55 <amiller> it seems like it might be totally untenable to take advantage of proofs of work without validating it
   3 2012-08-05 00:03:11 <amiller> because an attacker could just take p.o.w. form the main fork and inflate his own blocks with it too
   4 2012-08-05 00:06:18 facefox_com has quit ()
   5 2012-08-05 00:07:01 <midnightmagic> what happens if I rebroadcast an identical tx but with different fees?
   6 2012-08-05 00:10:13 <midnightmagic> ah.. error: {"code":-22,"message":"TX rejected"} happens
   7 2012-08-05 00:11:47 <midnightmagic> geh, is there no good way to ask bitcoind what the fee "should" be for a tx?
   8 2012-08-05 00:11:55 <Gladamas> midnightmagic: you cant broadcast identical tx's, theyll be rejected for a double-spend
   9 2012-08-05 00:12:14 <Gladamas> midnightmagic: 0.0005 BTC/KB is a good rule
  10 2012-08-05 00:12:30 <midnightmagic> Gladamas: i thought there was a way to update a tx though..
  11 2012-08-05 00:13:04 <Gladamas> midnightmagic: I believe that's only if it hasnt been broadcasted yet, IIRC
  12 2012-08-05 00:13:58 edcba has joined
  13 2012-08-05 00:14:27 <amiller> so imagine that we're using some kind of proof of work gobbling scheme
  14 2012-08-05 00:14:30 <amiller> but now we need to compare the two chains
  15 2012-08-05 00:14:31 <midnightmagic> crap that was a 57KB tx.
  16 2012-08-05 00:14:54 <amiller> each chain will have all the same proofs of work
  17 2012-08-05 00:15:01 <amiller> but you can difference them
  18 2012-08-05 00:15:15 <amiller> and pick between them based on what's under the proof of work perhaps
  19 2012-08-05 00:15:28 <amiller> if you're comparing both chains then you can identify the work
  20 2012-08-05 00:15:36 <jgarzik> wow
  21 2012-08-05 00:15:37 <amiller> even if the individual chains may have included the data without validating it
  22 2012-08-05 00:15:40 <jgarzik> pynode is still alive overnight
  23 2012-08-05 00:15:45 <jgarzik> no block orphans overnight, then
  24 2012-08-05 00:16:08 <jgarzik> implement OP_IF, or block chain re-org?  hmmmm
  25 2012-08-05 00:16:39 * copumpkin still doesn't understand how OP_IF works :(
  26 2012-08-05 00:16:45 <midnightmagic> Gladamas: I totally paid more than that rule of thumb in fees and it hasn't been confirmed in > 10 blocks. :-/
  27 2012-08-05 00:16:47 <copumpkin> and its associates
  28 2012-08-05 00:16:50 <midnightmagic> i should've paid more.
  29 2012-08-05 00:16:55 <copumpkin> the spec doesn't really explain it much
  30 2012-08-05 00:16:58 <jgarzik> copumpkin: yeah, I admit I don't fully understand it either
  31 2012-08-05 00:16:58 <Gladamas> It's possible Ozcoin will include the 57KB tx in its blocks
  32 2012-08-05 00:17:05 <midnightmagic> bah!
  33 2012-08-05 00:17:14 edcba_ has quit (Ping timeout: 240 seconds)
  34 2012-08-05 00:17:26 <copumpkin> I think roconnor implemented it in purecoin though, so I should be able to figure it out from there
  35 2012-08-05 00:17:32 <Gladamas> midnightmagic: some pools (deepbit) only include tx's in their blocks that pay /over/ the default fee
  36 2012-08-05 00:17:37 <Gladamas> which is really pathetic
  37 2012-08-05 00:18:09 <jgarzik> copumpkin: it uses CastToBool(), so it evaluates expressions down to a zero/non-zero stack value (CBigNum, an MPI integer in little endian format)
  38 2012-08-05 00:18:30 <jgarzik> but the fExec switching needs further studying before I understand it fully
  39 2012-08-05 00:18:43 <copumpkin> it seems like it would need a notion of quotation though
  40 2012-08-05 00:18:51 <midnightmagic> ah there we go. I guess there was just a tx back-up
  41 2012-08-05 00:18:55 <copumpkin> to delimit ops that should be executed conditionally
  42 2012-08-05 00:19:07 <copumpkin> at least that's how I think most stack languages deal with more complex control flow
  43 2012-08-05 00:19:29 <amiller> mmmmmm okay so forks should gobble up each others proofs of work, but when comparing chains, you do not count proofs of work that appear in both.
  44 2012-08-05 00:19:32 <jgarzik> copumpkin: fExec flag says "stop executing opcodes", so it is through that
  45 2012-08-05 00:19:37 <jgarzik> OP_IF is... strange
  46 2012-08-05 00:19:54 <copumpkin> hmm
  47 2012-08-05 00:20:03 <jgarzik> please God, don't let it be conditional tokenization :/
  48 2012-08-05 00:20:16 * copumpkin fires up the mighty purecoin
  49 2012-08-05 00:20:39 <copumpkin>         | OP_IF (NEList Block)
  50 2012-08-05 00:20:39 <copumpkin>         | OP_NOTIF (NEList Block)
  51 2012-08-05 00:20:41 <copumpkin> there we go :P
  52 2012-08-05 00:20:54 <copumpkin> so it does need special "parsing" treatment
  53 2012-08-05 00:21:07 MC-Eeepc has quit (Quit: Leaving)
  54 2012-08-05 00:21:09 <copumpkin> otherwise doesn't seem too complicated to implement
  55 2012-08-05 00:22:06 <roconnor> it doesn't "need" special parsing; that was my choice.
  56 2012-08-05 00:22:53 <copumpkin> what are the delimiters for the "quoted" parts?
  57 2012-08-05 00:23:14 <roconnor> what are the quoted parts?
  58 2012-08-05 00:23:34 <jgarzik> roconnor: the main thing I'm interested in...  what is the impact of tokenizing the entire script, and then executing it?  satoshi client does a tokenize/execute step-by-step iteration, so the answer is not obvious.
  59 2012-08-05 00:23:54 <copumpkin> oh
  60 2012-08-05 00:23:55 <jgarzik> I retain the bytestream of course
  61 2012-08-05 00:24:02 <copumpkin> so it's just OP_ELSE and OP_ENDIF that delimit it
  62 2012-08-05 00:24:14 <copumpkin> roconnor: the I'm calling your NEList quoted
  63 2012-08-05 00:24:20 <copumpkin> -the
  64 2012-08-05 00:24:42 <copumpkin> so OP_ELSE and OP_ENDIF aren't real opcodes, really
  65 2012-08-05 00:25:19 <copumpkin> I think I see now :)
  66 2012-08-05 00:25:25 <roconnor> jgarzik: if I understand you, tokenizing the entire script is what purecoin does
  67 2012-08-05 00:25:52 <roconnor> (modulo the fact that lazy evaluation abastract away execution order)
  68 2012-08-05 00:27:44 <jgarzik> roconnor: to be specific, tokenizing is iterating through the entire raw bytestream, translating that into a list of tokens.  "token" is a data structure that stores the opcode, and optionally for OP_PUSHDATA* opcodes, the associated data.
  69 2012-08-05 00:28:01 <jgarzik> roconnor: once that translation is complete, iterate through the list of tokens, evaluating at script.cpp does
  70 2012-08-05 00:28:13 <roconnor> sounds like what purecoin does
  71 2012-08-05 00:28:22 <copumpkin> jgarzik: haskell doesn't really do "once X is complete, do Y"
  72 2012-08-05 00:28:23 <copumpkin> :P
  73 2012-08-05 00:28:38 <copumpkin> at least not explicitly, unless you actually try to make that happen
  74 2012-08-05 00:29:29 <roconnor> jgarzik: due to the presence of If block, my structure is slightly tree-like
  75 2012-08-05 00:30:03 <copumpkin> how are nested if blocks dealt with?
  76 2012-08-05 00:30:09 <jgarzik> roconnor: heh, I wanted to avoid going whole hog AST
  77 2012-08-05 00:30:15 <jgarzik> but we'll see
  78 2012-08-05 00:30:15 <roconnor> copumpkin: they are nested
  79 2012-08-05 00:30:29 <copumpkin> and I guess that means that you can have malformed scripts
  80 2012-08-05 00:30:32 Gladamas has quit (Remote host closed the connection)
  81 2012-08-05 00:30:36 <roconnor> ?
  82 2012-08-05 00:30:48 <copumpkin> by not having ENDIF or ELSE
  83 2012-08-05 00:31:14 <copumpkin> "syntax errors"
  84 2012-08-05 00:31:39 <roconnor> IIRC in bitcoin missing ENDIF are magically terminated for you.
  85 2012-08-05 00:31:46 <copumpkin> :O
  86 2012-08-05 00:33:28 <jgarzik> meh
  87 2012-08-05 00:33:35 <jgarzik> I think I'll work on chain reorg ;-)
  88 2012-08-05 00:33:43 <copumpkin> lol
  89 2012-08-05 00:34:08 <roconnor> copumpkin: have you seen purecoin's chain reorg code :D
  90 2012-08-05 00:34:21 <copumpkin> nope :)
  91 2012-08-05 00:34:44 <copumpkin> I wanted to see how I would implement it without having my vision clouded by yours!
  92 2012-08-05 00:34:48 <copumpkin> but have had no time :(
  93 2012-08-05 00:34:51 <roconnor> :)
  94 2012-08-05 00:34:53 <roconnor> ok
  95 2012-08-05 00:34:54 <copumpkin> too busy gambling with bitcoiners in vegas
  96 2012-08-05 00:35:05 <roconnor> copumpkin: have you lost all your winnings to the house yet?
  97 2012-08-05 00:35:20 <copumpkin> oh, I never won anything, so that wasn't a problem
  98 2012-08-05 00:35:32 <copumpkin> I set myself a loss threshold, played a couple of games, and then stopped :)
  99 2012-08-05 00:37:40 RazielZ has quit (Ping timeout: 246 seconds)
 100 2012-08-05 00:39:40 <jgarzik> copumpkin: is this when pirateat40 will make his famed appearance?
 101 2012-08-05 00:39:51 <copumpkin> oh, he already made it
 102 2012-08-05 00:39:55 <copumpkin> this happened last weekend
 103 2012-08-05 00:40:04 <copumpkin> parrots and pirates everywhere
 104 2012-08-05 00:40:08 * jgarzik is not up-to-date with the latest gossip
 105 2012-08-05 00:40:10 <copumpkin> RMS would have been proud
 106 2012-08-05 00:40:58 * copumpkin digs up the photo
 107 2012-08-05 00:41:16 <copumpkin> http://gravina.x10.mx/images/them.jpg
 108 2012-08-05 00:41:50 <jgarzik> back to the chain reorg question, then:  filesystem snapshot-like behavior, or cheese it like satoshi, and only index the "best" chain -- with the consequence that reorg'ing onto a bad chain may find invalid tx's
 109 2012-08-05 00:42:10 <Diablo-D3> copumpkin: dear lord its the pirate army
 110 2012-08-05 00:42:38 <jgarzik> and result in a stuck node, until another chain wins
 111 2012-08-05 00:42:54 <copumpkin> Diablo-D3: indeed! I am one of them, too
 112 2012-08-05 00:43:00 <copumpkin> and admire the portraits of ponzi and madoff
 113 2012-08-05 00:43:08 <jgarzik> e.g. InvalidChainFound()
 114 2012-08-05 00:43:21 <Diablo-D3> copumpkin: so when is pirate going under?
 115 2012-08-05 00:43:35 <copumpkin> Diablo-D3: nobody knows :)
 116 2012-08-05 00:43:38 <copumpkin> well, he might
 117 2012-08-05 00:44:09 <Diablo-D3> I wish it'd hurry up already =/
 118 2012-08-05 00:44:13 <copumpkin> lol
 119 2012-08-05 00:44:33 <Diablo-D3> I should just run a goddamned scam
 120 2012-08-05 00:44:41 <Diablo-D3> so I can steal the money and invest it into DMC
 121 2012-08-05 00:45:02 <midnightmagic> or he might not and whoever the hell his buyers are, they don't care at all and their appetite for btc is ongoing.
 122 2012-08-05 00:45:17 <midnightmagic> <-- not a pirate
 123 2012-08-05 00:50:10 <roconnor> what's a pirate?
 124 2012-08-05 00:50:23 <copumpkin> roconnor: you've missed out on all the bitcoin gossip :)
 125 2012-08-05 00:50:31 <roconnor> I was in France
 126 2012-08-05 00:50:57 <amiller> hi roconnor
 127 2012-08-05 00:51:08 <roconnor> hi
 128 2012-08-05 00:51:09 <Diablo-D3> roconnor: pirate bank
 129 2012-08-05 00:51:44 <midnightmagic> holy crap roconnor you're talking
 130 2012-08-05 00:52:49 <copumpkin> lol
 131 2012-08-05 00:52:55 <copumpkin> roconnor: I told you people missed you!
 132 2012-08-05 00:52:58 ForceMajeure has joined
 133 2012-08-05 00:53:01 * roconnor ponders asking what a pirate bank is
 134 2012-08-05 00:53:08 <roconnor> midnightmagic: I was in France
 135 2012-08-05 00:53:15 <Diablo-D3> pirate savings and trust
 136 2012-08-05 00:53:21 ForceMajeure is now known as Guest5004
 137 2012-08-05 00:53:38 <roconnor> ok
 138 2012-08-05 00:53:49 <copumpkin> roconnor: something that looks overwhelmingly like a ponzi scheme, but that some have doubts about :)
 139 2012-08-05 00:53:52 <midnightmagic> roconnor: there's this guy who set up a depositor/investment thing where if you deposit >= 2000 bitcoins he's pay you like 7% interest weekly.
 140 2012-08-05 00:53:58 <roconnor> LOL
 141 2012-08-05 00:54:08 ForceMajeure_ has quit (Ping timeout: 246 seconds)
 142 2012-08-05 00:54:56 <midnightmagic> roconnor: Everybody thinks it's a scam because they can't see how it's possible. unfortunately this guy doesn't say how he does it, and so speculation is rampant in a way i don't think i've seen since the mtgox haters all glomped on to one another in a giant ball of suck.
 143 2012-08-05 00:56:27 <midnightmagic> roconnor: And then some guy was willing to bet that he'd not be able to meet his obligations in the next year.  So he put up 5000 btc and pirate put up 5000 btc (pirateat40 is his nick) and nanotube escrowed the bet. so there's 10,000 btc sitting there.
 144 2012-08-05 00:56:55 <copumpkin> unfortunately, 10k btc is rather small change to some people :)
 145 2012-08-05 00:57:04 rdponticelli has quit (Ping timeout: 272 seconds)
 146 2012-08-05 00:57:06 <Diablo-D3> thats more than dmc has.
 147 2012-08-05 00:57:09 <gmaxwell> 3372% APY for the win.
 148 2012-08-05 00:57:16 * copumpkin can't complain
 149 2012-08-05 00:57:21 <roconnor> If I were nanotube I'd invest the 10,000 and put in in the pirate bank
 150 2012-08-05 00:57:24 <copumpkin> lol
 151 2012-08-05 00:57:25 <Diablo-D3> maybe I should invest in pirate
 152 2012-08-05 00:57:35 <Diablo-D3> if pirate runs off, oh well
 153 2012-08-05 00:57:37 <Diablo-D3> not my problem
 154 2012-08-05 00:57:38 <copumpkin> Diablo-D3: I dunno, not everyone can be this fabulous
 155 2012-08-05 00:57:46 <midnightmagic> +1
 156 2012-08-05 00:57:47 <Diablo-D3> I simply dont care anymore
 157 2012-08-05 00:58:02 <midnightmagic> Diablo-D3: About what?
 158 2012-08-05 00:58:09 <midnightmagic> you're not getting fatalistic are you?
 159 2012-08-05 00:58:14 <Diablo-D3> trying to do things the right way
 160 2012-08-05 00:58:48 <midnightmagic> there's no such thing as the "right way". it's a construct designed to imprison peoples' minds.
 161 2012-08-05 00:59:10 guruvan_ has quit (Remote host closed the connection)
 162 2012-08-05 00:59:10 guruvan has quit (Remote host closed the connection)
 163 2012-08-05 00:59:36 <Diablo-D3> midnightmagic: yes, but running a fucking ponzi is not the right way
 164 2012-08-05 01:00:18 <midnightmagic> Diablo-D3: well, you've identified one wrong way.
 165 2012-08-05 01:00:50 MC-Eeepc has joined
 166 2012-08-05 01:02:54 <Diablo-D3> midnightmagic: its just frustrating watching all the scams suck up the money
 167 2012-08-05 01:03:00 <Diablo-D3> but legitimate stuff gets starved to death
 168 2012-08-05 01:03:21 <midnightmagic> Diablo-D3: What scams?
 169 2012-08-05 01:05:42 <Diablo-D3> bfl, pirate, etc
 170 2012-08-05 01:06:22 <copumpkin> what amazes me about this community is how many people claim everything is a scam
 171 2012-08-05 01:06:34 <copumpkin> scam must be the most common word on the forum
 172 2012-08-05 01:06:37 <Diablo-D3> you cant make 7% a week.
 173 2012-08-05 01:06:40 <Diablo-D3> period.
 174 2012-08-05 01:06:45 <Diablo-D3> even if you were the mob
 175 2012-08-05 01:06:50 <Diablo-D3> even if you were the fucking federal reserve
 176 2012-08-05 01:06:57 <Diablo-D3> you cant make 7% a week
 177 2012-08-05 01:07:15 <copumpkin> I don't really care
 178 2012-08-05 01:07:20 <copumpkin> I'm just saying that people call everything a scam
 179 2012-08-05 01:07:31 <copumpkin> for every enterprise out there, there's at least someone calling it a scam
 180 2012-08-05 01:07:55 <copumpkin> gigamining has resident scam-callers
 181 2012-08-05 01:08:00 <copumpkin> most of the mining ops do
 182 2012-08-05 01:08:05 <copumpkin> BFL has dozens
 183 2012-08-05 01:08:10 da2ce7 has joined
 184 2012-08-05 01:08:23 <copumpkin> but not just BFL
 185 2012-08-05 01:08:34 <copumpkin> other mining hardware companies are all scams according to at least one person
 186 2012-08-05 01:08:34 <Diablo-D3> so is that how you win?
 187 2012-08-05 01:08:41 <Diablo-D3> people invest in your shit when someone calls you a scam?
 188 2012-08-05 01:08:45 <copumpkin> that must be it
 189 2012-08-05 01:08:49 <copumpkin> want me to call DMC a scam?
 190 2012-08-05 01:08:52 <Diablo-D3> plz :<
 191 2012-08-05 01:08:52 <copumpkin> I can't be the first person
 192 2012-08-05 01:08:59 <copumpkin> oh shit, I threw out my forum account
 193 2012-08-05 01:09:00 <Diablo-D3> you might be the first person anyone listens to
 194 2012-08-05 01:09:02 <copumpkin> sorry man
 195 2012-08-05 01:09:31 Joric has joined
 196 2012-08-05 01:09:31 Joric has quit (Changing host)
 197 2012-08-05 01:09:31 Joric has joined
 198 2012-08-05 01:23:43 one_zero has joined
 199 2012-08-05 01:26:23 paraipan has quit (Quit: Saliendo)
 200 2012-08-05 01:30:11 <amiller> okay so you still have two kinds of information, you have deadweight proof-of-work and the regular block chain, and what you should do is set the difficulty equal to the average of the deadweight
 201 2012-08-05 01:30:21 <amiller> if things are stable, it could be as fast as 1:1
 202 2012-08-05 01:30:44 <amiller> if there's a partition rejoin where you can't merge two forks, then you build up a bunch of deadweight you need to pay off
 203 2012-08-05 01:32:06 <amiller> the more often you interact and can't merge/switch, the more dead weight you accumulate until you reach parity
 204 2012-08-05 01:34:11 tower has quit (Ping timeout: 240 seconds)
 205 2012-08-05 01:36:47 SphericalCow has quit (Quit: Leaving)
 206 2012-08-05 01:39:12 d4de has joined
 207 2012-08-05 01:39:12 d4de has quit (Changing host)
 208 2012-08-05 01:39:12 d4de has joined
 209 2012-08-05 01:39:15 tower has joined
 210 2012-08-05 01:39:59 da2ce7 has quit (Ping timeout: 246 seconds)
 211 2012-08-05 01:42:20 Gladamas has joined
 212 2012-08-05 01:46:36 <amiller> using forks/deadblocks to adjust the difficulty to cope with partitions/attacks without the need for timestamps is the key idea
 213 2012-08-05 01:47:11 <amiller> a good solution to this would never discard any work but only add more work on top (increase the difficulty in response to apparent partitions)
 214 2012-08-05 01:47:43 <amiller> but it would also settle back down to how it was if no new data shows up
 215 2012-08-05 01:47:50 <amiller> paying off the balance of dead blocks is the right idea
 216 2012-08-05 02:03:29 Guest5004 is now known as ForceMajeure
 217 2012-08-05 02:12:12 Turingi has quit (Read error: Connection reset by peer)
 218 2012-08-05 02:12:55 RainbowDashh has quit (Quit: Computer has gone to sleep.)
 219 2012-08-05 02:16:32 [7] has quit (Disconnected by services)
 220 2012-08-05 02:16:40 TheSeven has joined
 221 2012-08-05 02:29:40 nanotube is now known as megatube
 222 2012-08-05 02:29:54 megatube is now known as nanotube
 223 2012-08-05 02:32:55 eoss has joined
 224 2012-08-05 02:37:28 <amiller> imagine if there was another bitcoin underneath the genesis block and that's just as far back as we can remember
 225 2012-08-05 02:37:41 Gladamas has quit (Ping timeout: 240 seconds)
 226 2012-08-05 02:39:27 phungi has quit (Ping timeout: 246 seconds)
 227 2012-08-05 02:40:10 phungus has quit (Ping timeout: 246 seconds)
 228 2012-08-05 02:42:31 <amiller> it's always _safe_ to use extra proofs-of-work from a dead fork in order to increase difficulty, but the chance of an actual re-org should be exponentially small
 229 2012-08-05 02:42:43 phungi has joined
 230 2012-08-05 02:42:43 phungus has joined
 231 2012-08-05 02:43:48 <amiller> we should also have a merkle tree (not the update-balancey kind) for our past hashes that way if someone wants to prove they're from a really old fork, they can do so in log n
 232 2012-08-05 02:44:38 <amiller> if there's another universe that also started at the genesis block that came before satoshi's
 233 2012-08-05 02:44:40 <amiller> but we both move on past it
 234 2012-08-05 02:44:46 <quintopia> hi arthur
 235 2012-08-05 02:44:52 <amiller> then neither of us would be able to convince the other of much
 236 2012-08-05 02:44:58 <quintopia> how's old norma-jean today?
 237 2012-08-05 02:45:29 <amiller> it's okay to forget history as long as we can be convinced of it later
 238 2012-08-05 02:49:20 <amiller> a 33% attacker who wants to get us to fork will have to do it the hard way, because we only switch by length
 239 2012-08-05 02:49:56 <amiller> but an actually larger bitcoin network from mars will be able to get us to bump our difficulty
 240 2012-08-05 02:51:33 <amiller> so there are two sets of data, one is a chain, which we use for transactions and we really wish not to be forked
 241 2012-08-05 02:52:02 elkingrey has joined
 242 2012-08-05 02:53:04 <amiller> there's a second set of data which is just proof-of-work and we use it to gauge the strength of the network around us
 243 2012-08-05 02:53:51 <amiller> a weak attacker can't fork us on length, there's no way to win on that
 244 2012-08-05 02:56:10 <amiller> it's possible there's someone on jupiter that has the right to fork us but won't since he's so damn far away, if he suddenly moved closer then we'd be impressed by his work and he'd be able to convince us to merge
 245 2012-08-05 02:56:17 <amiller> at least if he remembered our common history - even if we ourselves forgot
 246 2012-08-05 02:56:51 <amiller> a weak attacker pretending to be jupiter will be unlikely to have a noticeable impact on our speed
 247 2012-08-05 02:57:08 <amiller> it's not a nonzero possibility, but even if it happens it won't fork us
 248 2012-08-05 02:57:20 <amiller> those are the two parts to the puzzle
 249 2012-08-05 02:58:07 <amiller> tl;dr: slow down for proof of work, fork by length
 250 2012-08-05 02:58:13 <amiller> easy
 251 2012-08-05 03:00:39 <amiller> if you get merged into a larger chain, your work goes along too
 252 2012-08-05 03:00:53 <amiller> along with any transactions that don't collide
 253 2012-08-05 03:01:33 <amiller> we can launch a colony to jupiter with half our bitcoins
 254 2012-08-05 03:01:35 <amiller> when they come back
 255 2012-08-05 03:01:38 Zarutian has quit (Quit: Zarutian)
 256 2012-08-05 03:01:40 <amiller> we'll have forgotten about them
 257 2012-08-05 03:01:58 <amiller> but they'll be able to prove they have coins from that era
 258 2012-08-05 03:04:39 da2ce7 has joined
 259 2012-08-05 03:06:26 sytse has quit (Ping timeout: 246 seconds)
 260 2012-08-05 03:09:55 <amiller> it's important to be able to go from each proof of work to the genesis block (or as far back as we care about) in log n
 261 2012-08-05 03:13:39 sytse has joined
 262 2012-08-05 03:14:12 cheako has quit (Ping timeout: 248 seconds)
 263 2012-08-05 03:16:14 da2ce7 has quit (Ping timeout: 246 seconds)
 264 2012-08-05 03:36:34 da2ce7_d has joined
 265 2012-08-05 03:39:30 bitllc has joined
 266 2012-08-05 03:41:24 da2ce7 has joined
 267 2012-08-05 03:49:14 Joric has quit ()
 268 2012-08-05 03:54:48 DiabloD3 has joined
 269 2012-08-05 03:56:38 Diablo-D3 has quit (Ping timeout: 250 seconds)
 270 2012-08-05 03:57:35 toffoo has joined
 271 2012-08-05 04:00:42 bitllc has quit (Remote host closed the connection)
 272 2012-08-05 04:00:48 DiabloD3 has quit (Remote host closed the connection)
 273 2012-08-05 04:01:17 DiabloD3 has joined
 274 2012-08-05 04:02:32 Gladamas has joined
 275 2012-08-05 04:04:14 janfrech has quit (Ping timeout: 240 seconds)
 276 2012-08-05 04:05:00 Gladamas has quit (Client Quit)
 277 2012-08-05 04:05:25 Gladamas has joined
 278 2012-08-05 04:06:50 janfrech has joined
 279 2012-08-05 04:11:03 DiabloD3 has quit (Remote host closed the connection)
 280 2012-08-05 04:14:43 DiabloD3 has joined
 281 2012-08-05 04:18:23 Diablo_D3 has joined
 282 2012-08-05 04:20:41 DiabloD3 has quit (Ping timeout: 244 seconds)
 283 2012-08-05 04:21:18 Diablo_D3 has quit (Remote host closed the connection)
 284 2012-08-05 04:26:16 superman2016 has quit (Read error: Connection reset by peer)
 285 2012-08-05 04:28:40 Diablo_D3 has joined
 286 2012-08-05 04:28:47 word has joined
 287 2012-08-05 04:29:33 Diablo_D3 is now known as Diablo-D3
 288 2012-08-05 04:31:33 Diablo-D3 has quit (Remote host closed the connection)
 289 2012-08-05 04:32:00 Diablo-D3 has joined
 290 2012-08-05 04:32:46 Shaded has quit (Read error: Connection reset by peer)
 291 2012-08-05 04:34:56 roconnor has quit (Ping timeout: 272 seconds)
 292 2012-08-05 04:35:54 setkeh has quit (Quit: Love Linux ?? and Sharing Experience ?? Come Join us on Freenode at #linuxdistrocommunity)
 293 2012-08-05 04:36:06 setkeh has joined
 294 2012-08-05 04:36:12 elkingrey has quit (Quit: Leaving)
 295 2012-08-05 04:41:48 Diablo-D3 has quit (Remote host closed the connection)
 296 2012-08-05 04:42:05 Cablesaurus has joined
 297 2012-08-05 04:42:17 Diablo-D3 has joined
 298 2012-08-05 04:53:21 HobGoblin has joined
 299 2012-08-05 04:53:44 HobGoblin is now known as Guest85120
 300 2012-08-05 04:54:52 wasabi2 has joined
 301 2012-08-05 04:54:58 wasabi has quit (Read error: Connection reset by peer)
 302 2012-08-05 04:56:19 mologie_ has joined
 303 2012-08-05 04:56:46 kinlo_ has joined
 304 2012-08-05 04:57:00 mologie has quit (Ping timeout: 260 seconds)
 305 2012-08-05 04:57:00 Ken` has quit (Ping timeout: 260 seconds)
 306 2012-08-05 04:57:00 mologie_ is now known as mologie
 307 2012-08-05 04:57:00 tucenaber has quit (Ping timeout: 260 seconds)
 308 2012-08-05 04:57:00 Wack0 has quit (Ping timeout: 260 seconds)
 309 2012-08-05 04:57:01 cosurgi has quit (Ping timeout: 260 seconds)
 310 2012-08-05 04:57:01 UukGoblin has quit (Ping timeout: 260 seconds)
 311 2012-08-05 04:57:01 Someguy123 has quit (Ping timeout: 260 seconds)
 312 2012-08-05 04:57:01 kinlo has quit (Ping timeout: 260 seconds)
 313 2012-08-05 04:57:01 cosurg1 has joined
 314 2012-08-05 04:57:14 Ken` has joined
 315 2012-08-05 04:57:25 Wack0 has joined
 316 2012-08-05 04:59:26 superman2016 has joined
 317 2012-08-05 05:02:05 Someguy123 has joined
 318 2012-08-05 05:03:10 kinlo_ is now known as kinlo
 319 2012-08-05 05:06:32 bulletbill has joined
 320 2012-08-05 05:06:58 <bulletbill> test
 321 2012-08-05 05:07:28 bulletbill has left ()
 322 2012-08-05 05:13:57 tucenaber has joined
 323 2012-08-05 05:20:13 Cablesaurus has quit (Quit: The early bird may get the worm, but the second mouse gets the cheese)
 324 2012-08-05 05:21:43 D34TH has quit (Read error: Connection reset by peer)
 325 2012-08-05 05:35:57 eoss has quit (Remote host closed the connection)
 326 2012-08-05 05:46:31 lumie has joined
 327 2012-08-05 05:52:13 meelu has joined
 328 2012-08-05 05:56:06 sgornick has quit (Quit: Ex-Chat)
 329 2012-08-05 06:01:02 osmosis has quit (Quit: Leaving)
 330 2012-08-05 06:18:22 maaku has joined
 331 2012-08-05 06:21:52 * jgarzik goes shopping
 332 2012-08-05 06:22:09 <jgarzik> (rather than OP_IF or chain reorg, let's add a JSON-RPC server to pynode)
 333 2012-08-05 06:37:14 Marf has joined
 334 2012-08-05 06:39:18 OneFixt has quit (Read error: Connection reset by peer)
 335 2012-08-05 06:39:32 OneFixt has joined
 336 2012-08-05 06:43:46 minimoose has quit (Quit: minimoose)
 337 2012-08-05 06:45:32 slush1 has quit (Ping timeout: 246 seconds)
 338 2012-08-05 06:53:54 Gladamas has quit (Quit: Got to go, or internet/client/computer crash)
 339 2012-08-05 06:54:26 cande has quit (Quit: Lämnar)
 340 2012-08-05 07:00:03 MLK911 is now known as JFK911
 341 2012-08-05 07:00:50 slush1 has joined
 342 2012-08-05 07:07:21 ovidiusoft has joined
 343 2012-08-05 07:14:13 Marf has quit (Ping timeout: 250 seconds)
 344 2012-08-05 07:16:34 lukas has quit (Ping timeout: 264 seconds)
 345 2012-08-05 07:20:03 lukas has joined
 346 2012-08-05 07:22:32 maaku has quit (Quit: maaku)
 347 2012-08-05 07:27:49 rlifchitz has quit (Quit: "I never worry about action, but only about inaction" (W. Churchill))
 348 2012-08-05 07:34:54 sytse has quit (Ping timeout: 248 seconds)
 349 2012-08-05 07:42:10 sytse has joined
 350 2012-08-05 07:45:39 Cablesaurus has joined
 351 2012-08-05 07:48:25 Cablesaurus has quit (Client Quit)
 352 2012-08-05 07:48:58 kjj_ has quit (Ping timeout: 264 seconds)
 353 2012-08-05 07:50:45 rlifchitz has joined
 354 2012-08-05 07:50:45 rlifchitz has quit (Changing host)
 355 2012-08-05 07:50:45 rlifchitz has joined
 356 2012-08-05 07:54:32 kjj_ has joined
 357 2012-08-05 08:00:15 tcatm has quit (Remote host closed the connection)
 358 2012-08-05 08:00:37 tcatm has joined
 359 2012-08-05 08:00:37 tcatm has quit (Changing host)
 360 2012-08-05 08:00:37 tcatm has joined
 361 2012-08-05 08:02:09 tcatm has quit (Read error: Connection reset by peer)
 362 2012-08-05 08:02:28 tcatm has joined
 363 2012-08-05 08:02:28 tcatm has quit (Changing host)
 364 2012-08-05 08:02:28 tcatm has joined
 365 2012-08-05 08:06:03 lukas has quit (Ping timeout: 246 seconds)
 366 2012-08-05 08:07:15 lukas has joined
 367 2012-08-05 08:22:27 lumie has quit (Quit: Leaving)
 368 2012-08-05 08:23:33 lukas has quit (Ping timeout: 246 seconds)
 369 2012-08-05 08:25:47 lukas has joined
 370 2012-08-05 08:26:04 word has quit (Ping timeout: 244 seconds)
 371 2012-08-05 08:45:40 molecular has quit (Read error: Operation timed out)
 372 2012-08-05 08:45:59 molecular has joined
 373 2012-08-05 08:47:07 jdnavarro has joined
 374 2012-08-05 08:47:09 jdnavarro has quit (Read error: error:1408F119:SSL routines:SSL3_GET_RECORD:decryption failed or bad record mac)
 375 2012-08-05 08:49:21 jdnavarro has joined
 376 2012-08-05 08:56:53 brwyatt is now known as brwyatt|Away
 377 2012-08-05 09:51:07 RazielZ has joined
 378 2012-08-05 09:52:10 rlifchitz has quit (Quit: "I never worry about action, but only about inaction" (W. Churchill))
 379 2012-08-05 10:00:47 tonikt has joined
 380 2012-08-05 10:01:07 zooko has quit (Ping timeout: 272 seconds)
 381 2012-08-05 10:02:27 Joric has joined
 382 2012-08-05 10:03:49 LuaKT has joined
 383 2012-08-05 10:03:53 da2ce7_d has quit (Read error: Connection reset by peer)
 384 2012-08-05 10:15:49 da2ce7_d has joined
 385 2012-08-05 10:16:13 da2ce7_d has quit (Read error: Connection reset by peer)
 386 2012-08-05 10:16:28 da2ce7_d has joined
 387 2012-08-05 10:19:13 setkeh has quit (Quit: Love Linux ?? and Sharing Experience ?? Come Join us on Freenode at #linuxdistrocommunity)
 388 2012-08-05 10:19:23 setkeh has joined
 389 2012-08-05 10:20:01 datagutt has joined
 390 2012-08-05 10:20:08 rlifchitz has joined
 391 2012-08-05 10:20:08 rlifchitz has quit (Changing host)
 392 2012-08-05 10:20:08 rlifchitz has joined
 393 2012-08-05 10:24:27 B0g4r7__ has joined
 394 2012-08-05 10:26:28 B0g4r7 has quit (Ping timeout: 276 seconds)
 395 2012-08-05 10:26:29 B0g4r7__ is now known as B0g4r7
 396 2012-08-05 10:26:32 jdnavarro has quit (Remote host closed the connection)
 397 2012-08-05 10:26:54 Cory has quit (Ping timeout: 240 seconds)
 398 2012-08-05 10:29:15 Cory has joined
 399 2012-08-05 10:36:27 Cory has quit (Ping timeout: 246 seconds)
 400 2012-08-05 10:39:14 TD has joined
 401 2012-08-05 10:42:10 Cory has joined
 402 2012-08-05 10:47:40 <sipa> amiller: i just use the definition from english, and the source code; but my assumption is that because transactions from stale blocks are denoted 'orphan' in the original wx wallet application, people started to call them orphan blocks
 403 2012-08-05 10:47:45 <sipa> anyway, meh :)
 404 2012-08-05 10:56:24 copumpkin has quit (Ping timeout: 246 seconds)
 405 2012-08-05 10:56:56 copumpkin has joined
 406 2012-08-05 10:59:18 TD has quit (Quit: TD)
 407 2012-08-05 11:14:24 paraipan has joined
 408 2012-08-05 11:15:13 devrandom has quit (Ping timeout: 276 seconds)
 409 2012-08-05 11:18:51 sytse has quit (Ping timeout: 245 seconds)
 410 2012-08-05 11:20:17 rlifchitz has quit (Quit: "I never worry about action, but only about inaction" (W. Churchill))
 411 2012-08-05 11:20:52 dvide has joined
 412 2012-08-05 11:21:00 rlifchitz has joined
 413 2012-08-05 11:21:00 rlifchitz has quit (Changing host)
 414 2012-08-05 11:21:00 rlifchitz has joined
 415 2012-08-05 11:23:26 ovidiusoft has quit (Read error: Connection reset by peer)
 416 2012-08-05 11:25:33 sytse has joined
 417 2012-08-05 11:33:04 Guest85120 has quit (Quit: Reconnecting)
 418 2012-08-05 11:33:12 UukGoblin has joined
 419 2012-08-05 11:33:49 UukGoblin has quit (Changing host)
 420 2012-08-05 11:33:49 UukGoblin has joined
 421 2012-08-05 11:42:39 ovidiusoft has joined
 422 2012-08-05 11:51:10 t7 has joined
 423 2012-08-05 11:59:47 bitllc has joined
 424 2012-08-05 11:59:54 Marf has joined
 425 2012-08-05 12:33:00 Turingi has joined
 426 2012-08-05 12:33:00 Turingi has quit (Changing host)
 427 2012-08-05 12:33:00 Turingi has joined
 428 2012-08-05 12:37:44 bitllc has quit (Remote host closed the connection)
 429 2012-08-05 12:50:42 darkee has quit (Remote host closed the connection)
 430 2012-08-05 12:51:19 darkee has joined
 431 2012-08-05 13:04:15 lukas has quit (Ping timeout: 246 seconds)
 432 2012-08-05 13:04:17 eoss has joined
 433 2012-08-05 13:04:18 eoss has quit (Changing host)
 434 2012-08-05 13:04:18 eoss has joined
 435 2012-08-05 13:06:45 Zarutian has joined
 436 2012-08-05 13:07:46 lukas has joined
 437 2012-08-05 13:11:35 pusle has joined
 438 2012-08-05 13:13:15 Karmaon has quit (Ping timeout: 246 seconds)
 439 2012-08-05 13:22:42 D34TH has joined
 440 2012-08-05 13:22:49 D34TH has quit (Changing host)
 441 2012-08-05 13:22:49 D34TH has joined
 442 2012-08-05 13:28:32 TD has joined
 443 2012-08-05 13:28:32 rdponticelli has joined
 444 2012-08-05 13:30:01 bitllc has joined
 445 2012-08-05 13:32:43 minimoose has joined
 446 2012-08-05 13:36:06 lukas has quit (Ping timeout: 246 seconds)
 447 2012-08-05 13:37:48 bitllc has quit (Remote host closed the connection)
 448 2012-08-05 13:46:02 e0s_ has joined
 449 2012-08-05 13:48:34 Fanquake has joined
 450 2012-08-05 13:53:13 lukas has joined
 451 2012-08-05 13:53:21 one_zero has quit ()
 452 2012-08-05 13:53:42 Fanquake has quit (Quit: Fanquake)
 453 2012-08-05 13:54:42 toffoo has quit ()
 454 2012-08-05 13:55:52 Zarutian has quit (Quit: Zarutian)
 455 2012-08-05 13:56:44 fpgaminer has quit (Remote host closed the connection)
 456 2012-08-05 13:57:03 fpgaminer has joined
 457 2012-08-05 13:58:30 lukas has quit (Ping timeout: 246 seconds)
 458 2012-08-05 13:59:14 <amiller> i'm trying to work out a way of having a concise summary of the total work done in a chain that can be verified without having to actually validate the chain
 459 2012-08-05 13:59:18 <amiller> what's the rarest hash we've ever found?
 460 2012-08-05 13:59:22 Diablo-D3 has quit (Ping timeout: 250 seconds)
 461 2012-08-05 14:00:15 <amiller> its location should be uniformly randomly selected from our timeline of total work
 462 2012-08-05 14:01:10 <jrmithdobbs> "rarest hash" in what way?
 463 2012-08-05 14:01:14 <amiller> smallest value
 464 2012-08-05 14:04:48 tusle has joined
 465 2012-08-05 14:05:30 pusle has quit (Ping timeout: 246 seconds)
 466 2012-08-05 14:06:11 paraipan has quit (Ping timeout: 276 seconds)
 467 2012-08-05 14:06:46 <amiller> it would be neat to include a hash of the largest block we know of
 468 2012-08-05 14:07:01 <amiller> especially since that block would include a hash of the largest one before that
 469 2012-08-05 14:07:29 e0s_ has quit (Ping timeout: 272 seconds)
 470 2012-08-05 14:07:36 <amiller> and so on, back to the genesis block
 471 2012-08-05 14:07:50 paraipan has joined
 472 2012-08-05 14:09:42 PhantomSpark has quit (Ping timeout: 246 seconds)
 473 2012-08-05 14:11:06 e0s__ has joined
 474 2012-08-05 14:11:13 <freewil> is "testnet3" the latest testnet
 475 2012-08-05 14:11:23 <freewil> ... and how do i use it?
 476 2012-08-05 14:11:23 e0s_ has joined
 477 2012-08-05 14:12:06 lukas has joined
 478 2012-08-05 14:19:02 meelu has quit (Ping timeout: 246 seconds)
 479 2012-08-05 14:23:45 sytse has quit (Read error: Operation timed out)
 480 2012-08-05 14:28:36 e0s_ has quit (Ping timeout: 246 seconds)
 481 2012-08-05 14:29:10 e0s__ has quit (Ping timeout: 264 seconds)
 482 2012-08-05 14:31:20 <sipa> freewil: use git HEAD
 483 2012-08-05 14:31:24 <sipa> and yes
 484 2012-08-05 14:31:41 <freewil> whats testnet2
 485 2012-08-05 14:33:37 sytse has joined
 486 2012-08-05 14:44:34 e0s_ has joined
 487 2012-08-05 14:47:48 PK has joined
 488 2012-08-05 14:47:49 PK has quit (Changing host)
 489 2012-08-05 14:47:49 PK has joined
 490 2012-08-05 14:48:54 e0s_ has quit (Ping timeout: 246 seconds)
 491 2012-08-05 14:57:34 hexTech has joined
 492 2012-08-05 14:59:14 LuaKTT has joined
 493 2012-08-05 14:59:54 <TD> luke-jr: are eligiuses tx inclusion policies documented anywhere?
 494 2012-08-05 15:00:01 <TD> i'm wondering why a couple of txns i was waiting for were not included
 495 2012-08-05 15:01:01 <luke-jr> TD: http://eligius.st/wiki/index.php/Eligius:About documents all but the temporary 32 txn limit
 496 2012-08-05 15:01:12 <TD> there's a 32 tx limit?
 497 2012-08-05 15:01:14 <TD> how comes?
 498 2012-08-05 15:01:18 LuaKT has quit (Ping timeout: 248 seconds)
 499 2012-08-05 15:01:22 <luke-jr> (and the specifics for spam detection)
 500 2012-08-05 15:01:42 <TD> right, ok
 501 2012-08-05 15:01:50 <luke-jr> TD: to deal with the block propagation problem until it's fixed OR Eligius catches up with variance
 502 2012-08-05 15:01:57 LuaKTT has quit (Client Quit)
 503 2012-08-05 15:01:58 <TD> your last block did indeed have 32 transactions so i guess that limit would be the cause
 504 2012-08-05 15:02:05 <TD> ok
 505 2012-08-05 15:02:11 LuaKT has joined
 506 2012-08-05 15:02:12 LuaKT has quit (Changing host)
 507 2012-08-05 15:02:12 LuaKT has joined
 508 2012-08-05 15:02:13 skeledrew has joined
 509 2012-08-05 15:05:40 <jgarzik> w00t.  pynode survived the night, and JSON-RPC HTTP service is still working, too
 510 2012-08-05 15:05:47 <jgarzik> no orphans last night, then
 511 2012-08-05 15:06:22 <jgarzik> gavin's raw transaction API looks useful, so I'll probably implement that
 512 2012-08-05 15:07:41 t7 has quit (Remote host closed the connection)
 513 2012-08-05 15:14:14 brwyatt is now known as Away!~brwyatt@brwyatt.net|brwyatt
 514 2012-08-05 15:14:59 pusle has joined
 515 2012-08-05 15:15:51 tusle has quit (Ping timeout: 246 seconds)
 516 2012-08-05 15:17:43 <jgarzik> sipa: any chance you could review list 0.7 list I posted, and ACK some of them?  Maybe pull https://github.com/bitcoin/bitcoin/pull/1431 ?
 517 2012-08-05 15:24:47 <TD> i hope 0.8 comes out relatively soon after 0.7
 518 2012-08-05 15:24:56 <TD> i was hoping the performance improvements could go in with this release
 519 2012-08-05 15:25:04 <TD> given pool throttling it seems we really need it ASAP :(
 520 2012-08-05 15:27:39 <jgarzik> TD: excluding one particularly vocal sample, pools are throttling?
 521 2012-08-05 15:27:48 <luke-jr> TD: it doesn't change much in that regard IMO; did you address the issues I noted? ;)
 522 2012-08-05 15:28:16 <luke-jr> TD: any particular tx you need to get in a block for testing btw?
 523 2012-08-05 15:28:30 <luke-jr> jgarzik: I try not to be vocal about it!
 524 2012-08-05 15:28:36 <TD> no, they got in now
 525 2012-08-05 15:28:51 <TD> jgarzik: i think somebody (forgot who) mentioned that several pools are dropping satoshidice transactions, at least
 526 2012-08-05 15:29:06 <luke-jr> well, it's only logical to block a DoS attack IMO
 527 2012-08-05 15:29:20 <TD> luke-jr: re, static linking, no, i discussed it with gavin a bit. he didn't seem to care much. the missing qt make clean i'll fix.
 528 2012-08-05 15:30:12 <luke-jr> TD: so I need to do it for you? :/
 529 2012-08-05 15:31:01 <TD> well, you need to take it up with gavin and see if he'd accept a pull req. let's wait until he's back from vacation for this discussion.
 530 2012-08-05 15:31:50 <luke-jr> probably a good idea
 531 2012-08-05 15:32:14 <TD> jgarzik: it'd be cool if the getdata command could read transactions from both memory pool and disk, whilst you're in the area :)
 532 2012-08-05 15:32:35 <jgarzik> TD: I'm glad you're here to say that, actually...
 533 2012-08-05 15:32:49 <jgarzik> TD: sipa seemed fairly against that, and gmaxwell not happy
 534 2012-08-05 15:32:58 <TD> why? DoS stuff?
 535 2012-08-05 15:33:05 <jgarzik> TD: yeah DoS disk seeks
 536 2012-08-05 15:33:20 <jgarzik> TD: FWIW, I agree with you -- and would love to hear a use case
 537 2012-08-05 15:34:10 <TD> hmm. yeah. it's the sort of thing that just seems generically useful. i could go over the contracts stuff and see if any would find it helpful at some point
 538 2012-08-05 15:34:28 <TD> i guess if we go ahead and re-work DoS handling to be based on priority queues this objection would go away at the same time
 539 2012-08-05 15:34:33 <TD> ok. never mind then. we can handle it later.
 540 2012-08-05 15:34:37 <jgarzik> TD: I originally implemented it as you described -- if not in mempool, serve from disk.  But IRC did not like that, so I changed it to do only mempool.
 541 2012-08-05 15:34:47 <TD> ok, thanks
 542 2012-08-05 15:35:30 <jgarzik> TD: SPV nodes should do 'filter' / 'mempool' / 'block'...
 543 2012-08-05 15:35:45 <jgarzik> TD: SPV nodes should do 'filter' / 'mempool' / retrieve TX's from mempool / 'block'...
 544 2012-08-05 15:36:13 <jgarzik> TD: the "retrieve" stage may fail, as they may make it into a block between the 'mempool' and 'block' steps
 545 2012-08-05 15:36:24 <jgarzik> well, fail for one or more TX's
 546 2012-08-05 15:36:27 <jgarzik> not fail completely
 547 2012-08-05 15:37:11 B0g4r7 has quit (Ping timeout: 276 seconds)
 548 2012-08-05 15:39:06 da2ce7_d has quit (Read error: Connection reset by peer)
 549 2012-08-05 15:40:20 roconnor has joined
 550 2012-08-05 15:41:27 da2ce7_d has joined
 551 2012-08-05 15:46:34 brwyatt is now known as brwyatt|Away
 552 2012-08-05 15:53:12 p0s has joined
 553 2012-08-05 15:55:03 MC-Eeepc has quit (Ping timeout: 250 seconds)
 554 2012-08-05 15:57:20 <TD> jgarzik: yes silent failure is a problematic design feature of the current protocol
 555 2012-08-05 15:57:42 <TD> jgarzik: you're right that there's a race there. it'd be nice if there was a "notfound" error message  or something
 556 2012-08-05 15:57:49 <TD> otherwise you can't really ever know you reached the end of that process.
 557 2012-08-05 15:57:59 <TD> it may not be required, but it seems safer to make the protocol more explicit with time
 558 2012-08-05 15:58:11 <luke-jr> probably you can assume messages are handled synchronously, for now
 559 2012-08-05 15:58:42 meelu has joined
 560 2012-08-05 15:58:55 <luke-jr> so send a ping after you're done, for example
 561 2012-08-05 15:59:37 B0g4r7 has joined
 562 2012-08-05 16:03:42 Guest29894 has quit (Ping timeout: 248 seconds)
 563 2012-08-05 16:05:06 dstien has quit (Ping timeout: 245 seconds)
 564 2012-08-05 16:06:24 dstien has joined
 565 2012-08-05 16:07:28 <jrmithdobbs> what's the equiv of gprof for c++ ?
 566 2012-08-05 16:09:02 <jgarzik> ping messages are indeed small, and I think all nodes process messages in order (not necessarily synchronously)
 567 2012-08-05 16:09:27 <jgarzik> er, s/process/respond to/
 568 2012-08-05 16:09:52 <jgarzik> P2P messages may be pipelined and executed out of order, as long as the responses are delivered accurately in order
 569 2012-08-05 16:12:26 MC-Eeepc has joined
 570 2012-08-05 16:15:48 Karmaon6 has joined
 571 2012-08-05 16:16:14 Karmaon6 has quit (Changing host)
 572 2012-08-05 16:16:14 Karmaon6 has joined
 573 2012-08-05 16:16:30 Karmaon6 has quit (Client Quit)
 574 2012-08-05 16:16:41 mpr has joined
 575 2012-08-05 16:17:05 mpr is now known as Guest85863
 576 2012-08-05 16:17:48 Karmaon6 has joined
 577 2012-08-05 16:18:08 Karmaon6 has quit (Changing host)
 578 2012-08-05 16:18:08 Karmaon6 has joined
 579 2012-08-05 16:18:56 Lolcust has quit (Quit: Nap time)
 580 2012-08-05 16:26:58 tonikt has quit (Quit: Leaving)
 581 2012-08-05 16:33:06 e0s_ has joined
 582 2012-08-05 16:34:40 <amiller> oh yeah
 583 2012-08-05 16:36:05 <sipa> freewil: the one you've been using the past year
 584 2012-08-05 16:36:51 <freewil> sipa, ok
 585 2012-08-05 16:36:59 elkingrey has joined
 586 2012-08-05 16:37:11 <freewil> sipa, so that would be the testnet in version 0.6.x?
 587 2012-08-05 16:37:57 Karmaon6 has quit (Ping timeout: 250 seconds)
 588 2012-08-05 16:39:00 <sipa> yes
 589 2012-08-05 16:39:24 <sipa> and 0.5, 0.4, and some 0.3
 590 2012-08-05 16:40:05 <sipa> but 0.6 introduced some new rules in testnet, without resetting it
 591 2012-08-05 16:40:27 <sipa> jgarzik: i'll check the list tomorrow
 592 2012-08-05 16:40:31 <freewil> right
 593 2012-08-05 16:41:21 <jgarzik> sipa: thanks
 594 2012-08-05 16:41:35 <sipa> TD: i'd like to see tx/block validation become separate from historic block storage
 595 2012-08-05 16:42:07 <TD> how so?
 596 2012-08-05 16:42:32 pickett has quit (Remote host closed the connection)
 597 2012-08-05 16:42:59 <sipa> there's just no need for everyone in the network to keep everything
 598 2012-08-05 16:43:32 <TD> oh, i see
 599 2012-08-05 16:43:43 <TD> bbiab
 600 2012-08-05 16:43:47 <sipa> and disk/bandwidth are cheap, but not necessarily what every end user on the network wants to do
 601 2012-08-05 16:44:00 TD has quit (Quit: TD)
 602 2012-08-05 16:48:13 <jgarzik> sipa: I think that will naturally fall out without ultraprune, simply by virtue of implementing a solid SPV mode.  That was always satoshi's original plan.
 603 2012-08-05 16:49:02 <jgarzik> sipa: ultraprune is elegant, but ultimately end users don't need a constantly connected router-esque node
 604 2012-08-05 16:49:33 <jgarzik> so I think of ultraprune as a short term fix
 605 2012-08-05 16:50:26 pickett has joined
 606 2012-08-05 16:50:54 nickrb has joined
 607 2012-08-05 16:51:34 Gladamas has joined
 608 2012-08-05 16:53:21 TD has joined
 609 2012-08-05 16:53:51 paul0 has joined
 610 2012-08-05 16:55:53 <sipa> jgarzik: sure, over time more users will move to SPV-style nodes
 611 2012-08-05 16:56:31 <gmaxwell> Better hope it's cheap to run the router nodes to support those SPV nodes, lest it all fall apart. :)
 612 2012-08-05 16:57:26 <MC-Eeepc> router node?
 613 2012-08-05 16:57:32 <sipa> but still full block storage and tx validation seem to be separate concerns, and separate solutions for them may be preferrable
 614 2012-08-05 16:58:00 Karmaon6 has joined
 615 2012-08-05 16:58:35 <sipa> so as long as normal operation does not require access to arbirary transactions, i'd rather not provide it via P2P
 616 2012-08-05 16:58:45 Gladamas_ has joined
 617 2012-08-05 16:58:47 <OneEyed> Hi. Why are some hash in inputs around 33 bytes (tx 2075949d5e6c7938cd704cac5852431a2e63b606bcd3420dcbaf4f21a9c57f77) and in some others around 65 bytes (tx f3cc2018f8367c3f7717f7e2a5fa2068d43d116571479150b512474edb450f51)?
 618 2012-08-05 16:58:48 Karmaon6 is now known as Karmaon
 619 2012-08-05 16:58:50 Karmaon has quit (Changing host)
 620 2012-08-05 16:58:50 Karmaon has joined
 621 2012-08-05 16:58:50 <gmaxwell> MC-Eeepc: I'm using Jeff's terminology for nodes that actually participate in the network.
 622 2012-08-05 16:58:52 <sipa> (or not by default, anyway)
 623 2012-08-05 17:00:06 <MC-Eeepc> how about aristocrat node and serf node :)
 624 2012-08-05 17:00:12 Gladamas has quit (Ping timeout: 240 seconds)
 625 2012-08-05 17:01:51 <MC-Eeepc> joking fellas...
 626 2012-08-05 17:03:05 Gladamas_ is now known as Gladamas
 627 2012-08-05 17:03:59 pusle has quit (Ping timeout: 264 seconds)
 628 2012-08-05 17:04:46 <nickrb> I prefer Plebians and Patricians.
 629 2012-08-05 17:08:20 <TD> OneEyed: they are not hashes
 630 2012-08-05 17:08:30 <TD> OneEyed: they are public keys. the difference is whether they are compressed or not
 631 2012-08-05 17:08:51 <TD> gmaxwell: i was thinking about storj today, in the context of how to build a middleman-free iTunes Store/Spotify competitor
 632 2012-08-05 17:09:30 <TD> seems like storage agents are one piece of the puzzle. once you have very low cost, middle-man free, auto-sizing according to demand file storage, adding an advertisement/indexing service and a pretty frontend on top seems "easy"
 633 2012-08-05 17:11:14 Gladamas_ has joined
 634 2012-08-05 17:11:42 <TD> the remaining issue being that, assuming the file contents are encrypted, how you reveal the key[s] only to people who have paid
 635 2012-08-05 17:11:51 <TD> ideally without some kind of server to do that intermediation
 636 2012-08-05 17:12:43 paul0 has quit (Quit: paul0)
 637 2012-08-05 17:13:12 Gladamas has quit (Ping timeout: 240 seconds)
 638 2012-08-05 17:16:28 Lolcust has joined
 639 2012-08-05 17:19:48 Gladamas_ is now known as Gladamas
 640 2012-08-05 17:19:51 Gladamas has quit (Quit: Got to go, or internet/client/computer crash)
 641 2012-08-05 17:20:10 TD has quit (Quit: TD)
 642 2012-08-05 17:22:57 p0s has quit (Remote host closed the connection)
 643 2012-08-05 17:27:09 Gladamas has joined
 644 2012-08-05 17:27:22 <jgarzik> sipa: getrawtransaction RPC depends on arbitrary access to on-disk txid's
 645 2012-08-05 17:28:32 RainbowDashh has joined
 646 2012-08-05 17:31:46 <gmaxwell> jgarzik: getrawtransaction isn't a p2p service, it's local. People who don't use it could run without it. (and for the most part it's just a diagnostic/troubleshooting command)
 647 2012-08-05 17:32:21 <sipa> and it could well remain supported with an optional index
 648 2012-08-05 17:32:30 <sipa> which i suppose will be useful anyway
 649 2012-08-05 17:32:36 <sipa> but not necessary
 650 2012-08-05 17:33:06 Gladamas_ has joined
 651 2012-08-05 17:35:12 Gladamas has quit (Ping timeout: 240 seconds)
 652 2012-08-05 17:35:23 cande has joined
 653 2012-08-05 17:36:49 <OneEyed> TD: yes, thanks, I figured that out later!
 654 2012-08-05 17:37:06 <jgarzik> gmaxwell: correct, it's not P2P.  but it is illustrative of use cases that we want.
 655 2012-08-05 17:39:13 <jgarzik> I'm not even convinced ultraprune should be default-on
 656 2012-08-05 17:39:15 <sipa> the only use cases for looking up arbitrary transactions i know of, are lightclient-providers and blockchain inspection services
 657 2012-08-05 17:39:56 <sipa> jgarzik: ultraprune + tx index is identical to what we have now, but faster and with less storage
 658 2012-08-05 17:40:57 <gmaxwell> and that extra storage could also be used to carry and address index, while still leaving it much smaller and much faster but also getting useful functionality.
 659 2012-08-05 17:41:03 <sipa> and it's certainly a useful service, the only point is that far from everyone needs it
 660 2012-08-05 17:41:55 <jgarzik> I think it is far from convincing that anyone needs to run anything besides (a) a full node with full blockchain or (b) an SPV node.  A low-resource, low-storage option is interesting but not high priority.
 661 2012-08-05 17:42:25 <jgarzik> as long as ultraprune + tx index is default, that's fine.  identical is obviously fine.
 662 2012-08-05 17:44:05 meelu has quit (Ping timeout: 244 seconds)
 663 2012-08-05 17:44:35 B0g4r7 has quit (Ping timeout: 276 seconds)
 664 2012-08-05 17:45:42 Gladamas_ has quit (Ping timeout: 240 seconds)
 665 2012-08-05 17:45:51 Joric has quit ()
 666 2012-08-05 17:47:18 <sipa> apart from getrawtransaction and block validation code, i wonder if there was any arbitrary tx access at all
 667 2012-08-05 17:48:05 <gmaxwell> sipa: importing keys.
 668 2012-08-05 17:49:01 Gladamas has joined
 669 2012-08-05 17:49:03 <sipa> no, that used block rescanning
 670 2012-08-05 17:49:12 <sipa> which remains possible
 671 2012-08-05 17:50:05 bitllc has joined
 672 2012-08-05 17:50:24 ByronJoh1son has joined
 673 2012-08-05 17:51:04 bobke_ has joined
 674 2012-08-05 17:51:41 dlb76 has quit (Ping timeout: 245 seconds)
 675 2012-08-05 17:51:41 graham1 has quit (Read error: Connection reset by peer)
 676 2012-08-05 17:51:41 Jezzz has quit (Ping timeout: 245 seconds)
 677 2012-08-05 17:51:41 Jezzz has joined
 678 2012-08-05 17:51:41 bitcoinbulletin has quit (Ping timeout: 245 seconds)
 679 2012-08-05 17:51:41 ByronJohnson has quit (Ping timeout: 245 seconds)
 680 2012-08-05 17:51:41 bobke has quit (Ping timeout: 245 seconds)
 681 2012-08-05 17:52:39 minimoose has quit (Ping timeout: 246 seconds)
 682 2012-08-05 17:53:16 Apexseals has quit (Ping timeout: 245 seconds)
 683 2012-08-05 17:53:45 Apexseals has joined
 684 2012-08-05 17:54:27 Jezzz is now known as Guest55766
 685 2012-08-05 17:55:44 da2ce749 has joined
 686 2012-08-05 17:55:50 <gmaxwell> sipa: yes, but it's cruddy that way.
 687 2012-08-05 17:55:51 zeiris has quit (Ping timeout: 245 seconds)
 688 2012-08-05 17:55:57 <sipa> ?
 689 2012-08-05 17:56:00 da2ce7_d2 has joined
 690 2012-08-05 17:56:13 zeiris has joined
 691 2012-08-05 17:56:15 <gmaxwell> It takes a long time, try to import 200 keys from another wallet.
 692 2012-08-05 17:56:15 meelu has joined
 693 2012-08-05 17:56:24 Gladamas_ has joined
 694 2012-08-05 17:56:29 <gmaxwell> getrawtransaction could also be made to use scanning.
 695 2012-08-05 17:56:44 tcatm_ has joined
 696 2012-08-05 17:56:48 <sipa> without txindex, no
 697 2012-08-05 17:57:09 <sipa> unless you want it to rescan the entire history for one tx
 698 2012-08-05 17:57:12 da2ce7 has quit (Ping timeout: 240 seconds)
 699 2012-08-05 17:57:12 tcatm has quit (Ping timeout: 245 seconds)
 700 2012-08-05 17:57:33 da2ce7_d has quit (Ping timeout: 246 seconds)
 701 2012-08-05 17:57:37 <gmaxwell> Right, which is often what import is doing.
 702 2012-08-05 17:58:12 Gladamas has quit (Ping timeout: 240 seconds)
 703 2012-08-05 17:58:27 <sipa> well, i think in many cases we should transfer key+tx instead of just key, and expect the other party to find the corresponding txs
 704 2012-08-05 17:58:37 <sipa> but that is a different discussion
 705 2012-08-05 17:59:34 <sipa> i had a json-based wallet export format once, which contained block and tx information, so rescanning would be much faster
 706 2012-08-05 18:00:39 B0g4r7 has joined
 707 2012-08-05 18:00:47 <jgarzik> No, I'm just being HIGHLY conservative when it comes to the classical Satoshi design.  Not speaking specifically about ultraprune but more generally, I don't want to close ourselves off from avenues we intended to explore, before we get a chance to explore them.
 708 2012-08-05 18:01:09 <sipa> fair enough
 709 2012-08-05 18:01:16 meelu has quit (Ping timeout: 246 seconds)
 710 2012-08-05 18:01:58 meelu has joined
 711 2012-08-05 18:02:38 bitcoinbulletin has joined
 712 2012-08-05 18:03:06 <gmaxwell> jgarzik: Indeed, thats exactly what motivated not wanting to offer spent txn over the p2p: not wanting to close of not being able to serve them.
 713 2012-08-05 18:03:49 <gmaxwell> sipa: in any case, we shouldn't foster a dependency on "info services" for diagnostics and troubleshooting; so being able to do txn lookup still matters even if not every node needs to have that enabled.
 714 2012-08-05 18:05:40 paul0 has joined
 715 2012-08-05 18:08:15 <sipa> it seems to me that not allowing tx lookup from disk was a conscious decision; satoshi probably called it client mode, which is probably somewhat different from what ultraprune will be, but he did think of it as important to support
 716 2012-08-05 18:08:42 Gladamas_ has quit (Ping timeout: 240 seconds)
 717 2012-08-05 18:09:07 <sipa> i have one e-mail from satoshi, where i suggested using the ctxindex for checking spentness of each separate output, and he warned not to use it because it was not possible in client mode
 718 2012-08-05 18:15:00 OneFixt_ has joined
 719 2012-08-05 18:15:01 <jgarzik> locally, there is definite value in rescanning old transactions for wallet.  I suppose you don't need a txindex for that, just blocks.
 720 2012-08-05 18:15:18 aq83 has quit (Read error: Connection reset by peer)
 721 2012-08-05 18:15:26 <sipa> indeed
 722 2012-08-05 18:15:36 Jezzz_ has joined
 723 2012-08-05 18:15:42 aq83 has joined
 724 2012-08-05 18:16:21 Jezzz_ is now known as Guest77578
 725 2012-08-05 18:18:27 <amiller> we can't afford to lose work, if you switch to a fork there has to be a way of eating up the work content of that fork
 726 2012-08-05 18:18:34 OneFixt has quit (Ping timeout: 246 seconds)
 727 2012-08-05 18:19:12 OneFixt_ is now known as OneFixt
 728 2012-08-05 18:22:40 toffoo has joined
 729 2012-08-05 18:29:42 janfrech has quit (Ping timeout: 272 seconds)
 730 2012-08-05 18:30:35 janfrech has joined
 731 2012-08-05 18:38:53 PhantomSpark has joined
 732 2012-08-05 18:39:20 brwyatt is now known as Away!~brwyatt@brwyatt.net|brwyatt
 733 2012-08-05 18:43:59 minimoose has joined
 734 2012-08-05 18:47:06 <luke-jr> amiller: who can't? why not?
 735 2012-08-05 18:47:36 <sipa> sure we can, we even do
 736 2012-08-05 18:47:49 <sipa> but i may agree with amiller that it'd be nicer if we didn't have to
 737 2012-08-05 18:48:08 <luke-jr> sipa: I think in theory, if we didn't have to lose work, we wouldn't need the blockchain at all. :p
 738 2012-08-05 18:48:30 <sipa> luke-jr: it would be a blockDAG instead of a blockchain
 739 2012-08-05 18:48:56 <sipa> with only one 'active' path through it, but the work of the sidepaths is included in the work calculation
 740 2012-08-05 18:49:11 <luke-jr> hmm
 741 2012-08-05 18:49:34 <luke-jr> I suppose that makes sense
 742 2012-08-05 18:49:35 <sipa> so there's no merging of data when joining two chains, only the PoW gets added
 743 2012-08-05 18:50:50 <sipa> amiller recently said if difficulty calculation was just based on trying to keep a fixed percentage of the work in the side-chains, we wouldn't need timestamps
 744 2012-08-05 18:53:12 <luke-jr> that doesn't make sense to me.
 745 2012-08-05 18:53:17 <amiller> i just figured it out
 746 2012-08-05 18:53:19 <amiller> how we can save all our work
 747 2012-08-05 18:53:25 <amiller> we'll need another merkle tree.
 748 2012-08-05 18:53:49 graham1 has joined
 749 2012-08-05 18:53:49 <amiller> whenever you switch to a fork, you accumulate all that fork's work
 750 2012-08-05 18:53:56 <amiller> proofs of work should be stored in a kind of skip list
 751 2012-08-05 18:54:14 <amiller> so that if you want to evaluate the total work content of a chain (including the forks it ate) you can get a gradually better estimate
 752 2012-08-05 18:54:21 <amiller> starting with highest value hash and working down
 753 2012-08-05 18:55:05 <amiller> so there is one data structure for the work content of your block chain, plus a data structure for the total work content of your chain plus all the forks you ate
 754 2012-08-05 18:55:36 <amiller> the gradually better estimate is important so that someone with less work can't fool you into evaluating a bajillion low-value blocks if the total work content isn't actually there
 755 2012-08-05 18:56:00 lukas has quit (Ping timeout: 246 seconds)
 756 2012-08-05 18:56:04 <amiller> it's also important that if you adjust the difficulty so that the work content of your actual chain converges to half the total work content you're aware of
 757 2012-08-05 18:56:27 <amiller> if someone sends you a chain that seems like it might be made by a powerful person but it's a long time back so you can't actually fork to it,
 758 2012-08-05 18:56:35 <amiller> you gobble up all its novel work
 759 2012-08-05 18:56:46 weather has joined
 760 2012-08-05 18:56:46 <amiller> and increase your difficulty
 761 2012-08-05 18:57:19 <amiller> in this way we never waste work, and eventually our actual fork will be larger than the sub-33%
 762 2012-08-05 18:57:47 <sipa> or in short: whenever you see a fork, you try to merge the branches again, and you're allowed to steal the work of the non-best branch
 763 2012-08-05 18:58:11 <amiller> that's right
 764 2012-08-05 18:58:23 <amiller> you steal the work, but you specifically put it in the 'not my chain' set
 765 2012-08-05 18:58:29 <amiller> which means you need to increase your difficulty
 766 2012-08-05 18:59:06 minimoose has quit (Quit: minimoose)
 767 2012-08-05 18:59:24 <sipa> s/merge/join/, i guess; there is no merging except creating a block that has two 'parents'
 768 2012-08-05 18:59:38 <sipa> though one is the real parent, and the other is the stepparent ;)
 769 2012-08-05 19:00:20 <amiller> yeah if you place someone's fork in the not-my-chain set, you also have to commit all its transactions
 770 2012-08-05 19:00:33 <sipa> hmm, why?
 771 2012-08-05 19:00:36 weather is now known as BeTep
 772 2012-08-05 19:00:42 <amiller> er not all its transactions
 773 2012-08-05 19:00:46 <amiller> i mean all the nonconflicting ones you can
 774 2012-08-05 19:00:47 <amiller> like you said
 775 2012-08-05 19:01:06 <sipa> is that necessary?
 776 2012-08-05 19:01:10 <amiller> no
 777 2012-08-05 19:01:13 <amiller> it's a nice thing to do though
 778 2012-08-05 19:01:16 TD has joined
 779 2012-08-05 19:01:19 <sipa> (i'm sure it would be better to do, though)
 780 2012-08-05 19:01:27 <sipa> but verifying that would be hard, maybe?
 781 2012-08-05 19:01:35 <amiller> yeah probably
 782 2012-08-05 19:01:39 <amiller> so skip that part heh
 783 2012-08-05 19:01:53 <amiller> if they truly don't conflict, someone could always just place them down later anyway
 784 2012-08-05 19:01:55 <amiller> so it's unnecessary
 785 2012-08-05 19:02:16 <amiller> it's fucking amazing if this works, it would be called a self-stabilizing system
 786 2012-08-05 19:02:19 <sipa> yeah, you'd move the transactions from the lost chain to your mempool where posible
 787 2012-08-05 19:02:57 <sipa> but i was asking because yesterday you said that you didn't even need to validate the stale branch, only its PoW was needed, and that sounded very neat
 788 2012-08-05 19:03:47 <amiller> you need to validate that the work has a valid connection to something in your history
 789 2012-08-05 19:03:55 <sipa> sure, sure
 790 2012-08-05 19:03:59 <amiller> but basically you build skip lists from ever new hash to the largest hash you've ever seen
 791 2012-08-05 19:04:06 <amiller> and each largest hash also has a pointer backwards to the largest before that
 792 2012-08-05 19:04:15 <sipa> PoW validation, but nothing in the 'contents' of the chain (the tx information) needs to be validated
 793 2012-08-05 19:04:20 <amiller> therefore you can check that the work connects to the genesis block in log n
 794 2012-08-05 19:04:35 <sipa> i suppose you'd make this chain merkle-root data only
 795 2012-08-05 19:04:42 <amiller> it's a different kind of chain.
 796 2012-08-05 19:04:49 <sipa> and move the actual transaction data to a auxiliary chain of it
 797 2012-08-05 19:05:26 <amiller> you have to be able to move from each work to the largest previous hash and from that hash to the genesis block in log n total
 798 2012-08-05 19:05:27 <luke-jr> sipa: it might make sense to index the transactions in the rejected blocks, so users can see double spend attempts
 799 2012-08-05 19:05:50 <sipa> luke-jr: maybe, but it seems to me that's a separate implementation layer entirely
 800 2012-08-05 19:08:31 lukas has joined
 801 2012-08-05 19:08:34 RainbowDashh has quit (Quit: Computer has gone to sleep.)
 802 2012-08-05 19:09:33 ByronJoh1son is now known as ByronJohnson
 803 2012-08-05 19:11:41 B0g4r7 has quit (Ping timeout: 276 seconds)
 804 2012-08-05 19:11:46 B0g4r7__ has joined
 805 2012-08-05 19:14:26 mologie has quit (Read error: Connection reset by peer)
 806 2012-08-05 19:20:21 mologie has joined
 807 2012-08-05 19:25:25 d4de has quit (Ping timeout: 246 seconds)
 808 2012-08-05 19:29:59 toffoo has quit (Read error: Connection reset by peer)
 809 2012-08-05 19:33:20 toffoo has joined
 810 2012-08-05 19:35:34 rdponticelli has quit (Ping timeout: 272 seconds)
 811 2012-08-05 19:35:44 sipa has quit (Remote host closed the connection)
 812 2012-08-05 19:36:09 Lyspooner has joined
 813 2012-08-05 19:42:33 meelu has quit (Ping timeout: 250 seconds)
 814 2012-08-05 19:47:46 sipa1024 has joined
 815 2012-08-05 19:49:13 Guest77578 has quit (Excess Flood)
 816 2012-08-05 19:51:03 Guest64308 has joined
 817 2012-08-05 19:58:07 hexTech has quit (Remote host closed the connection)
 818 2012-08-05 19:58:14 sytse has quit (Quit: leaving)
 819 2012-08-05 19:58:15 t7 has joined
 820 2012-08-05 19:58:38 <t7> a bitcoin address is a public key hashed and hashed again ect, right?
 821 2012-08-05 19:58:54 <t7> can you get the original public key from an address?
 822 2012-08-05 19:58:59 sytse has joined
 823 2012-08-05 19:59:10 <t7> i guess not
 824 2012-08-05 20:00:05 <MC-Eeepc> you can try
 825 2012-08-05 20:00:40 <luke-jr> t7: when someone spends from it
 826 2012-08-05 20:01:11 <gmaxwell> t7: You can't get the public key from an address, if one has been used you can get it from the redeeming txn in the blockchain.
 827 2012-08-05 20:01:55 RainbowDashh has joined
 828 2012-08-05 20:05:30 mologie has quit (Read error: Connection reset by peer)
 829 2012-08-05 20:07:28 <sipa1024> t7: being able to recover a 256-bit entropy public key, from a 160-bit hash would require some pretty exotic math ;)
 830 2012-08-05 20:07:38 Cablesaurus has joined
 831 2012-08-05 20:07:53 sipa1024 is now known as sipa
 832 2012-08-05 20:08:27 <t7> but there might be 2 public keys with the same bitcoin address
 833 2012-08-05 20:08:27 <t7> or more
 834 2012-08-05 20:09:03 <luke-jr> t7: and the sun might explode and destroy the Earth entirely
 835 2012-08-05 20:09:24 <luke-jr> (that's a lot more likely btw)
 836 2012-08-05 20:10:39 <sipa> t7: there is at least one address that has at least 2^96 public keys associated with it :)
 837 2012-08-05 20:10:41 <t7> why is it hashed with sha and rip160 or whatever it is?
 838 2012-08-05 20:10:54 <sipa> i suppose satoshi liked those
 839 2012-08-05 20:11:06 <sipa> sha256 and ripemd160
 840 2012-08-05 20:12:03 <t7> yeah but why both
 841 2012-08-05 20:12:09 <t7> assuming sha256 is secure
 842 2012-08-05 20:12:19 <luke-jr> t7: if one breaks, the other keeps it mostly secure
 843 2012-08-05 20:12:24 mologie has joined
 844 2012-08-05 20:12:30 <luke-jr> I presume
 845 2012-08-05 20:12:37 <luke-jr> or maybe the RIPEMD was just to make it shorter
 846 2012-08-05 20:12:56 <t7> ah makes sense
 847 2012-08-05 20:12:59 <luke-jr> [20:05:46] <sipa> i suppose satoshi liked those <-- most probable real motive tho
 848 2012-08-05 20:13:57 <sipa> but a collision in either means a collision in the combination
 849 2012-08-05 20:16:43 <gmaxwell> sipa: sure, but it doesn't follow that it's just as easy to get a collision either way— if you assume you don't know the input.
 850 2012-08-05 20:16:58 OneFixt has quit (Read error: Connection reset by peer)
 851 2012-08-05 20:17:15 <gmaxwell> e.g. you know only the address. You can freely collide SHA256. Give me an address collision.
 852 2012-08-05 20:18:04 <sipa> well, that's a preimage attack and not a collision attack you're asking for :)
 853 2012-08-05 20:18:16 <sipa> but sure, in our case, hardly an issue
 854 2012-08-05 20:18:40 <gmaxwell> ::nods::
 855 2012-08-05 20:21:10 OneFixt has joined
 856 2012-08-05 20:21:10 mologie has quit (Ping timeout: 272 seconds)
 857 2012-08-05 20:22:20 mologie has joined
 858 2012-08-05 20:30:02 BTCTrader has quit (Quit: BTCTrader)
 859 2012-08-05 20:30:23 PK has quit ()
 860 2012-08-05 20:30:43 Lyspooner has quit (Quit: ChatZilla 0.9.88.2 [Firefox 3.6.28/20120306064154])
 861 2012-08-05 20:32:28 Maged has joined
 862 2012-08-05 20:34:25 BTCTrader has joined
 863 2012-08-05 20:42:21 <BlueMatt> TD: you dont happen to know of a decen java json lib that has a maven repo?
 864 2012-08-05 20:42:22 dlb76 has joined
 865 2012-08-05 20:42:33 <TD> not off hand, sorry
 866 2012-08-05 20:42:36 <BlueMatt> at least one that can trivially iterate through a json array
 867 2012-08-05 20:42:56 <BlueMatt> darn...would be it be terrible to pull a lib into the bitcoinj repo?
 868 2012-08-05 20:43:00 <BlueMatt> (Im assuming yes...)
 869 2012-08-05 20:43:02 <TD> java.util.regex? :)
 870 2012-08-05 20:43:10 <TD> no, i don't really care about that. i used to have all the jars checked in
 871 2012-08-05 20:43:11 <BlueMatt> yea, thats probably what Ill end up doing
 872 2012-08-05 20:43:50 <BlueMatt> well Ill whip up a regex/custom parser and see if its too unreasonable
 873 2012-08-05 20:44:07 <BlueMatt> TD: btw, full script execution working, passes most tests ive thrown at it, but its sloooowwwww
 874 2012-08-05 20:44:15 <BlueMatt> well, the sig checking is
 875 2012-08-05 20:44:32 <TD> awesome!
 876 2012-08-05 20:44:35 <TD> any idea where the time goes?
 877 2012-08-05 20:44:52 D34TH has quit (Read error: Connection reset by peer)
 878 2012-08-05 20:44:56 <BlueMatt> its almost all in BigInteger.modInverse
 879 2012-08-05 20:45:00 <BlueMatt> the rest is in BigInteger
 880 2012-08-05 20:45:15 <TD> which jdk are you using?
 881 2012-08-05 20:45:30 <BlueMatt> openjdk 6, but sun jdk 7 didnt help any
 882 2012-08-05 20:45:37 <TD> weird that it's slower than openssl
 883 2012-08-05 20:45:41 <BlueMatt> (in fact, both openjdk 7 and sun 7 were marginally slower)
 884 2012-08-05 20:46:03 <BlueMatt> I may have made some obvious mistake, but I dont see anything
 885 2012-08-05 20:46:14 <BlueMatt> (180 sigs/sec peak just seems to unreasonable)
 886 2012-08-05 20:46:16 <sipa> t7: you really expect a pure-Java implementation to be as fast as OpenSSL's?
 887 2012-08-05 20:46:54 <copumpkin> I'd be curious to see how GMP compares to OpenSSL
 888 2012-08-05 20:47:13 p0s has joined
 889 2012-08-05 20:47:34 <t7> wut
 890 2012-08-05 20:47:41 <sipa> eh
 891 2012-08-05 20:47:47 <sipa> TD: you really expect a pure-Java implementation to be as fast as OpenSSL's?
 892 2012-08-05 20:47:57 <TD> hmm
 893 2012-08-05 20:48:34 <TD> BlueMatt: well it's 3 msec per input according to the scalability wiki page i wrote. so that is about 1.85 times slower than i'd hope for
 894 2012-08-05 20:48:44 <TD> sipa: it all gets compiled down to native code anyway, or should do
 895 2012-08-05 20:49:01 <TD> hotspot should end up with code roughly as optimal as gcc does or better, given enough time. apparently not in this case. it may be an algorithmic deficiency
 896 2012-08-05 20:49:04 <jgarzik> poolsz: 1984
 897 2012-08-05 20:49:06 <jgarzik> Orwellian!
 898 2012-08-05 20:49:20 <copumpkin> it's just in honor of my birth year
 899 2012-08-05 20:50:14 <TD> BlueMatt: how long does a sig check take isolated? 6msec?
 900 2012-08-05 20:51:56 <sipa> i suppose it could also just be an implementation problem; there are several possible implementation for the EC multiplication ladder, afaik
 901 2012-08-05 20:51:59 d4de has joined
 902 2012-08-05 20:51:59 d4de has quit (Changing host)
 903 2012-08-05 20:51:59 d4de has joined
 904 2012-08-05 20:52:20 <TD> bouncy castle is not particularly tightly optimized, afaik
 905 2012-08-05 20:52:32 <TD> it wouldn't surprise me if it's missing some tricks openssl uses to speed things up
 906 2012-08-05 20:52:49 <sipa> also, openssl tries quite hard to avoid dynamic allocation
 907 2012-08-05 20:53:16 <TD> i'd be surprised if it loses much to gc time but it's possible
 908 2012-08-05 20:53:22 <sipa> i never checked bouncycastle, but maybe it requires creation of objects during execution?
 909 2012-08-05 20:54:08 <sipa> aren't bigintegers immutable even?
 910 2012-08-05 20:54:15 guruvan has joined
 911 2012-08-05 20:54:22 <BlueMatt> TD: havent checked, the 180 number is during block download
 912 2012-08-05 20:54:36 <sipa> so every BigInteger operation requires the creation of a new object
 913 2012-08-05 20:54:45 <BlueMatt> sipa: yea, there are a few bigInteger copies
 914 2012-08-05 20:54:46 guruvan_ has joined
 915 2012-08-05 20:54:51 <TD> sipa: yeah it's not great but java is designed to handle it efficiently if they die young
 916 2012-08-05 20:54:55 <BlueMatt> but during BigInteger.N a Immutable version is created
 917 2012-08-05 20:54:55 <TD> it's still better to not allocate at all of course
 918 2012-08-05 20:55:04 <TD> we'd need more profiling to see
 919 2012-08-05 20:55:13 <TD> you can run the jvm with some flags to make it spit out gc stats
 920 2012-08-05 20:55:18 <BlueMatt> and since most of the time is in BigInteger.modInverse, it cant be too huge a %
 921 2012-08-05 20:55:22 <sipa> TD: sure, i expect it to be very optimized, but allocation during a tight loop is still different from no allocation
 922 2012-08-05 20:55:36 <sipa> hmm, ok
 923 2012-08-05 20:55:54 lukas has quit (Ping timeout: 246 seconds)
 924 2012-08-05 20:55:57 <sipa> anyway, i'll shut up because all this is speculation
 925 2012-08-05 20:56:05 <BlueMatt> that said, I cant say I have much trust in my ability to properly read jvisualvm output, so you may be right still
 926 2012-08-05 20:56:41 <TD> jvisualvm lets you get a graph of GC stats
 927 2012-08-05 20:56:49 <BlueMatt> on a tangentially related note, does anyone know if there are any !SIGHASH_ALL txes in the chain?
 928 2012-08-05 20:57:11 <TD> sipa: the GC is optimized for objects that die young. that said, i do not have blind faith in it. java has all kinds of weird performance problems
 929 2012-08-05 20:57:14 p0s has quit (Remote host closed the connection)
 930 2012-08-05 20:57:17 <BlueMatt> TD: I didnt spend much time with it, I just wanted to make sure I didnt do anything too stupid
 931 2012-08-05 20:57:55 <TD> it sounds like it could be faster but those figures aren't wildly off
 932 2012-08-05 20:58:06 <TD> and yes i'd expect most time to be in modInverse
 933 2012-08-05 20:58:10 <TD> awesome work
 934 2012-08-05 20:58:20 <sipa> BlueMatt: how many sig checks does openssl do on the same hardware?
 935 2012-08-05 20:58:24 <sipa> per s
 936 2012-08-05 20:58:37 <TD> just to reiterate, my plan is to fix up the last few bugs/regressions in the current main code, branch for 0.6 and then merge your work as the first priority
 937 2012-08-05 20:58:38 <BlueMatt> I havnt checked
 938 2012-08-05 20:58:43 <BlueMatt> its an i7 sandy bridge laptop
 939 2012-08-05 20:59:13 <BlueMatt> TD: sounds good, though I have a feeling there will be a few stupid mistakes to catch first ;)
 940 2012-08-05 20:59:29 <TD> well, it'll take a while because of the code review overhead. but we'll get it all in eventually
 941 2012-08-05 20:59:39 <TD> i might prioritize the bloom filtering as it's more important for the existing useres
 942 2012-08-05 21:00:20 <BlueMatt> hmm...yea, Id like to get some discussion on the ml about how exactly to match the filter first
 943 2012-08-05 21:00:35 <BlueMatt> I mentioned in I believe, the latest mail on that thread, but no responses :(
 944 2012-08-05 21:00:43 <TD> yes, sorry
 945 2012-08-05 21:00:54 <TD> i am still on vacation technically, but at my parents :)
 946 2012-08-05 21:00:58 <TD> not doing much at the moment though
 947 2012-08-05 21:01:09 <sipa> BlueMatt: 3000-5000/s maybe?
 948 2012-08-05 21:01:11 <TD> need to recharge my batteries before diving back into bitcoin stuff
 949 2012-08-05 21:01:26 <TD> sipa: that'd be a huge number compared to what we came up with befoe.
 950 2012-08-05 21:01:26 <BlueMatt> fair enough, I didnt expect responses from the vacation-goers
 951 2012-08-05 21:01:45 <BlueMatt> hmm...let me compile a bitcoind and see what I get
 952 2012-08-05 21:02:03 <BlueMatt> or does someone have a sig-checker loop written somewhere?
 953 2012-08-05 21:02:34 <BlueMatt> (oh, and the 180/sec number is threaded already too :( )
 954 2012-08-05 21:03:45 Joric has joined
 955 2012-08-05 21:03:45 Joric has quit (Changing host)
 956 2012-08-05 21:03:45 Joric has joined
 957 2012-08-05 21:05:02 <sipa> TD: my laptop does 2000 sigchecks/s, iirc
 958 2012-08-05 21:05:08 <sipa> secp256k1 openssl
 959 2012-08-05 21:05:12 <TD> hmm ok
 960 2012-08-05 21:05:18 <TD> then we need to update the scalability page
 961 2012-08-05 21:05:25 <TD> i don't recall where the 3msec per check came from
 962 2012-08-05 21:05:29 Zarutian has joined
 963 2012-08-05 21:05:41 <BlueMatt> maybe it was full tx verif not just sigchecking?
 964 2012-08-05 21:07:26 <sipa> https://bitcointalk.org/index.php?topic=6430.msg100334#msg100334
 965 2012-08-05 21:07:56 <sipa> that was on some sempron cpu iirc, 650us = 1500 sigchecks/s
 966 2012-08-05 21:08:04 <gmaxwell> sipa: 2000 sc/s on one core or all?
 967 2012-08-05 21:08:09 <sipa> gmaxwell: one core
 968 2012-08-05 21:08:22 <gmaxwell> Right.
 969 2012-08-05 21:08:24 <gmaxwell> OKAY.
 970 2012-08-05 21:08:26 <sipa> can't remember i ever did a multithreaded benchmark
 971 2012-08-05 21:08:44 <TD> http://www-958.ibm.com/software/data/cognos/manyeyes/datasets/openssl-098e-public-key-performance-4/versions/1
 972 2012-08-05 21:08:57 <TD> i guess either those stats are wrong, or cpu tech improved a LOT in just a few years
 973 2012-08-05 21:09:06 <TD> or there's something else weird going on. openssl got more optimized maybe
 974 2012-08-05 21:09:24 <gmaxwell> Another point that has come up in other contexts: is that async RSA is apparently free on HT cpus, because it can run while the cpu is blocked on memory accesses in other threads.
 975 2012-08-05 21:09:29 forrestv has quit (Read error: Operation timed out)
 976 2012-08-05 21:09:36 <sipa> we are not using P-256, but K-256
 977 2012-08-05 21:09:53 <TD> oops, right
 978 2012-08-05 21:10:00 <TD> even so, can it make a 10x difference?
 979 2012-08-05 21:10:01 <sipa> it has very little bits set in some coefficients, so it may be faster because of that
 980 2012-08-05 21:10:10 <gmaxwell> Also, computers got faster since 2007.
 981 2012-08-05 21:10:21 <TD> well this is great news
 982 2012-08-05 21:10:27 <sipa> actually
 983 2012-08-05 21:10:33 <TD> er, not for java/bouncy castle obviously. which is getting smashed
 984 2012-08-05 21:10:54 <sipa> i'll run a blockchain import to the latest checkpoint with sig checking enabled
 985 2012-08-05 21:10:57 <TD> but great news for bitcoin scalability
 986 2012-08-05 21:11:28 <sipa> if we assume one sigcheck per input, we know how many there are
 987 2012-08-05 21:11:41 forrestv has joined
 988 2012-08-05 21:11:41 forrestv has quit (Changing host)
 989 2012-08-05 21:11:41 forrestv has joined
 990 2012-08-05 21:12:05 lukas has joined
 991 2012-08-05 21:12:14 TD[gone] has quit (Ping timeout: 240 seconds)
 992 2012-08-05 21:12:18 <TD> sipa: you could wrap the checking code with a bit of timing code too
 993 2012-08-05 21:13:04 <sipa> sure, but either you must do a lot of them in a loop to get some accuracy, or you lose performance because of the timing
 994 2012-08-05 21:13:15 brwyatt is now known as brwyatt|Away
 995 2012-08-05 21:13:16 <TD> reading the current time is super cheap
 996 2012-08-05 21:13:17 bitllc has quit (Remote host closed the connection)
 997 2012-08-05 21:13:19 <sipa> although maybe a close-to-one-msec that doesn't matter too much anymore
 998 2012-08-05 21:13:23 <TD> it shouldn't make a huge difference
 999 2012-08-05 21:13:30 <TD> rdtsc is a single instruction.....
1000 2012-08-05 21:13:38 <gmaxwell> sipa: if you time with the TSC it's free. But you need to pin to a cpu to get accurate numbers that way.
1001 2012-08-05 21:14:18 <Ferroh>     def is_valid(self,addr):
1002 2012-08-05 21:14:18 <Ferroh>         ADDRESS_RE = re.compile('[1-9A-HJ-NP-Za-km-z]{26,}\\Z')
1003 2012-08-05 21:14:19 <Ferroh>         if not ADDRESS_RE.match(addr): return False
1004 2012-08-05 21:14:24 <Ferroh> Does that ever return false on a valid key?
1005 2012-08-05 21:14:38 <sipa> it shouldn't
1006 2012-08-05 21:14:44 <Ferroh> ok :)
1007 2012-08-05 21:14:56 <gmaxwell> Ferroh: erp, but thats not much validation however!
1008 2012-08-05 21:14:57 bitllc has joined
1009 2012-08-05 21:14:58 <sipa> gmaxwell: yes, i know, i used it in DES timing attack project once
1010 2012-08-05 21:15:19 <Ferroh> gmaxwell, I know, it's just a perf optimization
1011 2012-08-05 21:15:38 <gmaxwell> Regular expresion... perf optimization... man. high level language people scare me.
1012 2012-08-05 21:15:55 <copumpkin> lol
1013 2012-08-05 21:16:05 <TD> haha
1014 2012-08-05 21:16:33 <Ferroh> lol, well, I can convert the regex to C code that does the same thing except without the generality one day...
1015 2012-08-05 21:16:34 <TD> i wrote a server at work that generates random javascript challenges. performance was horrid, maybe 100 generates per second, way lower than it should have been
1016 2012-08-05 21:16:44 <TD> took an RE2::GlobalMatch out of the serving path and it went to more like 1000 generates/sec
1017 2012-08-05 21:16:46 <Ferroh> but I probably wont ever do that because the regex match is actually fast compared to everything else :P
1018 2012-08-05 21:17:10 <copumpkin> I write my state machines by hand
1019 2012-08-05 21:17:11 <copumpkin> in haskell
1020 2012-08-05 21:17:19 forrestv has quit (Ping timeout: 248 seconds)
1021 2012-08-05 21:17:29 <TD> i use a custom ASIC from butterfly labs for processing my regular expressions
1022 2012-08-05 21:17:34 <gmaxwell> then again, I'd probably write something that looked like bw=(((((bw&7)*9)&(63-(bw&8)))+2+12*((bw&8)!=0))>>4); and you'd be scared of me.
1023 2012-08-05 21:17:35 <Ferroh> lol
1024 2012-08-05 21:17:37 <sipa> TD: haha
1025 2012-08-05 21:17:47 <Ferroh> what language is that
1026 2012-08-05 21:17:53 <gmaxwell> C.
1027 2012-08-05 21:18:00 <Ferroh> I dont know what that does.
1028 2012-08-05 21:18:01 <sipa> it can also be Java
1029 2012-08-05 21:18:14 <Ferroh> oh, those are bitwise ands
1030 2012-08-05 21:18:24 <Ferroh> I guess I can figure it out... but im not going to :)
1031 2012-08-05 21:18:27 D34TH has joined
1032 2012-08-05 21:18:31 bitllc has quit (Remote host closed the connection)
1033 2012-08-05 21:18:32 <gmaxwell> Ferroh: implements some great big crazy table conversion.
1034 2012-08-05 21:19:22 <BlueMatt> Im getting nearly exactly 10x the script executions per second as in bitcoinj (minus block overhead)
1035 2012-08-05 21:20:57 <Ferroh> buying 10x as much compute on the cloud can be a lot cheaper than writing C code instead of Java though
1036 2012-08-05 21:21:03 <Ferroh> it entirely depends on what you are doing
1037 2012-08-05 21:22:13 <gmaxwell> Sure sure. I use python a fair bit for one time use programs, but I never bother with any performance optimization at all.
1038 2012-08-05 21:22:42 <sipa> i often write something in perl first, and when it seems to slow to do the job, switch to C :)
1039 2012-08-05 21:22:43 <Ferroh> you can just toss some C code into your python if you want some quick and dirty fast loop somewhere
1040 2012-08-05 21:22:52 <gmaxwell> I thought for a while that I'd be able to do all my one-time-use programming that way, but then I realized that I was seeing 2000x performance differences between unoptimized python and the C I'd write. :(
1041 2012-08-05 21:23:45 <gmaxwell> "My time is more valuable than the computer's I'll just go get coffee while it crunches." "Oh. Hm. It's not done, how long will this take? oh.. 600 more hours...
1042 2012-08-05 21:23:48 <gmaxwell> "
1043 2012-08-05 21:24:00 <Ferroh> e.g., python code: bw = inline("(((((bw&7)*9)&(63-(bw&8)))+2+12*((bw&8)!=0))>>4)")
1044 2012-08-05 21:24:22 datagutt has quit (Quit: Computer has gone to sleep.)
1045 2012-08-05 21:24:25 TD[gone] has joined
1046 2012-08-05 21:24:28 <Ferroh> gmaxwell, but on the cloud that would be faster than C code on your computer would do :)
1047 2012-08-05 21:24:28 <gmaxwell> Ferroh: doing something like that is unhelpful, the whole inner loop has to be in C.
1048 2012-08-05 21:24:37 <Ferroh> gmaxwell, you can do that too
1049 2012-08-05 21:24:42 <gmaxwell> Ferroh: a 2000x speed difference? not likely.
1050 2012-08-05 21:25:13 <gmaxwell> "The cloud" is not magic pixie dust.
1051 2012-08-05 21:25:14 <Ferroh> well, I generally expect python to be about 100x slower than C
1052 2012-08-05 21:25:19 <Ferroh> not 2000x
1053 2012-08-05 21:25:32 <copumpkin> those numbers are completely meaningless :P
1054 2012-08-05 21:25:34 <Ferroh> if you really have a 2000x difference then some numpy or an inline C code loop will save you
1055 2012-08-05 21:25:36 <gmaxwell> 100x is more typical, yes. But vs SIMD numerical code... 2000x is not at all hard to achieve.
1056 2012-08-05 21:25:45 <TD> BlueMatt: ok. that's a much bigger disparity than i'd expect/hope for then
1057 2012-08-05 21:25:49 <TD> BlueMatt: deserving of further investigation
1058 2012-08-05 21:25:58 <BlueMatt> on 1 core - java 100 script executions/sec, on c++: ~1000 :(
1059 2012-08-05 21:25:58 <sipa> gmaxwell: what about a cloud with a DHT?
1060 2012-08-05 21:26:04 <BlueMatt> yea...thats pretty bad
1061 2012-08-05 21:26:49 <BlueMatt> well, Ill push code after I look into one more thing
1062 2012-08-05 21:27:43 <gmaxwell> Ferroh: also, I have more cpu power than you can reasonably get on the cloud already. (I have a cluster with 40x opteron 8356s. (160 cores)). But yea, my expirence doesn't always generalize.
1063 2012-08-05 21:28:09 <TD> BlueMatt: that doesn't sound like the kind of delta explainable purely by language. i expect some cost from java but 10x seems too much.
1064 2012-08-05 21:28:17 <Ferroh> gmaxwell, http://heim.ifi.uio.no/~kent-and/software/Instant/doc/Instant.html
1065 2012-08-05 21:28:18 <TD> though it depends where you draw the line on what "java" meanas
1066 2012-08-05 21:28:31 <TD> eg, immutable BigInteger is a part of java and could be a part of the culprit
1067 2012-08-05 21:28:35 <BlueMatt> TD: absolutely, have to compare BigInteger to OpenSSL's BIGINT
1068 2012-08-05 21:28:35 <TD> guess we'll see with time
1069 2012-08-05 21:28:53 <Ferroh> if you have a lot of complicated stuff going on that is all really high frequency then maybe you cant use python,
1070 2012-08-05 21:29:03 <BlueMatt> and maybe see if openssl does something fancy that bouncycastle doesnt
1071 2012-08-05 21:29:13 <Ferroh> but inlining your one high frequency loop can still be a little easier in python, no?
1072 2012-08-05 21:29:27 <sipa> BlueMatt: you'd have to compare openssl with a bouncycastle written for a mutable-biginteger-library :)
1073 2012-08-05 21:29:39 <gmaxwell> Ferroh: and how do I make sure array is aligned there so I don't have to write all unaligned loads in the SIMD?
1074 2012-08-05 21:29:45 <Ferroh> you dont
1075 2012-08-05 21:29:54 <Ferroh> because you cant
1076 2012-08-05 21:29:54 <gmaxwell> right, so you lose 4x throughput right off the cuff.
1077 2012-08-05 21:30:02 <BlueMatt> sipa: or use the MutableBigInteger in java already (though its hidden, have to hack a bit to get it)
1078 2012-08-05 21:30:08 <BlueMatt> (obviously only for testing)
1079 2012-08-05 21:30:19 <Ferroh> well yeah, you're still going to be an order of magnitude slower than C code
1080 2012-08-05 21:30:24 <TD> BlueMatt: can always do a copy/paste and auto-refactor job
1081 2012-08-05 21:30:29 <Ferroh> that's better than 3 orders though :)
1082 2012-08-05 21:30:36 <gmaxwell> Ferroh: but thanks for that link— I wasn't aware of that package. That should be handy.
1083 2012-08-05 21:30:38 <BlueMatt> TD: yep
1084 2012-08-05 21:31:03 <t7> but JIT
1085 2012-08-05 21:31:19 <Ferroh> if you literally are talking about 600 hours of computation to do one thing, and it would be 15 mins in C, then maybe an extra hour of your time to code it in C makes sense
1086 2012-08-05 21:31:34 <Ferroh> I've never been in that situation, but I know that happens for some people.
1087 2012-08-05 21:31:37 nrb has joined
1088 2012-08-05 21:31:45 <gmaxwell> Ferroh: right, I do a lot of stuff that takes that form. (Optimization problems)
1089 2012-08-05 21:31:47 nrb is now known as nickrb-
1090 2012-08-05 21:31:56 nickrb has quit (Ping timeout: 244 seconds)
1091 2012-08-05 21:32:01 nickrb- is now known as nickrb
1092 2012-08-05 21:32:07 <t7> is openssl slow?
1093 2012-08-05 21:32:15 <gmaxwell> Define slow?
1094 2012-08-05 21:32:21 <sipa> not optimally efficient for secp256k1
1095 2012-08-05 21:32:29 <sipa> but how much it's off... no idea
1096 2012-08-05 21:32:48 <gmaxwell> OpenSSL in general has mixed performance; usually faster than a dumb implementation, seldom as fast as code someone wrote to do one thing very quickly.
1097 2012-08-05 21:33:08 <t7> slower than some other peer reviewed crypto lib
1098 2012-08-05 21:33:17 <TD> there aren't many
1099 2012-08-05 21:33:31 <Ferroh> [Insert package name here] in general has mixed performance; usually faster than a dumb implementation, seldom as fast as code someone wrote to do one thing very quickly.
1100 2012-08-05 21:33:36 <sipa> NaCl has very good performance, but it only includes a few very specific algorithm
1101 2012-08-05 21:34:04 <Ferroh> just saying :P
1102 2012-08-05 21:34:14 TD[gone] has quit (Ping timeout: 240 seconds)
1103 2012-08-05 21:34:44 <sipa> what are you comparing against? if you want something that can do as much as openssl can, the options are very limited
1104 2012-08-05 21:34:45 <gmaxwell> Ferroh: I don't agree... there are a lot of things which either do everything dumbly and slowly; openssl is not one of those things.
1105 2012-08-05 21:35:02 <Ferroh> gmaxwell, ok fair enough
1106 2012-08-05 21:35:15 <sipa> if you want something that is good at ecdsa verification for secp256k1, i'm sure something faster than openssl exists somewhere
1107 2012-08-05 21:35:25 <gmaxwell> It probably has the fastest ECDSA implementation you're likely to find that works on all curves.
1108 2012-08-05 21:35:56 <gmaxwell> sipa: I wasn't able to find existing code for something secp256k1 specialized. Though I only looked moderately hard.
1109 2012-08-05 21:36:15 <BlueMatt> well then its time to write one for bitcoinj
1110 2012-08-05 21:36:53 <TD> hal posted some code that was optimized for that curve on the forums a long time ago
1111 2012-08-05 21:36:59 <TD> using the trick that's koblitz curve specific
1112 2012-08-05 21:37:04 <TD> iirc it didn't seem like a huge win, in the end
1113 2012-08-05 21:37:42 <sipa> ok, importing 188528 blocks into an entirely RAM-backed ultraprune: 5m40s
1114 2012-08-05 21:37:46 <gmaxwell> I believe there are some new instructions in more recent intel CPUs for the field arithmetic.
1115 2012-08-05 21:37:58 <TD> sipa: nice!
1116 2012-08-05 21:38:02 <sipa> (without sigchecks)
1117 2012-08-05 21:38:13 TD[gone] has joined
1118 2012-08-05 21:38:17 <TD> sipa:  it was only 1m more with bdb on disk?
1119 2012-08-05 21:38:46 <sipa> previous test i did was for 185k blocks, and those blocks are quite expensive
1120 2012-08-05 21:39:05 <sipa> but +- 1m difference between bdb disk-backed and tmpfs-backed
1121 2012-08-05 21:39:26 <sipa> and +- 1m different between bdb tmpfs-backed and std::map-backed
1122 2012-08-05 21:39:38 <TD> seems like leveldb may not make much difference with such figures
1123 2012-08-05 21:39:59 <sipa> this is a system with 8GB of RAM those, and there is certainly a lot of caching i take advantage off
1124 2012-08-05 21:40:18 <sipa> and even with performance improvements, i'd like to get rid of bdb
1125 2012-08-05 21:40:34 <sipa> (though obviously no performance compromises)
1126 2012-08-05 21:40:41 <TD> huh
1127 2012-08-05 21:40:44 <sipa> -without
1128 2012-08-05 21:40:54 <TD> when you say "bdb disk backed", the whole thing is probably fitting in kernel cache, no?
1129 2012-08-05 21:41:17 <sipa> i suppose, but at least it is doing fdatasync calls
1130 2012-08-05 21:41:21 <TD> yeah
1131 2012-08-05 21:43:38 bobke_ is now known as bobke
1132 2012-08-05 21:47:05 forrestv has joined
1133 2012-08-05 21:47:05 forrestv has quit (Changing host)
1134 2012-08-05 21:47:05 forrestv has joined
1135 2012-08-05 21:48:20 minimoose has joined
1136 2012-08-05 21:50:41 <sipa> TD: also, i have one optimization (bulk processing of several small blocks at once) that has a very significant impact (at least on bdb), which is not representative of non-IBD validation performance
1137 2012-08-05 21:51:01 <TD> ok
1138 2012-08-05 21:51:03 <sipa> then again, the same is true for disabling sig checks before the last checkpoint
1139 2012-08-05 21:51:27 TD[gone] has quit (Ping timeout: 248 seconds)
1140 2012-08-05 21:51:53 <sipa> now benchmarking the same thing with sig checks everywhere
1141 2012-08-05 21:52:00 <sipa> i expect it to take an hour
1142 2012-08-05 21:53:18 rdponticelli has joined
1143 2012-08-05 21:54:44 <BlueMatt> sipa: mind throwing in a total sigcheck counter during that test for me?
1144 2012-08-05 21:54:57 TD[gone] has joined
1145 2012-08-05 21:57:35 <BlueMatt> nevermind, Ill throw it in one and see what I get
1146 2012-08-05 21:57:39 <sipa> BlueMatt: did that beforehand already :)
1147 2012-08-05 22:00:04 <BlueMatt> ah, whats the count?
1148 2012-08-05 22:00:30 <sipa> 0 obviously :p
1149 2012-08-05 22:00:44 <sipa> (previous run was with sigchecking disabled)
1150 2012-08-05 22:00:49 <BlueMatt> ah, sorry
1151 2012-08-05 22:01:00 <sipa> but it's counting now
1152 2012-08-05 22:01:11 <sipa> already at 140k blocks
1153 2012-08-05 22:01:23 RazielZ has quit (Ping timeout: 244 seconds)
1154 2012-08-05 22:12:22 DaQatz has quit (Read error: Connection reset by peer)
1155 2012-08-05 22:14:23 _flow_ has quit (Ping timeout: 248 seconds)
1156 2012-08-05 22:17:55 Marf has quit (Ping timeout: 244 seconds)
1157 2012-08-05 22:19:58 LuaKT has quit ()
1158 2012-08-05 22:21:38 bitllc has joined
1159 2012-08-05 22:29:07 DaQatz has joined
1160 2012-08-05 22:29:51 slush has quit (Ping timeout: 248 seconds)
1161 2012-08-05 22:34:59 slush has joined
1162 2012-08-05 22:37:58 imsaguy has quit (Ping timeout: 272 seconds)
1163 2012-08-05 22:39:34 <jgarzik> does leveldb have dump & fsck?
1164 2012-08-05 22:43:01 Diablo-D3 has joined
1165 2012-08-05 22:44:47 ovidiusoft has quit (Ping timeout: 244 seconds)
1166 2012-08-05 22:48:12 nanotube is now known as fnoorp
1167 2012-08-05 22:48:29 copumpkin is now known as farooq
1168 2012-08-05 22:48:45 fnoorp is now known as nanotube
1169 2012-08-05 22:49:16 farooq is now known as copumpkin
1170 2012-08-05 22:49:58 bitllc has quit (Remote host closed the connection)
1171 2012-08-05 22:52:58 balrog has quit (Ping timeout: 246 seconds)
1172 2012-08-05 22:58:34 balrog has joined
1173 2012-08-05 23:00:24 cande has quit (Quit: Lämnar)
1174 2012-08-05 23:05:13 balrog has quit (Ping timeout: 246 seconds)
1175 2012-08-05 23:09:02 TD has quit (Quit: TD)
1176 2012-08-05 23:11:20 balrog has joined
1177 2012-08-05 23:17:19 Gladamas has joined
1178 2012-08-05 23:21:12 <sipa> real life performance difference for 188k blocks, with and without sigchecking enabled: 1735 sigchecks/s, on a single thread of a i7 2670QM, 2.2GHz
1179 2012-08-05 23:21:35 e0s_ has quit (Remote host closed the connection)
1180 2012-08-05 23:21:52 eoss has quit (Remote host closed the connection)
1181 2012-08-05 23:22:21 paraipan has quit (Quit: Saliendo)
1182 2012-08-05 23:22:21 <sipa> ;;bc.blocks
1183 2012-08-05 23:22:22 <gribble> Error: "bc.blocks" is not a valid command.
1184 2012-08-05 23:22:24 <sipa> ;;bc,blocks
1185 2012-08-05 23:22:25 <gribble> 192488
1186 2012-08-05 23:24:23 balrog has quit (Ping timeout: 264 seconds)
1187 2012-08-05 23:25:20 <sipa> then again, sigchecking takes 94% of all cpu time
1188 2012-08-05 23:26:07 <sipa> which, i suppose, makes it an interesting thing to try to optimize
1189 2012-08-05 23:27:24 <jgarzik> sipa: nice numbers in any case
1190 2012-08-05 23:27:41 * jgarzik needs to replace deepcopy and see what happens in pynode
1191 2012-08-05 23:27:41 xorred has joined
1192 2012-08-05 23:27:48 <xorred> so how do I import a wallet file into a wallet application
1193 2012-08-05 23:27:57 <xorred> it says "export" but no Import??????
1194 2012-08-05 23:28:13 <sipa> xorred: just replace wallet.dat
1195 2012-08-05 23:28:26 <sipa> multi-wallet support is planned, but not yet implemented
1196 2012-08-05 23:28:36 <xorred> yea right, what's the point of encrypting and storing btc in it then???
1197 2012-08-05 23:28:36 * jgarzik ponders adding a RAM wallet to pynode... must be loaded at each startup from external source, so that I may avoid having to implement all the encryption and storage crap :)
1198 2012-08-05 23:28:55 <sipa> xorred: >
1199 2012-08-05 23:28:57 <sipa> xorred: ?
1200 2012-08-05 23:29:16 <xorred> why do you have the export option at all
1201 2012-08-05 23:29:20 <xorred> if there is no import option?
1202 2012-08-05 23:29:30 <gmaxwell> xorred: To make backups.
1203 2012-08-05 23:29:36 <xorred> backups? for what
1204 2012-08-05 23:29:39 <xorred> if you can't import!
1205 2012-08-05 23:29:48 <xorred> what for?
1206 2012-08-05 23:29:52 <sipa> you can recover; it requires manual intervention
1207 2012-08-05 23:29:54 <gmaxwell> You use the backup you just drop the file in the appdata directory of a new install.
1208 2012-08-05 23:29:57 <xorred> what do I do that encrypted .dat
1209 2012-08-05 23:30:04 balrog has joined
1210 2012-08-05 23:30:10 <gmaxwell> You can use it while its encrypted.
1211 2012-08-05 23:30:14 <xorred> and why does it never ask me for the password on opening?
1212 2012-08-05 23:30:23 <gmaxwell> Because it only needs it to spend coins.
1213 2012-08-05 23:30:37 <sipa> only the private keys are encrypted, and it doesn't need them unless you're spending coins
1214 2012-08-05 23:30:50 <xorred> is it so hard to implement an import function
1215 2012-08-05 23:30:58 <xorred> regular users won't know what to do with a backup
1216 2012-08-05 23:31:13 <sipa> no, but we have other priorities now, and it's still beta :)
1217 2012-08-05 23:31:31 <copumpkin> we need a well funded bitcoin foundation
1218 2012-08-05 23:31:35 <copumpkin> nonprofit
1219 2012-08-05 23:31:35 <sipa> if you want to implement it, please do
1220 2012-08-05 23:33:09 <sipa> jgarzik: by the way, 1h35m31s to load the blockchain until 188k, with all signature checking enabled
1221 2012-08-05 23:33:33 <gmaxwell> sipa: need parallel sigchecking. :)
1222 2012-08-05 23:33:41 <sipa> 5m40s, with all signature checking disabled
1223 2012-08-05 23:33:43 <sipa> gmaxwell: ack
1224 2012-08-05 23:33:58 <sipa> anyway; bedtime
1225 2012-08-05 23:33:59 <sipa> cya
1226 2012-08-05 23:34:02 <gmaxwell> Goodnight!
1227 2012-08-05 23:34:11 <gmaxwell> (sipa is going to miss the mars rover landing!)
1228 2012-08-05 23:34:20 <sipa> unfortunately :)
1229 2012-08-05 23:34:32 xorred has left ()
1230 2012-08-05 23:34:33 <BlueMatt> oh, thats tonight?
1231 2012-08-05 23:34:44 <sipa> in 6 hours
1232 2012-08-05 23:34:58 <BlueMatt> oh, damn well Ill miss it too then
1233 2012-08-05 23:35:28 <sipa> 6h0m40s
1234 2012-08-05 23:35:34 <sipa> at that point, until landig
1235 2012-08-05 23:35:46 <phantomcircuit> i like how the vast majority of the world is totally and completely unaware that we're going to be putting shit on mars tonight
1236 2012-08-05 23:35:49 <phantomcircuit> how weird is that
1237 2012-08-05 23:36:04 <sipa> it's not like we've never put shit on mars :)
1238 2012-08-05 23:36:13 <BlueMatt> gmaxwell: re: parallel sigchecking, does anyone have any interest in merging the whole cblockstore crap for 0.7, or is that already packed enough with the current updates?
1239 2012-08-05 23:37:04 <gmaxwell> I think we're now closed for major infrastructure in 0.7, at least thats my feel for it.
1240 2012-08-05 23:37:14 <sipa> BlueMatt: i hate to say it after all the work you've put into it already, but right now, i'd rather have a stable release soon...
1241 2012-08-05 23:37:31 <BlueMatt> eh, did I say 0.7, meant 0.8
1242 2012-08-05 23:37:46 balrog has quit (Ping timeout: 246 seconds)
1243 2012-08-05 23:38:09 <jgarzik> gmaxwell: Yeah I'm staying up for Curiosity :)
1244 2012-08-05 23:38:28 <gmaxwell> Sure, just need to figure out how to intemix it with all the other things e.g. leveldb and potentially ultraprune. :)
1245 2012-08-05 23:38:53 <BlueMatt> mmm, well that sounds like a talk for another time, maybe dezember
1246 2012-08-05 23:38:57 <jgarzik> simply shipping FooDb in-tree will eliminate some database problems
1247 2012-08-05 23:39:15 <jgarzik> be it leveldb or any other
1248 2012-08-05 23:39:20 <sipa> yes
1249 2012-08-05 23:39:32 <sipa> kyotocabinet is a larger codebase than leveldb though, it seems
1250 2012-08-05 23:40:17 <BlueMatt> s/talk/task/
1251 2012-08-05 23:40:20 * jgarzik ponders his own db :/
1252 2012-08-05 23:40:59 <jgarzik> I want: multi-column, multi-table inside a single file.  transactions.  btree or hash.  metadata checksum.
1253 2012-08-05 23:41:21 <BlueMatt> yay, yetAnotherDB
1254 2012-08-05 23:41:23 <jgarzik> sqlite without the sql
1255 2012-08-05 23:41:28 <BlueMatt> (can you tell Ive been writing too much java?)
1256 2012-08-05 23:41:32 <Joric> just found out the distance to mars is like 1000 fold comparing to moon, wonder when humans will finally reach it
1257 2012-08-05 23:41:57 * BlueMatt bets on it in (at least my) lifetime
1258 2012-08-05 23:42:21 <jgarzik> Yeah, I think humans heading towards Mars will happen in my lifetime
1259 2012-08-05 23:42:21 RainbowDashh has quit (Excess Flood)
1260 2012-08-05 23:42:21 <sipa> i want a small, fast, and reasonably compact in-RAM key-value store with arbitrary-length bytestring keys and values
1261 2012-08-05 23:42:24 <BlueMatt> with china (and others) going to the moon soon
1262 2012-08-05 23:42:37 RainbowDashh has joined
1263 2012-08-05 23:42:54 <jgarzik> sipa: in-ram?  not STL's map or hashmap?
1264 2012-08-05 23:43:07 <sipa> those are horribly inefficient
1265 2012-08-05 23:43:09 <BlueMatt> he wants a space-efficient one, I think
1266 2012-08-05 23:43:10 <jgarzik> or memcached if remote
1267 2012-08-05 23:43:22 <jgarzik> hashmap isn't so bad
1268 2012-08-05 23:43:33 <jgarzik> agree RE space-efficiency
1269 2012-08-05 23:43:44 <sipa> jgarzik: those aren't arbitrary length either
1270 2012-08-05 23:45:01 <sipa> storing the 70 MiB coin database in a std::map, with std::vectors for the values, used over 300 MiB ram
1271 2012-08-05 23:45:15 * jgarzik needs to dig up a base58 module from somewhere
1272 2012-08-05 23:45:17 phma has quit (Remote host closed the connection)
1273 2012-08-05 23:45:21 <Joric> europe says 2033
1274 2012-08-05 23:45:26 * jgarzik will look at Joric's stuff
1275 2012-08-05 23:45:33 <sipa> Joric: ?
1276 2012-08-05 23:45:37 word has joined
1277 2012-08-05 23:45:46 <gmaxwell> sipa: and probably thrashed the everlasting @#$@# out of the heap allocator.
1278 2012-08-05 23:46:03 <jgarzik> If we survive the apocalypse in year 2020, that is...  http://www.nature.com/news/human-cycles-history-as-science-1.11078
1279 2012-08-05 23:46:12 <Joric> sipa, 'The European Space Agency had a long-term vision of sending a human mission to Mars by 2030'
1280 2012-08-05 23:46:17 <sipa> ah, ok
1281 2012-08-05 23:46:22 t7 has quit (Quit: Page closed)
1282 2012-08-05 23:46:48 * sipa anxiously awaits the dropping of shit on mars, while visiting dreamland
1283 2012-08-05 23:46:51 <sipa> cya
1284 2012-08-05 23:46:59 <gmaxwell> Joric: A bit more advances in privately funded launches and we'll probably start seeing suicide missions as people race to be the first. :)
1285 2012-08-05 23:47:06 <gmaxwell> sipa: night!
1286 2012-08-05 23:47:38 <gmaxwell> Joric: were it as easy to land on mars as on the moon we'd probably see that already.
1287 2012-08-05 23:50:21 <Joric> gmaxwell, it's literally 1000 times further than moon :(
1288 2012-08-05 23:51:03 <gmaxwell> Joric: further isn't really that much of an issue.
1289 2012-08-05 23:53:05 <abracadabra> more gravity
1290 2012-08-05 23:53:15 <abracadabra> not enough atmosphere to easily parachute
1291 2012-08-05 23:58:57 bitllc has joined
1292 2012-08-05 23:59:00 bitllc has quit (Remote host closed the connection)
1293 2012-08-05 23:59:57 bitllc has joined