1 2012-08-04 00:01:29 <BlueMatt> wow, that + lto may actually be worth something here...
  2 2012-08-04 00:01:57 <BlueMatt> I may have to look into that after I get these damn corner-case test-cases done and get jenkins back up and...
  3 2012-08-04 00:03:30 <jgarzik> BlueMatt: static compilation of java is always fun
  4 2012-08-04 00:05:40 <BlueMatt> heh, nice
  5 2012-08-04 00:05:50 <Diablo-D3> hah
  6 2012-08-04 00:11:09 <BlueMatt> hmm...well to write a proper test-case for FindAndDelete I need a valid sig that happens to be preceded by its own size...
  7 2012-08-04 00:11:22 <BlueMatt> hows that for a specific request?
  8 2012-08-04 00:28:46 <Diablo-D3> lol
  9 2012-08-04 00:34:45 <gmaxwell> jgarzik: 4033 isn't _that_ bad.
 10 2012-08-04 00:34:52 <gmaxwell> the horse pill is 4110:
 11 2012-08-04 00:34:53 <gmaxwell> 4110     "size" : 999238,
 12 2012-08-04 00:35:40 <Diablo-D3> "doc, how am I supposed to swallow that, its huge!" "you don't swallow it."
 13 2012-08-04 00:36:11 <gmaxwell> "You chew it. ... What? Why are you looking at me like that?"
 14 2012-08-04 00:37:11 <gmaxwell> well, I'd look at it and tell you something about it... except I don't know how many zeros go on the front...
 15 2012-08-04 00:37:35 <gmaxwell> luke-jr: s/ on GitHub//
 16 2012-08-04 00:37:49 <luke-jr> gmaxwell: not all bug trackers require registration
 17 2012-08-04 00:38:10 <BlueMatt> define "a lot"
 18 2012-08-04 00:38:13 <gmaxwell> 'omg I have to register is a problem for anything that does'.. the debian stuff doesn't but then it's 'omg I have to send email.
 19 2012-08-04 00:38:13 <jgarzik> <BlockChain.info's piuk> Hi Dusty, I currently have no plans to add Testnet support the site is aimed more at end users rather than developers. Blockexplorer.com has good support for testnet.
 20 2012-08-04 00:38:15 <jgarzik> sigh
 21 2012-08-04 00:38:18 <luke-jr> BlueMatt: pretty much anyone using BFGMiner :P
 22 2012-08-04 00:38:45 <luke-jr> jgarzik: *2
 23 2012-08-04 00:38:48 <BlueMatt> jgarzik: ...
 24 2012-08-04 00:38:54 <gmaxwell> jgarzik: Well, one more site that I can tell people not to use.
 25 2012-08-04 00:39:01 <luke-jr> jgarzik: his My Wallet make incompatible priv keys IIRC too
 26 2012-08-04 00:39:08 <jgarzik> can anybody dump testnet3 TX 95ea61f319ed0d2b28e94cb0164396b4024bc6ad624fcb492c5c87a088592e81 to JSON for me?
 27 2012-08-04 00:39:08 <luke-jr> makes*
 28 2012-08-04 00:39:11 <jgarzik> still chewing on it
 29 2012-08-04 00:39:28 <jgarzik> wait, I think bitcoind can do it now, right?
 30 2012-08-04 00:39:31 <luke-jr> jgarzik: you don't want to use blockchain.info for looking at tx anyway - they really mess it up sometimes
 31 2012-08-04 00:39:36 <jgarzik> including scripts, I mean
 32 2012-08-04 00:39:39 <gmaxwell> hahah
 33 2012-08-04 00:40:35 <gmaxwell> getrawtransaction 95ea61f319ed0d2b28e94cb0164396b4024bc6ad624fcb492c5c87a088592e81 | wc -c
 34 2012-08-04 00:40:39 <gmaxwell> 778813
 35 2012-08-04 00:41:00 <gmaxwell> 400k transaction. :)
 36 2012-08-04 00:41:13 <luke-jr> O.O
 37 2012-08-04 00:41:40 <jgarzik> bash: /spare/repo/bitcoin/src/bitcoind: Argument list too long
 38 2012-08-04 00:41:42 <jgarzik> SIGH
 39 2012-08-04 00:42:10 <jgarzik> gmaxwell: no freaking wonder ;-)  This is taking pynode several minutes to chew on
 40 2012-08-04 00:42:14 <gmaxwell> the json is 2.6 mbytes.
 41 2012-08-04 00:42:24 <jgarzik> excellent test, though
 42 2012-08-04 00:42:33 <jgarzik> proves you need to verf this stuff in another thread
 43 2012-08-04 00:43:47 <jgarzik> probably giving python's deepcopy a heart attack
 44 2012-08-04 00:43:58 <gmaxwell> http://people.xiph.org/~greg/bigtxn.txt.xz
 45 2012-08-04 00:45:21 <gmaxwell> It has 3387 inputs and 100 outputs.
 46 2012-08-04 00:46:02 <jgarzik> heh, I think that's 3387 deepcopies
 47 2012-08-04 00:46:21 <luke-jr> is that really that much? O.o
 48 2012-08-04 00:46:48 <gmaxwell> Welp thats why I put stuff like that in the testnet chain. Better to blow up on that then when someone puts something like it in the real chain.
 49 2012-08-04 00:47:06 <BlueMatt> shhh
 50 2012-08-04 00:47:06 <gmaxwell> I was kinda bummed that I couldn't find anything that broke bitcoind through sheer bloatyness.
 51 2012-08-04 00:47:20 <gmaxwell> though it's pretty slow on some of these blocks.
 52 2012-08-04 00:56:18 <jgarzik> gmaxwell: fetched url, incase you want to delete
 53 2012-08-04 00:56:22 <jgarzik> gmaxwell: tnx
 54 2012-08-04 00:59:28 <jgarzik> ...still processing that tx...
 55 2012-08-04 00:59:46 <jgarzik> let's race, pynode vs. bitcoinj
 56 2012-08-04 00:59:59 <Diablo-D3> bah
 57 2012-08-04 01:00:23 <jgarzik> I bet if I used pure-python pkg python-ecdsa, it would be slower
 58 2012-08-04 01:00:26 <luke-jr> vs /Snoopy:0.1/ETH Zurich/PlanetLab/
 59 2012-08-04 01:00:58 <luke-jr> jgarzik: btw, why don't i see pynode on the client list yet? ;)
 60 2012-08-04 01:01:21 <jgarzik> luke-jr: because it does nothing and is not yet verified functional
 61 2012-08-04 01:03:31 <jgarzik> I missed TX processing finish
 62 2012-08-04 01:03:45 <jgarzik> time(1) says choke-a-horse TX took <= 15 minutes
 63 2012-08-04 01:14:14 <jgarzik> yeah, this stupid thing is spending all its time in deepcopy, not ecdsa or sha256
 64 2012-08-04 01:20:27 <jgarzik> har!  googling yields the following advice:  pickle+unpickle is faster than deepcopy
 65 2012-08-04 01:20:54 <gmaxwell> ugh.
 66 2012-08-04 01:24:45 <Diablo-D3> and I believe it
 67 2012-08-04 01:24:59 <Diablo-D3> python is that shitty
 68 2012-08-04 01:25:05 <luke-jr> >_<
 69 2012-08-04 01:25:36 <jgarzik> deepcopy apparently "must" be slow, in order to deal with all sorts of complex, cyclic data structures that pickle cannot handle
 70 2012-08-04 01:26:16 <jgarzik> however, if you don't need the complexity, cPickle's pickle+unpickle is faster, it sounds like.
 71 2012-08-04 01:28:04 <jgarzik> the big dogs:
 72 2012-08-04 01:28:05 <jgarzik> Scanned 942 tx, height 4033 (0 failures), 847.59 sec
 73 2012-08-04 01:28:07 <jgarzik> Scanned 943 tx, height 4087 (0 failures), 21.49 sec
 74 2012-08-04 01:28:08 <jgarzik> Scanned 3529 tx, height 4110 (0 failures), 8.13 sec
 75 2012-08-04 01:28:09 <jgarzik> Scanned 10857 tx, height 4145 (0 failures), 30.83 sec
 76 2012-08-04 01:28:12 <jgarzik> Scanned 10858 tx, height 4181 (0 failures), 18.73 sec
 77 2012-08-04 01:28:44 <jgarzik> pynode now validates all of mainnet and testnet3, save for these testnet3 tx's:
 78 2012-08-04 01:28:47 <jgarzik> 0x9aa3a5a6d9b7d1ac9555be8e42596d06686cc5f76d259b06c560a207d310d5f5L : True,
 79 2012-08-04 01:28:48 <jgarzik> 0xc5d4b73af6eed28798473b05d2b227edd4f285069629843e899b52c2d1c165b7L : True,
 80 2012-08-04 01:37:45 <jgarzik> hmmm.  with signature cache...  that means that miners who publish neverseen transactions are at a disadvantage.  Their blocks will be slower to verify, as their TX's will not be in the signature cache.
 81 2012-08-04 01:38:25 <jgarzik> (which is just fine... not saying there is anything wrong with that)
 82 2012-08-04 01:40:17 <luke-jr> jgarzik: no, it isn't just fine. :p
 83 2012-08-04 01:40:26 <luke-jr> but it's not the root problem either
 84 2012-08-04 01:40:46 <luke-jr> so long as transaction download/verification doesn't hold up relaying, none of that matters much
 85 2012-08-04 01:41:10 <gmaxwell> it's most likely a fairly small bias in any case.
 86 2012-08-04 01:42:31 <luke-jr> gmaxwell: probably nodes should prefer to relay to other nodes they know have bigger pipes too, IMO
 87 2012-08-04 01:43:46 <gmaxwell> this really only matters for the first hop or two, beyond that the fanout is enormous.
 88 2012-08-04 01:44:00 <jgarzik> random datum:  pynode should be 100% endian-safe for all platforms, BE or LE, 32- or 64-bit
 89 2012-08-04 01:47:35 <gmaxwell> jgarzik: where is the current pynode code, I'll try it on BE right now.
 90 2012-08-04 01:47:58 <jgarzik> gmaxwell: https://github.com/jgarzik/pynode
 91 2012-08-04 01:50:01 <luke-jr> too bad we don't have a proper GUI abstraction in place so we can use Bitcoin-Qt with pynode :P
 92 2012-08-04 01:50:46 <jgarzik> Example mainnet and testnet3 configuration files (simple key=value text files): https://gist.github.com/3254183
 93 2012-08-04 01:51:45 <jgarzik> README contains useful details
 94 2012-08-04 01:52:49 <gmaxwell> :-/
 95 2012-08-04 01:54:17 <jgarzik> python-crypto-2.3-6.fc16.x86_64 here has it
 96 2012-08-04 01:54:55 <jgarzik> rpm -qi says upstream is http://www.pycrypto.org/
 97 2012-08-04 01:55:30 <gmaxwell> sadly not so in debian unstable, which is what my resident BE linux box is blighted with.
 98 2012-08-04 01:58:07 <jgarzik> gmaxwell: how does python behave with this input?    import hashlib ; h = hashlib.new('ripemd160')
 99 2012-08-04 01:58:36 <jgarzik> gmaxwell: should puke a ValueError if 'ripemd160' is not known
100 2012-08-04 01:58:49 <gmaxwell> In [1]: import hashlib ; h = hashlib.new('ripemd160')
101 2012-08-04 01:58:50 <gmaxwell> In [2]: h
102 2012-08-04 02:00:46 <gmaxwell> Not the result I expected.
103 2012-08-04 02:02:55 <jgarzik> gmaxwell: something like this patch should get you past that: https://gist.github.com/3254322
104 2012-08-04 02:03:07 <jgarzik> (might be whitespace mangled)
105 2012-08-04 02:03:13 <gmaxwell> yup
106 2012-08-04 02:04:56 <gmaxwell> connecting to 127.0.0.1 even though something else is specified
107 2012-08-04 02:05:37 <gmaxwell> oh just whitespace in the config
108 2012-08-04 02:06:01 <jgarzik> yeah the config parser is pretty dumb
109 2012-08-04 02:06:16 <gmaxwell> is there a way to make this verbose? how do I know that its working?
110 2012-08-04 02:06:58 <gmaxwell> well.. blocks.dat is growing slowly
111 2012-08-04 02:07:33 <gmaxwell> up to block 30k on mainnet.
112 2012-08-04 02:07:41 <gmaxwell> So yep, works on BE Linux.
113 2012-08-04 02:11:22 <gmaxwell> Is this thing validating signatures? its faster than I expected.
114 2012-08-04 02:11:27 <jgarzik> gmaxwell: there is a debug log, log=FILE in config
115 2012-08-04 02:11:39 <gmaxwell> Yea, I found it.
116 2012-08-04 02:11:48 <jgarzik> gmaxwell: set debugnet=True in node.py for per-message extra verbosity
117 2012-08-04 02:11:53 <gmaxwell> up to 114000.
118 2012-08-04 02:12:51 <jgarzik> gmaxwell: no, not verifying signatures.  That's what testscript.py does: loops through existing database, verifying each sig.  Code exists, but is not yet hooked up to node.py's blockchain database
119 2012-08-04 02:13:47 <jgarzik> just got through proving the signature stuff worked in unit testing mere hours ago ;)
120 2012-08-04 02:14:12 <jgarzik> kudos to ArtForz for writing endian-correct serialization code
121 2012-08-04 02:17:28 <jgarzik> http://docs.python.org/library/hashlib.html specifically uses ripemd160 as an example, accompanied by the text "Using new() with an algorithm provided by OpenSSL"
122 2012-08-04 02:44:29 <Shaded> Can anyone help me to compile the vanitygen on Mac?
123 2012-08-04 02:55:55 <gmaxwell> jgarzik: hmm.. seems to be stuck at 187654
124 2012-08-04 02:56:52 <gmaxwell> ah
125 2012-08-04 02:56:53 <gmaxwell> jgarzik: gdbm fatal: write error
126 2012-08-04 02:56:57 <gmaxwell> -rw-r--r-- 1 gmaxwell gmaxwell 2.0G Aug  4 04:55 blocks.dat
127 2012-08-04 03:15:44 <jgarzik> gmaxwell: hum.  must have hit a 32-bit signed limit inside gdbm.
128 2012-08-04 03:16:32 <gmaxwell> PPC64 here, but the python binary is 32bit.
129 2012-08-04 03:17:17 <jgarzik> gmaxwell: even a 32bit binary should be able to do large files
130 2012-08-04 03:17:33 <jgarzik> gmaxwell: probably a compile flag screwup, building gdbm
131 2012-08-04 03:19:20 <jgarzik> gmaxwell: even so, you could try dbck.py, which iterates through height, hash-checking each block found.  if that does not bomb out, testscript.py will perform the same iteration, but checking scripts
132 2012-08-04 14:58:13 <abracadabra> meh
133 2012-08-04 15:01:58 <acemeister> hey
134 2012-08-04 15:02:55 <acemeister> When I install the latest bitcoin client and try to run it says "Error Loading blkindex.dat" how do I install and open a functional client/
135 2012-08-04 15:09:14 <weex> acemeister: what platform you running on, uprading from what version?
136 2012-08-04 15:10:59 <acemeister> im running vista
137 2012-08-04 15:11:07 <acemeister> and im not upgrading im just trying to install the client fresh
138 2012-08-04 15:13:57 <weex> check out https://bitcointalk.org/index.php?topic=54718.0
139 2012-08-04 15:19:47 <OneEyed> Will the miners (or at least some of them) include transactions with non-standard scripts?
140 2012-08-04 15:42:31 <amiller> okay so like
141 2012-08-04 15:42:39 <amiller> my little difficulty gain thing needs to be a bit asymmetric
142 2012-08-04 15:42:59 <amiller> if you place down a block with zero runners-up, then the difficulty should be decreased by multiplying it by a gain
143 2012-08-04 15:43:08 <amiller> that way it converges exponentially if the difficulty is too hard and it takes too long to find blocks
144 2012-08-04 15:43:39 <amiller> on the other hand if you place a block with 10 stale annotations, you should increase the difficulty by multiplying it by 10*gain
145 2012-08-04 15:43:49 <amiller> rather than gain^10 like i had thought
146 2012-08-04 15:44:38 <amiller> it has the same stationary point because a block with one stale annotation will leave the difficulty unchanged
147 2012-08-04 15:46:16 <OneEyed> In https://en.bitcoin.it/wiki/OP_CHECKSIG, why in the example does the *input* use OP_CHECKSIG (in addition to the outputs)?
148 2012-08-04 15:48:10 <amiller> er clearly multiplying by 10*gain isn't right... what do i mean here
149 2012-08-04 15:48:21 <OneEyed> This is a typo, it looks like the "output 1" script has been copied into the input
150 2012-08-04 15:49:06 <amiller> 1 + 1/(x-1) or something or something maybe
151 2012-08-04 16:16:11 <OneEyed> I've fixed the wiki page
152 2012-08-04 16:21:08 <weex> i've updated the main page description of bitcoin to the one from bitcoin.org, it's hart to see how being created in 2009 and by satoshi nakamoto are the most important pieces of info a new user should learn about Bitcoin
153 2012-08-04 16:21:28 <weex> plus presumably people are ok with the bitcoin.org one
154 2012-08-04 16:25:06 <OneEyed> weex: which page?
155 2012-08-04 16:27:30 <weex> OneEyed: the main page
156 2012-08-04 16:27:32 <weex> on the wiki
157 2012-08-04 16:27:50 <OneEyed> weex: I see no change today&
158 2012-08-04 16:27:55 <OneEyed> https://en.bitcoin.it/w/index.php?title=Main_Page&action=history
159 2012-08-04 16:28:12 <weex> yeah, well you have to do some hunting to find that actual text
160 2012-08-04 16:28:19 <weex> https://en.bitcoin.it/wiki/Template:MainPage_Intro
161 2012-08-04 16:28:29 <weex> the main page links other pages in
162 2012-08-04 16:28:54 <OneEyed> Oh, ok, it includes others :)
163 2012-08-04 16:29:36 <weex> probably helps to cut down on abuse that there's no direct link to edit that text
164 2012-08-04 16:30:07 <OneEyed> Looks fine indeed
165 2012-08-04 16:31:41 <weex> i'm going through the wiki and making some text cleanups, not moving anything as i have no desire to get into larger structure
166 2012-08-04 16:31:55 <weex> it's just that new users will find some odd text in there in places
167 2012-08-04 16:54:17 <acemeister> I tried what you reccomended and then attempted to open bitcoin it said "A fatal error has occured bitcoin can no longer continue and will quit"
168 2012-08-04 16:57:28 <weex> can you create a file in the listed appdata directory with your user?
169 2012-08-04 17:04:53 <weex> question: should the wiki be making commentary on governmental monetary policy?
170 2012-08-04 17:06:28 <copumpkin> I'd say no, but I'm nobody
171 2012-08-04 17:08:12 <weex> aww c'mon, pseudonymous currency got you down?
172 2012-08-04 18:11:17 <acemeister> Hey
173 2012-08-04 18:11:42 <acemeister> When I install the latest bitcoin client and try to run it says "Error Loading blkindex.dat" how do I install and open a functional client/
174 2012-08-04 18:12:04 <acemeister> im running from vista and not upgrading im trying to install the client fresh
175 2012-08-04 18:13:20 <acemeister> https://bitcointalk.org/index.php?topic=54718.0 < - i followed the instructions here and it says to delete everything but wallet.dat then try to fire it up
176 2012-08-04 18:13:56 <acemeister> I did this and tried to run the client and got an error message saying to open bitcoin it said "A fatal error has occured bitcoin can no longer continue and will quit"
177 2012-08-04 18:14:06 <acemeister> any help is appreciated?
178 2012-08-04 18:18:00 <weex> acemeister: can you create a file in the listed appdata directory with your user?
179 2012-08-04 18:18:02 <weex> if you've receivsd no coins at that wallet or not given out any addresses from it, you can delete that listed appdata folder entirely
180 2012-08-04 18:28:44 <BTCTrader> are there any bitcoin php developers around?
181 2012-08-04 18:30:01 <upb> yes, phptux is
182 2012-08-04 18:30:12 <upb> php can do anything (tm)
183 2012-08-04 18:31:37 <acemeister> yeah i can create i file
184 2012-08-04 18:31:47 <acemeister> i deleted the folder entirely
185 2012-08-04 18:31:56 <acemeister> even teh wallet. dat i should delete right weex?
186 2012-08-04 18:32:03 <acemeister> then try to run it
187 2012-08-04 18:32:04 <acemeister> ?
188 2012-08-04 18:32:55 <weex> acemeister: yes if you have taken the precautions mentioned above
189 2012-08-04 18:33:31 <weex> BTCTrader: what do you need?
190 2012-08-04 18:33:40 <acemeister> what file should i create weex?
191 2012-08-04 18:33:56 <acemeister> to get it running on vista
192 2012-08-04 18:34:11 <acemeister> fuck it ill just try another wallet whats a good wallet besides bitcoin qt
193 2012-08-04 18:34:14 <acemeister> ?
194 2012-08-04 18:34:32 <weex> blockchain.info
195 2012-08-04 18:34:43 <luke-jr> acemeister: Electrum
196 2012-08-04 18:36:39 <BlueMatt> woo 170 sigs/sec when I actually leave my cpu alone and get into later blocks
197 2012-08-04 18:36:48 <BlueMatt> oh...wait, that still sucks
198 2012-08-04 19:09:45 <acemeister> is electrum just as good as bitcoin qt?
199 2012-08-04 19:14:04 <luke-jr> no
200 2012-08-04 19:14:09 <luke-jr> it's better in some ways, worse in others
201 2012-08-04 20:18:26 <amiller> what's the current stale block rate, does anyone know
202 2012-08-04 20:18:30 <amiller> i guess i can probably check blockchain.info for an estimate
203 2012-08-04 20:19:16 <amiller> http://blockchain.info/orphaned-blocks sipa does this definition of orphan blocks disagree with what you told me yesterday?
204 2012-08-04 20:31:27 <luke-jr> yeah
205 2012-08-04 20:31:50 <luke-jr> maybe it'd go over easier if there was an alternative term for competing blocks that lost to another at the same height
206 2012-08-04 20:54:56 <gmaxwell> poop_: the first one is unconfirmed.
207 2012-08-04 20:55:00 <gmaxwell> It's not in a block at all.
208 2012-08-04 20:55:05 <gmaxwell> You should be ignoring those.
209 2012-08-04 20:55:38 <gmaxwell> throw a 1 on the end to keep them out, I guess.
210 2012-08-04 21:04:11 <poop_> gmaxwell: if that was the case, why don't any more beyond that one show up o_O
211 2012-08-04 21:04:48 <amiller> hey this idea is changing around a little bit still
212 2012-08-04 21:04:56 <amiller> the problem with my difficulty adjustment scheme is that it still isn't partition tolerant
213 2012-08-04 21:05:07 <amiller> the reason why is that if there's a partition into 33% and 33% and still a 33% attacker
214 2012-08-04 21:05:09 <amiller> the two honest groups will eventually converge to a smaller difficulty
215 2012-08-04 21:05:18 <amiller> if the partition is resolved, they'd still waste a lot of their work
216 2012-08-04 21:05:26 <amiller> unless there's a way that including the dead blocks also counts towards the difficulty score
217 2012-08-04 21:06:34 <amiller> what i'd want to happen is that if there's a partition into 33% and 33%, and suddenly the partition is resolved, then half of them should roll back but the resulting chain should now be really strong
218 2012-08-04 21:07:35 <gmaxwell> well, it will _evenutally_ be really strong, if they keep building on it.
219 2012-08-04 21:08:11 <amiller> if the partition is resolve forever
220 2012-08-04 21:08:16 <amiller> i'm in space bitcoin mode now
221 2012-08-04 21:08:19 <gmaxwell> I know you are.
222 2012-08-04 21:08:28 <gmaxwell> oh _space_ as in outer space? rather than dreamland bitcoin? Okay.
223 2012-08-04 21:08:36 <amiller> mining colony on the dark side of the moon
224 2012-08-04 21:08:43 <amiller> anyway
225 2012-08-04 21:09:03 <amiller> so i'm proposing now that we include dead blocks in the blockchain as annotations, but also count them at face value for their proofs of work
226 2012-08-04 21:14:23 <amiller> i guess that's ddosable then because an attacker could simulate being a bunch of fragmented little islands that have tons of low difficulty blocks
227 2012-08-04 21:15:24 <amiller> and it would be cumbersome to account for them all
228 2012-08-04 21:21:31 <gmaxwell> amiller: also creates an economic incentive to try to heal forks beyond the basic system-works-good ones.
229 2012-08-04 21:21:59 <amiller> if storage was irrelevant, then if you really didn't want to waste _any_ work you would include every hash ever
230 2012-08-04 21:22:25 <amiller> you'd get the full view of how much work was done
231 2012-08-04 21:23:29 <amiller> everything else is just about sampling from the total work
232 2012-08-04 21:24:29 <amiller> so if you're a big fork and you want to eat up a smaller fork, you should skip all the small values and eat the high value ones
233 2012-08-04 21:32:14 <amiller> at the same time, lots of medium value ones are a more reliable sample than a single high value
234 2012-08-04 21:32:43 <amiller> so there's a tradeoff between storage and sensitivity but that may be manageable
235 2012-08-04 21:32:56 <amiller> this is tricky
236 2012-08-04 21:43:42 <amiller> so the 33% mining colony on halley's comet passes by and drops off a log of all their data, sorted proof-of-work first
237 2012-08-04 21:44:09 <amiller> we immediately gobble up the proofs of work to get the benefit of their computation
238 2012-08-04 21:44:25 <amiller> later we gradually commit their transactions
239 2012-08-04 21:57:51 <amiller> it seems like it might be totally untenable to take advantage of proofs of work without validating it
240 2012-08-04 21:58:07 <amiller> because an attacker could just take p.o.w. form the main fork and inflate his own blocks with it too
241 2012-08-04 22:01:58 <midnightmagic> what happens if I rebroadcast an identical tx but with different fees?
242 2012-08-04 22:05:11 <midnightmagic> ah.. error: {"code":-22,"message":"TX rejected"} happens
243 2012-08-04 22:06:44 <midnightmagic> geh, is there no good way to ask bitcoind what the fee "should" be for a tx?
244 2012-08-04 22:06:51 <Gladamas> midnightmagic: you cant broadcast identical tx's, theyll be rejected for a double-spend
245 2012-08-04 22:07:11 <Gladamas> midnightmagic: 0.0005 BTC/KB is a good rule
246 2012-08-04 22:07:26 <midnightmagic> Gladamas: i thought there was a way to update a tx though..
247 2012-08-04 22:08:00 <Gladamas> midnightmagic: I believe that's only if it hasnt been broadcasted yet, IIRC
248 2012-08-04 22:09:23 <amiller> so imagine that we're using some kind of proof of work gobbling scheme
249 2012-08-04 22:09:27 <amiller> but now we need to compare the two chains
250 2012-08-04 22:09:28 <midnightmagic> crap that was a 57KB tx.
251 2012-08-04 22:09:51 <amiller> each chain will have all the same proofs of work
252 2012-08-04 22:09:57 <amiller> but you can difference them
253 2012-08-04 22:10:11 <amiller> and pick between them based on what's under the proof of work perhaps
254 2012-08-04 22:10:25 <amiller> if you're comparing both chains then you can identify the work
255 2012-08-04 22:10:32 <jgarzik> wow
256 2012-08-04 22:10:33 <amiller> even if the individual chains may have included the data without validating it
257 2012-08-04 22:10:36 <jgarzik> pynode is still alive overnight
258 2012-08-04 22:10:41 <jgarzik> no block orphans overnight, then
259 2012-08-04 22:11:04 <jgarzik> implement OP_IF, or block chain re-org?  hmmmm
260 2012-08-04 22:11:45 <copumpkin> and its associates
261 2012-08-04 22:11:45 <midnightmagic> Gladamas: I totally paid more than that rule of thumb in fees and it hasn't been confirmed in > 10 blocks. :-/
262 2012-08-04 22:11:46 <midnightmagic> i should've paid more.
263 2012-08-04 22:11:52 <copumpkin> the spec doesn't really explain it much
264 2012-08-04 22:11:54 <jgarzik> copumpkin: yeah, I admit I don't fully understand it either
265 2012-08-04 22:11:55 <Gladamas> It's possible Ozcoin will include the 57KB tx in its blocks
266 2012-08-04 22:12:02 <midnightmagic> bah!
267 2012-08-04 22:12:23 <copumpkin> I think roconnor implemented it in purecoin though, so I should be able to figure it out from there
268 2012-08-04 22:12:28 <Gladamas> midnightmagic: some pools (deepbit) only include tx's in their blocks that pay /over/ the default fee
269 2012-08-04 22:12:33 <Gladamas> which is really pathetic
270 2012-08-04 22:13:05 <jgarzik> copumpkin: it uses CastToBool(), so it evaluates expressions down to a zero/non-zero stack value (CBigNum, an MPI integer in little endian format)
271 2012-08-04 22:13:26 <jgarzik> but the fExec switching needs further studying before I understand it fully
272 2012-08-04 22:13:39 <copumpkin> it seems like it would need a notion of quotation though
273 2012-08-04 22:13:47 <midnightmagic> ah there we go. I guess there was just a tx back-up
274 2012-08-04 22:13:51 <copumpkin> to delimit ops that should be executed conditionally
275 2012-08-04 22:14:04 <copumpkin> at least that's how I think most stack languages deal with more complex control flow
276 2012-08-04 22:14:25 <amiller> mmmmmm okay so forks should gobble up each others proofs of work, but when comparing chains, you do not count proofs of work that appear in both.
277 2012-08-04 22:14:28 <jgarzik> copumpkin: fExec flag says "stop executing opcodes", so it is through that
278 2012-08-04 22:14:34 <jgarzik> OP_IF is... strange
279 2012-08-04 22:14:50 <copumpkin> hmm
280 2012-08-04 22:14:59 <jgarzik> please God, don't let it be conditional tokenization :/
281 2012-08-04 22:15:35 <copumpkin> | OP_IF (NEList Block)
282 2012-08-04 22:15:37 <copumpkin> there we go :P
283 2012-08-04 22:15:50 <copumpkin> so it does need special "parsing" treatment
284 2012-08-04 22:16:06 <copumpkin> otherwise doesn't seem too complicated to implement
285 2012-08-04 22:17:02 <roconnor> it doesn't "need" special parsing; that was my choice.
286 2012-08-04 22:17:49 <copumpkin> what are the delimiters for the "quoted" parts?
287 2012-08-04 22:18:11 <roconnor> what are the quoted parts?
288 2012-08-04 22:18:30 <jgarzik> roconnor: the main thing I'm interested in...  what is the impact of tokenizing the entire script, and then executing it?  satoshi client does a tokenize/execute step-by-step iteration, so the answer is not obvious.
289 2012-08-04 22:18:50 <copumpkin> oh
290 2012-08-04 22:18:51 <jgarzik> I retain the bytestream of course
291 2012-08-04 22:18:59 <copumpkin> so it's just OP_ELSE and OP_ENDIF that delimit it
292 2012-08-04 22:19:10 <copumpkin> roconnor: the I'm calling your NEList quoted
293 2012-08-04 22:19:17 <copumpkin> -the
294 2012-08-04 22:19:38 <copumpkin> so OP_ELSE and OP_ENDIF aren't real opcodes, really
295 2012-08-04 22:20:15 <copumpkin> I think I see now :)
296 2012-08-04 22:20:22 <roconnor> jgarzik: if I understand you, tokenizing the entire script is what purecoin does
297 2012-08-04 22:20:48 <roconnor> (modulo the fact that lazy evaluation abastract away execution order)
298 2012-08-04 22:22:41 <jgarzik> roconnor: to be specific, tokenizing is iterating through the entire raw bytestream, translating that into a list of tokens.  "token" is a data structure that stores the opcode, and optionally for OP_PUSHDATA* opcodes, the associated data.
299 2012-08-04 22:22:57 <jgarzik> roconnor: once that translation is complete, iterate through the list of tokens, evaluating at script.cpp does
300 2012-08-04 22:23:09 <roconnor> sounds like what purecoin does
301 2012-08-04 22:23:18 <copumpkin> jgarzik: haskell doesn't really do "once X is complete, do Y"
302 2012-08-04 22:23:20 <copumpkin> :P
303 2012-08-04 22:23:34 <copumpkin> at least not explicitly, unless you actually try to make that happen
304 2012-08-04 22:24:26 <roconnor> jgarzik: due to the presence of If block, my structure is slightly tree-like
305 2012-08-04 22:24:59 <copumpkin> how are nested if blocks dealt with?
306 2012-08-04 22:25:06 <jgarzik> roconnor: heh, I wanted to avoid going whole hog AST
307 2012-08-04 22:25:11 <jgarzik> but we'll see
308 2012-08-04 22:25:12 <roconnor> copumpkin: they are nested
309 2012-08-04 22:25:26 <copumpkin> and I guess that means that you can have malformed scripts
310 2012-08-04 22:25:33 <roconnor> ?
311 2012-08-04 22:25:45 <copumpkin> by not having ENDIF or ELSE
312 2012-08-04 22:26:10 <copumpkin> "syntax errors"
313 2012-08-04 22:26:36 <roconnor> IIRC in bitcoin missing ENDIF are magically terminated for you.
314 2012-08-04 22:26:43 <copumpkin> :O
315 2012-08-04 22:28:24 <jgarzik> meh
316 2012-08-04 22:28:31 <jgarzik> I think I'll work on chain reorg ;-)
317 2012-08-04 22:28:39 <copumpkin> lol
318 2012-08-04 22:29:05 <roconnor> copumpkin: have you seen purecoin's chain reorg code :D
319 2012-08-04 22:29:18 <copumpkin> nope :)
320 2012-08-04 22:29:40 <copumpkin> I wanted to see how I would implement it without having my vision clouded by yours!
321 2012-08-04 22:29:45 <copumpkin> but have had no time :(
322 2012-08-04 22:29:48 <roconnor> :)
323 2012-08-04 22:29:49 <roconnor> ok
324 2012-08-04 22:29:50 <copumpkin> too busy gambling with bitcoiners in vegas
325 2012-08-04 22:30:02 <roconnor> copumpkin: have you lost all your winnings to the house yet?
326 2012-08-04 22:30:16 <copumpkin> oh, I never won anything, so that wasn't a problem
327 2012-08-04 22:30:28 <copumpkin> I set myself a loss threshold, played a couple of games, and then stopped :)
328 2012-08-04 22:34:36 <jgarzik> copumpkin: is this when pirateat40 will make his famed appearance?
329 2012-08-04 22:34:47 <copumpkin> oh, he already made it
330 2012-08-04 22:34:51 <copumpkin> this happened last weekend
331 2012-08-04 22:35:00 <copumpkin> parrots and pirates everywhere
332 2012-08-04 22:35:07 <copumpkin> RMS would have been proud
333 2012-08-04 22:36:13 <copumpkin> http://gravina.x10.mx/images/them.jpg
334 2012-08-04 22:36:47 <jgarzik> back to the chain reorg question, then:  filesystem snapshot-like behavior, or cheese it like satoshi, and only index the "best" chain -- with the consequence that reorg'ing onto a bad chain may find invalid tx's
335 2012-08-04 22:37:07 <Diablo-D3> copumpkin: dear lord its the pirate army
336 2012-08-04 22:37:35 <jgarzik> and result in a stuck node, until another chain wins
337 2012-08-04 22:37:50 <copumpkin> Diablo-D3: indeed! I am one of them, too
338 2012-08-04 22:37:56 <copumpkin> and admire the portraits of ponzi and madoff
339 2012-08-04 22:38:04 <jgarzik> e.g. InvalidChainFound()
340 2012-08-04 22:38:17 <Diablo-D3> copumpkin: so when is pirate going under?
341 2012-08-04 22:38:31 <copumpkin> Diablo-D3: nobody knows :)
342 2012-08-04 22:38:34 <copumpkin> well, he might
343 2012-08-04 22:39:05 <Diablo-D3> I wish it'd hurry up already =/
344 2012-08-04 22:39:09 <copumpkin> lol
345 2012-08-04 22:39:30 <Diablo-D3> I should just run a goddamned scam
346 2012-08-04 22:39:37 <Diablo-D3> so I can steal the money and invest it into DMC
347 2012-08-04 22:39:59 <midnightmagic> or he might not and whoever the hell his buyers are, they don't care at all and their appetite for btc is ongoing.
348 2012-08-04 22:40:14 <midnightmagic> <-- not a pirate
349 2012-08-04 22:45:07 <roconnor> what's a pirate?
350 2012-08-04 22:45:19 <copumpkin> roconnor: you've missed out on all the bitcoin gossip :)
351 2012-08-04 22:45:28 <roconnor> I was in France
352 2012-08-04 22:45:53 <amiller> hi roconnor
353 2012-08-04 22:46:05 <Diablo-D3> roconnor: pirate bank
354 2012-08-04 22:46:05 <roconnor> hi
355 2012-08-04 22:46:41 <midnightmagic> holy crap roconnor you're talking
356 2012-08-04 22:47:46 <copumpkin> lol
357 2012-08-04 22:47:51 <copumpkin> roconnor: I told you people missed you!
358 2012-08-04 22:48:04 <roconnor> midnightmagic: I was in France
359 2012-08-04 22:48:11 <Diablo-D3> pirate savings and trust
360 2012-08-04 22:48:35 <roconnor> ok
361 2012-08-04 22:48:46 <copumpkin> roconnor: something that looks overwhelmingly like a ponzi scheme, but that some have doubts about :)
362 2012-08-04 22:48:49 <midnightmagic> roconnor: there's this guy who set up a depositor/investment thing where if you deposit >= 2000 bitcoins he's pay you like 7% interest weekly.
363 2012-08-04 22:48:55 <roconnor> LOL
364 2012-08-04 22:49:53 <midnightmagic> roconnor: Everybody thinks it's a scam because they can't see how it's possible. unfortunately this guy doesn't say how he does it, and so speculation is rampant in a way i don't think i've seen since the mtgox haters all glomped on to one another in a giant ball of suck.
365 2012-08-04 22:51:24 <midnightmagic> roconnor: And then some guy was willing to bet that he'd not be able to meet his obligations in the next year.  So he put up 5000 btc and pirate put up 5000 btc (pirateat40 is his nick) and nanotube escrowed the bet. so there's 10,000 btc sitting there.
366 2012-08-04 22:51:51 <copumpkin> unfortunately, 10k btc is rather small change to some people :)
367 2012-08-04 22:52:02 <Diablo-D3> thats more than dmc has.
368 2012-08-04 22:52:05 <gmaxwell> 3372% APY for the win.
369 2012-08-04 22:52:17 <roconnor> If I were nanotube I'd invest the 10,000 and put in in the pirate bank
370 2012-08-04 22:52:20 <copumpkin> lol
371 2012-08-04 22:52:21 <Diablo-D3> maybe I should invest in pirate
372 2012-08-04 22:52:31 <Diablo-D3> if pirate runs off, oh well
373 2012-08-04 22:52:33 <Diablo-D3> not my problem
374 2012-08-04 22:52:34 <copumpkin> Diablo-D3: I dunno, not everyone can be this fabulous
375 2012-08-04 22:52:43 <Diablo-D3> I simply dont care anymore
376 2012-08-04 22:52:43 <midnightmagic> +1
377 2012-08-04 22:52:58 <midnightmagic> Diablo-D3: About what?
378 2012-08-04 22:53:05 <midnightmagic> you're not getting fatalistic are you?
379 2012-08-04 22:53:10 <Diablo-D3> trying to do things the right way
380 2012-08-04 22:53:45 <midnightmagic> there's no such thing as the "right way". it's a construct designed to imprison peoples' minds.
381 2012-08-04 22:54:32 <Diablo-D3> midnightmagic: yes, but running a fucking ponzi is not the right way
382 2012-08-04 22:55:14 <midnightmagic> Diablo-D3: well, you've identified one wrong way.
383 2012-08-04 22:57:50 <Diablo-D3> midnightmagic: its just frustrating watching all the scams suck up the money
384 2012-08-04 22:57:56 <Diablo-D3> but legitimate stuff gets starved to death
385 2012-08-04 22:58:18 <midnightmagic> Diablo-D3: What scams?
386 2012-08-04 23:00:39 <Diablo-D3> bfl, pirate, etc
387 2012-08-04 23:01:19 <copumpkin> what amazes me about this community is how many people claim everything is a scam
388 2012-08-04 23:01:30 <copumpkin> scam must be the most common word on the forum
389 2012-08-04 23:01:33 <Diablo-D3> you cant make 7% a week.
390 2012-08-04 23:01:37 <Diablo-D3> period.
391 2012-08-04 23:01:41 <Diablo-D3> even if you were the mob
392 2012-08-04 23:01:47 <Diablo-D3> even if you were the fucking federal reserve
393 2012-08-04 23:01:53 <Diablo-D3> you cant make 7% a week
394 2012-08-04 23:02:11 <copumpkin> I don't really care
395 2012-08-04 23:02:17 <copumpkin> I'm just saying that people call everything a scam
396 2012-08-04 23:02:27 <copumpkin> for every enterprise out there, there's at least someone calling it a scam
397 2012-08-04 23:02:51 <copumpkin> gigamining has resident scam-callers
398 2012-08-04 23:02:57 <copumpkin> most of the mining ops do
399 2012-08-04 23:03:01 <copumpkin> BFL has dozens
400 2012-08-04 23:03:19 <copumpkin> but not just BFL
401 2012-08-04 23:03:30 <copumpkin> other mining hardware companies are all scams according to at least one person
402 2012-08-04 23:03:30 <Diablo-D3> so is that how you win?
403 2012-08-04 23:03:37 <Diablo-D3> people invest in your shit when someone calls you a scam?
404 2012-08-04 23:03:41 <copumpkin> that must be it
405 2012-08-04 23:03:45 <copumpkin> want me to call DMC a scam?
406 2012-08-04 23:03:48 <copumpkin> I can't be the first person
407 2012-08-04 23:03:48 <Diablo-D3> plz :<
408 2012-08-04 23:03:55 <copumpkin> oh shit, I threw out my forum account
409 2012-08-04 23:03:57 <Diablo-D3> you might be the first person anyone listens to
410 2012-08-04 23:03:58 <copumpkin> sorry man
411 2012-08-04 23:25:07 <amiller> okay so you still have two kinds of information, you have deadweight proof-of-work and the regular block chain, and what you should do is set the difficulty equal to the average of the deadweight
412 2012-08-04 23:25:17 <amiller> if things are stable, it could be as fast as 1:1
413 2012-08-04 23:25:40 <amiller> if there's a partition rejoin where you can't merge two forks, then you build up a bunch of deadweight you need to pay off
414 2012-08-04 23:27:02 <amiller> the more often you interact and can't merge/switch, the more dead weight you accumulate until you reach parity
415 2012-08-04 23:41:32 <amiller> using forks/deadblocks to adjust the difficulty to cope with partitions/attacks without the need for timestamps is the key idea
416 2012-08-04 23:42:07 <amiller> a good solution to this would never discard any work but only add more work on top (increase the difficulty in response to apparent partitions)
417 2012-08-04 23:42:39 <amiller> but it would also settle back down to how it was if no new data shows up
418 2012-08-04 23:42:46 <amiller> paying off the balance of dead blocks is the right idea