ROW=rest of world
MC=mainchain
SC=sidechain
scBTC=sidechain BTC
MC=mainchain
SC=sidechain
scBTC=sidechain BTC
If non signature data is presently taking up 500kB / block, then the practical maximum increase in Tx rate is 60%.@luigi1111 @rocks - from what I saw, just segwit gets close to a 2x better efficiency if you just look at the tx chain, and you only get to the predicted 4x improvement (eg, the throughput of 4mb cap under the current blockchain model, while still *actually* leaving the cap at 1mb) if most transactions were multisig.
No surprise that one of the few applications which might get use out of such large scriptsigs is the Lightning Network.Unless my formula is wrong, the 4x number is pulled out of nowhere, and is practically meaningless. The only way to get a 4MB "block" would be for the data to be entirely signatures.
spot on.@luigi1111 @rocks - from what I saw, just segwit gets close to a 2x better efficiency if you just look at the tx chain, and you only get to the predicted 4x improvement (eg, the throughput of 4mb cap under the current blockchain model, while still *actually* leaving the cap at 1mb) if most transactions were multisig.
(0.8 * 1.75 + 0.2 * 3) = 2
(base_size + witness_size/4 <= 1MB) and (base_size < 1MB)
Well first off, I didn't remove any of the other consensus rules. So BU would not have followed the BIP66 invalid block regardless of mining majority. I think that this idea -- that maybe the mining majority should be considered instead of the local node's opinion -- for many of the consensus rules is very interesting. However, I feel that we should choose to move the rules out of consensus on an individual basis. Also I think that in most cases we should choose to put up a red warning on the client "Warning, significant fork in progress, please research before issuing transactions" rather then blindly follow the mining majority.@theZerg
what if you have the excessive block setting at 4 blocks deep before accepting it and along comes a 5 block deep fork that eventually should get reorg'd like what happened in BIP66?
why does brg444 seem to be so close to everything Blockstream? remember i found it quite odd that he popped up in my old gold thread back in Oct 2014 when the BS WP was released trolling me every step of the way for months on end for over 300 pages:
Although it doesn't make a big difference on the results, the average size for a standard 1 input, 2 output tx (where the input consists of redeeming a previous pay-to-pubkey-hash output with a compressed pubkey, and the 2 outputs are pay-to-pubkey-hash as well, as is typically the case) is 226 bytes. I'm not sure how you came up with 257 bytes.A standard 1 input, 2 output Tx should be 257 bytes, 139 of which should be scriptsig, or ~54%.
Plugging that into (base_size + witness_size/4 <= 1MB), I get a ~68% increase in "usual tx" rate, not 75% (but it's not that different).
Standard redeeming input for pay-to-pubkey-hash:
OP_DATA_72 <sig> OP_DATA_33 <compressed pubkey>
So that is 1 + 72 + 1 + 33 = 107 bytes
** A signature can be from 71-73 bytes, so using 72 on average
Standard pay-to-pubkey-hash output:
OP_DUP OP_HASH_160 OP_DATA_20 <20-byte hash> OP_EQUALVERIFY OP_CHECKSIG
So that is 1 + 1 + 1 + 20 + 1 + 1 = 25 bytes
type TxIn struct {
PreviousOutPoint OutPoint // 36 bytes (32-byte hash + 4 byte index)
SignatureScript []byte // 1 byte for script len + 107 bytes for the script itself
Sequence uint32 // 4 bytes
} // 36 + 108 + 4 = 148 bytes
type TxOut struct {
Value int64 // 8 bytes
PkScript []byte // 1 byte for script len + 25 bytes for the script itself
} // 8 + 26 = 34 bytes
type MsgTx struct {
Version int32 // 4 bytes
TxIn []*TxIn // 1 byte for the number of inputs + 148 bytes for the input
TxOut []*TxOut // 1 byte for the number of outputs + 2 outputs @ 34 bytes each = 68 bytes
LockTime uint32 // 4 bytes
} // 4 + 149 + 69 + 4 = 226 bytes
Easy, I used an uncompressed pubkey! (though still off by 1 byte, oh well; probably because sigs are from 71-73 bytes as you note)davechg said:I'm not sure how you came up with 257 bytes.
0.8 * 1.56 + 0.2 * 3 = ~1.85x
Considering Bitcoin is still scaling exponentially, any one time change of x% is meaningless, whether it is 75% or 68% or 200%. It buys the system a matter of months just that one time. It shows the current focus is entirely in the wrong places, we can't keep rolling out disruptive changes every several months.A standard 1 input, 2 output Tx should be 257 bytes, 139 of which should be scriptsig, or ~54%.
Plugging that into (base_size + witness_size/4 <= 1MB), I get a ~68% increase in "usual tx" rate, not 75% (but it's not that different).
I understand that, my whole point is that the actual results are likely to be (significantly) less than people are imagining on Reddit, at least from what I've read.Considering Bitcoin is still scaling exponentially, any one time change of x% is meaningless, whether it is 75% or 68% or 200%.
Its a feature to increase readability, your response comes just blow. you can always "@" the person you respond to or just [ quote ] the quote [ /quote ]Edit: why can't I quote the most recent message?
When I quote it removes any previous quotes anyway, so I don't really get it. In any case I'd rather the pertinent part I want to respond to show up in a quote box rather than inside "" or some "re" statement. Maybe I'll get used to it.@luigi1111 re quoting last message: it's a feature not a bug, that way is almost impossible to have multi level nested quoting. If you need to reply to the last message there's almost no need to quote, just use forum handler (@username) and a brief reference to the part you're answering.
in the beginning it could be frustrating but I get used to it after a while and all in all forum readability is better than other more traditional forum.
i don't think i've really understood this behavior until now.Well, you'll certainly track consensus if your "excessive block" limit is higher. But the point is that you'll also track consensus if its lower. This is the key difference between BU where the block size is not part of consensus and something like BIP101 where it IS.
BU will discourage the block by not relaying it (or mining on top of it), but once it is buried a few blocks deep in the blockchain, BU will accept it.
You can see how this behavior is really nice for companies who just don't care; they just want to track the most-difficult chain without having to do an emergency port of their custom modifications to their bitcoin nodes to a new release.