I am new to to Bitcoin and was allocated a project to develop a (middle-man)service that can allow a person (using a mobile phone with no Internet connection) to use Bitcoin. Since Bitcoin Core is the software that enables a person to use the currency, does this mean my developed software should find a way to communicate with the Bitcoin core software installed on my desktop computer? Or are there any other applications that should be installed?

  • I'm not entirely clear what you're trying to develop. To initiate transactions and to check wallet balances, a device must either be capable of connecting to the Bitcoin P2P network (typically via the Internet), or must communicate with a server which is then connected to the P2P network. Are you trying to develop the latter in some form? Jun 12 '15 at 13:35
  • Hi Christopher, yes I am developing the latter. So you saying a server should connect to the P2P network and by P2P network that means the Bitcoin Core software right?
    – Nelly
    Jun 12 '15 at 13:48
  • Bitcoin Core is a piece of software which connects to the P2P network, however it's not the only one. In your scenario, are you saying that you intend to maintain an Internet-connected server, and that you have a network where mobile phones can connect to this same server, however they cannot connect directly to the Internet? Jun 12 '15 at 13:56
  • Yes, that's what I mean Christopher
    – Nelly
    Jun 12 '15 at 14:05
  • Which other softwares do I require? Would that require libraries such as bitcoinj?
    – Nelly
    Jun 12 '15 at 14:13

Here are some considerations and recommendations. I hope that someone can provide a more complete answer than this one, though.

First off, creating new wallet software and getting it right is deceptively difficult, even if you're starting off with a nice library such as Bitcoinj. Unless you feel extremely comfortable with Bitcoin in general, I'd recommend that you use (to the extent possible) an existing full wallet implementation with a good reputation.

On the server side, you'll probably want wallet software you can easily interface with, either by directly calling its library functions, or via an RPC interface. Here are three such options you may want to consider:

Take a look at the bitcoin.org choose-your-wallet page for a rough comparison. Please also note that the latter two are deterministic wallets; unfortunately there's less (no?) API documentation available for these two.

You should also take note that Armory has a rather broad interpretation of its AGPLv3 license—if you have a company General Counsel, I'd definitely ask them to consider this before proceeding.

On the server side, you'll need to develop your own accounting database to track individual account balances (do not use the Bitcoin Core deprecated "accounts" feature). Read up on cold storage if you don't have enough insurance to cover the loss of all of your bitcoin, and split your bitcoin between hot (on-server) and cold (off-server) wallets.

I can't offer much other insight than the above, except perhaps to guess that client-server authentication issues are likely to be your biggest potential for bitcoin loss. If you're not an expert in client-server security, or for that matter in security issues related to your chosen mobile platform(s), you should consider consulting with someone who is.

  • Okay Christopher,sounds like quite a task and it helps a lot. Thank you so much, I hope I will be getting more answers from others who contribute.
    – Nelly
    Jun 12 '15 at 16:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.