Difference between revisions of "Bitmessage"
(→See also: Running on a Debian server integrating with IMAP) |
(→bm-imap) |
||
Line 30: | Line 30: | ||
A very interesting thread started in BitcoinTalk [https://bitcointalk.org/index.php?topic=212490.0 here] about joining Bitmessage with [[Open Transactions]] to produce a completely p2p anonymous transaction system far superior to Bitcoin or Ripple in terms of security, anonymity and the power of financial instruments it provides. See more on the [[Open Transactions]] article. | A very interesting thread started in BitcoinTalk [https://bitcointalk.org/index.php?topic=212490.0 here] about joining Bitmessage with [[Open Transactions]] to produce a completely p2p anonymous transaction system far superior to Bitcoin or Ripple in terms of security, anonymity and the power of financial instruments it provides. See more on the [[Open Transactions]] article. | ||
− | == | + | == bm-imap == |
I've been finding Bitmessage difficult to run especially as our net connection can be very low bandwidth, so often I won't run it for days at a time and then miss out on messages. When I do run it I have to wait a long time before messages will arrive. So I've decided to run it on the server as a daemon (using [https://bitmessage.org/wiki/Daemon these settings] to start it automatically as a service), and then integrate it with Exim so that I can receive the messages in my usual inbox. This is quite secure because both sending and receiving is done over encrypted channel to our own server. | I've been finding Bitmessage difficult to run especially as our net connection can be very low bandwidth, so often I won't run it for days at a time and then miss out on messages. When I do run it I have to wait a long time before messages will arrive. So I've decided to run it on the server as a daemon (using [https://bitmessage.org/wiki/Daemon these settings] to start it automatically as a service), and then integrate it with Exim so that I can receive the messages in my usual inbox. This is quite secure because both sending and receiving is done over encrypted channel to our own server. | ||
+ | |||
+ | [http://svn.organicdesign.co.nz/listing.php?repname=tools&path=%2Fbm-imap%2F bm-imap] is used to utilise the functionality of bmwrapper on hosts that already have a running mail server and don't need an additional | ||
+ | SMTP and POP server running. | ||
+ | |||
+ | Incoming Bitmessage messages are now sent to a local email address, actually any email address would do, but if it's not local, then the security of using Bitmessage would be compromised. The email address that correspond to each Bitmessage address are added to a new "emailaddresses" section in the keys.dat configuration file in the form foo@bar.baz = BM-xxxxxxx. If an incoming Bitmessage's address does not match any of the email addresses then the first is used as a "catch all". | ||
+ | |||
+ | Outgoing messages are sent to a local user account that is configured to forward the message to Bitmessage. For example using Exim a filter can be set up in the local user's .forward file that uses the pipe command to send the message to this script for forwarding to Bitmessage. This user account is also the user under which Bitmessage should be running, and all them (PyBitmessage, PyBitmessage-Daemon, bmwrapper and bm-imap) should be located in this account's home directory. | ||
+ | |||
+ | === Installation === | ||
+ | First set up an unprivileged user account to run Bitmessage and all the scripts under. Install Bitmessage, Bitmessage-Daemon, bmwrapper and bm-imap into this user's home directory. Add a .config/PyBitmessage/keys.dat configuration file for Bitmessage with the API enabled and add a new "emailaddresses" section with mappings of each of your email addresses to Bitmessage addresses, e.g. | ||
+ | {{code|<pre> | ||
+ | [emailaddresses] | ||
+ | foo@bar.com = BM-2D8WUhjPbRABrRdZqQeYZUAJdpvxDfjej4 | ||
+ | bar@baz.com = BM-2D7F9ILxyeVXqrMsfyRcPZuhzhDXjMtkbQ | ||
+ | </pre>}} | ||
+ | |||
+ | Then set up an email account for this user which will be the generic account through which all outgoing Bitmessage messages will sent. You'll need to set up a way for the emails to be sent to the bm-imap/imap-out.py script instead of to standard delivery. For Exim this can be done by using a filter in a .forward file in the user's home directory that uses the pipe command. Here's an example filter which uses a condition to check that it's a Bitmessage recipient incase the user also has normal mail delivered too. | ||
+ | {{code|<pre> | ||
+ | # Exim filter | ||
+ | if | ||
+ | $header_to matches "^BM-" | ||
+ | then | ||
+ | pipe "$home/bm-imap/imap-out.py" | ||
+ | endif | ||
+ | </pre>}} | ||
== See also == | == See also == |
Revision as of 14:49, 19 August 2013
Bitmessage is a peer-to-peer communications protocol based on the Bitcoin crypto-currency used to send encrypted messages to another person or to many subscribers. It is decentralized and trustless, meaning that you need-not inherently trust any entities like root certificate authorities. It uses strong authentication which means that the sender of a message cannot be spoofed, and it aims to hide "non-content" data, like the sender and receiver of messages, from passive eavesdroppers like those running warrantless wiretapping programs. If Bitmessage is completely new to you, you may wish to start by reading the whitepaper.
Contents
Installation
Installation is very simple on modern GNU/Linux based operating systems. You may need to install python-qt4 first, then simply git clone it as shown here. And create a desktop launcher for it as shown in our GNOME article.
Use your mail client as the UI
Brilliant little script that sets up a basic POP3 and SMTP server on localhost to give Bitmessage an email interface for example that Thunderbird can connect to. This means the messages can be organised in a local folder structure or easily coped to your IMAP structure.
- First enable the Bitmessage API in your local keys.dat configuration file.
- Install the PyBitmessage-Daemon script into your home folder (I used git clone for easy update) and run it with python daemon.py.
- Install the bmwrapper into your home (I used git clone again)
- Set up an account on your mail client to localhost, POP3 on 12344 and SMTP on 12345 as shown here.
- Create a .desktop file that runs a launcher shell script
- Create your launcher script that runs another separate launch script for each of the three e.g.
- Create each of the three launchers one to run each of the scripts with python2.7, for example the first of mine is:
- Ensure all the launchers have executable permission. This complicated procedure is required because each one is a daemon that doesn't return and won't run in the background using the ampersand.
- You can check if they're running with netstat -nlp and check you have apps listening on 8442, 12344 and 12345, e.g.
Bitmessage + Open Transactions
A very interesting thread started in BitcoinTalk here about joining Bitmessage with Open Transactions to produce a completely p2p anonymous transaction system far superior to Bitcoin or Ripple in terms of security, anonymity and the power of financial instruments it provides. See more on the Open Transactions article.
bm-imap
I've been finding Bitmessage difficult to run especially as our net connection can be very low bandwidth, so often I won't run it for days at a time and then miss out on messages. When I do run it I have to wait a long time before messages will arrive. So I've decided to run it on the server as a daemon (using these settings to start it automatically as a service), and then integrate it with Exim so that I can receive the messages in my usual inbox. This is quite secure because both sending and receiving is done over encrypted channel to our own server.
bm-imap is used to utilise the functionality of bmwrapper on hosts that already have a running mail server and don't need an additional SMTP and POP server running.
Incoming Bitmessage messages are now sent to a local email address, actually any email address would do, but if it's not local, then the security of using Bitmessage would be compromised. The email address that correspond to each Bitmessage address are added to a new "emailaddresses" section in the keys.dat configuration file in the form foo@bar.baz = BM-xxxxxxx. If an incoming Bitmessage's address does not match any of the email addresses then the first is used as a "catch all".
Outgoing messages are sent to a local user account that is configured to forward the message to Bitmessage. For example using Exim a filter can be set up in the local user's .forward file that uses the pipe command to send the message to this script for forwarding to Bitmessage. This user account is also the user under which Bitmessage should be running, and all them (PyBitmessage, PyBitmessage-Daemon, bmwrapper and bm-imap) should be located in this account's home directory.
Installation
First set up an unprivileged user account to run Bitmessage and all the scripts under. Install Bitmessage, Bitmessage-Daemon, bmwrapper and bm-imap into this user's home directory. Add a .config/PyBitmessage/keys.dat configuration file for Bitmessage with the API enabled and add a new "emailaddresses" section with mappings of each of your email addresses to Bitmessage addresses, e.g.
Then set up an email account for this user which will be the generic account through which all outgoing Bitmessage messages will sent. You'll need to set up a way for the emails to be sent to the bm-imap/imap-out.py script instead of to standard delivery. For Exim this can be done by using a filter in a .forward file in the user's home directory that uses the pipe command. Here's an example filter which uses a condition to check that it's a Bitmessage recipient incase the user also has normal mail delivered too.
See also
- Bitmessage home page
- Namecoin and Bitmessage project proposal - using Namecoin to make Bitmessage addresses human-readable
- Privacy
- Peer-to-peer
- Bitcoin