BitcoinTalk

Switch to GPL

BitcoinTalk
#1
From:
omegadraconis
Subject:
Switch to GPL
Date:
A thought has occurred to me that bitcoins client is released under mit which allows for closed source clients that would give someone an advantage over everyone by modifying the client and not releasing the code. If we changed to GPL this would force anyone who created a modified client to release the source code under the terms of the GPL.

A few thoughts for discussion here:

Do you think switching to GPL would be a good idea?

If someone released a closed source client how could we enforce the GPL?

Would changing to a GPL stifle development in anyway?

Would this make it less likely for new clients to be developed?
BitcoinTalk
#2
From:
mizerydearia
Subject:
Re: Switch to GPL
Date:
I am not sure how it would affect current/existing clients, but I believe switching to gpl would possibly stifle ArtForz's estimated ~25% dominance of block generations and total Bitcoin balance.
Total Bitcoins as of now: 3914550
If ArtForz had 25% of total Bitcoins, then: 978637.5
If each Bitcoin is worth $0.06, then total value: $58,718.25

These figures are not reliable, but are an example.

Here's a better reference:

7.28.2010: <ArtForz> for my opencl sha256 code the 5770 is only 5% faster than the 4870 per core-mhz
block 70800 1280322359
Code:
# date -d "@1280322359"
Wed Jul 28 08:05:59 CDT 2010

So estimated start time of ArtForz's opencl client was at block 70,800.  Current block count is 78,292.  7,492 blocks.

7,492 * 50btc = 374,600btc.

374,600btc * 25% = 93,650btc

93,650btc * $0.06 = $5,619.

So, it is fairly safe to conclude that ArtForz has approximately ~$5,600ish value (and will most likely increase in value over time)

If they were to sell all bitcoins right now on open exchange markets, they could get a guaranteed amount of ~$2,348.
Code:
$0.0616 each for BTC757.156 ($46.6408096) at mtg.
$0.0615 each for BTC500 ($30.75) at mtg.
$0.0609 each for BTC610.6 ($37.18554) at mtg.
$0.0601367 each for BTC936 ($56.2879512) at mtg.
$0.0601366 each for BTC2049 ($123.2198934) at mtg.
$0.0601 each for BTC100 ($6.01) at mtg.
$0.06 each for BTC525 ($31.5) at mtg.
$0.0597 each for BTC25.963 ($1.5499911) at mtg.
$0.0596622 each for BTC879 ($52.4430738) at mtg.
$0.0592 each for BTC96.3 ($5.70096) at mtg.
$0.059 each for BTC20 ($1.18) at mtg.
$0.059 each for BTC1000 ($59) at bcm.
$0.0585 each for BTC200 ($11.7) at mtg.
$0.0581 each for BTC600 ($34.86) at mtg.
$0.058 each for BTC1.207 ($0.070006) at mtg.
$0.0574999 each for BTC515.4 ($29.63544846) at mtg.
$0.0574215 each for BTC2404 ($138.041286) at mtg.
$0.057 each for BTC200 ($11.4) at bcm.
$0.056 each for BTC1000 ($56) at bcm.
$0.055 each for BTC100 ($5.5) at bcm.
$0.05148 each for BTC2404 ($123.75792) at mtg.
$0.051 each for BTC500 ($25.5) at mtg.
$0.0505 each for BTC1000 ($50.5) at bcm.
$0.0501 each for BTC400 ($20.04) at bcm.
$0.05 each for BTC100 ($5) at bcm.
$0.05 each for BTC100 ($5) at bcm.
$0.05 each for BTC100 ($5) at mtg.
$0.05 each for BTC1000 ($50) at bcm.
$0.05 each for BTC1000 ($50) at bcm.
$0.05 each for BTC1000 ($50) at bcm.
$0.04825 each for BTC2404 ($115.993) at mtg.
$0.0472 each for BTC1000 ($47.2) at bcm.
$0.045 each for BTC100 ($4.5) at bcm.
$0.045 each for BTC200 ($9) at bcm.
$0.044 each for BTC200 ($8.8) at bcm.
$0.04 each for BTC500 ($20) at bcm.
$0.04 each for BTC600 ($24) at mtg.
$0.04 each for BTC1600 ($64) at bcm.
$0.04 each for BTC2000 ($80) at bcm.
$0.039 each for BTC500 ($19.5) at mtg.
$0.038 each for BTC500 ($19) at mtg.
$0.0375 each for BTC200 ($7.5) at bcm.
$0.037 each for BTC500 ($18.5) at mtg.
$0.035 each for BTC200 ($7) at bcm.
$0.035 each for BTC500 ($17.5) at mtg.
$0.035 each for BTC3000 ($105) at bcm.
$0.034 each for BTC259.118 ($8.810012) at mtg.
$0.033 each for BTC500 ($16.5) at mtg.
$0.033 each for BTC1000 ($33) at bcm.
$0.032 each for BTC500.001 ($16.000032) at mtg.
$0.0301 each for BTC300 ($9.03) at bcm.
$0.03 each for BTC21 ($0.63) at mtg.
$0.03 each for BTC100 ($3) at bcm.
$0.03 each for BTC100 ($3) at bcm.
$0.03 each for BTC500 ($15) at bcm.
$0.03 each for BTC1000 ($30) at bcm.
$0.022 each for BTC1000 ($22) at bcm.
$0.0202 each for BTC1000 ($20.2) at bcm.
$0.02 each for BTC100 ($2) at bcm.
$0.02 each for BTC500 ($10) at bcm.
$0.02 each for BTC1000 ($20) at bcm.
$0.02 each for BTC1000 ($20) at bcm.
$0.02 each for BTC1000 ($20) at bcm.
$0.02 each for BTC1000 ($20) at bcm.
$0.015 each for BTC1000 ($15) at bcm.
$0.0121 each for BTC5000 ($60.5) at bcm.
$0.011 each for BTC5000 ($55) at bcm.
$0.01 each for BTC1000 ($10) at bcm.
$0.01 each for BTC1000 ($10) at bcm.
$0.01 each for BTC1000 ($10) at bcm.
$0.01 each for BTC1000 ($10) at bcm.
$0.01 each for BTC2000 ($20) at bcm.
$0.01 each for BTC5000 ($50) at bcm.
$0.0096 each for BTC1000 ($9.6) at bcm.
$0.007 each for BTC100 ($0.7) at bcm.
$0.006 each for BTC10000 ($60) at bcm.
$0.005 each for BTC1000 ($5) at bcm.
$0.005 each for BTC1000 ($5) at bcm.
$0.005 each for BTC5000 ($25) at bcm.
$0.005 each for BTC8542.255 ($42.711275) at bcm.
Total amount for BTC93650 is $2348.64719856
BitcoinTalk
#3
From:
mizerydearia
Subject:
Re: Switch to GPL
Date:
Perhaps it can be considered that based on the license as it is now that establishments as exemplified above could allow for individuals to dominate large percentages of total Bitcoins and nothing can stop them.  Could this could be a deterrent for the acceptance of Bitcoin and hinder its ability to succeed?  e.g. I haven't the programming/development skills to produce similar works and therefore establish equal or similar amount of block generations and therefore have a disadvantage  to others with proprietary implementations.

