<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrew12</id>
	<title>Bitcoin Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://en.bitcoin.it/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrew12"/>
	<link rel="alternate" type="text/html" href="https://en.bitcoin.it/wiki/Special:Contributions/Andrew12"/>
	<updated>2026-05-06T15:34:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Talk:Protocol_documentation&amp;diff=10228</id>
		<title>Talk:Protocol documentation</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Talk:Protocol_documentation&amp;diff=10228"/>
		<updated>2011-06-09T23:28:05Z</updated>

		<summary type="html">&lt;p&gt;Andrew12: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hexdumps =&lt;br /&gt;
I&#039;m adding some hexdumps of messages and data structures and descriptions of how these are interpreted in order to help others understand these protocol and data structures.  It&#039;s a bit redundant, so any ideas as to how to remove some of the redundancy while keeping the knowledge accessible are welcome (feel free to make the changes yourself!). -- [[User:X6763|X6763]]&lt;br /&gt;
&lt;br /&gt;
= Checksum wrong? =&lt;br /&gt;
Is the checksum in the addr sample correct?  Here&#039;s what I get using OpenSSL (sorry for long lines):&lt;br /&gt;
SHA256(&amp;quot;\x01\xe2\x15\x10\x4d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x0a\x00\x00\x01\x20\x8d&amp;quot;) = &lt;br /&gt;
d6 88 65 c8 20 61 d5 e2 54 52 b5 5b 52 17 98 b1 11 50 85 96 2e 49 e8 fd da b7 f4 fb a3 9c d8 2c&lt;br /&gt;
and SHA256 of that is&lt;br /&gt;
ed 52 39 9b 56 8e d8 d5 9a 83 72 9c 11 6f 87 d0 be f2 84 e9 98 f3 47 7c 98 61 16 9a b1 2e ed 5c&lt;br /&gt;
It could easily be I&#039;m using OpenSSL incorrectly, so wanted to get confirmation -- [[User:AndyParkins|AndyParkins]]&lt;br /&gt;
 - The checksum for &amp;quot;addr&amp;quot; was not working for me neither, and I had the same results &amp;quot;ED 52 39 9B&amp;quot;, so I fixed it on the page. --[[User:Robert|Robert]]&lt;br /&gt;
&lt;br /&gt;
= What is &amp;quot;77x&amp;quot;? Header size wrong? =&lt;br /&gt;
The description for the headers command says &amp;quot;77x?&amp;quot; as the size for the block_headers[] returned.  However, the description of the block_header structure is 81 bytes (4+32+32+4+4+4+1).  What exactly is returned by the headers command? -- [[User:AndyParkins|AndyParkins]]&lt;br /&gt;
&lt;br /&gt;
= Endianess on magic numbers =&lt;br /&gt;
The given magic numbers are the wrong way around.  The magic numbers are little endian 32 bit numbers on the network, so Testnet.Magic = 0xdab5bffa and Prodnet.Magic = 0xd9b4bef9.  The two examples are the order they come in from the wire, so at the very least should be shown with spaces between the bytes.&lt;br /&gt;
[[User:AndyParkins|AndyParkins]]&lt;br /&gt;
&lt;br /&gt;
:I stumbled upon this as well and corrected the page. --[[User:Theo|Theo]] 10:13, 7 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
= Version not advertised? =&lt;br /&gt;
Doing some experiments the version seems to be sent by the client, not the server as I think the page currently says.&lt;br /&gt;
&amp;quot;When a node receives an incoming connection, it will immediately advertise its version.&amp;quot;&lt;br /&gt;
That is not true. --[[User:Bluecmd|Bluecmd]] 10:02, 5 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
:You&#039;re right, net.h says in CNode constructor: --[[User:Theo|Theo]] 10:09, 7 June 2011 (GMT)&lt;br /&gt;
        // Be shy and don&#039;t send version until we hear&lt;br /&gt;
        if (!fInbound)&lt;br /&gt;
            PushVersion();&lt;br /&gt;
