Bitcoin Forum
December 02, 2016, 06:29:10 PM *
News: To be able to use the next phase of the beta forum software, please ensure that your email address is correct/functional.
 
   Home   Help Search Donate Login Register  
Pages: « 1 2 3 4 5 6 7 8 9 10 [11]  All
  Print  
Author Topic: cbitcoin - Bitcoin implementation in C. Currently in development.  (Read 18427 times)
jgarzik
Legendary
*
qt
Offline Offline

Activity: 1470


View Profile
October 04, 2012, 09:19:48 PM
 #201

It is generally inadvisable to come up with licenses on your own.

Smart lawyers spent years on the current licenses, including rounds of open review and comments across multiple jurisdictions in the world.

It is doubtful lone efforts will match that sufficiently to make a bulletproof license, compared to existing ones.

Typically the choice is GPL (and variants like LGPL) or BSD (and variants like MIT/X11).  Those licenses are much more likely to have established court and legal precedent.


Jeff Garzik, bitcoin core dev team and BitPay engineer; opinions are my own, not my employer.
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction. Advertise here.
1480703350
Hero Member
*
Offline Offline

Posts: 1480703350

View Profile Personal Message (Offline)

Ignore
1480703350
Reply with quote  #2

1480703350
Report to moderator
1480703350
Hero Member
*
Offline Offline

Posts: 1480703350

View Profile Personal Message (Offline)

Ignore
1480703350
Reply with quote  #2

1480703350
Report to moderator
Pieter Wuille
Legendary
*
qt
Offline Offline

Activity: 1036


View Profile WWW
October 04, 2012, 09:35:05 PM
 #202

Well what's the point of emailing RMS? His answer is always GPL...

No, it isn't.  He has a fully nuanced answer.  I will attempt to condense and summarize, but he explains it better, so it is worth the time to read it.

By the way, at the London conference, we had a discussion with RMS about Bitcoin and the license of its implementation. Afterwards in his talk, he acknowledged that a weaker license than GPL may be appropriate for things like Bitcoin, to increase the ability of adopting the system.

aka sipa, core dev team

Tips and donations: 1KwDYMJMS4xq3ZEWYfdBRwYG2fHwhZsipa
MatthewLM
Legendary
*
Offline Offline

Activity: 1092



View Profile WWW
October 05, 2012, 07:42:41 PM
 #203

Smart lawyers spent years on the current licenses, including rounds of open review and comments across multiple jurisdictions in the world.

It is doubtful lone efforts will match that sufficiently to make a bulletproof license, compared to existing ones.

Well I plan to have a lawyer look over the license before I would use it. Many people use customer software licenses which might not have as much review as the popular licenses you talk about but at least have lawyers look at them.

And the license will be a modified GPL license, only changing necessary parts to satisfy my requirements. If you look at what I've done so far I've just removed a lot of the GPL restrictions and added an additional part to the "Additional Terms" section in attempt to create compatibility with the Apache License 1.0 which is needed for OpenSSL.

Bitcoin Extra Wallet | Peercoin Android Wallet
BTC: 1D5A1q5d192j5gYuWiP3CSE5fcaaZxe6E9  PPC: PH7fVn1Xs7nkUFmdwCX2ZRYfLPCSwGxAq9
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1064


View Profile
October 05, 2012, 11:02:32 PM
 #204

Smart lawyers spent years on the current licenses, including rounds of open review and comments across multiple jurisdictions in the world.

It is doubtful lone efforts will match that sufficiently to make a bulletproof license, compared to existing ones.

Well I plan to have a lawyer look over the license before I would use it. Many people use customer software licenses which might not have as much review as the popular licenses you talk about but at least have lawyers look at them.

That's nice and all, but now if I'm going to use your software, I need to get my lawyers to look over the license. On top of that, if I write some software using your library, and distribute it to others, they need to have their lawyers look over it. With the standard licenses all our lawyers have already done this saving a tonne of effort. These days younger lawyers with a copyright law specialty might have even studied the standard open-source licenses in school. If I were a developer considering whether to use your license or not, I'd take one look at it and reject it purely out of the uncertainty.

Even the standard licenses are often misunderstood:

What about linking to the library which is what I really mean to say. That's a different story isn't it?

LGPL:

Proprietary, closed source versions of the library are NOT permitted.
Proprietary, closed source applications using cbitcoin library are permitted.

GPL:

Proprietary, closed source versions of the library are NOT permitted.
Proprietary, closed source applications using cbitcoin library are NOT permitted.

In either case, LGPL or GPL, your cbitcoin code remains free software.  Nobody is permitted to modify and distribute cbitcoin without also providing source code.


jgarzik got the gist of the LGPL right, and probably already knows about the point I'm about to make, but something a lot of people don't realize is that when you distribute LGPL using proprietary software in addition to distributing any changes to the LGPL library you must also make it possible for your end users to link your binaries to their own changed version of that library. While this is rarely an issue with dynamic libraries, let alone libraries in interpreted languages, it does mean you have to take special steps to distribute a statically linked binary. From the LGPL itself:

Quote
Code:
d) Do one of the following:

    0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding
Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the
Application with a modified version of the Linked Version to produce a modified Combined Work, in the
manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
    1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that
(a) uses at run time a copy of the Library already present on the user's computer system, and (b) will
operate properly with a modified version of the Library that is interface-compatible with the Linked Version.

FWIW I just started a new timestamping project, written in Python, and have licensed the client command line utility and core library under the LGPL (>=3). However the server daemon and library functions related to implementing that server are license under the FSF AGPL, (>=3) which requires source-code distribution not only to those you distribute the software too, but also those who you allow to access servers running that software over a network. Basically that means that there is an RPC command called "getsourceurl" and to comply with the license if you modify the source for the server you need to put that source code up somewhere publicly (github would be ideal) and in the config file set the sourcecode url to the new location. I'm also going to include some explanation in the LICENSE file making it clear that trivial changes are just that and don't trigger that requirement. Similarly that config files are not considered a part of the sourcecode.

My thinking is quite like RMS's stance on Bitcoin: I want the timestamping system itself to become widely used, even integrated into proprietary applications. However I'd like to see the timestamping servers remain absolutely open source, and indeed, the system itself is most secure and tamper-proof in an "open source" environment where everyone validates each others timestamps.

Of course, even though the AGPL is an official Free Software Foundation license it's still obscure enough that I may be making the same mistake you are.


If you still really really want to use something different from the standard FSF licenses at least consider dual licensing, or licensing + additional license exemptions. For instance if you licensed your library under the standard GPL-3, but then included an additional statement like:

Quote
As an additional permission, above and beyond the standard rights granted by the GPL3.0, you may also distribute a binary containing code from this library, provided that you allow such binary to be freely distributed.

This clause only adds additional permissions to the GPL3 license; if you do not require such permissions, you are free to ignore this clause and follow the terms in the standard GPL3 license.

This kind of thing has precedent already with the GPL linking exemption http://en.wikipedia.org/wiki/GPL_linking_exception used by some projects. Another example is in the modified GPL used by some ADA programs: http://en.wikipedia.org/wiki/GNAT_Modified_General_Public_License Finally the GPL font exemption: http://en.wikipedia.org/wiki/GPL_font_exception

At least with GPL+exemptions and GPL+other dual licensing a developer can look at the license file and immediately see that they can treat the project as GPL licensed and be "in the clear" by complying with the GPL. Lawyers don't need to be involved, and everyone already knows exactly what's required to comply.

MatthewLM
Legendary
*
Offline Offline

Activity: 1092



View Profile WWW
October 06, 2012, 12:38:49 AM
 #205

Thank you for that comment. I will likely use a dual license with the GPL.

Bitcoin Extra Wallet | Peercoin Android Wallet
BTC: 1D5A1q5d192j5gYuWiP3CSE5fcaaZxe6E9  PPC: PH7fVn1Xs7nkUFmdwCX2ZRYfLPCSwGxAq9
Peter Todd
Legendary
*
expert
Offline Offline

Activity: 1064


View Profile
October 06, 2012, 01:11:10 AM
 #206

Thank you for that comment. I will likely use a dual license with the GPL.

Sounds great!

randy-waterhouse
Jr. Member
*
Offline Offline

Activity: 41


View Profile
October 17, 2012, 10:21:04 PM
 #207

The reason I don't have a makefile is because it's not a trivial thing to compile and I'm not good with makefiles. A makefile would be nice be it's not something I want to produce right now. Anyone is highly welcome to create a makefile however. I do ask that the tree structure of the source and header files remains intact, so you'd need some sort of bash code to work through that (One thing that made me use python instead).

Still, it would be great if we could compile your library with a classic "./configure && make"

I'm not good enough a GNU programmer, but if someone here is, please help.

Meanwhile, I'll read the automake manual and I'll see what I can do.

Anyway your project really seem like an awesome step towards a GNU version of bitcoin (C language + GNU license).  Please keep up.

