2

I've implemented bitcoin accepting on my web service by generating many addresses on my local machine and uploading them to the database for associating with each new order. After that payment script just check the address balance every few minutes and delivers order if success. Is there a similar way to accept ether payments? (without using external services) Can I pregenerate many pairs (private key / address) and check balances with blockchain explorer? What problems has this approach? Is it easy to sweep all these account's ether into one? Thanks!

1

You can do something similar to what you're doing with Bitcoin, but with Ethereum. The simplest way may be to run your own Ethereum node (since you don't want to use external services). From here, you can generate an account/address on-demand. For example, you can do this from the geth console using [personal.newAccount("passphrase")][1] or with nethereum. You can then poll the account balances until the desired amount is received (you might want to use a back-off algorithm like this or simply put a deadline for payment receipt) and then do the rest of your backend stuff to fulfill the order. If you accept payments this way, you can easily send the received amount into a master account. The downside to this is, unless you have replication, if your backend system goes down, you might lose the private keys for the accounts you just created. Also, hot wallets are involved, so theft is made easier (but if someone can compromise the backend, they can just have payments sent to their own accounts, anyway).

You can avoid this by pre-generating a set of accounts, as you suggested, using an automated method as described above. You are still able to check the balances of the accounts for payment purposes, but you won't be able to sweep the ether automatically. Instead of using a plain account, you could potentially create a contract to do that automatically, but would need to spend more gas (either you or your clients). If you use this method, you don't need to run your own node and can use something like a public blockchain explorer. The downside is you now need to trust the explorer to a) not give you false data, b) maintain good uptime, and c) not change their API all of a sudden.

See also How to list transactions from account address? .

  • Thank you very much! Have I understood right that I can generate ether accounts without connection to nodes like bitcoin ones? Can I perform a one time batch sweep having all private keys? Are there any wallets that allows to do so? – silentfobos Aug 5 '17 at 20:20
  • Yes, you can generate ether accounts fully offline. I'm not sure what you mean by a "one time batch sweep", but you can write a short program to send all the ether from each account you control to one single account. geth can be scripted from its console and you can write something to connect with geth and Parity's RPC interface if you prefer. – lungj Aug 5 '17 at 20:25

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.