1 2017-03-14 02:24:45 <Iriez> achow101: could you explain the 75 contributor gap outlined by the poster in that thread?
2 2017-03-14 02:25:27 <Iriez> Im interested in determining how many contributors to the codebase there was.
3 2017-03-14 02:34:52 <achow101> Iriez: what is that thread even discussing? What repo?
4 2017-03-14 02:35:24 <achow101> oh, nvm, didn't scroll down far enough
5 2017-03-14 02:36:54 <achow101> Iriez: for one thing, you can't compare the branches like that because the branches have changed since the respective .0 releases you are talking about. Also, IIRC the changelog is based on the differences between the latest minor version, and the major release
6 2017-03-14 02:39:06 <achow101> secondly the github compare does not show all commits, only the first 250, out of hundreds, possibly more than a thousand commits made between releases. It is not going to show every commit. You will need to use the git commands for that
7 2017-03-14 06:34:48 <wumpus> the commit I use to create the committers list is
8 2017-03-14 06:35:21 <wumpus> LC_ALL=C git log --use-mailmap --format='%aN' "$*" | sort -uif | sed -e 's/^/- /'
9 2017-03-14 06:35:40 <wumpus> Example: list_authors.sh v0.9.0rc2..0.9.0
10 2017-03-14 06:37:03 <wumpus> also sometimes we manually add names if people have done important things for a release but haven't directly committed. it's usually better to over-credit than under-credit
11 2017-03-14 06:37:19 <wumpus> but this is only 0-2 names per release, not a whole bunch
12 2017-03-14 12:26:06 <GAit> wumpus: on https://bitcoin.org/en/release/v0.14.0#minimum-fee-rate-policies it says "(effectively 3 * 1000 satoshis/kB)" - in the code https://github.com/bitcoin/bitcoin/commit/dd98f04 I see the constant but I'm missing the 3 x, is this an error in the release notes I suppose? the threshold is 1/3 of the spending fee so maybe brought confusion?
13 2017-03-14 12:29:03 <GAit> jonasschnelli: yes we support opt-in rbf since mid May of last year
14 2017-03-14 12:32:18 <wumpus> GAit: I'm not sure, from the source you'd indeed say it'd be 1000 not 3*1000
15 2017-03-14 12:32:45 <wumpus> morcos: any idea?
16 2017-03-14 14:36:49 <morcos> GAit: wumpus: Sorry i wasn't sure how to make that text clear... the dust calculation has always included a multiple of 3 in it.
17 2017-03-14 14:37:11 <morcos> I was just trying to indicate how to translate from the option you are passing to what is considered a dust amount
18 2017-03-14 14:40:09 <morcos> whoops that didn't render well.. i wonder if somehow that text got changed.. but yeah the rate you pass in in is the rate such that at a feerate on a future transaction of (3 * that) it would be a wash to include as input any output created at the threshold
19 2017-03-14 14:41:51 <wumpus> thanks, that makes it clearer, so the factor 3 is implicit
20 2017-03-14 14:42:05 <morcos> yes...
21 2017-03-14 14:42:21 <morcos> nothing has changed..
22 2017-03-14 14:42:50 <morcos> interpreted the exact same way it was with the minrelaytxfee option before.. but now that option only controls dust threshold so i wanted to explain it..
23 2017-03-14 15:04:13 <kryptynasium> How big is the blockchain dump and how many days would it take to download all the way to the genesis block?
24 2017-03-14 15:05:32 <kryptynasium> Forums are saying: The blockchain currently weighs in at about 45 GB - is it still around this number?
25 2017-03-14 15:07:10 <kryptynasium> Bitcoin is doomed
26 2017-03-14 15:12:13 <wumpus> about 100GB, if you have a fast computer and network connection you can download and validate it in a few hours
27 2017-03-14 15:12:41 <wumpus> as for the nihilism take it somewhere else we don't react well to that here
28 2017-03-14 15:23:53 <kryptynasium> wumpus: would you be able to estimate the total number of transactions?
29 2017-03-14 15:24:36 <wumpus> I don't have those statistics, but I'm sure you can find that somewhere
30 2017-03-14 15:43:22 <kryptynasium> wumpus: ~220 million: https://blockchain.info/charts/n-transactions-total?timespan=all FYI
31 2017-03-14 15:45:07 <rublev> tes
32 2017-03-14 16:25:15 <Arthur33> Hi everyone. Can somebody help me with something. I have modified net.cpp code in bitcoin core and I'd like to link to new static librairies to make it work. However I cannot where I need to modify the makefile to make it works.
33 2017-03-14 17:00:38 <cluelessperson> I'm working on parsing the blockchain when I view a CTxIn, I can't seem to manually spot the input amount, what am I missing here?
34 2017-03-14 17:00:41 <cluelessperson> CTxIn(COutPoint(lx('fe2a3e06c80d43797403b4ffa4d070347b41cf5bf7094c41b417308dcb7a2db2'), 1), CScript([x('3044022056f3471291c76281edd02554d893c5bdd3a3c9ec5a3af9e685714d843c2ef81e02207e74d7a583472833053def680475d50b112b4d6ca375e6fdc64ca9f8718ae6cf01'), x('03eef298060801ef649c84a0b616179ca4da87653e5e75e41137fe7f235f1563da')]), 0xffffffff)
35 2017-03-14 17:01:10 <abpa> cluelessperson inputs don't contain the values
36 2017-03-14 17:01:19 <abpa> Kind of a design oversight in my opinion
37 2017-03-14 17:01:19 <cluelessperson> abpa: oh, what does?
38 2017-03-14 17:01:34 <abpa> You have to cross reference it with the outpoint utxo
39 2017-03-14 17:01:39 <cluelessperson> abpa: probably trying to get size down as much as possible.
40 2017-03-14 17:01:51 <cluelessperson> abpa: thanks
41 2017-03-14 17:39:57 <GAit> thanks wumpus morcos
42 2017-03-14 17:51:54 <rublev> quit
43 2017-03-14 18:02:31 <cluelessperson> abpa: what exactly is the utxo?
44 2017-03-14 18:02:42 <abpa> just outputs that are not yet spent
45 2017-03-14 18:02:51 <abpa> a combination of transaction id and output index
46 2017-03-14 18:03:04 <cluelessperson> abpa: so you're saying, I have to reference previous blocks/transaction outputs to determine the input of this block?
47 2017-03-14 18:03:16 <abpa> To determine the input value, that's correct
48 2017-03-14 18:03:28 <abpa> The input value is the output value it references
49 2017-03-14 18:04:18 <cluelessperson> abpa: so I'm thinking I have to query the input referenced utxo from bitcoin rpc?
50 2017-03-14 18:05:45 <abpa> cluelessperson yes and you'll need tx index
51 2017-03-14 18:06:22 <cluelessperson> abpa: my node has txindex=1 so I think I'm good
52 2017-03-14 18:18:48 <cluelessperson> I'm a bit confused, how do you refere to the unspent of a previous transaction?
53 2017-03-14 18:18:55 <cluelessperson> you're not always sending the full amount.
54 2017-03-14 18:19:05 <abpa> cluelessperson you are always sending the full amount
55 2017-03-14 18:19:16 <cluelessperson> abpa: wut?
56 2017-03-14 18:19:25 <abpa> You can only fully spend an output
57 2017-03-14 18:19:55 <cluelessperson> abpa: I don't understand, how does that allow from splitting 1BTC to 0.5 BTC?
58 2017-03-14 18:20:26 <abpa> cluelessperson you can't, you must create a new change output
59 2017-03-14 18:21:03 <cluelessperson> abpa: What?
60 2017-03-14 18:21:16 <cluelessperson> I remember being able to leave a balance at an address?
61 2017-03-14 18:21:27 <cluelessperson> you're saying now that you must send the entire amount always?
62 2017-03-14 18:21:36 <abpa> You can only fully spend an output in a transaction, if you want to send a partial amount you send part to the partial destination and part back to yourself to an output you control
63 2017-03-14 18:21:53 <abpa> addresses don't really have balances
64 2017-03-14 18:22:07 <abpa> That's just a way to visualize multiple outputs that happen to be similar
65 2017-03-14 18:22:26 <abpa> cluelessperson you must send the entire output value always
66 2017-03-14 18:23:02 <cluelessperson> abpa: so, a transaction where someone left value attached to their own address, was actually a transaction where they had two outputs, to their destination, and the remaining to themselves, anything unaccountd for is a fee?
67 2017-03-14 18:25:59 <abpa> cluelessperson if you see a "balance at an address" it is just referencing that they re-used an address
68 2017-03-14 18:26:12 <abpa> Which is a no-no
69 2017-03-14 18:27:19 <cluelessperson> I understand, however it's only recently that bitcoin core even allowed a deterministic wallet for change addresses and similar.
70 2017-03-14 18:27:39 <abpa> Bitcoin Core before that just made new addresses for change
71 2017-03-14 18:27:44 <cluelessperson> ah
72 2017-03-14 18:28:13 <cluelessperson> abpa: also, when you reference a previous transaction, you're only paying attention to the amount that was sent to your current address?
73 2017-03-14 18:28:39 <abpa> The address just encodes what an output would look like
74 2017-03-14 18:29:07 <abpa> When you reference a previous transaction you are talking about the transaction that has an output at a certain index
75 2017-03-14 18:29:36 <cluelessperson> abpa: I'm confused, addresses are derived from private/public key pairs, no?
76 2017-03-14 18:30:09 <cluelessperson> I thought addresses were just used as "id"s to attach values to, then the controlling party can sign ownership to another address
77 2017-03-14 18:30:27 <cluelessperson> brb, sorry
78 2017-03-14 18:34:34 <abpa> addresses are just encodings of common output scripts that include hashes of key pairs
79 2017-03-14 18:38:13 <cluelessperson> abpa: they can't be, I've generated addresses
80 2017-03-14 18:38:36 <cluelessperson> private -> public -> address
81 2017-03-14 18:38:41 <abpa> What it does it generate a new key, then encodes the key as a part of an output script, then encode that as an address basically
82 2017-03-14 18:39:13 <abpa> It's more like private -> public -> pkhash as part of an output script -> address that encodes the output script into a minimal sharing format
83 2017-03-14 18:39:47 <cluelessperson> ...
84 2017-03-14 18:42:01 <cluelessperson> abpa: You're making it sound like the transaction itself is what generates an address
85 2017-03-14 18:42:04 <cluelessperson> and it simply does not
86 2017-03-14 18:42:40 <abpa> Transactions have output scripts that describe unlocking conditions
87 2017-03-14 18:42:50 <abpa> Addresses are short ways to describe these output scripts
88 2017-03-14 18:43:16 <cluelessperson> What do you mean "short way to describe these output script"
89 2017-03-14 18:43:28 <cluelessperson> I can generate an address right now, without and output script related to it
90 2017-03-14 18:43:46 <cluelessperson> you mean an output script can be setup to deliver to an address under certain unlocking condition?
91 2017-03-14 18:43:49 <cluelessperson> like nlock
92 2017-03-14 18:44:09 <cluelessperson> abpa: sorry, I don't mean to be difficult, just don't understand.
93 2017-03-14 18:44:39 <abpa> Well so a 1** address basically says it is an output script on main network, of script type pay to public key hash, using the hash $hash
94 2017-03-14 18:44:51 <abpa> So then you make a transaction with that script type with that $hash value
95 2017-03-14 18:45:29 <abpa> Then when the person goes to claim the money they present the public key that goes along with that public key hash and the signature as well to signal that they control the private key that goes along with the public key
96 2017-03-14 18:46:29 <cluelessperson> how is it an "output script on main network" ?
97 2017-03-14 18:46:37 <cluelessperson> addresses are generated outside of the network
98 2017-03-14 18:46:50 <Chris_Stewart_5> cluelessperson: if it starts with a '1' it has the main network byte prepended to it
99 2017-03-14 18:46:54 <abpa> Right but it describes which network it should be used on
100 2017-03-14 18:47:11 <abpa> That just communicates your preference for where to receive the money
101 2017-03-14 18:47:16 <cluelessperson> what do you mean which network? mainnet?
102 2017-03-14 18:47:21 <abpa> Testnet vs mainnet yes
103 2017-03-14 18:47:37 <abpa> It's actually just part of the script type byte
104 2017-03-14 18:47:46 <cluelessperson> this isn't making any sense
105 2017-03-14 18:47:56 <abpa> Maybe you need to read about the fundamentals a bit more
106 2017-03-14 18:48:04 <abpa> Like look what data the address is actually encoding
107 2017-03-14 18:48:26 <abpa> Look at what output scripts actually look like
108 2017-03-14 18:48:27 <cluelessperson> Why would you use an address byte to determine if any value is on the network, If you're using that address on this network, it either has value attached it or it doesn't.
109 2017-03-14 18:48:48 <abpa> It's not related to value, just which network you want to be talking about
110 2017-03-14 18:48:54 <Chris_Stewart_5> ^
111 2017-03-14 18:49:09 <Chris_Stewart_5> I can use the same private key -> public key -> pubkey hash on any network
112 2017-03-14 18:49:13 <cluelessperson> abpa: an address is just a simple prefix + X + checksum
113 2017-03-14 18:49:30 <abpa> the prefix is the network you are talking about + the script type you are talking about
114 2017-03-14 18:49:38 <abpa> X is the hash argument to the script type
115 2017-03-14 18:50:17 <cluelessperson> abpa: X is a public key...
116 2017-03-14 18:50:30 <abpa> Generally it's a hash, in 1xx it is a hash of a public key
117 2017-03-14 18:51:02 <Chris_Stewart_5> cluelessperson: https://github.com/bitcoin/bitcoin/blob/master/src/chainparams.cpp#L130-L133 is where the prefixes are defined
118 2017-03-14 18:51:15 <Chris_Stewart_5> cluelessperson: and X is a public key hash (if you are using P2PKH)
119 2017-03-14 19:00:48 <cluelessperson> abpa: yeah, but you're saying an address is an output script, I don't understand that
120 2017-03-14 19:01:14 <cluelessperson> an output script might contain an address I believe, along with rules for unlocking..
121 2017-03-14 19:03:38 <Chris_Stewart_5> ^, at best an address is the hash of a script
122 2017-03-14 19:04:11 <Chris_Stewart_5> + network byte and checksum
123 2017-03-14 19:06:17 <cluelessperson> Chris_Stewart_5: what do you mean "script"
124 2017-03-14 19:06:26 <cluelessperson> addresses are generated completely offline
125 2017-03-14 19:06:31 <cluelessperson> scripts are used on the blockchain
126 2017-03-14 19:06:43 <cluelessperson> that's mutually exclusive.
127 2017-03-14 19:07:36 <Chris_Stewart_5> pay to script hash literally means you are paying to the 'hash of a script'
128 2017-03-14 19:08:08 <Chris_Stewart_5> so you can generate that script offline, then send the *hash* of that script to an online machine, turn it into an address then sending it to your counterparty
129 2017-03-14 19:08:37 <cluelessperson> Chris_Stewart_5: that describes a contract?
130 2017-03-14 19:08:39 <Chris_Stewart_5> that is how multisig works, you are paying to the hash of a multsig script
131 2017-03-14 19:08:57 <Chris_Stewart_5> I think you can use the word 'contract' and 'script' interchangably
132 2017-03-14 19:12:22 <cluelessperson> Chris_Stewart_5: oh, so in that case, you create a script/contract offline, send to itss hash, once the terms are filled, the outputs are resolved?
133 2017-03-14 19:12:50 <Chris_Stewart_5> cluelessperson: Not sure what you mean by 'once the terms are filled'
134 2017-03-14 19:12:50 <cluelessperson> Chris_Stewart_5: the the other, is just sending to a hash/address, in which the sender can then sign sending to another hash
135 2017-03-14 19:13:05 <cluelessperson> Chris_Stewart_5: Contracts/Scripts have inputs.
136 2017-03-14 19:13:08 <cluelessperson> no?
137 2017-03-14 19:13:22 <Chris_Stewart_5> cluelessperson: Yes, are you talking about spending a p2sh output?
138 2017-03-14 19:14:10 <Chris_Stewart_5> inputs don't care about what outputs they are funding. All that matters is (sum of inputs) <= (sum of outputs) in terms of coins
139 2017-03-14 19:14:44 <Chris_Stewart_5> wait I got that backwards -- oops.
140 2017-03-14 19:15:19 <Chris_Stewart_5> I suppose we don't want to create coins out of thin air :P.
141 2017-03-14 19:18:04 <cluelessperson> AH, so that's what that means
142 2017-03-14 19:18:06 <cluelessperson> pubkey hash
143 2017-03-14 19:18:09 <cluelessperson> and scripthash
144 2017-03-14 19:18:17 <Chris_Stewart_5> Yep :-). Light bulb going off?
145 2017-03-14 19:19:00 <cluelessperson> Chris_Stewart_5: little bit
146 2017-03-14 19:19:22 <cluelessperson> So there are two types of addresses, 1. Pubkey hash. Derived from a public key
147 2017-03-14 19:19:29 <cluelessperson> 2. Script hash... which I'm still confused on
148 2017-03-14 19:19:32 <Chris_Stewart_5> Eric Lombrozo explained it to me once at a meetup and it took me another 3 or 4 months to actually get what he said haha.
149 2017-03-14 19:19:42 <cluelessperson> starts with a 3
150 2017-03-14 19:20:15 <cluelessperson> So, I guess i've never used a pay to script hash
151 2017-03-14 19:20:19 <Chris_Stewart_5> cluelessperson: Imagine you have a multsig address that looks like this: OP_0 OP2 <pubkey1> <pubkey2> <pubkey3> OP_3 OP_CHECKMULTISIG
152 2017-03-14 19:20:43 <Chris_Stewart_5> you converact that to hex and then take HASH160(script_hex)
153 2017-03-14 19:21:13 <Chris_Stewart_5> and then add network byte and checksum and voila you have an address that starts with a '3' (p2sh)
154 2017-03-14 19:23:06 <arubi> the address doesn't have the 0x00
155 2017-03-14 19:23:16 <arubi> it's only in scriptsig, as an input for checkmultisig
156 2017-03-14 19:23:52 <arubi> well, the scriptpubkey is what I mean
157 2017-03-14 19:23:54 <cluelessperson> okay, so, going back
158 2017-03-14 19:24:05 <cluelessperson> I'm trying to decode/view transactions in a block
159 2017-03-14 19:24:16 <cluelessperson> I can see outputs, but I cannot see the inputs
160 2017-03-14 19:24:21 <arubi> cluelessperson, you're in luck, the block is very mostly only transactions
161 2017-03-14 19:24:47 <arubi> really the first 80 bytes are header, then some varint of the amount of transactions, then transactions one after another :)
162 2017-03-14 19:25:17 <Chris_Stewart_5> arubi: Has a better memory than me (and is much better at answering question IMO) :-)
163 2017-03-14 19:25:48 <arubi> didn't mean to step on toes, just sharing my past mistakes :)
164 2017-03-14 19:26:42 <cluelessperson> https://hastebin.com/raw/epuhacukak
165 2017-03-14 19:27:06 <cluelessperson> So I have these inputs
166 2017-03-14 19:27:13 <cluelessperson> and two outputs
167 2017-03-14 19:27:18 <arubi> cluelessperson, in p2sh redeem, the script goes in first as a single push
168 2017-03-14 19:27:27 <arubi> there's one input there
169 2017-03-14 19:27:31 <arubi> 3 things on the stack
170 2017-03-14 19:27:53 <arubi> from bottom to up, script as a single data push, sig, sig
171 2017-03-14 19:28:06 <arubi> where's the 0x00, I don't know :)
172 2017-03-14 19:28:30 <arubi> it's a 2-of-2 multisig script which will fail on this stack
173 2017-03-14 19:28:57 <arubi> a final 0x00 has to also be pushed because of very cool bugs in checkmultisig(verify)
174 2017-03-14 19:29:19 <arubi> oh excuse me, the 0 is in its own line with the txin :)
175 2017-03-14 19:29:29 <arubi> should be find if the signatures are correct.
176 2017-03-14 19:29:53 <arubi> s/fine :P
177 2017-03-14 19:31:43 <arubi> cluelessperson, the input is 7d8c3a2bc4906994f2e4195c05c3fe88e08da9eaf760c598394fda45b057727e:1 , and is redeemed by the stack in CScript(..)
178 2017-03-14 19:32:03 <arubi> finally there's the sequence, then both outputs
179 2017-03-14 19:34:43 <cluelessperson> Is there some reading I can do that approaches how to understand all this?
180 2017-03-14 19:34:53 <cluelessperson> I'm coming in the middle and none of it is intuitive
181 2017-03-14 19:35:57 <arubi> hmm, did you see the developer documentation? also the important parts in the code are either very well documented in the comments or are so pretty that you can just read :)
182 2017-03-14 19:36:27 <arubi> the wiki has some pretty interesting pages too. the op_checksig page has a very good diagram
183 2017-03-14 19:36:27 <cluelessperson> arubi: I'm not sure where the developer documentation is
184 2017-03-14 19:36:38 <cluelessperson> I've been looking at the wiki, but it's not an education approach
185 2017-03-14 19:36:47 <arubi> https://bitcoin.org/en/developer-documentation
186 2017-03-14 19:37:00 <cluelessperson> arubi: thanks
187 2017-03-14 19:37:02 <arubi> https://en.bitcoin.it/wiki/OP_CHECKSIG
188 2017-03-14 19:37:07 <arubi> very good sources ^
189 2017-03-14 19:38:21 <arubi> also there's `bitcoin-tx`, and read the 'help' item for sign rawtransaction for how to set up a json referencing an input
190 2017-03-14 19:38:44 <arubi> if you can do that, you can practically run any script easy :)
191 2017-03-14 22:53:57 <cluelessperson> I have this
192 2017-03-14 22:54:01 <cluelessperson> 0000000000000000000000000000000000000000000000000000000000000000:4294967295 prevout
193 2017-03-14 22:54:05 <cluelessperson> what does that mean?
194 2017-03-14 22:55:07 <achow101> cluelessperson: coinbase I think
195 2017-03-14 22:55:48 <cluelessperson> trying to get the output to understand a transaction
196 2017-03-14 23:01:20 <cluelessperson> OH, there's no txid for the first transaction in a block right?
197 2017-03-14 23:01:49 <phantomcircuit> cluelessperson, right
198 2017-03-14 23:02:24 <phantomcircuit> or rather it's set to the null representation
199 2017-03-14 23:02:27 <cluelessperson> it's just describing who to send txout to
200 2017-03-14 23:02:34 <phantomcircuit> which is txid=0 and index=max
201 2017-03-14 23:02:52 <cluelessperson> 593a867c45dcf31975a8da2649f100c136d45cbf34aadf7e04115f0261079f09:1
202 2017-03-14 23:02:57 <cluelessperson> would be a txid right?
203 2017-03-14 23:04:07 <cluelessperson> alright, I'm getting somewhere
204 2017-03-14 23:18:31 <cluelessperson> So, I'm supposed to get the utxo or prevout referred to by this transaction, how do I know how much was there? do I look at a certain output?
205 2017-03-14 23:31:38 <luke-jr> a number of decent BIPs have negative comments; I suggest perhaps people may wish to provide positive feedback to counter them. https://github.com/bitcoin/bips/pull/500