I already offered to do this (would take about a day) but he wants to keep the existing directory layout which would be PITA for any automake set-up ... so probably have to stick to his python hack make until he can change that.
grondilu
Legendary
*
Offline Offline

Activity: 1134


View Profile
October 17, 2012, 10:46:37 PM
 #208

I already offered to do this (would take about a day) but he wants to keep the existing directory layout which would be PITA for any automake set-up ... so probably have to stick to his python hack make until he can change that.

I'm glad to see someone will be able to do it at some point.  I confess I tried to read the autotools documentation but I found it quite tough to grasp so I kind of gave up.

If you can do it, it's great.  It's ok if you prefer to wait until he changes the directory structure.  There is no rush.
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470


Bringing Legendary Har® to you since 1952


View Profile
October 23, 2012, 02:37:25 PM
 #209

Thank you for that comment. I will likely use a dual license with the GPL.

Awesome.

Here is standard-issue gift centipede cat for you:


MatthewLM
Legendary
*
Offline Offline

Activity: 1092



View Profile WWW
October 24, 2012, 07:34:18 PM
 #210

I already offered to do this (would take about a day) but he wants to keep the existing directory layout which would be PITA for any automake set-up ... so probably have to stick to his python hack make until he can change that.

I'm glad to see someone will be able to do it at some point.  I confess I tried to read the autotools documentation but I found it quite tough to grasp so I kind of gave up.

If you can do it, it's great.  It's ok if you prefer to wait until he changes the directory structure.  There is no rush.

If it's not easily possible to make a makefile (no pun intended there) without using a flat directory structure, then please change it. I'm fine with that. Even though I like the tree structure, it can be sacrificed for more important things.

Thank you for that comment. I will likely use a dual license with the GPL.

Awesome.

Here is standard-issue gift centipede cat for you:



Thank you. When should I expect it in the post?

Bitcoin Extra Wallet | Peercoin Android Wallet
BTC: 1D5A1q5d192j5gYuWiP3CSE5fcaaZxe6E9  PPC: PH7fVn1Xs7nkUFmdwCX2ZRYfLPCSwGxAq9
ShadowOfHarbringer
Legendary
*
Offline Offline

Activity: 1470


Bringing Legendary Har® to you since 1952


View Profile
October 24, 2012, 10:02:44 PM
 #211

Thank you for that comment. I will likely use a dual license with the GPL.

Awesome.

Here is standard-issue gift centipede cat for you:



Thank you. When should I expect it in the post?

You don't expect centipede cat.
The centipede cat expects you.

MatthewLM
Legendary
*
Offline Offline

Activity: 1092



View Profile WWW
November 02, 2012, 11:21:52 PM
 #212

I'll announce quickly that cbitcoin 1.0 is now discontinued, so say hello to cbitcoin 2.0.

I'm developing a full validating node and an SPV node for cbitcoin 2.0, and cbitcoin 2.0 will have various enhancements over cbitcoin 1.0. This means cbitcoin 1.0 will never have another alpha release or reach beta. You can still obtain the alpha releases for cbitcoin 1.0 (and read the documentation) on http://cbitcoin.com.

I've updated the README with more information, including some more information for those that would like to contribute to the project. I've also placed all the source files into one directory, so that should help with the creation of a makefile.

Be warned that some files are not compilable at this moment.

Bitcoin Extra Wallet | Peercoin Android Wallet
BTC: 1D5A1q5d192j5gYuWiP3CSE5fcaaZxe6E9  PPC: PH7fVn1Xs7nkUFmdwCX2ZRYfLPCSwGxAq9
Xenland
Legendary
*
Offline Offline

Activity: 980


I'm not just any shaman, I'm a Sha256man


View Profile
November 03, 2012, 01:20:07 AM
 #213

Great stuff Grin
MatthewLM
Legendary
*
Offline Offline

Activity: 1092



View Profile WWW
November 09, 2012, 03:43:07 PM
 #214

I made an announcement for cbitcoin 2.0 here: https://bitcointalk.org/index.php?topic=123488.0

Bitcoin Extra Wallet | Peercoin Android Wallet
BTC: 1D5A1q5d192j5gYuWiP3CSE5fcaaZxe6E9  PPC: PH7fVn1Xs7nkUFmdwCX2ZRYfLPCSwGxAq9
Pages: « 1 2 3 4 5 6 7 8 9 10 [11]  All
  Print  
 
Jump to:  

Sponsored by , a Bitcoin-accepting VPN.
Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!