Bitcoin Forum

Other => Beginners & Help => Topic started by: Sant001 on July 05, 2012, 04:50:36 AM



Title: Some Questions
Post by: Sant001 on July 05, 2012, 04:50:36 AM
General question I still have about Bitcoin:

1. What happens if I try to send money and input the address incorrectly?

2. What happens if I try to send money to myself (to an address that belongs to my own wallet)?

3. I have many receiving addresses saved on my Bitcoin client, what happens if I delete one? Can I still receive money on this address?

4. How many unique addresses can a wallet generate? How to make sure the address is unique if they're generated randomly (I assume)?

5. When I upgrade the client say from version 0.62beta to 0.63 is there a risk of corrupting or losing the wallet?

And some questions regarding accepting Bitcoins on a web store:

6. How can I generate a couple thousand different addresses? Is there an easy way to do so?

7. I can check whether an address received a payment simply by using the BlockExplorer, correct?

8. So a way to automate the payment confirmation at my web store would be to keep checking the BlockExplorer for the corresponding address for a certain period of time, say 15 minutes that would be the expiration for that order. But what if I had a huge amount of orders/addresses to check, is there a less bandwidth consuming way to check whether an order has been paid? I'm not interested on 3rd party services at this point such as Bitpay.

If you know the answer to any the questions please share it, thanks!   :)


Title: Re: Some Questions
Post by: CIYAM on July 05, 2012, 05:04:58 AM
1. What happens if I try to send money and input the address incorrectly?

The addresses contain a "checksum" at the end so if the address if you put in an invalid address then that will be detected and no sending will occur. If you put in the *wrong* address (but one that is *valid*) then bad luck - bitcoins are gone (so be careful)!

2. What happens if I try to send money to myself (to an address that belongs to my own wallet)?

No problem to do that at all.

3. I have many receiving addresses saved on my Bitcoin client, what happens if I delete one? Can I still receive money on this address?

I don't think the client actually has any way to delete an address but if you were to somehow *lose* the private key to an address you would effectively no longer own that address (and likely nor would anyone else).

4. How many unique addresses can a wallet generate? How to make sure the address is unique if they're generated randomly (I assume)?

A very huge number - so big that the chance of any collision (or *birthday*) is probably less likely than our entire universe being a computer simulation. :)

5. How can I generate a couple thousand different addresses? Is there an easy way to do so?

Just change the "keypool=<n>" setting in bitcoin.conf to 2000 (and restart the client).

6. I can check whether an address received a payment simply by using the BlockExplorer, correct?

Yes - and also http://blockchain.info.

7. So a way to find out if an order was paid is to keep checking the BlockExplorer for the corresponding address for a certain period of time, say 15 minutes that would be the expiration for that order. But what if I had a huge amount of orders/addresses to check, is there a less bandwidth consuming way to check whether an order has been paid? I'm not interested on 3rd party services at this point such as Bitpay.

Not sure why you would want to use a 3rd party to be doing this as the client itself will tell you when you each tx is received automatically (so no need to use a website or service for that).


HTH,

Ian.


Title: Re: Some Questions
Post by: Sant001 on July 05, 2012, 05:36:03 AM
7. So a way to find out if an order was paid is to keep checking the BlockExplorer for the corresponding address for a certain period of time, say 15 minutes that would be the expiration for that order. But what if I had a huge amount of orders/addresses to check, is there a less bandwidth consuming way to check whether an order has been paid? I'm not interested on 3rd party services at this point such as Bitpay.

Not sure why you would want to use a 3rd party to be doing this as the client itself will tell you when you each tx is received automatically (so no need to use a website or service for that).


HTH,

Ian.


Thanks for the answers Ian!

I want my web store to confirm payments automatically, so I'm trying to come up with a simple way to do that.

I thought of setting up a cronjob at our linux server to keep checking for payments, upon finding a payment it will check if the amount is correct and check the order status to Paid.


Title: Re: Some Questions
Post by: CIYAM on July 05, 2012, 05:43:59 AM
I want my web store to confirm payments automatically, so I'm trying to come up with a simple way to do that.

I thought of setting up a cronjob at our linux server to keep checking for payments, upon finding a payment it will check if the amount is correct and check the order status to Paid.

I think what you are probably going to need to study is this: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list

You can use the "bitcoind" console interface to check for recent transactions (see the command *listtransactions*) which you could schedule to run at regular intervals (you just then need to be able to parse the returned JSON formatted data).

The following is a simple usage example:

Code:
./bitcoind -rpcpassword=needs_a_password_here listtransactions


Title: Re: Some Questions
Post by: Sant001 on July 05, 2012, 05:57:03 AM
I want my web store to confirm payments automatically, so I'm trying to come up with a simple way to do that.

I thought of setting up a cronjob at our linux server to keep checking for payments, upon finding a payment it will check if the amount is correct and check the order status to Paid.

I think what you are probably going to need to study is this: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list

You can use the "bitcoind" console interface to check for recent transactions (see the command *listtransactions*) which you could schedule to run at regular intervals (you just then need to be able to parse the returned JSON formatted data).

The following is a simple usage example:

Code:
./bitcoind -rpcpassword=needs_a_password_here listtransactions


Would that require the private keys to be kept on the server?


Title: Re: Some Questions
Post by: CIYAM on July 05, 2012, 06:20:10 AM
Would that require the private keys to be kept on the server?

Well the wallet would need to be on the server, however, if it has been encrypted then the private keys should be safe (as the listtransactions command doesn't actually need to see the private keys to work).


Title: Re: Some Questions
Post by: mollison on July 05, 2012, 06:48:57 AM
I want my web store to confirm payments automatically, so I'm trying to come up with a simple way to do that.

https://bit-pay.com/

I think MtGox may have something to do this as well.


Title: Re: Some Questions
Post by: Sant001 on July 05, 2012, 03:31:05 PM
I want my web store to confirm payments automatically, so I'm trying to come up with a simple way to do that.

https://bit-pay.com/

I think MtGox may have something to do this as well.

I believe they're currently accepting US based businesses only. From their website:

Quote
Bit-pay is now available to businesses in the United States!

We don't have every possible feature yet, so we are asking merchants to apply and tell us about their business and their specific payment needs. Applications are reviewed within 24 hours.

Besides that, I will be processing initially very small volume of coins so I will have no need to have them converted instantly to fiat, so no need for a payment processor for me now.


Title: Re: Some Questions
Post by: mollison on July 06, 2012, 08:54:23 AM
One thing you could do is accept payments in MtGox BTC coupons. MtGox has an API that makes this reasonable to do. (I am not sure if it's compatible with their TOS, but I would assume so.)

So a customer would deposit BTC at MtGox, create a coupon of the desired amount, and input that coupon to a form on your website.

It only takes a few lines of code for you to redeem that coupon, which just places the equivalent BTC in your MtGox balance. And their API will tell you how much the coupon was worth, so you can verify that you really got the BTC.

I'm planning to use this technique for a little project I'm working on. In my case, I also will allow users to withdraw BTC from my service by producing a coupon for them (which can also easily be done with the API).


Title: Re: Some Questions
Post by: Meni Rosenfeld on July 06, 2012, 09:30:07 AM
5. When I upgrade the client say from version 0.62beta to 0.63 is there a risk of corrupting or losing the wallet?
There shouldn't be a problem, but the risk is there. It's always a good idea to back up your wallet, both regularly and specifically before upgrading the client.

I believe they're currently accepting US based businesses only. From their website:
...
Besides that, I will be processing initially very small volume of coins so I will have no need to have them converted instantly to fiat, so no need for a payment processor for me now.
You don't have to convert to USD with Bit-Pay, you can simply let them handle the BTC payments for you and have them worry about checking that the coins were sent. They also have all sorts of apps, buttons and forms. Their fee for BTC payments is about 1%, and I think it's not limited to any country.


Title: Re: Some Questions
Post by: Sant001 on July 07, 2012, 01:46:47 AM
I want my web store to confirm payments automatically, so I'm trying to come up with a simple way to do that.

I thought of setting up a cronjob at our linux server to keep checking for payments, upon finding a payment it will check if the amount is correct and check the order status to Paid.

I think what you are probably going to need to study is this: https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_Calls_list

You can use the "bitcoind" console interface to check for recent transactions (see the command *listtransactions*) which you could schedule to run at regular intervals (you just then need to be able to parse the returned JSON formatted data).

The following is a simple usage example:

Code:
./bitcoind -rpcpassword=needs_a_password_here listtransactions


So I'm taking the next step which is install the bitcoind. I first tried doing it by myself, downloaded the source code and was reading the build instructions.

I then installed the dependencies such as Boost etc, all went without issue. But when I tried to compile the bitcoind it failed with errors related to Boost, I think it didn't find it's header files or something...

I have then tried the script made available here (http://bitcointalk.org/index.php?topic=65818.20), it's a script to install bitcoind on CentOS which is the system Im using.

The script first downloads and builds all dependencies and while compiling Boost it produced errors.

This boost software seems rather problematic in Centos...

Any tips or links on how to install bitcoind on Centos will be much appreciated


Title: Re: Some Questions
Post by: CIYAM on July 07, 2012, 04:22:40 AM
I have then tried the script made available here (http://bitcointalk.org/index.php?topic=65818.20), it's a script to install bitcoind on CentOS which is the system Im using.

The script first downloads and builds all dependencies and while compiling Boost it produced errors.

This boost software seems rather problematic in Centos...

Any tips or links on how to install bitcoind on Centos will be much appreciated

From that thread there was a link to this: https://github.com/weex/bitcoind-centos in which the README contains the following:

Code:
This was tested on both 32 and 64-bit versions of CentOS 5.

Are you using the same version?


Title: Re: Some Questions
Post by: Sant001 on July 07, 2012, 02:29:00 PM
Are you using the same version?

I believe mine is 5.5 or 5.6