1 2012-06-21 00:13:59 <luke-jr> btw, any idea what proto 60000 with "" UA is? O.o
2 2012-06-21 00:28:05 <midnightmagic> can I ask whether it's normal to see regular "WARNING: Displayed transactions may not be correct! You may need to upgrade, or other nodes may need to upgrade." errors?
3 2012-06-21 00:28:17 <Graet> https://bitcointalk.org/index.php?topic=88734.20
4 2012-06-21 00:28:19 <Graet> :(
5 2012-06-21 00:28:39 <gmaxwell> midnightmagic: it's not.
6 2012-06-21 00:29:06 <midnightmagic> gmaxwell: I've now seen it.. perhaps three times in total.
7 2012-06-21 00:29:16 <midnightmagic> bitcoind -daemon -noirc is how I start it usually.
8 2012-06-21 00:29:50 <midnightmagic> I was running 0.6.99 post 0.6.3 upgrade warning.
9 2012-06-21 00:30:10 <gmaxwell> luke-jr: Any thoughts about the minimum fee to not be considered zero in gavin's stuff. You're the only miner I know that has a really low value there. My concern is that people will think "moar money == good" and set it to zero, and make it easy for txn with 1e-8 fees to flood out all the free txn.
10 2012-06-21 00:31:04 <doublec> midnightmagic: I saw that today
11 2012-06-21 00:31:06 <luke-jr> gmaxwell: ?
12 2012-06-21 00:31:24 <midnightmagic> It was stuck on block 185514.
13 2012-06-21 00:31:27 <gmaxwell> midnightmagic: well you get that message when other nodes are claiming to be ahead of you.
14 2012-06-21 00:31:32 <doublec> mine was 185398
15 2012-06-21 00:31:48 <gmaxwell> midnightmagic: what version are you on?
16 2012-06-21 00:32:16 <midnightmagic> gmaxwell: 0.6.99 perhaps.. a week after 0.6.3 was released and you were telling everyone to upgrade to 0.6.3.
17 2012-06-21 00:32:25 <midnightmagic> so.. origin/master.
18 2012-06-21 00:32:33 <gmaxwell> Graet: "Meh" on that. It's getting called a serious vulnerability in part because of the preferences of the person who reported it. I wouldn't have called it that on my own, and it's of a class of DOS attacks that have been discussed in public before.
19 2012-06-21 00:32:46 <doublec> 0.6.3 hasn't been released yet has it?
20 2012-06-21 00:32:58 <gmaxwell> midnightmagic: did it recover on is own?
21 2012-06-21 00:33:03 <midnightmagic> err..
22 2012-06-21 00:33:20 <luke-jr> doublec: rc1 has
23 2012-06-21 00:33:23 <midnightmagic> wait was 0.6.3 the one you were telling everyone to upgrade to or 0.6.2?
24 2012-06-21 00:33:28 <midnightmagic> must've been post-0.6.2.
25 2012-06-21 00:33:31 <gmaxwell> 0.6.2
26 2012-06-21 00:33:33 <doublec> right, I knew about the rc
27 2012-06-21 00:34:00 <midnightmagic> gmaxwell: No, it was stuck stuck, no recovery. I'm rebuilding against origin/master as of a few seconds ago in the hope that will helps.
28 2012-06-21 00:34:15 <luke-jr> Graet: I've tagged 0.4.7rc3, 0.5.6rc3, and 0.6.0.9rc1 in git, with the fix
29 2012-06-21 00:34:31 <Graet> well gmaxwell we need some (oh god again) standards - so ppls opinions have some meaning
30 2012-06-21 00:34:56 <Graet> if a dev announcves a serious vuln - it shouldnt be a "matter of opinion"
31 2012-06-21 00:35:23 <midnightmagic> hrm. still stuck on 185514.
32 2012-06-21 00:35:34 <luke-jr> Graet: well, it's always a matter of opinion
33 2012-06-21 00:35:35 <gmaxwell> Graet: it's a cpubusyness DOS that requires an attacker to connect to the victim and stay connected while sending data.
34 2012-06-21 00:35:40 <luke-jr> the question is whose opinion, I suppose
35 2012-06-21 00:35:43 <doublec> midnightmagic: I ended up redownloading the block chain
36 2012-06-21 00:35:51 <gmaxwell> Graet: to some people thats serious, to other people its totally boring.
37 2012-06-21 00:35:57 <midnightmagic> doublec: that's what I had to do last time. :-(
38 2012-06-21 00:36:28 <Graet> so there is no discussion on vulnerabilty level among the devs, you all choose what you think is and isnt a vuln? - sorry i'm no coder but this dont make sense
39 2012-06-21 00:36:39 <luke-jr> Graet: no, vuln is objective
40 2012-06-21 00:36:47 <luke-jr> the degree of how serious is more subjective
41 2012-06-21 00:37:07 <Graet> so there can be no consensus before announcements are made?
42 2012-06-21 00:37:28 <Graet> its just one opinion against another - doesnt seem so "proffessional" to me...
43 2012-06-21 00:37:32 <midnightmagic> InvalidChainFound ! :-) How exciting!
44 2012-06-21 00:37:38 <Graet> for want of abetter word
45 2012-06-21 00:37:39 <gmaxwell> no, it was discussed. But what do you want? We want people to report things, we want them to not call developers liars and say they're covering up things, we want to be conservative in how we want people so people who are exposed don't take no action.
46 2012-06-21 00:37:50 <midnightmagic> InvalidChainFound: current best=00000000000003d20998 height=185514 work=361330329362000531868
47 2012-06-21 00:38:09 <Graet> like i said in myu post, the previuos way was better
48 2012-06-21 00:38:11 <gmaxwell> midnightmagic: ohh. Did you start that node from some download?
49 2012-06-21 00:38:17 <gmaxwell> Graet: the previous was very serious.
50 2012-06-21 00:38:44 <gmaxwell> This is not.
51 2012-06-21 00:38:58 <gmaxwell> Or at least not the same kind of serious.
52 2012-06-21 00:39:05 <Graet> my understanding is RC is not production, but that anouncement (and the scare it put into my miners taht contacted me about it) makes me feel i should be updating to a testin
53 2012-06-21 00:39:11 <midnightmagic> gmaxwell: Hrm.. originally this particular blockchain was from.. mm.. the sourceforge.net download I believe, and then rebuilt on another machine via downloading. And then that bitcoind was halted, and the blk* files scp'd over to this machine, and this machine caught up further via more block downloads.
54 2012-06-21 00:39:23 <luke-jr> Graet: it's only RC because not many people have tested it
55 2012-06-21 00:39:26 <doublec> my "safe mode" issue happened when my computer crashed. I restarted and I got that message and no new blocks
56 2012-06-21 00:39:31 <Graet> thats great gmaxwell but how does anyone not privvy know the difference?
57 2012-06-21 00:39:31 <midnightmagic> gmaxwell: And just now, I did nothing to rebuild the block chain, as I was hoping the new version could just recover, as suggested in the error message.
58 2012-06-21 00:39:33 <doublec> I assumed something got corrupted
59 2012-06-21 00:39:35 <luke-jr> Graet: we expect to rename it to final and publish on bitcoin.org ASAP
60 2012-06-21 00:39:50 <luke-jr> Graet: but doing so before some public testing is dangerous
61 2012-06-21 00:40:03 <gmaxwell> Graet: and, moreover, while I said it wouldn't have been described as that if it were purely up to me I don't disagree with it.
62 2012-06-21 00:40:03 <midnightmagic> doublec: this is really exciting. :-)
63 2012-06-21 00:40:09 <Graet> exactly luke - it is testing, testing in myunderstanding should NOT be used in production
64 2012-06-21 00:40:23 <gmaxwell> Graet: you can use it in non-critical production.
65 2012-06-21 00:40:30 <doublec> midnightmagic: bitcoin has some new fangled thing where when you stop bitcoind it stops quickly but the blockcain files are tied to the database log files
66 2012-06-21 00:40:37 <doublec> midnightmagic: so you can't just copy them
67 2012-06-21 00:40:37 <Graet> sig
68 2012-06-21 00:40:39 <Graet> h
69 2012-06-21 00:40:42 <Graet> nm
70 2012-06-21 00:40:47 <gmaxwell> midnightmagic: yea, _when_ did you copy it?
71 2012-06-21 00:40:47 <Graet> you dont want to undestand
72 2012-06-21 00:40:50 <doublec> midnightmagic: unless you use '-detachdb' or something
73 2012-06-21 00:41:07 <midnightmagic> gmaxwell: a few weeks ago. hang on I can get you an actual timestamp.
74 2012-06-21 00:41:18 <gmaxwell> Graet: I understand what you're saying. But I think you're wrong.
75 2012-06-21 00:41:27 <midnightmagic> gmaxwell: 2012-06-09 01:03
76 2012-06-21 00:41:31 <gmaxwell> luke-jr: it doesn't matter in this case. There isn't anything to keep secret.
77 2012-06-21 00:41:39 <midnightmagic> so that would have been around the time that I rebuilt a bitcoind.
78 2012-06-21 00:41:45 <gmaxwell> midnightmagic: ah, then the node you copied it from what version was that?
79 2012-06-21 00:41:45 <luke-jr> gmaxwell: PM
80 2012-06-21 00:42:12 <midnightmagic> gmaxwell: let's see.. v0.6.1-364-g11f73c7-dirty-beta
81 2012-06-21 00:42:39 <Graet> this shit needs to be handled better
82 2012-06-21 00:42:50 <Graet> how is the pool op mailing list coming?
83 2012-06-21 00:42:55 <midnightmagic> Graet: Best way to get it handled better is to contribute my good man. :)
84 2012-06-21 00:43:14 <Graet> tell me how i can....
85 2012-06-21 00:44:15 <midnightmagic> Graet: Well, you can identify what it is that should be handled better, and try to help push things towards that. Without something constructive t work with, there doesn't seem to be a huge incentive if they might just be doing it wrong all over again in your view, right?
86 2012-06-21 00:44:21 <Graet> if i'm given info i will happily distribute it among pool operators so we know wtf is going on without having to read hours of -dev and mailing list unrelated stuff
87 2012-06-21 00:44:28 <luke-jr> Graet: never got a reply from the guy Gavin emailed to set it up IIRC
88 2012-06-21 00:44:51 <Graet> 1 a standard for what devs anopunce as "critical vuln" so its not opinion - mentione that
89 2012-06-21 00:45:22 <midnightmagic> Graet: How specifically would you define that?
90 2012-06-21 00:45:48 <luke-jr> I have 3 levels of vulns:
91 2012-06-21 00:45:53 <luke-jr> err, 2
92 2012-06-21 00:46:00 <midnightmagic> My opinion is that "critical vuln" means "someone can take all your money"
93 2012-06-21 00:46:07 <luke-jr> not-so-serious: DoS + Fake Conf
94 2012-06-21 00:46:17 <Graet> midnightmagic, on a scale of 1 to 10 1 being trivial 10 being critical
95 2012-06-21 00:46:30 <luke-jr> serious: Theft, Exposure, Netsplit, and Unknown
96 2012-06-21 00:46:44 <Graet> midnightmagic, yes and someone elses might be different thats why we need a standard
97 2012-06-21 00:46:46 <gmaxwell> midnightmagic: Can take your money, or Can shut the network down with ~O(1) work.
98 2012-06-21 00:46:47 <midnightmagic> Graet: ... then what's the difference between level 2 and level 3? So many of those choices is going to be back to opinion again, wouldn't you agree?
99 2012-06-21 00:46:51 <luke-jr> Graet: 1-to-10 scale would be very hard to make objective
100 2012-06-21 00:47:18 <luke-jr> Graet: did you see https://en.bitcoin.it/wiki/CVEs ?
101 2012-06-21 00:47:21 <Graet> well some sort of scale that works , companoes that ajnnounce vulnerbilities seem to be able to work out a scale..../
102 2012-06-21 00:47:26 <gmaxwell> and sometimes these levels depend on what you're doing. A bug that makes your node get stuck on a fork might be "take all your money" or it might just be a boring DOS depending on how youre using bitcoin.
103 2012-06-21 00:47:36 <midnightmagic> gmaxwell: I'm not even really that concerned about the network shutting down as long as we all agree that the network is in fact shut down at block X.
104 2012-06-21 00:47:49 <gmaxwell> Graet: we describe it specifically in the announcement "Fixed a serious denial-of-service attack that could cause the
105 2012-06-21 00:47:52 <gmaxwell> bitcoin process to become unresponsive"
106 2012-06-21 00:48:15 <gmaxwell> Why do you want a scale when we tell you specifically how bad it is?
107 2012-06-21 00:48:19 <Graet> and really i dont care about a scale i want to know that if one dev annopunces something as critical at least there is some concensus that it is actually critical
108 2012-06-21 00:48:21 <midnightmagic> gmaxwell: "directly" take my money. As in, get my node to sign it away into someone else's wallet. :) Or otherwise force the money out of my control via, for example, an exploit that works remotely.
109 2012-06-21 00:48:45 <midnightmagic> Graet: So what you really want is consensus in an open-source project development team?
110 2012-06-21 00:48:51 <gmaxwell> Graet: I told you that I don't disagree with what was said. Are you going to insist on lying?
111 2012-06-21 00:48:56 <Graet> yes the testing version fixed . so come test, everyonme else is vulnerabl;e to a undisclose level of vulnerability\n3797843
112 2012-06-21 00:49:15 <Graet> me lying>
113 2012-06-21 00:49:26 <gmaxwell> I would not have put that much attention on it if I was the only person in the world, but I do not disagree.
114 2012-06-21 00:50:02 <Graet> midnightmagic, for Bitcoin to go forward I firmly believe we ned some standards, vulnerability levels is a standard i would push for strongly
115 2012-06-21 00:50:07 <Graet> rather than opinions
116 2012-06-21 00:50:22 <gmaxwell> Graet: we disclosed the level concretely.
117 2012-06-21 00:50:37 <midnightmagic> gmaxwell: he's just frustrated. If you're at the repeating yourself stage, there's a breakdown in communication and nobody's going to move past the speedbump. Now, about my stuck bitcoin node.. :-D
118 2012-06-21 00:50:40 <luke-jr> Graet: did you see https://en.bitcoin.it/wiki/CVEs ?
119 2012-06-21 00:51:07 <doublec> midnightmagic: how soon did you do the the blockchain copy after shutting the bitcoind down?
120 2012-06-21 00:51:07 <Graet> oh god, but you gm,said you did not consider it critical - this to me shows lack of consensus. and let me scroll up didnt you sa itw as another devs opinion?
121 2012-06-21 00:51:19 <gmaxwell> midnightmagic: so try checkblocks=0 with the level cranked up.
122 2012-06-21 00:51:24 <Graet> i tried to mleave before
123 2012-06-21 00:51:27 <midnightmagic> doublec: after the process was gone from the process table.
124 2012-06-21 00:51:50 <doublec> midnightmagic: were you using a bitcoin version that requires datachdb for the copy to work?
125 2012-06-21 00:52:01 <midnightmagic> gmaxwell: okay!
126 2012-06-21 00:52:15 <midnightmagic> doublec: I don't know. The copy originally did work, and everything was fine for a few weeks.
127 2012-06-21 00:52:20 <gmaxwell> Graet: I don't think any cpu sucking DOS attack is critical, at least so long as it isn't something O(1) for the attacker.
128 2012-06-21 00:52:22 <midnightmagic> or appeared to work anyway..
129 2012-06-21 00:52:36 <TuxBlackEdo> gmaxwell, wanna ban the scammer pming everyone in #bitcoin?
130 2012-06-21 00:52:41 <gmaxwell> TuxBlackEdo: name?
131 2012-06-21 00:52:50 <TuxBlackEdo> alexmm (peek into #bitcoin)
132 2012-06-21 00:52:53 <doublec> midnightmagic: see https://bitcointalk.org/index.php?topic=88734.msg978187#msg978187
133 2012-06-21 00:52:55 <Graet> yes gmaxwell thankis for agreeing with me that different devs opinions dont count as there is no consensus on vuln levels...
134 2012-06-21 00:53:19 <midnightmagic> okay thanks for the pointer.
135 2012-06-21 00:53:31 <gmaxwell> Graet: Also, I seem to have not recieved your support payments. You might want to get in touch with your accounts payable department.
136 2012-06-21 00:53:42 <guruvan> gmaxwell: same old skizza today alexmm was shegman earlier
137 2012-06-21 00:53:47 <Graet> havent recieved an invoice
138 2012-06-21 00:54:02 <gmaxwell> K. I'll send, then we can talk about you dictating how annoucnements work. ;)
139 2012-06-21 00:54:34 <Graet> i'm not dictating i'm asking for consensus so that people apart from devs actually havfe a "standard" o go by..
140 2012-06-21 00:54:39 <gmaxwell> Graet: but really, I certantly don't feel that different opinions don't count and I'd be the one to know.
141 2012-06-21 00:54:48 <Graet> or know what is being talked about
142 2012-06-21 00:55:01 <Graet> different opinions do count
143 2012-06-21 00:55:07 <Graet> we obviously have some now
144 2012-06-21 00:55:43 <Graet> but as a "developm,ent team" one dev announcing a critical vuln that another thinks is trivial leaves a confud=sed taste in my mouth
145 2012-06-21 00:56:38 <gmaxwell> Graet: Sorry, we haven't had our borg upgrade yet. But there isn't any conflict here because the announcement describes what the risk is so you can decide what that means to you.
146 2012-06-21 00:57:11 <midnightmagic> Graet: given all the crappy open source dev infighting out there, honestly, a difference in opinion with devs actually willing to publically say they have a difference in opinion is pretty awesome in my opinion. :)
147 2012-06-21 00:57:24 <Graet> well like the forum post says , i am uncomfortable with the way it was announced and the concern of the miners on my pool, i feel the previous one was handled better.
148 2012-06-21 00:57:52 <luke-jr> I definitely agree CVE-2012-2459 was handled better
149 2012-06-21 00:57:54 <gmaxwell> The previous issue was much more serious and handling it that way had a high cost.
150 2012-06-21 00:58:11 <midnightmagic> gmaxwell: May I ask if you have a blk* download somewhere I can snag? looks like I might have to return back to 173,000 :-(
151 2012-06-21 00:58:14 <luke-jr> Graet: there are reasons this one isn't being handled as well (though I shouldn't disclose why)
152 2012-06-21 00:58:19 <Graet> maybe so gmaxwell . but theres nothing in gavins post that hints to that
153 2012-06-21 00:58:33 <gmaxwell> midnightmagic: you don't need one. you can move your existing blockdat and use loadblocks.
154 2012-06-21 00:58:45 <midnightmagic> oh. okay.
155 2012-06-21 00:58:57 <Graet> there is no prior info to big bitcoin "businesses" as there was to the last one, how can I keep up withn all this info to know what opinion to foloowq?
156 2012-06-21 00:58:59 <midnightmagic> things have changed a lot since i last had to debug a problem..
157 2012-06-21 00:59:04 <gmaxwell> Graet: Are we reading the same post? he says its a dos attack.
158 2012-06-21 00:59:24 <gmaxwell> Graet: then don't. There isn't any need for you to keep up with this.
159 2012-06-21 00:59:46 <Graet> sorry serious - not "critical"
160 2012-06-21 00:59:51 <Graet> wtf
161 2012-06-21 01:00:13 <Graet> i run 7 bitcoinds and updates to bitcoind ...wtf?
162 2012-06-21 01:00:18 <Graet> fuck it
163 2012-06-21 01:00:19 <Graet> l8rs
164 2012-06-21 01:00:33 <gmaxwell> What harm do you think was caused to you here?
165 2012-06-21 01:00:56 <midnightmagic> holy jesus lookit how fast that's sucking the blocks down.
166 2012-06-21 01:01:18 <gmaxwell> midnightmagic: we got a lot faster, so long as your source of blocks is fast.
167 2012-06-21 01:01:20 <midnightmagic> okay.. group hug.
168 2012-06-21 01:02:44 <midnightmagic> gmaxwell: This is great, thanks for the tip. It wouldn't have occurred to me that the blk* can still be mined like that.
169 2012-06-21 01:03:58 <Graet> harm caused? none. potential harm ...unknown... it was announced that there is a vulnerability, and in a testing thread. thus telling everything that anyone not on testing version is vulnerable
170 2012-06-21 01:04:21 <midnightmagic> brr.. my house is feeling cold already.. geez I never really remember how much my house now depends almost wholly on my miners for heat.
171 2012-06-21 01:07:30 <luke-jr> Graet: shouldn't your first priority right now be to update your nodes?
172 2012-06-21 01:07:53 <gmaxwell> Graet: I responded to you on the thread.
173 2012-06-21 01:08:58 <etotheipi_> amiller, gmaxwell: what about super-lite nodes that only want to maintain their own balance and how to spend it: they will *want* to maintain just a list of TxOuts, and be able to verify against the chain -- but if subtrees have the same requirement to remember the history of insertions and deletions, they must track their own past history
174 2012-06-21 01:09:32 <luke-jr> gmaxwell: wtf @ check_status's post&
175 2012-06-21 01:09:43 <midnightmagic> gmaxwell: Hey will -loadblock= also load orphans and basically replay any reorgs?
176 2012-06-21 01:09:54 <luke-jr> midnightmagic: it should
177 2012-06-21 01:10:01 <midnightmagic> luke-jr: this is so cool!
178 2012-06-21 01:10:06 <luke-jr> lol
179 2012-06-21 01:10:29 <midnightmagic> big improvement in the debug messages by the way, guys. huge. really liking the new version's verbosity.
180 2012-06-21 01:10:30 <etotheipi_> amiller, gmaxwell: and for that matter, they must download their entire history in order to construct their verifiable subtree, rather than just the list of TxOuts
181 2012-06-21 01:10:43 <gmaxwell> midnightmagic: Yup!
182 2012-06-21 01:10:47 <Graet> indeed luke-jr just calling europe to see if people are awake...
183 2012-06-21 01:10:53 <etotheipi_> strict ordering of TxOuts is not enough, because the tree structure depends on the history of deletions, as well
184 2012-06-21 01:11:08 <amiller> etotheipi_, the difficulty in the scenarios you describe is that you are talking about 'verification' but you're also making some assumptions about trust
185 2012-06-21 01:11:19 <amiller> how does a super lite node _recognize_ the chain, unless he verifies it for himself or trusts a node?
186 2012-06-21 01:11:37 <midnightmagic> +1 amiller
187 2012-06-21 01:11:51 <amiller> if he trusts a node then we need to start there, and if he's verifying it for himself then that's where to start
188 2012-06-21 01:12:13 <gmaxwell> midnightmagic: Loadblock was created for some benchmarking but it turned out to be a fantastically useful feature.
189 2012-06-21 01:12:33 <etotheipi_> my question is not about trust: it's about how much data do you need to download to verify your balance/txoutlist against the longest chain of headers
190 2012-06-21 01:12:36 <gmaxwell> midnightmagic: once versions with loadblock are widely distributed I'm going to recommend the download sites stop including indexes.
191 2012-06-21 01:12:46 <midnightmagic> gmaxwell: this is turning out to be very useful. hopefully it'll correct my node's sad.
192 2012-06-21 01:13:09 <etotheipi_> it seems that to get my own balance for an address, and create a verifiable sub-tree root, I have to download the entire history, not just the TxOuts
193 2012-06-21 01:13:11 <gmaxwell> midnightmagic: you didn't by any chance save the node's directory before nuking it?
194 2012-06-21 01:13:12 <amiller> etotheipi_, then take the root hash of the longest chain as your starting point of trust
195 2012-06-21 01:13:40 <amiller> that's the root hash of a merkle tree, and you can fetch your whole balance and verification for M log N effort in total
196 2012-06-21 01:13:42 <midnightmagic> gmaxwell: I manually copied my wallet.dat to another file, and then moved the blk* into old/ . everything else I left alone.
197 2012-06-21 01:14:06 <midnightmagic> gmaxwell: Am I going to hell now? :-)
198 2012-06-21 01:14:34 <etotheipi_> wait, remind me M and N
199 2012-06-21 01:14:39 <etotheipi_> I already forgot my own terminology
200 2012-06-21 01:14:49 <amiller> M is the number of unspent outputs you can spend, N is the total number of unspent outputs in the current tree
201 2012-06-21 01:15:27 <etotheipi_> are we talking about the idea with subtrees creating root-hash-leafs for a master tree?
202 2012-06-21 01:15:27 <luke-jr> who has mods on the Development forumG
203 2012-06-21 01:15:44 <etotheipi_> or a simple TxOut tree?
204 2012-06-21 01:16:22 <etotheipi_> (btw, I'm going to start using utxo to refer to unspent-txout)
205 2012-06-21 01:16:22 <gribble> New news from bitcoinrss: jgarzik opened pull request 1494 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1494>
206 2012-06-21 01:17:18 <amiller> yeah i noticed that in your post, i'll start doing that too until someone else suggests otherwise :p
207 2012-06-21 01:17:21 <etotheipi_> I was thinking about the tree structure I posted: where subtrees are collapsed into a single root, and that is what goes into the master tree
208 2012-06-21 01:17:27 <gmaxwell> midnightmagic: hm. if you didn't actually delete the database files you may still end up corrupted.
209 2012-06-21 01:17:57 <midnightmagic> gmaxwell: .. which database files? the blk0001 and blkindex files?
210 2012-06-21 01:18:13 <amiller> etotheipi_, i am assuming that there are a number of subtrees and they are all collected into a single root that is stored in the main blockchain (or an alt blockchain that otherwise inherits any important properties)
211 2012-06-21 01:18:15 <etotheipi_> if that's the case, which I believe it should be for security reasons: then you must use a deterministic tree structure
212 2012-06-21 01:18:35 <midnightmagic> gmaxwell: I don't suppose there's an easy way of saying "load blocks up to block N and then stop" with the -loadblock= is there?
213 2012-06-21 01:19:20 <gmaxwell> midnightmagic: not without editing the code.
214 2012-06-21 01:19:27 <midnightmagic> okie dokie.
215 2012-06-21 01:19:35 <etotheipi_> amiller: oh I am thinking of subtrees as separate objects that are used to populate leaves in the master tree
216 2012-06-21 01:19:35 <midnightmagic> perhaps a future pull request is in order..
217 2012-06-21 01:19:44 <etotheipi_> you are considering them just deeper branches of the same tree
218 2012-06-21 01:19:54 <amiller> there's no difference i don't think
219 2012-06-21 01:19:57 <etotheipi_> they are equivalent though
220 2012-06-21 01:20:12 <amiller> it's not just determinism you want, since i am also considering the trees deterministic, but my determinism depends on applying the updates in a canonical ordering, whereas you want to be able to construct the tree based on some subset of trusted data you acquire or generate?
221 2012-06-21 01:20:33 <gmaxwell> midnightmagic: as far as deletion goes backupyour wallet with backup wallet. shut down cleanly. move blk001.dat out of the way. Delete everything except wallet.dat and bitcoin.conf. Then loadblock the blk file from wherever you moved it.
222 2012-06-21 01:20:58 <etotheipi_> you're right, I shouldn't have used "deterministic"
223 2012-06-21 01:21:17 <etotheipi_> I just keep thinking about it that way, because I've never had to care before about how elements were inserted into a tree structure until now
224 2012-06-21 01:21:19 <gmaxwell> midnightmagic: I've wanted that before, in order to intentionally create forks, but I just edit the code for it.
225 2012-06-21 01:21:43 <etotheipi_> (well.. except for raw binary trees taking in ordered data... but you know what I mean)
226 2012-06-21 01:22:29 <midnightmagic> oo.. on the 171000s things are slowing down pretty good.
227 2012-06-21 01:22:42 <etotheipi_> so my argument is this: I get on the network and download all my unspent TxOuts: from which I can produce the root of the subtree, which is then O(logN) to verify against the header
228 2012-06-21 01:23:07 <amiller> the header contains the root of the subtree, you don't need to produce it
229 2012-06-21 01:23:52 <etotheipi_> header contains the root of the master tree
230 2012-06-21 01:23:55 <amiller> the only reason to produce a root for yourself is if you are not just verifying some data against the longest chain, but you are actually verifying the longest chain as well, incrementally, based on a previous root hash you already know (as a miner or spv client (not supersuperlite) would do)
231 2012-06-21 01:25:08 <amiller> one thing you could do to clarify your example is when you describe a piece of data, note whether you trust it or not
232 2012-06-21 01:25:37 <amiller> you download your unspent txouts, those are untrusted at that point. if you produce a root from some untrusted data, that's also untrusted. The header - is it trusted?
233 2012-06-21 01:26:00 <etotheipi_> amiller: from my diagrams in the original post: I pop onto the network and grab the latest headers, find the longest chain... then I download nodes A, B, and the other two nodes with red boxes
234 2012-06-21 01:26:39 <etotheipi_> now I know what my address's subtree root should look like and know it matches the header
235 2012-06-21 01:26:59 <amiller> you trust the header because it's the longest chain, right?
236 2012-06-21 01:27:20 <etotheipi_> so now I download the set of my current TxOuts from my peers -- but whoops, I can't verify against the subtree root I just verified
237 2012-06-21 01:27:27 <etotheipi_> because I don't know how to construct that subtree
238 2012-06-21 01:27:33 <etotheipi_> yes, longest chian
239 2012-06-21 01:28:28 <luke-jr> why does a||b have to be boolean? -.-
240 2012-06-21 01:28:43 <amiller> then you already know the root hash that was in the longest chain. When you download each txouts, you can verify the path from the leaf to the master root
241 2012-06-21 01:28:51 <amiller> the tree has already been constructed if you know its root hash
242 2012-06-21 01:28:58 <luke-jr> A||B should be A if A is true, and B otherwise.
243 2012-06-21 01:29:04 <luke-jr> gmaxwell: agree? :P
244 2012-06-21 01:29:46 <luke-jr> next question: am I allowed to use GCC's ?: extension in bitcoin code?
245 2012-06-21 01:29:55 <etotheipi_> so it becomes part of the protocol to describe the path of the nodes, not just the nodes themselves?
246 2012-06-21 01:30:13 <amiller> that's part of being a merkle tree
247 2012-06-21 01:30:36 <amiller> there's only one valid path from a node to a given root hash
248 2012-06-21 01:31:19 <amiller> the root hash unambiguously describes the entire tree
249 2012-06-21 01:31:22 <etotheipi_> you're saying the the node should provide me all the subtree information
250 2012-06-21 01:31:41 <amiller> yes, a log N sized 'verification object' per item, M log N total
251 2012-06-21 01:31:43 <etotheipi_> I'm saying, I should be able to take my arbitrary list of TxOuts that I know belong to my address, and produce a root
252 2012-06-21 01:31:56 <etotheipi_> and that root is included in the master tree
253 2012-06-21 01:32:14 <etotheipi_> thus, to get my balance, I only download a list of TxOuts
254 2012-06-21 01:32:28 <amiller> so you want M rather than M log N
255 2012-06-21 01:32:32 <etotheipi_> maybe I'm expecting too much
256 2012-06-21 01:33:21 <etotheipi_> yes, because all your nodes pass through the same single root node
257 2012-06-21 01:33:33 <etotheipi_> so you don't need to re-download that branch for every TxOut
258 2012-06-21 01:33:48 <etotheipi_> *subroot... gah need better terminology
259 2012-06-21 01:34:01 <gmaxwell> luke-jr: ...
260 2012-06-21 01:34:25 <amiller> if some of the data is duplicated, like all the shared nodes since your utxo leaves will be near each other - you don't have to redownload the redundant parts, the worst case is still M log N
261 2012-06-21 01:34:30 <gmaxwell> luke-jr: yes, A||B is shortcutting has that behavior. And the terinary operator is not a gcc extension!
262 2012-06-21 01:34:40 <gmaxwell> ternary*
263 2012-06-21 01:34:47 <luke-jr> gmaxwell: a ?: b <-- GCC extension
264 2012-06-21 01:35:08 <gmaxwell> oh what the !@#! does that do?
265 2012-06-21 01:35:23 <luke-jr> gmaxwell: a ? a : b , but without evaluating A twice
266 2012-06-21 01:35:43 <gmaxwell> crazy, I.. don't think I knew that. Does it work in MSVC?
267 2012-06-21 01:35:47 <luke-jr> nfc
268 2012-06-21 01:36:00 <luke-jr> I wish it was standard
269 2012-06-21 01:36:01 <etotheipi_> so O(logN) to get the data to verify the subtree root... then O(M) to download and verify that piece
270 2012-06-21 01:36:19 <etotheipi_> so it's O(logN + M)
271 2012-06-21 01:36:28 <gmaxwell> luke-jr: Iff a is something local and the compiler can prove it has no side effects it'll be the same anyways.
272 2012-06-21 01:36:47 <amiller> i'm considering that N is the total number of leaves in the entire thing, not just the subtrees
273 2012-06-21 01:36:54 <amiller> but i agree with what you're saying there in terms of different subtree
274 2012-06-21 01:36:55 <amiller> s
275 2012-06-21 01:36:57 <luke-jr> gmaxwell: well, it's a bug in refactor_times I think
276 2012-06-21 01:37:04 <gmaxwell> luke-jr: so just type foo; foo=a ; a?a:b; ... just as good assuming a returns a primitive type.
277 2012-06-21 01:37:17 <luke-jr> ah
278 2012-06-21 01:37:19 <etotheipi_> amiller: that's where our definitions were different: I never considered the TxOuts to be leaves of the master tree
279 2012-06-21 01:37:27 <luke-jr> unfortunately, it's not local
280 2012-06-21 01:37:29 <etotheipi_> I considered the subtree roots to be the leaves of that tree
281 2012-06-21 01:37:46 <gmaxwell> luke-jr: then you can use a variable to make it so.
282 2012-06-21 01:37:50 <luke-jr> yeah
283 2012-06-21 01:37:52 <luke-jr> just annoying :P
284 2012-06-21 01:37:56 <etotheipi_> thus, you maintain/download/modify you own little list of TxOuts, and then only O(logN) to verify it's correct
285 2012-06-21 01:38:00 <gmaxwell> it's a cute extension.
286 2012-06-21 01:38:18 <etotheipi_> where N is the number of unique TxOut scripts
287 2012-06-21 01:38:37 <gmaxwell> C++11 doesn't even include all of C99, so ::shrugs::
288 2012-06-21 01:38:43 <luke-jr> O.o
289 2012-06-21 01:39:04 <amiller> i don't disagree with that, that's an optimization, it's just that i'm mostly concerned about worst-case behavior. Any protocol involving root hashes is going to be a normative protocol, so miners will need to actually verify every leaf in every subtree.
290 2012-06-21 01:39:43 <etotheipi_> amiller: well they will do that anyway, in either scheme
291 2012-06-21 01:39:51 <luke-jr> gmaxwell: I suppose the path of accepting binary ?: leads to the monster that is ?:=
292 2012-06-21 01:39:52 <gmaxwell> including var arrays, which are the most obvious painful gap... though STL containers and such make it less of an issue in C++, it's nice to avoid the heap, esp if you have recursive functions where you can reason about the peak stack usage, but ::shrugs::
293 2012-06-21 01:39:52 <luke-jr> <.<
294 2012-06-21 01:40:14 <etotheipi_> if you define the ordering to be based on a string key (or something like) where [TxOutScript || TxOutInfo]
295 2012-06-21 01:40:26 <luke-jr> gmaxwell: wait, char abc[abclen]; <-- not valid in C++11 still?
296 2012-06-21 01:40:39 <etotheipi_> then it always sorts by TxOut script, and all TxOuts are stored under the same subtree
297 2012-06-21 01:40:42 <luke-jr> I bet I've violated that rule&
298 2012-06-21 01:40:46 <amiller> etotheipi_, with my definition of N, the worst case is always log N. if instead you consider N to be the number of subtrees, then you need to do log N + log W where W is the worst case for the worst subtree
299 2012-06-21 01:40:54 <etotheipi_> err... that wasn't strictly worded, but I think yo uget it
300 2012-06-21 01:41:08 <gmaxwell> luke-jr: yup. Microsoft refuses to implement it, in fact its now being made an optional feature of C. :(
301 2012-06-21 01:41:23 <amiller> etotheipi_, sure i agree, that's exactly the binding i had in mind, well ever since gmaxwell told me you thought of it
302 2012-06-21 01:41:23 <etotheipi_> amiller: that is true: SatoshiDice would encompass that
303 2012-06-21 01:41:39 <gmaxwell> nevermind that it's bascially just syntatic sugar on alloca which everyone does.
304 2012-06-21 01:41:49 <etotheipi_> on the other hand, all lite-nodes that aren't SatoshiDice will have much smaller trees to deal with
305 2012-06-21 01:41:50 <etotheipi_> :)
306 2012-06-21 01:42:00 <amiller> definitely
307 2012-06-21 01:42:23 <etotheipi_> so I agree with your worst case -- but worst case isn't that bad
308 2012-06-21 01:42:40 <luke-jr> gmaxwell: wtf, why?
309 2012-06-21 01:42:43 <amiller> so how about this [TreeLabel || everything else], so for [TxoutTree || TxOutScript || TxOut Info] will be what the nodes look like in your subtree
310 2012-06-21 01:43:06 <luke-jr> I can't imagine coding without variable arrays anymore :<
311 2012-06-21 01:43:08 <amiller> [VanillaTree || TxHash || Index] would be the subtree we're used to
312 2012-06-21 01:43:31 <amiller> this isn't any different than the 'branches are equivalent to subtrees' notion we agreed on
313 2012-06-21 01:43:47 <gmaxwell> luke-jr: there are people philosophically opposed to dynamic stack alloation because it's 'hard' to be sure there won't be stack overflow. It's a stupid concern because recursive functions have the same risk.
314 2012-06-21 01:43:59 <etotheipi_> the difference is that my interpretation/illustration takes into accound that the data you care about is strictly contained below a single node
315 2012-06-21 01:44:05 <gmaxwell> allocation*
316 2012-06-21 01:44:41 <luke-jr> gmaxwell: well, stack overflows are kindof stupid anyway IMO
317 2012-06-21 01:44:50 <gmaxwell> etotheipi_: you're assuming address reuse, and I'd generally oppose infrastructure that encourages it because we really lose privacy terribly with extensive reuse.
318 2012-06-21 01:45:05 <luke-jr> gmaxwell: no reason the OS can't just put it at the bottom of the address space and allocate everything else near the top
319 2012-06-21 01:45:38 <etotheipi_> gmaxwell: it doesn't "encourage" it... it takes into account that it happens, and you want to be able to be sure that a node gave you all your TxOuts in a verifiable way
320 2012-06-21 01:45:43 <gmaxwell> luke-jr: at best you'd still have to take a slow as heck fault and TLB flush to grow it.
321 2012-06-21 01:46:03 <amiller> etotheipi_, the way you phrased that it's trivially true in my example as well - all the data is strictly contained below the root node. What i think you mean is that it's more efficient in some sense
322 2012-06-21 01:46:08 <gmaxwell> etotheipi_: you can be sure you got all your TxOuts in a verifiable way without that!
323 2012-06-21 01:46:10 <amiller> all the things bleow this node are my data, and there is no other data below this root node
324 2012-06-21 01:46:20 <amiller> but that's not important because when you download the tree you just download the bits you want
325 2012-06-21 01:46:25 <etotheipi_> if I sign on with a fresh wallet, and a node says "here's your one TxOut for this address", with a simple tree structure I can verify it's valid but I odn't know that it's all of them
326 2012-06-21 01:47:04 <gmaxwell> etotheipi_: and I expect that determinstic wallets, sharable public side chains, and payment protocols will reduce the address reuse in the future. In the long term we want to generally not have regular users handling addresses at all.
327 2012-06-21 01:47:36 <gmaxwell> etotheipi_: you sound like you were suffering the confusion that I was suffering when I thought the tree had to have a deterministic order on just the txouts.
328 2012-06-21 01:48:19 <gmaxwell> You don't. You have the peer show you the nodes bracketing where that txout goes and you know you got all the data.
329 2012-06-21 01:48:56 <etotheipi_> gmaxwell: I don't understand, how are you envisioning the tree is indexed/keyed?
330 2012-06-21 01:49:44 <gmaxwell> to do lookups by addres we'd need multiple tress, because for validation we must have a tree indexed by transaction id.
331 2012-06-21 01:50:04 <etotheipi_> (gah, I keep forgetting about that)
332 2012-06-21 01:51:20 <etotheipi_> so a tree node basically has keys [TxOutScript || TxOutpoint]
333 2012-06-21 01:51:26 <etotheipi_> so it sorts by script first
334 2012-06-21 01:51:52 <amiller> gmaxwell, would you rather think of it as two trees or as one tree with a key prefix?
335 2012-06-21 01:51:52 <etotheipi_> and then all subsequent TxOuts for a given TxOutScript will be stored below that node
336 2012-06-21 01:53:02 <gmaxwell> amiller: hm!
337 2012-06-21 01:59:39 <etotheipi_> can we just agree to use a patricia tree and then this will all be moot? :)
338 2012-06-21 02:03:59 <etotheipi_> in most cases the "sub-trees" are just degenerate single nodes: but when you ask for such txout lists, you don't know that until you get it and verify it: and if all of those are going through the same tree node anyway (whether it's a tree+subtree or single tree with prefix keys) then you can just maintain a strict list of your TxOuts and keep verifying it against the headers with logN
339 2012-06-21 02:04:51 <amiller> etotheipi_, instead of each node representing a subtree, i like to think of each node as containing the value of the largest leaf element in its left subtree
340 2012-06-21 02:05:21 <amiller> i created a sort of pictorial example in four frames here http://imgur.com/a/KNeq5#0
341 2012-06-21 02:06:27 <etotheipi_> either way, when someone hands you those M (probably =1) TxOuts that they claim belong to you... if it's not actually M=1 you have to retrieve extra information to know how to verify it (the tree structure)
342 2012-06-21 02:07:12 <amiller> if you have to retrieve extra information, thats because the 'someone' didn't give you enough data to prove it yourself
343 2012-06-21 02:07:35 <etotheipi_> or because we picked a tree structure that required extra information that isn't really part of what I need to otherwise maintain my wallet
344 2012-06-21 02:08:40 <etotheipi_> I can concede at any time here: I just have a tough time believing that you guys think it's out of this world, that anyone would ever be hindered by this restriction and it isn't worth picking a more-...deterministic structure
345 2012-06-21 02:09:48 <etotheipi_> (err... how about insert-order-invariant)
346 2012-06-21 02:10:42 <amiller> are there any other kinds of invariance you might also want?
347 2012-06-21 02:10:47 <etotheipi_> I just feel like all arguments are "well no one would use it that way"... well what if it makes sense for someone to use it that way, but can't because of this restriction
348 2012-06-21 02:11:00 <etotheipi_> *makes sense in the future
349 2012-06-21 02:11:32 <amiller> (i'm grateful for the opportunity to talk about the problem, so i'm happy if you don't concede too soon)
350 2012-06-21 02:11:59 <gmaxwell> its important that we don't make privacy a tricky economic tradeoff. If people can save money by throwing away privacy that will be bad for all users.
351 2012-06-21 02:12:07 <gmaxwell> Bitcoin's privacy story is really fragile.
352 2012-06-21 02:12:27 <etotheipi_> amiller: I enjoy this kind of discussion, I'm just surprised that I met with so much resistence to what I thought was a perfectly reasonable requirement
353 2012-06-21 02:12:49 <gmaxwell> and without privacy you get all kinds of distorting effects like "You could and should have node those txns were for child porn! you've committed a crime for not blocking them!"
354 2012-06-21 02:13:19 <etotheipi_> gmaxwell: do you see a privacy risk in any of this ?
355 2012-06-21 02:13:47 <gmaxwell> etotheipi_: making it much cheaper to use few addresses, by making them O(1) to get the balances of, has an extreme privacy risk.
356 2012-06-21 02:14:29 <amiller> etotheipi_, i guess the explanation for why it's met with resistance is that it _does_ break the simple merkle tree case. I actually do know of a way to do what you ask, but it relies on wickedly homomorphic hash functions
357 2012-06-21 02:14:36 <gmaxwell> (And not that I support child porn rather I know lots of things will be called that falsely and there is a risk of the whole system unravling if fungability is hurt in practice)
358 2012-06-21 02:15:44 <amiller> http://www.cse.msstate.edu/~ramkumar/gw-102.pdf
359 2012-06-21 02:16:19 <amiller> one of the other interesting reasons to prefer that sort of insert order invariants is that you can parallelize/distribute updates to the structure
360 2012-06-21 02:18:37 <amiller> but i don't understand it works
361 2012-06-21 02:19:47 <amiller> i don't know if the universal homomorphic encryption result also applies to hash functions rather than the public key protocols?
362 2012-06-21 02:20:01 <etotheipi_> gmaxwell: so you want the slightly less efficient structure to make sure that those desire absolute top efficiency won't be seduced into reusing addresses?
363 2012-06-21 02:20:39 <gmaxwell> etotheipi_: correct. and it's not less efficient in the case where there actually is no reuse.
364 2012-06-21 02:21:11 <etotheipi_> gmaxwell: but there will always be reuse-- and even if there isn't -- you don't know that until you get the information
365 2012-06-21 02:21:15 <gmaxwell> may be more efficient ultimately, in that case, because we've dropped one design constraint.
366 2012-06-21 02:21:37 <etotheipi_> amiller: interesting point about parallel updating
367 2012-06-21 02:52:02 <dk5> can public keys in scripts be anything other than 33 or 65 bytes long?
368 2012-06-21 03:27:17 <sipa> dk5: no
369 2012-06-21 03:28:06 <dk5> sipa: how come in the template matching for output script parsing, anything between 33 and 120 is accepted as a key if OP_PUBKEY(S) is reached?
370 2012-06-21 03:29:01 <dk5> sipa: wouldn't it be safer to check for exactly 33 and 65?
371 2012-06-21 03:29:18 <dk5> sipa: in terms of the length, I mean
372 2012-06-21 03:30:06 <sipa> i bet satoshi just didn't know enough about it
373 2012-06-21 03:30:54 <dk5> sipa: i see. so checking for 33 or 65 only wouldn't screw up script parsing in the future?
374 2012-06-21 03:37:36 <luke-jr> dk5: &
375 2012-06-21 03:46:32 <dk5> luke-jr: ?
376 2012-06-21 08:08:34 <sipa> gmaxwell: the database code does an ss.reserve(10000) when serializing data
377 2012-06-21 08:08:55 <sipa> gmaxwell: which probably avoids reallocating continuously
378 2012-06-21 08:26:39 <sipa> oh my... CDB::Read just returns false (as if the data was not found) when it cannot deserialize the value... without any error logging
379 2012-06-21 08:34:34 <TuxBlackEdo> what is the best portable windows vpn client?
380 2012-06-21 08:34:45 <TuxBlackEdo> openvpn, right?
381 2012-06-21 08:51:28 <sipa> gmaxwell: no idea how i got the 18 minute figure for blockchain loading to 172k, but not I do it consistently in 20
382 2012-06-21 08:51:36 <sipa> *now
383 2012-06-21 09:15:52 <TD> good afternoon
384 2012-06-21 09:16:11 <TD> sipa: yeah but it's the next 10k that kill you ....
385 2012-06-21 09:26:45 <Habbie> TuxBlackEdo, i'd say openvpn, yes - assuming the server is compatible
386 2012-06-21 09:37:03 <sipa> TD: up to 172k was my "standard" test that always used to take +- 30 minutes on this machine
387 2012-06-21 10:46:24 <gribble> New news from bitcoinrss: Diapolo opened pull request 1495 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1495>
388 2012-06-21 10:49:55 <t7> windows has vpn client built in....
389 2012-06-21 10:50:04 <t7> i use it erryday
390 2012-06-21 13:02:25 <copumpkin> is there a planned schedule for the next public release?
391 2012-06-21 13:16:30 <gmaxwell> copumpkin: Never, just to upset you.
392 2012-06-21 13:16:37 <copumpkin> :)
393 2012-06-21 13:17:17 <gmaxwell> What do you mean by next public release? 0.6.3 or 0.7.0?
394 2012-06-21 13:23:43 <gribble> 185595
395 2012-06-21 13:23:43 <sipa> ;;bc,blocks
396 2012-06-21 13:26:30 <gmaxwell> midnightmagic: how is your node doing?
397 2012-06-21 13:27:07 <gmaxwell> no-detach seems to be causing a fair amount of trouble for people.
398 2012-06-21 13:48:10 <luke-jr> tcatm: bitcoincharts feed down?
399 2012-06-21 13:50:33 <luke-jr> hmm
400 2012-06-21 14:45:59 <midnightmagic> gmaxwell: I fell asleep last night. I'll go look and let you know.
401 2012-06-21 14:46:31 <midnightmagic> ;;bc,stats
402 2012-06-21 14:46:33 <gribble> Current Blocks: 185596 | Current Difficulty: 1726566.5591935 | Next Difficulty At Block: 187487 | Next Difficulty In: 1891 blocks | Next Difficulty In About: 2 weeks, 1 day, 1 hour, 54 minutes, and 59 seconds | Next Difficulty Estimate: 1516483.96210358 | Estimated Percent Change: -12.167651225
403 2012-06-21 14:46:43 <midnightmagic> "blocks" : 185596, <-- looks good, the error is also cleared.
404 2012-06-21 14:46:47 <jgarzik> very tired of BDB problems
405 2012-06-21 14:46:56 <jgarzik> let's just invent our own db ;)
406 2012-06-21 14:47:06 <sipa> we are getting aggravated
407 2012-06-21 14:47:16 <TD> leveldb!!
408 2012-06-21 14:47:17 <sipa> jgarzik: leveldb ?
409 2012-06-21 14:47:18 <TD> but not for wallets
410 2012-06-21 14:47:22 <gmaxwell> jgarzik: oh, now .. finally you're where everyone else was a few months ago! :)
411 2012-06-21 14:48:28 <luke-jr> lol
412 2012-06-21 14:48:29 <midnightmagic> gmaxwell: the -loadblock= appears to have worked even with the borked blk* files.
413 2012-06-21 14:48:44 <midnightmagic> please for the love of god don't redo a database engine.
414 2012-06-21 14:48:59 <sipa> for the wallets we just may
415 2012-06-21 14:49:35 <luke-jr> wallets don't need a db engine
416 2012-06-21 14:49:37 <midnightmagic> there's a reason why nobody builds their own database engine.
417 2012-06-21 14:49:39 <gmaxwell> midnightmagic: for wallets it wouldn't be a 'database engine'. It's just an append only log.
418 2012-06-21 14:51:51 <TD> bitcoinj just saves a protocol buffer
419 2012-06-21 14:52:00 <TD> if you want a db ..... well, do what fireduck did and fork the damn thing :)
420 2012-06-21 14:52:29 <jgarzik> my main issue is LSN hackery
421 2012-06-21 14:52:40 <jgarzik> BDB just wasn't built for all the copying-around-databases that our users do
422 2012-06-21 14:52:46 <sipa> indeed
423 2012-06-21 14:54:26 <jgarzik> less strictly tied to one specific environment, IOW
424 2012-06-21 14:54:28 <gmaxwell> our use case is screwed up at many levels. "Hi, we're going to stick your database into the normative part of a distributed algorithim with tens of millions of dollars behind it operating consistently everywhere, not just also failing to lose or corrupt data. Oh, and technically unsophicated users are going to dork around with it at random." I can only imagine the screaming the would result.
425 2012-06-21 14:54:37 <TD> bitcoin itself is LE only, right
426 2012-06-21 14:54:46 <TD> you can copy them around. but i'd not suggest using leveldb for a wallet
427 2012-06-21 14:55:08 <gmaxwell> TD: making bitcoin work on BE shouldn't be that enormous of an effort, just no one has done it yet.
428 2012-06-21 14:55:35 <gmaxwell> If anyone has a burning desire to work on it, I have a dual-G5 PPC machine with debian-testing on it that I'd be glad to hand shells out on.
429 2012-06-21 14:57:02 <gmaxwell> (didn't think so)
430 2012-06-21 15:07:17 <Nolybab> @gmaxwell, i understand that
431 2012-06-21 15:07:33 <gmaxwell> Nolybab: if you're looking to do time committments or such there are already systems for that: E.g. https://github.com/goblin/chronobit
432 2012-06-21 15:07:44 <Nolybab> but regardless, even if for no other reason that numismatic interest, i'd like 3-blocks thus encoded
433 2012-06-21 15:08:13 <Nolybab> @gmaxwell, but can i get a clean block wtih no transactions? is it possible?
434 2012-06-21 15:08:26 <Nolybab> i know highly improbable, but surely someone can hash one out
435 2012-06-21 15:08:35 <Nolybab> an sign it for me :)
436 2012-06-21 15:09:09 <jgarzik> a positive report on block propagation, possibly, with v0.6.3rc1: https://bitcointalk.org/index.php?topic=88302.msg979403#msg979403
437 2012-06-21 15:09:47 <drizztbsd> when do you release 0.6.3?
438 2012-06-21 15:09:47 <midnightmagic> Nolybab: you should talk to the gpumax people. I'm pretty sure they could arrange such a thing.
439 2012-06-21 15:10:06 <Nolybab> how do i find gpumax?
440 2012-06-21 15:11:49 <Nolybab> i found their IRC channel, thx :)
441 2012-06-21 15:12:05 <drizztbsd> what is gpumax? :P
442 2012-06-21 15:12:54 <jgarzik> gpumax is for renting mining power
443 2012-06-21 15:13:12 <jgarzik> though nefarious things about gpumax's use cases and ownership have been alleged
444 2012-06-21 15:13:17 <Nolybab> brb
445 2012-06-21 15:16:21 <Eliel> Nolybab: one of the mining pools might be willing to take this on too, if you ask around.
446 2012-06-21 15:16:35 <midnightmagic> Nolybab: So the idea would be for you to either build, or find, a pool service which would be willing to create the empty blocks for you. Then set up a gpumax contract and point gpumax at it until you havyour three blocks.
447 2012-06-21 15:17:24 <midnightmagic> jgarzik: Meh. Until there's actual evidence, or people have specific complaints, who cares eh.
448 2012-06-21 15:18:57 <midnightmagic> drizztbsd: gpumax is a mining block who is willing to point their mining effort at a reputable pool in return for payment. So the idea is, you pay gpumax to point their hashrate somewhere, and you get the benefit of the mining. They take payment in.. bitcoins I think. The gpumax miners take payment, usually higher than actual mining return would be, and you get to point the hashrate somewhere specific.
449 2012-06-21 15:19:45 <jgarzik> To each his own... On the Internet in the bitcoin world, things tend to smell funny (mybitcoin.com) and not follow basic logic, then explode "unexpectedly."
450 2012-06-21 15:19:50 <drizztbsd> who pay gpumax to use a specific pool?
451 2012-06-21 15:20:01 <jgarzik> bitcoinica "unexpectedly" explodes
452 2012-06-21 15:20:33 <jgarzik> there is never hard evidence before the explosion
453 2012-06-21 15:20:35 <midnightmagic> drizztbsd: People were using it at the beginning of fresh PPS blocks with the idea being they'd be disproportionately rewarded if the block showed up early.
454 2012-06-21 15:21:34 <midnightmagic> drizztbsd: Some people allege that it can be used to exchange "dirty" bitcoins for fresh ones, if you're willing to accept a 20% loss or whatever the gpumax premium is.
455 2012-06-21 15:22:25 <midnightmagic> drizztbsd: As far as I'm aware, there has been no evidence that actual dirty bitcoins have been paid out to gpumax miners. Of course, I'm not paying much attention these days.. so..
456 2012-06-21 15:23:32 <midnightmagic> jgarzik: How did mybitcoin not follow basic logic?
457 2012-06-21 15:24:55 <jgarzik> midnightmagic: users of mybitcoin.com did not: mysterious owner of a mysterious company, no third party auditing of legal, financial or technical setup, no real guarantees that the owner would not simply run off with the money, with zero recourse.
458 2012-06-21 15:26:01 <midnightmagic> jgarzik: third-party auditing is overrated. it's tough to provide real-world evidence of services designed to be as anonymous as possible.
459 2012-06-21 15:27:25 <midnightmagic> yeah, bitcoinica's weird post-explosion stuff was odd, and the acrimony makes me happy I never had an account there.
460 2012-06-21 15:27:34 <midnightmagic> at least not one with money in it.
461 2012-06-21 15:30:47 <jjjx> Why is there such concern about 'dirty' bitcoins anyway?
462 2012-06-21 15:30:59 <jjjx> I would imagine that all paper money for example, is tainted with some awful transaction.
463 2012-06-21 15:31:09 <jjjx> Is this just to help with forensics?
464 2012-06-21 15:41:40 <phantomcircuit> jgarzik, i think that unexpectedly needs bold quotes "unexpectedly"
465 2012-06-21 15:44:57 <Nolybab> no help there
466 2012-06-21 15:48:34 <gavinandresen> we should start an anonymous pool to predict the next "unexpected" disaster. I think I'd put my money on GLBSE
467 2012-06-21 15:48:41 <jgarzik> ;)
468 2012-06-21 15:49:00 <gavinandresen> (but don't tell anybody that, I don't want the GLBSE fans to be mad at me)
469 2012-06-21 15:51:12 <genjix> i tried warning nefario about that
470 2012-06-21 15:51:48 <midnightmagic> Nolybab: they're not willing to let you buy shares against a blank pool for 3 blocks?
471 2012-06-21 15:52:14 <Nolybab> they say it's a DDOS attack on the system
472 2012-06-21 15:52:18 <midnightmagic> gavinandresen: awesome.
473 2012-06-21 15:52:25 <Nolybab> that my idea is a big FU to the whole community
474 2012-06-21 15:52:38 <gavinandresen> I might be wrong, I don't know nuthin about running stock markets.
475 2012-06-21 15:52:42 <midnightmagic> Nolybab: Whoever said that isn't taking into account the fact that any valid blocks are making the system stronger.
476 2012-06-21 15:52:52 <Nolybab> and i'm willing to pay a premium
477 2012-06-21 15:53:01 <gavinandresen> empty blocks are antisocial
478 2012-06-21 15:53:07 <midnightmagic> Nolybab: Most private miners would likely be willing to help you.
479 2012-06-21 15:53:12 <Nolybab> i know gavin, from one perspective
480 2012-06-21 15:53:16 <midnightmagic> gavinandresen: Perhaps, but they still make the system stronger.
481 2012-06-21 15:53:16 <Nolybab> i'm only talking about 3 blocks
482 2012-06-21 15:53:26 <Nolybab> and there is a madness to my method
483 2012-06-21 15:53:41 <Nolybab> you see, BTC are not setup to efficiently work with micro or nano-transactions
484 2012-06-21 15:53:50 <Nolybab> i have an idea that may help in that regard
485 2012-06-21 15:53:57 <Nolybab> but i cannot pollute the blockchain
486 2012-06-21 15:54:03 <midnightmagic> Nolybab: Gavin's the lead developer for the bitcoin source code. :)
487 2012-06-21 15:54:30 <Nolybab> i know midnight, which is why i'm glad he's here...he can kill my idea right now, or at least consider my proposal
488 2012-06-21 15:54:49 <Nolybab> see beyond the 'obvious' to see what this may mean to the future
489 2012-06-21 15:55:12 <Nolybab> someday there has to be a transition from 'mining based' to transaction based BitCoin economy
490 2012-06-21 15:55:18 <Nolybab> hows that going to happen?
491 2012-06-21 15:55:44 <gavinandresen> if your idea can work with non-empty blocks then great. If not, the danger is your idea becomes wildly popular and "just 3 blocks" becomes 100 people times "just 3 blocks"
492 2012-06-21 15:55:46 <midnightmagic> Nolybab: when the transaction fees exceed the value of the mining block reward. :)
493 2012-06-21 15:56:36 <gavinandresen> Nolybab: we were talking about that yesterday, see https://gist.github.com/2961409
494 2012-06-21 15:56:46 <Nolybab> i understand, i have been following that
495 2012-06-21 15:56:58 <Nolybab> but even you yourself stated that BTC was NOT for micro or nano-transactions
496 2012-06-21 15:57:16 <Nolybab> supernodes are one proposal on the table, i see that for scalability and visa level transactions
497 2012-06-21 15:57:28 <Nolybab> but how to enable true micro and nano-transactions, down to the satoshi level?
498 2012-06-21 15:57:31 <Nolybab> that's what i'm working on
499 2012-06-21 15:57:37 <gavinandresen> cool!
500 2012-06-21 15:57:43 <Nolybab> and it requires (at least in my mind) virgin blocks
501 2012-06-21 15:58:14 <Nolybab> with some base58 encoded JSON in the coinbase when the block is generated
502 2012-06-21 15:58:16 <gavinandresen> I bet the clever people here could figure out how to make it work with slutty blocks.
503 2012-06-21 15:58:49 <Nolybab> gavin, what backs a fork?
504 2012-06-21 15:59:02 <Nolybab> nothing...same as BTC, just the proof-of-work
505 2012-06-21 15:59:05 <Nolybab> right?
506 2012-06-21 15:59:11 <gavinandresen> you mean like a knife and fork?
507 2012-06-21 15:59:16 <gavinandresen> oh, chain fork
508 2012-06-21 15:59:30 <phantomcircuit> lol
509 2012-06-21 15:59:55 <Nolybab> but what i'm talking about is similar to backing a fork with actual BTC
510 2012-06-21 16:00:05 <gavinandresen> ultimately, consensus of majority hashing power backs a fork.
511 2012-06-21 16:00:09 <Nolybab> only way to get new 'coins' into the economy is to inject BTC
512 2012-06-21 16:00:10 <phantomcircuit> Nolybab, that doesn't really work because you still need everybody who is accepting/sending the micro transactions to have all those blocks
513 2012-06-21 16:00:22 <Nolybab> phantom, i have some ideas on how to handle that
514 2012-06-21 16:00:49 <phantomcircuit> gonna need more than ideas
515 2012-06-21 16:00:52 <Nolybab> but to keep it simple
516 2012-06-21 16:00:54 <phantomcircuit> it's very much non trivial :)
517 2012-06-21 16:01:10 <Nolybab> i just want to buy the 3 blocks
518 2012-06-21 16:01:18 <Nolybab> get some special json embedded
519 2012-06-21 16:01:34 <Nolybab> i know it will take time. my intent is not malignant
520 2012-06-21 16:01:50 <Nolybab> i am also buyin 100 BTC to use as bounties to help me with some small side-projects that are related
521 2012-06-21 16:02:15 <Nolybab> it's only going to get harder to do what i propose...so i want to do it now while it's still possible at all
522 2012-06-21 16:02:21 <Nolybab> just 3 measley blocks
523 2012-06-21 16:02:34 <Nolybab> and i'm willing to pay a premium
524 2012-06-21 16:02:57 <phantomcircuit> just convince a miner to mine your crazy blocks
525 2012-06-21 16:03:12 <midnightmagic> Nolybab: there are a lot of people with 20GH or more who might help you personally. If you provide the bitcoind against which you want them to mine, and as long as you pay in bitcoin, I'm certain some would take you up on the offer. Just make it simple for them, and make sure the pool/bitcoind you build is set and ready to go.
526 2012-06-21 16:04:07 <midnightmagic> Nolybab: and be prepared for wait a while for the blocks to be successfully mined. :)
527 2012-06-21 16:04:16 <Nolybab> i understand it could take a while
528 2012-06-21 16:04:31 <Nolybab> maybe i am just mad...maybe i don't need virgin blocks
529 2012-06-21 16:04:40 <Nolybab> i'm just obsessed with that white whale now
530 2012-06-21 16:04:43 <midnightmagic> Nolybab: great, set it up and let us know. :)
531 2012-06-21 16:05:19 <Nolybab> midnight: set it up with who?
532 2012-06-21 16:05:40 <Eliel> Nolybab: I'm getting the feeling your idea is to start an alt chain and back it's value with bitcoin to get it started.
533 2012-06-21 16:05:47 <Nolybab> exactly eliel
534 2012-06-21 16:05:57 <midnightmagic> Nolybab: build the poll/bitcoind which will hand out work to miners, and create those three blocks. If you build it and are willing to pay, people will mine against it.
535 2012-06-21 16:06:08 <midnightmagic> s/poll/pool/
536 2012-06-21 16:06:10 <Nolybab> and on my side, i'm going to develop a distributed database that supports nano and micro transactions of virtual goods
537 2012-06-21 16:06:20 <Eliel> if that's so, what's the json in coinbase for? any regular transaction should do fine.
538 2012-06-21 16:06:46 <Nolybab> eliel, the json is to encode a 'contract' of the worth of my 'currencies' relative to BTC
539 2012-06-21 16:06:52 <Nolybab> and version
540 2012-06-21 16:06:56 <Nolybab> and realm, and a few other things
541 2012-06-21 16:07:18 <Nolybab> but basically, 1BTC = 100000000 satoshi = 10000 copper = 1000 gold, etc type thing
542 2012-06-21 16:07:39 <Nolybab> in such a way, various 'classes' of virtual goods can be backed by satoshi
543 2012-06-21 16:08:00 <Eliel> Nolybab: ok, so, what's the benefit you'd get from getting that into a coinbase rather than a regular transaction?
544 2012-06-21 16:08:08 <Nolybab> satoshi is like fundamental unit of virtual goods (digital super-strings), a digital alchemists dream :)
545 2012-06-21 16:08:21 <Nolybab> the benefit is that transactions will/can be pruned
546 2012-06-21 16:08:34 <Eliel> Nolybab: that applies to coinbases too.
547 2012-06-21 16:08:57 <Nolybab> oh, then maybe i need to rethink what i'm doing
548 2012-06-21 16:09:05 <Nolybab> maybe i missunderstand something
549 2012-06-21 16:09:35 <Eliel> only spent transactions will be pruned.
550 2012-06-21 16:09:51 <Eliel> but even so, it'll remain verifiable that they were in the chain if you keep the transaction data.
551 2012-06-21 16:10:13 <Nolybab> well these particular BTC would be backing the 'micro-economy'
552 2012-06-21 16:10:30 <Nolybab> so they would not be able to be traded without someone finding evidence in the blockchain
553 2012-06-21 16:11:16 <Nolybab> hard to explain...but i am pretty sure i know what i want and that it will get the results i need
554 2012-06-21 16:11:44 <Nolybab> anyway i just need to find someone that will do this for me
555 2012-06-21 16:11:49 <Nolybab> willing to pay a premium, as i said
556 2012-06-21 16:11:59 <luke-jr> coinbases can be pruned basically immediatley
557 2012-06-21 16:12:09 <gavinandresen> good idea. Seems like it could just be a well-known public key with unspent coins associated with it (unspent outputs won't get pruned)
558 2012-06-21 16:12:16 <Nolybab> well then where can i store the data? where did satoshi store his idea?
559 2012-06-21 16:12:29 <Nolybab> exactly gavin
560 2012-06-21 16:12:46 <gavinandresen> sign the data with the private key associated with the public key(s), and publish the signature on a ssl-protected web page.
561 2012-06-21 16:12:52 <Eliel> Satoshi's idea is stored in the bitcoin community and the software I think.
562 2012-06-21 16:12:53 <luke-jr> Nolybab: I haven't been paying attention, but the general place for storing data is the merged mining tree
563 2012-06-21 16:13:17 <Nolybab> i don't need a lot of data stored
564 2012-06-21 16:13:23 <Nolybab> less than 1k should suffice
565 2012-06-21 16:13:34 <Eliel> you can't fit 1k into the coinbase
566 2012-06-21 16:13:55 <Eliel> I think the limit was somewhere around 100 bytes.
567 2012-06-21 16:14:02 <gavinandresen> "I hereby certify that I control NanoTransaction address 1nano...." Then anybody can check nanotransaction.com to find out which address(es) are backing, and check the bitcoin blockchain for whether or not the backing is spent.
568 2012-06-21 16:14:15 <Nolybab> so i would put the data in the erged mining tree then? is 1k too much? maybe i should shoot for .5k? i can probably manage that.
569 2012-06-21 16:14:23 <midnightmagic> backing to me, only seems worth it if these can in fact be redeemed.
570 2012-06-21 16:14:38 <midnightmagic> i never understood those gold-trading sites where you couldn't actually take delivery of the gold you owned.
571 2012-06-21 16:14:46 <Eliel> Nolybab: you'd put a hash of the data in the merged mining tree
572 2012-06-21 16:14:48 <midnightmagic> or LR. I don't understand LR at all.
573 2012-06-21 16:15:02 <luke-jr> midnightmagic++
574 2012-06-21 16:15:41 <Eliel> then you'd save the data as well as the merkle-paths leading to the hash of your data.
575 2012-06-21 16:15:58 <Eliel> and you could prove that data existed at the time that block was made.
576 2012-06-21 16:16:14 <Nolybab> basically, consider this: let's say i have two realms, and one realm makes satoshi-emeralds (10/BTC), and another realm makes satoshi-essence (10/BTC), i could create a magic amulet from those two ingredients, and they would have intrinsic BTC value PLUS any value afforded them in their respective properties within the 'game'
577 2012-06-21 16:16:52 <luke-jr> Nolybab: if you're using Bitcoins in a game, you should be careful to avoid any random factors or you may trigger anti-gambling laws
578 2012-06-21 16:17:15 <Nolybab> but that item would be less valuable than if i took a satoshi-ruby (100/BTC) and combined it with satoshi-essence (10/BTC)...
579 2012-06-21 16:18:02 <Nolybab> and the properties would not be as high for those virtual goods that are of less intrinsic value...and we create new virtual goods in combination of satoshi combining various virtual goods (e.g. put together silk cloth and silk thread for example)
580 2012-06-21 16:19:18 <Nolybab> but the key is that 'each' virtual good is created as an indice in a distributed hypergraph, and we're able to trade BTC backed virtual goods at the micro- and nano-levels (for instance, consider 'liking' someone as giving them somewhere between 1--5 satoshi) as rewards for social networking and gaming
581 2012-06-21 16:19:34 <Nolybab> tell me to shutup if i'm taking too much bandwidth
582 2012-06-21 16:20:18 <gavinandresen> "liking" wouldn't involve the bitcoin blockchain at all, would it? How are those microtransactions verified, is there a central server?
583 2012-06-21 16:20:34 <Nolybab> no it wouldn't gavin
584 2012-06-21 16:20:37 <Nolybab> no central server
585 2012-06-21 16:20:43 <Nolybab> distributed hypergraph
586 2012-06-21 16:20:51 <Nolybab> even virtual good images distributed
587 2012-06-21 16:20:53 <gavinandresen> distributed hypergraph means nothing to me
588 2012-06-21 16:20:54 <Nolybab> collectively
589 2012-06-21 16:20:59 <Nolybab> graph database
590 2012-06-21 16:21:12 <Nolybab> only edges connect vertice domains instead of just two vertices
591 2012-06-21 16:21:19 <Nolybab> and edges connect other edges
592 2012-06-21 16:21:34 <gavinandresen> okey dokey.
593 2012-06-21 16:21:58 <Nolybab> again, just tell me to shutup when you get tired of reading me
594 2012-06-21 16:22:00 <Nolybab> but consider this:
595 2012-06-21 16:22:08 <Nolybab> i have a micro-economy based on BTC
596 2012-06-21 16:22:25 <Nolybab> in my economy, when i put in 1 BTC, i can generate 100,000,000 satoshi, for example, or 1,000 gold, etc
597 2012-06-21 16:22:36 <Nolybab> these become atomic at this point
598 2012-06-21 16:22:50 <gavinandresen> sorry, I mean "I look forward to reading your whitepaper". My knee-jerk reaction is lots of people have tried and failed to create secure distributed databases. They usually fail when an attacker mounts a Sybil and other DoS attack.
599 2012-06-21 16:22:52 <Nolybab> only way is to 'recycle' them back into satoshi, destroying any object properties (vertice dropped from DB)
600 2012-06-21 16:23:12 <Nolybab> this is based upon limited trust between nodes :)
601 2012-06-21 16:23:33 <Nolybab> but at any time, someone could pull out, by just transferring their wealth out into BTC
602 2012-06-21 16:23:38 <Nolybab> that's the purpose of the frozen blocks
603 2012-06-21 16:23:45 <luke-jr> Nolybab: if you have something interesting you want merged-mined, ping me when it's ready
604 2012-06-21 16:23:58 <Eliel> Nolybab: you're being overly general in what you're describing. It won't be understandable unless you put together one whole example. A whole load of different examples with no ties with each other isn't going to be understandable.
605 2012-06-21 16:24:01 <Nolybab> i need help with the code and bitcoind build luke-jr
606 2012-06-21 16:24:11 <luke-jr> Nolybab: then I expect you'll never get anywhere.
607 2012-06-21 16:24:22 <Nolybab> drat
608 2012-06-21 16:24:34 <luke-jr> everyone coding has a lot of stuff they already want to code, generally
609 2012-06-21 16:24:40 <Nolybab> so i need to isntall eclipse for C++ and hope it's like riding a bike
610 2012-06-21 16:24:52 <Nolybab> been 15+ years since i worked with c/c++
611 2012-06-21 16:24:54 <luke-jr> I just use a text editor, but whatever.
612 2012-06-21 16:25:17 <Nolybab> well i already have eclipse isntalled, just need the c++ extensions
613 2012-06-21 16:25:20 <luke-jr> Nolybab: well, 15+ years since is better than never done
614 2012-06-21 16:25:36 <Nolybab> true, true luke
615 2012-06-21 16:26:07 <luke-jr> Nolybab: if you just need help with getting bitcoind to compile, I'm sure you might get some advice here though
616 2012-06-21 16:26:18 <luke-jr> but probably the first step will always be 1) Use Linux
617 2012-06-21 16:26:19 <Nolybab> i can compile, i just don't know where to start changing
618 2012-06-21 16:26:34 <Nolybab> and i don't want to have to completely figure out every class file
619 2012-06-21 16:26:47 <Nolybab> so i'll take a look and check back with any questions
620 2012-06-21 16:26:51 <luke-jr> k
621 2012-06-21 16:27:02 <Nolybab> everyone knwos what i'm trying to do, so if anything occurs to you, please just hit me up with some advice
622 2012-06-21 16:27:04 <Nolybab> thanks all!
623 2012-06-21 16:27:18 <Nolybab> and if this works, it will be good for BitCoin
624 2012-06-21 16:27:35 <Nolybab> but i suppose everyone thinks their ideas are good for bitcoin
625 2012-06-21 16:27:44 <luke-jr> there's a lot of ideas good for Bitcoin
626 2012-06-21 16:27:51 <luke-jr> just not enough coders and time to implement them all
627 2012-06-21 16:28:43 <Nolybab> just one last thing, and then i'll leave
628 2012-06-21 16:29:11 <Nolybab> instead of going all out 'white paper', i'm going to try to write up my plan enough to solicit some early feedback
629 2012-06-21 16:29:19 <Nolybab> i'll work my way up to white paper
630 2012-06-21 16:29:33 <Nolybab> i need to clearly describe what i need to do, so that i can get help doing it
631 2012-06-21 16:29:37 <luke-jr> cool, I personally think fullblown whitepapers are too long a read anyhow ;)
632 2012-06-21 16:30:16 <Eliel> Nolybab: keep it short but complete enough that people can get the gist of it.
633 2012-06-21 16:30:21 <Nolybab> i can probably do 90--100% of the code myself, but also will have 100BTC to help with side dev/prototype projects for proof of concept
634 2012-06-21 16:30:27 <Nolybab> i will be as concise as possible
635 2012-06-21 16:31:20 <Nolybab> and thanks for at least discussing it with me
636 2012-06-21 16:32:58 <Nolybab> btw: anyone have the link for bitcoind source? also, why bitcoind and not cgminer or something?
637 2012-06-21 16:33:10 <Nolybab> i will have to research what bitcoind is
638 2012-06-21 16:35:03 <Nolybab> nvm. i see
639 2012-06-21 16:37:45 <helo> dood... best of luck to you
640 2012-06-21 16:37:57 <Nolybab> thanks helo
641 2012-06-21 16:41:02 <gribble> New news from bitcoinrss: xanatos opened pull request 1496 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1496>
642 2012-06-21 16:41:19 <gavinandresen> Nolybab: https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L3277 is the code you'd want to hack.
643 2012-06-21 16:42:25 <Nolybab> one more question: do i really need 'virgin' blocks without transactions?
644 2012-06-21 16:43:50 <gmaxwell> Why would you?
645 2012-06-21 16:44:10 <Nolybab> well, i think it's because all future transactions included in the block
646 2012-06-21 16:44:13 <Nolybab> will reference the block
647 2012-06-21 16:44:21 <gavinandresen> if all you want to do is set aside some bitcoins to back microtransactions that will be traded using another system, then no, certainly not.
648 2012-06-21 16:44:46 <Nolybab> it's not just setting them aside though...in my mind
649 2012-06-21 16:45:14 <Habbie> Nolybab, we can't judge whether you need virgin blocks - you seemed to think you do :)
650 2012-06-21 16:45:18 <Habbie> Nolybab, write up that summary!
651 2012-06-21 16:45:21 <Nolybab> yeah, i think i do
652 2012-06-21 16:45:29 <Nolybab> i will work on it...again, thanks for entertaining me
653 2012-06-21 16:45:35 <Nolybab> i have a lot of work this weekend
654 2012-06-21 16:45:36 <gmaxwell> Nolybab: transactions don't reference blocks, they reference the immediately prior transaction.
655 2012-06-21 16:46:00 <Nolybab> sorry, that's what i mean gmaxwell...so all those transactions are bound to that block
656 2012-06-21 16:46:01 <gmaxwell> I can't fathom a reason why having transactions in the block would hurt anything you're doing.
657 2012-06-21 16:46:06 <Nolybab> well, consider this
658 2012-06-21 16:46:13 <Nolybab> let's say we had to 'liquidate' the virtual economy
659 2012-06-21 16:46:32 <Nolybab> then the entire block could theoretically be 'pruned' with no external dependencies
660 2012-06-21 16:46:59 <Nolybab> external as in transactions outside the micro-economy of that particular block
661 2012-06-21 16:47:10 <gmaxwell> Nolybab: you don't control other people's pruning regardless. Right now nothing is pruned by anyone.
662 2012-06-21 16:47:10 <Nolybab> maybe i'm missunderstanding something, this is why i need to write upt he summary
663 2012-06-21 16:47:22 <Nolybab> i know, but it's like the idea of atomicity
664 2012-06-21 16:47:29 <gmaxwell> This isn't making any sense.
665 2012-06-21 16:47:46 <gmaxwell> Pruning is by transaction, it's not atomic. And a whole block can never be completely pruned.
666 2012-06-21 16:48:07 <gmaxwell> (because the chain thereafter depends on that link, if nothing else)
667 2012-06-21 16:48:15 <Nolybab> ok, let's say i have a block with transactions
668 2012-06-21 16:48:52 <Nolybab> let's say transaction 1 from A to B
669 2012-06-21 16:49:02 <Nolybab> and transaction 2 from C to D
670 2012-06-21 16:49:33 <Nolybab> nvm
671 2012-06-21 16:49:36 <Nolybab> it isn't making any sense
672 2012-06-21 16:49:54 <gmaxwell> transactions are indivigually prunable. Thats why they're arranged in a hash tree instead of hashed directly.
673 2012-06-21 16:50:13 <gmaxwell> I suspect you need to go try writing some code not just a description, you're thinking in abstractions 10 layers too high and they're clouding your understanding.
674 2012-06-21 16:50:35 <Nolybab> gmaxwell, that is sound advice
675 2012-06-21 16:50:42 <Nolybab> i'll figure out how to get on the testnet
676 2012-06-21 16:50:58 <gmaxwell> Good. Thats what its for.
677 2012-06-21 16:51:02 <Nolybab> generate a test block, right? then try to start hacking the thing
678 2012-06-21 16:52:10 <leotreasure> hello, i've been trying to compile the bitcoin daemon on github following build-unix.txt and found a dependency that needed changing for Ubuntu server: libdb4.8++-dev -> libdb++-dev
679 2012-06-21 16:52:16 <gmaxwell> Nolybab: sounds fine.
680 2012-06-21 16:52:40 <gmaxwell> leotreasure: if you want to be backwards compatible with the binaries we ship it really does need libdb4.8.
681 2012-06-21 16:52:58 <Habbie> leotreasure, what version of ubuntu server?
682 2012-06-21 16:53:04 <gmaxwell> If you don't care about compatible files (wallet, database, etc) then you can use other ones.
683 2012-06-21 16:53:20 <gmaxwell> Habbie: 12.04 LTS doesn't ship 4.8 anymore it appears.
684 2012-06-21 16:53:28 <leotreasure> 12.04
685 2012-06-21 16:53:32 <Habbie> my 12.04 does
686 2012-06-21 16:53:37 <luke-jr> leotreasure: you can get 4.8 in the bitcoin PPA
687 2012-06-21 16:53:39 <gmaxwell> though libdb 5 appears to regress performance without twiddling.
688 2012-06-21 16:55:21 <gavinandresen> sipa: my torhs branch node running as a hidden service is stuck at 8 outgoing connections; is that expected?
689 2012-06-21 16:56:37 <leotreasure> i couldn't find libdb4.8++-dev - but thanks i've worked out the package is called libdb4.8-dev
690 2012-06-21 16:56:39 <gmaxwell> gavinandresen: you mean you don't yet have any incoming connections?
691 2012-06-21 16:56:53 <gavinandresen> gmaxwell: yes
692 2012-06-21 16:57:46 <gmaxwell> gavinandresen: is your node synced up yet? (I'm asking because it won't advertise itself until its synced up, which may be one reason why you don't have any incoming)
693 2012-06-21 16:58:08 <gavinandresen> yes, it's caught up on blocks (wasn't when I started, though)
694 2012-06-21 16:58:41 <leotreasure> what would i need upnp support for?
695 2012-06-21 16:59:01 <gmaxwell> hm. I wish there was an easy way to check to see if my node knows of your node.. you might be connected to every known hidden service node already.. or your inbound could be broken for some reason.
696 2012-06-21 16:59:05 <Habbie> leotreasure, for punching a hole in your NAT router
697 2012-06-21 16:59:20 <gmaxwell> leotreasure: to allow your node to recieve inbound connections when behind nat without configuration.
698 2012-06-21 17:00:16 <leotreasure> thanks, so probably not a good thing to start off with
699 2012-06-21 17:00:18 <gavinandresen> gmaxwell: we need those RPC commands to report on connected peers....
700 2012-06-21 17:03:29 <gmaxwell> I don't think my HS (v4+HS) test node has any hidden service connections right now, because the only onion in my log is the addaddr for myself.
701 2012-06-21 17:03:56 <Habbie> 'known hidden service nodes' is a hardcoded list?
702 2012-06-21 17:04:02 <gavinandresen> "test node" : running on -testnet ?
703 2012-06-21 17:04:16 <gmaxwell> gavinandresen: no no, not testnet. Though I should do that with testnet too.
704 2012-06-21 17:04:28 <gmaxwell> I guess whats happening there is it filled up its out with v4 peers and the onion address isn't getting flooded anywhere.
705 2012-06-21 17:05:08 <gmaxwell> Habbie: no, I mean known to the node itself. There are probably only a couple proper hidden service nodes now, the functionality was just merged.
706 2012-06-21 17:05:29 <Habbie> ah :)
707 2012-06-21 17:05:32 <Habbie> just curious
708 2012-06-21 17:05:33 <Habbie> thanks :)
709 2012-06-21 17:05:53 <gmaxwell> gavinandresen: thats probably also the issue for you, I bet all your peers are IPv4 ones via tor?
710 2012-06-21 17:06:42 <gavinandresen> gmaxwell: yes, probably
711 2012-06-21 17:07:38 <gmaxwell> gavinandresen: I could try addnoding you to see if it picks you up. Though we'd really need a third node to validate that relaying worked.
712 2012-06-21 17:08:08 <gavinandresen> gmaxwell: I'm sxpl36324kqv5k6c.onion:7095
713 2012-06-21 17:08:18 <gmaxwell> k. testing
714 2012-06-21 17:09:39 <gavinandresen> that seemed to work: them=b4ymclq6qeh4um3q.onion:8333
715 2012-06-21 17:09:40 <gmaxwell> 06/21/12 19:09:27 send version message: version 60001, blocks=185617, us=b4ymclq6qeh4um3q.onion:8333, them=sxpl36324kqv5k6c.onion:7095, peer=sxpl36324kqv5k6c.onion:7095
716 2012-06-21 17:09:44 <gmaxwell> yea...
717 2012-06-21 17:10:04 <gavinandresen> I feel so... covert
718 2012-06-21 17:10:29 <gmaxwell> okay, so your inbound works. it just seems that its filling up with v4 hs nodes.. thats probably fine for now. It'll get better when we have some HS seeds hardcoded.
719 2012-06-21 17:14:16 <Nolybab> new to github here...noticed there is a 'clone in windows' button...how is this different than a fork or branch? also, which branch do i want to fork/clone? just the integration/staging tree? please advise
720 2012-06-21 17:15:16 <Habbie> 'clone in windows' passes stuff to the github windows client
721 2012-06-21 17:15:28 <Habbie> which may be useful if you're not experienced with git yet
722 2012-06-21 17:15:39 <Habbie> their mac client is great - i believe the windows client is the same
723 2012-06-21 17:16:05 <D34TH> windows client could be a bit quicker, its kinda laggy
724 2012-06-21 17:16:26 <Nolybab> i will start there, thx, and gavin or gmaxwell, which branch do you recommend that I start with, knowing what i'm trying to do? just work off the latest?
725 2012-06-21 17:17:49 <gavinandresen> latest (master) is what I'd use.
726 2012-06-21 17:20:59 <luke-jr> Nolybab: note, unless you really need to, I wouldn't modify bitcoind at all
727 2012-06-21 17:21:08 <luke-jr> and just link into blocks via the merged mining chain
728 2012-06-21 17:21:23 <luke-jr> but I don't know what you're doing really
729 2012-06-21 17:21:58 <leotreasure> i can't compile bitcoin - getting error about db_cxx.h
730 2012-06-21 17:22:09 <luke-jr> leotreasure: you need to set DB_INCLUDE_PATH in the make command
731 2012-06-21 17:22:16 <luke-jr> BDB_INCLUDE_PATH*
732 2012-06-21 17:22:34 <leotreasure> ok thanks luke-jr
733 2012-06-21 17:32:02 <leotreasure> luke-jr: i'm struggling to find my path i thought it would be /usr/include/
734 2012-06-21 17:32:15 <luke-jr> /usr/include/db4.8 is standard
735 2012-06-21 17:33:09 <leotreasure> i only have two header files in the include directory
736 2012-06-21 17:34:40 <leotreasure> is this correct?: make -f makefile.unix BDB_INCLUDE_PATH=/usr/include
737 2012-06-21 17:35:07 <luke-jr> &no
738 2012-06-21 17:35:26 <luke-jr> did you install bdb++ headers?
739 2012-06-21 17:35:41 <leotreasure> i don't think so
740 2012-06-21 17:36:06 <Nolybab> hmmm...it's not as simple as just download and compile...there's like 7 things one has to download/install/compile...MinGW, Perl, wxWidgets, OpenSSL, Berkley DB, Boost, Jam, miniUPnPc, etc...seriously?
741 2012-06-21 17:39:34 <Habbie> Nolybab, are you on windows?
742 2012-06-21 17:39:47 <Habbie> Nolybab, because getting all those dependencies on linux is trivial
743 2012-06-21 17:41:26 <jgarzik> luke-jr: that thread-getwork patch floating around is definitely thread-UNsafe
744 2012-06-21 17:41:33 <leotreasure> i'm a bit confused - does db4.8 Berkeley DB 4.8 not include the headers?
745 2012-06-21 17:41:40 <jgarzik> luke-jr: I just tried to thread either getwork and/or getmemorypool
746 2012-06-21 17:41:53 <jgarzik> getmemorypool had a minor improvement on the submit side, but nothing on the CreateNewBlock side
747 2012-06-21 17:46:42 <Nolybab> well, time to fire up ubuntu :)
748 2012-06-21 17:54:52 <leotreasure> ok so i think i may have broken my bdb by accidentally installing 5
749 2012-06-21 17:55:09 <leotreasure> is there anyway i can undo the damage with apt-get?
750 2012-06-21 17:57:14 <leotreasure> going to sleep will try again tomorrow
751 2012-06-21 18:27:16 <Nolybab> l8tr
752 2012-06-21 18:41:57 <PK> the listtransactions rpc commands returns not very useful results if you transfer money from your own address to another address in the same wallet. I sent 10 BTC from A to B, it listed twice B with 5 send and 5 receive. It never mentions A. I have no way to figure out from where the money comes from.
753 2012-06-21 18:46:16 <genjix> PK: are you going to stadtflucht?
754 2012-06-21 18:46:19 <genjix> in wien
755 2012-06-21 18:46:35 <genjix> ;;later tell theymos acdaf1d722a03fde2c63f15ab4bc4389005eb1f9651814b7386fd7cab3f527ab is causing BE to not work
756 2012-06-21 18:46:35 <gribble> The operation succeeded.
757 2012-06-21 18:47:16 <PK> genjix: I don't know about it.
758 2012-06-21 18:47:33 <genjix> PK: your name is on it: https://metalab.at/wiki/Stadtflucht5
759 2012-06-21 18:47:52 <genjix> https://metalab.at/wiki/Benutzer:Pk
760 2012-06-21 18:47:55 <genjix> is that you
761 2012-06-21 18:49:22 <PK> no, just another "imposter". 2 out of 5 times I log in to freenode I have to ghost someone.
762 2012-06-21 18:49:46 <genjix> ah kk
763 2012-06-21 19:08:00 <rdponticelli> So, now I can accept incoming connections through tor?
764 2012-06-21 19:08:14 <rdponticelli> Is it merged in git-head already?
765 2012-06-21 19:09:38 <gmaxwell> rdponticelli: it is not merged yet, but it's easily added. More testers would hasten merging it!
766 2012-06-21 19:10:00 <rdponticelli> Ok, I'll take a look
767 2012-06-21 19:10:20 <gmaxwell> (you can add .patch onto a github pull request to get a git am-able patch out of it)
768 2012-06-21 19:10:40 <rdponticelli> gmaxwell: yes, thanks :)}
769 2012-06-21 19:11:23 <gmaxwell> IIRC the hideen services patch needs a minor manual merge in the unit tests.
770 2012-06-21 19:12:01 <rdponticelli> gmaxwell: It's everything in github?
771 2012-06-21 19:14:04 <gmaxwell> Hm?
772 2012-06-21 19:15:15 <luke-jr> I'm rebuilding next-test atm
773 2012-06-21 19:17:47 <gmaxwell> bleh, I misunderstood what you were asking when you asked about the logical and. I thought you asked if it was shortcutting because you were asking about the terinary operator at the same time. :-/
774 2012-06-21 19:18:15 <gmaxwell> Sorry to have mislead you. (when I saw your commit, I was thinking 'what the heck, we just talked about this')
775 2012-06-21 19:19:16 <luke-jr> O.o?
776 2012-06-21 19:20:16 <gmaxwell> luke-jr: the a||b
777 2012-06-21 19:24:29 <luke-jr> gmaxwell: you didn't mislead me
778 2012-06-21 19:24:35 <luke-jr> gmaxwell: care to pull #1490 ? :p
779 2012-06-21 19:24:38 <gmaxwell> oh okay.
780 2012-06-21 19:25:24 <gmaxwell> luke-jr: done.
781 2012-06-21 19:26:24 <luke-jr> gmaxwell: rather, you confirmed what I suspected was the bug before I even looked into it
782 2012-06-21 19:34:10 <gmaxwell> http://bitcoinstatus.rowit.co.uk/versions.html < an increase in .3.23 nodes?? people turning on old clients?
783 2012-06-21 19:37:19 <luke-jr> gmaxwell: I prefer my own chart. it looks the same to me :P
784 2012-06-21 19:37:36 <luke-jr> http://luke.dashjr.org/programs/bitcoin/files/charts/branches.html
785 2012-06-21 19:37:56 <gmaxwell> yours doesn't graph over time.
786 2012-06-21 19:38:00 <luke-jr> :p
787 2012-06-21 19:38:12 <luke-jr> gmaxwell: more importantly, IMO& Eligius found a block just now
788 2012-06-21 19:38:15 <luke-jr> I happened to be watching
789 2012-06-21 19:38:35 <gmaxwell> and you learned?
790 2012-06-21 19:38:39 <luke-jr> the local bitcoind took 12 seconds to check it over before it even got out of the local system
791 2012-06-21 19:39:01 <gmaxwell> luke-jr: what is your local bitcoind running? does it have the signature cache?
792 2012-06-21 19:39:10 <luke-jr> next-eligius, 0.6.0.x-based
793 2012-06-21 19:39:16 <gmaxwell> It's hard to understate what a big speedup it is for some operations.
794 2012-06-21 19:39:16 <luke-jr> no, I was considering backporting that
795 2012-06-21 19:39:21 <gmaxwell> You should.
796 2012-06-21 19:39:43 <gmaxwell> without it almost all of getmemorypool's time is spent validating signatures (at least on nodes that handle transactions)
797 2012-06-21 19:41:09 <midnightmagic> 12 seconds, jesus
798 2012-06-21 19:44:04 <Eliel> luke-jr: 12 seconds? how many transactions?
799 2012-06-21 19:51:51 <luke-jr> Eliel: 32
800 2012-06-21 20:10:43 <gmaxwell> etotheipi_: amiller: an interesting point with all this txout tree stuff is that if you join the network late and just trust that the history is correct based on the headers, 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.
801 2012-06-21 20:11:28 <gmaxwell> e.g. if someone doublespends I just take the conflicting transactions out and the segments connecting them to the chain... and show them to you. And without trusting me you can now ignore the entire child chain past that point.
802 2012-06-21 20:13:29 <gmaxwell> This fits nicely with the Satoshi comment "It takes advantage of the nature of information being easy to spread but hard to stifle" ... it would be safe to late-join a txout tree chain, because if there is only a single other honest node in the world who was around long enough to wittness the cheating, he could still tell you and it would be as good as if you saw it yourself.
803 2012-06-21 20:17:50 <gmaxwell> (this is akin to the provable doublespend alert stuff we talked about before, but applied to blocks)
804 2012-06-21 20:22:01 <luke-jr> I really don't understand why #1245 hasn't been pulled yet.
805 2012-06-21 20:30:42 <gribble> New news from bitcoinrss: luke-jr opened pull request 1497 on bitcoin/bitcoin <https://github.com/bitcoin/bitcoin/pull/1497>