Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: jgarzik on August 13, 2010, 11:48:26 PM



Title: Network protocol overview doc
Post by: jgarzik on August 13, 2010, 11:48:26 PM

I needed this for some work I was doing, so I figured I would make it public:

http://yyz.us/bitcoin/network.html (http://yyz.us/bitcoin/network.html)

This doc lists each type of network message, gives it a rough description, and lists typical inputs and outputs.  Very rough, but better than the other docs out there ('version' message is highly documented! :)).


Title: Re: Network protocol overview doc
Post by: mizerydearia on August 14, 2010, 06:01:38 AM
http://www.bitcoin.org/wiki/doku.php?id=bitcoin_network_protocol


Title: Re: Network protocol overview doc
Post by: jgarzik on August 14, 2010, 07:30:45 AM

Please do not copy my works without permission.



Title: Re: Network protocol overview doc
Post by: lachesis on August 14, 2010, 05:42:32 PM
Size of vectors and strings is stored using a compact size format:
Code:
//
// Compact size
//  size <  253        -- 1 byte
//  size <= USHRT_MAX  -- 3 bytes  (253 + 2 bytes)
//  size <= UINT_MAX   -- 5 bytes  (254 + 4 bytes)
//  size >  UINT_MAX   -- 9 bytes  (255 + 8 bytes)
//
The size field proceeds the vector or string of which it is specifying the length.

Check out http://code.google.com/p/pybitcoin/wiki/BitcoinProtocol. We haven't gotten as far as you have, but we are making some progress on decoding the protocol.


Title: Re: Network protocol overview doc
Post by: RHorning on August 14, 2010, 10:07:20 PM

Please do not copy my works without permission.



Out of curiosity..... who actually owns the copyright here?  This appears to be a derivative document based upon the source code of the main client software, which would seem to me that you would be required to at least maintain the same sort of license for that same derivative work.

Then again, since this is a BSD-type license that doesn't really clear up these kind of derivative copyright issues.  Still, rather than claiming an "all rights reserved" view for an open source project and claiming that copyright to yourself, it could be useful to define those terms.  I appreciate the list of messages here, but "your works" is not nearly as clearly defined as might been seen here.

Certainly it would be useful to at least acknowledge the hand of Satoshi Nakamoto as a co-author if you are going to be asserting copyright.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 14, 2010, 10:27:40 PM

Specifications have separate copyrights from actual implementation, which is how many clones and compatible implementations of closed source systems have been created over the years, precisely because they are not derivative works.

But, even ignoring my copyright, is this community really endorsing the word-for-word taking of someone else's hard work, without attribution or permission?



Title: Re: Network protocol overview doc
Post by: gridecon on August 14, 2010, 10:54:38 PM
Well, if this actually went to a USA court of law, it would be an interesting case. The following link presents the issues clearly:

http://www.pddoc.com/copyright/compilation.htm

Since I'm not a lawyer, I'm not sure if this compilation of facts would qualify for copyright protection or not.

Given that Bitcoin is an open source project distributed under a highly permissive license, I think people probably presumed that you were making this document available with licensing of equal permissiveness. Certainly as a legal matter you cannot "presume" such licensing at all, but as mentioned above there is a decent case this is not actually a copyrightable work in the first place.

My perception is that copying the information to the wiki was a good faith act done by someone who made the incorrect assumption that you would regard that action as helpful, desirable, and something you would certainly volunteer permission for if asked. I'd also agree as a matter of etiquette, separate from law, that asking if you wanted the material to be copied would have been a good thing to do, but I also find your response surprising. It seems clear your motivation in releasing this document was to be "helpful" to the bitcoin software project and other contributors, and that having this information on the wiki is helpful.

All that said, are you willing to license this document under the MIT license or place it in the public domain, assuming that in fact it IS a copyrightable work?


Title: Re: Network protocol overview doc
Post by: fresno on August 14, 2010, 11:06:34 PM
Anyone claiming copyright of community projects, publishing on this community's board should be hooted outta town.

 


Title: Re: Network protocol overview doc
Post by: bitcoinia on August 15, 2010, 12:27:00 AM

is mizery a thief?  yes.

does the doc suck ass?  yes.

is this a mountain out of a molehill?  yes.



Title: Re: Network protocol overview doc
Post by: RHorning on August 15, 2010, 01:03:02 AM

Specifications have separate copyrights from actual implementation, which is how many clones and compatible implementations of closed source systems have been created over the years, precisely because they are not derivative works.

But, even ignoring my copyright, is this community really endorsing the word-for-word taking of someone else's hard work, without attribution or permission?



Specification may have copyrights separate from actual implementation, but in this case it is asserting copyright over something that is presumed to be community property in the first place.

Rather than fighting against each other and seeing who can write competing specification documents, we really need to come together and work together on these things.  Know this that you, jgarzik, are not the only person trying to decypher and/or document the protocol.  I'm trying to go through the source code myself and make heads or tails out of it, and hopefully contribute more myself in that regard.

If you are insisting on a complete claim to copyright in this case, it is going to put a fly in the ointment in terms of cooperative efforts to do much of anything with this protocol, and it is certainly going to make very murky any other potential effort to document this protocol from anybody else.  The point being, by claiming copyright at this point and posting in this forums, any future documentation efforts are going to be presumed to have read this post and therefore subject to this copyright.

I'd hate to have this get to a court room, but I certainly don't want to see it get there.  Perhaps I can document that I have derived all of this information from the source code or from independent research.  Too bad it has to be "guilty" until proven innocent in that sort of situation.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 15, 2010, 01:53:14 AM

This is standard copyright stuff, as practiced in major open source projects.  Stop by Debian-legal or Fedora-legal for a while.

But copyright is a sideshow.  I put my time and effort into this, and it certainly discourages further work when people have so little care for the work of others.



Title: Re: Network protocol overview doc
Post by: gridecon on August 15, 2010, 02:12:53 AM

This is standard copyright stuff, as practiced in major open source projects.  Stop by Debian-legal or Fedora-legal for a while.

But copyright is a sideshow.  I put my time and effort into this, and it certainly discourages further work when people have so little care for the work of others.


Well, speak for yourself. I'm discouraged by your hostile reaction to something that was obviously INTENDED to be helpful rather than harmful. You ignored my earlier post which I thought was fairly substantive so I guess I won't bother to write much more. Thank you for producing this reference document. I will repeat one question from my earlier post: are you willing to contribute this documentation under a license such that it can actually be used by the bitcoin project?


Title: Re: Network protocol overview doc
Post by: jgarzik on August 15, 2010, 02:18:37 AM
Quote
I'm discouraged by your hostile reaction to something that was obviously INTENDED to be helpful rather than harmful.

How is taking credit for my work intended to be helpful?

Quote
are you willing to contribute this documentation under a license such that it can actually be used by the bitcoin project?

It is highly demotivating to bother with it when others repost my work under their own names.


Title: Re: Network protocol overview doc
Post by: gridecon on August 15, 2010, 02:26:40 AM
Quote
I'm discouraged by your hostile reaction to something that was obviously INTENDED to be helpful rather than harmful.

How is taking credit for my work intended to be helpful?

Quote
are you willing to contribute this documentation under a license such that it can actually be used by the bitcoin project?

It is highly demotivating to bother with it when others repost my work under their own names.


Did I miss something? You say "taking credit for my work" and "repost my work under their own names" - was there more copying and/or copying with misattribution than copying the material to the bitcoin wiki as linked in the second post? Given that the link was posted right here in the thread as a response and seems to be a simple exact duplication, I do not understand this characterization.


Title: Re: Network protocol overview doc
Post by: NewLibertyStandard on August 15, 2010, 02:58:36 AM
It is highly demotivating to bother with it when others repost my work under their own names.
Are you suggesting that he was trying to take credit for authoring the document? ::)

Would you PRETTY PLEASE post the document on the wiki with proper attribution and a copyright claim for clarification to us less familiar with "This is standard copyright stuff, as practiced in major open source projects."? ::) Please also add a written copyright to the original document. Seriously.

If it's still on the wiki, would you like it removed? I'll be happy to do it myself.

Edit: It's really your own fault for not accurately gauging the copyright expertise of the Bitcoin forum community. It should have been transparently clear that such a mistake would likely be made and it's your own damn fault for not adding a written copyright when you're the expert. It's equally your fault and ours that you're getting pissy replies to your idiotic mistake and subsequent replies. If you don't understand, then you're no doubt and aspie and we forgive you for the mistake.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 15, 2010, 03:23:01 AM

http://www.copyright.gov/help/faq/faq-general.html#mywork (http://www.copyright.gov/help/faq/faq-general.html#mywork)

When is my work protected?
Your work is under copyright protection the moment it is created and fixed in a tangible form that it is perceptible either directly or with the aid of a machine or device.


This applies to all Berne Convention countries, not just the US.

I guess it's my own damn fault for assuming that others would follow international legal norms as basic as "the author owns his work."


Title: Re: Network protocol overview doc
Post by: gridecon on August 15, 2010, 03:59:12 AM
The following is copy and pasted (a fair use in this case, I believe) from the link above. It is in reference to USA law:


What is Required for a Compilation to be Eligible for Copyright?

The law identifies three distinct elements, all of which must be met for a work to qualify as a copyrightable compilation:

   1. the collection and assembly of pre-existing material, facts, or  data;
   2. the selection, coordination, or arrangement of those materials; and
   3. the creation, by virtue of the particular selection, coordination, or arrangement of an original work of authorship.

Collection and assembling facts and information isn't enough. Compilations, just as any other work, may only be copyrighted if the originality requirement, “an original work of authorship,” is met.


I think its arguable if the document in the form it was copied to the wiki has sufficient originality to be considered an copyrightable work in the united states. It might be a court would view it as simply a "phone book" style collection of information which was not copyrightable. Given that the content of this document is clearly entirely derived from the code and behavior of Bitcoin in the first place, I hope an agreement is found where this information can legally be incorporated into the Bitcoin documentation because it is obviously useful to the community. Thank you again for taking the time to prepare it and share it - under whatever terms you decide are appropriate.


Title: Re: Network protocol overview doc
Post by: NewLibertyStandard on August 15, 2010, 05:21:40 AM
I guess it's my own damn fault for assuming
Yep.


Title: Re: Network protocol overview doc
Post by: mizerydearia on August 15, 2010, 06:43:08 AM
is mizery a thief?  yes.

*backstabs bitcoinia*

How is taking credit for my work intended to be helpful?

I apologize, jgarzik, if it appeared I had attempted or otherwise accomplished that of taking credit for your work.  That wasn't my intention.  I will add reference to your initial post as credit in the wiki post, if it hasn't been done so already.

Done!

Upon seeing this thread, I established the idea that the information was valuable and since it was incomplete and made public, that others may use the information as a basis for their own efforts towards contributing to the document privately or publicly.  In doing so, others using your document and adding to it privately or publically, it would seem fair that such updates or additions should be contributed back to the community so that others can benefit from them as well.

What I had done at my own efforts was translate the html document into a dokuwiki format and republished it in a location that allows further edits by the community.  I apologize that I hadn't immediately provided credit at the wiki page.  This was a step I didn't contemplate.  I have since provided credit for you, jgarzik, at the top of the wiki.


Title: Re: Network protocol overview doc
Post by: RHorning on August 15, 2010, 07:16:52 AM
If there are people helping with documentation, and they would like to have credit for that work, I don't have a problem with it.  Giving credit and citing sources seems to be reasonable.

What I don't appreciate is insisting upon copyright control and in essence "taking over" this project by essentially claiming copyright authority on what is very likely going to be a foundational document for this project.  In essence, this is claiming full control over all of Bitcoins.  I'm not going to sit still for something like that.

I've seen that done elsewhere, and I've even had lawsuits filed against me for supposedly work done that was "foundational" to the project I was working on at the time.

Again, I don't mind the work and the contribution here, and I certainly think the assistance to help out the project is useful.  Just don't get your panties in a knot over this issue, and realize that we are all trying to work together to help each other out.  That is the point of open source software, not trying to assert ownership and screw each other over.

Open source development is all about a gift culture.  It is one where your status and stature is dependent upon how much you give to the community and not how much you take from it.  There are many people who have been participating here who get that concept, where they are giving of themselves, their time, and even a fairly substantial amount of money to help this project along.  As long as we get along and put this behind ourselves, even more sharing and gifts can come to everybody involved.  We certainly don't need to be selfish here.

Please don't take that which has been freely given to you and then suck the life out of it.


Title: Re: Network protocol overview doc
Post by: FreeMoney on August 15, 2010, 07:23:25 AM
This thread is depressing. I am a newb. Why isn't this info created at the same time as the program? Why can't Satoshi just rattle it off?


Title: Re: Network protocol overview doc
Post by: imnichol on August 15, 2010, 03:03:01 PM
This thread is depressing. I am a newb. Why isn't this info created at the same time as the program? Why can't Satoshi just rattle it off?
I'd be surprised if he couldn't, or if he didn't have his own documentation somewhere in a notebook that he's using for an ashtray.;)(I have no idea if Satoshi smokes and presume that he doesn't)
Personally, when working on an open source project, I find it hard to believe that any documents relating to the protocol could cause any sort of dispute over their authorship, especially when we have such fine resources as Creative Commons. (http://creativecommons.org/)  I don't think anyone would have any problems with that.


Title: Re: Network protocol overview doc
Post by: lachesis on August 15, 2010, 05:32:00 PM
Jgarzik's been doing a lot of good with his patches. I for one have incorporated his GetBlock and ListTransactions patches into my unofficial builds.

That said, I guess we do need to clarify the legal status of everything he's made now. Jgarzik, could you please publish a license or at least go on record with your feelings about copying and/or modifying your works? Do you require attribution?

If you don't, a lot of people (myself include) will naively (and possibly incorrectly) assume that you intend all of your code and documentation to be released under a permissive (MIT or BSD-style) license.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 15, 2010, 05:51:14 PM
Jgarzik's been doing a lot of good with his patches. I for one have incorporated his GetBlock and ListTransactions patches into my unofficial builds.

That said, I guess we do need to clarify the legal status of everything he's made now. Jgarzik, could you please publish a license or at least go on record with your feelings about copying and/or modifying your works? Do you require attribution?

If you don't, a lot of people (myself include) will naively (and possibly incorrectly) assume that you intend all of your code and documentation to be released under a permissive (MIT or BSD-style) license.

All of the code I've released is under the same license as bitcoin itself.  Copy away, it's open source :)

I'm undecided about the documentation, but RHorning is way out there:  it's ridiculous to think anyone will "take over" the protocol by writing a document and keeping it on their own website.

As long as Satoshi distributes the code, he "owns" the network protocol, and I hope it stays that way!


Title: Re: Network protocol overview doc
Post by: lachesis on August 15, 2010, 06:20:47 PM
Jgarzik's been doing a lot of good with his patches. I for one have incorporated his GetBlock and ListTransactions patches into my unofficial builds.

That said, I guess we do need to clarify the legal status of everything he's made now. Jgarzik, could you please publish a license or at least go on record with your feelings about copying and/or modifying your works? Do you require attribution?

If you don't, a lot of people (myself include) will naively (and possibly incorrectly) assume that you intend all of your code and documentation to be released under a permissive (MIT or BSD-style) license.

All of the code I've released is under the same license as bitcoin itself.  Copy away, it's open source :)

I'm undecided about the documentation, but RHorning is way out there:  it's ridiculous to think anyone will "take over" the protocol by writing a document and keeping it on their own website.

As long as Satoshi distributes the code, he "owns" the network protocol, and I hope it stays that way!
Thanks for the code.

I think documentation should be released under some permissive open-source style license. That way others can correct potential mistakes, add info that you left off, etc etc and publish it back under the same license. Essentially, we should apply the FOSS philosophy to documentation.

That said, I agree that you have the right to prevent people from copying your works exactly if you so choose. You really can't stop them from using it to produce a derivative work, though - after all, how would you know they didn't just read the code themselves?


Title: Re: Network protocol overview doc
Post by: imnichol on August 15, 2010, 06:48:52 PM
I think documentation should be released under some permissive open-source style license. That way others can correct potential mistakes, add info that you left off, etc etc and publish it back under the same license. Essentially, we should apply the FOSS philosophy to documentation.

Sound exactly like creative commons.

Sorry, ignore that, it sounds far more confrontational than I intended it.


Title: Re: Network protocol overview doc
Post by: RHorning on August 16, 2010, 07:37:13 AM
All of the code I've released is under the same license as bitcoin itself.  Copy away, it's open source :)

I'm undecided about the documentation, but RHorning is way out there:  it's ridiculous to think anyone will "take over" the protocol by writing a document and keeping it on their own website.

As long as Satoshi distributes the code, he "owns" the network protocol, and I hope it stays that way!

I'm just trying to point out one of the problems of a BSD-type license vs. something more substantial like the GPL or Creative Commons suite of licenses, that keep this sort of thing from happening.  I was merely trying to point out that such an effort to claim an "all rights reserved" copyright authority could turn into a tar pit legally if somebody wanted to be a real jerk.  They might not succeed in the long run and they would certainly get the community ticked off at them in a major way if they tried, but it could be a major mess.

I've seen copyright tricks done with GPL source code that would boggle your mind and other legal tricks that I would have thought to be absurd even with "open source" content.

I'm glad that you've decided to release this under the "same license as bitcoin itself".... which BTW doesn't require "permission" to copy or to reuse in any other manner.  I'll ignore the problems of the "advertising clause" for the moment, which has a long history of discussion within the open source/free software copyright community itself that isn't worth getting into on this thread.  Citation of the source of the information is something ethical and should be encouraged anyway.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 16, 2010, 07:48:24 AM
I'm glad that you've decided to release this under the "same license as bitcoin itself"....

source code patches != documentation



Title: Re: Network protocol overview doc
Post by: NewLibertyStandard on August 16, 2010, 08:40:00 AM
I'm glad that you've decided to release this under the "same license as bitcoin itself"....

source code patches != documentation
What does != mean? He obviously just misread you statement. Couldn't you have simply pointed it out kindly instead of replying in crypto computer jargon? Gosh, you're so rude!

RHorning, here it is again, edited and with emphasis added... by me. Don't you worry jgarzik, I'm not trying to take credit for the formatting of your copywroten post.
Copy away, it's open source :)

I'm undecided about the documentation, but RHorning is way out there:  it's ridiculous...!


Title: Re: Network protocol overview doc
Post by: mizerydearia on August 16, 2010, 09:02:51 AM
NewLibertyStandard: It is rather obnoxious/annoying to produce troll-liek posts however strongly you feel one way or the other.  Not everyone pursues same choices and there should be acceptance of choices of others even if they conflict with or otherwise are bother you in some fashion.  Also, posting in such a way is embarrassing for some of us as it presents a kind of immature or premature path of discussion.


Title: Re: Network protocol overview doc
Post by: RHorning on August 16, 2010, 10:08:49 AM
I'm glad that you've decided to release this under the "same license as bitcoin itself"....

source code patches != documentation
What does != mean? He obviously just misread you statement. Couldn't you have simply pointed it out kindly instead of replying in crypto computer jargon? Gosh, you're so rude!

RHorning, here it is again, edited and with emphasis added... by me. Don't you worry jgarzik, I'm not trying to take credit for the formatting of your copywroten post.

Who is being the troll here?  I'm not trying to take credit for the work of others, but at the same time I am insisting that documentation should also be done as a copyleft arrangement.... particularly when the source of that documentation is from a copyleft document too, namely the source code for Bitcoins in this case.

You think I'm being ridiculous here when what I'm trying to do is nail down copyright on something that I believe should be open source, and by tying it up in this fashion through a purely proprietary copyright (aka "all rights reserved") ruins good-faith efforts for the rest of us.  Had this software been released under a GPL license, it wouldn't even be a question:  a derivative documentation effort like this simply couldn't assert copyright in this fashion.

I guess what I'm asking here is if jgarzik is going to sue my ass off if I try to put together some documentation that includes any of the information that he presented with his own documentation effort by asserting an "all rights reserved" and "Please do not copy my works without permission".  I don't feel that I owe him anything other than simply giving him credit, but if he insists upon this demand for permission first, I don't know how else to proceed.  I certainly don't want to insist that anybody else using the documentation I might produce must ask jgarzik for "permission" if they want to copy the stuff I wrote.... merely because it happens to include some of this information even if I derived most of it from the source code and my own investigations too.

Since most of this is factual information and other than purely the formatting of the information, it may not even be copyrightable in the first place.  In which case demanding permission is a moot issue and unnecessary.


Title: Re: Network protocol overview doc
Post by: mizerydearia on August 16, 2010, 11:42:40 AM
Basically what seems to be uncomfirmed and is being delayed is jgarzik's written indication of licensing for the documentation.

jgarzik: Will you provide this information?  If not within your next post in this thread, I will be certain to delete the contents in the wiki post and request that an admin/mod delete the wiki page entirely so that it is a little bit more difficult for it to be used as a reference for further developments.  This should help to prevent usage of the documentation produced and publicized by you and prevent any legality that may otherwise be pursued by you or anyone else in this matter.

If necessary, perhaps the protocol can be altered slightly to accomodate for documentation of the protocol in a way that is different from that of jgarzik's documentation and thus a kind of documentation can be produced by someone else so that its it not similar to or deemed a derivative and can be established as a unique work and hopefully this is done by someone who does not pursue a similar claim of ownership causing even further discussion to take place.  I am uncertain of whether or not this is necessary, but it seems to be a kind of solution that can resolve the matter rather quickly.


Title: Re: Network protocol overview doc
Post by: imnichol on August 16, 2010, 02:01:53 PM
Basically what seems to be uncomfirmed and is being delayed is jgarzik's written indication of licensing for the documentation.

jgarzik: Will you provide this information?  If not within your next post in this thread, I will be certain to delete the contents in the wiki post and request that an admin/mod delete the wiki page entirely so that it is a little bit more difficult for it to be used as a reference for further developments.  This should help to prevent usage of the documentation produced and publicized by you and prevent any legality that may otherwise be pursued by you or anyone else in this matter.

If necessary, perhaps the protocol can be altered slightly to accomodate for documentation of the protocol in a way that is different from that of jgarzik's documentation and thus a kind of documentation can be produced by someone else so that its it not similar to or deemed a derivative and can be established as a unique work and hopefully this is done by someone who does not pursue a similar claim of ownership causing even further discussion to take place.  I am uncertain of whether or not this is necessary, but it seems to be a kind of solution that can resolve the matter rather quickly.

Just do it.  It's been a day now and despite several requests that he release the documentation under Creative Commons, he hasn't actually moved to do anything except cause more drama.  If he doesn't want to play nicely, then we just need to walk away.  Lets just find someone who's willing to do what is necessary in order to keep everything free as in beer.  We don't have to do anything to the protocol, just have someone else document it.  If the documentation comes out exactly the same, then that's proof that he doesn't have a copyright, as stated earlier in this thread.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 16, 2010, 06:11:06 PM
jgarzik: Will you provide this information?  If not within your next post in this thread, I will be certain to delete the contents in the wiki post and request that an admin/mod delete the wiki page entirely so that it is a little bit more difficult for it to be used as a reference for further developments.  This should help to prevent usage of the documentation produced and publicized by you and prevent any legality that may otherwise be pursued by you or anyone else in this matter.

It is the standard "license" afforded by the law and the Berne Convention, attached to all copyrighted works -- one must obtain permission from the author before copying.  And I have not given permission.

Mainly, I have not given permission because it is woefully incomplete, I have some plans for that doc, and it was not only illegal but disrespectful to copy it without asking first.  Still waiting for a simple acknowledgement that it was wrong, which would make me a lot more amenable to a creative commons license.

But as long as the community blatantly endorses illegal theft of copyrighted works, the motivation to cooperate is rather low.


If necessary, perhaps the protocol can be altered slightly to accomodate for documentation of the protocol in a way that is different from that of jgarzik's documentation and thus a kind of documentation can be produced by someone else so that its it not similar to or deemed a derivative and can be established as a unique work and hopefully this is done by someone who does not pursue a similar claim of ownership causing even further discussion to take place.  I am uncertain of whether or not this is necessary, but it seems to be a kind of solution that can resolve the matter rather quickly.

There is no need to alter the protocol, that's silly.  I have never claimed that my copyright covers the protocol itself (because I don't want to, and more importantly, I legally cannot).

It is the specific English description of how things work that is copyrighted, not the protocol itself.  If someone comes up with a bitcoin protocol description, without starting from my doc, that is 100% legal in all countries as far as I'm aware.

Anyone who writes their own protocol doc gets their own copyright, may assign their own open source license to the work, etc.  It is highly unlikely that a from-scratch effort would result in the same word-for-word data, the same arrangement and order of document sections, etc.



Title: Re: Network protocol overview doc
Post by: redengin on August 16, 2010, 06:12:29 PM
Anyone claiming copyright of community projects, publishing on this community's board should be hooted outta town.

seconded.  copyright is a right, not a liability.  By not specifying terms in a license jgarzic is just trolling for a reaction.  I vote his non-cooperative self-grandizing be rewarded by banning his contributions to svn and the forums.  This way he can start his own fork with a license requiring each user to pray to him before launching the client.


Title: Re: Network protocol overview doc
Post by: jgarzik on August 16, 2010, 06:23:38 PM
seconded.  copyright is a right, not a liability.  By not specifying terms in a license jgarzic is just trolling for a reaction.  I vote his non-cooperative self-grandizing be rewarded by banning his contributions to svn and the forums.  This way he can start his own fork with a license requiring each user to pray to him before launching the client.

The terms are specified by the law.  You cannot copy without permission.  A license is one way an author gives permission:  it lists rights and disclaimers the copyright owner feels is relevant.  The MIT/X11 license specifies your rights to bitcoin source, as set out by the author (satoshi).

What you appear to call trolling is what the rest of the world considers standard practice.  You cannot just copy CNN's web page, either.



Title: Re: Network protocol overview doc
Post by: nelisky on August 16, 2010, 06:38:46 PM

What you appear to call trolling is what the rest of the world considers standard practice.  You cannot just copy CNN's web page, either.

Why not?

Oh, wait:

  • © 2010 Cable News Network. Turner Broadcasting System, Inc. All Rights Reserved.
and in http://edition.cnn.com/interactive_legal.html

  • 3. Copyright Ownership.
    CNN.com contains copyrighted material, trademarks and other proprietary information, including, but not limited to, text, software, photos, video, graphics, music and sound, and the entire contents of CNN.com are copyrighted as a collective work under the United States copyright laws. CNN owns copyright in the selection, coordination, arrangement and enhancement of such content, as well as in the content original to it. You may not modify, publish, transmit, participate in the transfer or sale, create derivative works, or in any way exploit, any of the content, in whole or in part. You may download copyrighted material for your personal use only. Except as otherwise expressly permitted under copyright law, no copying, redistribution, retransmission, publication or commercial exploitation of downloaded material will be permitted without the express permission of CNN and the copyright owner. In the event of any permitted copying, redistribution or publication of copyrighted material, no changes in or deletion of author attribution, trademark legend or copyright notice shall be made. You acknowledge that you do not acquire any ownership rights by downloading copyrighted material.

But I'm sure your original document had mentions to some form of these... oh, wait...


Title: Re: Network protocol overview doc
Post by: jgarzik on August 16, 2010, 06:51:19 PM
c.f. the copyright FAQ already posted.  The default is "cannot copy without permission" even if a copyright notice or other legalese is absent.


Title: Re: Network protocol overview doc
Post by: lachesis on August 16, 2010, 07:35:31 PM
Mainly, I have not given permission because it is woefully incomplete, I have some plans for that doc, and it was not only illegal but disrespectful to copy it without asking first.  Still waiting for a simple acknowledgement that it was wrong, which would make me a lot more amenable to a creative commons license.
Some people have apologized:
I apologize, jgarzik, if it appeared I had attempted or otherwise accomplished that of taking credit for your work.  That wasn't my intention.  I will add reference to your initial post as credit in the wiki post, if it hasn't been done so already.
That said, I agree that you have the right to prevent people from copying your works exactly if you so choose. You really can't stop them from using it to produce a derivative work, though - after all, how would you know they didn't just read the code themselves?
Some people in the community (NewLibertyStandard, I'm looking at you) are continuing to insist that you have no right to copyright your works, which is clearly false. That said, I don't think mizery meant any harm in posting your information on the wiki. You didn't originally specify anything suggesting that you didn't want the document copied. When you did specify that you didn't want your document posted, it was taken down. It is common practice in this forum to copy important or interesting information to our wiki. Thus far, nobody has cared.

I vote his non-cooperative self-grandizing be rewarded by banning his contributions to svn and the forums.  This way he can start his own fork with a license requiring each user to pray to him before launching the client.
Let's not overreact: this is a single page of documentation we're talking about. I could reproduce it in a few hours, but I really don't want to if it is eventually going to get released under a permissive license. Let's not alienate one of our best community programmers over a single page of documentation.

Please guys, let's not make this a huge deal. Jgarzik, you could defuse this whole situation by releasing your document under a license that's friendly to copying and cooperation. NLS, please don't be a dick about all of this. Again guys, we're trying to build a community, not a conformity. If Jgarzik doesn't want to allow copying of his document, that's 100% his right. At least he has agreed to release all of his code, patches, etc etc with a MIT license, which is the really important part.

Jgarzik, NLS, etc: I have great respect for all of you and your contributions to Bitcoin. Please, let's not make this a us vs him thing.


Title: Re: Network protocol overview doc
Post by: imnichol on August 16, 2010, 09:03:56 PM
Quote from: lachesis
Let's not overreact: this is a single page of documentation we're talking about. I could reproduce it in a few hours
Quote from: jgarzik
Mainly, I have not given permission because it is woefully incomplete
Well, we can either wait for jgarzik to release his "woefully incomplete" documentation, or just have someone take a few hours to do it from scratch and not have to deal with the headache that this is causing.


Title: Re: Network protocol overview doc
Post by: NewLibertyStandard on August 16, 2010, 10:07:37 PM
I show respect to whomever I don't disrespect. Anyway, it was just a silly post. I am quite certain I haven't traumatized his tender sensitive soul. If he were not able to take it, then like most people, he would have adapted his outward personality long ago in such a way so as to reduce his susceptibility to receiving such feedback. The fact that he has grown to adulthood without adapting his outward personality, demonstrates that he is at very least, reasonably comfortable receiving pissy feedback from people on the Internet and very likely AFK as well. I kindly thank all of you who continuously show dignity, respect and civility to whomever (jgarzik and/or me) you feel does not deserve it. :-*


Title: Re: Network protocol overview doc
Post by: RHorning on August 17, 2010, 12:26:51 AM
Let's not overreact: this is a single page of documentation we're talking about. I could reproduce it in a few hours, but I really don't want to if it is eventually going to get released under a permissive license. Let's not alienate one of our best community programmers over a single page of documentation.

Please guys, let's not make this a huge deal. Jgarzik, you could defuse this whole situation by releasing your document under a license that's friendly to copying and cooperation. NLS, please don't be a dick about all of this. Again guys, we're trying to build a community, not a conformity. If Jgarzik doesn't want to allow copying of his document, that's 100% his right. At least he has agreed to release all of his code, patches, etc etc with a MIT license, which is the really important part.

Jgarzik, NLS, etc: I have great respect for all of you and your contributions to Bitcoin. Please, let's not make this a us vs him thing.

I agree that diffusing this situation is the best solution here, and I really don't understand the intransigence on this one issue other than to make a statement of some kind.  Yes, he has the technical "right" to insist upon copyright control here.

I have worked with too many proprietary protocol documents that I have vowed to never be tied down to another one again unless the pay is excellent and explicitly required by contract that I've agreed to ahead of time.  This is a situation that simply can't stand over time.

I would like to simply be in a position to ignore this "document" provided by Jgarzik completely, but any future documentation written by any other member of the community that may be challenged as potentially a derivative of his document as he is the first person to put this information down in this fashion.  In some ways, I'm tempted to simply say "damn the torpedoes" and copy the information in this document anyway.... challenging him to sue me for copyright infringement.  It would be a precedent setting case in the very least on a whole bunch of levels and I have no certain idea how a court would end up ruling on the issue although I'm pretty confident that I would get the support of the greater Bitcoin community for standing up to this kind of behavior.

It doesn't have to be this way, and in a way it has become a legal threat to the community as a whole.  I don't want to have to document every piece of information I have discovered or go into a "clean room" situation for writing protocol documentation.  Simply cooperating with the community is to me a better thing to do as I don't see the benefit for insisting upon a proprietary copyright.


Title: Re: Network protocol overview doc
Post by: mizerydearia on August 17, 2010, 01:15:44 AM

I think it is not so useful to produce any types of communication indicative of trying to change how things seem to be.  Instead, perhaps focusing on simply progressing on related developments in a way that doesn't interfere with this issue.  It will be more productive to put forth efforts into accomplishing that rather than communicating otherwise.  However, if like me, you feel you are not a kind of individual who is skilled or informed enough to start production of such documentation, then it makes more sense why you may decide to post or communication in such a manner.  However, it is unnecessary nonetheless.  Someone, eventually, will realize or determine they are a kind of person skilled enough to produce an alternative type of documentation and we can eventually collaboratively work on establishing it to be useful as I had intended from the beginning.  Arguing is just waste of time, energies, etc. regardless of how well spent such time makes you, personally, feel.

Anyone interested to offer a basis for a new type of documentation that we can collaboratively use?


Title: Re: Network protocol overview doc
Post by: lachesis on August 17, 2010, 06:02:50 AM
I would like to simply be in a position to ignore this "document" provided by Jgarzik completely, but any future documentation written by any other member of the community that may be challenged as potentially a derivative of his document as he is the first person to put this information down in this fashion. 
I challenge that assumption. I started documenting things like the version message before he released that. His documentation is broader than mine, but mine is more in depth. If you believe that the earliest description of the protocol in plain English somehow magically controls it, then we're safe since I came before him, and Satoshi probably has docs from 0.1.0 or before.

In some ways, I'm tempted to simply say "damn the torpedoes" and copy the information in this document anyway.... challenging him to sue me for copyright infringement.  It would be a precedent setting case in the very least on a whole bunch of levels and I have no certain idea how a court would end up ruling on the issue although I'm pretty confident that I would get the support of the greater Bitcoin community for standing up to this kind of behavior.
Honestly, I don't think Jgarzik's going to go to a court of law over a single page of docs, and even if he did, what would he accomplish? He couldn't stop Bitcoin nor could he co-opt the documentation. There are enough anarchist-type people in the Bitcoin community to be frightened of someone controlling the protocol or documentation or whatever by releasing an HTML table with a rough summary of messages as a copyright landmine of sorts. Let's not press this issue and drive away one of the few community members who is actually contributing code instead of just talking about it.


Title: Re: Network protocol overview doc
Post by: RHorning on August 17, 2010, 10:48:55 PM
However, if like me, you feel you are not a kind of individual who is skilled or informed enough to start production of such documentation, then it makes more sense why you may decide to post or communication in such a manner.  However, it is unnecessary nonetheless.  Someone, eventually, will realize or determine they are a kind of person skilled enough to produce an alternative type of documentation and we can eventually collaboratively work on establishing it to be useful as I had intended from the beginning.  Arguing is just waste of time, energies, etc. regardless of how well spent such time makes you, personally, feel.

Anyone interested to offer a basis for a new type of documentation that we can collaboratively use?

It isn't a lack of skill.  Heck, I started a documentation effort with the protocol prior to this thread (already on the wiki).  That is part of what is on my nerve at the moment, as I am seeking to document this protocol for my own efforts, and I would love to work collaboratively with others who are earnest in filling in the details.

I just want to know how far he is willing to go here in defending this supposed copyright.

I'll use a different format and it will clearly be a different document, but I'm certainly going to be using this same information as it comes from the same source.  This effort currently is at:

http://www.bitcoin.org/wiki/doku.php?id=bitcoins_draft_spec_0_0_1 (http://www.bitcoin.org/wiki/doku.php?id=bitcoins_draft_spec_0_0_1)

If you want to help me in writing this document, I'd love to have your cooperation on it.  It is a wiki, and it is also available under a Creative Commons license.  I'm just trying to decide what else to put into there and what constitutes "copying" in terms of adding factual information.  It isn't lack of skill, it is a worry that somehow this document by jgarzik is going to blow out of the water this current effort of mine on a legal basis by his insistence upon a license (or lack thereof) other than the Creative Commons license on the wiki.  Content on the wiki does not require "permission" to copy.