bmagent

command module
v0.0.0-...-dee8dd0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 29, 2017 License: ISC Imports: 45 Imported by: 0

README

bmagent

[Build Status] (https://travis-ci.org/monetas/bmclient)

bmagent is a daemon handling Bitmessage identities for a single user. It acts as an RPC client to bmd and an IMAP and SMTP server for interfacing with traditional e-mail clients like Thunderbird, Outlook and Mail. It extensively shares code and design philosophy with btcwallet.

Private keys can be generated both randomly and deterministically using a seed. Due to the sensitive nature of these private keys, they are stored encrypted on disk using a key derived from the passphrase.

bmagent is not a network node and requires connection to a running instance of bmd using JSON-RPC over websockets. Full bmd installation instructions can be found here.

No graphical frontends are planned as of right now. All communication between the user and bmagent can be done using IMAP/SMTP or JSON-RPC over websockets for the more advanced users or use cases.

Installation

Linux/BSD/POSIX - Build from Source
  • Install Go according to the installation instructions here: http://golang.org/doc/install

  • Run the following commands to obtain and install bm and all dependencies:

$ go get -u -v github.com/monetas/bmd/...
$ go get -u -v github.com/monetas/bmagent/...
  • bmd and bmagent will now be installed in either $GOROOT/bin or $GOPATH/bin depending on your configuration. If you did not already add to your system path during the installation, we recommend you do so now.

Updating

Linux/BSD/POSIX - Build from Source
  • Run the following commands to update bmagent, all dependencies, and install it:
$ go get -u -v github.com/monetas/bmd/...
$ go get -u -v github.com/monetas/bmagent/...

Getting Started

The follow instructions detail how to get started with bmagent connecting to a localhost bmd.

Linux/BSD/POSIX/Source
  • Run the following command to start bmd:
$ bmd -u rpcuser -P rpcpass
  • Run the following command to create your first identity and send its public key to the network:
$ bmagent -u rpcuser -P rpcpass --create
  • Run the following command to start bmagent:
$ bmagent -u rpcuser -P rpcpass
  • Start your e-mail client and connect to localhost:143 for IMAP (with TLS) and localhost:587 for SMTP (with TLS) with rpcuser as username and rpcpass as password.

If everything appears to be working, it is recommended at this point to copy the sample bmd and bmagent configurations and update with your RPC and IMAP/SMTP username and password.

$ cp $GOPATH/src/github.com/monetas/bmd/sample-bmd.conf ~/.bmd/bmd.conf
$ cp $GOPATH/src/github.com/monetas/bmd/sample-bmclient.conf ~/.bmclient/bmclient.conf
$ $EDITOR ~/.bmd/bmd.conf
$ $EDITOR ~/.bmclient/bmclient.conf

Issue Tracker

The integrated github issue tracker is used for this project.

License

bmagent is licensed under the liberal ISC License.

TODO

bmagent should only take what it needs from each object to determine whether it can be decrypted. Get the whole object if it can be decrypted.

There needs to be an implementation of email.IMAPMailbox for draft messages.

rpc interface.

Allow multiple users.

Documentation

Overview

Copyright (c) 2015 Monetas. Copyright 2016 Daniel Krawisz. Use of this source code is governed by an ISC license that can be found in the LICENSE file.

Directories

Path Synopsis
cmd
Package cmd provides for the interpretation of commands from a user interface, either email or rpc.
Package cmd provides for the interpretation of commands from a user interface, either email or rpc.
rpc
Package rpc is a generated protocol buffer package.
Package rpc is a generated protocol buffer package.
Package idmgr is a key manager designed for use with bmagent, but which can also be used independently.
Package idmgr is a key manager designed for use with bmagent, but which can also be used independently.
Package store is a persistent database for everything that bmclient needs for operation.
Package store is a persistent database for everything that bmclient needs for operation.
Package user provides functionality for implementing the IMAP and SMTP servers for bmagent.
Package user provides functionality for implementing the IMAP and SMTP servers for bmagent.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL