1 2013-06-04 00:00:11 <Diablo-D3> lol
  2 2013-06-04 00:01:05 <warren> Close to getting secp256k1 win32 building in gitian, but it won't be deterministic until I figure out how to ignore the timestamps.
  3 2013-06-04 00:05:37 <nsh> timestamps from what, warren?
  4 2013-06-04 00:08:06 <warren> nsh: make uses timestamps for dependency tracking
  5 2013-06-04 00:08:24 <warren> nsh: gitian uses libfaketime to force the time to never change (I'm guessing), so every build is identical
  6 2013-06-04 00:08:33 <nsh> right
  7 2013-06-04 00:08:49 <nsh> devrandom can possibly help
  8 2013-06-04 00:09:04 <warren> in the cash of building gmp with ./configure --host=i586-mingw32-omgwtfbbq make gets stuck in a loop.
  9 2013-06-04 00:09:20 <warren> cas*
 10 2013-06-04 00:09:21 <warren> case*
 11 2013-06-04 00:09:32 <nsh> hmm
 12 2013-06-04 00:11:15 <nsh> warren, have you tried export LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1
 13 2013-06-04 00:11:20 <nsh> *so have you ... ?
 14 2013-06-04 00:11:25 <warren> nsh: yes, that's what causes the failure
 15 2013-06-04 00:11:28 <nsh> oh
 16 2013-06-04 00:11:36 <warren> it builds fine if I remove LD_PRELOAD
 17 2013-06-04 00:11:47 <nsh> something else must depend on timestamps somewhere then, i guess
 18 2013-06-04 00:11:54 <warren> that's to be expected for make
 19 2013-06-04 00:12:47 <devrandom> hmm...
 20 2013-06-04 00:13:25 <devrandom> never seen that behavior
 21 2013-06-04 00:13:30 <devrandom> is the configure getting stuck, or the make?
 22 2013-06-04 00:14:37 <devrandom> if all else fails, you might have to track down where the timestamps are coming from and `sed` files or faketime specific build steps
 23 2013-06-04 00:14:43 <devrandom> that's going to be somewhat of a pain
 24 2013-06-04 00:15:51 <warren> devrandom: make somehow goes back to running configure in a loop
 25 2013-06-04 00:16:11 <warren> devrandom: I'll make it build without libfaketime then give you the .yml file?
 26 2013-06-04 00:16:36 <ProfMac> what is "merged mining?"
 27 2013-06-04 00:18:13 <nsh> ProfMac, mining for more than one coin with the same work
 28 2013-06-04 00:18:21 <nsh> http://bitcoin.stackexchange.com/questions/273/how-does-merged-mining-work
 29 2013-06-04 00:19:12 <nsh> (thus contributing to hash power in more than one network at once. ie, having your lunch and then puking it out onto a canvas to sell as fake jackson pollock paintings)
 30 2013-06-04 00:20:33 <warren> /bin/bash ./config.status
 31 2013-06-04 00:20:33 <warren> make[1]: configure: Timestamp out of range; substituting 2514-05-30 01:53:03.999999999
 32 2013-06-04 00:20:59 <warren> devrandom: Makefile decides something is wrong then runs ./config.status, then tries to build again, decides something is wrong and runs ./config.status
 33 2013-06-04 00:21:12 <ProfMac> is the consensus here that merged mining is / is not healthy ?  I'm in a discussion regarding Bytecoin and need to learn fast.  I'm reading your link, nsh.
 34 2013-06-04 00:21:36 <Luke-Jr> ProfMac: not at all. merged mining is essential for any legit altcoin
 35 2013-06-04 00:21:41 <Luke-Jr> (although a risk for scams)
 36 2013-06-04 00:21:45 <warren> ProfMac: merged mining is good for Bitcoin as it does not take miners away from the main network.
 37 2013-06-04 00:21:58 <nsh> ^ double agree
 38 2013-06-04 00:22:02 <Luke-Jr> ProfMac: what is "Bytecoin"?
 39 2013-06-04 00:22:15 <duSn> 8 bitcoins ..
 40 2013-06-04 00:22:15 <warren> Luke-Jr: a copy of 0.8.1 wiht literally no changes
 41 2013-06-04 00:22:35 <Luke-Jr> ProfMac: note that Namecoin's merged mining system has a number of flaws, so you'd want to create a new system based on p2pool's merged mining
 42 2013-06-04 00:22:45 <Luke-Jr> warren: ???
 43 2013-06-04 00:22:45 <warren> ProfMac: scamcoins don't generalliy want merged mining because it means the bitcoin mining pools dominate in acquiring new coins in their alt, so they can't successfully conduct their scam.
 44 2013-06-04 00:23:06 <warren> Luke-Jr: p2pool's merged mining has serious problems
 45 2013-06-04 00:23:12 <Luke-Jr> warren: hence based on
 46 2013-06-04 00:23:17 <warren> ok
 47 2013-06-04 00:23:20 <Luke-Jr> warren: what problems did you have in mind, though?
 48 2013-06-04 00:24:30 <warren> Luke-Jr: apparently if the aux client fails to respond fast enough it screws up the main miner
 49 2013-06-04 00:24:49 <warren> it should just timeout and forget about the aux for that work if it isn't ready
 50 2013-06-04 00:25:33 <Luke-Jr> oh, just an implementation issue
 51 2013-06-04 00:25:45 <Luke-Jr> obviously you can't use p2pool's implementation anyway sicne it's Python
 52 2013-06-04 00:26:03 <Luke-Jr> warren: and that's a problem unrelated to p2pool's merged mining
 53 2013-06-04 00:26:10 <Luke-Jr> that's namecoin-merged-mining-with-p2pool
 54 2013-06-04 00:26:12 <warren> ProfMac: OTOH, the scamcoins struggle to maintain constant-enough hashrate, so their networks are frequently strip mined or stagnating, too fast confirmations or too slow.  And that is without 51% attacks, which happens often too.  Merged mining reduces the worry of 51% attacks for the altcoin, and allows their confirmation times to be relatively stable.
 55 2013-06-04 00:26:23 <warren> Luke-Jr: agreed
 56 2013-06-04 00:26:28 <ProfMac> I am still not sure if Bytecoin is a grand April fools joke, or a solution to some problems letting bitcoin grow larger, i.e., it could serve niche markets, such as "Dallas" or "Coffee Importers"  In fact, I sometimes think it may be both, a solution presented as a joke.
 57 2013-06-04 00:26:44 <Luke-Jr> ProfMac: from warren's description, it sounds like a scamcoin
 58 2013-06-04 00:26:50 <ProfMac> Search for "Maria 2.0" on bitcointalk to see the intro and discussion.
 59 2013-06-04 00:26:54 <warren> Luke-Jr: indeed.
 60 2013-06-04 00:27:22 <Luke-Jr> any new legit altcoin would best have a minimum difficulty of like 10mil and merged mining
 61 2013-06-04 00:27:41 <warren> Luke-Jr: a few days after Bytecoin launched someone offered to buy Bytecoins for a large number of BTC.  Then there was an auction for real silver for Bytecoins.  It was pumped up for a short while.
 62 2013-06-04 00:27:45 <Luke-Jr> and really, the decision to make a new altcoin really doesn't make sense until it's been discussed as an extension to Bitcoin
 63 2013-06-04 00:30:40 <warren> ProfMac: there is no point to Bytecoin, given that it has nothing different.  Just let it die.
 64 2013-06-04 00:31:46 <nsh> just think of it as makebelievereal testnet
 65 2013-06-04 00:32:20 <ProfMac> So the summary suitable for pointy-hair is:  merged mining is legit, but buggy; legitimate alt coins should use it; scam coins will avoid it; alt-coin as extensions to bitcoin make some sense.
 66 2013-06-04 00:32:57 <Luke-Jr> ProfMac: altcoins separate from Bitcoin can make sense in some cases too (see Freicoin)
 67 2013-06-04 00:33:13 <warren> ProfMac: merged mining is reasonable.  It can be made reliable in-so-far-as the aux chain should take a back seat, be ready to give work immediately without delay and just fail if it isn't ready.
 68 2013-06-04 00:34:02 <Luke-Jr> warren: the problem with namecoin-merged-mining is the chain id algorithm and its inability to adapt to bitcoin-merged-mining or use midstates
 69 2013-06-04 00:34:08 <warren> Perhaps it should have cached work that is constantly regenerated, giving work immediately is more important for the aux chain than having fresh work.
 70 2013-06-04 00:34:23 <ProfMac> warren:  what Bytecoin offers is a second block-chain that can be carried by a niche market, but the exchange rate can be tied to bitcoin by difficulty ratios.  It is also a possible study in an alt-coin with a longer prefix and smaller circulation that can allow micro-transactions --- again, in the context of a small market.
 71 2013-06-04 00:34:57 <Luke-Jr> ProfMac: would you like to buy some high quality snake oil?
 72 2013-06-04 00:35:05 <warren> ProfMac: for what niche market?  anybody can create another chain.  If you want another chain for micro-transactions, why not do it officially?
 73 2013-06-04 00:35:16 <warren> ProfMac: it was so obviously created as a scam
 74 2013-06-04 00:36:13 <warren> ProfMac: and like any scam, it dies.    Typical chart of a scamcoin.  http://www.cryptocoincharts.info/period-charts.php?period=alltime&resolution=day&pair=ftc-btc&market=btc-e  Early miners extracted thousands of BTC from morons buying into it.  This one had "good PR" and "immediate listing on a few exchanges".
 75 2013-06-04 00:37:01 <warren> ProfMac: they were stuck at 1+ hour confirm average times for weeks after.  They updated the client with more frequent diff adjustments, and they're still stuck at 40 minutes now.
 76 2013-06-04 00:37:16 <warren> ProfMac: ("normal" is supposed to be 2.5 minutes)
 77 2013-06-04 00:37:54 <doublec> bytecoin was the coin where the creator signed a message announcing it uses an address generated from an early block iirc
 78 2013-06-04 00:38:00 <doublec> block 9,455
 79 2013-06-04 00:38:01 <ProfMac> I fear, all academics can be seduced by intense curiosity.  Who is this maria that was around from the beginning of bitcoin but somehow got banned?  Why did she sell $800,000 of bitcoins, just days before the crash from 260?  Did she know something?  I have not put money into it, but I am fascinated by any number of back-stories that I have made up in my head.
 80 2013-06-04 00:38:11 <doublec> s/uses/using/
 81 2013-06-04 00:38:21 <warren> what does "banned" even mean?
 82 2013-06-04 00:38:41 <ProfMac> Actually, they are stuck at 1 block per day right now...
 83 2013-06-04 00:38:43 <warren> ProfMac: who cares?  there are hundreds of scam coins, none of their stories matter.
 84 2013-06-04 00:39:00 <phantomcircuit> who wants to send me some testnet coins
 85 2013-06-04 00:39:03 <doublec> signed message here: https://bitcointalk.org/index.php?topic=164569.msg1719379#msg1719379
 86 2013-06-04 00:39:16 <warren> phantomcircuit: http://testnet.mojocoin.com/
 87 2013-06-04 00:40:23 <phantomcircuit> neat
 88 2013-06-04 00:40:58 <phantomcircuit> Luke-Jr, bfgmienr should work on testnet right
 89 2013-06-04 00:41:03 <Luke-Jr> phantomcircuit: yeah
 90 2013-06-04 00:41:07 <warren> I'm seriously going to release genaltcoin sometime this summer.  You run it with a few --parameters and it spits out a git tree and gitian builds of <whatevercoin>, a home page, and posts to bitcointalk alt disaster forum.
 91 2013-06-04 00:41:39 <Luke-Jr> warren: I think you underestimate the complexity of doing gitian on Windows
 92 2013-06-04 00:42:04 <phantomcircuit> Luke-Jr, how did you get the submodule stuff to work
 93 2013-06-04 00:42:15 <phantomcircuit> nvm
 94 2013-06-04 00:42:49 <warren> Luke-Jr: right ... I suppose I can't make genaltcoin for Windows, so there will only be 50 new altcoins per day instead of 200/day.  Still bad enough that people will begin to just ignore all the alts.
 95 2013-06-04 00:43:14 <phantomcircuit> Luke-Jr, utlist.h?
 96 2013-06-04 00:43:18 <nsh> ACTION is reminded of WP:POINT
 97 2013-06-04 00:43:21 <Luke-Jr> phantomcircuit: by using it? :p
 98 2013-06-04 00:43:44 <ProfMac> Well, I'm not at all interested in the new coin, prefix "S" for sexcoin.  But I am so intrigued by the person who claims to be from the beginning, claims to sell 100,000 btc for $8 each days before the market falls, claims to be trading with Satoshi in the beginning.  Even if it is intended to be a scam, it is so gloriously done it's worth mining a few blocks.
 99 2013-06-04 00:44:07 <phantomcircuit> Luke-Jr, your make file isn't checking for utlist.h
100 2013-06-04 00:44:13 <phantomcircuit> i mean configure script
101 2013-06-04 00:44:51 <Luke-Jr> phantomcircuit: indeed, I didn't push that change yet
102 2013-06-04 00:44:58 <Luke-Jr> phantomcircuit: it is, however, documented in the README :P
103 2013-06-04 00:45:39 <Luke-Jr> ACTION goes ahead and pushes
104 2013-06-04 00:45:41 <phantomcircuit> Luke-Jr, psh readmes
105 2013-06-04 00:46:05 <Luke-Jr> phantomcircuit: the package name is uthash-dev
106 2013-06-04 00:46:12 <phantomcircuit> gentoo
107 2013-06-04 00:46:21 <Luke-Jr> uthash then
108 2013-06-04 00:46:21 <phantomcircuit> emerge uthash easy enough
109 2013-06-04 00:47:01 <warren> ProfMac: get the scamcoin to use secp256k1 by default, so someone at least tests it
110 2013-06-04 00:47:14 <Luke-Jr> haha
111 2013-06-04 00:49:08 <gribble> (genrate <hashrate> [<difficulty>]) -- Calculate expected bitcoin generation rate using <hashrate> Mhps, at current difficulty. If optional <difficulty> argument is provided, expected generation time is for supplied difficulty.
112 2013-06-04 00:49:08 <phantomcircuit> ;;genrate
113 2013-06-04 00:50:36 <phantomcircuit> Luke-Jr, 2013-06-04 02:47:35 ThreadRPCServer incorrect password attempt from 127.0.0.1
114 2013-06-04 00:50:40 <phantomcircuit> but it appears to be mining
115 2013-06-04 00:50:45 <phantomcircuit> <-- confused
116 2013-06-04 00:50:46 <Luke-Jr> O.o
117 2013-06-04 00:51:49 <warren> Hmm, maybe I'll provide patches for the scamcoins to use secp256k1
118 2013-06-04 00:51:56 <warren> I mean, why not?
119 2013-06-04 00:52:10 <phantomcircuit> it's definitely calling getwork right
120 2013-06-04 00:52:43 <phantomcircuit> if only bitcoin rpc said what call it was that had the wrong password
121 2013-06-04 00:52:44 <phantomcircuit> >.>
122 2013-06-04 00:53:03 <phantomcircuit> Luke-Jr, ./bfgminer --disable-gpu --algo fastauto --user u --pass p --url http://127.0.0.1:18332/
123 2013-06-04 00:53:07 <phantomcircuit> does that look right
124 2013-06-04 00:53:32 <Luke-Jr> phantomcircuit: except you're missing --coinbase-addr 1whatever
125 2013-06-04 00:53:53 <Luke-Jr> not that it probably matters for CPU
126 2013-06-04 00:54:28 <phantomcircuit> CPU 0:                |   1.8/  1.9/  0.0Mh/s | A:0 R:0+0(none) HW:0
127 2013-06-04 00:54:32 <phantomcircuit> wat?
128 2013-06-04 00:54:48 <phantomcircuit> 1 minute/5/15?
129 2013-06-04 00:54:58 <Luke-Jr> README
130 2013-06-04 00:55:11 <phantomcircuit> [2013-06-03 19:52:50] HTTP request failed: The requested URL returned error: 401
131 2013-06-04 00:59:04 <gribble> (genrate <hashrate> [<difficulty>]) -- Calculate expected bitcoin generation rate using <hashrate> Mhps, at current difficulty. If optional <difficulty> argument is provided, expected generation time is for supplied difficulty.
132 2013-06-04 00:59:04 <phantomcircuit> ;;genrate
133 2013-06-04 00:59:09 <phantomcircuit> ;;genrate 8 430
134 2013-06-04 00:59:15 <phantomcircuit> ;;genrate 8 403
135 2013-06-04 01:00:11 <gribble> Error: Failed to retrieve current block bounty. Try again later.
136 2013-06-04 01:00:50 <phantomcircuit> Average generation time for a block (solo)
137 2013-06-04 01:00:51 <phantomcircuit> crap
138 2013-06-04 01:01:12 <gribble> Error: Failed to retrieve current block bounty. Try again later.
139 2013-06-04 01:01:53 <phantomcircuit> wait isn't it halved on testnet?
140 2013-06-04 01:03:58 <gmaxwell> where does that weird idea keep coming from?
141 2013-06-04 01:04:25 <phantomcircuit> gmaxwell, it's on the wiki
142 2013-06-04 01:04:35 <phantomcircuit> https://en.bitcoin.it/wiki/Testnet
143 2013-06-04 01:04:44 <phantomcircuit> "Minimum difficulty of 1.0 on testnet is equal to difficulty of 0.5 on mainnet."
144 2013-06-04 01:06:32 <phantomcircuit> nanotube, damn it
145 2013-06-04 01:06:38 <phantomcircuit> or
146 2013-06-04 01:06:45 <phantomcircuit> https://en.bitcoin.it/w/index.php?title=Testnet&diff=2244&oldid=2212
147 2013-06-04 01:06:45 <phantomcircuit> yeah
148 2013-06-04 01:07:01 <phantomcircuit> gmaxwell, the 20 minute reset to 1 is right though?
149 2013-06-04 01:07:08 <gmaxwell> sure.
150 2013-06-04 01:07:33 <phantomcircuit> cause testnet is currently at 403
151 2013-06-04 01:07:40 <phantomcircuit> and i'd kind of like to have a block
152 2013-06-04 01:08:09 <phantomcircuit> 403 being like
153 2013-06-04 01:08:12 <phantomcircuit> 3 GHs
154 2013-06-04 01:08:13 <phantomcircuit> :|
155 2013-06-04 01:08:20 <phantomcircuit> why you doin dat people
156 2013-06-04 01:13:35 <warren> still fighting gitian win32.  Does gcc -l<name> always mean dynamic link, or it can work with .a static link?
157 2013-06-04 01:16:27 <warren> oh,  I suppose you want to just list the /path/to/whatever.a directly
158 2013-06-04 01:17:01 <phantomcircuit> ok now that i have testnet coins
159 2013-06-04 01:17:06 <phantomcircuit> time to perf test this sucker
160 2013-06-04 01:20:40 <super3> where can i get the bitcooin 0.8.2 source? or how can i pull the github 0.8.1 branch?
161 2013-06-04 01:24:15 <ProfMac> there is a testnet faucet.  Will give up to 45 tBTC at a request.  Google for it.
162 2013-06-04 01:35:45 <warren> I see.  -L and -I
163 2013-06-04 01:39:10 <phantomcircuit> ok then
164 2013-06-04 01:40:46 <phantomcircuit> 7.40%  bitcoind  bitcoind                            [.] std::_Rb_tree<CKeyID, std::pair<CKeyID const, CKey>, std::_Select1st<std::pair<CKeyID const, CKey> >, std::less<CKeyID>, std::allocator<std::pair<CKeyID const, CKey> > >::find(CKeyID const&) const
165 2013-06-04 01:48:51 <phantomcircuit> that is impressive given that that should be O(log n)
166 2013-06-04 01:49:06 <nsh> phantomcircuit, what's going on in that code?
167 2013-06-04 01:49:15 <phantomcircuit> wallet with a million keys
168 2013-06-04 01:49:21 <phantomcircuit> generating transactions
169 2013-06-04 01:49:26 <nsh> ok
170 2013-06-04 01:49:37 <phantomcircuit> im thinking thats typedef std::map<CKeyID, CKey> KeyMap;
171 2013-06-04 01:49:52 <phantomcircuit> no wait
172 2013-06-04 01:49:53 <phantomcircuit> it's CryptedKeyMap
173 2013-06-04 01:50:13 <phantomcircuit> no wait it is? er
174 2013-06-04 01:50:31 <phantomcircuit> yeah it's KeyMap
175 2013-06-04 01:54:41 <phantomcircuit> GetKeys is O(n) (obviously
176 2013-06-04 01:56:55 <phantomcircuit> fortunately that doesn't seem to be used by anything
177 2013-06-04 01:57:10 <nsh> ACTION nods
178 2013-06-04 02:10:01 <warren> sipa: putting a git tree in inputs/bitcoin doesn't work, it is overridden by whatever is at the remotes: URL in the .yml
179 2013-06-04 02:12:40 <warren> sipa: sorry, I was wrong.
180 2013-06-04 02:14:14 <saivann> Seeking for ACK for https://github.com/bitcoin/bitcoin.org/pull/196 (Removing focus on free transactions from bitcoin.org, 3 lines changed)
181 2013-06-04 02:16:41 <SomeoneWeird> what
182 2013-06-04 02:16:45 <SomeoneWeird> tf
183 2013-06-04 02:18:34 <warren> saivann: I agree with the message shift, although would it be too technical to mention that voluntarily higher fees ensure faster confirmations?
184 2013-06-04 02:19:08 <saivann> warren : "It is however recommended to pay a tiny voluntary fee to increase your transaction priority and to remunerate the people who operate the Bitcoin network"
185 2013-06-04 02:19:09 <warren> fees are very low, but there are reasons for volunteer to pay higher fees because it is a competitive market
186 2013-06-04 02:19:15 <warren> oh
187 2013-06-04 02:19:30 <saivann> "In most cases, fees are not strictly required but they are recommended in order to increase a transaction's priority"
188 2013-06-04 02:19:48 <warren> saivann: "transaction priority" is meaningful to a new user?
189 2013-06-04 02:20:09 <saivann> warren : Maybe not, any better idea?
190 2013-06-04 02:20:26 <phantomcircuit> lol
191 2013-06-04 02:20:29 <saivann> The second one is for businesses, the first one is for individuals
192 2013-06-04 02:20:36 <phantomcircuit> SendMoneyToDestination is getting stuck on GetBalance
193 2013-06-04 02:21:22 <phantomcircuit> which is of course O(n)
194 2013-06-04 02:22:50 <saivann> warren : When I put myself in the skin of a new user, transaction and priority are both common words. I think I would get the message (that the transaction would be processed faster)
195 2013-06-04 02:23:01 <phantomcircuit> actually it's worse than O(n)
196 2013-06-04 02:23:02 <saivann> But that's just me
197 2013-06-04 02:24:09 <warren> saivann: perhaps something like ... voluntarily paying higher transaction fees allows generally allows for faster confirmation of your transaction
198 2013-06-04 02:24:18 <warren> oops
199 2013-06-04 02:24:19 <warren> you get the idea
200 2013-06-04 02:27:59 <phantomcircuit> GetBalance ends up calling GetAvailableCredit on every transaction in the wallet, which in turns calls IsMine() on every txout, it seems like there should be a way to cache the value of IsMine for a specific wallet.. except what happens if a private key is removed
201 2013-06-04 02:28:27 <saivann> warren : Yep, I would still prefer to use "small transaction fee" there because even a high transaction fee on Bitcoin is a tiny fraction of todays banking fees.
202 2013-06-04 02:28:43 <saivann> But using "faster confirmation" sounds good.
203 2013-06-04 02:33:04 <phantomcircuit> geez
204 2013-06-04 02:33:31 <phantomcircuit> i think GetBalance is spending most of it's find in CKeyStore::HaveKey
205 2013-06-04 02:33:41 <phantomcircuit> which should be O(log n)
206 2013-06-04 02:34:05 <phantomcircuit> so even my absurd 1 million key wallet shouldn't take more than 6 ops
207 2013-06-04 02:35:18 <phantomcircuit> actually
208 2013-06-04 02:35:26 <phantomcircuit> im not sure GetBalance is even necessary
209 2013-06-04 02:36:10 <phantomcircuit> yeah it's not
210 2013-06-04 02:36:13 <nsh> ACTION muses on phantomcircuit's writing find instead of time
211 2013-06-04 02:36:31 <phantomcircuit> nsh, lol
212 2013-06-04 02:36:33 <phantomcircuit> i meant to say
213 2013-06-04 02:36:54 <phantomcircuit> spending most of it's fime in CKeyStore::HaveKey mapKeys.count (which is really just find)
214 2013-06-04 02:37:09 <nsh> si, claro :)
215 2013-06-04 02:38:13 <phantomcircuit> yeah this is 100% stuck on GetBalance
216 2013-06-04 02:38:21 <phantomcircuit> gavinandresen, lol didn't notice that... easy enough to fix though
217 2013-06-04 02:38:44 <phantomcircuit> now if i can just get git rebase to work...
218 2013-06-04 02:39:22 <phantomcircuit> gavinandresen, also is there any particular reason why GetBalance is called in SendMoneyToDestination ?
219 2013-06-04 02:39:47 <phantomcircuit> it seems redundant
220 2013-06-04 02:39:57 <nsh> clarkm, do you basically work for the CIA?
221 2013-06-04 02:40:34 <warren> saivann: voluntarily paying "more"?
222 2013-06-04 02:41:46 <nsh> ACTION bookmarks https://github.com/clarkminor?tab=activity under "technologies the USG finds potentially concerning" lol
223 2013-06-04 02:41:51 <phantomcircuit> heh AvailableCoins is also O(n)
224 2013-06-04 02:41:54 <owowo> nsh: there is no need to know for you :P
225 2013-06-04 02:41:57 <nsh> ACTION smiles
226 2013-06-04 02:42:22 <devrandom> did you set a time for libfaketime?
227 2013-06-04 02:42:39 <nsh> devrandom, i wondered this too
228 2013-06-04 02:47:41 <devrandom> nsh - export FAKETIME="2002-12-24 20:30:00"
229 2013-06-04 02:47:46 <devrandom> or similar
230 2013-06-04 02:48:01 <saivann> warren : After re-reading the context, I think "higher transaction fee" makes sense. I've updated the pull request, what do you think of it now?
231 2013-06-04 02:55:27 <Cory> How are transaction IDs created?
232 2013-06-04 02:57:26 <phantomcircuit> Cory, Hash() of the transaction
233 2013-06-04 02:57:36 <phantomcircuit> which is sha256(sha256(())
234 2013-06-04 03:18:58 <Cory> What exactly makes up the transaction? Something literally like this example? https://en.bitcoin.it/wiki/Transactions#Data
235 2013-06-04 03:24:42 <nsh> Cory, this shows an example of a raw transaction: http://people.xiph.org/~greg/signdemo.txt
236 2013-06-04 03:29:24 <Cory> Thanks!
237 2013-06-04 03:29:36 <nsh> also: https://en.bitcoin.it/wiki/Script#Standard_Transaction_to_Bitcoin_address
238 2013-06-04 03:30:59 <phantomcircuit> huh
239 2013-06-04 03:31:15 <phantomcircuit> CWalletTx::IsConfirmed is slow
240 2013-06-04 03:31:23 <phantomcircuit> seems like that should be fast
241 2013-06-04 03:39:54 <clarkm> nsh: I should hide that activity :)
242 2013-06-04 03:39:55 <nsh> phantomcircuit, it pushes back to the vins its looping over for each element in vWorkQueue
243 2013-06-04 03:40:01 <nsh> clarkm, maybe :)
244 2013-06-04 03:40:28 <nsh> phantomcircuit, i have no idea what any of that means, but maybe that could cause it to go over things more than is necessary
245 2013-06-04 03:40:59 <phantomcircuit> nsh, yeah im upto about the 13 millionth iteration
246 2013-06-04 03:41:06 <phantomcircuit> in a single call
247 2013-06-04 03:41:26 <nsh> eek
248 2013-06-04 03:44:26 <phantomcircuit> hmm
249 2013-06-04 03:45:17 <phantomcircuit> this is only a problem where there are a good number of unconfirmed transactions that belong to the wallet
250 2013-06-04 03:55:41 <phantomcircuit> nsh, yeah im thinking this could be *significantly* improved
251 2013-06-04 03:55:42 <phantomcircuit> lol
252 2013-06-04 03:55:54 <phantomcircuit> // consider it confirmed if all dependencies are confirmed
253 2013-06-04 03:55:54 <phantomcircuit> // If no confirmations but it's from us, we can still
254 2013-06-04 03:56:21 <phantomcircuit> simply returning false in this case would seem to only have an impact on SelectCoints
255 2013-06-04 04:05:06 <phantomcircuit> i can honestly say i dont even understand why this is the way this works
256 2013-06-04 04:05:30 <phantomcircuit> this is code from 2011
257 2013-06-04 04:05:34 <phantomcircuit> so im guessing nobody else does either
258 2013-06-04 04:07:37 <gmaxwell> ...
259 2013-06-04 04:07:44 <gmaxwell> I understand why it works that way. It's obvious enough.
260 2013-06-04 04:08:05 <gmaxwell> hell, the comment you quoted explains exactly why.
261 2013-06-04 04:08:11 <gmaxwell> And sure, it's slow and could be done much faster.
262 2013-06-04 04:08:25 <phantomcircuit> gmaxwell, i have 39 transactions
263 2013-06-04 04:08:35 <phantomcircuit> how is it even possible that this is iterating 14 million times
264 2013-06-04 04:10:48 <gmaxwell> phantomcircuit: because for each it explores the whole tree IIRC, it's factorial complexity or something moronic like that.
265 2013-06-04 04:11:02 <gmaxwell> (I've commented on this before)
266 2013-06-04 04:11:33 <phantomcircuit> gmaxwell, it should just be doing that until it gets to confirmed transactions though right?
267 2013-06-04 04:11:36 <phantomcircuit> or am i missing something
268 2013-06-04 04:12:08 <gmaxwell> phantomcircuit: right. If you don't have unconfirmed transactions than I have NFI what its doing, indeed.
269 2013-06-04 04:12:25 <phantomcircuit> well i do have unconfirmed transactions
270 2013-06-04 04:12:54 <phantomcircuit> but it should be going to the inputs which are confirmed
271 2013-06-04 04:13:19 <phantomcircuit> it appears to be walking the entire transaction graph all the way back to the coinbase or something
272 2013-06-04 04:13:41 <phantomcircuit> ima try to rewrite it and see what i come up with...
273 2013-06-04 04:15:45 <gmaxwell> phantomcircuit: ... don't rewrite it, just understand it. It most certantly does not walk all the way back to the coinbase or anything of the sort.
274 2013-06-04 04:17:53 <phantomcircuit> well first off i can safely move everything in if (mapPrev.empty()) outside the for loop
275 2013-06-04 04:18:23 <phantomcircuit> i assume that is a comical attempt at optimizing
276 2013-06-04 04:23:33 <phantomcircuit> gmaxwell, something is definitely broken here
277 2013-06-04 04:25:59 <phantomcircuit> gmaxwell, is mapPrev supposed to be protecting against checking the same tx twice?
278 2013-06-04 04:30:11 <sipa> ACTION tests BFL
279 2013-06-04 04:34:04 <Luke-Jr> sipa: got a Jalapeno?
280 2013-06-04 04:34:57 <sipa> Luke-Jr: yes
281 2013-06-04 04:43:49 <phantomcircuit> gmaxwell, so im reading this and thinking is just got really unlucky and one of the 39 transactions in vtxPrev has like
282 2013-06-04 04:43:58 <phantomcircuit> 10 million inputs or something
283 2013-06-04 04:44:06 <phantomcircuit> ie welcome to testnet
284 2013-06-04 04:45:01 <phantomcircuit> 36*
285 2013-06-04 04:53:48 <da2ce7> Dose anyone know what happend to Stefan Thomas? I haven't seen him for a while.
286 2013-06-04 04:54:39 <phantomcircuit> gmaxwell, yeah as i suspected
287 2013-06-04 04:54:56 <phantomcircuit> this is some how running the same transactions thousands of times
288 2013-06-04 04:56:39 <phantomcircuit> 2013-06-04 06:54:46 172d5f152caae7bbc44789cdfd8654ed3154ea1fbdf45a6aa06b1155e7209457 3284985ll
289 2013-06-04 04:56:46 <phantomcircuit> (this is testnet mind you)
290 2013-06-04 04:57:09 <sipa> da2ce7: he's working for OpenCoin now
291 2013-06-04 04:59:01 <phantomcircuit> sipa, it's too bad he seemed like a good person
292 2013-06-04 05:00:18 <sipa> ;;blocks
293 2013-06-04 05:00:19 <gribble> 239627
294 2013-06-04 05:00:40 <phantomcircuit> gmaxwell, for now im just going to add an std::set so that transactions aren't checked twice
295 2013-06-04 05:00:48 <phantomcircuit> but that seems like quote a hack
296 2013-06-04 05:05:20 <Luke-Jr> sipa: probably want to use latest git; 3.0.2 had some issues with HTTP pools
297 2013-06-04 05:05:59 <phantomcircuit> oh my god
298 2013-06-04 05:06:15 <phantomcircuit> lol
299 2013-06-04 05:06:19 <Luke-Jr> ?
300 2013-06-04 05:06:38 <phantomcircuit> i've been screwing around with wallet performance
301 2013-06-04 05:06:45 <phantomcircuit> and i think i just found the proximal cause
302 2013-06-04 05:06:51 <CodeShark> ?
303 2013-06-04 05:06:56 <CodeShark> do go on...
304 2013-06-04 05:06:57 <phantomcircuit> CWalletTx::IsConfirmed
305 2013-06-04 05:07:08 <Luke-Jr> you said that already. go on??? :p
306 2013-06-04 05:07:13 <phantomcircuit> there's something broken about the breadth first search of the inputs
307 2013-06-04 05:07:31 <phantomcircuit> so i added an std::set to avoid processing the same tx twice
308 2013-06-04 05:07:47 <phantomcircuit> (btw that is 100% not a long term solution)
309 2013-06-04 05:08:07 <phantomcircuit> but getbalance on a wallet with a million keys and a bunch of unconfirmed transactions is now practically instant
310 2013-06-04 05:09:11 <phantomcircuit> yeah
311 2013-06-04 05:09:15 <phantomcircuit> this is *definitely* broken
312 2013-06-04 05:09:55 <Julius129> so now i can create 4 trillion addresses
313 2013-06-04 05:10:04 <Julius129> and getbalance all day instead of mining :P
314 2013-06-04 05:10:11 <phantomcircuit> Julius129, no you'd run out of memory
315 2013-06-04 05:12:04 <duSn> Julius129: don't let phantomcircuit scare ya - i can let you borrow my floppy disk cluster - you'd have to supply your own floppy disks
316 2013-06-04 05:13:06 <phantomcircuit> also
317 2013-06-04 05:13:23 <Julius129> i can never run out of memory if i have if i fetch my nokia 3310 cluster
318 2013-06-04 05:13:30 <phantomcircuit> Julius129, loading the wallet.dat takes about 1500 usec per key currently, with some modifications that can drop to about 80 usec
319 2013-06-04 05:13:31 <Julius129> hyehe
320 2013-06-04 05:13:52 <CodeShark> is it considered good style to push into a container inside a for loop that iterates on that container's size?
321 2013-06-04 05:14:00 <Julius129> yeah, i dont really think such an attack is feasible
322 2013-06-04 05:14:08 <phantomcircuit> CodeShark, lol absolutely not
323 2013-06-04 05:14:16 <Julius129> but you will find people that will play lotto on the blockchain
324 2013-06-04 05:14:44 <phantomcircuit> CodeShark, this should almost certainly be a while loop
325 2013-06-04 05:15:11 <phantomcircuit> but since it appears to only allow iterating over transactions in vtxPrev
326 2013-06-04 05:15:15 <phantomcircuit> it should probably just
327 2013-06-04 05:15:16 <phantomcircuit> you know
328 2013-06-04 05:15:22 <phantomcircuit> iterator over vtxPrev
329 2013-06-04 05:16:06 <phantomcircuit> Julius129, but 1,000,000 private keys is only ~1.2 GB of resident memory
330 2013-06-04 05:17:25 <Julius129> you can store the private keys in a DB, and search for the funds by the short address? so you only put the addresses in the memory and only use the private key when you actually hit something
331 2013-06-04 05:17:44 <CodeShark> you only need the private key to sign transactions
332 2013-06-04 05:17:59 <phantomcircuit> Julius129, the current system essentially iterates over everything constantly to come up with things like the wallets balance
333 2013-06-04 05:18:11 <phantomcircuit> a system that stored the private keys in a db might be preferable
334 2013-06-04 05:18:21 <phantomcircuit> but for now would be impractical given how everything else works
335 2013-06-04 05:18:21 <sipa> Julius129: also, nowhere in the software is there any notion of a "balance of an address"
336 2013-06-04 05:18:39 <sipa> you need the specific coins (previous outputs) to be able to spend them
337 2013-06-04 05:18:47 <phantomcircuit> sipa, hey so im prettty sure IsConfirmed is totally borked