Warren getting upset about Feathercoin
-
I’m not a programmer, but the code isn’t exactly very transparent. If we’re going to maintain the code, we need some way to document and group develop. This was one of the reasons I, previously, suggested an actual coding thread, where we could discuss / document the functions, parameters and work flow.
I might be wrong and we just need to get more programmers involved? I would be interested too see “how the code works” but coding is a specialised area, I’m still learning Github.
We certainly need to keep tabs on future developments as they come through, perhaps even do our own patches, as opposed to forking Litecoin and reintroducing Feathercoin changes.
I have always found good coders aren’t the best at specifications or strategy, its a point of failure and centralisation having only a few or one developer. Even within coding, for instance, one of my programmers was good at human interfaces, another was good at object orientation and UML.
To me, the program already looks too complicated for one person to maintain, or fully understand.
It certainly looks like Warren has a chip on his shoulder against forked alt-coins, which is a shame, since co-operation back-porting generic patches to Bitcoin / Litecoin, so that the Feathercoin client is built with a switch from common code, is much more efficient use of time and would be less prone to errors and bugs being introduced.
Unfortunately, it seems we wasn’t born with a genetic understanding of the code, like the Litecoin developers, so its gonna take some work and co-operation to move forward. I think we’ve already decided we need to be solid first, so we don’t have to rush.
-
[quote name=“kris_davison” post=“34665” timestamp=“1384727853”]
Yeah lets all bash bushstar. I mean what do you want from the guy to rise to the bait and get into some long flame war about who did what and when. We are where we are and we are hopefully moving forward.
[/quote]You know, I’m really tired of this ad hominem bullshit. It’s so immature and adds zero to the conversation the rest of us are trying to have.
Nobody’s “bashing” Bushstar. No I don’t expect him to take any “bait”, nor do I expect any sort of flame war. Who did what and when is well understood and I don’t see much point in debating it.
What is warranted here is a level-headed discussion of the facts and a serious reply to the community and even the rest of the world about the status of development and the merits of features with regards to Feathercoin. Answers like when will ACP get removed, what is the hold up with regards to 0.8.5 and in fact any new features, why is the current source code invite only, and what is the roadmap for development for the next 3 months?
All this talk about “bashing” people and shutting down the discussion because people can’t be mature enough to discuss the facts level-headedly without turning it into a personal attack on someone is such a distraction and I really wish it would stop.
Now, let’s get back on topic and quit the ad hominem attacks please.
[quote author=wrapper0feather link=topic=4440.msg34710#msg34710 date=1384738809]
I’m not a programmer, but the code isn’t exactly very transparent. If we’re going to maintain the code, we need some way to document and group develop. This was one of the reasons I, previously, suggested an actual coding thread, where we could discuss / document the functions, parameters and work flow.I might be wrong and we just need to get more programmers involved? I would be interested too see “how the code works” but coding is a specialised area, I’m still learning Github.
[/quote]You are partially correct. The code isn’t great, but it’s not terrible either. You know what’s about 100 times harder to read and maintain? Linux kernel… yet those guys seem to get along just fine. This tells us that while the code base may be sub-optimal, there are more than enough qualified people in this world who are capable of working in it. Satoshi-QT developers have it EASY by comparison. They get to use C++ instead of C, Boost, which is an incredibly well engineered library, and QT which is great for doing UI’s. Linux developers should be so fortunate!
But you have to understand that where some people will see the elegance of C++ and Boost, others will run away screaming bloody murder and sink themselves back into languages with much less sharp edges that won’t make you lose your entire blood supply when you get cut on them, and never return. For them, such things are a personal preference, and a luxury afforded to them because of the era of development they find themselves in… I assure you 10 years ago such luxuries were not so easily afforded.
Coding is, as you pointed out, a specialized area. It requires not only knowing how to code, but also knowing how to code well, which is a skill you only learn once you’ve written a LOT of code. Getting more programmers involved won’t help if they’re not skilled. Anyone can fork a github project, change a few variables, and release a modified product, but to add new features to that product requires a level of skill that is in great demand in the professional world, and is compensated as such. This makes the barrier to entry exceptionally high when you consider that a programmer must be:
- Sufficiently skilled
- Interested
- Willing to work for free or “sweat equity”
[quote author=wrapper0feather link=topic=4440.msg34710#msg34710 date=1384738809]
We certainly need to keep tabs on future developments as they come through, perhaps even do our own patches, as opposed to forking Litecoin and reintroducing Feathercoin changes.
[/quote]Yes, I’ve suggested that several times. So far it hasn’t happened.
[quote]
To me, the program already looks too complicated for one person to maintain, or fully understand.
[/quote]Gavin Anderson does just fine. Mike Hearn adds new features all the time. People have rewritten the entire thing in different languages like Java, Python, and Erlang. Sunny King fundamentally changed the underlying structure of the Blockchain all on his own. I’ve written and maintained code bases 3 times the size on my own.
[quote]
It certainly looks like Warren has a chip on his shoulder against forked alt-coins, which is a shame, since co-operation back-porting generic patches to Bitcoin / Litecoin, so that the Feathercoin client is built with a switch from common code, is much more efficient use of time and would be less prone to errors and bugs being introduced.
[/quote]No, he has a chip on his shoulder against people taking away any of the market share from his creation. It’s basic capitalism, and what you’re seeing is a marketing ploy to discredit the long term viability of the project in order to boost his own market cap.
He’s smart, you see, and the response from the community so far has only served to strengthen his case.
[quote]
Unfortunately, it seems we wasn’t born with a genetic understanding of the code, like the Litecoin developers, so its gonna take some work and co-operation to move forward.
[/quote]No one was, I assure you. It’s very obvious from reviewing the code base that even Satoshi struggled with cleanly expressing his ideas sometimes. Any understanding of the code is a product of long hours of working with it, something the Litecoin developers have put in the time for.
[quote]
I think we’ve already decided we need to be solid first, so we don’t have to rush.
[/quote]Solid at what? Solid as a blockchain? We’ve achieved that thanks to the difficulty adjustment algorithm. Solid as a community? Well we sure do discuss a lot of things that never get worked on. ChrisJ is doing an even better job than JABOT at putting on a great forward facing image.
Solid at developing new features? We have a development process that preclude that possibility I’m afraid.
[quote author=mnstrcck link=topic=4440.msg34661#msg34661 date=1384725728]
Kevlar,Why don’t you help us out with the changes? I’m also still waiting for your post in Technical Development too, by the way!
[/quote]Because I don’t have the support of the developer, nor any faith in his ability to lead, code, or manage the code base. Bushstar is a really nice guy, but as a leader of developers he’s failed to demonstrate any real redeeming qualities which inspire developers to get behind his effort and contribute their support to him.
You see, if he had, we wouldn’t be having this discussion right now, because other developers would have joined on and there would be a process in place for group development, a road map of features, an open repository to fork, and people actively working on it.
Good leaders lead by example, and so do good coders. Show me some good code, and I’ll get on board without hesitation.
-
I see your point but what I don’t see is a solution?
Do you have one? -
I will advocate it again. Implement Zerocoin
-
[quote name=“Vonkraut” post=“34828” timestamp=“1384800406”]
I will advocate it again. Implement Zerocoin
[/quote]They’re alt coining based on their recent twitter announcement. They’re less a feature and more a competitor of sorts at this stage.I mean, unless people want to start talking about pulling their tribe in. But even then that doesn’t address the points Kevlar raises.
-
Just my two cents, but what exactly is [b]needed[/b] at this point in software development? To me it seems like FTC works just as well as LTC or BTC when it comes to its functionality, the coins get sent and received in a timely manner and the block times have stabilized. In my eyes, the code does not require a change, instead we should be increasing adoption and market image, not adding new features we are not sure anyone actually needs.
Additionally, why is ACP bad? I know you can just say “centralization”, but in this instance what could go wrong with it? How can we prevent those failure modes from occurring? -
Kevlar, I tried separating the code into coherent parts. It’s like UNIX hasn’t been invented yet, or we don’t value the lessons we learned.
I did at one time manage to patch the iptables driver to hide routers for an ISP, so a disgruntled employee couldn’t hit it.Maybe it’s just me and ASM and JS and Lisp make more sense.
Vidicus, we need developers in order to customize the interface, to notice subtle bugs, to avoid some poisoning the code with proprietary licensed crap so they can get a court to say we have to shutdown. It’s not like assembling a couch. It’s more like making cobwebs look like concrete.
-
[quote name=“zerodrama” post=“34836” timestamp=“1384803274”]
making cobwebs look like concrete.
[/quote]Are those lyrics from a Tool song? ;)
-
[quote name=“Vidicus” post=“34834” timestamp=“1384802530”]
Just my two cents, but what exactly is [b]needed[/b] at this point in software development? To me it seems like FTC works just as well as LTC or BTC when it comes to its functionality, the coins get sent and received in a timely manner and the block times have stabilized. In my eyes, the code does not require a change, instead we should be increasing adoption and market image, not adding new features we are not sure anyone actually needs.
Additionally, why is ACP bad? I know you can just say “centralization”, but in this instance what could go wrong with it? How can we prevent those failure modes from occurring?
[/quote]You raise an interesting point, Vidicus.
One argument is that currencies are competing, not acting as complimentary players. If this is true, then adoption is a direct function of utility: The more utility a product provides, the more intrinsic value it possesses. The more intrinsic value something possesses, the more it will be adopted. Therefore, to increase adoption, it’s necessary to increase utility.
Now your argument that services provide utility is a solid one, but it ignores the fact that any service is equally valid for any currency, UNLESS that currency offers a feature that no other currency offers.
This is the argument for things like the Payment Protocol, and Zerocoin: By adoption of these features, you provide utility above and beyond that of other currencies, and give users a reason to choose one currency over another.
tl;dr: Product differentiation, increased utility, and steady innovation is needed to compete in a competitive landscape where products are constantly being differentiated, utility is consistently increasing, and innovation is a steady stream of new features.
As for ACP, it defeats mining based consensus, which is actually harmful to the economy; As Warren correctly pointed out, users don’t need to subscribe to ACP if mining majorities already do. If mining majorities are the ones deciding the blockchain, you don’t need ACP. All ACP does is prevent perfectly legitimate mining majorities from reorganizing the blockchain like they SHOULD be able to. That’s why Bitcoin doesn’t have it. The argument that one mining majority is more valid than another in the eyes of the developer is antithetical to the entire trustless system and gives too much control to a single entity when the free market should be deciding these things democratically by voting with their hashpower. This in turn deteriorates utility and destroys value in the currency.
-
[quote name=“zerodrama” post=“34836” timestamp=“1384803274”]
Kevlar, I tried separating the code into coherent parts. It’s like UNIX hasn’t been invented yet, or we don’t value the lessons we learned.
[/quote]Mike Hearn did a fantastic job of this. You should check out BitcoinJ. It’s incredibly well done.
[quote]
Maybe it’s just me and ASM and JS and Lisp make more sense.
[/quote]ASM huh? You mean Assembly? Last time I wrote assembly I was programming an 8051 microcontroller to talk to an STA-013 and an FPGA acting as an IDE controller for [url=http://www.pjrc.com/tech/mp3/]this project[/url].
Yes of course JS and Lisp make more sense: They’re abstractions, and that’s what abstractions do; They hide complexity.
[quote]
Vidicus, we need developers in order to customize the interface, to notice subtle bugs, to avoid some poisoning the code with proprietary licensed crap so they can get a court to say we have to shutdown. It’s not like assembling a couch. It’s more like making cobwebs look like concrete.
[/quote]If that were to happen the solution is trivial: rip out the offending code, continue as normal. To date no open source project has ever been forced to “shutdown” against their will due to “proprietary licensed crap”, they’ve just had to go in a different direction to avoid copyright infringement.
-
Kevlar,
Wasn’t the Technical Discussion board the start for what was to be a discussion between devs on the topics and changes relevant to technical issues? It’s sort of sitting quiet right now, but I think you should totally go in and start a thread.
-
[quote name=“mnstrcck” post=“34844” timestamp=“1384805415”]
Kevlar,Wasn’t the Technical Discussion board the start for what was to be a discussion between devs on the topics and changes relevant to technical issues? It’s sort of sitting quiet right now, but I think you should totally go in and start a thread.
[/quote][quote author=Kevlar]Because I don’t have the support of the developer, nor any faith in his ability to lead, code, or manage the code base. Bushstar is a really nice guy, but as a leader of developers he’s failed to demonstrate any real redeeming qualities which inspire developers to get behind his effort and contribute their support to him.
You see, if he had, we wouldn’t be having this discussion right now, because other developers would have joined on and there would be a process in place for group development, a road map of features, an open repository to fork, and people actively working on it.
Good leaders lead by example, and so do good coders. Show me some good code, and I’ll get on board without hesitation.[/quote]
Sorry, saving Kevlar some time so we can move on to the next solution. ;)
-
[quote name=“Tuck Fheman” post=“34846” timestamp=“1384805762”]
Sorry, saving Kevlar some time so we can move on to the next solution. ;)
[/quote]That’s kind of disingenuous Tuck. Kevlar pushed for the TechDev board to be made, it was, and he hasn’t really been active on it. Using Pete’s criticisms as a means of just avoiding the question is kinda lame. I mean, Kevlar could just pick up the torch if he wanted to - he could rally the troops, no?
This situation reminds me a lot of what I deal with when I’m large group backcountry camping. Usually, there’s one person who was in a leadership role for the planning, organization and early part of the trip - and when issues arise out in the field, they might not be doing what’s the best for the group for whatever reason. Well, we’re 3 days out from other humans and making shitty mistakes can result in dire consequences. It’s at that point that someone else usually steps up and rallies the morale, makes a few calls, and gets the ball rolling.
Maybe that’s what we need?
-
[quote name=“mnstrcck” post=“34849” timestamp=“1384806490”]
[quote author=Tuck Fheman link=topic=4440.msg34846#msg34846 date=1384805762]
Sorry, saving Kevlar some time so we can move on to the next solution. ;)
[/quote]That’s kind of disingenuous Tuck. Kevlar pushed for the TechDev board to be made, it was, and he hasn’t really been active on it. Using Pete’s criticisms as a means of just avoiding the question is kinda lame. I mean, Kevlar could just pick up the torch if he wanted to - he could rally the troops, no?
This situation reminds me a lot of what I deal with when I’m large group backcountry camping. Usually, there’s one person who was in a leadership role for the planning, organization and early part of the trip - and when issues arise out in the field, they might not be doing what’s the best for the group for whatever reason. Well, we’re 3 days out from other humans and making shitty mistakes can result in dire consequences. It’s at that point that someone else usually steps up and rallies the morale, makes a few calls, and gets the ball rolling.
Maybe that’s what we need?
[/quote]What can I do to help? Do we need to get people more active around the Tech Development board? It seems we have had many suggestions for feature implementation such as a messaging system and I believe Zero Coin could still be worked with as they have a library. We will also have HD Wallets with the rollout of 0.8.5
I think what’s happening here is that there are lot of people who really care about Feathercoin and that is demonstrated in this thread. They want to see it succeed but are not sure exactly what they can do to help.
As regards Kevlar’s point about showing a good face and talking not doing I was not aware that I was not [i]doing enough[/i], it certainly hasn’t felt like that to me when dealing with Bittylicious, organising the conference to raise awareness, working with UKMark and his new venture to be released soon but then again I may be wrong. If I am I do expect to be told and put in my place because I do not wish to come across as all talk and no action or lazy because as I say that is not how I experience it from my point of view. Others may disagree.
-
[quote name=“mnstrcck” post=“34849” timestamp=“1384806490”]
[quote author=Tuck Fheman link=topic=4440.msg34846#msg34846 date=1384805762]
Sorry, saving Kevlar some time so we can move on to the next solution. ;)
[/quote]That’s kind of disingenuous Tuck. Kevlar pushed for the TechDev board to be made, it was, and he hasn’t really been active on it. Using Pete’s criticisms as a means of just avoiding the question is kinda lame. I mean, Kevlar could just pick up the torch if he wanted to - he could rally the troops, no?
This situation reminds me a lot of what I deal with when I’m large group backcountry camping. Usually, there’s one person who was in a leadership role for the planning, organization and early part of the trip - and when issues arise out in the field, they might not be doing what’s the best for the group for whatever reason. Well, we’re 3 days out from other humans and making shitty mistakes can result in dire consequences. It’s at that point that someone else usually steps up and rallies the morale, makes a few calls, and gets the ball rolling.
Maybe that’s what we need?
[/quote]I’ve been as active on it as anyone else. The discussions generally don’t go anywhere useful, and they certainly haven’t resulted in code getting written, so I stopped trying.
Could I ghost write for Pete and watch him take all the credit? Sure. Sunny King did, but he was paid for his time and effort.
Let’s say I did. What would I do? There’s no roadmap for development, no direction from the community as to what features are of greatest demand, no other developers who are itching to contribute, no glaringly obvious bugs to fix, no innovative new features never seen before, and no reward for having done so.
I suppose that’s what I would do, huh? Set forth a roadmap for development, solicit direction from the community, support other developers who want to contribute, fix bugs, and implement innovative new features.
So why don’t I? I -=really=- don’t want to.
I agree that it’s going to take a developer to rally the developers. I don’t want that position, I don’t want to cheerlead, I don’t want the responsibility, I don’t want the title, I don’t want the attention, I don’t want to be a community leader, I don’t want to write C++, I don’t want to innovate for someone else’s solution, and I don’t want to ghost write for someone else. I’m VERY happy with my position as onlooker and commentator, and I have no delusions that I would somehow do a better job with troop morale when my own morale is reaching new lows and I’m being very successful with my own projects.
I’ve been devoting my free time to other crypto-currencies who do have a solid development process in place, and my own coding projects. The recent Zerocoin enhancements were a lot of work and it’s taken this long to get it there. It’s very rewarding and I’m enjoying the process immensely. My own projects have been showing some fantastic ROI as well the past week.
I sold all my alt-currencies earlier in the year and I’m holding BTC like it’s headed to the moon, and so far that’s been working FANTASTIC… so well I may quit my job soon and just write code for myself full time. ChrisJ and I have been discussing services and I’ll be spending a lot more time on those soon because they have the potential to turn into a game changer too, but the reward on those projects is easy to quantify. I think I’ll stick with what’s working, thank you.
-
JS and Lisp don’t hide complexity.
They hide a fragile world. The problem with the bitcoin code has to do with the complete lack of organization.
In any case, I have things I want to do and I see a lot of unused talent here, so I’ll take you up on that Promethean challenge Kevlar.
-
I think the reasons these conversations dont go anywhere and the reason that there are no major bugs to fix is that its working. Seems pointless trying to fix what isnt broken.
Zerocoin does sound interesting but ive not heard alot of people asking for it on here?
I would like to have a conversation about at what point or what would make it a reasonable time to rethink ACP and would be interested to hear everyones views although I would be hesitant to do it too early and go back to the situation we were in with the 51% attacks.
I think you are right that other things deserve attention and I think thats why bushstar has been focusing on the market. I think that will end up being really worthwhile.
-
Now this is interesting from Warren:
[quote]Now that FTC is much discredited and near delisting, I suppose there is no harm in telling more of this story. Hopefully this will help others to avoid losing money to scams in the future.
The Litecoin devs agreed months ago that although we are capable of destroying their network due to their not fixing any security issues in their client, we were not willing to do anything that could be construed as illegal. I’m surprised that nobody else has done so as some of the possible attacks were known to the public and were previously used against the Bitcoin and Litecoin networks. For example, active attacks were the reason for the Bitcoin 0.8.3 emergency security release.
So with dev’s unwillingness to attack, some of the large Litecoin investors and pools came up with a plan to use entirely legal means to destroy FTC’s economy. Roughly 45% of the LTC hashrate under the control of several pool ops were willing to turn their hash power against the FTC network to strip mine and dump on the exchanges at a loss, subsidized by the large LTC investors. We devs were amused by this plan but we were pleased to leave it to the pools to work on. The reference client devs do not work on pool software, and client devs have lots of other higher priorities.
Some of the pools were testing the tech to do this. Then out of nowhere someone else entirely began a series of massive reorg attacks against the FTC network. The hashrate to do it wasn’t coming from the existing LTC pools, so our best guess is it came from GPU farms switching from Bitcoin hoping to manipulate the markets for trading profit. The reorg attacks, and especially the BIG time-travelling attack with the 72 block reorg, made a complete mess of FTC. The pools were then afraid to go forward with the economy draining strip mining plan because the cost would be too high if their blocks were orphaned in another reorg attack.
In the end, it turns out that FTC did a good job of killing itself and didn’t need Litecoin’s help.
The marketing shills, shiny videos and promises of “innovation” were unfortunately effective at attracting suckers to buy their meritless product that they were incapable of defending. It was surprising to me the extent of which they lacked engineering competence, we thought they would copy 0.8.x months ago. In any case, even if they were competent, there is simply no way to defend a copy when you are always a tiny % of the global hashrate capable of being used against your network. This is proven by the repeated, spectacular failures of Terracoin. Their centralized broadcast checkpoints was a final an act of desperation, an act of capitulation and the beginning of the slow death spiral.
I give Feathercoin this offer. Want a working Feathercoin 0.8.5.1 client with all of your innovations integrated and working? I’ll do it for a one-time payment of 100 BTC. You seem to hire help whenever you can’t figure out simple coding issues, so why not hire now? =)[/quote]
-
[quote name=“zerodrama” post=“34862” timestamp=“1384811065”]
JS and Lisp don’t hide complexity.They hide a fragile world. The problem with the bitcoin code has to do with the complete lack of organization.
In any case, I have things I want to do and I see a lot of unused talent here, so I’ll take you up on that Promethean challenge Kevlar.
[/quote]Of course they hide complexity! That’s the entire point of a programming language: To allow the user to express their wishes in a natural form that gets transformed into it’s more verbose form which can be executed by a computer. There is no memory management in Javascript because that complexity is hidden. Tail recursion is trivial in Lisp because the complexity that’s required to enact it is hidden. You can’t even do DMA operations in either language because that complexity is hidden, let alone talk to the hardware directly. Under the covers, the compiler and/or the VM translate that simplistic expression into a very complex set of instructions that are encoded in a very complex and human-unfriendly format called “machine code”. You get to write in a very simple non-complex language, but ultimately it gets transformed into a very complex language. That’s called hiding complexity.
Computers are not fragile. They used to be, but they’re not any more. It used to be that a badly written piece of code could very trivially end your computing session, but now-a-days you REALLY have to go out of your way to make one process impact another’s execution. Modern operating systems have hidden so much complexity that most of today’s developers don’t even know what an interrupt even is any more, or how to trap one, or what the stack is, let alone how to smash it for fun and profit by overwriting your return address.
These days the worst you can expect in terms of fragileness when you execute bad code is that your process dies, and anything more than that requires a whole lot of work. That’s not fragile, that’s incredibly robust.
The Bitcoin code base doesn’t suffer from a complete lack of organization at all. The main code consists of less than 100 files, all of which are appropriately named, all of which follow good C++ coding conventions of exposing their headers in a .h file and providing implementations in a .cpp file. The objects themselves are broken up by responsibility and each one has several if not many appropriately named methods which are made appropriately visible and have appropriate parameter signatures that include const correctness and passing by reference of appropriately named objects. You can literally read the headers and get a very through understanding of what a method is expected to do. I picked a line at random to demonstrate:
[quote]
bool CWallet::ChangeWalletPassphrase(const SecureString& strOldWalletPassphrase, const SecureString& strNewWalletPassphrase)
[/quote]Now without even inspecting the implementation, I can tell you that this is a method on the Object CWallet which is designed to change the wallet’s passphrase. It accepts a reference to a const SecureString for the old wallet passphrase, and a const reference to a SecureString for the new wallet passphrase, and returns a boolean, presumably true if the operation is successful, otherwise false.
All of the code looks like this. There’s not a single place that I’ve seen where the code literally shits the bed and devolves into madness, and I’ve seen a LOT of code bases that do so I know one when I see one. If there’s some place where you think organization could be refactored, please point it out because I’d love to see it improved, but I’ve not actually witnessed this disorganization you refer to.
-
[quote name=“Kevlar” post=“34859” timestamp=“1384809396”]
I’ve been devoting my free time to other crypto-currencies who do have a solid development process in place, and my own coding projects. [b]The recent Zerocoin enhancements were a lot of work and it’s taken this long to get it there.[/b]
[/quote]What coin is this?