While it may be considered to allow for proprietary implementations to establish wider acceptance, it also may be a hinderance to establishing wider acceptance for allowing proprietary implementations.
BitcoinTalk
#4
From:
theymos
Subject:
Re: Switch to GPL
Date:
The GPL doesn't force you to release your source if you don't publish the software publicly. Even the AGPL wouldn't force you to release the source in this case, since you're not really allowing people to interface with your software.

MIT-style licensing is the only way to ensure widespread adoption. Companies won't touch GPLed software.
BitcoinTalk
#5
From:
omegadraconis
Subject:
Re: Switch to GPL
Date:
The GPL doesn't force you to release your source if you don't publish the software publicly. Even the AGPL wouldn't force you to release the source in this case, since you're not really allowing people to interface with your software.

MIT-style licensing is the only way to ensure widespread adoption. Companies won't touch GPLed software.

I did realize this is true on both accounts. I'm not by any mean saying switching to GPL is a super great idea I was just wondering what everyone thought about it. As has been pointed out it would do nothing to stop someone from making a private client which is fine. If someone spends the time to optimize a client and use it to there own gain then that fine so long as they don't control the whole generation of coins. I would compare that make your own client to capitalism, where as if we were to force everyone to release everything so the field was completely level would be loosely like communism.
BitcoinTalk
#6
From:
BioMike
Subject:
Re: Switch to GPL
Date:
I would compare that make your own client to capitalism, where as if we were to force everyone to release everything so the field was completely level would be loosely like communism.
There we have the whole "FOSS is commie" discussion again.  Wink

I think the use of which FOSS license isn't so much of a deal. I mean, there are a lot of licenses that fall under the OSI definition. And MIT is not so bad. I normally put my software under the GPL, because I like the fact that it is copyleft. But if another dev thinks an other license is better, who am I to judge (I didn't write any code for it). This is the same discussion as GPL vs. BSD (MIT being almost like the BSD license).
BitcoinTalk
#7
From:
omegadraconis
Subject:
Re: Switch to GPL
Date:
There we have the whole "FOSS is commie" discussion again.  Wink

AH but, I wasn't talking about FLOSS at all . Cheesy

I meant that by leveling the generation rate across all clients everyone has the same chance to generate a block (well that is if everyone's computer was the exact same) hence commie. Where as if someone make a client to make more khashs then everyone else it's more like capitalism.
BitcoinTalk
#8
From:
Cdecker
Subject:
Re: Switch to GPL
Date:
I still think we are talking about two different components:
  • The clients
  • The protocol
The protocol is open (not well documented but it's out there), while the clients do not have to abide to any special restriction AFAIK. Even if we were to enforce a license on the clients by adding a special clause to the protocol agreement, there would be users that modify an open source client, but then they don't sell it so that they can still keep it closed source.
In one of my projects we are using the RPL, which isn't open source in that sense, it specifies that any modifications to the project have to be shared with the original community, but still that doesn't avoid a client being kept closed source from the start.
Once the network has grown enough it'll get really hard for a single entity to ever tip over the balance like ArtForz because there are more people with the resources and they will compete for the top spot, and thus balance things out.

How about a bounty for both the best performing source enhancement and for the best performing community driven rig? Something like the Netflix 1'000'000$ bounty for code improvements?
BitcoinTalk
#9
From:
singpolyma
Subject:
Re: Switch to GPL
Date:
I'm against any switch to copyleft.  If the primary bitcoin implementation is copyleft, then at some point someone will want/need a copycentre implementation and duplicate a lot of work.  Liberal licensing is the best way to minimize duplicate work.
BitcoinTalk
#10
From:
BioMike
Subject:
Re: Switch to GPL
Date:
Liberal licensing is the best way to minimize duplicate work.

Heh... no clear view of the current software world? Wink
If you see how many different "duplicate" software packages there are, duplicate work is done a lot (for various reasons, even licenses).
I think even on this forum people are working on a second client (the python client). Having multiple clients does not have to be a bad thing.
BitcoinTalk
#11
From:
neptop
Subject:
Re: Switch to GPL
Date:
Nobody, who is sane licenses stuff that is supposed to be a major implementation of a protocol using a restrictive license as GPL. If you do this now you'd most likely cause a fork anyway, because they want to stay with this license.

When it comes to preventing people from using faster clients there isn't anything you can do. The best thing would be implement it into the main client, so you can be sure nobody dominates because of this. If someone is interested in a stable currency it is better to give it to everyone, because there can be someone who simply has more money to buy FPGAs, GPUs or whatever.

What would really hinder someone to simply ignore the license. With GPL and AGPL software you don't even violate the license, but even a custom license would not stop it.

The MIT (and some others, like BSD) are nice if you want to create standards. That's why most libraries use them and the hardcore-GNU-folks have created a LGPL, but I can't really think of anything that was first implemented using the LGPL and then became a widely used standard. Maybe there is something, maybe much more than I'd expect. I am not a big friend of the GPL, but it's not like I'd hate it. After all it's still Open Source and that's what I care most.

But I think nobody really thinks about relicensing it anyway.

What do you think about creating bounties for performance improvements. Like someone should add support for ATI stream? We could make a thread similar to the EFF donation thread. I know there is a thread about it, but it is most likely not the only possible performance improvement and of course not the only (C)PU.
BitcoinTalk
#12
From:
BioMike
Subject:
Re: Switch to GPL
Date:
Protocols are IMHO not licensable anyway.

If you do clean room reverse engineering, you could make a compatible interface to a protocol and would not have to agree with any license.
BitcoinTalk
#13
From:
Cdecker
Subject:
Re: Switch to GPL
Date:
Protocols are IMHO not licensable anyway.

If you do clean room reverse engineering, you could make a compatible interface to a protocol and would not have to agree with any license.
While I agree that reverse engineering is always a possibility, protocols can be licensed under different Intellectual Property regulations, that may or may not include licenses (see patents...)
BitcoinTalk
#14
From:
lfm
Subject:
Re: Switch to GPL
Date:
So, it is fairly safe to conclude that ArtForz has approximately ~$5,600ish value (and will most likely increase in value over time)

Unless he already sold them.
BitcoinTalk
#15
From:
hugolp
Subject:
Re: Switch to GPL
Date:
MIT-style licensing is the only way to ensure widespread adoption. Companies won't touch GPLed software.

I dont have any problem with MIT license, but there are a lot of companies that are using and developing GPL software. Saying that companies dont like GPL is not true.
BitcoinTalk
#16
From:
fellowtraveler
Subject:
Re: Switch to GPL
Date:
MIT-style licensing is the only way to ensure widespread adoption. Companies won't touch GPLed software.

I dont have any problem with MIT license, but there are a lot of companies that are using and developing GPL software. Saying that companies dont like GPL is not true.

The GPL is the same as any other commercial license.  Any company can license a GPL'd software just the same as they would license any other software: by contacting the developer and arranging for a commercial license.

The GPL just adds the EXTRA benefit that you can also use it for free, as long as your code is ALSO open source.

So any company that has a problem with GPL, must have a problem with ALL commercial licenses as well, and thus they are stuck using ONLY software under the MIT or Apache license. Presumably such a company doesn't run Mac or Windows in-house.
BitcoinTalk
#17
From:
bytemaster
Subject:
Re: Switch to GPL
Date:
Of course those anarcho-capitalits among us who do not recognize "copyright" as natural because it is an attempt to limit what someone else can do with their knowledge and information is not "scarce" as each new copy does not diminish the original owners property.  So you cannot copyright code any more than music or anything else.  Once you share an idea with someone else it is in their head and there is no taking it back nor telling them what they can do.  Copyright does not exist without the state and is ARBITRARY in its duration. 

Conclusion, copyright and licenses only matter to statists.  It is a "monopoly" that is maintained by force vs free competition.   

If you want a "competitive advantage" never release the code.   If you release the code, you have no right to use force to prevent others from using, distributing, or creating derivative works from it.

BitcoinTalk
#18
From:
Macho
Subject:
Re: Switch to GPL
Date:
For a software like this, *only* GPL license makes any sense. It's not about an ideology but rather anyone who would trust proprietary software for their financial transactions and a system like bitcoin is a fool and deserves what's coming for them (which is a lot of stolen "cash"). Using proprietary software may even result in hijacking of the whole bitcoin network if significant portion of people would use such a client. There is no way to reliably test for backdoors or other nasty stuff, any closed-source software should be essentially banished by the bitcoin community. GPL allows you to make private in-house modification as much as you like so that's not an issue at all. The only situation that causes GPL to trigger is when you *distribute* the software to other people, in which case you have to provide sources along with it which is the only way anyone should accept any software dealing with bitcoin anyway.

You have to also realize that there are no legal consequences to any "theft" as using bitcoin from neutral point of view is essentially just moving some arbitrary bits around. So the bitcoin community is expected to self-regulate, which should come in a form of an enforced transparency (by all the users rejecting anything else). Considering any other license than GPL-like is playing with fire and is not going to end well.

I did not realize current bitcoin client was released under MIT license,

This should be changed to GPL IMMEDIATELY!

GPLv3 even protects you from said software to be locked up by DRM so even when it's open-source you would not have access to it. There is no disadvantage to using GPL license really. Anyone spreading FUD about GPL is either not appropriately informed/did not consider all the issues or has an ulterior motive as far as I'm concerned. I'm not going to trust any closed-source, that's for sure ... and if significant portion of the bitcoin community is, then I'm going to sell off all my bitcoins and get out as that's a prescription for disaster, sooner or later.

As much as adoption is concerned, I'm not interested in people who feel the need to keep the source closed and hidden from its users to "adopt" anything as I would hope anyone concerned about the success and reliability of the bitcoin network wouldn't either. To complain about weak adoption in that sphere is like complaining about weak adoption by criminals to me. If someone is honest, they should feel no interest in keeping the source closed ... and every sane person would accept ONLY open-sourced software anyway. It's a win-win situation Wink
BitcoinTalk
#19
From:
BioMike
Subject:
Re: Switch to GPL
Date:
Ehh.... Macho, bitcoin IS open source. MIT license IS a open source license.
No closed source, proprietary software or DRM here.
BitcoinTalk
#20
From:
satoshi
Subject:
Re: Switch to GPL
Date:
If the only library is closed source, then there's a project to make an open source one.

If the only library is GPL, then there's a project to make a non-GPL one.

If the best library is MIT, Boost, new-BSD or public domain, then we can stop re-writing it.

I don't question that GPL is a good license for operating systems, especially since non-GPL code is allowed to interface with the OS.  For smaller projects, I think the fear of a closed-source takeover is overdone.