Pages:
Author

Topic: In re Bitcoin Devs are idiots - page 4. (Read 25449 times)

hero member
Activity: 756
Merit: 522
March 12, 2013, 03:19:42 PM
Let me take the opportunity to clarify some points of apparent confusion:

And did you ever pay these independant devs for fixing shit for you for free?

This question is malformed. If you are asking me whether they owe me, the answer is yes.

Are they your wage slaves so you can demand that they do work for you or anyone else?

Yes, they are. This is what being a developer means in this context: that you are a servant. A slave, if you prefer that terminology. One who obeys. An inferior. A steward. Nobody, politically speaking. I'm running out of alternative ways to put this, but I would hope you get the idea.

If someone is interested in becoming politically relevant, being part of the dev team is not only a waste of his time, it's a waste of everyone's time. That a number of the more socially inept kids are doing this (Amir Scarface Taaki, who has meanwhile thankfully been ejected, Weirdo Luke, Gregory Pointless Maxwell and on and on) doesn't make it workable. It just doesn't work.

If someone is interested in becoming rich, being part of the dev team is not only a waste of his time, but a waste of everyone's time. It's just not how it works. Being part of the dev team is being part of the slaves, the servants, the stewards, the however you'd call them. This abject social position does not entitle them to immunity for their fuck-ups in any case. You may dislike that, and that's fine, but your likes and dislikes have no power to change this world.

Have you ever discussed your issues with the development team in a calm and adult manner?

You are not entitled to place limitations on the manner of my discourse. The correct question to ask here is, MP recently published an article about the problems in Bitcoin. Have the developers read it and noted this fact?

Do you even have the capacity to understand what you ask of them? (your tone tells me you're oblivious
How much further does your understanding of the problem go besides: "It's fucked up! fixitfixitfixitfixit!!@@!@!!!!" ?)
And how would you consider devs being independend if you expect them to give in to your tantrums?

I would guess you probably haven't actually understood what's being discussed here at all. As a rule of thumb that may serve you well in the future: whenever things happen that don't make sense to you, it's likely because you've not understood what's actually happening. It's rarely because the people involved are wrong. This is because you are stupid.

As to the matter of "testing":

Quote
sipa   jgarzik: have we seen a block which affected 5000 transaction index entries?
jgarzik   sipa: I don't think so

Fuck you.

This is not testing. Stop releasing new clients, you don't have the license to do it, idiots.
legendary
Activity: 3066
Merit: 1147
The revolution will be monetized!
March 12, 2013, 03:07:06 PM
This is like saying Garry Kasparov is a shitty chess player. Then saying "By the way, I don't know how to play chess."
legendary
Activity: 938
Merit: 1001
bitcoin - the aerogel of money
March 12, 2013, 03:06:23 PM
MPOE-PR:

Irrespective of them being idiots or not, the bitcoin devs owe nothing to you.

Don't look a gift horse in the mouth. If you feel strongly that something needs to be done urgently, then start a Kickstarter campaign to hire a team of "real" developers to clean up the code and write a specification.
newbie
Activity: 19
Merit: 0
March 12, 2013, 03:03:51 PM
I endorse writing a specification over new client releases.
full member
Activity: 209
Merit: 100
March 12, 2013, 03:02:34 PM
I've suggested this before but maybe it's worth mentioning again.

Split bitcoind and bitcoin-Qt into completely independent components. Bitcoind stores a local copy of the blockchain, connects to the p2p network, relays blocks and transactions, and serves blockchain information to clients only. Bitcoin-Qt is a client application only that connects to a trusted bitcoind node. The default installation would install them in a pair, with bitcoind running all the time as a unix daemon (Windows service) and Bitcoin-Qt started on demand. Only one instance of bitcoind is needed on a typical home LAN, all the clients can just connect to it.

Once this is done Bitcoin-Qt can just focus on being the best client it can be, while bitcoind can focus on the blockchain and p2p network. It should also be extended to serve MultiBit, Armory and Electrum. Once the reference implementation is fully refactored into a client/server application it should make any attempt to develop an alternate implementation easier.

I don't have enough programming skill to do this, but I'd donate to anyone who does.

This would definitely be the first step out of the current insanity and finally bring some layering into the code base client UI === depends on ==> bitcoind but zero backward pointing dependencies.

This would be the first step on the long journey to the promised land of the BPS (Bitcoin Protocol Specification)
cho
full member
Activity: 155
Merit: 100
Boar with me
March 12, 2013, 03:01:49 PM
[...]It'd seem consensus is emerging that indeed the devs are idiots (should you wish to more politely define that as "strategically myopic" or whatever other phrase). It'd seem the consensus also is emerging that indeed the way forward is,

As far I've read (which includes this whole thread of course), consensus is emerging that the devs are doing a good to very good job overall. You are the only one calling them idiots in this thread, which is wrong, insensitive, and counter-productive. Most of your comments let me think you have no idea what quality management is in software engineering, and what "0 defect" means in this field. You might wonder why Amazon cloud can be unreachable during a whole, why Gmail can lose mails and be unable to restore them from backups, and why NASA shuttles crash.
I would advise you to stop calling people names because they are not delivering that free unicorn to you.

Then you need to learn to read.

And re "heroics": there were no heroics involved here. The in extremis forcing of a downgrade is not heroic. People doing it are not cool.

It is idiocy, and the people doing it were idiots. Yes, they had no choice. Guess why they had no choice, and guess who puts themselves in the situation of having no choice.

Let me make this perfectly clear: the current hard fork is the death of Bitcoin unless the consensus reached here (ie, no more bitcoin client releases until spec, first release code-cleaning release) is implemented exactly.

This is not up for discussion, it is a fact.

Or you need to learn to read. I'm not sure that sentence brings us anywhere.
Same thing with "This is not up for discussion, it is a fact". This sentence only serves to prove your lack of open-mindedness.

Why are you speaking about the word "heroics" ? Did I mention it ?
I still disagree with you about the devs being idiots, this mistake was human, and mistakes DO happen, whatever the amount of ressources and good will you throw at development.


hero member
Activity: 840
Merit: 1000
March 12, 2013, 03:00:09 PM
MPOE-PR, what are you doing here? Why are you really here?

Has MPEx considered hiring "good" programmers to work on the bitcoin code?

Considered, yes. One problem is the centralization issue stemming from that approach. The one correct way to handle Bitcoin development is exactly as designed: independent devs doing it. The problem is that instead of doing it they spend their time opining on things that utterly ain't their business.

And did you ever pay these independant devs for fixing shit for you for free?
Are they your wage slaves so you can demand that they do work for you or anyone else?
Have you ever discussed your issues with the development team in a calm and adult manner?
Do you even have the capacity to understand what you ask of them? (your tone tells me you're oblivious)
How much further does your understanding of the problem go besides: "It's fucked up! fixitfixitfixitfixit!!@@!@!!!!" ?

And how would you consider devs being independend if you expect them to give in to your tantrums?
Reality is you need the devs and you have absolutely nothing to say about what they do or how they do it. That is why you come crying here on the forum to get souls for your case. Boehoe. You are turning a technical thing into a political thing. Which is quite ironic because it is exactly what you accuse the developers of. I wonder why you so readily wield tools that you want to deny others.

In any case, if you don't like bitcoin go make your own. Bitcoin does not need you. But you propably won't because you are enjoying the benefits that are made possible by the bitcoin development team and the community that emerged around the system?

As usual a lot of dumb arrogant shit packaged in expensive words.
 Roll Eyes
hero member
Activity: 756
Merit: 522
March 12, 2013, 02:48:03 PM
I hope the gods on mount Bitcoin Foundation are listening once in a while, but Bitcoin's monoculture of a single "magical" C++ implementation whose code serves as the spec cannot go on forever.

I would say you grossly overestimate the importance of some irrelevant foundation thingee. It's a case of Rome, Alabama talking itself into the "center of Christian faith".

[...]It'd seem consensus is emerging that indeed the devs are idiots (should you wish to more politely define that as "strategically myopic" or whatever other phrase). It'd seem the consensus also is emerging that indeed the way forward is,

As far I've read (which includes this whole thread of course), consensus is emerging that the devs are doing a good to very good job overall. You are the only one calling them idiots in this thread, which is wrong, insensitive, and counter-productive. Most of your comments let me think you have no idea what quality management is in software engineering, and what "0 defect" means in this field. You might wonder why Amazon cloud can be unreachable during a whole, why Gmail can lose mails and be unable to restore them from backups, and why NASA shuttles crash.
I would advise you to stop calling people names because they are not delivering that free unicorn to you.

Then you need to learn to read.

And re "heroics": there were no heroics involved here. The in extremis forcing of a downgrade is not heroic. People doing it are not cool.

It is idiocy, and the people doing it were idiots. Yes, they had no choice. Guess why they had no choice, and guess who puts themselves in the situation of having no choice.

Let me make this perfectly clear: the current hard fork is the death of Bitcoin unless the consensus reached here (ie, no more bitcoin client releases until spec, first release code-cleaning release) is implemented exactly.

This is not up for discussion, it is a fact.
cho
full member
Activity: 155
Merit: 100
Boar with me
March 12, 2013, 02:46:33 PM
[...]It'd seem consensus is emerging that indeed the devs are idiots (should you wish to more politely define that as "strategically myopic" or whatever other phrase). It'd seem the consensus also is emerging that indeed the way forward is,

As far I've read (which includes this whole thread of course), consensus is emerging that the devs are doing a good to very good job overall. You are the only one calling them idiots in this thread, which is wrong, insensitive, and counter-productive. Most of your comments let me think you have no idea what quality management is in software engineering, and what "0 defect" means in this field. You might wonder why Amazon cloud can be unreachable during a whole, why Gmail can lose mails and be unable to restore them from backups, and why NASA shuttles crash.
I would advise you to stop calling people names because they are not delivering that free unicorn to you.
member
Activity: 70
Merit: 10
March 12, 2013, 02:44:58 PM
Right now there's no question that they deserve to be called idiots. What's happening now was easily preventable and shouldn't have ever happened under any circumstances.
It's actually fucking amazing that this is first MAJOR bug in 4 years.
AND, as all critics ignore because they are clueless and it invalidates their criticism, the bug isn't in bitcoin at all!  It is in some versions of BDB on some platforms.  The developers wisely chose a better database for 0.8, but unfortunately the bug manifested itself in a bad way (it could have been worse, e.g. if the bug in BDB made remote code execution or altering old blocks possible) before almost all nodes had upgraded.
I've seen at least one thread claiming that it's not a bug in BDB as much as a misconfiguration.
It is a question of wording - if we assume everybody knows all facts: you may call it a bug in bitcoin, that the BDB was used misconfigured.

Anyway, no need to insult people here from the very beginning of the thread - but this seems also a characteristic of this bitcoin forum(s) that this is tolerated. :-(

smtp
hero member
Activity: 756
Merit: 522
March 12, 2013, 02:44:14 PM
AND, as all critics ignore because they are clueless and it invalidates their criticism, the bug isn't in bitcoin at all!  It is in some versions of BDB on some platforms.

You are wrong. Devs'/devzombs' first reaction was that "BDB bug" because a. they are idiots and b. they think their shit doesn't stink.

Fact of the matter is, they just failed to configure the BDB. Because a.

Nice trying to hide behind the Jesus of your faith, but it won't wash.

And to add to #114 above, seems OKpay got swindled for 10k or so too.

How much money do you expect people to contribute to the "propping dev arrogance" fund? The unencrypted wallet cost millions. This thing costs however much. How much more is needed? How long are we going to hear "it's not our fault" and "Satoshi did it"?
full member
Activity: 209
Merit: 100
March 12, 2013, 02:44:11 PM
Another way to state the real problem: There is no Bitcoin Protocol Spec, most semantics buried in the hairball of the C++ reference implementation
This was actually a good example of something a spec wouldn't help (though would still be good to have). The inconsistent behavior here arose out of 0.8 not faithfully implementing some implicit behavior in BDB. The behavior in question is not anywhere in the Bitcoin code itself, nor is it visible at the interface of BDB and Bitcoin.  If there were a spec it would make no mention of it— and yet the network would be broken all the same.

The key thing is that in a distributed consensus system the most important definition of right is "consistent", this is paramount to all other concerns. A spec is helpful to the extent that it makes it easier to achieve a bit identical consistent behavior in the validation of blocks across all nodes, but because the spec itself can't be executed a spec can never guarantee consistency, at least not in the real world. (well, unless the spec is code— which is effectively what we have, for worse or better)


I respectfully disagree.  

A real protocol specification would enable a whole ecosystem of alternative and interoperable implementations to appear in Scala, Java, Go, C, etc.  

These implementations would NOT use the same flawed 3rd party libraries and there would be a real diversity in Bitcoin land, instead of the monoculture of C++ with all of its "magic" and "folklore".

Once no individual implementation had large enough fraction of the hash rate, then such forks would NOT occur, instead, bugs in a given implementation would only affect some miners, merchants & users but the chain would be just fine.

Let us hope and pray that eventually there will be some effort ( funded perhaps by the Bitcoin Foundation ) to extract and publish such a spec from the C++ hairball formal enough for viable alternative implementations to appear and to interoperate.
Cheers ...

A agree with you, but based on statements by Jeff, Gavin, and Mike, this will not happen.  If we want a well specified crypto currency with a wealth of implementations, we are going to have to create it.  Bitcoin is not that, and it is not going to become that.

If core developers are firm in this, i.e. their refusal to even entertain having a spec extracted from C++ warts and all, then we'll just have to live with sadness for a while ... until somebody like Ripple comes along and "does it right" ... we'll see how this goes ...
full member
Activity: 209
Merit: 100
March 12, 2013, 02:34:54 PM
It is always entertaining to watch non-contributors opine about completely obvious solutions that the devs are silly to have overlooked.

The interesting thing about bitcoin is its organic nature.  The bitcoin codebase, warts and all, was dumped into the Internet's collective lap.  Reality does not give anyone a chance to pause, wait for a specification to be polished, to wait for every single edge case to be tested (if that were even possible), etc.

Almost half a billion dollars in market cap, and the dev team is still largely unpaid volunteers, trailing behind events, cleaning up the messes reality leaves behind.

I am not sure how to read your post.  Are you suggesting the current state of affairs is a good thing or a bad thing ?  Obviously the original Satoshi client was a fact on the ground.  And "reality" hasn't given anybody a chance to pause, but can we not take a small time out now and actually define a 1.0 spec and THEN implement a backwards compatible version from 0.8 today to that 1.0 ?

It's not like every pull request on GitHub is a do-it-now-or-bitcoin-dies urgent fix, actually most of them are trying to refactor, fix & alter the existing single implementation, and some like pruning and bloom filters add huge new features with *more* latent semantics sprinkled around the C++ instead of being in the spec.

I hope the gods on mount Bitcoin Foundation are listening once in a while, but Bitcoin's monoculture of a single "magical" C++ implementation whose code serves as the spec cannot go on forever.

I wanted to create an independent implementation from scratch in Scala, but soon realized that not only there wasn't enough documentation for protocol messages on the wiki, but worse, their semantics were constantly moving targets, potentially with every github pull request being committed.  At that point I gave up.

I haven't heard of a from scratch C-based libbitcoin library much lately ... not sure if its author also had to throw in the towel after a while ... that would just be sad.

Guys, the time for heroics is great, but if you want Bitcoin to be Money of IP (as it's being advertised) then it has to be a network/message protocol spec that people can go away and implement in language X and interoperated with you.

In this Bitcoin will either follow in the successful tradition of TCP/IP, SMTP, HTTP, TLS, etc or it will be a series of heroic battles by "the community" to "save bitcoin" from future "genetic defects" found in its sole C++ implementation or one of third party libraries.

Cheers ...
legendary
Activity: 1400
Merit: 1013
March 12, 2013, 02:25:16 PM
Right now there's no question that they deserve to be called idiots. What's happening now was easily preventable and shouldn't have ever happened under any circumstances.
It's actually fucking amazing that this is first MAJOR bug in 4 years.
AND, as all critics ignore because they are clueless and it invalidates their criticism, the bug isn't in bitcoin at all!  It is in some versions of BDB on some platforms.  The developers wisely chose a better database for 0.8, but unfortunately the bug manifested itself in a bad way (it could have been worse, e.g. if the bug in BDB made remote code execution or altering old blocks possible) before almost all nodes had upgraded.
I've seen at least one thread claiming that it's not a bug in BDB as much as a misconfiguration.
legendary
Activity: 1437
Merit: 1002
https://bitmynt.no
March 12, 2013, 02:22:05 PM
Right now there's no question that they deserve to be called idiots. What's happening now was easily preventable and shouldn't have ever happened under any circumstances.
It's actually fucking amazing that this is first MAJOR bug in 4 years.
AND, as all critics ignore because they are clueless and it invalidates their criticism, the bug isn't in bitcoin at all!  It is in some versions of BDB on some platforms.  The developers wisely chose a better database for 0.8, but unfortunately the bug manifested itself in a bad way (it could have been worse, e.g. if the bug in BDB made remote code execution or altering old blocks possible) before almost all nodes had upgraded.

AFAIK none of the current developers are involved in BDB development, and BDB was chosen by Satoshi.  Satoshi made a few errors, but I wouldn't call him an idiot.  Shut up or do a better job.
member
Activity: 70
Merit: 10
March 12, 2013, 02:02:17 PM
Yes. I heard you make the same argument last night. The answer is not cut and dried. Should we "fuck" the users a little bit now (by making them upgrade immediately) or should we patch clean efficient code (0.8 ) to protect buggy slow code (0.7), thus risking a more serious "fucking" in the future?

Do not misunderstand. In the heat of the moment I might well have made the same decision as you. But decisions have consequences: (1) Bad code was protected and (2) influence born of community respect was spent. By being aware of those consequences, you might be better prepared to guard against their potential repercussions.

You are intentionally ignoring the real consequence.  It isn't that users are "forced to upgrade".  Devs have recommended security upgrades in the past.   It is that users who didn't upgrade (possibly because they are unaware) would have been easily "robbed".  Downgrading v0.8 has no lasting security implications.  Allowing the network to remain forked presented a real threat to the security of user's transactions.  It would be asinine to chose anything over the security of the network.  The news of this fork has been relatively muted.  Can you imagine if the decision to force through v0.8 had been made and thousands of users were robbed for millions of dollars worth of Bitcoins in 51% attack, accepting bogus generated coins, and even trivial no-hash power double spends.  

Which presents a real THREAT to the trust in the network.   The need to upgrade or lack thereof is a strawman.   My guess is you will now make another strawman attack about needing to upgrade as you have done twice now.  Don't worry I won't see it so you an "winz the internets".

Hmm .. the bug (or do you call it a hidden feature?)  effectively touched bitcoin-miners and not directly(!) bitcoin-users. So the other obvious solution, which Pieter also suggested at first, was to push the longer chain, the one which grew faster and not to conceal/press effectively bitminers to do an effectively 51%-attack for the "good" of the network on this chain, because the 0.7-fork is "correct". This dubious politic is highly questionable, IMHO. On the other hand, effectively convincing/forcing miners to switch to 0.8 would surely have had the advantage of a much more equal code base for almost all miners afterwards.

Appendum: Again a very important issue, which reflects a real-time behaviour is: how can one estimate which approach (if we restrict us two only these 2 alternatives) will succeed significant earlier?

smtp
member
Activity: 70
Merit: 10
March 12, 2013, 01:43:58 PM
I think the job meant was pool operator, not miner as in, often enough, a mere hasher who does not even see the blocks being hashed. Such "miners" are more like bank tellers or even just folks who host an ATM machine for profit than actual bankers.
Yes, the common/general "banker"-word can surely subdivided in many specific categories. Currently "miners" can't really, perhaps only into these 2 (raw miner, pool operator), but as longer as mining evolutes as more specific sub-work jobs will show up, like in bank-business, IMHO. Compare bitcoin-age with bank-business, say, 1000 years ago. :-)
But nevertheless, the general/principle equivalence/relation "banker" <--> "miner" holds perfectly. Probably, the miner-community likes to avoid the word "banker" for themselves because of psychological reasons. Wink
smtp
hero member
Activity: 756
Merit: 522
March 12, 2013, 01:07:35 PM
The problem was lack of a DB_CONFIG file in the bitcoin application directory. Without that file, BDB simply chose to use default settings. The default setting of 10000 for set_lk_max_locks is not enough to handle larger blocks with many transactions (inputs and outputs). Easy fix.

Oh no, Berkeley is broken. How could you say Bitcoin Devs are just clueless? What heresy is this!

Take it to the BDB forums!
legendary
Activity: 826
Merit: 1001
rippleFanatic
March 12, 2013, 01:02:55 PM
That is not correct.  v0.7 nodes accepted a 1MB block on testnet.  The issue was more complex then just the size of the block.  By the protocol the block which was rejected by some nodes SHOULD have been accepted.  The 250kb soft limit was simply a default for block construction.  Even with it in place nodes should have accepted properly constructed blocks up to the 1MB limit.  It also appears not all v0.7 nodes were affected.  Some accepted the problem block and some didn't.  The defect/limit in BDB wasn't documented and didn't occur in all versions/platforms.   It appears the number of transactions being changed as a result of the block validation crossed some "magic code" not in the Bitcoin source code but undocumented in some implementations of BDB.

v0.7 reliance on BDB caused it to be fundamentally broken/flawed. Its actions weren't consistent with the documented protocol, the higher level source code, or anyone's understanding/expectation of what should have happened.   Nobody was saying/thinking oh yeah if you make a block with more than x transaction it will abort, cause a rollback, and result in a rejection.  It was a landmine.  

The problem was lack of a DB_CONFIG file in the bitcoin application directory. Without that file, BDB simply chose to use default settings. The default setting of 10000 for set_lk_max_locks is not enough to handle larger blocks with many transactions (inputs and outputs). Easy fix.
hero member
Activity: 756
Merit: 522
March 12, 2013, 01:02:29 PM
What's stopping your company from hiring one developer to do nothing but code cleanups and submitting them to GitHub? There's nothing centralized about that.

Because cleanups would require very deep reaching changes. If we hired a cleanup dev his #1 task would be "find and remove all magic numbers anywhere in the codebase".

You keep saying you want to get rid of magic numbers, how would you limit the size of blocks? Or would you just have unlimited block sizes?

This issue has already been discussed, and consensus has already been reached.

I agree. Perhaps "forced" had the wong connotation. It was obviously persuasion, not coercion. My point is merely that you and the other respected developers used your influence to persuade the 0.8 miners to abandon the 0.8 fork. I simply suggest that this consumed some of your store of influence for future emergencies.

Let's elaborate on that a little. Bitcoin's #1 pool is trading while insolvent at the present time because it just got hit by the double whammy of:

1. Oh, you made the mistake of updating to our most recent version? Well here you go, redownload the chain, pay submitted work as if difficulty were negative for a while. That's what hot wallets and autopayments are for right?

2. Oh, you made the mistake of updating to our most recent version? Well...revert. Oh, you need an old chain because the new chain you just paid half your house for is no good? Awww. Here, lose 16 blocks on top of the 1.1k BTC you lost before. We really want you to lose the whole house, not just half of it.

The entire "miners vote" is a sham and a total red weasel currently. Miners don't vote, miners just sheepishly follow around because "devs say so". And incidentally, a willingness to do the soviet thing and pretend this sort of crap is covered by "popular vote" when no actual voting took place speaks volumes as to the moral integrity of the pretenders. Ugly stuff.

If the miners had half a clue they'd have told Idiot Co-op exactly where to stuff it, and here's the beauty of it: with the arrival of ASICs and their significant capital cost, the odds that the sort of feelgood ninnies currently involved in mining will still be around are nil.

This is what money does, it shakes out the deadwood and culls the herd. Next time you do something because "Mike" said you should may very well be the last time you get to do anything. That little tidbit isn't too likely to pass unnoticed seeing how universal the conservation instinct is.

In other words: next time this happens devteam is gone, for the simple reason that miners will not revert, or even talk to those "devs" again.
Pages:
Jump to: