1 2012-06-22 00:59:27 <Karmaon> Is the functionality there yet in the Satoshi client where you can get the transaction ID of potential transaction, but can either send or abort?
  2 2012-06-22 01:19:55 <gmaxwell> Karmaon: What do you need that for?
  3 2012-06-22 01:20:08 <gmaxwell> (and no you can't do that currently)
  4 2012-06-22 01:21:01 <gmaxwell> I could guess at uses& in any case, you can do things like disconnect the node from the network and keep restoring the wallet if you end up with a txn you don't like... then reconnect it.
  5 2012-06-22 01:21:25 <genjix> gambling
  6 2012-06-22 01:22:05 <Karmaon> gmaxwell: if a database transaction fails
  7 2012-06-22 01:22:30 <Diablo-D3> ITS THE END OF THE WORLD AND I KNOW IT, ITS THE END OF THE WORLD AND I KNOW IT, ITS THE END OF THE WORLD AND I KNOW IT AND I FEEL FIIIIIIIIIIIIIIIIINE
  8 2012-06-22 01:23:04 <gmaxwell> Karmaon: unfortunately right now you'd have to totally block the bitcoin process to keep the input set from changing out from under you.
  9 2012-06-22 01:56:41 <luke-jr> gmaxwell: or just add a bool fLocked to COutPoint <.<
 10 2012-06-22 01:58:06 <gmaxwell> luke-jr: you still won't get any concurrency.
 11 2012-06-22 02:05:43 <return__> cry cry
 12 2012-06-22 02:14:07 <gmaxwell> return__: You okay?
 13 2012-06-22 02:15:00 <return__> boost develpers: "lets add "-s" to the middle of the library name"
 14 2012-06-22 02:15:07 <Diablo-D3> _fucking boost_
 15 2012-06-22 02:25:08 <luke-jr> return__: lol
 16 2012-06-22 02:25:19 <luke-jr> return__: well, stop static linking :p
 17 2012-06-22 02:27:15 <return__> i'll work on that right after i get this executable to do -anything- when you run it
 18 2012-06-22 02:32:51 <amiller> gmaxwell, "any other node who has witnessed a rule violation in the past can prepare a small message which you would take to be conclusive proof of a rule violation and then ignore that chain"
 19 2012-06-22 02:32:56 <amiller> that's totally awesome
 20 2012-06-22 02:35:15 <amiller> here's something similar i thought of, that you could do with a bitcoin that has an enhanced scripting environment, is to encode a 'rule violation detector' for something external and use it as an insurance bond
 21 2012-06-22 02:36:28 <ageis> Diablo-D3: "as we know it"
 22 2012-06-22 02:36:33 <amiller> suppose there are 10,000 btc locked up in a bitcoin account that can only be spent after 10 years, or else destroyed/disbursed-as-mining-fees if there are, for example, a pair of double-spend signed transactions (like a violation of a green-address policy)
 23 2012-06-22 02:36:39 <Diablo-D3> ageis: er, right
 24 2012-06-22 02:37:08 <amiller> there would be a good incentive to be on the look out for a pair of double spends from any address that has such a bounty on it
 25 2012-06-22 02:37:43 <gmaxwell> amiller: locking up funds like that is very inefficient however. Makes the usecase less interesting.
 26 2012-06-22 02:38:10 <return__> how about less funds
 27 2012-06-22 02:38:52 <amiller> yeah. i haven't been able to think of any better way to hook that up.
 28 2012-06-22 02:38:52 <return__> used as a kind of "notary stamp" for another currency
 29 2012-06-22 02:39:25 <gmaxwell> amiller: otherwise that wouldn't take much of a change to script. ... better than most other more oracular things I've seen suggested. You can also just do that using an oracle-ensemble, which is almost as good.
 30 2012-06-22 02:40:13 <gmaxwell> (e.g. put your bond to a multisig of tamperproof hardware run by distinct entities, and have them only release on presentation of evidence)
 31 2012-06-22 02:40:44 <gmaxwell> s/proof/resistant/ (of course, .. but to avoid the pedantry I'm about to get...)
 32 2012-06-22 02:42:09 <amiller> sure. i'm hoping at some point to make a little language for bitcoin-like smart contracts that can basically 'execute' on different instances of a byzantine consensus system, either an alt chain or a more ordinary distributed network
 33 2012-06-22 02:42:20 <amiller> or a single server with a public key, as a simple/degenerate case
 34 2012-06-22 02:42:52 <amiller> the basic merkle tree structure seems necessary for the alt chain case to work, but it also makes all the others simpler too
 35 2012-06-22 02:42:56 <gmaxwell> I check ebay for ibm cryptocards from time to time.. would be kinda fun to run one as an oracle with a script language much more powerful than bitcoin's.
 36 2012-06-22 02:46:08 <amiller> it requires a super small amount of memory to perform tx validation with a the merkle trees, perfect for tiny tamperproof hardware
 37 2012-06-22 02:47:49 <gmaxwell> ::nods:: not just that, you can stream the proof.
 38 2012-06-22 02:47:59 <gmaxwell> You don't even have to have all of it in memory at once.
 39 2012-06-22 02:52:46 <amiller> i guess a good thing to build would be a stateless pure functional bitcoin verifier
 40 2012-06-22 02:53:20 <amiller> maybe one of armory or libbitcoin would do for that, then it would just take picking a serialization format to start having it run on tree structures
 41 2012-06-22 02:53:57 <amiller> there's no reason to worry about an alt chain or anything else to begin with
 42 2012-06-22 02:57:12 <amiller> it's the Client/Verifier that's interesting, not so much the Server.
 43 2012-06-22 02:57:21 <gmaxwell> this is really a task for one of you haskell ninja / coq commanders.
 44 2012-06-22 02:58:33 <amiller> copumpkin, how is your adopt-a-haskeller fund going
 45 2012-06-22 02:58:58 <copumpkin> amiller: nobody appears to have bitten yet
 46 2012-06-22 02:59:43 <doublec> adopt a haskeller?
 47 2012-06-22 03:00:06 <amiller> gmaxwell, i love coq, but i suck at it
 48 2012-06-22 03:00:14 <Diablo-D3> lol
 49 2012-06-22 03:00:31 <gmaxwell> amiller: it takes time to master the coq young padwan.
 50 2012-06-22 03:00:52 <gmaxwell> (yea, you got me, my eyes just cross at it)
 51 2012-06-22 03:01:10 <copumpkin> lol
 52 2012-06-22 03:01:16 <amiller> doublec, the number of things i've run into recently that sort of *need* to be written in a formally checkable language, ideally Coq/Agda, but Haskell to begin with would be like 80% of the work
 53 2012-06-22 03:01:27 <copumpkin> for a while in #haskell we had a super enthusiastic young guy who called himself HaskellLove
 54 2012-06-22 03:01:49 <copumpkin> we tried to get him into Coq for obvious reasons :)
 55 2012-06-22 03:02:01 <Diablo-D3> ...
 56 2012-06-22 03:02:08 <Diablo-D3> did I mention haskell sucks?
 57 2012-06-22 03:02:21 <copumpkin> you might have, but I'd have written your opinion off as uninformed and meaningless
 58 2012-06-22 03:02:30 <copumpkin> also, I think it'd be kinda cool to have an editor for Coq with foldable blocks of code
 59 2012-06-22 03:02:34 <copumpkin> obviously called CoqBloq
 60 2012-06-22 03:04:14 <copumpkin> Diablo-D3: sorry, didn't mean to brush you off like that. Why does Haskell suck?
 61 2012-06-22 03:05:46 <gmaxwell> copumpkin: because its easy for haskell code  especially written by nubes  to make Java look very memory efficient?
 62 2012-06-22 03:05:52 <copumpkin> lol
 63 2012-06-22 03:05:57 <copumpkin> that might be true :)
 64 2012-06-22 03:12:06 <Diablo-D3> copumpkin: its very slow and very hard to understand
 65 2012-06-22 03:12:12 <copumpkin> lol
 66 2012-06-22 03:12:14 <Diablo-D3> most programmers just cant handle functional languages built like that
 67 2012-06-22 03:12:30 <copumpkin> what makes you say it's slow?
 68 2012-06-22 03:12:58 <gmaxwell> It's not slow. Though as I pointed out its easy to be memory inefficient.
 69 2012-06-22 03:13:18 <copumpkin> there's an australian university or two that teach it exclusively as a first language to incoming freshmen
 70 2012-06-22 03:13:32 <gmaxwell> And functional is hard when you're not familar with it, but the same is true otherwise.
 71 2012-06-22 03:13:40 <copumpkin> and they've written reports on how it's no more difficult than other languages, to people who haven't learned to expect other kinds of programming
 72 2012-06-22 03:13:43 <Diablo-D3> gmaxwell: its not fast as C.
 73 2012-06-22 03:13:46 <gmaxwell> copumpkin: sounds like a plan, since most incomming programmers flunk out anyways, you can't do much worse!
 74 2012-06-22 03:14:00 <Diablo-D3> what I dont get is, why haskell instead of lisp?
 75 2012-06-22 03:14:05 <copumpkin> Diablo-D3: there are actually examples of it being faster than C in restricted cases
 76 2012-06-22 03:14:18 <gmaxwell> Diablo-D3: it can be much faster than C (just like fortran can be) because the compiler can be much more powerful.
 77 2012-06-22 03:14:27 <Diablo-D3> gmaxwell: /me shrugs
 78 2012-06-22 03:14:30 <copumpkin> Diablo-D3: the type system is amazing, and really hardcore immutability guarantees let the compiler rearrange the code in ways that lisp could never allow
 79 2012-06-22 03:14:53 <gmaxwell> And why not lisp? it has a powerful type system (and a standard one well integrated into the language).
 80 2012-06-22 03:14:54 <copumpkin> for example, how would you write a word count program in C?
 81 2012-06-22 03:15:08 <copumpkin> if you wanted speed
 82 2012-06-22 03:15:24 <Diablo-D3> define word count
 83 2012-06-22 03:15:30 <gmaxwell> 'wc'
 84 2012-06-22 03:15:46 <copumpkin> increment a counter every time there's a transition from whitespace to nonwhitespace
 85 2012-06-22 03:15:51 <Diablo-D3> copumpkin: thats easy
 86 2012-06-22 03:15:59 <Diablo-D3> upload the text to the gpu, use opencl.
 87 2012-06-22 03:16:04 <copumpkin> ...
 88 2012-06-22 03:16:19 <Diablo-D3> cant beat that.
 89 2012-06-22 03:16:22 <copumpkin> we can do that too
 90 2012-06-22 03:16:26 <copumpkin> with a higher-level language
 91 2012-06-22 03:16:30 <copumpkin> but I'm talking about CPU programming
 92 2012-06-22 03:16:56 <copumpkin> what would you do to write a fast word counter in C without a GPU?
 93 2012-06-22 03:17:21 <Diablo-D3> I wouldnt bother
 94 2012-06-22 03:17:26 <Diablo-D3> its clearly a parallel math problem
 95 2012-06-22 03:17:34 <amiller> so there's been all this great positive attention towards merkle trees, but we're really talking about making a new/unusual data structure
 96 2012-06-22 03:17:42 <copumpkin> I'm asking because a haskell compiler was able to spot a faster approach than what wc uses and than what would be easy to code in C
 97 2012-06-22 03:17:58 <copumpkin> you could code it in C, but it's not the obvious approach at all, and requires jumping through some hoops
 98 2012-06-22 03:18:05 <amiller> a really clear and simple implementation would go a long way towards making it usable for bitcoin and altcoins
 99 2012-06-22 03:18:13 <copumpkin> furthermore, this arose from pure, immutable, idiomatic haskell code
100 2012-06-22 03:18:31 <Diablo-D3> copumpkin: for me, personally, I dont like haskell because the kind of code Im writing just isnt possible in haskell
101 2012-06-22 03:18:38 <copumpkin> what kind of code is that?
102 2012-06-22 03:19:00 <Diablo-D3> low level code.
103 2012-06-22 03:19:50 <copumpkin> so you like tedium, I take it :)
104 2012-06-22 03:20:01 <luke-jr> I'd read 4096 bytes into BufferA, and spawn 16 threads to go over 256 characters looking for whitespace, then checking the byte before it
105 2012-06-22 03:20:02 <luke-jr> etc
106 2012-06-22 03:20:14 <Diablo-D3> copumpkin: well like, I wrote a STM impl
107 2012-06-22 03:20:23 <Diablo-D3> copumpkin: and now writing a malloc impl is next on my list
108 2012-06-22 03:20:23 <luke-jr> and be reading BufferB while they do that
109 2012-06-22 03:20:24 <copumpkin> luke-jr: you have a single core, so the overhead of threading slows you down
110 2012-06-22 03:20:34 <copumpkin> the basic difference
111 2012-06-22 03:20:34 <luke-jr> copumpkin: nonsense :P
112 2012-06-22 03:20:38 <return__> ok i give up anyone know why my bitcoin-qt.exe exited with code -1073741819
113 2012-06-22 03:20:46 <luke-jr> return__: it wants pizza.
114 2012-06-22 03:20:48 <copumpkin> is that most people would write the actual wc algorithm by storing a flag
115 2012-06-22 03:20:50 <copumpkin> of whether you're in a word or not
116 2012-06-22 03:20:55 <luke-jr> O.o
117 2012-06-22 03:21:13 <copumpkin> that's how wc implements it, for example
118 2012-06-22 03:21:25 <copumpkin> (it's how I did it in brainfuck ,when I wrote wc in brainfuck)
119 2012-06-22 03:22:03 <copumpkin> the realization is that that flag is essentially an indirect encoding of a simple two-state machine
120 2012-06-22 03:22:18 <return__> i guess i need to re build everything and make sure its all set to the same target
121 2012-06-22 03:22:21 <copumpkin> and so the optimized haskell version actually represented that explicitly, and the program counter was effectively that flag
122 2012-06-22 03:22:26 <copumpkin> so there was no explicit flag
123 2012-06-22 03:22:37 <copumpkin> and no additional branching/conditional operations to do that
124 2012-06-22 03:24:34 <copumpkin> Diablo-D3: STM is kinda cool. What is going to use it? is it just a library you can use in C or something?
125 2012-06-22 03:24:50 <Diablo-D3> copumpkin: Im building an entire base library
126 2012-06-22 03:24:51 <copumpkin> (we also have STM in GHC haskell, I might add :P)
127 2012-06-22 03:24:56 <Diablo-D3> because Im tired of libs like glib and apr sucking dick
128 2012-06-22 03:25:23 <copumpkin> I wonder where roconnor went
129 2012-06-22 03:27:08 <Karmaon> Does it bother a miner if you send a single byte periodicly, such as every 30 seconds on a longpoll url?
130 2012-06-22 03:27:17 <Diablo-D3> Karmaon: doesnt seem to
131 2012-06-22 03:27:21 <Diablo-D3> copumpkin: btw, the hilarity is
132 2012-06-22 03:27:27 <Diablo-D3> copumpkin: my malloc impl will use stm
133 2012-06-22 03:27:37 <Diablo-D3> copumpkin: thus, allocations exist within stm transactions
134 2012-06-22 03:27:43 <copumpkin> hmm
135 2012-06-22 03:27:50 <copumpkin> did you see that article on why STM failed in C#?
136 2012-06-22 03:27:58 <Diablo-D3> why would c# need stm?
137 2012-06-22 03:27:59 <copumpkin> and the usual explanation as to why it doesn't fail similarly in haskell?
138 2012-06-22 03:28:08 <Diablo-D3> c# is the wrong language for it
139 2012-06-22 03:28:12 <copumpkin> I agree
140 2012-06-22 03:28:45 <Diablo-D3> C technically is too, but nothing stops me from just writing 20 lines at a whack to use stm
141 2012-06-22 03:28:59 <copumpkin> well, their approach in C#, and what most people says flawed
142 2012-06-22 03:29:03 <copumpkin> was to make all variables transactional
143 2012-06-22 03:29:04 <copumpkin> which is kinda stupid
144 2012-06-22 03:29:12 <amiller> the two neat things about the 'merkle tree' data structure is 1) that it has two modes basically, Verify and Apply, the other is that 2) it's very general since it applies to lists as well as any sort of tree
145 2012-06-22 03:29:19 <copumpkin> it works in haskell because we're used to controlling state and keeping mutable state to a minimum
146 2012-06-22 03:29:32 <amiller> the difference between verify and apply is really important because there's a security claim lying in there
147 2012-06-22 03:29:33 <copumpkin> so we only declare one or two variables as transactional and only those are STMified
148 2012-06-22 03:29:57 <copumpkin> amiller: where's your bounty!
149 2012-06-22 03:30:07 <amiller> copumpkin, i don't know where to post a bounty but it's $500 for now
150 2012-06-22 03:30:13 <copumpkin> oh nice
151 2012-06-22 03:30:17 <amiller> for just haskell, i'll pay extra for coq
152 2012-06-22 03:30:27 <copumpkin> hmm
153 2012-06-22 03:30:57 <amiller> maybe that would be a fun kickstarter, just for the video in which we talk about all the desirable qualities of coq
154 2012-06-22 03:31:02 <copumpkin> amiller: you should poke roconnor and see if he's in the mood
155 2012-06-22 03:31:21 <copumpkin> seems like the kind of thing he'd be good at
156 2012-06-22 03:32:16 <copumpkin> amiller: it might be worth posting to haskell-cafe
157 2012-06-22 03:32:19 <copumpkin> or something like that
158 2012-06-22 03:32:27 <amiller> hey Ken`, how are you doing!
159 2012-06-22 03:32:46 <amiller> ken's also a grad student in some cool formal verification lab
160 2012-06-22 03:32:58 <copumpkin> I think we've spoken at some point, yeah
161 2012-06-22 03:34:26 <amiller> i emailed the professor who wrote the persistent auth dict paper i like the most to see if he knows of any implementations, maybe i've just missed some
162 2012-06-22 03:34:46 <Diablo-D3> [01:28:59] <copumpkin> well, their approach in C#, and what most people says flawed
163 2012-06-22 03:34:49 <Diablo-D3> thats extra stupid
164 2012-06-22 03:34:55 <Diablo-D3> in mine, its just addresses and lengths
165 2012-06-22 03:35:05 <Diablo-D3> the programmer has to make sure what he does makes sense
166 2012-06-22 03:35:19 <Diablo-D3> ie, the interfaces are memcpyey
167 2012-06-22 03:36:58 <copumpkin> ah, okay
168 2012-06-22 03:39:58 <Diablo-D3> stm is also the only thing in the entire thing that is mallocing too
169 2012-06-22 03:40:06 <Diablo-D3> oh, and my malloc impl too when I actually go and write that
170 2012-06-22 03:40:29 <Diablo-D3> copumpkin: problem is, my stm impl is too slow
171 2012-06-22 03:40:37 <Diablo-D3> I need to work on speeding it up
172 2012-06-22 03:41:00 <copumpkin> sounds difficult to get right and a pain to debug if you get it wrong :/
173 2012-06-22 03:41:02 <Diablo-D3> copumpkin: on a test that constantly blocks on my c2d it only does like 15m tx/sec
174 2012-06-22 03:44:02 <Diablo-D3> copumpkin: what I want, in a way, is to make C more like Erlang
175 2012-06-22 03:44:26 <Diablo-D3> very hard to kill, nearly crash proof, and it quickly recovers even if it does crash
176 2012-06-22 03:44:37 <Diablo-D3> its going to be difficult, and Im most likely going to fail
177 2012-06-22 03:45:01 <Diablo-D3> copumpkin: and its funny
178 2012-06-22 03:45:04 <Diablo-D3> even though Im adding STM
179 2012-06-22 03:45:12 <Diablo-D3> the correct way to use lugh is with processes and pipes
180 2012-06-22 03:55:37 <copumpkin> I see
181 2012-06-22 03:56:08 <Diablo-D3> but you cant saturate multiple cores on a single calculation without threads
182 2012-06-22 03:56:21 <Diablo-D3> sometimes you really DO want to share the state across multiple threads
183 2012-06-22 04:00:04 <copumpkin> sure
184 2012-06-22 04:00:07 <copumpkin> I don't deny that
185 2012-06-22 04:00:27 <copumpkin> the question boils down to what primitives you give developers to harness them
186 2012-06-22 04:00:34 <Diablo-D3> well
187 2012-06-22 04:00:40 <Diablo-D3> Im trying to add as much of the boring shit as possible
188 2012-06-22 04:00:53 <Diablo-D3> so they can just start plugging the shit into each other like normal
189 2012-06-22 04:01:01 <Diablo-D3> like any other base lib does
190 2012-06-22 04:01:25 <Diablo-D3> like before I started taking a break and work on something completely unrelated
191 2012-06-22 04:01:31 <Diablo-D3> I was working on something really really simple
192 2012-06-22 04:01:37 <Diablo-D3> a bitfield impl.
193 2012-06-22 04:01:54 <Diablo-D3> something that is both useful and very easy to impl
194 2012-06-22 04:01:59 <Diablo-D3> copumpkin: oh, and btw
195 2012-06-22 04:02:08 <Diablo-D3> I added layered transactions
196 2012-06-22 04:02:44 <Diablo-D3> only the root transaction can commit for real
197 2012-06-22 04:07:36 <copumpkin> hmm cool :)
198 2012-06-22 04:07:40 <copumpkin> anyway, I must sleep
199 2012-06-22 04:07:42 <copumpkin> work tomorrow!
200 2012-06-22 05:09:22 <gribble> New news from bitcoinrss: xanatos opened pull request 1500 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1500>
201 2012-06-22 07:10:58 <amiller> etotheipi_, guess what roconnor did http://www.reddit.com/r/dependent_types/comments/qmlml/patricia_trie_challenge/
202 2012-06-22 07:11:14 <amiller> he posted a complete specification for a patricia tree in Agda
203 2012-06-22 07:11:24 <amiller> and someone implemented it as a challenge
204 2012-06-22 07:12:01 <amiller> copumpkin, ^^
205 2012-06-22 07:14:17 <amiller> copumpkin, how would you write a specification for a merkle tree in agda? how would you describe a hash collision?
206 2012-06-22 07:14:29 <amiller> would the right way be to start with a one-way function?
207 2012-06-22 09:02:55 <Eliel> amiller: I expect agda specifications are kind of like mathematical ones? Mathematically I'd express that somehow like: Exists a, b, a != b such that H(a) == H(b)
208 2012-06-22 09:03:25 <Eliel> The Exists clause needs to be replaced though, it should only apply to what's in the blockchain.
209 2012-06-22 09:05:28 <amiller> how to avoid specifying a particular hash function?
210 2012-06-22 09:05:43 <amiller> perhaps we can quantify over all possible functions
211 2012-06-22 09:16:21 <amiller> a merkle tree would need to be a set/datastructure
212 2012-06-22 09:16:47 <amiller> then the set of hash functions is any function from that set as the domain, to any range
213 2012-06-22 09:17:45 <amiller> the only way to produce a hash collision under those conditions would be to actually produce two equivalent elements from that set
214 2012-06-22 09:23:16 <Eliel> amiller: I'm not sure if it makes sense to not specify a particular hash function.
215 2012-06-22 09:23:40 <Eliel> unless it's simpler that way
216 2012-06-22 09:24:19 <gribble> New news from bitcoinrss: fanquake opened pull request 1501 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1501>
217 2012-06-22 09:31:57 <Fabrice_> hi there
218 2012-06-22 09:40:19 <amiller> hello Fabrice_
219 2012-06-22 09:40:52 <Fabrice_> I got a question: Is there a way to see if my wallet has a balance without opening it with bitcoin client?
220 2012-06-22 09:44:04 <sipa> Fabrice_: not really
221 2012-06-22 09:44:15 <sipa> Fabrice_: you can see how many coins are received by a certain address, though
222 2012-06-22 09:45:41 <Fabrice_> really? can you tell me?
223 2012-06-22 09:46:23 <sipa> blockchain.info and blockexplorer.com can
224 2012-06-22 09:46:41 <sipa> and probably a dozen similar sites
225 2012-06-22 09:47:42 <Fabrice_> sorry, that I already know. any way to see that a "wallet" received anything by looking at it in notepad or anything else?
226 2012-06-22 09:48:02 <sipa> no
227 2012-06-22 09:48:50 <sipa> it's a BDB database file, with keys and transaction in a custom serialized binary format
228 2012-06-22 09:48:59 <sipa> not rewally human-parsable
229 2012-06-22 09:49:13 <sipa> though there are some python tools to access it
230 2012-06-22 09:53:48 <Fabrice_> yes, I have read about pywallet...
231 2012-06-22 09:54:43 <sipa> though if you want to automate access to a wallet, use bitcoin's rpc interface
232 2012-06-22 09:54:50 <Fabrice_> but I think pywallet doesn't do what I want.
233 2012-06-22 09:54:58 <sipa> well what do you want?
234 2012-06-22 09:55:21 <sipa> getbalance will tell you the balance of the wallet
235 2012-06-22 09:55:32 <sipa> getreceivedbyaddress will tell you the received amount per address
236 2012-06-22 09:56:15 <Fabrice_> ok, getbalance could possibly help me - I will check. Thanks man.
237 2012-06-22 09:56:51 <sipa> https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)
238 2012-06-22 09:56:53 <sipa> read that
239 2012-06-22 09:57:05 <Fabrice_> thanks
240 2012-06-22 10:47:12 <Cory> How long does a rescan usually take?
241 2012-06-22 10:47:46 <sipa> if the blockchain is cached in memory: a few seconds; otherwise: the time to read the blockchain from disk
242 2012-06-22 10:48:44 <Cory> Thanks.
243 2012-06-22 11:01:05 <Cory> Hm, I have an address in my wallet but the transaction's not showing up. Is there any chance it will once its in a block?
244 2012-06-22 11:01:18 <sipa> it will
245 2012-06-22 11:01:40 <Cory> Heh, so this has happened before?
246 2012-06-22 11:02:01 <sipa> if you're offline at the time the transaction is broadcast, you don't receive it
247 2012-06-22 11:02:15 <Cory> Oh! I didn't know that. :)
248 2012-06-22 11:02:22 <sipa> but as long as it reached miners, they will include it in a block after some time
249 2012-06-22 11:02:49 <Cory> Awesome, thanks. That's actually a pretty big feature not to know about.
250 2012-06-22 11:19:05 <epscy> sipa: how much of the blockchain does bitcoind try to cache in memory?
251 2012-06-22 11:19:11 <epscy> is this configurable?
252 2012-06-22 11:23:41 <gavinandresen> epscy: bdb cache can be configured (create a DB_CONFIG file in your bitcoin data directory)
253 2012-06-22 11:24:16 <gavinandresen> epscy: the actual blocks aren't cached by bitcoind, but should be cached by your operating system
254 2012-06-22 11:24:51 <gavinandresen> (I know Linux is pretty good about using free memory to cache filesystem pages)
255 2012-06-22 11:29:35 <sipa> epscy: none; caching is a job for your OS (and does a pretty good job)
256 2012-06-22 11:43:26 <Cory> Any idea why some of the transactions described as "high priority" on http://bitcoincharts.com/bitcoin/txlist/ have a lower priority number than some of the transactions not described as "high priority"?
257 2012-06-22 11:51:07 <gavinandresen> Cory: because transactions with more than 0.0005 BTC-per-kilobyte are considered 'high priority', no matter what their actual priority is.
258 2012-06-22 11:51:28 <epscy> sipa: gavinandresen: thanks
259 2012-06-22 11:52:11 <gavinandresen> Cory:  that is, transactions with a high enough fee are considered 'high priority'
260 2012-06-22 11:52:53 <gavinandresen> any transaction with unconfirmed inputs is really low-priority, too...
261 2012-06-22 12:30:46 <jgarzik> bitcoinmoney.com: "SatoshiDICE quickly added a translation of its site to Russian. [...] The swift arrival of Martingale betting bots from Russian developers combined with other clues point to Russia as being one of SatoshiDICEs largest markets."
262 2012-06-22 12:31:42 <gmaxwell> Apparently they don't teach math in russia anymore?
263 2012-06-22 12:39:51 <gavinandresen> Russians seem to have a fondness for wacky get-rich-quick schemes, even a little more than Americans
264 2012-06-22 12:46:08 <jgarzik> just wait until SD is translated into Chinese ;)
265 2012-06-22 12:46:40 <jeremias> everyone has appetite for get-rich-quick schemes
266 2012-06-22 12:52:20 <epscy> the max bet limit for the 50% satoshidice game used to be > 400btc
267 2012-06-22 12:52:42 <epscy> with that it would take quite some time to hit a losing streak that would wipe you out
268 2012-06-22 12:52:54 <epscy> depending on what your starting bet is
269 2012-06-22 12:52:59 <epscy> using martingale
270 2012-06-22 12:53:13 <epscy> of course now SD reduced the max bet to 5btc
271 2012-06-22 12:53:20 <epscy> so it is a lot more risky now
272 2012-06-22 12:54:09 <epscy> and i agree, get rish quick schemes entice everybody, not just russians
273 2012-06-22 12:54:16 <epscy> erm rich
274 2012-06-22 12:58:59 <jgarzik> gavinandresen gmaxwell sipa: what are the 0.7 release blockers at this point?
275 2012-06-22 12:59:12 <jgarzik> a generic "not enough features" :) or anything more specific?
276 2012-06-22 12:59:39 <gavinandresen> lets talk about features for 0.7
277 2012-06-22 12:59:53 <gavinandresen> I want the raw transaction stuff, so we can move forward with multidevice security
278 2012-06-22 13:00:08 <gmaxwell> I also think its time we get the raw transaction stuff in.
279 2012-06-22 13:00:14 <gmaxwell> And it's worth delaying the release for it.
280 2012-06-22 13:00:23 <Cory> Is a fee of 0.0005 BTC special to Satoshi clients, too? Or is it just a bitcoincharts thing?
281 2012-06-22 13:00:28 <gavinandresen> I think transaction fee knobs for miners is also very important to get out soon
282 2012-06-22 13:00:36 <gmaxwell> Hidden service support is merge ready as far as I can tell.
283 2012-06-22 13:00:39 <jgarzik> hmmmm, an RPC to dump the memory pool would be useful.  Any objections?
284 2012-06-22 13:00:50 <gavinandresen> jgarzik: isn't that getmemorypool ?
285 2012-06-22 13:02:32 <gavinandresen> wumpus:  any "gotta have" features for bitcoin-Qt you want to see in 0.7 ?
286 2012-06-22 13:02:59 <jgarzik> indeed...  I am so rusty.  Still stuck in 2011 ;)
287 2012-06-22 13:03:21 <gavinandresen> gmaxwell: ACK on hidden service stuff, just needs a rebase/doc tweak and I think it is ready
288 2012-06-22 13:03:35 <jgarzik> or maybe i just need my breakfast and "coffee"
289 2012-06-22 13:04:01 <jgarzik> getblock + getmemorypool + sendrawtx should be sufficient for remote wallet
290 2012-06-22 13:04:12 <gmaxwell> There are a number of 'minor fix' level pulls lurning around.
291 2012-06-22 13:04:25 <jgarzik> sendrawtx needs a fix, to force a broadcast
292 2012-06-22 13:04:40 <gavinandresen> jgarzik: if I recall correctly, getmemorypool doesn't return the entire memorypool. I don't know if luke's pull has an option to do that.
293 2012-06-22 13:04:56 <sipa> it builds a block from the memorypool
294 2012-06-22 13:04:59 <kinlo> there is an option afaik, lemme doublecheck
295 2012-06-22 13:05:23 <gmaxwell> The enhacements add a lot of options to control what it gives you.
296 2012-06-22 13:05:24 <jgarzik> gavinandresen: getmemorypool calls CreateNewBlock(), and then iterates through CBlock::vtx
297 2012-06-22 13:05:43 <gavinandresen> jgarzik: ok, so it is misnamed....
298 2012-06-22 13:06:00 <gavinandresen> getpendingtransactions
299 2012-06-22 13:06:09 <jgarzik> getrawmempool
300 2012-06-22 13:06:17 <gmaxwell> Whats the application?
301 2012-06-22 13:06:27 <gavinandresen> getrawmempool : returns array of hex-encoded transactions in memory pool
302 2012-06-22 13:06:47 <jgarzik> gmaxwell: remote monitoring of blockchain + memory pool
303 2012-06-22 13:06:51 <gmaxwell> You can gettransaction transactions from the real mempool right now. The only missing part is finding out whats in it for things you wouldn't mine right now.
304 2012-06-22 13:07:12 <gavinandresen> or getrawmempool : returns array of transaction ids in memory pool
305 2012-06-22 13:07:26 <jgarzik> gavinandresen: either seems OK to me
306 2012-06-22 13:07:32 <sipa> i prefer txids, we already have gettransaction
307 2012-06-22 13:07:34 <gmaxwell> ^ thats probably better since we can gettransaction them.
308 2012-06-22 13:07:40 <jgarzik> gavinandresen: but then you must issue thousands of RPCs...
309 2012-06-22 13:07:55 <jgarzik> that's a lot of HTTP overhead
310 2012-06-22 13:08:26 <gmaxwell> jgarzik: I'm not sure what you're really thinking of doing there. It would be insecure to have a remote wallet use txn that the full node wouldn't even consider mining.
311 2012-06-22 13:08:34 <gmaxwell> jgarzik: they may be orphan for example.
312 2012-06-22 13:08:35 <gavinandresen> I think the answer to that is to support JSON-2.0, with it's send-an-array-of-commands, return an array-of-responses
313 2012-06-22 13:08:35 <sipa> maybe we need a server-side RPC scrupting language that can issue and combine arbitrary commands before returning ;)
314 2012-06-22 13:08:48 <jgarzik> there is probably more HTTP header than HTTP data, if you must send one gettransaction per memory pool tx...
315 2012-06-22 13:09:09 <gavinandresen> It WOULD be cool to be able to refer to the results of previous commands....
316 2012-06-22 13:09:21 <jrmithdobbs> gavinandresen: why not just make it completely evil and go with soap/wsdls at that point, heh
317 2012-06-22 13:09:55 <gmaxwell> gavinandresen: I'm sure we'll soon see requests along those lines now that the RPC interface is exposed in the gui. :)
318 2012-06-22 13:09:55 <sipa> let's allow an RPC client to upload some x86 assembly to be executed on the server
319 2012-06-22 13:10:04 <jrmithdobbs> sipa: haha right
320 2012-06-22 13:10:18 <gavinandresen> jgarzik: right, instead you'd JSON 2.0 and it'd be something like  '[ { "method" : "gettransaction", "params" : "txid1"}, ... etc ]'
321 2012-06-22 13:10:34 <jgarzik> KISS.  Just need some method of batching RPCs and results (and it sounds like jrpc 2 does this?)
322 2012-06-22 13:10:52 <jrmithdobbs> gavinandresen: i was being facetious but there's some truth there, you take the api documentation reqs up a few notches adding calls like that
323 2012-06-22 13:11:08 <jrmithdobbs> you're pushing closer to something like wsdls at that point :(
324 2012-06-22 13:11:09 <gavinandresen> yes, JSON-RPC 2.0 does that.  I implemented it a year or two ago, but none of the JSON wrapper libraries supported 2.0 back then so i junked the pull
325 2012-06-22 13:11:26 <jgarzik> sipa: that's the direction Google is moving towards, with Native Client stuff...
326 2012-06-22 13:12:10 <jgarzik> gavinandresen: it's easy enough to use url "/" for json-rpc 1.x and "/v2/" for json-rpc 2.x
327 2012-06-22 13:12:50 <jgarzik> we'd want to support 1.x for a long time to come, if not forever, due to popularity...
328 2012-06-22 13:12:54 <gavinandresen> jgarzik: no need for separate urls, JSON 2.0 is compatible with JSON 1.0 and self-identifies
329 2012-06-22 13:13:40 <jgarzik> even better
330 2012-06-22 13:14:06 <sipa> gmaxwell: 37% of the open txout data is transaction id's
331 2012-06-22 13:14:45 <sipa> gmaxwell: i wonder if we can't limit to only storing 128 or 160 bits instead of 256
332 2012-06-22 13:15:35 <jgarzik> gavinandresen: do you still have a branch or github url of your work lying around anywhere?
333 2012-06-22 13:16:13 <sipa> gmaxwell: other statistics: scripts are around 21.3 bytes per txout, and account for 56%
334 2012-06-22 13:16:18 <gavinandresen> jgarzik: lemme look
335 2012-06-22 13:16:25 <Diapolo> gavinandresen: wumpus seems to be online a little unsteady currently, which slows GUI things a little
336 2012-06-22 13:16:55 <sipa> gmaxwell: amounts take 2.1 byte per txout, and take less than 6%
337 2012-06-22 13:17:11 <gmaxwell> sipa: I don't think modest linear factors are worth differences that require thinking hard about security compromises.
338 2012-06-22 13:17:47 <sipa> gmaxwell: yeah, i'm probably focussing too much on squishing out the last couple of bytes
339 2012-06-22 13:18:42 <gmaxwell> sipa: right. Some squeezing where its 'costless' is, well probably a waste of your time, but harmless. But no one else has to think hard about that at least. :)
340 2012-06-22 13:20:35 <MoPac> 2|Hi, I'm hoping this is the right place to ask: I'm having trouble getting the bitcoin-qt client pulled down using the PPA (precise). The repository installed and got the key -- has anyone else had this problem?
341 2012-06-22 13:20:54 <Diapolo> What is the plan with the todos in the source? There a quite a few places in core, which could be improved by working on them. Perhaps some are easily fixable. Just want to mention, don' core patches
342 2012-06-22 13:21:02 <gavinandresen> jgarzik: can't find the JSON 2.0 work.  It wasn't hard; if request is JSON 2.0 and has an array of method/params, then loop over them all, gathering results and returning an array.
343 2012-06-22 13:21:03 <Diapolo> don't want to do ^^ was missing
344 2012-06-22 13:24:30 <gavinandresen> Diapolo: changing things in the core is done only reluctantly and with great care, because it is much too easy to accidentally introduce a disastrous bug.  The benefits have to clearly outweigh the risks.
345 2012-06-22 13:26:42 <Diapolo> gavinandresen: I agree and it was just a question if there is a plan for the left todos. By the way, is it possible to give rights to a user on Github to only close GUI tagged issues?
346 2012-06-22 13:27:48 <jgarzik> gavinandresen: cool, I can recreate
347 2012-06-22 13:28:09 <Diapolo> sipa: I'm going to listen for the ToR stuff have a little time left currently.
348 2012-06-22 13:28:48 <sipa> Diapolo: in essence, there are some netbase functions SetProxy(network, ...) and SetNameProxy now
349 2012-06-22 13:29:02 <gmaxwell> sipa: the current tor docs (sorry, just reviewing them now) are going to result in a lot of people setting -externalip=57qr3yd1nyntf5k.onion   The example should probably have an invalid base32 character perhaps?
350 2012-06-22 13:29:13 <gavinandresen> jgarzik: http://www.jsonrpc.org/specification
351 2012-06-22 13:29:22 <gavinandresen> "Batch"
352 2012-06-22 13:29:50 <sipa> gmaxwell: it is
353 2012-06-22 13:30:09 <sipa> gmaxwell: but this reminds me that the client should probably complain much more loudly
354 2012-06-22 13:30:25 <sipa> when undecodable addresses are given on the command line
355 2012-06-22 13:31:44 <Diapolo> sipa: We currently have ApplyProxySettings(), which uses SetProxy(NET_IPV4, addrProxy, nSocksVersion); and SetProxy(NET_IPV6, addrProxy, nSocksVersion);. Should be expandable :).
356 2012-06-22 13:32:11 <Diapolo> sipa: SetNameProxy() would be used for a hostname I guess?
357 2012-06-22 13:33:50 <sipa> Diapolo: exactly; i wouldn't expose setnameproxy to the GUI; just always set it to the same as the IPV4 one, unless socks4 is selected for that, in which case disable it
358 2012-06-22 13:35:12 <sipa> Diapolo: but i envision the option page as a "[ ] Use SOCKS proxy: [...] Version: [5]", followed by a few more lines of the form "[ ] Use separate proxy for IPv6: [...]  Version: [5]", ...
359 2012-06-22 13:35:19 <luke-jr> hmm
360 2012-06-22 13:35:25 <luke-jr> IPv6 RPC breaks the Windows build
361 2012-06-22 13:36:14 <sipa> Diapolo: the tor line would be something like "[ ] Use separate proxy for Tor hidden services: [...]", without SOCKS version selector
362 2012-06-22 13:36:20 <sipa> (it has to be 5)
363 2012-06-22 13:37:01 <sipa> ... we probably need a loop checker for the proxy config, as you could set the IPv4 proxy to an onion address, and the onion proxy to an IPv4 address...
364 2012-06-22 13:37:40 <Diapolo> sipa: so in the end there would be an IPv4, IPv6 proxy with SOCKS5 as default (but 4 selectable) and TOR proxy without SOCKS version (which has to be 5)?
365 2012-06-22 13:37:53 <Diapolo> sipa: talked about the needed input fields
366 2012-06-22 13:37:59 <sipa> Diapolo: yes
367 2012-06-22 13:38:45 <Diapolo> sipa: to understand, I can set IPv4 and IPv6 differently in the core currently or after merging the hidden service pull?
368 2012-06-22 13:38:55 <sipa> Diapolo: that's currently possible
369 2012-06-22 13:39:17 <Diapolo> sipa: so we are behind GUI wise currently even without the pull ... alright
370 2012-06-22 13:39:20 <jgarzik> hmmm
371 2012-06-22 13:39:22 <sipa> Diapolo: maybe a radio button to select between "One proxy to rule them all" or "Select proxy per network"
372 2012-06-22 13:39:31 <Diapolo> good idea
373 2012-06-22 13:40:18 <jgarzik> AFAICS, orphans exit mapOrphanTransactions upon "tx" message only
374 2012-06-22 13:40:35 <jgarzik> it seems like we should scan that once per accepted block, too
375 2012-06-22 13:48:46 <Diapolo> sipa: One question, GUI related, https://github.com/bitcoin/bitcoin/blob/master/src/qt/optionsmodel.cpp#L89 upgrade() is just there to just fix old settings right?
376 2012-06-22 13:49:15 <gribble> New news from bitcoinrss: jgarzik opened pull request 1502 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1502>
377 2012-06-22 13:49:46 <drizztbsd> hi, is there any bitcointalk mod here?
378 2012-06-22 13:49:55 <jgarzik> getrawmempool tested & pushed
379 2012-06-22 13:55:44 <luke-jr> is there a reason not to just add a "don't priority-sort memory pool" option to getmemorypool (and implement "sizelimit":false)?
380 2012-06-22 13:56:15 <gmaxwell> luke-jr: yuck. Why?
381 2012-06-22 13:56:18 <Diapolo> sipa: IPv6 works with SOCKS4, so for v6 both can be used?
382 2012-06-22 13:56:18 <sipa> i prefer not overloading one RPC call with too many functionality
383 2012-06-22 13:56:30 <luke-jr> gmaxwell: why add another RPC method for essentially the same purpose?
384 2012-06-22 13:56:31 <gavinandresen> one function with gazillions of options is bad
385 2012-06-22 13:56:32 <sipa> Diapolo: no, IPv6 actually also needs SOCKS5
386 2012-06-22 13:56:35 <gmaxwell> oh for getmempool.
387 2012-06-22 13:56:47 <luke-jr> getrawmempool is far more overlap with getmemorypool than submitblock was&
388 2012-06-22 13:56:54 <gmaxwell> luke-jr: the fact that what getmempool does normally needs to work through the block creation code?
389 2012-06-22 13:56:58 <gavinandresen> "do one thing and do it well"
390 2012-06-22 13:57:09 <sipa> luke-jr: contrary to its name, the purpose of gemtmemorypool is not for getting the memory pool; it is for requesting and submitting block mining templates
391 2012-06-22 13:57:17 <luke-jr> gavinandresen: we seem to have two conflicting policies in place then&
392 2012-06-22 13:57:54 <luke-jr> gavinandresen: we hid submitblock inside getmemorypool to reduce RPC methods
393 2012-06-22 13:57:58 <gavinandresen> only two?  we're lucky!
394 2012-06-22 13:58:05 <Diapolo> sipa: thanks
395 2012-06-22 13:58:42 <gmaxwell> luke-jr: In any case, getmempool calls createblock. Thats pretty wildly different than actually trying to get the raw unfiltered memorypool.
396 2012-06-22 13:58:52 <luke-jr> gmaxwell: that's an implementation detail; it doesn't have to;.
397 2012-06-22 13:59:06 <gavinandresen> luke-jr: that was a mistake, in my opinion.  Not a big enough one that I care about fixing it, though.
398 2012-06-22 13:59:17 <gribble> New news from bitcoinrss: gmaxwell opened pull request 1503 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1503>
399 2012-06-22 13:59:34 <luke-jr> whatever
400 2012-06-22 14:00:35 <gmaxwell> gavinandresen: I generally perfer to not create new top level RPCs for every optional variation of existing ones. (This isn't to say that I prefer deathstar RPCs ("dosomething") either)
401 2012-06-22 14:00:47 <gavinandresen> gmaxwell: can you sync the testnet3 blockchain with pull 1503 changes?  I explicitly created some invalid-under-new-rules-before-switchover-date blocks in tesnet3
402 2012-06-22 14:02:21 <luke-jr> gmaxwell: getmemorypool-in-theory, BIP 22, intentionally supports this use case, but whatever
403 2012-06-22 14:04:02 <gmaxwell> gavinandresen: I already did, but I'll double check to make sure I didn't screw up. :)
404 2012-06-22 14:04:39 <gavinandresen> gmaxwell: I was generating blocks with a fake time that might have been before BOTH switchover times, so it might just work.
405 2012-06-22 14:05:07 <gavinandresen> (and I only did the BIP16 switchover, not BIP30)
406 2012-06-22 14:05:30 <gmaxwell> gavinandresen: yea, I thought you might have had bip16 tests which was why I even bothered to test it first.
407 2012-06-22 14:11:59 <MysteryBanshee> http://www.forbes.com/sites/jonmatonis/2012/06/22/the-bitcoin-richest-accumulating-large-balances/
408 2012-06-22 14:17:17 <gmaxwell> gavinandresen: yea, my testing was fine. However, I do see that testnet3 has a problem syncing from the network right now (With or without that patch).  Loadblocks is okay.
409 2012-06-22 14:20:33 <gmaxwell> gavinandresen: Looks like it connects to some peer and gets fed some of the old testnet chain. It rejects block 1 of the old testnet chain. Then just sits there with no blocks. (I assume that when testnet3 gets a new block it'll sync up)
410 2012-06-22 14:20:50 <gmaxwell> We really should also have changed the protocol magic for testnet3.
411 2012-06-22 14:21:31 <luke-jr> ^++
412 2012-06-22 14:22:14 <gmaxwell> (I'll leave it alone for a while and see if it ever recovers)
413 2012-06-22 14:27:05 <UukGoblin> looking for a library that could do basic p2p functionality: node discovery, rate-limiting, misbehaver blacklisting
414 2012-06-22 14:27:31 <UukGoblin> perhaps maybe also message broadcasting
415 2012-06-22 14:47:36 <gmaxwell> half an hour and my testnet3 node is still stuck.
416 2012-06-22 14:59:42 <gavinandresen> gmaxwell: I started up a testnet node and mined a block; no idea if I am caught up to the chain, though (7351 blocks)
417 2012-06-22 14:59:58 <gmaxwell> gavinandresen: you fixed me.
418 2012-06-22 15:00:16 <gmaxwell> 7351 sounded right.
419 2012-06-22 15:00:58 <gmaxwell> Yea, so it recovers on new blocks. Still kinda cruddy.
420 2012-06-22 15:01:25 <gmaxwell> Was there a reason we didn't change the magic other than it breaking some network-protocol speaking tools?
421 2012-06-22 15:03:17 <gavinandresen> gmaxwell: no idea, I wasn't keeping track of that work carefully
422 2012-06-22 15:03:52 <gmaxwell> If we change it now we'll break existing testnet3 nodes until they upgrade.
423 2012-06-22 15:04:57 <luke-jr> is that a problem?
424 2012-06-22 15:05:33 <gavinandresen> Breaking network-protocol-speaking tools and wallet-parsing tools is kind of a big deal.
425 2012-06-22 15:06:08 <gavinandresen> I think it would be better to fix the "I have to wait for a new block if I'm fed a bogus chain" bug
426 2012-06-22 15:06:12 <luke-jr> gavinandresen: for testnet?
427 2012-06-22 15:06:19 <luke-jr> well, that's true too
428 2012-06-22 15:06:36 <luke-jr> especially since it seems more serious than that in my (limited) experience
429 2012-06-22 15:06:40 <gmaxwell> gavinandresen: yea.. we should do that too.. although even if thats fixed there is a risk that all 8 outbounds will be broken nodes.
430 2012-06-22 15:06:56 <gmaxwell> (though ... we should fix /that/ too)
431 2012-06-22 15:07:02 <gavinandresen> gmaxwell: nodes that feed you a bad genesis block should get DoS banned
432 2012-06-22 15:07:16 <gavinandresen> (well, bad block-after-genesis block)
433 2012-06-22 15:07:22 <luke-jr> gavinandresen: so what if someone runs a testnet1 and testnet3 nodes both?
434 2012-06-22 15:08:09 <gavinandresen> luke-jr: meh.  some people might ban you if they do weird things with their peer.dat/addr.dat
435 2012-06-22 15:08:49 <gavinandresen> Having a very long ends-in-a-different-genesis-block chain active on testnet is a good test
436 2012-06-22 15:08:53 <gmaxwell> https://github.com/bitcoin/bitcoin/pull/1271  IIRC I didn't like his particular changes in this area, but I do think doing something about his is important for 0.7 (even ignoring the testnet needs it badly)
437 2012-06-22 15:09:27 <gmaxwell> luke-jr: if you want to run both keep them on different ports.
438 2012-06-22 15:09:45 <luke-jr> oh, are bans per port? didn't realize
439 2012-06-22 15:09:59 <gmaxwell> hm. Right. I guess thats an issue.
440 2012-06-22 15:10:14 <gmaxwell> My thinking there was that if you were on another port you'd never end up cross connected in the first place.
441 2012-06-22 15:10:25 <gmaxwell> But I guess that isn't true... can't control what other people relay about you.
442 2012-06-22 15:10:40 <jgarzik> huh, stuck node?  06/22/12 17:10:09 version message: version 60001, blocks=182316
443 2012-06-22 15:11:32 <gmaxwell> jgarzik: checkout seeds.txt, stuck nodes are not that uncommon.
444 2012-06-22 15:11:48 <luke-jr> http://luke.dashjr.org/programs/bitcoin/files/charts/bestblocks.html
445 2012-06-22 15:12:06 <gmaxwell> luke-jr: you use pie charts too darn often.
446 2012-06-22 15:12:09 <luke-jr> it does seem to be a lot better than the last time I checked
447 2012-06-22 15:12:37 <luke-jr> gmaxwell: they work nicely :P
448 2012-06-22 15:12:53 <luke-jr> and easy to recycle the code
449 2012-06-22 15:24:10 <gmaxwell> luke-jr: this is perhaps a bit more informative: http://people.xiph.org/~greg/bestblocks.png
450 2012-06-22 15:26:06 <luke-jr> gmaxwell: sure
451 2012-06-22 15:26:17 <gmaxwell> Thats the first 16373 hosts in seeds.txt, I threw out the end because they hadn't been connected in a while.
452 2012-06-22 15:26:41 <luke-jr> yes, I only include ones with 15% uptime in at least one of the fields
453 2012-06-22 15:26:42 <gmaxwell> sipa: can you print out .. say.. the unixtime that you made the displayed blockheight reading?
454 2012-06-22 15:27:33 <gmaxwell> (because then I can show the correct delay relative to when they were read, and also exclude old readings more easily)
455 2012-06-22 15:50:14 <copumpkin> amiller: not really sure how to formalize hash functions, really. gmaxwell has mentioned that a Nat -> Nat bijection works, but it seems to not really capture the real nature you care about
456 2012-06-22 15:51:43 <amiller> copumpkin, what did you think of my suggestion
457 2012-06-22 15:51:59 <amiller> that the implementation has to produce hash collisions for _all_ possible hash functions
458 2012-06-22 15:52:12 <amiller> where the implementation even gets to define its domain
459 2012-06-22 15:53:35 <copumpkin> hmm, I think it flew off my scrollback
460 2012-06-22 15:53:47 <copumpkin> I'm trying to suck roconnor back into this part of IRC
461 2012-06-22 16:12:03 <rdponticelli> The tor hidden service pull request seems to be working fine here
462 2012-06-22 16:32:30 <gavinandresen> frickin frackin.... somebody broke using curl to send json-rpc to bitcoind
463 2012-06-22 16:36:46 <gribble> New news from bitcoinrss: gavinandresen opened issue 1504 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/issues/1504>
464 2012-06-22 16:42:33 <luke-jr> hmm
465 2012-06-22 16:42:44 <luke-jr> looks like boost's signals stuff doesn't work with Apple's GCC :\n3816933
466 2012-06-22 16:42:57 <drizztbsd> apple uses lvm? :P
467 2012-06-22 16:42:58 <luke-jr> gavinandresen: does master build natively?
468 2012-06-22 16:43:01 <drizztbsd> llvm*
469 2012-06-22 16:43:18 <luke-jr> drizztbsd: for bleeding edge only: P
470 2012-06-22 16:43:24 <luke-jr> drizztbsd: 10.5 uses GCC
471 2012-06-22 16:43:31 <drizztbsd> oh ok
472 2012-06-22 16:43:43 <drizztbsd> I only have an iBook (powerpc) :P
473 2012-06-22 16:44:05 <gavinandresen> luke-jr: make -f makefile.osx works nicely on my 10.6 machine
474 2012-06-22 16:44:14 <gavinandresen> ... uses llvm-g++
475 2012-06-22 16:44:18 <drizztbsd> 10.6 uses llvm yes
476 2012-06-22 16:44:31 <drizztbsd> g++ is only a frontend
477 2012-06-22 16:52:55 <jgarzik> gavinandresen: RE curl... your provided command line works for me
478 2012-06-22 16:53:49 <jgarzik> gavinandresen: http://pastebin.com/g1vTeerv
479 2012-06-22 16:53:51 <gavinandresen> I'm running curl 7.19.7 (universal-apple-darwin10.0)
480 2012-06-22 16:54:04 <jgarzik> curl 7.21.7 (x86_64-redhat-linux-gnu) libcurl/7.21.7 NSS/3.13.3.0 zlib/1.2.5 libidn/1.22 libssh2/1.2.7
481 2012-06-22 16:54:37 <jgarzik> gavinandresen: can you turn on curl's protocol dump / debug options and pastebin the results?
482 2012-06-22 16:54:48 <gavinandresen> sure, what are the magic options?
483 2012-06-22 16:55:50 <gavinandresen> ah, --trace <file>
484 2012-06-22 16:56:23 <jgarzik> gavinandresen: --verbose is also useful
485 2012-06-22 16:57:36 <gavinandresen> jgarzik: http://pastebin.com/CeDMXWsM   is -verbose and then -trace
486 2012-06-22 17:00:37 <jgarzik> gavinandresen: hmmm... nothing is immediately apparent.  I presume the server is not crashing, and it is merely the TCP connection that is being closed?  I'd run it in a debugger, or add some printk's to trace through ThreadRPCServer3() to see where it burps out
487 2012-06-22 17:01:06 <gavinandresen> yeah, I'll step through ThreadRPCServer3
488 2012-06-22 17:04:34 <gmaxwell> copumpkin: An injection of  -> ,  which throws away the seecond output parameter?   I don't know what that could help you with, but it captures more of the properties of a hash function.
489 2012-06-22 17:05:59 <gavinandresen> jgarzik: seems to be failing right away reading the input stream in ReadHTTPStatus
490 2012-06-22 17:07:35 <gavinandresen> grr.  will have to finish debugging later
491 2012-06-22 17:07:39 <jgarzik> gavinandresen: "failing" == throwing an exception?
492 2012-06-22 17:07:51 <gavinandresen> failing == gets an empty string reading the first line
493 2012-06-22 17:08:20 <gavinandresen> (not getting the POST / HTTP/1.1  line that curl says it is sending)
494 2012-06-22 17:09:30 <jgarzik> gavinandresen: is there a client HTTP / server HTTPS mismatch?
495 2012-06-22 17:10:15 <jgarzik> gavinandresen: maybe the server is expecting SSL?  your curl command line is plaintext.
496 2012-06-22 17:22:57 <luke-jr> http://www.phoronix.com/scan.php?page=news_item&px=MTEyMzQ
497 2012-06-22 17:23:06 <luke-jr> ^ GPU mining without proprietary blobs?
498 2012-06-22 17:24:23 <gmaxwell> luke-jr: just as gpu mining stops being interesting so no one will bother to fix the horrible bugs.
499 2012-06-22 17:24:32 <luke-jr> heh
500 2012-06-22 17:27:54 <Eliel> well, at the very least, that will be useful for accelerating bitcoind in the future as number of transactions increases :)
501 2012-06-22 18:31:30 <luke-jr> gmaxwell: signature cache didn't help at all
502 2012-06-22 18:31:36 <luke-jr> last block took 35 seconds to process
503 2012-06-22 18:34:13 <gmaxwell> Hm.
504 2012-06-22 18:37:02 <luke-jr> trying a tmpfs now
505 2012-06-22 18:38:02 <sipa> if you have almost all block transactions already as orphans, but the block also contains the missing link, sigcache won't help
506 2012-06-22 18:38:26 <luke-jr> sipa: this is my own block
507 2012-06-22 18:38:46 <sipa> right, nvm
508 2012-06-22 18:53:45 <gribble> New news from bitcoinrss: grarpamp opened issue 1505 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/issues/1505>
509 2012-06-22 19:23:13 <jgarzik> SatoshiDice Blockchain MB:  641.5
510 2012-06-22 19:26:21 <luke-jr> jgarzik: I'm filtering their txns on Eligius and #bitcoin-watc
511 2012-06-22 19:26:22 <luke-jr> jgarzik: I'm filtering their txns on Eligius and #bitcoin-watch
512 2012-06-22 19:31:26 <sipa> jgarzik: how do you filter their transactions exactly?
513 2012-06-22 19:31:41 <sipa> (i'd like to do the same analysis on my pruned txout set)
514 2012-06-22 19:32:56 <gmaxwell> K. my public hidden service node is now at 6hgmaxwellgpv2oe.onion
515 2012-06-22 19:34:23 <luke-jr> sipa: https://gitorious.org/~Luke-Jr/bitcoin/luke-jr-bitcoin/commit/8b0e2b258d017dc169ca26b1fc2b7ef7c7aec51f
516 2012-06-22 19:35:20 <sipa> jgarzik: according to https://bitcointalk.org/index.php?topic=80312.40, 409.8 MB
517 2012-06-22 19:35:51 <gmaxwell> sipa: scroll down.
518 2012-06-22 19:36:10 <gmaxwell> Blockchain MB:  641.5  :
519 2012-06-22 19:36:12 <helo> that is pretty horrendous :/
520 2012-06-22 19:36:39 <sipa> gmaxwell: yes, since SD started the blockchain grew 641.5 MB, 409.8 MB is in SD transactions
521 2012-06-22 19:36:44 <sipa> *of which
522 2012-06-22 19:37:49 <gmaxwell> I wonder how much less that would have been if they only used compressed public keys or if they did simple sendmany for txn in the same block.
523 2012-06-22 19:40:44 <luke-jr> gmaxwell: Eligius just found a block: under a second processing time
524 2012-06-22 19:40:58 <luke-jr> only change, putting .bitcoin in tmpfs; seems I/O is the bottleneck
525 2012-06-22 19:40:58 <sipa> so you count all transactions that have an SD txout, or spend an SD txout?
526 2012-06-22 19:41:15 <gmaxwell> luke-jr: ah, might explain why I haven't noticed whatever the heck you're hitting.
527 2012-06-22 19:41:30 <luke-jr> sipa: I rely on rejecting the 1dice output to eliminate anything using it as an input
528 2012-06-22 19:41:36 <gmaxwell> sipa: spend a sd txout. They can't easily control the other side.
529 2012-06-22 19:42:10 <sipa> gmaxwell: oh, only the spendings? ok
530 2012-06-22 19:46:31 <gmaxwell> sipa: well, thats all that could be assumed for "just a software change"
531 2012-06-22 19:46:44 <luke-jr> so what's the sanest way to get around this I/O issue?
532 2012-06-22 19:46:55 <luke-jr> I don't really want to trust tmpfs with everything <.<
533 2012-06-22 19:47:33 <nanotube> ssd?
534 2012-06-22 19:48:48 <luke-jr> nanotube: maybe
535 2012-06-22 19:48:49 <gmaxwell> luke-jr: that node doesn't have a wallet right?
536 2012-06-22 19:48:55 <luke-jr> gmaxwell: it does
537 2012-06-22 19:49:00 <gmaxwell> Don't do that.
538 2012-06-22 19:49:15 <luke-jr> it needs it
539 2012-06-22 19:49:20 <luke-jr> it's encrypted
540 2012-06-22 19:49:21 <gmaxwell> I just have a script to copy my nodes into tmpfs at boot.
541 2012-06-22 19:50:14 <gmaxwell> luke-jr: prefill the wallet... don't ever add keys?
542 2012-06-22 19:50:34 <luke-jr> gmaxwell: yeah, what if I forget? :p
543 2012-06-22 19:50:46 <gmaxwell> thus, don't use a wallet in your mining nodes.
544 2012-06-22 19:50:51 <luke-jr> but yeah, not like I have any reason to unlock the wallet
545 2012-06-22 19:51:29 <luke-jr> suppose I can rsync it back to disk regularly
546 2012-06-22 19:51:40 <luke-jr> too bad that's not atomic :/
547 2012-06-22 19:52:01 <gmaxwell> then I mean, if you never unlock it.. then it will never add more keys.
548 2012-06-22 19:53:53 <luke-jr> more important to me, at this point, I guess is that this problem isn't just mine
549 2012-06-22 19:54:00 <luke-jr> if I/O is a problem, it's a problem for every node
550 2012-06-22 19:54:09 <gmaxwell> maybe. what is this hardware?
551 2012-06-22 19:54:21 <luke-jr> dunno what the magnetic drive is
552 2012-06-22 19:54:37 <luke-jr> certainly not any worse than standard desktop hardware
553 2012-06-22 19:55:23 <gmaxwell> I mean if its a VPS it could have heavily oversubbed IO... connected across some slow network.
554 2012-06-22 19:55:40 <luke-jr> it's a high-end dedi
555 2012-06-22 19:55:59 <luke-jr> total 8 cores Intel(R) Core" i7 CPU         950
556 2012-06-22 19:56:01 <luke-jr> 24 GB RAM
557 2012-06-22 19:57:37 <gmaxwell> with 24 GB all the reads should be out of cache.
558 2012-06-22 19:57:50 <gmaxwell> maybe the sync writes are taking a while.
559 2012-06-22 19:58:57 <luke-jr> hmm
560 2012-06-22 20:01:13 <luke-jr> well, block preview should fix it I guess
561 2012-06-22 20:02:00 <rdponticelli> There is any way if adding a node without restarting the client?
562 2012-06-22 20:02:06 <rdponticelli> *of
563 2012-06-22 20:02:21 <luke-jr> rdponticelli: patch welcome <.<
564 2012-06-22 20:02:29 <rdponticelli> ;)
565 2012-06-22 20:02:39 <sipa> what luke-jr said
566 2012-06-22 20:02:42 <rdponticelli> Maybe some day
567 2012-06-22 20:02:48 <rdponticelli> I'm still learning
568 2012-06-22 20:02:51 <rdponticelli> :)
569 2012-06-22 20:03:05 <rdponticelli> It's for the tor thing
570 2012-06-22 20:03:52 <sipa> From DICE: 1043230 (238189946 unpruned)
571 2012-06-22 20:03:58 <sipa> in bytes
572 2012-06-22 20:04:25 <sipa> so DICE transactions are indeed quite prunable
573 2012-06-22 20:04:34 <sipa> (more so than others)
574 2012-06-22 20:04:35 <luke-jr> btw new next-test finally: https://bitcointalk.org/?topic=89099
575 2012-06-22 20:06:24 <helo> > 99.5% prunable... nice
576 2012-06-22 20:07:25 <sipa> helo: the entire blockchain, fully "ultrapruned" is 65.5 MB
577 2012-06-22 20:07:57 <helo> that is really impressive... tremendous news
578 2012-06-22 20:08:16 <rdponticelli> gmaxwell: Is your tor node up?
579 2012-06-22 20:08:24 <sipa> helo: note that that is in serialized form; in memory or in a database it would probably be a multiple of that
580 2012-06-22 20:08:54 <gmaxwell> rdponticelli: kind sorta, that node is currently doing a test resyning the chain while in valgrind. So it's probably saturated.
581 2012-06-22 20:09:06 <rdponticelli> Ok
582 2012-06-22 20:09:19 <helo> gmaxwell: you planning to keep that up more or less indefinitely?
583 2012-06-22 20:09:31 <gmaxwell> rdponticelli: it's almost done, I'll mention when it is.
584 2012-06-22 20:09:31 <sipa> rdponticelli: kjy2eqzk4zwi5zd3.onion:8333 is mine
585 2012-06-22 20:09:38 <sipa> and it is up
586 2012-06-22 20:09:46 <gmaxwell> helo: yes. Thats why I bothered generating the onion address with 'gmaxwell' in it.
587 2012-06-22 20:10:00 <sipa> gmaxwell: shallot working now?
588 2012-06-22 20:10:20 <gmaxwell> sipa: yes,  there are multiple git repos, the one on github is less broken.
589 2012-06-22 20:10:35 <rdponticelli> gmaxwell: ok, I'll let the client keep trying
590 2012-06-22 20:11:13 <sipa> gmaxwell: how much CPU power did it take to generate that?
591 2012-06-22 20:11:35 <gmaxwell> Found matching domain after 171107216663 tries: 6hgmaxwellgpv2oe.onion
592 2012-06-22 20:12:16 <sipa> and how many tries/s?
593 2012-06-22 20:12:58 <gmaxwell> it took about 1280 cpu hours on 2.3ghz opteron cores.
594 2012-06-22 20:13:23 <sipa> wow :)
595 2012-06-22 20:13:39 <gmaxwell> You have a shorter name though!
596 2012-06-22 20:14:16 <gmaxwell> takes me like a fraction of a second to get a "sipa" onion. :)
597 2012-06-22 20:14:17 <sipa> so, which repository does work?
598 2012-06-22 20:14:39 <gmaxwell> https://github.com/katmagic/Shallot
599 2012-06-22 20:14:56 <gmaxwell> also apply this fix:
600 2012-06-22 20:15:10 <gmaxwell> I don't think it actually matters, but it writes one past the end without it.
601 2012-06-22 20:16:38 <sipa> $ ./configure
602 2012-06-22 20:17:30 <gmaxwell> "No" "bash: no: command not found" ":("
603 2012-06-22 20:17:32 <luke-jr> I have! I decided against it.
604 2012-06-22 20:18:09 <sipa> I have no idea what this "Liunx" is...
605 2012-06-22 20:19:34 <sipa> hmmm "kilsipavsiast4i7.onion
606 2012-06-22 20:21:20 <luke-jr> I suggest trying again.
607 2012-06-22 20:21:47 <sipa> thank god for irssi's copy-paste detection
608 2012-06-22 20:21:56 <sipa> i almost pasted the private key instead of the hostname
609 2012-06-22 20:22:07 <sipa> sipa6eadr7df6jfi.onion
610 2012-06-22 20:22:21 <sipa> anyone want to try connecting?
611 2012-06-22 20:23:48 <rdponticelli> sipa: just another restart...
612 2012-06-22 20:23:53 <rdponticelli> I'll do :)
613 2012-06-22 20:24:38 <luke-jr> does tor support anycast hidden services? <.<
614 2012-06-22 20:28:07 <gavinandresen> jgarzik: d'oh!  Was a ssl / non-ssl mismatch, I forget I'd set rpcssl=1 in the bitcoin.conf
615 2012-06-22 20:28:20 <rdponticelli> sipa: worked
616 2012-06-22 20:28:45 <sipa> rdponticelli: really?
617 2012-06-22 20:28:52 <rdponticelli> Yeap
618 2012-06-22 20:28:59 <sipa> oh, yes, indeed
619 2012-06-22 20:35:23 <return__> tor supports wikileaks mitm your ssl connections
620 2012-06-22 20:35:39 <return__> undocumented feature luke-jr
621 2012-06-22 20:36:25 <return__> id assume as long as you only access onion sites you're fine
622 2012-06-22 20:36:45 <return__> you would assume they wouldn't be that "bad"
623 2012-06-22 20:36:48 <sipa> you can explicitly choose your exit node if you want to
624 2012-06-22 20:37:35 <return__> https://lists.torproject.org/pipermail/tor-talk/2006-December/003582.html
625 2012-06-22 20:37:59 <return__> now theres something embarassing both to WL and the us govt (because they fund this shit lmao)
626 2012-06-22 20:38:29 <starsoccer> can someone here vouch for sneak?
627 2012-06-22 20:46:53 <JFK911> jeffrey sneak?
628 2012-06-22 20:47:00 <sneak> that's me
629 2012-06-22 20:47:04 <sneak> JFK911: who's you?
630 2012-06-22 20:47:11 <JFK911> oh
631 2012-06-22 20:47:17 <JFK911> me vouching for you here won't help anything.
632 2012-06-22 20:52:07 <gavinandresen> I really want to start using the C++11 'auto' keyword... how long do y'all think we should wait before it's safe to use C++11 features?
633 2012-06-22 20:53:49 <gavinandresen> sipa: sanity testing pull 1174, make test_bitcoin gets me:  test/netbase_tests.cpp:37: error: class CNetAddr has no member named IsOnionCat
634 2012-06-22 21:07:22 <sipa> gavinandresen: right, that was renamed
635 2012-06-22 21:33:52 <jgarzik> gavinandresen: good to hear
636 2012-06-22 21:36:50 <Zarutian> so, the auto keyword is nothing more than a way to allow people to bypass the typing of variables?
637 2012-06-22 21:38:11 <sipa> Zarutian: it means "give this variable the same type as the expression it is initialized with"
638 2012-06-22 21:38:43 <phantomcircuit> gavinandresen, until gcc 4.5 is included in debian stable
639 2012-06-22 21:38:44 <phantomcircuit> :)
640 2012-06-22 21:39:27 <sipa> i think gcc 4.4 suffices for most of C++11's features
641 2012-06-22 21:39:33 <sipa> and certainly for auto
642 2012-06-22 21:40:05 <luke-jr> Mac OS X 10.5 is GCC 4.0 based
643 2012-06-22 21:40:23 <Zarutian> wait I thought gcc only compiled c code? then what is g++ then for?
644 2012-06-22 21:40:32 <luke-jr> Zarutian: GCC = GNU Compiler Collection
645 2012-06-22 21:40:36 <luke-jr> Zarutian: G++ is part of GCC
646 2012-06-22 21:40:46 <sipa> yes, gcc the project, not gcc the filename of a binary
647 2012-06-22 21:41:02 <Zarutian> oh, I see
648 2012-06-22 21:42:53 <rdponticelli> Debian testing has 4.6 as default gcc
649 2012-06-22 21:43:09 <rdponticelli> So, hopefully it will be soon
650 2012-06-22 21:43:21 <luke-jr> I don't see why Debian is the only OS that matters.
651 2012-06-22 21:44:19 <sipa> Yes, we should wait until BeOS ships with gcc 4.5.
652 2012-06-22 21:44:53 <luke-jr> sipa: as long as we want to support OS X 10.5, GCC 4.0 should be supported
653 2012-06-22 21:45:28 <luke-jr> which it isn't in master now :/
654 2012-06-22 21:45:37 <sipa> what breaks?
655 2012-06-22 21:45:45 <sipa> gcc 4.0 is from 2007
656 2012-06-22 21:45:54 <luke-jr> sipa: boost signals
657 2012-06-22 21:45:57 <sipa> i don't think it's reasonable to limit ourselves to that
658 2012-06-22 21:46:17 <luke-jr> GCC 4.0 considers some boost code "ambiguous" -.-
659 2012-06-22 21:46:25 <luke-jr> even thought it's IMO clearly non-ambiguous
660 2012-06-22 21:46:45 <sipa> "opinions" hardly ever matters to a computer program
661 2012-06-22 21:46:46 <gavinandresen> we don't want to support compiling on OSX 10.5, imho.
662 2012-06-22 21:46:59 <luke-jr> gavinandresen: do your 10.6 builds work on 10.5?
663 2012-06-22 21:47:19 <gavinandresen> luke-jr: yes
664 2012-06-22 21:47:21 <luke-jr> hmm
665 2012-06-22 21:47:29 <Zarutian> sipa: depends if the "opinions" are part of the programs inference dataset or some such ;-)
666 2012-06-22 21:47:55 <luke-jr> gavinandresen: do we not want to support gitian-compiling to OS X? ;)
667 2012-06-22 21:48:05 <luke-jr> I don't know how practical building LLVM to cross-compile is..
668 2012-06-22 21:48:25 <sipa> luke-jr: i assume easier than GCC
669 2012-06-22 21:48:39 <luke-jr> sipa: has anyone *ever* done it? :/
670 2012-06-22 21:48:57 <sipa> crosscompiling... sure; crosscompiling linux to osx... no idea
671 2012-06-22 21:49:16 <luke-jr> I can find results for OSX cross compiling with GCC in Google& not so with LLVM :/
672 2012-06-22 21:49:18 <sipa> don't apple users always and immediately upgrade to the latest and greatest arising from cupertino anyway?
673 2012-06-22 21:50:29 <Diablo-D3> cult of mac assholes do
674 2012-06-22 21:50:32 <Diablo-D3> brand new macbook
675 2012-06-22 21:50:35 <Diablo-D3> OH JEE RETINA TIEM
676 2012-06-22 21:50:48 <Diablo-D3> thing still has fresh out of the box smell, and its on ebay already
677 2012-06-22 21:51:12 <gmaxwell> I don't think apple cares about C++11 in any case,  "go team objective-c!"
678 2012-06-22 21:51:13 <Diablo-D3> maybe if you'd be the cult of chinese democracy, I'd hate you a little less
679 2012-06-22 21:51:29 <Diablo-D3> apple doesnt need to care about c++11
680 2012-06-22 21:51:34 <Diablo-D3> clang is getting it as fast as gcc is
681 2012-06-22 21:52:47 <gmaxwell> I have no clue on C++ code, but it's still pretty laughable on C in a lot of cases.  Of course, with QC and Apple hiring up GCC developers and not permitting the to work on GCC who knows.
682 2012-06-22 21:52:48 <gavinandresen> I tried compiling bitcoin with clang a couple of days ago, didn't work.
683 2012-06-22 21:53:22 <sipa> gavinandresen: wait... you build bitcoin on osx using gcc?
684 2012-06-22 21:53:44 <gavinandresen> llvm-g++
685 2012-06-22 21:53:49 <gmaxwell> gavinandresen: hm? odd. I've previously compiled bitcoin with clang in order to use the static analysis.
686 2012-06-22 21:54:10 <sipa> apparently i'm missing something
687 2012-06-22 21:54:16 <sipa> i though clang was llvm's C frontend
688 2012-06-22 21:54:50 <gavinandresen> gmaxwell: might be the macports version of clang I was using.  Didn't want to go down a rat-hole to figure out why it didn't work....
689 2012-06-22 21:55:09 <sipa> ah, llvm-g++ is g++ with llvm as backend
690 2012-06-22 21:56:23 <Diablo-D3> gmaxwell: clang is getting better
691 2012-06-22 21:56:28 <Diablo-D3> and its kinda nice
692 2012-06-22 21:56:31 <Diablo-D3> because anything clang does
693 2012-06-22 21:56:35 <Diablo-D3> gcc can steal
694 2012-06-22 21:56:48 <sipa> but llvm-g++ should run on linux just fine, no?
695 2012-06-22 21:57:02 <Diablo-D3> sipa: why would you want to use that?
696 2012-06-22 21:57:08 <Diablo-D3> what are you trying to do?
697 2012-06-22 21:57:24 <sipa> Diablo-D3: bitcoin osx builds in gitian
698 2012-06-22 21:57:30 <luke-jr> sipa: dunno, some ML posts I came across suggest there's no actual build system :|
699 2012-06-22 21:57:39 <Diablo-D3> sipa: you have to use clang to do it
700 2012-06-22 21:57:39 <sipa> luke-jr: fun!
701 2012-06-22 21:57:44 <Diablo-D3> sipa: on a mac
702 2012-06-22 21:57:48 <sipa> ...
703 2012-06-22 21:57:52 <luke-jr> I'm branching in bzr now
704 2012-06-22 21:58:01 <Diablo-D3> cross compiling to osx never works right
705 2012-06-22 21:58:08 <luke-jr> Diablo-D3: you missed out: I did it
706 2012-06-22 21:58:22 <Diablo-D3> luke-jr: yes, and I dont care what you did
707 2012-06-22 21:58:24 <Diablo-D3> it doesnt work right
708 2012-06-22 21:58:27 <luke-jr> it does
709 2012-06-22 21:58:33 <luke-jr> multiple testers using 10.5 to 10.7
710 2012-06-22 21:58:36 <Diablo-D3> yes, until you find out Im right
711 2012-06-22 21:58:42 <Diablo-D3> and then I'll laugh, and say I told you so
712 2012-06-22 21:59:19 <Diablo-D3> sipa: does clang not compile bitcoin correctly or something?
713 2012-06-22 21:59:24 <sipa> apparently not
714 2012-06-22 21:59:31 <Diablo-D3> weird
715 2012-06-22 21:59:34 <sipa> though gmaxwell says it does
716 2012-06-22 21:59:40 <Diablo-D3> it should work fine
717 2012-06-22 21:59:48 <Diablo-D3> if it doesnt, that could be indicative of a bug in bitcoin
718 2012-06-22 21:59:57 <sipa> or in clang :p
719 2012-06-22 22:00:00 <gmaxwell> It did six months or so ago.
720 2012-06-22 22:00:07 <Diablo-D3> sipa: _maybe_
721 2012-06-22 22:00:19 <Diablo-D3> a lot of the software clang cant compile right isnt a bug, its a missing gcc-specific extension
722 2012-06-22 22:00:28 <sipa> right
723 2012-06-22 22:00:53 <gmaxwell> Diablo-D3: thats fairly uncommon.
724 2012-06-22 22:01:03 <gmaxwell> Actually I don't think you can point to a single case of that.
725 2012-06-22 22:01:17 <Diablo-D3> I cant anymore
726 2012-06-22 22:01:18 <gmaxwell> What used to be common were straight up miscompiles.
727 2012-06-22 22:01:19 <Diablo-D3> early on I could
728 2012-06-22 22:01:23 <gmaxwell> But thats gotten better.
729 2012-06-22 22:01:26 <luke-jr> gmaxwell: is boost signals to blame for Clang too?
730 2012-06-22 22:01:38 <Diablo-D3> clang would emit __GCC__ or whatever that #define is
731 2012-06-22 22:01:43 <Diablo-D3> and code would think it was gcc
732 2012-06-22 22:02:02 <sipa> luke-jr: the boost signals problem is in gcc, no?
733 2012-06-22 22:02:15 <Diablo-D3> clang just happens to do all the gcc extensions that arent absolutely brand new
734 2012-06-22 22:02:19 <Diablo-D3> I mean, now it does
735 2012-06-22 22:02:19 <gmaxwell> Yes. It emits __GCC__ because thats what it needs to do to indicate that it supports GCC extensions.
736 2012-06-22 22:02:19 <luke-jr> sipa: probably
737 2012-06-22 22:02:28 <Diablo-D3> gmaxwell: yeah, but thats the thing
738 2012-06-22 22:02:33 <Diablo-D3> early on it did it and didnt support all of them
739 2012-06-22 22:02:44 <gmaxwell> Diablo-D3: you use GNU PREREQ to qualify extensions, and they emulate gcc there too.
740 2012-06-22 22:02:59 <Diablo-D3> gnu prereq?
741 2012-06-22 22:04:13 <gmaxwell> Diablo-D3: http://stackoverflow.com/a/259279
742 2012-06-22 22:04:36 <luke-jr> 716kB     1kB/s  fetching svn revision info 5197/159046
743 2012-06-22 22:04:38 <luke-jr> sigh
744 2012-06-22 22:04:42 <Diablo-D3> gmaxwell: _huh_
745 2012-06-22 22:05:12 <Diablo-D3> gmaxwell: the answer above it with the minor and patchlevel, thats what Ive been using
746 2012-06-22 22:05:16 <Diablo-D3> gmaxwell: when did gcc start using that?
747 2012-06-22 22:05:38 <gavinandresen> huh, I take it back, bitcoind and test_bitcoin just compiled no problems for me using clang
748 2012-06-22 22:06:11 <luke-jr> O.o
749 2012-06-22 22:06:46 <gavinandresen> How do I tell qmake what compiler to use?
750 2012-06-22 22:07:50 <luke-jr> -profile I think
751 2012-06-22 22:07:54 <sipa> http://lists.trolltech.com/qt-interest/2006-09/thread00785-0.html
752 2012-06-22 22:07:57 <sipa> ah
753 2012-06-22 22:08:05 <Diablo-D3> doesnt qmake listen to CC?
754 2012-06-22 22:08:11 <Diablo-D3> er, the envar
755 2012-06-22 22:08:37 <sipa> its generated makefiles do, i suppose
756 2012-06-22 22:09:02 <Diablo-D3> I am going to _so_ hate cross platform testing of lugh =/
757 2012-06-22 22:09:16 <Diablo-D3> Ive written the cross platform code, but I really doubt it works
758 2012-06-22 22:09:19 <Diablo-D3> Im _never_ that lucky
759 2012-06-22 22:09:25 <luke-jr> qmake has profiles for macx-g++ macx-g++40 macx-g++42 macx-icc macx-llvm macx-pbuilder macx-xcode macx-xlc
760 2012-06-22 22:09:50 <gavinandresen> qmake QMAKE_CXX=.... worked
761 2012-06-22 22:10:26 <luke-jr> interesting
762 2012-06-22 22:12:52 <luke-jr> gavinandresen: does LLVM/CLang support C++11 at all?
763 2012-06-22 22:13:03 <luke-jr> guess I should google that
764 2012-06-22 22:13:15 <gavinandresen> depends on the version, I believe....
765 2012-06-22 22:13:29 <sipa> ./configure --target=i386-darwin
766 2012-06-22 22:13:39 <sipa> at least the configure step seems to work
767 2012-06-22 22:13:40 <Diablo-D3> luke-jr: llvm doesnt support anything
768 2012-06-22 22:13:47 <Diablo-D3> clang is the c/c++ frontend for llvm
769 2012-06-22 22:13:58 <luke-jr> http://clang.llvm.org/cxx_status.html
770 2012-06-22 22:14:19 <Diablo-D3> and iirc large parts of c++11 are supported in clang
771 2012-06-22 22:14:23 <luke-jr> long long is C++11? O.o
772 2012-06-22 22:14:28 <luke-jr> guess we already require it then
773 2012-06-22 22:14:33 <gavinandresen> luke-jr: http://llvm.org/releases/3.1/docs/ClangReleaseNotes.html
774 2012-06-22 22:14:35 <Diablo-D3> luke-jr: no