Author

Topic: Trying to accept BTC on my website without relying on third party services (Read 582 times)

sr. member
Activity: 261
Merit: 263
The large size of wallet.dat is not a problem for bitcoind, you should use a separate address for every payment.
There are no 'delete address' option in standard bitcoind command list. However some services (like our) require bitcoin address to be deleted. You may save all private keys of unspent transactions and import them to the new wallet.

newbie
Activity: 14
Merit: 0
you might set up the wallet on a separate machine so that it can only communicate with the main server
hero member
Activity: 588
Merit: 500
IMO You need an experienced programmer effort for that (if you aren't) But I agree that you should generate an address each time for confirmation of each order separately.
legendary
Activity: 1232
Merit: 1001
Why do you need to create new addresses? Why not get them all sent to just one like you would with PP etc.

If you create a new one for each payment you can automate thing. 1.2 BTC send to address XXX = Payment for Order number XXX received.

The ability to have a "Account" for each payment of customer gives provides advantages in proof, accounting, automation and privacy for both customer and supplier (if used proper)

Sadly I don't know best practice examples for this, maybe you could start with blockchain? https://blockchain.info/api
legendary
Activity: 1039
Merit: 1004
Using a separate address for each payment is actually a good practice, as it enables you to know exactly which customer has paid (if you provide your service after payment, it's more or less a necessity to do it that way).

Unless you expect incredible amounts of transactions, bitcoind should do just fine. One thing that you should do is to regulary send the coins to a cold wallet address which is not controlled from that internet-connected server. That way, your loss would be minimized.
If you're really paranoid, you might set up the wallet on a separate machine so that it can only communicate with the main server through a narrowly defined channel. In such a setup, the wallet machine would only communicate freshly generated addresses to the web server, and would inform the web server about incoming payments to such addresses.

Onkel Paul
legendary
Activity: 1232
Merit: 1195
Why do you need to create new addresses? Why not get them all sent to just one like you would with PP etc.
full member
Activity: 168
Merit: 100
Hi,
I am trying to accept Bitcoins on my website without relying on any third party services. This means I don't want to use Blockchain.info's notify service, or even Electrum since it depends on an Electrum server.

This leaves me with only one option, Bitcoind. I can interface with it through RPC without a problem, but I wasn't able to find anything that explains the 'good practices'.

Should I create a new address for each payment? After some point, wouldn't my wallet.dat become uncontrollably large? How many addresses can Bitcoind watch for before it gets sluggish? Since I can't delete addresses from my wallet.dat, I would have to delete it and recreate it in certain intervals. This seems like a bad solution, what some good practices here?
Jump to: