I had a website which allowed me to send and receive bitcoins.
To achieve this, I used the Blockchain API to process notifications of received bitcoins and the same to process sending Bitcoin to other addresses.
Due to the fact that Blockchain forced me to change my calling method because they changed the API using node.js
I was considering to move away from them.
However, I found lots of issues. The Blockchain wallet can be exported to MultiBit HD
and the source code is available but due to my limit knowledge of Java I am not able do replicate the same use case flow. Also, due to the fact that MultiBit HD
does not run as a service, I cannot use it on a vps server being that in case of restart the program does not start automatically.
So I tried to use BitcoinJ
directly to process payments the software performs the following steps:
I create a new wallet with a new address.
When the software starts, it ask via web services the remote site to see if there is some payments to be send to other addresses, creates a transaction and then processes it.
But again due to my limit knowledge of Java I was not able to intercept the payment received on the address of the wallet.
I had also a problem because the software works on the testnet but when I move it to the production network the program seems to start downloading all the Blockchain.
Being that I am much better at C# I also tried to use NBitcoin
but again with no success.
So I Google a while and found that it is possible to run Bitcoin Core and use an rpc call to process payments but Bitcoin Core needs to first download and validate all the Blockchain which is nearly 91GB.
So my question is this:
What I need is to code a service that uses a local wallet on a vps server (nix or win does not matter) with only a Blockchain address. When a new payment is received in the address the program gets the amount of the transaction and communicate its to a website using web-service. Programmatically, the same software asks the website if a new sending payment should be processed and in this case send the Bitcoin from the address.
The limitations are the following:
I do not want to use third party services or APIs like Blockchain or Coinbase. I do not want to download and process all the Blockchain.
Is there anyone out there that has faced the same difficulties and that can give some suggestions?
Thanks for any help