What is it?

Notbit is a minimal client for the Bitmessage network. It is designed to work as a daemon with no UI. The idea is that it will store messages in the standard maildir format and accept new messages via a process like sendmail. That way it can be used with any compliant mail program such as Evolution or Mutt. The software is open source under a permissive MIT license.

Notbit is a work in progress and currently has some limitations. It can already send and receive messages to regular addresses but it doesn't yet support channels or broadcasts.

Disclaimer

I am not a cryptography expert and I don't know whether Notbit or the Bitmessage protocol is actually safe for secure communications. I wouldn't recommend using for anything highly sensitive.

Getting started

Notbit currently only works on Linux and requires some command line use. The simplest way to get going is to use the pre-built binary installer script. If you're not comfortable with running a binary, you can alternatively grab a source tarball or clone the git repo. To use the binary installer, first download it like this:

wget http://www.busydoingnothing.co.uk/notbit/notbit-0.6.sh{,.asc}

If you want to verify the installer you can use my GPG key like so:

wget -O - http://www.busydoingnothing.co.uk/neilroberts.asc | gpg --import
gpg --verify notbit-0.6.sh{.asc,}

Now you can run the installer with the following command. This will create three executables in ~/bin which is typically already in your $PATH. On some systems you may need to restart your terminal for it to work.

bash ./notbit-0.6.sh

Running Notbit

Once Notbit is installed you can run it by just typing notbit. By default this will output logging messages to stdout. It will immediately try to connect to the network and start downloading messages. If instead you want to run notbit in the background you can type notbit -d which will launch it as a daemon. In that case you can see the logging messages by typing:

tail -f ~/.local/share/notbit/notbit.log

If you want to exit the daemon you can type killall notbit. This will do a graceful shutdown.

Creating an address

Once Notbit is running you can type notbit-keygen to create a new address. The new address will be printed on the standard out. The private keys for the address are saved in notbit's config files so you can immediately start receiving messages to this address. If you want to spend a bit of extra processing time in order to get a shorter address you can also pass the -z option to notbit-keygen. The ‘-l <label>’ option can be used to specify a label for the key. There are also other less useful options which can be seen in the help by typing notbit-keygen -h.

Importing addresses

If you already have some addresses from the official PyBitmessage client you can import these directly by copying over the keys.dat. file. To do this, make sure Notbit is not currently running and then type:

cp ~/.config/PyBitmessage/keys.dat ~/.local/share/notbit/

Reading messages

If Notbit receives a message for one of the addresses in keys.dat it will write it out in maildir format. maildir is a standard format which can be read by most mail programs such as mutt. By default the maildir will be ~/.maildir. You can change this with the -m option.

Sending messages

You can send messages by running the notbit-sendmail command. This takes a message formatted as RFC822 mail message on the standard input. This is the same format as used by sendmail so you can use notbit-sendmail as a drop-in replacement to send messages from almost any mail client. The addresses used can not be real email addresses but instead they must be of the form <bitmessage-address>@bitmessage. For example, you could type the following to create a new address and use it to send a message to the echo server to test it:

echo -e "From: "`notbit-keygen`"@bitmessage\\n"\
"To: BM-orkCbppXWSqPpAxnz6jnfTZ2djb5pJKDb@bitmessage\\n"\
"\\n"\
"Hello from Notbit\\x21" | notbit-sendmail

Note that any messages you send must have the content type set to text/plain and can't contain any attachments. This means that HTML messages won't work. They must use either the us-ascii encoding or UTF-8.

Integrating with a mail client

Notbit can be used with any mail client that supports maildir and local delivery via sendmail. For example, to configure an account with Evolution you would do the following:

You should now be able to send a Bitmessage using Evolution. Just remember to add ‘@bitmessage’ to any address you send to and make sure you select ‘Plain text’ as the format (HTML emails and attachments aren't supported by Bitmessage). Don't worry if your name appears in the From box next to your address as this information won't be sent over Bitmessage. Only the subject and the body of the mail are sent. Screenshot of Evolution

Contact

If you have any comments or suggestions for Notbit, please contact me on BM-NBPc2YUHUYrfGEUzsQapnTDXvhNDp2eh.