https://wiki.bitmessage.org/api.php?action=feedcontributions&user=C&feedformat=atomBitmessage Wiki - User contributions [en]2024-03-29T10:14:48ZUser contributionsMediaWiki 1.34.0https://wiki.bitmessage.org/index.php?title=PyBitmessage_Help&diff=20311PyBitmessage Help2013-09-18T16:12:36Z<p>C: /* Daily usage */</p>
<hr />
<div>Welcome to the help page for PyBitmessage. <br />
<br />
== Clarification ==<br />
PyBitmessage is the official client, used as protocol reference. It is usually abbreviated "Bitmessage", causing confusion between the protocol and the client.<br />
<br />
== Initial setup ==<br />
PyBitmessage can be downloaded from the [[Main Page]], either as Windows binary or as source from github. Other builds (for example for Mac OS X) can be found in the forum.<br />
The client sets up itself completely automatic. It can be launched and the required files for its operation are created if they do not exist.<br />
<br />
== Daily usage ==<br />
[[File:PyBitmessage-Sent.png|300px|thumb|right|Main window with sent tab open]]<br />
PyBitmessage will automatically connect to other clients on start up, the user does not needs to wait for this to complete and can instantly send messages. [[POW]] can be made if offline.<br />
The Main interface contains the folowing tabs:<br />
<br />
=== Inbox ===<br />
The inbox contains all your received messages (top part) and displays the currently selected message (bottom part). The bottom window allows copying and editing the message but it will not be saved. The context menu in the message list provides additional features, such as [[HTML view]] or reply option. Using the HTML view renders some HTML tags from the message, for example images.<br />
Messages that are no longer needed can be sent to the trash with the [DEL] key.<br />
<br />
=== Send ===<br />
The "Send" tab is used to compose new private or [[Broadcast]] messages. A message can be dedicated to multiple people but the protocol supports only one receiving address per message. Example: Sending a message to 8 people will generate the exact same message 8 times in the "Sent" tab.<br />
<br />
=== Sent ===<br />
The sent tab displays messages sent by the user, including messages that are in the process of [[POW|proof of work]]. The status column displays the current status of the message.<br />
Table with the most common messages:<br />
{| class="wikitable" border="1"<br />
|-<br />
! Status<br />
! Description<br />
|-<br />
| Doing work necessary to send <type>...<br />
| [[POW]] is being done<br />
|-<br />
| <type> sent on <date/time><br />
| The message has been sent<br />
|-<br />
| Waiting on Acknowledgement<br />
| The message has been sent but the receiver has not received it yet. Not applicable for broadcasts<br />
|-<br />
| Acknowledgement received on <date+time><br />
| The receiver got the message. Not applicable for broadcasts<br />
|}<br />
Messages can be sent to the trash with the [DEL] key however, this will not stop POW from being made if it has already started.<br />
<br />
=== Your Identities ===<br />
Contains a list of all addresses stored in [[keys.dat]] and allows to generate new ones. The context menu allows to enable/disable addresses. Addresses can be labeled, this label is then displayed instead of the address. Labels are not sent over the network and are only visible to the client. Addresses cannot be deleted directly in this tab, but removing the [[Address Block]] from keys.dat removes it. Editing the keys.dat file requires the user to shut down the client first.<br />
<br />
=== [[Subscriptions]] ===<br />
Contains a list of all [[Broadcast|broadcasts]], that the client will receive. To receive broadcasts its address must be added first to the list. The context menu allows enabling, disabling and deletation of addresses.<br />
<br />
=== Address Book ===<br />
Can be used to associate addresses with labels for easier recognition.<br />
The context menu allows the user to add a subscription to the address.<br />
<br />
=== Blacklist/Whitelist ===<br />
Addresses can be blacklisted or whitelisted. The Operation mode of the list (whitelist or blacklist) ban be set too. The context menu allows entries to be enabled, disabled or deleted.<br />
<br />
=== Network Status ===<br />
Shows the [[Stream]] number and the number of connected nodes in a list. Displays when it was started and how much information has been processed yet.<br />
<br />
== [[DML]] Addresses ==<br />
A DML Address can be either created or joined in the '''File > Join / Create chan''' menu.<br />
These addresses are written with orange color in the identities tab.<br />
<br />
To learn more about how to use a DML Address / chan, visit [[DML|this article]].<br />
You need to either create the address or join it to send messages to it, else the client gets stuck when waiting for the public key. To resolve this issue, without joining or creating an address see, the DML article.<br />
<br />
=== Join ===<br />
To Join a DML, the address and the passphrase is required. The passphrase is used to generate the private keys, that the client needs to send and receive messages. The address is used so the user does not needs to know the stream number and address version. If the address is not known, a DML can be created, even if it actually exists, in the hope, that the resulting address is correct.<br />
<br />
=== Create ===<br />
Creating a DML/chan only requires a passphrase. It will create the address and mark it as such.<br />
<br />
=== Notes ===<br />
There is no technical difference between creation and joining. Joining requires the address to make sure, you actually get the correct private keys, because they depend on stream number and address version, which are both included in the address.<br />
Creating an address however will always use the newest address version and stream number and thus may create a different address, which is not compatible with the one intended to join.<br />
<br />
== Configuration ==<br />
Bitmessage can be configured by editing [[keys.dat]] or by using the menu '''Settings > Settings''' in the GUI.<br />
<br />
=== Settings Menu ===<br />
The settings menu has the folowing tabs:<br />
<br />
==== User Interface ====<br />
Allows customization how bitmessage is started and if it should run in portable mode or not.<br />
<br />
==== Network Settings ====<br />
Allows setting of the TCP port used for incomming connections. This can be left at default value for most users.<br />
A proxy server can be defined if the user wishes to do so. Supports SOCKS4a and SOCKS5 with Authentication support.<br />
The option to allow incoming connections can be enabled if the user wishes to help the network, even when using a proxy. Incoming connections '''are not''' routed over the socks proxy!<br />
<br />
==== Demanded Difficulty ====<br />
The demanded difficulty allows to increase the amount of POW to be done for other clients to send messages to the user.<br />
POW for users in the address book is always 1. Doubling the number doubles the amount of time required.<br />
<br />
==== Max acceptable difficulty ====<br />
Similar to the "demanded difficulty" tab, this tab has the exact same textboxes, however, they are used to limit the amount of POW the user is willing to do. If he sends a message and the destination address wants him to do more POW than he set as maximum, the message will not be processed. The user can click with the right mouse button on the message and force it to be sent or he can delete the message.<br />
<br />
== Database cleanup ==<br />
The database ([[messages.dat]]) can be cleaned and shrinked manually with the menu '''File > Delete all trashed messages'''.<br />
The database is compacted once every month automatically without deletation of trashed messages.<br />
<br />
== Statistics ==<br />
=== Time ===<br />
On an average computer, different processes take different amounts of time.<br />
{| class="wikitable"<br />
|-<br />
! Action !! Time required<br />
|-<br />
| Generate an address || 1 second*<br />
|-<br />
| Generate an address (1 or 2 characters shorter) || 5 minutes*<br />
|-<br />
| Sender do work necessary to send broadcast|| 2 minutes<br />
|-<br />
| Sender do work necessary to send person-to-person message|| 4 minutes<br />
|-<br />
| message (or acknowledgement data) propagate through the network|| 10 seconds<br />
|}<br />
Note that on Linux and OSX systems, Bitmessage can often do work much faster as it is able to use all available cores and a faster hashing module.<br />
<br />
<nowiki>*</nowiki> After this step is done, the client will silently do work to send out the public key over the network which will take about 2 minutes.</div>Chttps://wiki.bitmessage.org/index.php?title=Compiling_instructions&diff=20308Compiling instructions2013-09-18T12:46:14Z<p>C: /* With macports package manager */</p>
<hr />
<div>This page should help novice users run Bitmessage from the source code files.<br />
<br />
= Linux =<br />
<br />
== Resolve dependencies ==<br />
{| class="wikitable" border="1" width="80%"<br />
|-<br />
! Distribuion<br />
! Instructions<br />
|-<br />
! scope="row"| Debian-based (Debian, Ubuntu, Whonix, Raspbian, PiBang, others)<br />
| <small>''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]. Debian 7 "wheezy" works without problems.''</small><br />
sudo apt-get install python openssl git python-qt4<br />
|-<br />
! scope="row"| Arch Linux<br />
| <br />
sudo pacman -S python2 openssl git python2-pyqt4<br />
|-<br />
! scope="row"| Fedora<br />
| <small>''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.''<br />
</small><br />
su -c 'yum install -y http://linux.ringingliberty.com/bitcoin/f18/x86_64/bitcoin-release-1-4.noarch.rpm'<br />
su -c 'yum install -y python python-qt4 git openssl-compat-bitcoin-libs'<br />
<br />
Tell your system where to look for the library:<br />
echo 'LD_LIBRARY_PATH="/opt/openssl-compat-bitcoin/lib/"' >> ~/.bashrc && source ~/.bashrc<br />
|-<br />
! scope="row"| Red Hat Enterprise Linux (RHEL)<br />
| <small>''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.''<br />
</small><br />
su -c 'yum install -y http://linux.ringingliberty.com/bitcoin/el6/x86_64/bitcoin-release-1-4.noarch.rpm'<br />
su -c 'yum install -y python python-qt4 git openssl-compat-bitcoin-libs'<br />
Tell your system where to look for the library:<br />
echo 'LD_LIBRARY_PATH="/opt/openssl-compat-bitcoin/lib/"' >> ~/.bashrc && source ~/.bashrc<br />
|}<br />
<br />
== Download and run PyBitmessage ==<br />
Download the source code from github:<br />
<code>git clone <nowiki>https://github.com/Bitmessage/PyBitmessage $HOME/PyBitmessage</nowiki></code><br />
<br />
Run PyBitmessage:<br />
<code>~/PyBitmessage/src/bitmessagemain.py</code><br />
<br />
Check the wiki for [https://bitmessage.org/wiki/Daemon more information] on how to run Bitmessage as a daemon.<br />
<br />
== Upgrading ==<br />
To upgrade Bitmessage run the following commands:<br />
:<code>cd $HOME/PyBitmessage</code><br />
:<code>git pull</code><br />
<br />
= OS X =<br />
== With Homebrew package manager ==<br />
; Setup<br />
First, make sure you have not already installed Macports. Having both macports and homebrew on the same system is a recipe for disaster. <br />
Install Homebrew: <br />
ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"<br />
<br />
Update Python:<br />
brew install python<br />
<br />
; Install dependencies:<br />
brew install pyqt openssl<br />
<br />
; Download and run<br />
cd ~/Desktop<br />
git clone git://github.com/Bitmessage/PyBitmessage.git<br />
cd PyBitmessage<br />
python src/bitmessagemain.py<br />
<br />
== With macports package manager ==<br />
First, make sure you have not already installed Homebrew. Having both macports and homebrew on the same system is a recipe for disaster. <br />
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. <br />
<br />
; Select the macports installation that is right for your version of osx<br />
Read the instructions or take this as a reminder: Apple's XCode and their Command Line Tools are a prerequiste for Macports, go: https://www.macports.org/install.php<br />
<br />
; Install dependencies and needed tools<br />
sudo port install python27 py27-pyqt4 openssl<br />
sudo port install git-core +svn +doc +bash_completion +gitweb<br />
<br />
; Download and run<br />
cd ~/Desktop<br />
git clone git://github.com/Bitmessage/PyBitmessage.git<br />
cd PyBitmessage<br />
python2.7 src/bitmessagemain.py<br />
<br />
= Windows =<br />
# 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).<br />
# Test that it installed:<br />
## Open a command prompt by going to Start > Run. Type 'cmd' then press enter.<br />
## type 'python'. If python is installed, you should see the python version and the prompt: '>>>'<br />
## If you see a message such as: "'Python is not recognized as an internal or external command..." then you must add the python path to your path environmental variable:<br />
### Find the location where Python was installed (in particular, the location where python.exe exists). It might simply be in c:\Python2.7 <br />
### Follow [http://www.computerhope.com/issues/ch000549.htm these directions] to add the Python path to your path variable.<br />
### Close the command prompt window and reopen it. <br />
### Try running 'python' again.<br />
##Press Ctrl-Z to exit Python.<br />
# 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. <br />
# 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.)<br />
# 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'. <br />
# 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'. <br />
<br />
== If you change user interface files ==<br />
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. <br />
# In a command prompt, change directories to the directory of your .ui file.<br />
# Run 'pyuic4 example.ui > 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.<br />
<br />
If you add icons to bitmessage_icons.qrc, then you must run this command:<br />
pyrcc4 bitmessage_icons.qrc -o bitmessage_icons_rc.py<br />
<br />
== Optional: Compile into a stand-alone EXE ==<br />
# Download [http://www.pyinstaller.org/ PyInstaller].<br />
# Copy Bitmessage's 'src' directory to the PyInstaller directory (which contains pyinstaller.py). <br />
# Run 'pyinstaller.py --onefile --noconsole --icon="src\images\can-icon.ico" src\bitmessagemain.py'<br />
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:<br />
# 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.<br />
# Below the line "a.datas," add this line: <code>a.binaries + [('libeay32.dll', 'c:\\windows\\system32\\libeay32.dll', 'BINARY')],</code><br />
# Save and close<br />
# Run this command: pyinstaller.py bitmessagemain/bitmessagemain.spec<br />
<br />
If you do not have the libeay32.dll you can download it here. http://www.dll-files.com/dllindex/dll-files.shtml?libeay32</div>C