Pages:
Author

Topic: Idea: new rules for block validation - page 2. (Read 3870 times)

donator
Activity: 2058
Merit: 1054
November 28, 2011, 03:15:30 PM
#29
* it's impossible for a user to determine what the fee should be. Most will use the suggested value, which might or might not be enough.
The current "suggested fee" feature of the client is a temporary hack. In the future it will receive as input the desired wait time (or use a default value) and give a reasonable estimate based on historical data.

* ...once a transaction is out, there's nothing you can do to speed it up. I suggested that the network should guarantee that it will get into a block, what other solutions can there be?
The protocol supports multiple versions of a transaction. It should be possible to use this to release a new version of the transaction with a higher fee if the old one isn't accepted, and the client can do this automatically.
sr. member
Activity: 252
Merit: 250
November 28, 2011, 01:09:40 PM
#28
Miners provide a service for a fee, it doesn't make sense to force them to provide a service to you. Ideally the incentive structure is designed in such a way that the market is efficient and you will find miners offering this service to you at a competitive rate. You're extrapolating from an occasional instance of a technical error, and your proposal does not solve the actual problems (which do exist, and for which a solution will have to be found).

Maybe I didn't express myself correctly. I don't want miners to do something much different than what they do now. Obviously, I don't want a service *for me*. I just want to add a "and don't leave out tx older than x blocks" restriction - which, looking at http://bitcoinstats.org/, is not even a problem, since most transactions are confirmed much faster anyway. For the miners the effect will be minimal. For the end-user though, this restriction brings a much-needed warranty.

You might be right about the technical glitch. I supposed my tx simply tripped some checks in the miners. I assumed it was intentional, but I might be wrong.

I do believe the problem still remains, though - how can we make sure transactions are always confirmed in a predetermined time (max. number of blocks)?

The standard suggestion - "increase fee" - has the following problems:

* it's impossible for a user to determine what the fee should be. Most will use the suggested value, which might or might not be enough. And...

* ...once a transaction is out, there's nothing you can do to speed it up. I suggested that the network should guarantee that it will get into a block, what other solutions can there be?
donator
Activity: 2058
Merit: 1054
November 28, 2011, 12:51:29 PM
#27
I paid suggested transaction fee. Why would a user care about how large it was (I assume you mean the number of inputs) and how many blocks? Why would a user care about blocks at all?
He shouldn't, and to the extent that he needs to care about it in the current implementation, these are all issues with the usability of the current client.

I did exactly what the Bitcoin client suggested I do. The system then ignored my transaction.
Mostly likely the transaction wasn't included in the block due to some technical error in the way the miners' client chooses transactions. It's not due to malice on the miners' part.

but I say that allowing the miners to ignore transactions indefinitely is the problem that should be fixed.
Miners provide a service for a fee, it doesn't make sense to force them to provide a service to you. Ideally the incentive structure is designed in such a way that the market is efficient and you will find miners offering this service to you at a competitive rate. You're extrapolating from an occasional instance of a technical error, and your proposal does not solve the actual problems (which do exist, and for which a solution will have to be found).
sr. member
Activity: 252
Merit: 250
November 28, 2011, 12:40:03 PM
#26
It undermines your entire argument to start screaming obscenities about a proposal.  Not even a formal proposal but more an inquiry.  If you need to be beligerent to get your point across then you don't really have anything useful to say.

Thank you. I almost started believing that it's not possible anymore to have a debate and disagree without everybody insulting eachother Smiley.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
November 28, 2011, 12:38:52 PM
#25
Quote
It undermines your entire argument to start screaming obscenities about a proposal.  Not even a formal proposal but more an inquiry.  If you need to be beligerent to get your point across then you don't really have anything useful to say.
... sorry about that, sometimes i just gets too annoyed on stupid people. especially when they can't see the fatal consequences of a change that their think would make the network more efficient or fair.

Quote
BTW: before you start ranting I agree this would be a very bad idea, isn't needed, and would have significant unintended consequences.
WHAT? ME RENTING? ARE YOU TELLING ME TO STFU?

Quote
It also has exactly a 0% chance of ever being implemented.
yes you are right, i should leave the topic now.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
November 28, 2011, 12:32:36 PM
#24
i will not control my language

Thank you for helping me decide whether or not you should make it on my block list. I will also be grateful if you will ignore me too, there's no reason for us to interact anymore.
so you do not like people who told you that you fucked up, and your suggest sucks? Great! it is really productive. STUPID FUCK!
sr. member
Activity: 252
Merit: 250
November 28, 2011, 12:29:30 PM
#23
i will not control my language

Thank you for helping me decide whether or not you should make it on my block list. I will also be grateful if you will ignore me too, there's no reason for us to interact anymore.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
November 28, 2011, 12:25:28 PM
#22
if you did read the next line, you would find out! STUPID FUCK! it would cause a block chain split. where half of the network would mine block upon the 'invalid' block. while the rest of the network would toss it away.
unless you understand how stuff works, please dont go posting about it.

I respectfully ask you to control your language. I don't think we grew up together, so a minimum of respect would help.

I understand what a block chain split is. I asked the rhetorical question because you implied that a split is very unlikely in the current state and very much likely in my proposal. I believe you are wrong, and my proposal doesn't make it much more likely to have splits.
i will not control my language, when a STUPID FUCK like you comes and suggest a stupid change, without even learning how the stuff works now.

the blockchain will recover from the splits.
but you proposal would make many permanent splits in the blockchain, that it you not be able to recover from. every time someone does have a transaction that is not included in a block yet, it would reject it, while the rest of the network(that does not know about the tx), would continue to mine on the block that you consider invalid. and you would not be able to confirm more txs. 

a reorg will happen if the client receives a block with more total-work(sum of all the work done in all previous block), then the current one.
also how do you proof that a transaction took place before the block was mined?
the blockchain's function is to proof that at least some time have passed since something was made.

you are a STUPID FUCK, unless you are shutting your mouth now, and go learn how the stuff works now. then you may come back, and maybe i will talk to you in a more polite language.
sr. member
Activity: 252
Merit: 250
November 28, 2011, 12:09:29 PM
#21
if you did read the next line, you would find out! STUPID FUCK! it would cause a block chain split. where half of the network would mine block upon the 'invalid' block. while the rest of the network would toss it away.
unless you understand how stuff works, please dont go posting about it.

I respectfully ask you to control your language. I don't think we grew up together, so a minimum of respect would help.

I understand what a block chain split is. I asked the rhetorical question because you implied that a split is very unlikely in the current state and very much likely in my proposal. I believe you are wrong, and my proposal doesn't make it much more likely to have splits.
sr. member
Activity: 252
Merit: 250
November 28, 2011, 12:04:01 PM
#20
Well you paid the minimum fee and got minimum service.  So what is the issue?  Did the client promise any level of service which wasn't met?  Did it indicate that it would be included in the next block guaranteed?

I hope you agree that it is common sense to offer some guarantee that valid, accepted transactions will make it in a block in some reasonable amount of time. This is all I want to ensure. If zero fees are impossible - cool. If minimum fee needs to be higher - cool again. Minimum fee should be enforced for the users, but in turn the miners should also guarantee reasonable confirmation time.

Quote
You still didn't indicate how large the transaction was nor how small the fee was nor how many blocks passed (miners have no control over time only blocks).
If you don't want to give any technical details on the transaction in question that is fine but I will stick the consensus so far that your proposal is flawed.

I am sorry, I would have given a link to the tx, but I realized that I want that transaction kept private. I should have used another example Sad. I am sure we can find another one, it's not the first time people complained about confirmation time. I don't know exactly how many blocks, but it was more than 24h, I don't think there were less than 4 blocks/h, so let's say a minimum of 80-90 blocks?

Quote
You also seem to completely ignore the fact that this may be a TECHNICAL problem that miners (or maybe even some node thus miners never even saw it) considered the transaction invalid and thus excluded the transaction for non-fee reasons.  Setting fee rules wouldn't solve that problem it would actually create further issues as some nodes wouldn't broadcast the transaction thinking it is invalid and some node would consider the block invalid because it didn't include the transaction.

I used the standard client, I don't think that's the case.

Quote
Higher fee would result in higher service.

As long as the system can guarantee that a transaction will be processed in a maximum amount of blocks, I have absolutely no problem with fees. The problem right now is that miners do have the means of ignoring a transaction if they want to. I simply don't think they should.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
November 28, 2011, 11:49:53 AM
#19
what would happen if a tx only was broadcast to half of the network, and have not propagated enough?

What happens not and how does my proposal make it worse?
if you did read the next line, you would find out! STUPID FUCK! it would cause a block chain split. where half of the network would mine block upon the 'invalid' block. while the rest of the network would toss it away.

unless you understand how stuff works, please dont go posting about it.
sr. member
Activity: 252
Merit: 250
November 28, 2011, 11:42:19 AM
#18
what would happen if a tx only was broadcast to half of the network, and have not propagated enough?

What happens now and how does my proposal make it worse?
sr. member
Activity: 252
Merit: 250
November 28, 2011, 11:41:32 AM
#17
Increase your fee and stop being so cheap.  With Bitcoin you aren't guaranteed any level of service beyond what you pay for.  You want to pay bulk mailing rate and get priority overnight service.  The reality is you get what you pay for and as the network grows and block rewards decline that correlation between price and performance will only strengthen.

I paid the suggested transaction fee. I could not do anything to speed things up after my valid transaction was accepted. I (as a common user) don't know anything about input sizes, I just know that my transaction is not confirmed for more than 24h. Do you see the problem?

Also there are a lot of unintended consequences.  Your system would make transaction withholding more valuable and thus manipulatable. An unscrupulous miner could employe cancer nodes to fragment the network and prevent proper propogation.  Other miners would unknowingly be mining incomplete datasets and see higher rate of invalid blocks.  The beneficary would be the one doing the fragmenting.  You could even see a fragmentation arms race where various mining pools attempt to out do each other by degrading and delaying the network.  Not saying it will happen but you will create an incentive to fragment and destabilize the network.

Are you suggesting that these attacks can't happen now? That these vectors are introduced by my proposal? Because if so, I believe you are wrong.

Quote
How much did you pay and for how large of a transaction and how may blocks (not time) passed before your transaction was included?

I paid suggested transaction fee. Why would a user care about how large it was (I assume you mean the number of inputs) and how many blocks? Why would a user care about blocks at all?

Quote
I can't see a majority of miners working against their own best interest.  If miners excluded your transaction either they saw it as invalid or it wasn't in their interest.  Make it in their interest and they will include it.  I don't see a problem that requires regulation.

I did exactly what the Bitcoin client suggested I do. The system then ignored my transaction. And you don't see the problem? You will say it's a problem in the client, but I say that allowing the miners to ignore transactions indefinitely is the problem that should be fixed.
legendary
Activity: 1050
Merit: 1000
You are WRONG!
November 28, 2011, 11:23:48 AM
#16
but I would be interested to hear what you think about the general idea?
no! its a fucking bad idea. it sucks big time! NO!
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 28, 2011, 11:14:50 AM
#15
I disagree. I think we can safely asume that mining nodes are well connected. Or they shouldn't be mining. I can think of no scenario where a mining node that's slow is useful to the network.

Says who?  You?  The international agency on block protection?

It is a distributed network.  A miner has every right to mine.  Period.   Each individual miner has the right to include transactions they want in blocks.  It is entirely possible in the future there could be private hashing farms to support systems built on top of Bitcoin and they only hash their internal transactions.  

Increase your fee and stop being so cheap.  With Bitcoin you aren't guaranteed any level of service beyond what you pay for.  You want to pay bulk mailing rate and get priority overnight service.  The reality is you get what you pay for and as the network grows and block rewards decline that correlation between price and performance will only strengthen.

Also there are a lot of unintended consequences.  Your system would make transaction withholding more valuable and thus manipulatable. An unscrupulous miner could employe cancer nodes to fragment the network and prevent proper propogation.  Other miners would unknowingly be mining incomplete datasets and see higher rate of invalid blocks.  The beneficary would be the one doing the fragmenting.  You could even see a fragmentation arms race where various mining pools attempt to out do each other by degrading and delaying the network.  Not saying it will happen but you will create an incentive to fragment and destabilize the network.

Quote
Totaly agree. Miners should be paid. All I'm asking is that they guarantee a reasonable transaction processing time. As I already said, if we need to drop free transactions, I'm all for it, but giving the miners the power to choose if a transaction will make it in a block or not, it's too much IMHO.

How much did you pay and for how large of a transaction and how many blocks (not time) passed before your transaction was included?


I can't see a majority of miners working against their own best interest.  If miners excluded your transaction either they saw it as invalid (maybe a technical issue that your solution wouldn't fixed) or it wasn't in their interest (your fee didn't compensate them for the cost).  Make it in their interest and they will include it.  I don't see a problem that requires regulation.

legendary
Activity: 1050
Merit: 1000
You are WRONG!
November 28, 2011, 11:13:15 AM
#14
well dude! make you own client that invalidates blocks that does not include fee-txs, and see how long it will survive.
what would happen if a tx only was broadcast to half of the network, and have not propagated enough?

half of the network would accept the block, and the other half would reject the block, and thereby causing a spilt! <- BAD THING.
sr. member
Activity: 252
Merit: 250
November 28, 2011, 11:09:36 AM
#13
Tx propagation is fast in optimal conditions but you can't assume all nodes are aware of all transactions at all times, so you can't declare a block "invalid" just because it is missing a transaction.

I disagree. I think we can safely asume that mining nodes are well connected. Or they shouldn't be mining. I can think of no scenario where a mining node that's slow is useful to the network.

Quote
Also you shouldn't expect miners to do work for you unpaid, if you want them to include your transaction you should pay them for it. In fact to make the network secure it is important that enough is paid to miners, what we should be looking for is how to make transaction fees as high as possible while still being insignificant to the users.

Totaly agree. Miners should be paid. All I'm asking is that they guarantee a reasonable transaction processing time. As I already said, if we need to drop free transactions, I'm all for it, but giving the miners the power to choose if a transaction will make it in a block or not, it's too much IMHO.
donator
Activity: 1218
Merit: 1079
Gerald Davis
November 28, 2011, 11:04:16 AM
#12
Bad idea.  You have no right to have a transaction included.  Let the free market decide.

How much was the fee and how large was the transaction?  I am guessing neglible and not so negligible respectively. 

I guarantee no miner is going to leave any sizable transaction fee behind.  You want express delivery pay express delivery prices.  If miners are dropping high value transactions then work with them.  It is likely a technical oversight. 
donator
Activity: 2058
Merit: 1054
November 28, 2011, 10:54:39 AM
#11
Tx propagation is fast in optimal conditions but you can't assume all nodes are aware of all transactions at all times, so you can't declare a block "invalid" just because it is missing a transaction. Also you shouldn't expect miners to do work for you unpaid, if you want them to include your transaction you should pay them for it. In fact to make the network secure it is important that enough is paid to miners, what we should be looking for is how to make transaction fees as high as possible while still being insignificant to the users.

That said, I do indeed believe, and have suggested in the past, that branch selection should involve more than just the total difficulty, and include things like the total bitcoin-days destroyed in the block - precisely to prevent denial attacks. But this needs to be much more subtle than just "reject a block if you know something it doesn't".

Also, you are drastically underestimating the hardware requirements a full network node will require if Bitcoin becomes successful.
vip
Activity: 1386
Merit: 1140
The Casascius 1oz 10BTC Silver Round (w/ Gold B)
November 28, 2011, 09:41:52 AM
#10
I think there should be a feature where a transaction can be resubmitted with a higher fee.  And where nodes will recognize the second transaction (which looks like a double-spend) as a fee-increasing transaction.

I am not sure size is the main factor: not too long ago, I sent a transaction with 312 outputs to load lots of physical bitcoins, with no fee, and it went through promptly.  Then again, that transaction may look a lot more favorable compared to somebody combining a bunch of penny inputs (inputs take up much more space than outputs) - my big transaction only had a single input.
Pages:
Jump to: