Bitcoin Forum
November 19, 2024, 10:30:57 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: Network protocol overview doc  (Read 15466 times)
jgarzik (OP)
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 13, 2010, 11:48:26 PM
 #1


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

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! Smiley).

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 513



View Profile
August 14, 2010, 06:01:38 AM
 #2

http://www.bitcoin.org/wiki/doku.php?id=bitcoin_network_protocol
jgarzik (OP)
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 14, 2010, 07:30:45 AM
 #3


Please do not copy my works without permission.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
lachesis
Full Member
***
Offline Offline

Activity: 210
Merit: 105


View Profile
August 14, 2010, 05:42:32 PM
 #4

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.

Bitcoin Calculator | Scallion | GPG Key | WoT Rating | 1QGacAtYA7E8V3BAiM7sgvLg7PZHk5WnYc
RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
August 14, 2010, 10:07:20 PM
 #5


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.
jgarzik (OP)
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 14, 2010, 10:27:40 PM
 #6


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?


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
gridecon
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
August 14, 2010, 10:54:38 PM
 #7

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?
fresno
Member
**
Offline Offline

Activity: 94
Merit: 10


View Profile
August 14, 2010, 11:06:34 PM
 #8

Anyone claiming copyright of community projects, publishing on this community's board should be hooted outta town.

 
bitcoinia
Newbie
*
Offline Offline

Activity: 5
Merit: 0


View Profile
August 15, 2010, 12:27:00 AM
 #9


is mizery a thief?  yes.

does the doc suck ass?  yes.

is this a mountain out of a molehill?  yes.

RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
August 15, 2010, 01:03:02 AM
 #10


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.
jgarzik (OP)
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 15, 2010, 01:53:14 AM
 #11


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.


Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
gridecon
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
August 15, 2010, 02:12:53 AM
 #12


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?
jgarzik (OP)
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 15, 2010, 02:18:37 AM
 #13

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.

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
gridecon
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
August 15, 2010, 02:26:40 AM
 #14

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.
NewLibertyStandard
Sr. Member
****
Offline Offline

Activity: 252
Merit: 268



View Profile WWW
August 15, 2010, 02:58:36 AM
Last edit: August 15, 2010, 03:09:36 AM by NewLibertyStandard
 #15

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? Roll Eyes

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."? Roll Eyes 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.

Treazant: A Fullever Rewarding Bitcoin - Backup Your Wallet TODAY to Double Your Money! - Dual Currency Donation Address: 1Dnvwj3hAGSwFPMnkJZvi3KnaqksRPa74p
jgarzik (OP)
Legendary
*
qt
Offline Offline

Activity: 1596
Merit: 1100


View Profile
August 15, 2010, 03:23:01 AM
 #16


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."

Jeff Garzik, Bloq CEO, former bitcoin core dev team; opinions are my own.
Visit bloq.com / metronome.io
Donations / tip jar: 1BrufViLKnSWtuWGkryPsKsxonV2NQ7Tcj
gridecon
Newbie
*
Offline Offline

Activity: 35
Merit: 0


View Profile
August 15, 2010, 03:59:12 AM
 #17

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.
NewLibertyStandard
Sr. Member
****
Offline Offline

Activity: 252
Merit: 268



View Profile WWW
August 15, 2010, 05:21:40 AM
 #18

I guess it's my own damn fault for assuming
Yep.

Treazant: A Fullever Rewarding Bitcoin - Backup Your Wallet TODAY to Double Your Money! - Dual Currency Donation Address: 1Dnvwj3hAGSwFPMnkJZvi3KnaqksRPa74p
mizerydearia
Hero Member
*****
Offline Offline

Activity: 574
Merit: 513



View Profile
August 15, 2010, 06:43:08 AM
Last edit: August 15, 2010, 07:19:08 AM by mizerydearia
 #19

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.
RHorning
Full Member
***
Offline Offline

Activity: 224
Merit: 141


View Profile
August 15, 2010, 07:16:52 AM
 #20

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.
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!