<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.bitmessage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kgo</id>
	<title>Bitmessage Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.bitmessage.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Kgo"/>
	<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php/Special:Contributions/Kgo"/>
	<updated>2026-04-26T06:57:18Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>https://wiki.bitmessage.org/index.php?title=Public_key_to_bitmessage_address&amp;diff=20085</id>
		<title>Public key to bitmessage address</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php?title=Public_key_to_bitmessage_address&amp;diff=20085"/>
		<updated>2013-09-08T16:52:47Z</updated>

		<summary type="html">&lt;p&gt;Kgo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{stub}}&lt;br /&gt;
&lt;br /&gt;
This page briefly describes, how to generate a Bitmessage Address from a public key.&lt;br /&gt;
The variable after the list is used to refer to the step later&lt;br /&gt;
&lt;br /&gt;
# Create a private and a public key for encryption and signing (resulting in 4 keys)&lt;br /&gt;
# Merge the public part of the signing key and the encryption key together. (A)&lt;br /&gt;
# Take the SHA512 hash of A. (B)&lt;br /&gt;
# Take the RIPEMD160 of B. (C)&lt;br /&gt;
# Repeat step 1-4 until you have a result that starts with a zero (Or two zeros, if you want a short address). (D)&lt;br /&gt;
# Remove the zeros at the beginning of D. (E)&lt;br /&gt;
# Put the stream number (in big endian) in front of E. (F)&lt;br /&gt;
# Put the address version (in big endian) in front of F. (G)&lt;br /&gt;
# Take a double SHA512 (hash of a hash) of G and use the first four bytes as a checksum, that you append to the end. (H)&lt;br /&gt;
# base58 encode H. (J)&lt;br /&gt;
# Put &amp;quot;BM-&amp;quot; in front J. (K)&lt;br /&gt;
&lt;br /&gt;
K is your full address&lt;br /&gt;
&lt;br /&gt;
Note: Bitmessage's base58 encoding uses the following sequence: &amp;quot;123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz&amp;quot;.  Many existing libraries for base58 do not use this ordering.&lt;/div&gt;</summary>
		<author><name>Kgo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitmessage.org/index.php?title=Address&amp;diff=19927</id>
		<title>Address</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php?title=Address&amp;diff=19927"/>
		<updated>2013-09-01T17:24:59Z</updated>

		<summary type="html">&lt;p&gt;Kgo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bitmessage adresses are Base58 encoded public key hashes. An address looks like '''BM-BcbRqcFFSQUUmXFKsPJgVQPSiFA3Xash'''.&lt;br /&gt;
All Addresses start with '''BM-''', however clients should accept addresses without the prefix. [[PyBitmessage]] does this. The reason behind this idea is the fact, that when double clicking on an address for copy and paste, the prefix is usually not selected due to the dash being a common separator.&lt;br /&gt;
&lt;br /&gt;
== Public Key usage ==&lt;br /&gt;
Addresses may look complicated but they fulfill the purpose of verifying the sender. A Message claiming to be from a specific address can simply be checked by decoding a special field in the data packet with the public key, that represents the address. If the decryption succeeds, the message is from the address it claims to be.&lt;br /&gt;
&lt;br /&gt;
== Length ==&lt;br /&gt;
Without the '''BM-''' prefix, an address is usually 32-34 chars long. Since an address is a hash it can be calculated by the client in a way, that the first bytes are zero (\0) and bitmessage strips these. This causes the client to do much more work to be lucky and find such an address. This is an optional checkbox in [[PyBitmessage]].&lt;br /&gt;
&lt;br /&gt;
== Address Types ==&lt;br /&gt;
There are two address types the user can generate in PyBitmessage. The resulting addresses have no difference, but the method how they are created differs.&lt;br /&gt;
&lt;br /&gt;
=== Deterministic Address ===&lt;br /&gt;
For this type of Address a passphrase is required, that is used to seed the random generator. Using the same passphrase creates the same addresses.&lt;br /&gt;
Using deterministic addresses should be done with caution, using a word from a dictionary or a common number can lead to others generating the same address and thus being able to receive messages not intended for them. Generating a deterministic address will not publish the public key. The key is sent in case somebody requests it. This saves [[POW]] time, when generating a bunch of addresses.&lt;br /&gt;
&lt;br /&gt;
'''Usage'''&lt;br /&gt;
* Create the same address on multiple systems without the need of copying [[keys.dat]] or an [[Address Block]].&lt;br /&gt;
* create a [[Decentralized Mailing List]].&lt;br /&gt;
* Being able to restore the address in case of address database corruption or deletation.&lt;br /&gt;
&lt;br /&gt;
=== Random Address ===&lt;br /&gt;
Random addresses are generated from a randomly chosen number. The resulting address cannot be regenerated without knowledge of the number and therefore the keys.dat should be backed up. Generating random addresses takes slightly longer due to the POW required for the public key broadcast.&lt;br /&gt;
&lt;br /&gt;
'''Usage'''&lt;br /&gt;
* Generate unique addresses&lt;br /&gt;
* Generate one time addresses.&lt;br /&gt;
&lt;br /&gt;
== Recovering/Regenerating/Recreating an Address ==&lt;br /&gt;
You can recreate an address in multiple clients without having to move any files between them by using Deterministic Addresses. &lt;br /&gt;
&lt;br /&gt;
'''Usage'''&lt;br /&gt;
* Generate a Deterministic Address and remember all of the selections made when doing so.&lt;br /&gt;
* On another Bitmessage client navigate to:&lt;br /&gt;
** File &amp;gt; Regenerate deterministic addresses&lt;br /&gt;
* Re-enter the data that you used to create the original Deterministic Address&lt;br /&gt;
&lt;br /&gt;
'''Note:''' Be sure to use a passphrase that is not easy to duplicate. Anyone that use the same passphrase (and other settings) will generate the same address.&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
&lt;br /&gt;
[[Public_key_to_bitmessage_address]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Address terms]]&lt;/div&gt;</summary>
		<author><name>Kgo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitmessage.org/index.php?title=Public_key_to_bitmessage_address&amp;diff=19578</id>
		<title>Public key to bitmessage address</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php?title=Public_key_to_bitmessage_address&amp;diff=19578"/>
		<updated>2013-08-14T23:27:23Z</updated>

		<summary type="html">&lt;p&gt;Kgo: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First the public part of the signing key and the encryption key are merged together.&lt;br /&gt;
&lt;br /&gt;
Then you take the SHA512 hash of that.&lt;br /&gt;
&lt;br /&gt;
Then you take the RIPEMD160 of that.&lt;br /&gt;
&lt;br /&gt;
This is repeated until you have a result that starts with a zero (Or two zeros, if eighteen byte ripe is required)&lt;br /&gt;
&lt;br /&gt;
Then you remove the zeros at the beginning.&lt;br /&gt;
&lt;br /&gt;
Then you slap the stream number (in big endian) in front of that.&lt;br /&gt;
&lt;br /&gt;
Then you slap the address version (in big endian) in front of that.&lt;br /&gt;
&lt;br /&gt;
Then you take a double SHA512 of that and use the first four bytes as a checksum, that you slap on at the end.&lt;br /&gt;
&lt;br /&gt;
Then you base58 encode this.&lt;br /&gt;
&lt;br /&gt;
Then you slap &amp;quot;BM-&amp;quot; in front of it all.&lt;/div&gt;</summary>
		<author><name>Kgo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitmessage.org/index.php?title=Public_key_to_bitmessage_address&amp;diff=19577</id>
		<title>Public key to bitmessage address</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php?title=Public_key_to_bitmessage_address&amp;diff=19577"/>
		<updated>2013-08-14T23:26:23Z</updated>

		<summary type="html">&lt;p&gt;Kgo: Created page with &amp;quot;First the public part of the signing key and the encryption key are merged together.  Then you take the SHA512 hash of that.  Then you take the RIPEMD160 of that.  This is rep...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;First the public part of the signing key and the encryption key are merged together.&lt;br /&gt;
&lt;br /&gt;
Then you take the SHA512 hash of that.&lt;br /&gt;
&lt;br /&gt;
Then you take the RIPEMD160 of that.&lt;br /&gt;
&lt;br /&gt;
This is repeated until you have a result that starts with a zero (Or two zeros, if eighteen byte ripe is required)&lt;br /&gt;
&lt;br /&gt;
Then you remove the zeros at the beginning.&lt;br /&gt;
&lt;br /&gt;
Then you slap the stream number (in big endian) in front of that.&lt;br /&gt;
&lt;br /&gt;
Then you slap the address version (in big endian) in front of that.&lt;br /&gt;
&lt;br /&gt;
Then you take a double SHA512 of that and use the first four bytes as a checksum, that you slap on at the end.&lt;br /&gt;
&lt;br /&gt;
Then you slap &amp;quot;BM-&amp;quot; in front of it all.&lt;/div&gt;</summary>
		<author><name>Kgo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitmessage.org/index.php?title=Compiling_instructions&amp;diff=19381</id>
		<title>Compiling instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php?title=Compiling_instructions&amp;diff=19381"/>
		<updated>2013-07-28T21:45:16Z</updated>

		<summary type="html">&lt;p&gt;Kgo: /* Other Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page should help novice users run Bitmessage from the source code files.&lt;br /&gt;
&lt;br /&gt;
= Linux =&lt;br /&gt;
== Fedora + RHEL ==&lt;br /&gt;
'''Install dependencies:'''&lt;br /&gt;
&lt;br /&gt;
''Fedora and RHEL6 do not support EC in OpenSSL. Therefore we need [http://linux.ringingliberty.com/bitcoin/ Ringing Liberty's bitcoin repository] to get a compatible library.''&lt;br /&gt;
&lt;br /&gt;
Repository for Fedora:&lt;br /&gt;
 su -c 'yum install http://linux.ringingliberty.com/bitcoin/f18/x86_64/bitcoin-release-1-4.noarch.rpm'&lt;br /&gt;
or this one for RedHat Enterprise Linux (RHEL):&lt;br /&gt;
 su -c 'yum install http://linux.ringingliberty.com/bitcoin/el6/x86_64/bitcoin-release-1-4.noarch.rpm'&lt;br /&gt;
Install dependencies:&lt;br /&gt;
 su -c 'yum install python git openssl-compat-bitcoin-libs'&lt;br /&gt;
'''Download''' Bitmessage from GIT:&lt;br /&gt;
 git clone https://github.com/Bitmessage/PyBitmessage $HOME/PyBitmessage&lt;br /&gt;
'''Run''' Bitmessage:&lt;br /&gt;
 cd $HOME/PyBitmessage/src/ &amp;amp;&amp;amp; LD_LIBRARY_PATH=&amp;quot;/opt/openssl-compat-bitcoin/lib/&amp;quot; python bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
== Other Distros ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;''Note for Debian Squeeze (6.0) users: Debian Squeeze does not offer packages (like Python, OpenSSL) in versions that are needed for Bitmessage. You can still try to [https://github.com/Bitmessage/PyBitmessage/issues/47#issuecomment-17774377 work around these problems].''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;For Whonix (0.5.6) installation, follow the steps for Debian.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Install dependencies:&lt;br /&gt;
: APT-based distributions (Debian, Ubuntu): &amp;lt;code&amp;gt;sudo apt-get install python openssl git python-qt4&amp;lt;/code&amp;gt;&lt;br /&gt;
: Raspberry Pi (Raspbian &amp;quot;wheezy&amp;quot;): &amp;lt;code&amp;gt;sudo apt-get install python-qt4&amp;lt;/code&amp;gt;&lt;br /&gt;
: RPM-based distributions (Red Hat, Fedora): &amp;lt;code&amp;gt;sudo yum install python openssl git&amp;lt;/code&amp;gt;&lt;br /&gt;
: Arch: &amp;lt;code&amp;gt;sudo pacman -S python2 openssl git python2-pyqt4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Download and run Bitmessage:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://github.com/Bitmessage/PyBitmessage $HOME/PyBitmessage&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 cd $HOME/PyBitmessage/src/ &amp;amp;&amp;amp; python bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
= OS X =&lt;br /&gt;
== With Homebrew package manager ==&lt;br /&gt;
; Setup&lt;br /&gt;
First, make sure you have not already installed Macports. Having both macports and homebrew on the same system is a recipe for disaster. &lt;br /&gt;
Install Homebrew: &lt;br /&gt;
 ruby -e &amp;quot;$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Update Python:&lt;br /&gt;
 brew install python&lt;br /&gt;
&lt;br /&gt;
; Install dependencies:&lt;br /&gt;
 brew install pyqt openssl&lt;br /&gt;
&lt;br /&gt;
; Download and run&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 git clone git://github.com/Bitmessage/PyBitmessage.git&lt;br /&gt;
 cd PyBitmessage&lt;br /&gt;
 python src/bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
== With macports package manager ==&lt;br /&gt;
First, make sure you have not already installed Homebrew. Having both macports and homebrew on the same system is a recipe for disaster. &lt;br /&gt;
Installing with macports or homebrew essentially has the same effect. Homebrew does some things better than ports, and ports does some things better than brew. If old-school floats your boat, these instructions are for you. &lt;br /&gt;
&lt;br /&gt;
; Select the macports installation that is right for your version of osx&lt;br /&gt;
https://www.macports.org/install.php&lt;br /&gt;
&lt;br /&gt;
; Install dependencies and needed tools&lt;br /&gt;
 sudo port install python27 py27-pyqt4 openssl&lt;br /&gt;
 sudo port install git-core +svn +doc +bash_completion +gitweb&lt;br /&gt;
&lt;br /&gt;
; Download and run&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 git clone git://github.com/Bitmessage/PyBitmessage.git&lt;br /&gt;
 cd PyBitmessage&lt;br /&gt;
 python2.7 src/bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
# Download and install the latest revision of Python 2.7 (currently Python 2.7.3 from [http://www.python.org/download/releases/2.7.3/ here]). The ''Windows x86 MSI Installer'' is the right choice for most people. (64-bit users may want the 64-bit version).&lt;br /&gt;
# Test that it installed:&lt;br /&gt;
## Open a command prompt by going to Start &amp;gt; Run. Type 'cmd' then press enter.&lt;br /&gt;
## type 'python'. If python is installed, you should see the python version and the prompt: '&amp;gt;&amp;gt;&amp;gt;'&lt;br /&gt;
## If you see a message such as: &amp;quot;'Python is not recognized as an internal or external command...&amp;quot; then you must add the python path to your path environmental variable:&lt;br /&gt;
### Find the location where Python was installed (in particular, the location where python.exe exists). It might simply be in c:\Python2.7 &lt;br /&gt;
### Follow [http://www.computerhope.com/issues/ch000549.htm these directions] to add the Python path to your path variable.&lt;br /&gt;
### Close the command prompt window and reopen it. &lt;br /&gt;
### Try running 'python' again.&lt;br /&gt;
##Press Ctrl-Z to exit Python.&lt;br /&gt;
# Bitmessage has two dependencies. The first is PyQt. Download and install PyQt from [http://www.riverbankcomputing.com/software/pyqt/download here]. You will want the Binary Package since it is already compiled for you. Be sure to select the version for Python 2.7. It is labeled as Py2.7. &lt;br /&gt;
# The second dependency is OpenSSL which you can download from [http://slproweb.com/products/Win32OpenSSL.html here]. There you will also notice the link to download the Visual C++ 2008 program in case you also find that you need that as well. (The OpenSSL installer will complain if you need to install the Visual C++ Redistributable.)&lt;br /&gt;
# Download the source code for PyBitmessage from GitHub. If it is in a zip file, you will need to extract it. There should be a few files and a few folders where one of the folders is 'src'. &lt;br /&gt;
# To run Bitmessage, navigate into the 'src' folder and then double click on the bitmessagemain.py file, or in a command prompt, change directories to the 'src' directory which holds bitmessagemain.py and type 'python bitmessagemain.py'. &lt;br /&gt;
&lt;br /&gt;
== If you change user interface files ==&lt;br /&gt;
You can use Qt's Designer application to modify the user interface. After you do this, you will need to 'compile' .ui files into .py files. &lt;br /&gt;
# In a command prompt, change directories to the directory of your .ui file.&lt;br /&gt;
# Run 'pyuic4 example.ui &amp;gt; example.py'  If you get a message similar to 'pyuic4 is not recognized as an internal or external command' then you must add the PyQt directory to your system's path variable. This directory should hold pyuic4.bat. It might be in C:\Python27\Lib\site-packages\PyQt4. Remember to close the command window and reopen it after you change your path variable.&lt;br /&gt;
&lt;br /&gt;
If you add icons to bitmessage_icons.qrc, then you must run this command:&lt;br /&gt;
pyrcc4 bitmessage_icons.qrc -o bitmessage_icons_rc.py&lt;br /&gt;
&lt;br /&gt;
== Optional: Compile into a stand-alone EXE ==&lt;br /&gt;
# Download [http://www.pyinstaller.org/ PyInstaller].&lt;br /&gt;
# Copy Bitmessage's 'src' directory to the PyInstaller directory (which contains pyinstaller.py). &lt;br /&gt;
# Run 'pyinstaller.py --onefile --noconsole --icon=&amp;quot;src\images\can-icon.ico&amp;quot; src\bitmessagemain.py'&lt;br /&gt;
This won't include the OpenSSL DLL file in the EXE; if you send it to someone who doesn't have OpenSSL installed, it will not run. To include the DLL file in the EXE, you must follow these steps:&lt;br /&gt;
# After following the steps above, you will see that pyinstaller created a folder called bitmessagemain. In that folder is a file: bitmessagemain.spec. Open it with a text editor.&lt;br /&gt;
# Below the line &amp;quot;a.datas,&amp;quot; add this line: &amp;lt;code&amp;gt;a.binaries + [('libeay32.dll', 'c:\\windows\\system32\\libeay32.dll', 'BINARY')],&amp;lt;/code&amp;gt;&lt;br /&gt;
# Save and close&lt;br /&gt;
# Run this command: pyinstaller.py bitmessagemain/bitmessagemain.spec&lt;br /&gt;
&lt;br /&gt;
If you do not have the libeay32.dll you can download it here. http://www.dll-files.com/dllindex/dll-files.shtml?libeay32&lt;/div&gt;</summary>
		<author><name>Kgo</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.bitmessage.org/index.php?title=Compiling_instructions&amp;diff=19380</id>
		<title>Compiling instructions</title>
		<link rel="alternate" type="text/html" href="https://wiki.bitmessage.org/index.php?title=Compiling_instructions&amp;diff=19380"/>
		<updated>2013-07-28T21:41:57Z</updated>

		<summary type="html">&lt;p&gt;Kgo: /* Other Distros */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page should help novice users run Bitmessage from the source code files.&lt;br /&gt;
&lt;br /&gt;
= Linux =&lt;br /&gt;
== Fedora + RHEL ==&lt;br /&gt;
'''Install dependencies:'''&lt;br /&gt;
&lt;br /&gt;
''Fedora and RHEL6 do not support EC in OpenSSL. Therefore we need [http://linux.ringingliberty.com/bitcoin/ Ringing Liberty's bitcoin repository] to get a compatible library.''&lt;br /&gt;
&lt;br /&gt;
Repository for Fedora:&lt;br /&gt;
 su -c 'yum install http://linux.ringingliberty.com/bitcoin/f18/x86_64/bitcoin-release-1-4.noarch.rpm'&lt;br /&gt;
or this one for RedHat Enterprise Linux (RHEL):&lt;br /&gt;
 su -c 'yum install http://linux.ringingliberty.com/bitcoin/el6/x86_64/bitcoin-release-1-4.noarch.rpm'&lt;br /&gt;
Install dependencies:&lt;br /&gt;
 su -c 'yum install python git openssl-compat-bitcoin-libs'&lt;br /&gt;
'''Download''' Bitmessage from GIT:&lt;br /&gt;
 git clone https://github.com/Bitmessage/PyBitmessage $HOME/PyBitmessage&lt;br /&gt;
'''Run''' Bitmessage:&lt;br /&gt;
 cd $HOME/PyBitmessage/src/ &amp;amp;&amp;amp; LD_LIBRARY_PATH=&amp;quot;/opt/openssl-compat-bitcoin/lib/&amp;quot; python bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
== Other Distros ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;''Note for Debian Squeeze (6.0) users: Debian Squeeze does not offer packages (like Python, OpenSSL) in versions that are needed for Bitmessage. You can still try to [https://github.com/Bitmessage/PyBitmessage/issues/47#issuecomment-17774377 work around these problems].''&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;For Whonix (0.5.6) installation, follow the steps for Debian.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Install dependencies:&lt;br /&gt;
: APT-based distributions (Debian, Ubuntu): &amp;lt;code&amp;gt;sudo apt-get install python openssl git python-qt4&amp;lt;/code&amp;gt;&lt;br /&gt;
: Raspberry Pi (Raspbian &amp;quot;wheezy&amp;quot;): &amp;lt;code&amp;gt;sudo apt-get install python-qt4&amp;lt;/code&amp;gt;&lt;br /&gt;
: RPM-based distributions (Red Hat, Fedora): &amp;lt;code&amp;gt;sudo yum install python openssl git&amp;lt;/code&amp;gt;&lt;br /&gt;
: Arch: &amp;lt;code&amp;gt;sudo pacman -S python openssl git python-pyqt4&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; Download and run Bitmessage:&lt;br /&gt;
 git clone &amp;lt;nowiki&amp;gt;https://github.com/Bitmessage/PyBitmessage $HOME/PyBitmessage&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
 cd $HOME/PyBitmessage/src/ &amp;amp;&amp;amp; python bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
= OS X =&lt;br /&gt;
== With Homebrew package manager ==&lt;br /&gt;
; Setup&lt;br /&gt;
First, make sure you have not already installed Macports. Having both macports and homebrew on the same system is a recipe for disaster. &lt;br /&gt;
Install Homebrew: &lt;br /&gt;
 ruby -e &amp;quot;$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Update Python:&lt;br /&gt;
 brew install python&lt;br /&gt;
&lt;br /&gt;
; Install dependencies:&lt;br /&gt;
 brew install pyqt openssl&lt;br /&gt;
&lt;br /&gt;
; Download and run&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 git clone git://github.com/Bitmessage/PyBitmessage.git&lt;br /&gt;
 cd PyBitmessage&lt;br /&gt;
 python src/bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
== With macports package manager ==&lt;br /&gt;
First, make sure you have not already installed Homebrew. Having both macports and homebrew on the same system is a recipe for disaster. &lt;br /&gt;
Installing with macports or homebrew essentially has the same effect. Homebrew does some things better than ports, and ports does some things better than brew. If old-school floats your boat, these instructions are for you. &lt;br /&gt;
&lt;br /&gt;
; Select the macports installation that is right for your version of osx&lt;br /&gt;
https://www.macports.org/install.php&lt;br /&gt;
&lt;br /&gt;
; Install dependencies and needed tools&lt;br /&gt;
 sudo port install python27 py27-pyqt4 openssl&lt;br /&gt;
 sudo port install git-core +svn +doc +bash_completion +gitweb&lt;br /&gt;
&lt;br /&gt;
; Download and run&lt;br /&gt;
 cd ~/Desktop&lt;br /&gt;
 git clone git://github.com/Bitmessage/PyBitmessage.git&lt;br /&gt;
 cd PyBitmessage&lt;br /&gt;
 python2.7 src/bitmessagemain.py&lt;br /&gt;
&lt;br /&gt;
= Windows =&lt;br /&gt;
# Download and install the latest revision of Python 2.7 (currently Python 2.7.3 from [http://www.python.org/download/releases/2.7.3/ here]). The ''Windows x86 MSI Installer'' is the right choice for most people. (64-bit users may want the 64-bit version).&lt;br /&gt;
# Test that it installed:&lt;br /&gt;
## Open a command prompt by going to Start &amp;gt; Run. Type 'cmd' then press enter.&lt;br /&gt;
## type 'python'. If python is installed, you should see the python version and the prompt: '&amp;gt;&amp;gt;&amp;gt;'&lt;br /&gt;
## If you see a message such as: &amp;quot;'Python is not recognized as an internal or external command...&amp;quot; then you must add the python path to your path environmental variable:&lt;br /&gt;
### Find the location where Python was installed (in particular, the location where python.exe exists). It might simply be in c:\Python2.7 &lt;br /&gt;
### Follow [http://www.computerhope.com/issues/ch000549.htm these directions] to add the Python path to your path variable.&lt;br /&gt;
### Close the command prompt window and reopen it. &lt;br /&gt;
### Try running 'python' again.&lt;br /&gt;
##Press Ctrl-Z to exit Python.&lt;br /&gt;
# Bitmessage has two dependencies. The first is PyQt. Download and install PyQt from [http://www.riverbankcomputing.com/software/pyqt/download here]. You will want the Binary Package since it is already compiled for you. Be sure to select the version for Python 2.7. It is labeled as Py2.7. &lt;br /&gt;
# The second dependency is OpenSSL which you can download from [http://slproweb.com/products/Win32OpenSSL.html here]. There you will also notice the link to download the Visual C++ 2008 program in case you also find that you need that as well. (The OpenSSL installer will complain if you need to install the Visual C++ Redistributable.)&lt;br /&gt;
# Download the source code for PyBitmessage from GitHub. If it is in a zip file, you will need to extract it. There should be a few files and a few folders where one of the folders is 'src'. &lt;br /&gt;
# To run Bitmessage, navigate into the 'src' folder and then double click on the bitmessagemain.py file, or in a command prompt, change directories to the 'src' directory which holds bitmessagemain.py and type 'python bitmessagemain.py'. &lt;br /&gt;
&lt;br /&gt;
== If you change user interface files ==&lt;br /&gt;
You can use Qt's Designer application to modify the user interface. After you do this, you will need to 'compile' .ui files into .py files. &lt;br /&gt;
# In a command prompt, change directories to the directory of your .ui file.&lt;br /&gt;
# Run 'pyuic4 example.ui &amp;gt; example.py'  If you get a message similar to 'pyuic4 is not recognized as an internal or external command' then you must add the PyQt directory to your system's path variable. This directory should hold pyuic4.bat. It might be in C:\Python27\Lib\site-packages\PyQt4. Remember to close the command window and reopen it after you change your path variable.&lt;br /&gt;
&lt;br /&gt;
If you add icons to bitmessage_icons.qrc, then you must run this command:&lt;br /&gt;
pyrcc4 bitmessage_icons.qrc -o bitmessage_icons_rc.py&lt;br /&gt;
&lt;br /&gt;
== Optional: Compile into a stand-alone EXE ==&lt;br /&gt;
# Download [http://www.pyinstaller.org/ PyInstaller].&lt;br /&gt;
# Copy Bitmessage's 'src' directory to the PyInstaller directory (which contains pyinstaller.py). &lt;br /&gt;
# Run 'pyinstaller.py --onefile --noconsole --icon=&amp;quot;src\images\can-icon.ico&amp;quot; src\bitmessagemain.py'&lt;br /&gt;
This won't include the OpenSSL DLL file in the EXE; if you send it to someone who doesn't have OpenSSL installed, it will not run. To include the DLL file in the EXE, you must follow these steps:&lt;br /&gt;
# After following the steps above, you will see that pyinstaller created a folder called bitmessagemain. In that folder is a file: bitmessagemain.spec. Open it with a text editor.&lt;br /&gt;
# Below the line &amp;quot;a.datas,&amp;quot; add this line: &amp;lt;code&amp;gt;a.binaries + [('libeay32.dll', 'c:\\windows\\system32\\libeay32.dll', 'BINARY')],&amp;lt;/code&amp;gt;&lt;br /&gt;
# Save and close&lt;br /&gt;
# Run this command: pyinstaller.py bitmessagemain/bitmessagemain.spec&lt;br /&gt;
&lt;br /&gt;
If you do not have the libeay32.dll you can download it here. http://www.dll-files.com/dllindex/dll-files.shtml?libeay32&lt;/div&gt;</summary>
		<author><name>Kgo</name></author>
		
	</entry>
</feed>