User:Genjix/Meetings/10 Jan 2012: Difference between revisions
< User:Genjix | Meetings
m moved /10 Jan 2012 to 10 Jan 2012: Starting slash removed |
m Taras moved page 10 Jan 2012 to User:Genjix/Meetings/10 Jan 2012 without leaving a redirect |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
Agenda: | Agenda: | ||
* Pull 748 | |||
* PayToScript -> Payscr? | |||
* addmultisigaddress cases | |||
* Protocol version bump | |||
* Changes to block verification | |||
* how long voting period | |||
* Fuzzing tool(s) | |||
* Basic fee rules | |||
* Finishing up 0.4.3 and 0.5.2 | |||
<pre> | |||
20:56 < genjix> i made a list of things here, https://en.bitcoin.it/wiki//10_Jan_2012 | |||
20:57 < genjix> lets have that meet then (i got flu though today so i might be a bit slow/incoherent) | |||
20:58 < genjix> so, | |||
20:58 < genjix> this next change with the PayToScript, is it going to bump version to 0.6 or are we already at 0.6 and will have another protocol version bump? | |||
20:58 -!- the_batman [~cromartie@206.176.233.19] has joined #bitcoin-dev | |||
20:58 < sipa> i'd like to add one point: acceptance of compressed pubkeys | |||
20:59 < genjix> because i think bumping to 0.7 is better. that way if miners lose the vote, it gets rolled back to 0.6 | |||
20:59 < gavinandresen> Are you talking about the protocol version or the client version? | |||
20:59 < genjix> protocol version | |||
20:59 < gavinandresen> PayToScript doesn't affect the protocol at all | |||
20:59 < sipa> genjix: protocol version is currently 60000, client version is currently 0.5.99 | |||
20:59 < genjix> wait, why? | |||
21:00 < genjix> it is a protocol change | |||
21:00 < genjix> since scripts are interpreted in a new way | |||
21:00 < gavinandresen> How so? Exactly the same bytes go across the network.... | |||
21:00 < sipa> gavinandresen: but which bytes are allowed changes | |||
21:00 < CIA-100> bitcoin: Luke Dashjr 0.5.x * r98811f6ad476 bitcoind-stable/ (6 files in 5 dirs): Bump version to 0.5.3 http://tinyurl.com/8yry22r | |||
21:00 < CIA-100> bitcoin: Luke Dashjr 0.5.x * r83201b12ae10 bitcoind-stable/: Merge branch '0.5.0.x' into 0.5.x http://tinyurl.com/7oxn8zk | |||
21:00 < genjix> yeah but protocol is a bit more than what bytes go over the network | |||
21:00 < genjix> it's also how the clients behave | |||
21:00 < helo> i thought that's exactly what it is | |||
21:00 < sipa> the decision on whether to use old or new behaviour is not determined by the protocol version | |||
21:01 < sipa> but the protocol changes, imho | |||
21:01 < gavinandresen> Ok: I'll put in an "I don't care what the client or protocol versions are" | |||
21:02 < sipa> hmm, on the other hand, it is more the transaction format that changes | |||
21:02 -!- denisx [~denis@91-65-136-254-dynip.superkabel.de] has joined #bitcoin-dev | |||
21:02 < genjix> ok so can it be 0.6 now and then 0.7 then? that will make much more sense | |||
21:02 < sipa> it is not relevant to partners in the communication | |||
21:02 < genjix> specially when analysing the network traffic | |||
21:02 < luke-jr> gavinandresen: there you are! | |||
21:02 < roconnor> all these version numbers are ignored by the client (and protocol) anyways | |||
21:03 < sipa> roconnor: the protocol version is not ignored | |||
21:03 < roconnor> sipa: I don't know this. | |||
21:03 < luke-jr> gavinandresen: 0.4.3 is ready for upload to SF, and 0.5.2 will be ready as soon as you do a Mac build (and possibly build the Win/Linux to verify BlueMatt's builds) | |||
21:04 < sipa> roconnor: connect with a pre-206 client, and you won't see checksums, e.g. | |||
21:04 < luke-jr> gavinandresen: Mac/Linux 0.4.3 is at http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.3/ ; you already said you weren't interested in building, so I won't ask you to make a Mac for it | |||
21:04 < roconnor> sipa: ah, interesting | |||
21:04 < gavinandresen> luke-jr: lets talk about satoshi-client-specific-release stuff later | |||
21:05 < genjix> roconnor: https://en.bitcoin.it/wiki/Protocol_specification#version | |||
21:05 < luke-jr> ok | |||
21:05 < genjix> sipa: k, go on with compressed pubkeys | |||
21:05 < sipa> i haven't heard any complaints | |||
21:05 < genjix> < sipa> i'd like to add one point: acceptance of compressed pubkeys | |||
21:06 < luke-jr> gavinandresen: re BIP 16, I think it needs to be Rejected or revised clearer | |||
21:06 < roconnor> sipa: aren't compressed keys already accepted? | |||
21:06 < sipa> but compressed pubkeys on the network is a network rule change | |||
21:06 < luke-jr> sipa: it is? | |||
21:06 < makomk> sipa: don't think it is actually? | |||
21:06 < gavinandresen> It was unspecified before | |||
21:06 < sipa> all specifications of the network say that pubkeys are 65 bytes are start with 0x04 | |||
21:06 < sipa> we are using other pubkeys | |||
21:07 < sipa> which happen to be supported by older clients even | |||
21:07 < luke-jr> gavinandresen: but it was enabled, so anything not supporting it would have forked | |||
21:07 < sipa> good point | |||
21:07 < sipa> there is compressed pubkey on mainnet | |||
21:07 < luke-jr> seems more like a hidden feature before, to me | |||
21:07 < luke-jr> and a bug in the specifications | |||
21:07 -!- da2ce7 [~da2ce7@gateway/tor-sasl/da2ce7] has joined #bitcoin-dev | |||
21:07 < roconnor> sipa: what packets use pubkeys? | |||
21:08 -!- d4de [~RaWWR@unaffiliated/d4de] has joined #bitcoin-dev | |||
21:08 < sipa> roconnor: scriptSigs | |||
21:08 < genjix> it's just an automatic feature of the EC lib in SSL | |||
21:08 < genjix> (i assume) | |||
21:08 < sipa> luke-jr: an unintended, unspecified feature, that all OpenSSL-based clients support probably automatically | |||
21:08 < makomk> I seem to recall that compressed pubkeys even pass IsStandard. | |||
21:08 < sipa> makomk: they do | |||
21:08 < roconnor> sipa: which message type is scriptSigs in? | |||
21:08 < [eval]> TD: i like your assurance contract idea! i bet the same can be used for relaying transactions, too (relay nodes can publish their bitcoin addresses, and stay up as long as they're being funded) | |||
21:09 < sipa> roconnor: tx and block | |||
21:09 < genjix> damn this is why user agents are useful :D | |||
21:09 < da2ce7> Back safe in AUS. | |||
21:09 < luke-jr> genjix: ? | |||
21:09 < genjix> see how much of a minority alternative bitcoin versions (like BitcoinJava) are | |||
21:09 < sipa> anyway, i have heard no complaints, so i guess we can continue rolling out compressed pubkeys? | |||
21:09 < TD> [eval]: thanks. i guess so | |||
21:09 < roconnor> sipa: hmm, I cannot find what you are talking about. | |||
21:09 < TD> sipa: are there any compressed pubkeys on the testnet? | |||
21:10 < roconnor> sipa: I'm looking at https://en.bitcoin.it/wiki/Protocol_specification#tx | |||
21:10 < roconnor> and #block | |||
21:10 < sipa> TD: yes, and one on realnet too | |||
21:10 < TD> i see | |||
21:10 < genjix> where is the mainnet compressed pubkey? | |||
21:10 < TD> where is the one on the prodnet? | |||
21:10 < genjix> i never noticed it | |||
21:10 < luke-jr> roconnor: afaik those specs are incomplete | |||
21:10 < TD> i probably have to update bitcoinj to support this | |||
21:10 < roconnor> luke-jr: well, I think sipa's problem is simply a documentation error. | |||
21:10 < gavinandresen> sipa: I vote for pulling soon (I was testing it with p2sh, which is how I confused myself RE: I thought I'd already pulled it) | |||
21:10 < TD> afaik bouncy castle already knows about them so it should be easy | |||
21:10 < genjix> but i'm also using SSL's EC lib like bitcoin | |||
21:10 < roconnor> luke-jr: but I'm hoping to clairfy | |||
21:10 < genjix> so im guessing it's automatic | |||
21:11 < gavinandresen> roconnor: https://en.bitcoin.it/wiki/Protocol_specification#Signatures | |||
21:11 < sipa> TD: i've mailed with a specification for an import format for corresponding private keys | |||
21:12 < sipa> -with | |||
21:12 < roconnor> gavinandresen: that would be a documentation error ... I thought I fixed that, but maybe I fixed it elsewhere. | |||
21:12 < TD> yes, i saw that | |||
21:12 -!- localhost [~chris@cpe-76-188-161-222.neo.res.rr.com] has joined #bitcoin-dev | |||
21:12 < luke-jr> genjix: why not GnuTLS yet? | |||
21:12 < gavinandresen> While we're fixing documentation: does anybody know if OpenSSL accepts any OTHER types of signatures? | |||
21:12 < gavinandresen> (or pubkeys) | |||
21:12 < luke-jr> genjix: AFAIK OpenSSL is still a problem for libbitcoin legally | |||
21:12 < genjix> luke-jr: i can add an exception according to FSF | |||
21:13 < genjix> they said it was fine | |||
21:13 < sipa> gavinandresen: SEC defines three types: 0x00 = point at infinity, 0x02 and 0x03 = compressed, 0x04 = uncompressed | |||
21:13 < genjix> nice | |||
21:13 < makomk> (Random though - unless I'm entirely mistaken, if OP_CAT was enabled would it be possible to securely create transactions paying someone to generate you a P2SH vanity address?) | |||
21:14 < sipa> signatures are DER encoded, but someone noted before that any BER encoding is accepted | |||
21:14 < roconnor> gavinandresen: it is unclear if 0x00 is a valid public key. It shouldn't be, but someone should double check. | |||
21:14 < genjix> roconnor: who cares. black hole pubkey | |||
21:14 < roconnor> sipa: actuall OpenSSL doesn't follow DER | |||
21:14 < roconnor> sipa: http://r6.ca/blog/20111119T211504Z.html | |||
21:14 < luke-jr> genjix: you can, but it would still be incompatible with people wanting to use it in GPL etc | |||
21:14 < sipa> roconnor: indeed, i remember that they used some trick for singed/unsigned | |||
21:16 < roconnor> sipa: there are sigs (on testnet?) that use "negative" numbers | |||
21:16 < roconnor> maybe it was mainnet | |||
21:16 < roconnor> I forget | |||
21:16 < roconnor> somewhere | |||
21:16 < roconnor> what a pain | |||
21:16 < TD> devrandom: poke | |||
21:16 < gavinandresen> Well, if somebody who understands DER/BER and openssl's implementation much better than me would like to think hard about what implementations should/shouldn't accept and write it up that would be spiffy | |||
21:16 < sipa> anyway, it seems the entire "specification"for what are valid sigs and pubkeys is set by OpenSSL's implementation | |||
21:16 < genjix> yeah lol | |||
21:17 < gmaxwell> sipa: this is a bad thing— its not like most applications care as much about it changing as bitcoin does. | |||
21:17 < gavinandresen> Discouraging transactions that play games with encodings would be a very good idea, I think. | |||
21:18 -!- pycke2 [~yaaic@83-174.105-92.cust.bluewin.ch] has joined #bitcoin-dev | |||
21:18 < genjix> what about discouraging coinbases outside of predefined values? | |||
21:18 < sipa> why? | |||
21:19 < genjix> well if we compress pubkeys to avoid blockchain bloat | |||
21:19 < sipa> gavinandresen: they should be simply made invalid, imho - but that requires some coordination with a supermajority of miners | |||
21:19 < genjix> why not discourage custom coinbases. people put all kinds of long ass messages in there | |||
21:19 < luke-jr> genjix: they can't. | |||
21:19 < gavinandresen> coinbases are 100 bytes max | |||
21:19 < sipa> genjix: i don't care about max 98 bytes of bloat per 10 minutes | |||
21:19 < gmaxwell> genjix: maximum size of the coinbase is small. | |||
21:20 < genjix> ok | |||
21:20 < gmaxwell> And most of the 'crap' now is merged mining committments which are O(1) at least. | |||
21:20 < makomk> Besides, if we discouraged custom coinbases how could we signal P2SH support? | |||
21:21 < genjix> allow that one alone | |||
21:21 < makomk> A hypothetical successor to P2SH? | |||
21:21 < roconnor> genjix: *lol* | |||
21:21 < sipa> i see no reason to limit coinbases | |||
21:22 < genjix> ok | |||
21:23 < sipa> gavinandresen: any further ACK required on pubkey compression? otherwise i pull | |||
21:23 < roconnor> luke-jr: if you really want to throw a wrench into th P2SH proposal you should put P2SH in your coinbase, but not actually support it. | |||
21:23 < gavinandresen> sipa: go for it | |||
21:23 < sipa> genjix: next agenda point | |||
21:23 < genjix> btw i didnt look over changes too thoroughly yet, but it seems the changes are: new sig ops count/solver which is in ConnectInputs, and new script eval | |||
21:23 < CIA-100> bitcoin: Pieter Wuille master * rafcf6f9 / (8 files in 2 dirs): Merge pull request #649 from sipa/comprpubkey ... https://github.com/bitcoin/bitcoin/commit/afcf6f974f5c0746db5526b0c209c7db0f5dbe0b | |||
21:24 < genjix> i was thinking to make a quick bullet list of changes for people to examine | |||
21:24 -!- tyn [~rynxy@d-213-212.resnet.unb.ca] has quit [Read error: No route to host] | |||
21:24 < genjix> for people interested in how the new works | |||
21:24 < gavinandresen> genjix: new VerifySignature, but the guts of EvalScript go back to pre-op-eval state. | |||
21:25 < genjix> yep, so is that all really? seems relatively straightforward | |||
21:26 < genjix> (apart from the RPC stuff and so on) | |||
21:26 -!- bakh_ [~kass2@AAnnecy-752-1-1-172.w90-41.abo.wanadoo.fr] has joined #bitcoin-dev | |||
21:26 < gavinandresen> genjix: I'm testing a refactoring of ConnectInputs that moves some of the tests for txn validity to before the ECDSA signature checks, so denial-of-service is less possible | |||
21:26 < genjix> nice. | |||
21:26 < genjix> i like how you refactored the code into FetchInputs and ConnectInputs | |||
21:27 < gavinandresen> ConnectInputs() does way too many things..... | |||
21:28 < gavinandresen> What's the PayToScript -> Payscr? agenda item? Suggested rename? | |||
21:28 < TD> sipa: hey, any idea which tx on mainnet has compressed pubkeys? | |||
21:28 < genjix> ah yeah, just got tired typing PayToScript all the time | |||
21:28 < genjix> Payscript or something sounds nicer | |||
21:28 < sipa> TD: searching | |||
21:28 < genjix> not a big deal though | |||
21:28 < gmaxwell> P2SH | |||
21:28 < genjix> sipa: yeah that tx would be really nice | |||
21:29 < genjix> gmaxwell: hah yeah cool | |||
21:29 < genjix> P2SH | |||
21:29 < luke-jr> need to give it a distinct name | |||
21:29 < luke-jr> separate from the general concept | |||
21:29 < gavinandresen> bruce | |||
21:29 < genjix> :D | |||
21:29 < genjix> haha | |||
21:29 < gmaxwell> (which somehow my mind parses as 'PUSH') | |||
21:30 < gmaxwell> People are going to call it '3-addresses' or something like that regardless of what we call it. | |||
21:30 < luke-jr> lol | |||
21:30 < luke-jr> so are we going to discuss /P2SH/ or not? | |||
21:30 < genjix> luke-jr: ? sure | |||
21:30 < sipa> genjix, TD: http://blockchain.info/tx-index/13401517/94af4607627535f9b2968bd1fbbf67be101971d682023d6a3b64d8caeb448870?show_adv=yes | |||
21:30 < genjix> tyty! | |||
21:30 < TD> thanks | |||
21:31 < gavinandresen> luke-jr: last I heard, you weren't going to support it unless we pinkie-swore in the BIP that Bitcoin 2.0 got rid of scriptPubKey entirely. | |||
21:31 < luke-jr> gavinandresen: exactly. | |||
21:31 -!- iddo [~idddo@csm.cs.technion.ac.il] has quit [Changing host] | |||
21:31 -!- iddo [~idddo@unaffiliated/iddo] has joined #bitcoin-dev | |||
21:31 -!- b4epoche_ [~textual@dssl.mne.psu.edu] has joined #bitcoin-dev | |||
21:31 < luke-jr> I think special-casing a magic script like proposed in BIP 16 only ever makes sense as a backward compatible way of abolishing scriptPubKey entirely. | |||
21:32 < genjix> why not call then input_script and output_script lol. i always get confused with the 2 | |||
21:32 < gavinandresen> I don't think it is a good idea to put "this is what is going to happen at some unspecified point in the future" into BIPs-- what do other people think? | |||
21:32 -!- b4epoche [~textual@dssl.mne.psu.edu] has quit [Ping timeout: 244 seconds] | |||
21:32 -!- b4epoche_ is now known as b4epoche | |||
21:32 < genjix> gavinandresen: maybe this? https://en.bitcoin.it/wiki/Hardfork_Wishlist | |||
21:32 < TD> um, what's wrong with scriptPubKey | |||
21:32 < luke-jr> gavinandresen: rather, "This change formally deprecates scriptPubKey (now), and all future development should assume it will go away in the future." | |||
21:32 < gmaxwell> I think people here have mostly said that would be the intention if we were doing bitcoin2.0 today— but hell, who knows what the future brings. | |||
21:33 < sipa> i prefer seeing BIP 16 as adding a possibility | |||
21:33 < luke-jr> obviously if there's some major problem in a year, a future BIP can deprecate BIP 16 and revive scriptPubKey :p | |||
21:33 < TD> could you guys please stop screwing with the protocol? | |||
21:33 < luke-jr> sipa: adding a possibility, would mean a new opcode with a new function | |||
21:34 < luke-jr> not special-casing a specific template | |||
21:34 < midnightmagic> uh.. what the hell debug flag is it so I can see the commands themselves invoked? (gmake) | |||
21:34 < genjix> TD: i think this is maybe the last major change (the P2SH) | |||
21:34 < luke-jr> genjix: unlikely :P | |||
21:34 < roconnor> I agree with TD | |||
21:34 < gavinandresen> I agree with TD | |||
21:34 < roconnor> doing nothing is better than P2SH | |||
21:34 < TD> i think once you open the "hey let's improve the protocol" can of worms, there's no end in sight | |||
21:34 < gavinandresen> I disagree with roconnor | |||
21:35 < roconnor> contradition!! | |||
21:35 < roconnor> :D | |||
21:35 < genjix> TD: yeah well, bitcoin has an inevitable future as a bloated standard | |||
21:35 < gmaxwell> genjix: there are worse fates. | |||
21:35 < gmaxwell> (like being too unimportant for anyone to care to add bloat) | |||
21:35 < gavinandresen> roconnor: would you support getting rid of OP_IFDUP? | |||
21:35 < genjix> sure | |||
21:36 -!- erle- [~m@f052136016.adsl.alicedsl.de] has joined #bitcoin-dev | |||
21:36 < gavinandresen> (we can mess with the protocol to make it smaller, too....) | |||
21:36 < roconnor> gavinandresen: not really | |||
21:36 < roconnor> gavinandresen: unless there are no instances of OP_IFDUP right now | |||
21:36 < genjix> one thing though that would be nice is an informal 'gentlemen's agreement' on basic fee rules for the mempool | |||
21:36 < roconnor> and we move quickly | |||
21:36 -!- briareus [~briareus@unaffiliated/briareus] has joined #bitcoin-dev | |||
21:37 < TD> removing opcodes would result in attackers being able to split the chain out from underneath merchants who did not upgrade | |||
21:37 < gmaxwell> genjix: there is one such agreement embedded in the software, perhaps not the right one— and perhaps not one people are following. | |||
21:37 < genjix> like the current fee rules are hairy and likely to be ignored by most (i dont understand the rationale behind a lot of it) | |||
21:37 < gavinandresen> TD: it'd have to be "support removed in blocks after time X" and mining pools would have to express support etc | |||
21:38 < gavinandresen> If we were lucky, there would be no blocks mined with the unsupported feature before the deadline | |||
21:38 < gmaxwell> genjix: I feel like I undestand the rules and their rationale. Fundimentally they're using still-coins as a payment for transactions precisely because still-coins is what you don't have if you're DOS attacking. | |||
21:38 < gmaxwell> genjix: I think anything with that behavior is going to be similarly complicated, though perhaps multiple systems would meet that goal. | |||
21:38 -!- _Fireball [~fireball@31.13.34.250] has joined #bitcoin-dev | |||
21:38 < da2ce7> TD, we insert those opcodes on purpose to make a forced split. | |||
21:39 < gavinandresen> Ok, sounds like luke-jr is alone in wanting wording in the BIP RE: scriptPubKey. | |||
21:39 < da2ce7> so it will fail hard. | |||
21:39 < da2ce7> ** in the alt-chain. | |||
21:39 < luke-jr> gavinandresen: does not | |||
21:39 < genjix> well i use a circular buffer and slow it filling up as it gets near the end | |||
21:39 < TD> i continue to believe the core protocol doesn't need fixing | |||
21:39 < gmaxwell> luke-jr: would you be happier with something more vague. Like "current developers think that P2SH transactions are the way of the future" or something? | |||
21:39 < luke-jr> sounds like TD and roconnor agree that "doing nothing is better than P2SH" | |||
21:39 * roconnor agrees with TD | |||
21:40 < gavinandresen> Can we not have that argument AGAIN? I've got to go in about 10 minutes... | |||
21:40 < luke-jr> gmaxwell: no, because /P2SH/ as written only makes sense if it deprecates scriptPubKey | |||
21:40 < gmaxwell> luke-jr: as we discussed, and I think you accepted— we can't deprecate any thing until P2SH is widely deployed and proven. | |||
21:41 < luke-jr> gmaxwell: nonsense | |||
21:41 < gmaxwell> I personally think we would eventually deprecate non-p2sh but it might be years before the 1form addresses are gone. | |||
21:41 < luke-jr> we just can't remove it | |||
21:41 < sipa> genjix: anything else on the agenda? | |||
21:41 < genjix> nope | |||
21:41 < luke-jr> … | |||
21:41 < gmaxwell> sort of a meaningless depreciation then— it's not like we're a standards body here. | |||
21:41 < luke-jr> lots on the agenda | |||
21:42 < luke-jr> addmultisigaddress cases, Fuzzing tool(s), Finishing up 0.4.3 and 0.5.2 | |||
21:42 < sipa> luke-jr: bring up a topic, then | |||
21:42 < luke-jr> and other topics relates to P2SH | |||
21:42 < luke-jr> gmaxwell: BIP is a standards process | |||
21:42 < genjix> what is fuzzing tools? | |||
21:42 < luke-jr> nfc | |||
21:42 < gavinandresen> Fuzzing tools: I want a protocol-level fuzzer. Anybody already written one? | |||
21:42 < da2ce7> luke-jr: I don't think that we can ever get rid of 1form addresses... | |||
21:42 < luke-jr> da2ce7: we can phase them out (deprecate them) | |||
21:42 < gmaxwell> I've run zzuf on the bitcoin network connections did nothing interesting, presumably due to the checksums on messages. :) | |||
21:43 < makomk> We can make clients not generate new ones. | |||
21:43 -!- Carmivore [~carmivmor@ec2-107-22-137-127.compute-1.amazonaws.com] has quit [Remote host closed the connection] | |||
21:43 < gavinandresen> RE: fuzzing: https://gist.github.com/1525448 | |||
21:43 < sipa> 1form address will remain as identifiers for keypairs; we can deprecate them as direct payment option | |||
21:43 < da2ce7> we can re-implment them I guess - but people need to still be able to spend coins sent to them anytime. | |||
21:43 < luke-jr> da2ce7: eventually everyone will NEED to upgrade for "Bitcoin 2.0", so support for them can be removed at that point | |||
21:43 < makomk> gmaxwell: yeah, I think it may silently ignore anything that fails checksumps or is otherwise invalid. | |||
21:43 < gmaxwell> has anyone tried advancing their clocks on some nodes past the checksum flagday yet? | |||
21:43 < sipa> genjix: good idea | |||
21:43 < genjix> gmaxwell: super | |||
21:44 < roconnor> gmaxwell: what is checksum flagday? | |||
21:44 < genjix> gavinandresen: super | |||
21:44 < gmaxwell> makomk: the people in this room don't control all clients. | |||
21:44 -!- tyn [~rynxy@d-213-212.resnet.unb.ca] has joined #bitcoin-dev | |||
21:44 < TD> he means the day when the "version" message protocol changes | |||
21:44 < gmaxwell> // Version 0.2 obsoletes 20 Feb 2012 | |||
21:44 < gmaxwell> if (GetTime() > 1329696000) | |||
21:44 < gmaxwell> { | |||
21:45 < sipa> gmaxwell: unable to connect | |||
21:45 < makomk> gmaxwell: From my playing-around it probably breaks compatibility with nodes that disagree on the value of the flag, but I've no idea what non-Satoshi clients do. | |||
21:45 < sipa> which is expected | |||
21:45 < genjix> btw what happens when the block timestamp expires? | |||
21:45 < gmaxwell> sipa: have you made sure two new nodes connect? | |||
21:45 < genjix> i know it's a long way off | |||
21:45 < sipa> gmaxwell: trying that now | |||
21:45 < genjix> at minimum it's relying on some UB | |||
21:46 < gmaxwell> sipa: I expect that this is already tested but ... good to be prudent, if everything is going to die in a month we need to know now. :) | |||
21:46 < luke-jr> gmaxwell: so we can sell? | |||
21:46 < makomk> (Yes, this was Yet Another CLC Change. It effectively hardcodes the flag to true.) | |||
21:46 < gmaxwell> hahah | |||
21:46 < roconnor> gmaxwell: is this checksum change on the wiki? | |||
21:47 < genjix> gavinandresen: a bitcoin fuzzer would be so useful for all implementations and network health. the way i test blocks is by overriding hash_block_header and returning different hardcoded hashes based on the block nonce (which i use as an ident) | |||
21:47 < gmaxwell> roconnor: I didn't add it there, did you? Everything I know about bitcoin I know from reading the source, this channel, and Satoshi's writing. | |||
21:47 < genjix> that way i take the first 500 blocks and i design a tree and then send them to the blockchain service | |||
21:48 < luke-jr> [16:44:50] <gmaxwell> if (GetTime() > 1329696000) | |||
21:48 < genjix> roconnor: the wiki is good for starting out, but the satoshi implemenation is the read dox | |||
21:48 < luke-jr> ^ is that guaranteed to be the same time for everyone? | |||
21:48 < sipa> gmaxwell: works | |||
21:49 < gmaxwell> luke-jr: nope. | |||
21:49 -!- Carmivore [~carmivmor@ec2-174-129-83-65.compute-1.amazonaws.com] has joined #bitcoin-dev | |||
21:49 < genjix> btw you know those stats about active bitcoin versions, i wonder how many of those old ones actually make txs | |||
21:49 < luke-jr> so we'll probably have some issues for a few hours? | |||
21:49 < makomk> luke-jr: that's local time, so no, but in theory it shouldn't affect already-established connections. | |||
21:49 < gmaxwell> But it only impacts new connections, so ±network clock skew around that time new nodes may have some poblems. | |||
21:50 < sipa> yes, everything after verack is safe | |||
21:50 < luke-jr> so impact will mainly hit people who start their clients around that time | |||
21:50 < gmaxwell> (especially if their clock is wrong) | |||
21:50 < genjix> use the time in util.cpp | |||
21:50 < gmaxwell> might make sense to have some nodes establish that listen to the new protocol early. | |||
21:50 < genjix> GetAdjustedTime() | |||
21:50 < luke-jr> gmaxwell: and use the DNS seeds to ensure they're available? | |||
21:50 -!- magn3ts [~magn3ts@pdpc/supporter/professional/magn3ts] has quit [Disconnected by services] | |||
21:51 < luke-jr> is it possible to support BOTH protocols? | |||
21:51 < gmaxwell> No. | |||
21:51 < makomk> genjix: that only makes a difference once the node's established some connections. | |||
21:51 < gmaxwell> (I think not at least) | |||
21:51 < genjix> true | |||
21:51 < gmaxwell> The change is basically adding the checksum to the version messages... we already upgrade to the new protocol based on that. | |||
21:51 < genjix> ok well i think we covered everything | |||
21:51 < sipa> well, you could make the checksum optional for version and verack | |||
21:51 < gavinandresen> I can live with a few people with incorrect clocks having trouble connecting for a few hours. | |||
21:51 < gmaxwell> sipa: thanks for testing that. | |||
</pre> |
Latest revision as of 16:54, 7 July 2015
Agenda:
- Pull 748
- PayToScript -> Payscr?
- addmultisigaddress cases
- Protocol version bump
- Changes to block verification
- how long voting period
- Fuzzing tool(s)
- Basic fee rules
- Finishing up 0.4.3 and 0.5.2
20:56 < genjix> i made a list of things here, https://en.bitcoin.it/wiki//10_Jan_2012 20:57 < genjix> lets have that meet then (i got flu though today so i might be a bit slow/incoherent) 20:58 < genjix> so, 20:58 < genjix> this next change with the PayToScript, is it going to bump version to 0.6 or are we already at 0.6 and will have another protocol version bump? 20:58 -!- the_batman [~cromartie@206.176.233.19] has joined #bitcoin-dev 20:58 < sipa> i'd like to add one point: acceptance of compressed pubkeys 20:59 < genjix> because i think bumping to 0.7 is better. that way if miners lose the vote, it gets rolled back to 0.6 20:59 < gavinandresen> Are you talking about the protocol version or the client version? 20:59 < genjix> protocol version 20:59 < gavinandresen> PayToScript doesn't affect the protocol at all 20:59 < sipa> genjix: protocol version is currently 60000, client version is currently 0.5.99 20:59 < genjix> wait, why? 21:00 < genjix> it is a protocol change 21:00 < genjix> since scripts are interpreted in a new way 21:00 < gavinandresen> How so? Exactly the same bytes go across the network.... 21:00 < sipa> gavinandresen: but which bytes are allowed changes 21:00 < CIA-100> bitcoin: Luke Dashjr 0.5.x * r98811f6ad476 bitcoind-stable/ (6 files in 5 dirs): Bump version to 0.5.3 http://tinyurl.com/8yry22r 21:00 < CIA-100> bitcoin: Luke Dashjr 0.5.x * r83201b12ae10 bitcoind-stable/: Merge branch '0.5.0.x' into 0.5.x http://tinyurl.com/7oxn8zk 21:00 < genjix> yeah but protocol is a bit more than what bytes go over the network 21:00 < genjix> it's also how the clients behave 21:00 < helo> i thought that's exactly what it is 21:00 < sipa> the decision on whether to use old or new behaviour is not determined by the protocol version 21:01 < sipa> but the protocol changes, imho 21:01 < gavinandresen> Ok: I'll put in an "I don't care what the client or protocol versions are" 21:02 < sipa> hmm, on the other hand, it is more the transaction format that changes 21:02 -!- denisx [~denis@91-65-136-254-dynip.superkabel.de] has joined #bitcoin-dev 21:02 < genjix> ok so can it be 0.6 now and then 0.7 then? that will make much more sense 21:02 < sipa> it is not relevant to partners in the communication 21:02 < genjix> specially when analysing the network traffic 21:02 < luke-jr> gavinandresen: there you are! 21:02 < roconnor> all these version numbers are ignored by the client (and protocol) anyways 21:03 < sipa> roconnor: the protocol version is not ignored 21:03 < roconnor> sipa: I don't know this. 21:03 < luke-jr> gavinandresen: 0.4.3 is ready for upload to SF, and 0.5.2 will be ready as soon as you do a Mac build (and possibly build the Win/Linux to verify BlueMatt's builds) 21:04 < sipa> roconnor: connect with a pre-206 client, and you won't see checksums, e.g. 21:04 < luke-jr> gavinandresen: Mac/Linux 0.4.3 is at http://luke.dashjr.org/programs/bitcoin/files/bitcoind-0.4.3/ ; you already said you weren't interested in building, so I won't ask you to make a Mac for it 21:04 < roconnor> sipa: ah, interesting 21:04 < gavinandresen> luke-jr: lets talk about satoshi-client-specific-release stuff later 21:05 < genjix> roconnor: https://en.bitcoin.it/wiki/Protocol_specification#version 21:05 < luke-jr> ok 21:05 < genjix> sipa: k, go on with compressed pubkeys 21:05 < sipa> i haven't heard any complaints 21:05 < genjix> < sipa> i'd like to add one point: acceptance of compressed pubkeys 21:06 < luke-jr> gavinandresen: re BIP 16, I think it needs to be Rejected or revised clearer 21:06 < roconnor> sipa: aren't compressed keys already accepted? 21:06 < sipa> but compressed pubkeys on the network is a network rule change 21:06 < luke-jr> sipa: it is? 21:06 < makomk> sipa: don't think it is actually? 21:06 < gavinandresen> It was unspecified before 21:06 < sipa> all specifications of the network say that pubkeys are 65 bytes are start with 0x04 21:06 < sipa> we are using other pubkeys 21:07 < sipa> which happen to be supported by older clients even 21:07 < luke-jr> gavinandresen: but it was enabled, so anything not supporting it would have forked 21:07 < sipa> good point 21:07 < sipa> there is compressed pubkey on mainnet 21:07 < luke-jr> seems more like a hidden feature before, to me 21:07 < luke-jr> and a bug in the specifications 21:07 -!- da2ce7 [~da2ce7@gateway/tor-sasl/da2ce7] has joined #bitcoin-dev 21:07 < roconnor> sipa: what packets use pubkeys? 21:08 -!- d4de [~RaWWR@unaffiliated/d4de] has joined #bitcoin-dev 21:08 < sipa> roconnor: scriptSigs 21:08 < genjix> it's just an automatic feature of the EC lib in SSL 21:08 < genjix> (i assume) 21:08 < sipa> luke-jr: an unintended, unspecified feature, that all OpenSSL-based clients support probably automatically 21:08 < makomk> I seem to recall that compressed pubkeys even pass IsStandard. 21:08 < sipa> makomk: they do 21:08 < roconnor> sipa: which message type is scriptSigs in? 21:08 < [eval]> TD: i like your assurance contract idea! i bet the same can be used for relaying transactions, too (relay nodes can publish their bitcoin addresses, and stay up as long as they're being funded) 21:09 < sipa> roconnor: tx and block 21:09 < genjix> damn this is why user agents are useful :D 21:09 < da2ce7> Back safe in AUS. 21:09 < luke-jr> genjix: ? 21:09 < genjix> see how much of a minority alternative bitcoin versions (like BitcoinJava) are 21:09 < sipa> anyway, i have heard no complaints, so i guess we can continue rolling out compressed pubkeys? 21:09 < TD> [eval]: thanks. i guess so 21:09 < roconnor> sipa: hmm, I cannot find what you are talking about. 21:09 < TD> sipa: are there any compressed pubkeys on the testnet? 21:10 < roconnor> sipa: I'm looking at https://en.bitcoin.it/wiki/Protocol_specification#tx 21:10 < roconnor> and #block 21:10 < sipa> TD: yes, and one on realnet too 21:10 < TD> i see 21:10 < genjix> where is the mainnet compressed pubkey? 21:10 < TD> where is the one on the prodnet? 21:10 < genjix> i never noticed it 21:10 < luke-jr> roconnor: afaik those specs are incomplete 21:10 < TD> i probably have to update bitcoinj to support this 21:10 < roconnor> luke-jr: well, I think sipa's problem is simply a documentation error. 21:10 < gavinandresen> sipa: I vote for pulling soon (I was testing it with p2sh, which is how I confused myself RE: I thought I'd already pulled it) 21:10 < TD> afaik bouncy castle already knows about them so it should be easy 21:10 < genjix> but i'm also using SSL's EC lib like bitcoin 21:10 < roconnor> luke-jr: but I'm hoping to clairfy 21:10 < genjix> so im guessing it's automatic 21:11 < gavinandresen> roconnor: https://en.bitcoin.it/wiki/Protocol_specification#Signatures 21:11 < sipa> TD: i've mailed with a specification for an import format for corresponding private keys 21:12 < sipa> -with 21:12 < roconnor> gavinandresen: that would be a documentation error ... I thought I fixed that, but maybe I fixed it elsewhere. 21:12 < TD> yes, i saw that 21:12 -!- localhost [~chris@cpe-76-188-161-222.neo.res.rr.com] has joined #bitcoin-dev 21:12 < luke-jr> genjix: why not GnuTLS yet? 21:12 < gavinandresen> While we're fixing documentation: does anybody know if OpenSSL accepts any OTHER types of signatures? 21:12 < gavinandresen> (or pubkeys) 21:12 < luke-jr> genjix: AFAIK OpenSSL is still a problem for libbitcoin legally 21:12 < genjix> luke-jr: i can add an exception according to FSF 21:13 < genjix> they said it was fine 21:13 < sipa> gavinandresen: SEC defines three types: 0x00 = point at infinity, 0x02 and 0x03 = compressed, 0x04 = uncompressed 21:13 < genjix> nice 21:13 < makomk> (Random though - unless I'm entirely mistaken, if OP_CAT was enabled would it be possible to securely create transactions paying someone to generate you a P2SH vanity address?) 21:14 < sipa> signatures are DER encoded, but someone noted before that any BER encoding is accepted 21:14 < roconnor> gavinandresen: it is unclear if 0x00 is a valid public key. It shouldn't be, but someone should double check. 21:14 < genjix> roconnor: who cares. black hole pubkey 21:14 < roconnor> sipa: actuall OpenSSL doesn't follow DER 21:14 < roconnor> sipa: http://r6.ca/blog/20111119T211504Z.html 21:14 < luke-jr> genjix: you can, but it would still be incompatible with people wanting to use it in GPL etc 21:14 < sipa> roconnor: indeed, i remember that they used some trick for singed/unsigned 21:16 < roconnor> sipa: there are sigs (on testnet?) that use "negative" numbers 21:16 < roconnor> maybe it was mainnet 21:16 < roconnor> I forget 21:16 < roconnor> somewhere 21:16 < roconnor> what a pain 21:16 < TD> devrandom: poke 21:16 < gavinandresen> Well, if somebody who understands DER/BER and openssl's implementation much better than me would like to think hard about what implementations should/shouldn't accept and write it up that would be spiffy 21:16 < sipa> anyway, it seems the entire "specification"for what are valid sigs and pubkeys is set by OpenSSL's implementation 21:16 < genjix> yeah lol 21:17 < gmaxwell> sipa: this is a bad thing— its not like most applications care as much about it changing as bitcoin does. 21:17 < gavinandresen> Discouraging transactions that play games with encodings would be a very good idea, I think. 21:18 -!- pycke2 [~yaaic@83-174.105-92.cust.bluewin.ch] has joined #bitcoin-dev 21:18 < genjix> what about discouraging coinbases outside of predefined values? 21:18 < sipa> why? 21:19 < genjix> well if we compress pubkeys to avoid blockchain bloat 21:19 < sipa> gavinandresen: they should be simply made invalid, imho - but that requires some coordination with a supermajority of miners 21:19 < genjix> why not discourage custom coinbases. people put all kinds of long ass messages in there 21:19 < luke-jr> genjix: they can't. 21:19 < gavinandresen> coinbases are 100 bytes max 21:19 < sipa> genjix: i don't care about max 98 bytes of bloat per 10 minutes 21:19 < gmaxwell> genjix: maximum size of the coinbase is small. 21:20 < genjix> ok 21:20 < gmaxwell> And most of the 'crap' now is merged mining committments which are O(1) at least. 21:20 < makomk> Besides, if we discouraged custom coinbases how could we signal P2SH support? 21:21 < genjix> allow that one alone 21:21 < makomk> A hypothetical successor to P2SH? 21:21 < roconnor> genjix: *lol* 21:21 < sipa> i see no reason to limit coinbases 21:22 < genjix> ok 21:23 < sipa> gavinandresen: any further ACK required on pubkey compression? otherwise i pull 21:23 < roconnor> luke-jr: if you really want to throw a wrench into th P2SH proposal you should put P2SH in your coinbase, but not actually support it. 21:23 < gavinandresen> sipa: go for it 21:23 < sipa> genjix: next agenda point 21:23 < genjix> btw i didnt look over changes too thoroughly yet, but it seems the changes are: new sig ops count/solver which is in ConnectInputs, and new script eval 21:23 < CIA-100> bitcoin: Pieter Wuille master * rafcf6f9 / (8 files in 2 dirs): Merge pull request #649 from sipa/comprpubkey ... https://github.com/bitcoin/bitcoin/commit/afcf6f974f5c0746db5526b0c209c7db0f5dbe0b 21:24 < genjix> i was thinking to make a quick bullet list of changes for people to examine 21:24 -!- tyn [~rynxy@d-213-212.resnet.unb.ca] has quit [Read error: No route to host] 21:24 < genjix> for people interested in how the new works 21:24 < gavinandresen> genjix: new VerifySignature, but the guts of EvalScript go back to pre-op-eval state. 21:25 < genjix> yep, so is that all really? seems relatively straightforward 21:26 < genjix> (apart from the RPC stuff and so on) 21:26 -!- bakh_ [~kass2@AAnnecy-752-1-1-172.w90-41.abo.wanadoo.fr] has joined #bitcoin-dev 21:26 < gavinandresen> genjix: I'm testing a refactoring of ConnectInputs that moves some of the tests for txn validity to before the ECDSA signature checks, so denial-of-service is less possible 21:26 < genjix> nice. 21:26 < genjix> i like how you refactored the code into FetchInputs and ConnectInputs 21:27 < gavinandresen> ConnectInputs() does way too many things..... 21:28 < gavinandresen> What's the PayToScript -> Payscr? agenda item? Suggested rename? 21:28 < TD> sipa: hey, any idea which tx on mainnet has compressed pubkeys? 21:28 < genjix> ah yeah, just got tired typing PayToScript all the time 21:28 < genjix> Payscript or something sounds nicer 21:28 < sipa> TD: searching 21:28 < genjix> not a big deal though 21:28 < gmaxwell> P2SH 21:28 < genjix> sipa: yeah that tx would be really nice 21:29 < genjix> gmaxwell: hah yeah cool 21:29 < genjix> P2SH 21:29 < luke-jr> need to give it a distinct name 21:29 < luke-jr> separate from the general concept 21:29 < gavinandresen> bruce 21:29 < genjix> :D 21:29 < genjix> haha 21:29 < gmaxwell> (which somehow my mind parses as 'PUSH') 21:30 < gmaxwell> People are going to call it '3-addresses' or something like that regardless of what we call it. 21:30 < luke-jr> lol 21:30 < luke-jr> so are we going to discuss /P2SH/ or not? 21:30 < genjix> luke-jr: ? sure 21:30 < sipa> genjix, TD: http://blockchain.info/tx-index/13401517/94af4607627535f9b2968bd1fbbf67be101971d682023d6a3b64d8caeb448870?show_adv=yes 21:30 < genjix> tyty! 21:30 < TD> thanks 21:31 < gavinandresen> luke-jr: last I heard, you weren't going to support it unless we pinkie-swore in the BIP that Bitcoin 2.0 got rid of scriptPubKey entirely. 21:31 < luke-jr> gavinandresen: exactly. 21:31 -!- iddo [~idddo@csm.cs.technion.ac.il] has quit [Changing host] 21:31 -!- iddo [~idddo@unaffiliated/iddo] has joined #bitcoin-dev 21:31 -!- b4epoche_ [~textual@dssl.mne.psu.edu] has joined #bitcoin-dev 21:31 < luke-jr> I think special-casing a magic script like proposed in BIP 16 only ever makes sense as a backward compatible way of abolishing scriptPubKey entirely. 21:32 < genjix> why not call then input_script and output_script lol. i always get confused with the 2 21:32 < gavinandresen> I don't think it is a good idea to put "this is what is going to happen at some unspecified point in the future" into BIPs-- what do other people think? 21:32 -!- b4epoche [~textual@dssl.mne.psu.edu] has quit [Ping timeout: 244 seconds] 21:32 -!- b4epoche_ is now known as b4epoche 21:32 < genjix> gavinandresen: maybe this? https://en.bitcoin.it/wiki/Hardfork_Wishlist 21:32 < TD> um, what's wrong with scriptPubKey 21:32 < luke-jr> gavinandresen: rather, "This change formally deprecates scriptPubKey (now), and all future development should assume it will go away in the future." 21:32 < gmaxwell> I think people here have mostly said that would be the intention if we were doing bitcoin2.0 today— but hell, who knows what the future brings. 21:33 < sipa> i prefer seeing BIP 16 as adding a possibility 21:33 < luke-jr> obviously if there's some major problem in a year, a future BIP can deprecate BIP 16 and revive scriptPubKey :p 21:33 < TD> could you guys please stop screwing with the protocol? 21:33 < luke-jr> sipa: adding a possibility, would mean a new opcode with a new function 21:34 < luke-jr> not special-casing a specific template 21:34 < midnightmagic> uh.. what the hell debug flag is it so I can see the commands themselves invoked? (gmake) 21:34 < genjix> TD: i think this is maybe the last major change (the P2SH) 21:34 < luke-jr> genjix: unlikely :P 21:34 < roconnor> I agree with TD 21:34 < gavinandresen> I agree with TD 21:34 < roconnor> doing nothing is better than P2SH 21:34 < TD> i think once you open the "hey let's improve the protocol" can of worms, there's no end in sight 21:34 < gavinandresen> I disagree with roconnor 21:35 < roconnor> contradition!! 21:35 < roconnor> :D 21:35 < genjix> TD: yeah well, bitcoin has an inevitable future as a bloated standard 21:35 < gmaxwell> genjix: there are worse fates. 21:35 < gmaxwell> (like being too unimportant for anyone to care to add bloat) 21:35 < gavinandresen> roconnor: would you support getting rid of OP_IFDUP? 21:35 < genjix> sure 21:36 -!- erle- [~m@f052136016.adsl.alicedsl.de] has joined #bitcoin-dev 21:36 < gavinandresen> (we can mess with the protocol to make it smaller, too....) 21:36 < roconnor> gavinandresen: not really 21:36 < roconnor> gavinandresen: unless there are no instances of OP_IFDUP right now 21:36 < genjix> one thing though that would be nice is an informal 'gentlemen's agreement' on basic fee rules for the mempool 21:36 < roconnor> and we move quickly 21:36 -!- briareus [~briareus@unaffiliated/briareus] has joined #bitcoin-dev 21:37 < TD> removing opcodes would result in attackers being able to split the chain out from underneath merchants who did not upgrade 21:37 < gmaxwell> genjix: there is one such agreement embedded in the software, perhaps not the right one— and perhaps not one people are following. 21:37 < genjix> like the current fee rules are hairy and likely to be ignored by most (i dont understand the rationale behind a lot of it) 21:37 < gavinandresen> TD: it'd have to be "support removed in blocks after time X" and mining pools would have to express support etc 21:38 < gavinandresen> If we were lucky, there would be no blocks mined with the unsupported feature before the deadline 21:38 < gmaxwell> genjix: I feel like I undestand the rules and their rationale. Fundimentally they're using still-coins as a payment for transactions precisely because still-coins is what you don't have if you're DOS attacking. 21:38 < gmaxwell> genjix: I think anything with that behavior is going to be similarly complicated, though perhaps multiple systems would meet that goal. 21:38 -!- _Fireball [~fireball@31.13.34.250] has joined #bitcoin-dev 21:38 < da2ce7> TD, we insert those opcodes on purpose to make a forced split. 21:39 < gavinandresen> Ok, sounds like luke-jr is alone in wanting wording in the BIP RE: scriptPubKey. 21:39 < da2ce7> so it will fail hard. 21:39 < da2ce7> ** in the alt-chain. 21:39 < luke-jr> gavinandresen: does not 21:39 < genjix> well i use a circular buffer and slow it filling up as it gets near the end 21:39 < TD> i continue to believe the core protocol doesn't need fixing 21:39 < gmaxwell> luke-jr: would you be happier with something more vague. Like "current developers think that P2SH transactions are the way of the future" or something? 21:39 < luke-jr> sounds like TD and roconnor agree that "doing nothing is better than P2SH" 21:39 * roconnor agrees with TD 21:40 < gavinandresen> Can we not have that argument AGAIN? I've got to go in about 10 minutes... 21:40 < luke-jr> gmaxwell: no, because /P2SH/ as written only makes sense if it deprecates scriptPubKey 21:40 < gmaxwell> luke-jr: as we discussed, and I think you accepted— we can't deprecate any thing until P2SH is widely deployed and proven. 21:41 < luke-jr> gmaxwell: nonsense 21:41 < gmaxwell> I personally think we would eventually deprecate non-p2sh but it might be years before the 1form addresses are gone. 21:41 < luke-jr> we just can't remove it 21:41 < sipa> genjix: anything else on the agenda? 21:41 < genjix> nope 21:41 < luke-jr> … 21:41 < gmaxwell> sort of a meaningless depreciation then— it's not like we're a standards body here. 21:41 < luke-jr> lots on the agenda 21:42 < luke-jr> addmultisigaddress cases, Fuzzing tool(s), Finishing up 0.4.3 and 0.5.2 21:42 < sipa> luke-jr: bring up a topic, then 21:42 < luke-jr> and other topics relates to P2SH 21:42 < luke-jr> gmaxwell: BIP is a standards process 21:42 < genjix> what is fuzzing tools? 21:42 < luke-jr> nfc 21:42 < gavinandresen> Fuzzing tools: I want a protocol-level fuzzer. Anybody already written one? 21:42 < da2ce7> luke-jr: I don't think that we can ever get rid of 1form addresses... 21:42 < luke-jr> da2ce7: we can phase them out (deprecate them) 21:42 < gmaxwell> I've run zzuf on the bitcoin network connections did nothing interesting, presumably due to the checksums on messages. :) 21:43 < makomk> We can make clients not generate new ones. 21:43 -!- Carmivore [~carmivmor@ec2-107-22-137-127.compute-1.amazonaws.com] has quit [Remote host closed the connection] 21:43 < gavinandresen> RE: fuzzing: https://gist.github.com/1525448 21:43 < sipa> 1form address will remain as identifiers for keypairs; we can deprecate them as direct payment option 21:43 < da2ce7> we can re-implment them I guess - but people need to still be able to spend coins sent to them anytime. 21:43 < luke-jr> da2ce7: eventually everyone will NEED to upgrade for "Bitcoin 2.0", so support for them can be removed at that point 21:43 < makomk> gmaxwell: yeah, I think it may silently ignore anything that fails checksumps or is otherwise invalid. 21:43 < gmaxwell> has anyone tried advancing their clocks on some nodes past the checksum flagday yet? 21:43 < sipa> genjix: good idea 21:43 < genjix> gmaxwell: super 21:44 < roconnor> gmaxwell: what is checksum flagday? 21:44 < genjix> gavinandresen: super 21:44 < gmaxwell> makomk: the people in this room don't control all clients. 21:44 -!- tyn [~rynxy@d-213-212.resnet.unb.ca] has joined #bitcoin-dev 21:44 < TD> he means the day when the "version" message protocol changes 21:44 < gmaxwell> // Version 0.2 obsoletes 20 Feb 2012 21:44 < gmaxwell> if (GetTime() > 1329696000) 21:44 < gmaxwell> { 21:45 < sipa> gmaxwell: unable to connect 21:45 < makomk> gmaxwell: From my playing-around it probably breaks compatibility with nodes that disagree on the value of the flag, but I've no idea what non-Satoshi clients do. 21:45 < sipa> which is expected 21:45 < genjix> btw what happens when the block timestamp expires? 21:45 < gmaxwell> sipa: have you made sure two new nodes connect? 21:45 < genjix> i know it's a long way off 21:45 < sipa> gmaxwell: trying that now 21:45 < genjix> at minimum it's relying on some UB 21:46 < gmaxwell> sipa: I expect that this is already tested but ... good to be prudent, if everything is going to die in a month we need to know now. :) 21:46 < luke-jr> gmaxwell: so we can sell? 21:46 < makomk> (Yes, this was Yet Another CLC Change. It effectively hardcodes the flag to true.) 21:46 < gmaxwell> hahah 21:46 < roconnor> gmaxwell: is this checksum change on the wiki? 21:47 < genjix> gavinandresen: a bitcoin fuzzer would be so useful for all implementations and network health. the way i test blocks is by overriding hash_block_header and returning different hardcoded hashes based on the block nonce (which i use as an ident) 21:47 < gmaxwell> roconnor: I didn't add it there, did you? Everything I know about bitcoin I know from reading the source, this channel, and Satoshi's writing. 21:47 < genjix> that way i take the first 500 blocks and i design a tree and then send them to the blockchain service 21:48 < luke-jr> [16:44:50] <gmaxwell> if (GetTime() > 1329696000) 21:48 < genjix> roconnor: the wiki is good for starting out, but the satoshi implemenation is the read dox 21:48 < luke-jr> ^ is that guaranteed to be the same time for everyone? 21:48 < sipa> gmaxwell: works 21:49 < gmaxwell> luke-jr: nope. 21:49 -!- Carmivore [~carmivmor@ec2-174-129-83-65.compute-1.amazonaws.com] has joined #bitcoin-dev 21:49 < genjix> btw you know those stats about active bitcoin versions, i wonder how many of those old ones actually make txs 21:49 < luke-jr> so we'll probably have some issues for a few hours? 21:49 < makomk> luke-jr: that's local time, so no, but in theory it shouldn't affect already-established connections. 21:49 < gmaxwell> But it only impacts new connections, so ±network clock skew around that time new nodes may have some poblems. 21:50 < sipa> yes, everything after verack is safe 21:50 < luke-jr> so impact will mainly hit people who start their clients around that time 21:50 < gmaxwell> (especially if their clock is wrong) 21:50 < genjix> use the time in util.cpp 21:50 < gmaxwell> might make sense to have some nodes establish that listen to the new protocol early. 21:50 < genjix> GetAdjustedTime() 21:50 < luke-jr> gmaxwell: and use the DNS seeds to ensure they're available? 21:50 -!- magn3ts [~magn3ts@pdpc/supporter/professional/magn3ts] has quit [Disconnected by services] 21:51 < luke-jr> is it possible to support BOTH protocols? 21:51 < gmaxwell> No. 21:51 < makomk> genjix: that only makes a difference once the node's established some connections. 21:51 < gmaxwell> (I think not at least) 21:51 < genjix> true 21:51 < gmaxwell> The change is basically adding the checksum to the version messages... we already upgrade to the new protocol based on that. 21:51 < genjix> ok well i think we covered everything 21:51 < sipa> well, you could make the checksum optional for version and verack 21:51 < gavinandresen> I can live with a few people with incorrect clocks having trouble connecting for a few hours. 21:51 < gmaxwell> sipa: thanks for testing that.