&lt;br /&gt;
= Version in getblocks? =&lt;br /&gt;
Apparently the official client sends the protocol version in getblocks messages, (possibly even in getheaders). This seems to me to be just weird --[[User:Bluecmd|Bluecmd]] 14:57, 6 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
= Separate page for hexdumps? =&lt;br /&gt;
&lt;br /&gt;
Does anyone else think it may be a good idea to put the hexdumps on a separate page?  It&#039;d be nice to have this page just describe the protocol, but at the same time, be able to have examples of each of the different messages and objects.  On that node, would it also be helpful if I were to do a hexdump example of all of the different commands/structures? --[[User:Andrew12|Andrew12]] 23:26, 9 June 2011 (GMT)&lt;/div&gt;</summary>
		<author><name>Andrew12</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Talk:Protocol_documentation&amp;diff=10227</id>
		<title>Talk:Protocol documentation</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Talk:Protocol_documentation&amp;diff=10227"/>
		<updated>2011-06-09T23:26:45Z</updated>

		<summary type="html">&lt;p&gt;Andrew12: /* Separate page for hexdumps? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hexdumps =&lt;br /&gt;
I&#039;m adding some hexdumps of messages and data structures and descriptions of how these are interpreted in order to help others understand these protocol and data structures.  It&#039;s a bit redundant, so any ideas as to how to remove some of the redundancy while keeping the knowledge accessible are welcome (feel free to make the changes yourself!). -- [[User:X6763|X6763]]&lt;br /&gt;
&lt;br /&gt;
= Checksum wrong? =&lt;br /&gt;
Is the checksum in the addr sample correct?  Here&#039;s what I get using OpenSSL (sorry for long lines):&lt;br /&gt;
SHA256(&amp;quot;\x01\xe2\x15\x10\x4d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x0a\x00\x00\x01\x20\x8d&amp;quot;) = &lt;br /&gt;
d6 88 65 c8 20 61 d5 e2 54 52 b5 5b 52 17 98 b1 11 50 85 96 2e 49 e8 fd da b7 f4 fb a3 9c d8 2c&lt;br /&gt;
and SHA256 of that is&lt;br /&gt;
ed 52 39 9b 56 8e d8 d5 9a 83 72 9c 11 6f 87 d0 be f2 84 e9 98 f3 47 7c 98 61 16 9a b1 2e ed 5c&lt;br /&gt;
It could easily be I&#039;m using OpenSSL incorrectly, so wanted to get confirmation -- [[User:AndyParkins|AndyParkins]]&lt;br /&gt;
 - The checksum for &amp;quot;addr&amp;quot; was not working for me neither, and I had the same results &amp;quot;ED 52 39 9B&amp;quot;, so I fixed it on the page. --[[User:Robert|Robert]]&lt;br /&gt;
&lt;br /&gt;
= What is &amp;quot;77x&amp;quot;? Header size wrong? ==&lt;br /&gt;
The description for the headers command says &amp;quot;77x?&amp;quot; as the size for the block_headers[] returned.  However, the description of the block_header structure is 81 bytes (4+32+32+4+4+4+1).  What exactly is returned by the headers command? -- [[User:AndyParkins|AndyParkins]]&lt;br /&gt;
&lt;br /&gt;
= Endianess on magic numbers =&lt;br /&gt;
The given magic numbers are the wrong way around.  The magic numbers are little endian 32 bit numbers on the network, so Testnet.Magic = 0xdab5bffa and Prodnet.Magic = 0xd9b4bef9.  The two examples are the order they come in from the wire, so at the very least should be shown with spaces between the bytes.&lt;br /&gt;
[[User:AndyParkins|AndyParkins]]&lt;br /&gt;
&lt;br /&gt;
:I stumbled upon this as well and corrected the page. --[[User:Theo|Theo]] 10:13, 7 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
= Version not advertised? =&lt;br /&gt;
Doing some experiments the version seems to be sent by the client, not the server as I think the page currently says.&lt;br /&gt;
&amp;quot;When a node receives an incoming connection, it will immediately advertise its version.&amp;quot;&lt;br /&gt;
That is not true. --[[User:Bluecmd|Bluecmd]] 10:02, 5 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
:You&#039;re right, net.h says in CNode constructor: --[[User:Theo|Theo]] 10:09, 7 June 2011 (GMT)&lt;br /&gt;
        // Be shy and don&#039;t send version until we hear&lt;br /&gt;
        if (!fInbound)&lt;br /&gt;
            PushVersion();&lt;br /&gt;
&lt;br /&gt;
= Version in getblocks? =&lt;br /&gt;
Apparently the official client sends the protocol version in getblocks messages, (possibly even in getheaders). This seems to me to be just weird --[[User:Bluecmd|Bluecmd]] 14:57, 6 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Separate page for hexdumps? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone else think it may be a good idea to put the hexdumps on a separate page?  It&#039;d be nice to have this page just describe the protocol, but at the same time, be able to have examples of each of the different messages and objects.  On that node, would it also be helpful if I were to do a hexdump example of all of the different commands/structures? --[[User:Andrew12|Andrew12]] 23:26, 9 June 2011 (GMT)&lt;/div&gt;</summary>
		<author><name>Andrew12</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Talk:Protocol_documentation&amp;diff=10226</id>
		<title>Talk:Protocol documentation</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Talk:Protocol_documentation&amp;diff=10226"/>
		<updated>2011-06-09T23:26:23Z</updated>

		<summary type="html">&lt;p&gt;Andrew12: /* Separate page for hexdumps? */ new section&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Hexdumps =&lt;br /&gt;
I&#039;m adding some hexdumps of messages and data structures and descriptions of how these are interpreted in order to help others understand these protocol and data structures.  It&#039;s a bit redundant, so any ideas as to how to remove some of the redundancy while keeping the knowledge accessible are welcome (feel free to make the changes yourself!). -- [[User:X6763|X6763]]&lt;br /&gt;
&lt;br /&gt;
= Checksum wrong? =&lt;br /&gt;
Is the checksum in the addr sample correct?  Here&#039;s what I get using OpenSSL (sorry for long lines):&lt;br /&gt;
SHA256(&amp;quot;\x01\xe2\x15\x10\x4d\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\x0a\x00\x00\x01\x20\x8d&amp;quot;) = &lt;br /&gt;
d6 88 65 c8 20 61 d5 e2 54 52 b5 5b 52 17 98 b1 11 50 85 96 2e 49 e8 fd da b7 f4 fb a3 9c d8 2c&lt;br /&gt;
and SHA256 of that is&lt;br /&gt;
ed 52 39 9b 56 8e d8 d5 9a 83 72 9c 11 6f 87 d0 be f2 84 e9 98 f3 47 7c 98 61 16 9a b1 2e ed 5c&lt;br /&gt;
It could easily be I&#039;m using OpenSSL incorrectly, so wanted to get confirmation -- [[User:AndyParkins|AndyParkins]]&lt;br /&gt;
 - The checksum for &amp;quot;addr&amp;quot; was not working for me neither, and I had the same results &amp;quot;ED 52 39 9B&amp;quot;, so I fixed it on the page. --[[User:Robert|Robert]]&lt;br /&gt;
&lt;br /&gt;
= What is &amp;quot;77x&amp;quot;? Header size wrong? ==&lt;br /&gt;
The description for the headers command says &amp;quot;77x?&amp;quot; as the size for the block_headers[] returned.  However, the description of the block_header structure is 81 bytes (4+32+32+4+4+4+1).  What exactly is returned by the headers command? -- [[User:AndyParkins|AndyParkins]]&lt;br /&gt;
&lt;br /&gt;
= Endianess on magic numbers =&lt;br /&gt;
The given magic numbers are the wrong way around.  The magic numbers are little endian 32 bit numbers on the network, so Testnet.Magic = 0xdab5bffa and Prodnet.Magic = 0xd9b4bef9.  The two examples are the order they come in from the wire, so at the very least should be shown with spaces between the bytes.&lt;br /&gt;
[[User:AndyParkins|AndyParkins]]&lt;br /&gt;
&lt;br /&gt;
:I stumbled upon this as well and corrected the page. --[[User:Theo|Theo]] 10:13, 7 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
= Version not advertised? =&lt;br /&gt;
Doing some experiments the version seems to be sent by the client, not the server as I think the page currently says.&lt;br /&gt;
&amp;quot;When a node receives an incoming connection, it will immediately advertise its version.&amp;quot;&lt;br /&gt;
That is not true. --[[User:Bluecmd|Bluecmd]] 10:02, 5 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
:You&#039;re right, net.h says in CNode constructor: --[[User:Theo|Theo]] 10:09, 7 June 2011 (GMT)&lt;br /&gt;
        // Be shy and don&#039;t send version until we hear&lt;br /&gt;
        if (!fInbound)&lt;br /&gt;
            PushVersion();&lt;br /&gt;
&lt;br /&gt;
= Version in getblocks? =&lt;br /&gt;
Apparently the official client sends the protocol version in getblocks messages, (possibly even in getheaders). This seems to me to be just weird --[[User:Bluecmd|Bluecmd]] 14:57, 6 June 2011 (GMT)&lt;br /&gt;
&lt;br /&gt;
== Separate page for hexdumps? ==&lt;br /&gt;
&lt;br /&gt;
Does anyone else think it may be a good idea to put the hexdumps on a separate page?  It&#039;d be nice to have this page just describe the protocol, but at the same time, be able to have examples of each of the different messages and objects.  On that node, would it also be helpful if I were to do a hexdump example of all of the different commands/structures? [[User:Andrew12|Andrew12]] 23:26, 9 June 2011 (GMT)&lt;/div&gt;</summary>
		<author><name>Andrew12</name></author>
	</entry>
	<entry>
		<id>https://en.bitcoin.it/w/index.php?title=Help:Installing_Bitcoin_Core&amp;diff=3305</id>
		<title>Help:Installing Bitcoin Core</title>
		<link rel="alternate" type="text/html" href="https://en.bitcoin.it/w/index.php?title=Help:Installing_Bitcoin_Core&amp;diff=3305"/>
		<updated>2011-02-09T01:28:34Z</updated>

		<summary type="html">&lt;p&gt;Andrew12: /* Initialisation */ Spell initialization correctly.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;An account can effortlessly be created using an [[eWallet]] service. eWallet services provide an online wallet to hold your bitcoins.&lt;br /&gt;
&lt;br /&gt;
This guide covers installing Bitcoin without needing a third party wallet service.&lt;br /&gt;
&lt;br /&gt;
== For Windows computers ==&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
[http://bitcoin.org Download] and install Bitcoin.&lt;br /&gt;
&lt;br /&gt;
[[File:Download it fin.png|frame|none|Download the &amp;quot;Windows (exe)&amp;quot; version]]&lt;br /&gt;
&lt;br /&gt;
[[File:Install fin.png|frame|none|Complete installation wizard]]&lt;br /&gt;
&lt;br /&gt;
=== Initialization ===&lt;br /&gt;
&lt;br /&gt;
The first time you run Bitcoin, it needs to download all the blocks to setup. You already have your bitcoin address at this point, but you won&#039;t see any transactions before the initialisation is complete (it can take from half to a few hours).&lt;br /&gt;
&lt;br /&gt;
[[File:First time run fin.png|frame|none|Bitcoin is initialising by establishing a connection to other clients and downloading the blocks.]]&lt;br /&gt;
&lt;br /&gt;
[[File:Bitcoin all blocks fin.png|frame|none|Completed download of block-chain.]]&lt;br /&gt;
&lt;br /&gt;
Your address (you can have as many as you want) is at the top. Below is your balance which will be zero. The list below shows your transactions.&lt;br /&gt;
&lt;br /&gt;
== For Mac computers ==&lt;br /&gt;
&lt;br /&gt;
Download the [http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.3.19/bitcoin-0.3.19-macosx.zip/download OS X version] of Bitcoin and expand the archive.&lt;br /&gt;
&lt;br /&gt;
[[File:BcOSX.png|thumb|none|Contents of the Bitcoin archive after expansion]]&lt;br /&gt;
&lt;br /&gt;
Drag the Bitcoin icon to the desired install location, and double-click or Cmd-O (⌘O) to run the application. The Bitcoin window will open and connections will start up in minutes. The blocks will begin downloading. Your address and balance are at the top of the window. Click &amp;quot;Copy to Clipboard&amp;quot; to copy your address. Transactions are displayed in the main window.&lt;br /&gt;
&lt;br /&gt;
[[File:BcOSXrunning.png|thumb|none|Main window]]&lt;br /&gt;
&lt;br /&gt;
As Bitcoin currently does not support hiding with Cmd-H (⌘H), it is recommended that users tick the &amp;quot;Minimize on close&amp;quot; option in the Preferences menu to prevent accidental program exits.&lt;br /&gt;
&lt;br /&gt;
[[File:BcOSXPreferences.png|thumb|none|Preferences window on OS X]]&lt;br /&gt;
&lt;br /&gt;
== Getting my first coins ==&lt;br /&gt;
&lt;br /&gt;
The  [[Bitcoin Faucet]] [https://freebitcoins.appspot.com/ website] currently hands out 0.05 BTC to new bitcoin users. Fill in the form with your bitcoin address.  When you wish to add more, view [[Buying bitcoins]].&lt;br /&gt;
&lt;br /&gt;
[[File:Get some btc.png|frame|none|Getting free coins from the Faucet]]&lt;br /&gt;
&lt;br /&gt;
A new entry should appear in Bitcoin. The network hasn&#039;t yet confirmed it, but you know it&#039;s being processed. After about one hour it should get 6 confirmations. You are able to spend the coins when there is only one confirmation.&lt;br /&gt;
&lt;br /&gt;
The confirmation counter (like the block counter) will increase by one roughly every 10 minutes. Six confirmations are considered as 100% sure a transfer has been processed.&lt;br /&gt;
&lt;br /&gt;
[[File:First btc recv.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
[[File:Six confirms bitcoin client.png|frame|none]]&lt;br /&gt;
&lt;br /&gt;
== Points to remember ==&lt;br /&gt;
&lt;br /&gt;
* You don&#039;t need to be online to receive BTC.&lt;br /&gt;
* You can create as many new addresses as you like. Using a different address each time helps keep you [[Anonymity|anonymous]].&lt;br /&gt;
* You can be [[Anonymity|anonymous]] with adequate precautions.&lt;br /&gt;
* You cannot send BTC to an invalid address. Typos are not a worry as the payment will refuse to send.&lt;br /&gt;
* The wallet file holds the keys that allow spending and thus the computer should be [[Securing_your_wallet|protected]] from the risk of loss and theft.&lt;br /&gt;
&lt;br /&gt;
== Technical ==&lt;br /&gt;
=== Block chain ===&lt;br /&gt;
The [[block chain]] is a neverending story of every transaction throughout the network from day 1 (genesis). The first time you run Bitcoin, it is downloaded and verified on your computer. Every new transaction is added to the end of this chain and verified by the network to be valid.&lt;br /&gt;
&lt;br /&gt;
=== Addresses ===&lt;br /&gt;
Whenever you send a coin, you are actually sending a cryptographically signed message, associating your coin with the recipient&#039;s address. This effectively transfers ownership to to the recipient. Once they own the coin, they are free to transfer it to another person.&lt;br /&gt;
&lt;br /&gt;
A wallet is a collection of addresses. You can create as many new addresses as you wish; having more addresses makes you more anonymous, because then people cannot see how much BTC you received. Your wallet contains the secret keys used for spending that money, and must be [[Securing your wallet|backed-up regularly]]. If you lose the wallet then you no longer possess the money.&lt;br /&gt;
&lt;br /&gt;
=== Generating ===&lt;br /&gt;
New coins are minted through generating hashes. These generators are rewarded with a small fee for the computationally intensive task of incorporating your transactions into the block-chain.  This fee halves each time 210000 blocks are added to the block chain, or approximately every 4 years.  The fee will keep halving until it effectively reaches zero, at which point 21 million coins will be in circulation.&lt;br /&gt;
&lt;br /&gt;
[[Category:Introduction]]&lt;/div&gt;</summary>
		<author><name>Andrew12</name></author>
	</entry>
</feed>