text:
Coinbase (or other service) conversion to fiat: how is that recorded in the Blockchain?
This is probably already answered, but I searched and couldn't find a similar question or answer.
If I use a service such as Coinbase to buy Bitcoin, Coinbase generates a BC address for me and that's recorded in the blockchain.
If I convert to fiat (i.e., USD) all BC at the address and send that USD to my bank account, Coinbase records that in my account. Since my account with Coinbase is private, only I know I have cashed out.
But how is that "cash out" and transfer to my bank account recorded in the blockchain? Does the blockchain show it is a cash out from Coinbase?
Or are there no records in the blockchain, other than the one BC address that shows a last transaction to 0?

If I use a service such as Coinbase to buy Bitcoin, Coinbase generates
a BC address for me and that's recorded in the blockchain.

No, it's not recorded in the blockchain, but in their own systems, basically they associate that address to your coinbase account

If I convert to fiat (i.e., USD) all BC at the address and send that
USD to my bank account, Coinbase records that in my account. Since my
account with Coinbase is private, only I know I have cashed out.
But how is that "cash out" and transfer to my bank account recorded in the blockchain
Does the blockchain show it is a cash out from Coinbase?

the address(es) coinbase create for you, are just used to know, in case you deposit funds on your account, where you can send that money to, but it's not used for anything else
Basically they associate in their own system that :

your account A is associated to AddressX
when you want to deposit funds to coinbase, you have to send BTC to that AddressX

Coinbase then have software that monitor addresses they owns, like AddressX (because not your key, not your money, so technically AddressX is coinbase address,not your)
When they see that a deposit has been done on your AddressX, they update their system (aka their (R)DBMS where they store their users data) and add the received BTC to your Account balance, then very likely they move funds from AddressX to a cold storage wallet (but this may vary) because BTC rarely are left on the deposited address but moved somewhere safer
When you then want to convert, they have just to send FIAT to your bank account and update your account balance, without moving any funds at all (even if I think they move funds not associated to users somewhere else, but this is just a guess and anyway it's an implementation detail)
Basically your AddressX can just be considered like a door to enter in their system, nothing more, and the balance that you see listed on that AddressX is not guaranteed to be the value you have in your coinbase account.
--
A proof that a strict relation between AddressX and your Coinbase account balance
doesn't exists is easily verifiable by looking a transaction when you WITHDRAW from coinbase to some other BTC wallet, in that case you'll see that the INPUTS used to generate the transaction to move funds, aren't related to AddressX

Thanks! That explains why I don't see Coinbase transactions using Blockchain explorer.


text:
Bitcoin not reaching Recipient
I would like to find out if its possible for a Bitcoin recipient not to receive a payment while on my side(Sender) it shows that the payment was successful? See print screen of payment below, the payment was done more than 36 hours ago.

Either the payment went through or it did not. Are you sure that 1Pnw... is the correct address? Did you click the verify on blockchain.info button?

Have a look at https://blockchain.info/address/1PnwbcQPfWwBPayBvvpcVwK6NjuEmubQTB?sort=0 to check if your payment is on it.

source: Stack Exchange

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/

sort: votes


text:
Linux Mint: root running bitcoind on startup?
Every time I start my machine, root user tries to run bitcoind. I've checked .profile and such, but there don't seem to be any answers there. what else could be making my computer try to run the daemon?

There are a couple of options where this could be loaded on startup, check the root crontab file (crontab -e) also look for files in the /etc/init.d/ folder it could be included in rc.local or another startup script.

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/3.0/


text:
Create raw transaction in python
I have a private key (raw + WIF) and I want to send all funds from that address - fee to another address.
Is there a raw python function that can do that for me ? I will broadcast the tx manually.
I tried to look into electrum source code but I find it to complicated for this task please help.

pycoin is probably your best bet. You need the utxo first, which you'll need to look up somewhere (blockchain.info is fine). Once you have the utxos, they'd need to be TxIns like this:
tx_in = TxIn("<utxo hash in binary here>", <utxo position, usually between 0 and 5>)
script = standard_tx_out_script(address)
tx_out = TxOut(<btc amount to send - fee>, script)
tx = Tx(1, [tx_in], [tx_out])
lookup = <this part you have to figure out>
tx.sign(lookup)
print tx.as_hex()

You can take the results and paste to something like blockchain.info's send transaction page.
NOTE: It's very easy to screw this up and have a too-high tx fee or lose your coins altogether. I would NOT recommend it. Install Armory and import the key or do the same using Mycelium. It's a lot safer to do it that way.


text:
rpc cookie authentication
I am getting a message when I start bitcoind :
Config options rpcuser and rpcpassword will soon be deprecated. Locally-run instances may remove rpcuser to use cookie-based auth, or may be replaced with rpcauth. Please see share/rpcuser for rpcauth auth generation
What is cookie based auth and how can I use it ?
Thanks

Cookie based authentication is used when no rpc password is provided. The 0.12 release of Bitcoin Core had the following to say about it:

When no -rpcpassword is specified, the daemon now uses a special
  ‘cookie’ file for authentication. This file is generated with random
  content when the daemon starts, and deleted when it exits. Its
  contents are used as authentication token. Read access to this file
  controls who can access through RPC. By default it is stored in the
  data directory but its location can be overridden with the option
  -rpccookiefile.
This is similar to Tor’s CookieAuthentication: see
  https://www.torproject.org/docs/tor-manual.html.en
This allows running bitcoind without having to do any manual
  configuration.

If all you use is bitcoin-cli without need for the RPC user/password stuff, you should probably just comment out or remove rpcuser=XXX and rpcpassword=YYY from bitcoin.conf and restart bitcoin. It "should just work [tm]".
If you need a specified rpc user/pass combo, you need to switch to using rpcauth instead of rpcuser/rpcpassword.
The rpcauth is described as

Username and hashed password for JSON-RPC connections. The field  comes in the format: <USERNAME>:<SALT>$<HASH>. A canonical python script is included in share/rpcuser. This option can be specified multiple times

In share/rpcuser (on github) there is a Python script which lets you create such a user/password combo (note that you are given the password, you do not get to specify it yourself).
Grab that python script, then run it. E.g.
$ python ./rpcuser.py foo
String to be appended to bitcoin.conf:
rpcauth=foo:a14191e6892facf70686a397b126423$ddd6f7480817bd6f8083a2e07e24b93c4d74e667f3a001df26c5dd0ef5eafd0d
Your password:
VX3z87LBVc_X7NBLABLABLABLA

Then replace rpcuser with foo and rpcpassword with VX3z87LBVc_X7NBLABLABLABLA wherever you are connecting to the bitcoind RPC.

I tried to do this, but when I removed rpcuser and rpcpassword from bitcoin.conf I started to get this message:  No rpcpassword set - using random cookie authentication Generated RPC authentication cookie. I added rpcauth generated by rpcuser.py but it doesn't seem to recognize it. What am I missing?

@hsmiths You can use the randomly generated cookie file in the bitcoin data directory, or you can add an rpcauth line to bitcoin.conf. Not sure why the rpcauth line isn't recognized. I've used it in the past.

@hsmiths Yor message 'No PRC password set...' is actually a message that says cookie auth is working.

This doesn't actually describe how to use "cookie-based" authentication. Instead it describes how to use "rpcauth", which was not the question. This should not be the "accepted" answer.

For the record, the script rpcauth.py only works with python3.

Also you can give the password to rpcauth.py yourself by running it as python3 /path/to/rpcauth.py myusername -. The final - means the script will prompt you for the password. Works with bitcoin-core v0.18.

The http remote procedure call (RPC) interface enforces "basic access authentication". "Cookie-based" authentication is misleading because it doesn't actually use http cookies. The short story is that on startup if you don't otherwise specify credentials via rpcuser+rpcpassword, bitcoind will write a file named ".cookie" in the data directory with contents "__cookie__:abc123" where __cookie__ is the basic auth username and abc123 is a randomly generated password. On shutdown, bitcoind deletes the file.

"cookie" here isn't a reference to HTTP cookies, but to an authentication cookie, like for example X11 uses for authentication. I believe that use of the term cookie actually predates HTTP itself.

@PieterWuille I believe that use of the term cookie actually predates computers themselves :p Whatever it may mean elsewhere, in the context of an http interface, "cookie" is most naturally interpreted as "http cookie". If you don't believe me, give a dozen developers an http URL, a file named ".cookie", and the statement "its contents are used as authentication token", and see how many try to put the contents into a "Cookie" header. See also https://bitcoin.stackexchange.com/questions/43769/using-php-with-rpc-and-cookie

I meant the term cookie specifically in the meaning of "a file in the local filesystem a client can read to obtain an authentication token for a server running on the same system". It may be confusing to people who aren't familiar with the concept, but it certainly isn't a misnomer - it's the established name for that concept.

In the recent version of Bitcoin Core, the name of script is rpcauth.py and its located in ./bitcoin/share/rpcauth/rpcauth.py (available on Bitcoin Core's github repository as well, share/rpcauth/rpcauth.py).

I was struggling with this same difficulty and managed to make it work. Obviously, bitcoin-cli must be made aware of credentials to use when making RPC calls, and I am guessing here that bitcoin-cli expects the credentials specified with variablies rpcuser and rpcpassword. However, these two variables are unnecessary to allow one to authenticate when making an RPC call via HTTP. So for bitcoin-cli's sake, bitcoind generates the .cookie file when rpcuser and rpcpassword are not defined in bitcoin.conf
Another thing I wanted to point out is that one can actually have a password of their choosing when using ./share/rpcauth/rpcauth.py to generate credentials. Simply pass to it two parameters as such ./share/rpcauth/rpcauth.py <username> <password> and you'll have it.

At the end of your first paragraph, I believe you meant to write bitcoin.conf instead of bitcoin.info.

Yes, most probably. Thanks for pointing that out.

I did not happen to have a full implementation of bitcoin, but found the rpcauth.py script in the "share" directory under a litecoin build that I have. I seems to be coin agnostic and worked great!

i solved this for my Node by following lines in the Bitcoin.cfg after i started the client ( not the QT) with
-rpcuser=mynamewhateveryounameit
and in the Config i wrote
Position of the Cookie = your Password)
rpccookiefile=D:\Bitcoin\wallet.cookie
allow not needed i guess for you are allways free to connect in your network but i did it anyway
rpcallowip=127.0.0.1
connection to the python proxy ( i use python-bitcoinrpc-master, much better then Python only
from bitcoinrpc.authproxy import AuthServiceProxy
And thats all for the reason that it soon will be impossible to set your password or Username in the Config file.
dont know why, but it is like it is

This happened to me when my datadir was not in the default location of /Users/nameHere/Library/Application Support/Bitcoin/bitcoin.conf. bitcoin-cli needed an explicit command to locate it.
./src/bitcoin-cli -rpccookiefile="/Volumes/Bitcoin Core/.cookie" getblockchaininfo

Not ideal, would prefer is I could set this as an environment variable and have the cli pick it up from there. Have to check if that is possible.

Do you have a Bitcoin Core Volume? Is that common as an Apple idiom, or is a way of yours?

all_licenses: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
Bitcoins lost in Bitcoin Core?
I sent a small amount of bitcoins to my bitcoin core account when I was messing around learning to use bitcoins several years ago. I am trying to access these coins but I never got along to utilizing bitcoin core. My computer is rather bad so it has never fully synced up to the most recent block and my computer likely lacks the space/processing power to do so. Is there a way I can access the public/private keys for that address through bitcoin core and then manage that wallet online? Would anyone be able to walk me thru getting the keys and setting up wallet online?

In bicoin-qt open Help > Debug Window > Console.
An type the following commands.
First you need to list all addresses with funds, look for every line that has an address and take note.
listuspent

Second, you unlock your wallet
walletpassphrase "YOUR-PASS-PHRASE" 120

Then for each address, you should get the private key
dumpprivkey "1BITCOINADDRESS"

take note of every private key and  import them in another wallet. Take care when handling private keys and don't save them in clear text.
Instead of having an online wallet, what you can do is install Electrum which is a SPV wallet and import your private keys there.


text:
How to track bitcoin wallet activity with extended public key?
I recently signed up on blockchain.info and on the manage addresses section I can see my wallet Extended Public Key (xPub). There is a warning message saying:

You should only give this Extended Public Key (xPub) to those you
  trust. With this information, they may be able to keep track of your
  payments, and may be able to disrupt your access to your wallet.

I'd like to know how this works. How could someone keep track of payments that a wallet receives and sends if he knows it's Extended Public Key?

Using the extended public key one could derive all of the addresses associated with your wallet. This would allow someone to determine future and current addresses in your wallet, this could allow someone to monitor your financial activities. I'm not sure how they could disrupt access to your wallet. I believe it functions similar to a HD wallet public key.


text:
So you really can not set an exchange rate....?
If I understand this correctly, someone decided to create their own currency and its validity comes from other people buying into it and having confidence in it and being willing to both buy AND SELL stuff for BC rather than say, USD.  The BC itself really has no value at all (neither do USD actually) unless people agree to exchange things for them.  The "exchange rate" then is really a more or less arbitrary value based upon what people are willing to give up, sell or transfer for a BC.  That is, the value of the currency is determined by the active market.  So if someone decided they would sell 1000 dollar items for five BC each, and they did that for some time, the value of BC would be artificially inflated because people would expect to be able to get 200 dollars worth of merchandise for 1 BC.  a 200:1 rate of exchange against the dollar.  Meaning that if this someone had a buttload of BC in his wallet, he would be a BCillionaire in a heartbeat.  Then he could dump his BC into the market by selling them to someone else for say 80% of the artificial value and go buy a private island while all the other people who were holding BC scrambled for redemption of their falling values.  And since there is no central government behind BC, and no internet currency police, then there is no one to cry out to over the fraud.   Is my understanding accurate?

Well, of course there's an exchange rate. It's somewhere between the highest bid and the lowest sell.

If someone decided to sell $1000 items for 5btc each, nobody would buy any of the items. At the current exchange rate of $240/btc, the buyer would save money by selling ~4btc for $1000, and then buying the item somewhere else for $1000. So the price of goods in BTC doesn't set the exchange rate, instead the exchange rate sets the price of goods in BTC.

Your analysis is incorrect because you have completely ignored the issue of market depth. You're assuming depth is zero on asks and infinite on bids (if this was the case, of course the price would easily go up).
If someone were to sell $500 items for 1 BTC each (I'm using different numbers, because your numbers implied a BTC value which is actually lower than what it is currently), and even if these items are completely liquid, this will not raise the BTC price to $500. Rather, people will buy bitcoins on the open market, and use them to buy from this person at profit, until he runs out of items to sell. This will increase the price, but not up to $500.
Whatever the new price is, the person can't just sell all his bitcoins at this price. The market only has limited depth, so if he starts selling large amounts of bitcoins the price will drop, even below what it was originally. In all likelihood, the person will just end up with a loss after all these games (because he sold items at a loss, and then suffered slippage from trying to dump everything at once).
Of course, that's not different from any other market. What keeps these things from happening is economics, not regulation.

To say what Meni said a slightly different way -- a market is going to have natural supply and natural demand and this will form a natural price. You can try to manipulate the market by creating the illusion of extra supply or extra demand to make the price higher or lower.
But the problem is that the further you try to push the price from the natural price, the more it costs you to do it. To keep pushing the price up, you have to keep buying at the artificially inflated price you've created. You have to take bigger and bigger losses to achieve smaller and smaller changes in price. And the second you start selling, the price will fall like a rock. It's virtually impossible to make up the losses.
The other problem is that a manipulator must pay the full costs of his manipulation. But he must share the profits with anyone else who wishes to trade on the market. If you manipulate the price up, I will sell too. If you manipulate the price down, I will buy too. So while you bear all the costs, good luck getting even a significant share of the profits.
Many people have made the mistake of thinking that you can push a price up or down and then profit from trading at the artificial price. It's not impossible to do so, but you can't reliably do it just by ordinary buying and selling. There are many people who have tried to do so and lost huge amounts of money.


text:
Accept bitcoin easily without strict terms of services?
I'm interested in starting a gambling site, it has been difficult to find an easy way to handle user funds.
Solutions such as Bitpay or Coinbase disallow usage for gambling.
BIP32 blockchain notifiers like Mycelium Gear appear to be vulnerable to spam attacks and difficult to scale.
I've looked into interacting with a full node but things seem to get complicated very quickly at scale.

its a very general question. You can accept bitcoin by giving a qrcode of an address to user in your website and put a listener on that address through a simple API like blockchain.info (If you dont wanna run your full node) that gets triggered when the address gets a transaction. That's what bitpay does and it very simple

For a gaming website you should use bitcoind JSON-RPC. Pretty much every API service frowns on gaming sites, so it's best just to host your own.
If you 100% want to use an API maybe try blocktrail, I don't believe they are as strict about gaming usage. Also block.io, however there's a monthly fee, but their API is one of the easiest to setup and use.
In my book, Building Bitcoin Websites, I go over creating a simple gaming site and it uses bitcoind JSON-RPC to handle funds.

I wrote a webshop app using armory daemon. It can generate bitcoin addresses on the fly and not put any funds at risk since it's using a watch-only wallet:
https://github.com/goatpig/BitcoinArmory/tree/master/webshop
If you're not afraid of a little code, this should work without having any dependency on external services.


text:
How do I use Stellar API to power my Universal Trading and Multicurrency Payment+Transacton Gateway?
I am planning to build on top of Stellar a unified universal gateway+trading platform(all frequencies) for banks and financial institutions to power ultrafast international payment transfers in fiat/crypto currencies, automated equity and forex trading as well as interbank transactions involving trade financing instruments e.g. Conditional Lines of Credit, LCs and Bank Guarantees. I plan to write its low-latency backend in C++ and frontend will comprise of a PID server in combination with a web/JavaScript site as GUI.
The PID server monitors the PID’s of the strategies/transactions running on the server and executes the commands as they come. The server could consist of a webserver listening on port 8888 with a simple JSON interface, to make it super flexible.
How do I use Stellar API to accomplish my goal?

I'd start by reading the concepts here so you know what stellar will do for you vs what you have to do on your own: https://www.stellar.org/developers/learn/
It also has the API documentation.

the link is broken

A platform for realtime international payments would definitely be possible using the Stellar API.
You'd need to first become a gateway on the Stellar network. More on what it means to be a Stellar gateway here.
I'd also recommend familiarizing yourself with the Javascript SDK, which lets you integrate a web app (that you build) with the Horizon API server.
If you have have more questions about integration with the Stellar network, feel free to join slack.stellar.org and chat with developers from Stellar.org team and the global Stellar community. It may be easier to help you with the development process if we can chat in real-time.


text:
Cannot obtain a lock - Already deleted lock file
I am trying to open Bitcoin Core of "Cannot obtain a lock on C:User/App..." I deleted the lock. file like previously suggested but cannot find a solution after that! If I reinstall will I loose the Bitcoins sent to me or can I use the same address but on an online wallet and will it receive the coins? Thanks for the help!

Did you rerun Bitcoin after deleting the file?

After the deleting the .lock file I did re-launch Bitcoin Core

Did the .lock file reappear after that?

Not that I can see!

What's the rest of the error message? What is the exact name and path of the file you deleted? What version of Bitcoin Core?

authors: กะปอมน้อยขี้ดิ้อ มักม่วน


text:
how do i identify the location of a transaction?
I have an old coinbase account and can't figure out for the life of me where I would have sent the coins.  What is the best way to determine the owner or location from a bitcoin address?
14vRCiVnT4Su1akXrKmUUa3Ucf971pJXsB

Is the 14vRC your address? There's only been two transactions for that address, one was receiving the 0.01 BTC and the other the 0.01 BTC was sent to 1Facb8QnikfPUoo8WVFnyai3e1Hcov9y8T

I'm pretty sure that is where it was sent.  I'm assuming i sent it to another account with a different service.

The address you linked to only has 2 transactions for a total received of .01 BTC, which was later sent to 1Facb8QnikfPUoo8WVFnyai3e1Hcov9y8T.
Remember that the address you linked may not be the only bitcoin address you had available in your coinbase account. A wallet can provide many addresses.
Transaction info:
https://bitcoinchain.com/block_explorer/address/14vRCiVnT4Su1akXrKmUUa3Ucf971pJXsB
As for figuring out the owner/location tied to a bitcoin address as far as I understand this is not a built in feature of bitcoin. Unless the owner has publicly attached this address to a name somewhere there is not really a way the average person can find out who owns it or where they are from.
I'm sure a hacker/government could find a way to monitor transactions on the network and gain your IP but I don't think that information is made available for the average user.
This thread may help clarify: How do I see the IP address of a bitcoin transaction?


text:
How can I explain the meaning of Bitcoin to my grandma?
I wrote a book about Bitcoin, and my proud grandma wanted to have a copy. So she got it, said "What a beautiful picture on the cover!" and - "What is this, Bitcoin?".
She doesn't know crypto-currencies, never used a computer. But she uses a PayPal account from her iPhone. How can I explain what makes Bitcoin special to a non-technical person? I don't mean introducing in using, and the existing question "What is Bitcoin?" with its answers is still much too technical.
Such challenges are not rare. I need to explain to my boss why I request some days off to go to a Bitcoin conference, and soon my daughter will want to know why daddy is so excited about his mining rig. My girlfriend needs to understand why I spend so much time researching Bitcoin.
Does anyone know eye-opening words? Perhaps an analogy or a metaphor would help? So grandma, girlfriend, daughter, boss - all may roughly understand and say "Ah, such a thing? Useful indeed!"

The one I use, at least for adults, is to make an analogy to a bank. When you write a check for some amount of money to another person and that person deposits the check, the bank does not physically take the amount of money and put it from your bin to another, they use a ledger to keep track of who has how much and they make sure the books balance. Bitcoin is essentially the same type of money in that there's a central ledger, but instead of only the bank having access to it, everyone has access to it. And much like signing over a check with your signature, you sign bitcoin transactions digitally.
As far as mining, the analogy there is that once a month or so, you get a bank statement that tells you your new balance along with all the transactions that happened on your account. If, for example, you overdrafted on your account, they'll tell you exactly what that cost and put fees on and so forth. As an aside, with bitcoin, you can't have a negative balance, so overdrafted transactions just simply don't go through. In any case, bitcoin creates a statement of not just your transactions, but everyone's transactions about every 10 minutes.
Usually, that's enough for people to understand what's going on. I avoid stuff like proof-of-work, mining reward, fixed money supply unless they're perceptive enough to ask those questions.

I avoid the word 'decentralized' as well

It is actually a big challenge.
To my grandmother I would call it digital money or electronic money. Money that exists on the Internet. That is all they need to know.
On the other hand, when you start explaining in more detail, there is a certain level of reading and understanding that an individual has to be responsible for coz this is new stuff. Fiat, decentralised, ledger, P2P has become more and more part of our vocab.
Think of how an ATM was explained when it first came out. "Grandma, you put this piece of plastic into a wall, push some buttons and money comes"


text:
Bitcoin taxes question for USA
If one were to receive Bitcoins then immediately use a conversion service (for example to PayPal) would gains/losses need to be recorded?
If so, is there any software that can do this automatically?
Thanks in advance.

Bitcoin is taxed as capital property (see IRS Notice 2014-21), and a tax event occurs any time it is converted into fiat (e.g. USD) or other assets. You would have to record each transaction and include it in 1040 Schedule D.
This is the difference between how much USD you received less the value of those BTC when bought/acquired them. If you had owned those coins for more than a year, you can report it as "long-term" gains, which has a reduced tax rate. Otherwise, it "short-term", which is just taxed as normal income.
You can use https://bitcoin.tax to help work it out.

Both mybitprices.info and LibraTax are both websites that can automatically generate schedule D reports for bitcoin wallets or single addresses.
bitprices is the open-source software behind mybitprices.info and can be run on your own computer.

is there any software that can do this automatically?

Income is income if you make a gain it would be reportable on your taxes regardless of amount.  I am not aware of any software currently that tracks income gained/lost based on current bitcoin prices, but it should be trivial if someone owes you $200 and they send you the BTC equivalent and you hold it for a short term and when you sell you get $220 the $20 increase in value would be reportable as short term income.  Also I am not a lawyer  and this does not constitute legal advice always consult a lawyer and an accountant for specific local regulations that may or may not apply to your situation.
P.S. the $600 limitation is placed on businesses when they determine if they need to send out a 1099 form or not.

If it is a transaction under $599 it shouldn't be taxed according to tax law.  I'm not a lawyer.

"It is a common misconception that if a taxpayer does not receive a Form 1099-MISC or if the income is under $600 per payer, the income is not taxable. There is no minimum amount that a taxpayer may exclude from gross income." https://www.irs.gov/uac/Reporting-Miscellaneous-Income


text:
getrawtransaction is error bitcoin core
I use VPS centos 7, and i install bitcoind follow:
https://www.ringingliberty.com/bitcoin/
this is file bitcoin.conf:
rpcuser=bitcoinrpc
rpcpassword=My_password
daemon=1
rpctimeout=30
rpcport=8332
gen=0
txindex=1
keypool=100

Then i ran: bitcoind -reindex -deamon then ran:
bitcoin-cli getrawtransaction string_txid
i get error:
error code: -5
error message:
No information available about transaction

I use: Bitcoin Core Daemon version v0.13.0.0-ga402396
I don't know wrong?

That will success when bitcoind download all blockchain.
Wait till bitcoind complete synchronization then try again.

But, i ran same code on VPS of my friend. It run ok? Why?

Maybe your friend's node is synced and yours is not?


text:
Cannot access my blockchain account
Just recently opened a bitcoin wallet with Blockchain which I already funded. The problem is the wallet ID was not sent to my email and I already funded the account. I have  made several request for support to resend the wallet identifier to my email using the "remind me" tab all to no avail. Is there any other way I can access my account.

contact your vendor. This is not a problem pertaining Bitcoin.


text:
Connect a mobile client to wallet on remote Bitcoin Core
I run a Bitcoin Core node on my computer and have a Windows tablet. My wallet is on the computer and I want to keep it there. Is there a way to have my tablet create a new Bitcoin address for my wallet by telling my node to do it and sending me the result, thus keeping my private keys and wallet off my tablet?

Yes, you can use the node's RPC API method getnewaddress to create a new public-key pair and it will return the address.

That sounds great. Can you tell me how it's done on Windows?

You will need to write some code for this. An example in C# (for a different API method but you get the idea) can be found here. Another in C can be found here. Most languages have a bitcoin library that makes it very easy to call the API methods: bitcoinJ for Java, bitcoinJS for Javascript, bitcoin-ruby for Ruby, pybitcointools and pycoin for Python, etc. I am not aware of an existing tool that does this easier.

Thank you, karask. It also linked to a C# library on github, but that one looks like I would have to resync from the beginning, so I'll try your link first.


text:
Optional tagged field 19 vs signature recovery. Can these pub keys ever differ?
From Bolt-11:
A reader
if a valid `n` field is provided:
MUST use the `n` field to validate the signature instead
  of performing signature recovery.

Is this merely a performance optimization? Is there a situation where the declared public key field differs from the public key that would have been recovered from the signature?

Recovery of a public key from an ECDSA signature is not unique. This is because the r value in a signature is only the x-coordinate of a point, so there are actually two points R and -R that have the same x-coordinate, and both will give a different public key. Actually, for completeness, you can even end up with four possible public keys - but this happens with negligible probability.
In bolt-11, a recovery ID which takes values 0, 1, 2, or 3 is used to specify which of these four public keys should be used. But indeed, it is more efficient to simply use the given public key n. I don't think there are other practical benefits other than efficiency and perhaps robustness in case something goes wrong during recovery. n should always be one of the keys recovered, otherwise signature validation will fail.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/


text:
How can I mine dogecoins on debian?
How can I mine dogecoins on debian? I have tried to compile cudaminer but I can't find out how to install nvcc.

Definetly! Dogecoin uses the Scrypt algorithm so that means any Litecoin tutorial can be used as a drop-in replacement tutorial. Just be sure to use the proper pool address and port.
A google search brings me this nice looking guide:
Debian 6.0.7 - GPU Miner install guide


text:
Is there a way to buy bitcoin immediately?
I want to use PHP to write a script to buy bitcoins and my bitcoin balance will be updated immediately (i'm NOT in US).
For example, I use my credit cart to purchase bitcoins. less than 1 min later, I can see my new bitcoins in my address.
As I know, normally, it will take few hours / days to get bitcoin from some bitcoin sellers. It is not safe to get bitcoin immediately because banks allow charge back.
So is there a safe, automatic and immediate way to get / buy bitcoins?

You would need to pay for them by some method that's electronic, widely accepted, irreversible, and low-cost.  There aren't many such methods out there other than... Bitcoin.

Coinbase offers instant buys, you need to enter your credit card info and go through the verification process, but it takes less than a minute to update my balance.  The max amount for instant buy/sell is 1000usd/day.

Hi @Th1nker, Thanks for your reply. But I am not in America

BTC-e also offers instant buy for their customers

As far as I know there's no such service. PayPal offers an API so payments can be detected automatically, but mostly nobody sells Bitcoin via PayPal because it's not worth the risk (chargebacks can happen months after the purchase, for example).

Moreover, I believe PayPal specifically forbids using their service to pay for cryptocoins.

How about DPS gateway? and are chargebacks only allowed after receiver approved?

@GarlicBread, I don't know in detail how it works. I'm just following recommendations I've heard on the forums. Maybe someone else can come with a more detailed answer.


text:
How to apply my bitcoin address generated offline to online
I think I can generate bitcoin addresses offline by JS. Can I use them directly or have to report them to somewhere so that the network knows my addresses?

What do you want to use the addresses for?

Hi @Nate Eldredge, just do transactions normally : )

Related: At what point is a new wallet known by the Bitcoin network?

If you want to use an address to receive funds, then there is no requirement to "report" the offline generated address anywhere. You can create the address (public and private key) offline, read the address out to somebody over the phone (or send email, or post it on a web page), and they can then send bitcoin to that address.
Later, when you want to spend the funds sent to you, you would need to load the keys into a client.


text:
What happens if nodes have different P2P versions during discovery?
My understanding is that nodes connecting to each other to exchange messages starts with a version handshake such that each node sends its P2P protocol version and gets an acknowledgement and vice versa. If the nodes are running different versions then communication cannot continue.
So according to this developer reference would it be correct to conclude that a node running Bitcoin Core v0.13.2 and another running on release v0.13.0 would not communicate?
Also, if a significant number of nodes run different protocol versions, is this situation what would result in a hard fork?

If the nodes are running different versions then communication cannot continue.

That is incorrect. If two nodes interact which have different versions, they just communicate using the lower of the two versions.

Thanks!. I may have misread that somewhere.


text:
How do I run the bitcoin bx tool in my terminal
I am reading the book Mastering Bitcoin. At some point, I came accross the bx command and tried to run it in the same way as bitcoin-cli (I've got a bitcoin core node running). But I just get the command not found message. How should I go about it?

bx is found here: libbitcoin-explorer. There are copious notes there about how to install.
Can I also recommend noting btcdeb for assisting in debugging bitcoin script, should you get that deep.


text:
Is it possible to spend multiple scripts of a MAST in a taproot output
Let's say we have a MAST with n scripts in the leaves, is it possible to require that two (or more) of the scripts must be revealed for the transaction to be spent?

With Taproot no it is not possible. Only one leaf script in the Taproot tree needs to be satisfied to spend the output and you cannot require the satisfaction of multiple leaf scripts to spend the output. The Taproot tree has the equivalent of OR statements between each leaf and you can't use AND statements between leaves. There are alternative MAST designs that have not made it into Bitcoin at the time of writing (November 2021) but the above is the case for Taproot's variant of MAST.


text:
Why there are no OP_CODEs for querying the blockchain and retrieving data to the stack?
Blockchain data is immutable, so once valid a transaction will always be valid and full nodes can verify it.

Can you be more specific? What are you imagining querying and for what purpose?

There are several reasons why I think having those would be a terrible idea.

Scalability. If scripts can access arbitrary pieces of the blockchain, fully validating nodes would require (fast!) access to the entire chain. This is currently not the case - fully validating nodes do not need the full chain, but only a small database of unspent transaction outputs (which is less than 3 GiB, and grows much slower).
Mempool management. If script validity can depend on the state of the blockchain, unconfirmed transactions can be invalidated by new blocks. It is possible to construct these hypothetical blockchain inspection opcodes so that new blocks never invalidate things (e.g. only have opcodes that fetch from a block, and if that block is not found, cause immediate script failure). However, even in that case validity may be affected by reorganizations. That would effectively mean that the entire mempool would need to be revalidated after every reorganization.
Fungibility. Related to the previous point, it is even the case that deeper-than-1 reorganizations may affect the  validity of already confirmed transactions. This means wallet software would need to be extra careful about accepting payments with transactions whose validity depends on blockchain state, as reorganizations have an increased chance of wiping them out, even when the sender is completely honest. This is not true for transactions right now - transactions removed during a reorg can always be re-accepted in new blocks in the new branch.

Thank you for this detailed answer Pieter. Thank you for everything you do for Bitcoin.


text:
Can bitcoin accounts be imported?
I have a DAT file which I generated using the backup feature of Bitcoin Core, I think. I'm not sure if it's possible ***to get Bitcoin Core to import the file so that it becomes a hot wallet.

Yes - from the bitcoin wiki:
"The original Bitcoin client stores private key information in a file named wallet.dat following the so called "bitkeys" format.
It contains:
keypairs for each of your addresses
transactions done from/to your addresses
user preferences
default key
reserve keys
accounts
a version number
Key pool
Since 0.3.21: information about the current best chain, to be able to rescan automatically when restoring from a backup.
The wallet.dat file is located in the Bitcoin data directory.
It is intended that a wallet file be used on only one installation of Bitcoin at a time. Attempting to clone a wallet file for use on multiple computers will result in "weird behavior"[1].
The format of this file is Berkeley DB. Tools that can manipulate wallet files include pywallet."
Also, there is a tool for viewing these files directly; https://code.google.com/archive/p/bdbvu/


text:
How to dump all of addresses from wallet.dat for other alt-coins?
I'm on binarycoin now, with solo mining. Luck smile to me. I'm found 5 blocks. It is 100.0 binarycoins.
I'm trying to use "aggressive" speed-up, my daemon compiled with -O3.
After last block I caught crash of daemon. And fails of relaunching with err:
Database environment corrupt; the wrong log files may have been removed or incompatible database files imported from another environment
PANIC: DB_RUNRECOVERY: Fatal error, run database recovery
wallet.dat: unable to flush page: 19
txn_checkpoint: failed to flush the buffer cache: DB_RUNRECOVERY: Fatal error, run database recovery

If I'm redownload the blockchain.
-rescan doesn't help.
I'm shutdown the network, clean everything in the .binarycoin/* except wallet.dat and binarycoin.conf. Launch the daemon. My wallet.dat remembered that there were blocks, every block was marked as orphan. I've start to sniffing for my coins. My account named as "" contain only one address. I've found a web-blockchain  www.binarycoin.info:8080/
There was no my address.
By tx ids in my wallet.dat, on this web-blockchain I've found addresses that received the bounties. I've dumped privkeys of this addresses, and cooled down.

My nerve continue playing. What if there is no side web-blockchain. How should I discovery the tx ids and thereafter my addresses, and thereafter dump my privkeys?
There is no option to get every address from wallet.dat, only one (default) address.
I found pywallet. It is for Bitcoin. Nevertheless, I've dump in plain-text my wallet.dat. 117 addresses with their privkeys.
I compare my real addresses with this 117. No one.
I compare privkeys. No one.
How to trully extract all addresses and all privkeys that wallet.dat contains?
( Specially for alt-coins )

now you can use bitcoin-cli dumpwallet command to export all your privkeys

You can get all of this info from the bitcoind API.
you download bitcoind, set your RPC configurations into your .conf and then connect via RPC
https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list
http://paste.ee/p/IBU79
The same applies for all the coins really. Most just copy the bitcoin or litecoin source. Many of the features are the same,

I would suggest keeping backup copies of all the data you have, and not give up on the idea that you will eventually be able to extract the private keys from that data, even if you can't find a program that works right now.
Presumably you have records of when your computer generated blocks. You should be able to find matching records from the public blockchain site (if there is one) for your altcoin. Your question suggests that your wallet software thinks the blocks are orphans, which is a bad sign. I wouldn't trust that yet. If the blockchain site shows orphan blocks, and you find your blocks listed there as orphans, then probably there is no hope. If you find the blocks listed as part of the official chain, then you can get the public address the mining fees were paid to from that.
Someone, maybe only the developer of the coin, knows how to find the matching private keys in your wallet. If you cannot find a solution yourself, wait and see if the value of the coins becomes high enough to hire professional help. In the meantime, you can look at the bitcoin code and possibly at the changes made to produce binarycoin, and probably you can figure out how to extract the private keys from the original wallet.dat file, the wallet.bak file, or earlier backups of these which contain your blocks.
I wish you the best. Unfortunately some have to learn the hard way that there is a reason for paying banks to secure our money.


text:
New Bitcoin-Qt install but can't set passphrase
I have installed bitcoin-qt version 4.6.2 through the ppa:bitcoin/bitcoin ubuntu repository.  I can't set a pass-phrase because it requires a value as the old pass-phrase.  I have never created an old pass-phrase though.

Don't use that version. The client has hard forked since then, meaning that client is no longer viable for user on the network. On Linux I recommend you download source and compile the current version 0.8.6 at this time.


text:
Can bloom filter be used to filter UTXO?
I am thinking about building an spv-like wallet using trusted nodes.
It does not download blockchain.
Instead, the wallet gets its utxo, transactions,balance data from abe.
My question is, can the bloom filter be used to filter UTXO?

Have you read BIP37?

You certainly could do this, but it would be much slower on the server's side than a per-address query, and I don't think there's a ready-made implementation to do this.

What would be the benefit over regular SPV wallets? They don't download the blockchain either.

Do you mean filtering all data on Abe with your filter? If you're using Abe I don't see why you need to worry about bloom filters or SPV.

I don't see your desired trusted full node setup.
But if you can control a the trusted full-nodes, you might consider using the REST getutxo command. It's more or less similar to a not implemented Bip64. In my opinion you don't need bloom filter for the getutxo command.
Don't expose the REST/RPC interface to the public. Instead build a reverse proxy with apache or similar.


text:
Why does Bitcoin keep transactions in a memory pool?
Why does Bitcoin keep (unconfirmed) transactions in a memory pool? What would happen if these were stored on disk instead?

A large part of those transactions only needs to be kept for a limited time, in the order of 10 minutes. Once transactions are in a block they are removed from the mempool and the whole block is written to disk.
However while the transactions are in memory they are actually consulted quite often. For every newly incoming transactions checks need to be done to see for example whether it conflicts with any of the existing transactions or whether it's a child or parent to an already existing one.
Writing and reading them from disk will cause quite a bit of overhead. Which is actually important not just because it's a bit of overhead. For example it might open up DOS attacks where hostile nodes can create patterns of transactions that maximise reading and writing disk.
Also for transaction and block propagation speeds it is important that transactions are validated as quickly as possible.
Another point is that the amount of memory used by the mempool isn't actually huge anyway. Work is being done on better filtering of which transactions are allowed into the mempool in the first place (minimum fees and Child Pays for Parent etc.). As well as expunging older and/or low fee or otherwise lower interest transactions out when the mempool nears full.

The answer for this is that miners need to have this in memory to consolidate tx for fee optimization and fast computation. Non mining /relay node can have mempool in disk. See reference
The only concern for a relay node is to prevent  DOS attack during relay of transactions which also can be prevented by bandwidth limits.


text:
Do web wallets keep customer accounts isolated?
Say there's an online wallet or exchange or some site, and they give me an address to send my bitcoins to.
I get the public address but not the private address because technically those bitcoins are now "theirs" - and i'll use them to exchange for other crypto currencies at some time.
But the public address is listed on sites like blockchain.info and I can see all of my transactions to that wallet.
Is it normal to see transactions going out of that wallet, even if I haven't spent those bitcoins with the service? Is my wallet isolated to transactions I might conduct?
Or do they use a normal bitcoin server, so whenever anyone withdraws, it uses whichever bitcoin transactions are available in this company's entire collection based on their bitcoin servers algorithms using all the accounts listed?
In theory, it shouldn't matter, so long as the total amount in everyone's accounts is equal to the total amount in all of the private keys they maintain. But do any of the services keep them isolated as sort of a check to make sure that a customer's coins are still there and it's not some type of ponzi scheme?

There are different kinds of web wallets. Some are more like pieces of software that you re-download every visit, but you still actually own the private keys (re-downloading is still a risk, mind you). But in this case it looks like you're talking about an exchange or other web wallet where you don't actually own the coins anymore (i.e. they have the private key). Yes, in that case it's normal that coins are not isolated anymore. And yes, that is extremely dangerous and has gone wrong many times before.
In general try to avoid web wallets and if you really need to use for example an exchange, try to move out the Bitcoins as soon as you can, to minimize your exposure to this risk. If you're actually actively trading on such an exchange, then you don't really have a choice and simply have to accept the risk of losing all your coins one day.


text:
Bitcoin checkout on website - do i need to download the blockchain?
Based on a previous setup, what I was thinking about doing is coding my web application to send JSON RPC calls to a bitcoin node to see if a transaction has been received. Previously I have done this by running the bitcoind on the web server, but my server isn't big enough for that now. Is it possible to just send the JSON RPC to any other bitcoin node? Is there some way of finding those nodes without just always using the same, hardcoded node?

Thank you but it looks like that only addresses the issues of creating addresses, which i understand doesn't even require the presence of a network connection. I'll take a look at that library to see if it does handle external calls though.


text:
Wallet didn't include fee, transaction stuck on unconfirmed
My wallet has always automatically included a transaction fee everytime I do a transaction, but this time it didn't and I dont know why. I did everything like I always do and I haven't changed anything that I know of.
So now my transaction have been unconfirmed for 1 day and I've read it's because it didn't include a fee. What should I do now? I can't wait for up to a week for it to get cancelled. :( Need to get them back and redo the transaction or somehow get them confirmed ASAP.
This is the transaction:
https://blockchain.info/tx/af34c93bac12c62f47415e1a419267a2e836e56f4b2c2d170a350f82e4ed639f
Thanks!

You can either wait, or try to double-spend it: Speeding up confirmation by double-spending a transaction stuck in mempool. This does require some technical expertise and may cause loss of money if performed incorrectly. However, your transaction shows a high priority, so it should go through eventually.

Double spend it, otherwise it will never get "cancelled" you could wait 8 months.. The only way is double spending :) Obviously this q is too old but for newcomers with the same problem!


text:
Using Bitcoin ATM in NYC
I'm new to Bitcoin, so I'm grateful for anyone's patience with my perhaps uninformed questions.
I live in NYC and I'd like to buy some Bitcoin.  I understand that due to a recent law, exchanges aren't operating here, but there are several ATMs.  Is there a downside, other than the service fee, to the ATMs?  I'm prepared to lose some money on that, especially since it doesn't seem to be possible to purchase them another way here. Ultimately, this is a gift for my husband, and we see it for the high risk investment that it is.
Assuming I do purchase some at an ATM, what happens next?  I know I come across like a total idiot, but I really haven't figured that part out yet.  How do I keep track of them?  Where do I store them?  How could I give them to someone else?

You will need a Bitcoin wallet to store your coins. Check out https://www.bitcoin.com/ for some options.
After you set up a wallet you will get an address where you can store coins. (The address will be a long string of letters and numbers but you will also get a QR code, which is basically the same address but in a form you can scan)
If you then find an ATM you can insert cash, scan your QR code at the machine and you will get the coins sent to your wallet.
That's basically the process of how ATM's work.

Set up a wallet on your phone and scan the address it provides you at the ATM, then deposit the cash.
To save you some travel to one of the few ATMs in New York: I believe there are some exchanges operating in New York. Check out Coinbase, ItBit, and Gemini.


text:
which cloud backup files do I need to keep
I just installed Multibit HD, did a few transactions, and I already have 15 .zip.aes backup files?  Do I have to keep all of these forever, or only the most recent one?

I think you want to take a look at the Backups help page on multibit.org.
I can't say for certain (as the wording is a tiny bit vague here), but I am pretty sure that each of these are what they're referring to as "rolling backups" which "encrypt a snapshot of the current wallet".
If that's true, then each one of these contains the previous ones, so you would only need to keep the most recent one.
Either way, if MultiBit is doing it's job right (and I suspect it is), your seed phrase (what MB calls "wallet words") should be enough to recover your wallet no matter what. To quote them, "You can always recover your bitcoin through your wallet words (seed phrase)."

Thanks for answering my question and pointing out the backups page to me.  Through the pruning process the system should limit the number of files in the cloud directory to about 60 which is fine. I won't worry about it.


text:
What is the real value of bitcoins
I have a lot of confusion about bitcoin. What is the real worth of a bitcoin. For instance currency used to be backed by gold but now a days its fiat currency all around us.

Bitcoin doesn't have a "real worth".  It is not backed by any sort of resource.  Bitcoin is considered valuable for the same reason gold is valuable; it is difficult to acquire, there is a limited quantity of it, and people are willing to pay a relatively high sum for it.  If everyone decided they no longer wanted to participate in bitcoin and sold all of their coins, bitcoin would no longer be worth anything (assuming no one else wanted to buy into it).


text:
mining command-key term explanation
Could you please explain me the meaning behind the terms and actions of the cmd line like:
bfgminer -o stratum+tcp://stratum.mining.eligius.st:3334 -O YourAddress
and this:
bfgminer -o stratum+tcp://uk1.ghash.io:3333-u username.worker -p YourPasswordHere
Thank you for your time.
Best regards

Does bfgminer --help have anything?

@StephenM347 thank you. it helped me a little. could you please tell me about using the Intensity (I)-it's range-behaviour?

Bfgminer is the mining application, the line with the stratum output is the pool that the miner is configured to use. Your address would be a bitcoin address that you own. The worker name and password would be credentials to access your account at the mining pool although most often the password is not used or is substituted with x.


text:
How to get Master Chain Code
I'm using NBitcoin and I created an ExtKey object. Now I need to get the Master Chain Code (see page 89 of Mastering Bitcoin for a good explanation) for this HD node. How do I do this?
According to Mastering Bitcoin a root seed is used with HMAC-SHA512 to create a 512-bits output. The left 256 bits are used for the master private key, the right 256 bits are used for the master chain code. When I call GetBytes() on my ExtKey object, however, it returns a byte[74] array. This corresponds to 592 bits. I don't know what the extra 80 bits are so I can't just take the right 256 bits.

I solved this with a pull request that adds a property to ExtKey and ExtPubKey that allows you to call the ChainCode property. See pull request 156.
It has been merged into NBitcoin 3.0.0.28 which is available on NuGet.

Here are a few things what you can do, I noted what you need in comment:
var masterPrivateKey = new ExtKey();
var masterPublicKey = masterPrivateKey.Neuter();

// This is what you need:
var masterMainNetPrivateKey = masterPrivateKey.GetWif(Network.Main);
var masterTestNetPrivateKey = masterPrivateKey.GetWif(Network.TestNet);

var masterMainNetPublicKey = masterPublicKey.GetWif(Network.Main);
var masterTestNetPublicKey = masterPublicKey.GetWif(Network.TestNet);

You might want to check the corresponding section of the C# Bitcoin book.

No, that's not what I need. WIF and Chain Code are two completely different things. WIF is just a way to encode a private key.

Anyway, I added a change to NBitcoin that exposes the chain code through a property, see PR 156 https://github.com/MetacoSA/NBitcoin/pull/156. It has been merged into NBitcoin 3.0.0.28, available on NuGet.


text:
Running a full node on a macbook?
I'm thinking about running a bitcoind full node to help out the bitcoin network.
Would it be feasible to run a full node through one of the new macbooks?
(12", 250GB HD, 8GB RAM, 1.1 GHz Intel Core M processor)
thanks!

You sure can. The trickiest part is the initial download of the full blockchain. It will take about ~4 days. It might be 52Gb but doing a Get Info will show 64Gb. You've got heaps of space though.
Hopefully you've seen: https://bitcoin.org/en/full-node#mac-os-x-yosemite-1010x and you'll want to enable incoming connections: https://bitcoin.org/en/full-node#enabling-connections
Then you should see yourself on this map here: https://bitnodes.21.co/#join-the-network once you're up and running.

It's certainly possible. I used to run a full bitcoind node on a 5 year old MacBook Air. I stopped (and moved it to a larger machine) because the size of the blockchain database was becoming annoying - it's currently 52 GB and always gets bigger. If you can spare the space, there's no problem with actually doing it.

thanks! 52GB is a little big for my hard drive! maybe I'll try on another device though.

Note that there's a pruning option that would limit your hard disk space usage to whatever you configure. Current pruning is a bit crude (and disables wallet functionatlity!), in the next versions it will be much better.


text:
Displaying rotating bitcoin address
Is there a way to display on a website of mine, a new address for every transaction?
e.g., I have a wallet, and every time it receives a donation, displays a new address on my website that corresponds to the address my wallet will recognize, so that no address ever receives two transactions?
thanks!!

Sounds like a job for stealth addresses (I forgot the more recent name for them) which are not really implemented yet. 2nd choice would be an HD wallet where you put the XPUB key on your server and let it generate addresses on the fly.  The server can generate a pool of like 10 addresses without payment (so not everything gets the same address) and then when a payment comes in you signal the server to skip all those and start using the next 10 addresses. Anyway, I don't have a copy/paste ready answer and there are a lot of details to this.

You want to use hierarchical deterministic wallets. They solve exactly the problem you are describing - to generate any number of new addresses on the fly.

Hierarchical Deterministic Wallets, interesting!  Had to look that one up: https://en.bitcoin.it/wiki/Deterministic_wallet

A safe alternative would be to pre-generate a large number of public wallet addresses offline in your client, then loop through those when displaying them on your website.
That way your private keys are completely safe.  This is the best option in my opinion.
You could generate a lot of keys locally.
To enforce the goal of no 2 transactions per key, you could write a script to check the public address for usage before delivering it to the user.  If the address has already been used, remove it from your list of addresses that you deliver.

Option 1. Hierarchical Deterministic Wallet in your server
One that is widely used is Electrum (electrum.org). You can install it in your webserver (it can be a watch only wallet so you don't keep your private keys in the server) and every time it receives a request it will generate a new address. You can see a full tutorial here:
http://docs.electrum.org/en/latest/merchant.html
Another option would be to use a plugin to do that in a much easier way. If you are using Wordpress + WooCommerce you can use this:
https://wordpress.org/plugins/bitcoin-payments-for-woocommerce/installation/
There are many other plugins that work in the same way for most CMS and eCommerce solutions.
Option 2. Use a payment processor
They will take care of everything for you, but they will keep a small fee. Everytime someone clicks on the donate button, they will create a new address and show it to the user. Usually you just need to embed some html on your website on install a plugin they provide. This, however, will send the funds to your account at the payment processor. You can withdraw from there, but you are losing control of your funds until you do.
Some well known are:

Gocoin.com
Bitpay.com
Coinbase.com

Use https://github.com/achow101/bittipaddr. Developed exactly for the purpose you mentioned.

Embed an automatically changing Bitcoin address into any webpage or
  forum post. It will serve a new address for each donation so that you
  will not have to worry about any address reuse issues with your
  donations.

TO embed add following code in your html as mentioned in https://bitcointalk.org/index.php?topic=1650551.0
<iframe src="http://bittipaddress.com/bittipaddr/addressfor/da7ir8dl" style="border:none;" scrolling="no"></iframe>

Your site can use the script here to generate a bitcoin address (and corresponding private key) 'on the fly'.  Then, you should be able to import the keys/addresses into your wallet.

Downsides: Public facing web server is handling private keys. Server crash might cause you to lose private keys and thus money. You might end up with a LOT of keys which could become messy. HD wallet XPUB seems like a better option.

Good point.  This problem can be mitigated by encrypting the private keys on the server as they are generated, offloading them to a non-public-facing host, and decrypting them there when needed.

Or better yet - Generate a batch of private key / address pairs offline, and load only the addresses to the public facing server.

That's probably the recommended way. Still very important to keep an eye on the webserver as a hacker can simply replace the addresses with his own.

I would not recommend ever storing private keys on a live, public-facing web server.  At the very least, look into building a multi-tier architecture (https://en.wikipedia.org/wiki/Multitier_architecture) where the private keys are generated/stored at a deeper level of your private network.


text:
Any exchange available for using virtual cards like Payoneer?
Is there any bitcoin exchange available for trading bitcoin with virtual cards like payoneer? I know there is coinmama and locabitcoin, but they are mostly P2P. Is there something like cex.io ? Unfortunately cex doesn't support virtual cards.
Thanks.

Try to find a suitable one for yourself from this list https://en.bitcoinwiki.org/wiki/Cryptocurrency_exchange

Have you tried Coinbase? They accept Visa/Mastercard of all forms, I believe. Also, they're MUCH cheaper than Coinmama.

I opened an account in coinbase but later I found my country is not supported. So the buy/sell option is disabled.


text:
What happens in a small scale blockchain network?
My main question here is, is this understanding correct or have I misunderstood something? If this question would be better for Reddit then I apologise in advance and I'll move to there. Thanks.
Scenario:
So technically I could download the bitcoin source code and run my own altcoin (let's call it pokercoin) on a network of 5 computers (for me and my 4 geeky friends who wanted to play poker without chips).
If I'm understanding correctly, we would each be running pokercoin source code/qt on our laptops and no other computers would be needed to keep the thing running (or maybe we would need to run something else to ensure the network works, because otherwise there is no other way of the network doing all the IP level stuff? Or do nodes do this and run something other than the bitcoin source code?).
When I make a payment, each of the other 4 computers receives a copy of that transaction, and they all add this to a block of 1 transaction which gets appended to our very short blockchain after 10 minutes (because hypothetically my computer is able to solve in 10 mins).
If 2 of us made a transaction, (the new block to be added has 2 transactions), but the other 3 computers wrote their own block which diverged in truth to my computer and my friend's computer, then this 51 percent attack would beat the previous block to be appended (or is it added only after ANOTHER block is added (because this is now the longest chain).
We all also get new pokercoin for being miners in our own system (or maybe it is only those running different code who get to be miners).
Finally, none of us actually argues over having any money, because we know that 'how much we own' is actually only made up of the network iterating over every transaction that happened in order to calculate our amounts (and this happens every time a new block is made).
We also don't argue over block sizes, because there are 5 of us.

If you were using a fork of Bitcoin Core, your small scale network would not work.
Assuming you did the basic chain parameter modification or just firewall yourself from the rest of the Bitcoin network, there are two major things that are missing: peer discover, and mining.
Bitcoin Core by default uses a process called DNS Seeding in order to discover seed nodes. If those seeders fail, it will fall back to using some hard coded seed nodes. However, these are seed nodes which are treated differently than normal nodes (even though they are still normal nodes). Seed nodes are only connected to in order to get a list of more nodes to connect to. It is nodes on that list that are eventually connected to for actual normal node operations. Your node disconnects from those seed nodes once they get this list.
So, for your network, you would need to potentially run your own DNS seeders and seed nodes. But that's actually not really necessary. You would just need to disable DNS seeding and the hardcoded seed nodes, then just have everyone on your network set multiple connect=<ip> lines in their configuration files where <ip> is the IP address of a node. This will force the node to connect only to the specified nodes. Note that this will disable further node discovery and automatic node connection, so if you add someone else to your network, not all of the other nodes will connect to the newcomer unless they are explicitly added.
The other problem will be mining. Bitcoin Core does not contain any mining logic at all. It does not automatically mine nor does it even have the ability to produce blocks. Instead you will need to install some other mining software. However, because CPU and GPU mining are pointless, you will have to build, and potentially modify, those mining software yourself in order to enable CPU and GPU mining. Otherwise you will need to get some mining hardware supported by those software. Without using any mining software, your network will not produce any blocks and no transactions will be confirmed.

Thanks Andrew, I did a bit of reading around how discovery works based on your answer and it makes a lot of sense now. I guess for a home network, one could just hard code ips and run on an intranet (if I'm understanding correctly).

I now need to do some research around how mining works and what mining software could be set up to run a tiny blockchain network! Thanks again for your help :)

Although if It were a network without mining, purely for recreational use, then it should work with just a few computers running the modified core right?

This may be useful to anyone else reading this thread https://www.quora.com/Can-you-create-a-blockchain-without-miners


text:
How do the faucets earn money?
There are quite a lot of bitcoin faucets on the Internet. They give away bitcoin for free, but where do they come from? Won't the faucet operator lose money?

I imagine different faucets have different business models. The ones I've seen either show you ads, or make you solve captchas (which has potential value to spammers, etc).

Advertising. The amount you receive from faucets is so minimal that the amount they make from your visit from you seeing ads is more than the amount they'll give you.
It's rare for a faucet to do it simply to solve CAPTCHAs, as most CAPTCHAs are generated randomly, and trying to find an answer to all possible graphics is virtually impossible.

It's possible to automate a model like this: a spammer visits target website and is challenged with a captcha. He relays this captcha to the faucet site for the next unwitting user to solve.  When the user solves it, the solution is relayed back to the spammer to be entered in to the target website, so the spam can be posted.  They don't have to solve all possible captchas, just the particular ones that the target has challenged them with, if they can do it in real time.  On a reasonably busy faucet site this should be possible.

@Nate You're right, I've never thought of this before, interesting.


text:
What if I receive bitcoins when my device is powered off?
What happens if I receive bitcoins when my computer or smartphone is not online or powered off?

My guess is that the transaction is processed in the ledger. When you go online and login, this transaction is read by your bitcoin client.

So if I launch my wallet, it will download all blocks and catch up with any transactions it didn't already know about, right?

Solution
This works fine.
The bitcoins will appear next time I start my wallet application. (Read tuxcanfly answer)
Bitcoins are not actually received by the software (wallet) on my computer, they are appended to a public ledger that is shared between all the devices on the Bitcoin network. (Read SPRBRN comment)
If someone sent bitcoins when my wallet client program is not running and I launch it later, it will download all blocks and catch up with any transactions it did not already know about, and the bitcoins will eventually appear as if they were just received in real time.
My wallet is only needed when I wish to spend bitcoins!
Helpful resources

https://bitcoin.org/en/faq#what-if-i-receive-a-bitcoin-when-my-computer-is-powered-off
https://www.weusecoins.com/en/questions/#what-if-i-receive-a-bitcoin-when-my-computer-is-powered-off

The network contains those transactions (either in nodes' mempool or block) and you will receive your Bitcoins when you are back online.

So my wallet download all blocks automatically in the background?

.......... Yes.

Money (BTC transaction) is being send from one wallet to another,
that is being recorded in a book (public ledger),
which is written by many people (miners) and
kept securely by other people (BTC nodes)
Once written in the Book, it is never changed
When you open your wallet next time, what it does is, it simply checks this book, and reports to you how much balance you have, with an update if you received a new transaction between the last time you opened the book and now.
I hope this answers your query.

Yes. You can even send bitcoins to 'cold storage' or a 'brainwallet', which is pretty amazing IMHO!


text:
How to start mining
I'm new to cyrptocurrency and heard that gpu's are obsolete for bitcoin mining and I hear gridcoin is a good alternative. How do I start mining? And how long long until I start to break even? Also, I have no idea how to use bitcoin calculators because I don't know the terminoligy. Can someone break this down http://pool.gridcoin.us/ProfitabilityCalculator.aspx
Specs:
R9 390
6700k
725w PSU

I wouldn't other mining at all. Mining anything is either unprofitable or will be as more and more people catch on.
If you really are determined to mine, however, a gpu/cpu only coin like gridcoin would be good.
A good general tutorial can be found here. It's not very detailed, but it will suffice.


text:
Does electrum use static fees?
I use electrum as a bit wallet and curious to find out if it's uses static or dynamic fees as I never set the option, and the fees seem to be 0.00001 B

The most recent versions of Electrum use dynamic fees. It has been like this for several versions, although for some versions you needed to enable it in your preferences. Check your preferences and see if there is a dynamic fees option. You can also just upgrade to using the latest version of Electrum.


text:
Pybitcointools python 3.5 support
I am trying to run Vitalik Buterin's python bitcoin wrapper.
I installed it from PyPi (pip install pybitcointools ).
When I try to run:
import bitcoin

I get the following error:

ImportError                               Traceback (most recent call
  last)  in ()
  ----> 1 import bitcoin
ImportError: No module named 'bitcoin'

I will appreciate any pointers on this

Do you have more than one version of python installed?

Used to have 2.7 ages ago but uninstalled it

try:
import pybitcointools

that fix my problem


text:
Where can I buy bitcash
Is there any where I can buy bitcash ahead of the fork? Or do I need to keep my bitcoin in wallets that won't signal SegWit?

Bitcoin Cash is technically just Bitcoin before the fork, it doesn't really exist as such, and any Bitcoin you own will become Bitcoin Cash as well after the fork (because your UTXOs will be valid in the shared chain before the fork and thus valid in both branches). Until the fork happens, there is only one blockchain, hence the term fork.

Is there a way of knowing which side a miner will vote? ie. the electrum wallet says it wont add segwit...will keeping bit here turn to bitcash after 1Aug?

Electrum wallet is not a miner, I'm unsure what you mean. For more info on the chain split check out some of the other questions on SE, e.g. https://bitcoin.stackexchange.com/questions/56661/what-happens-to-my-bitcoins-if-a-hard-fork-occurs but if you have further questions, please start a new topic rather than using the comments


text:
Who is hosting my bitcoin address?
Well I set up a few different bitcoin wallets one night and somehow I have one of my faucets set up to send money to a wallet that I dont remember setting up. I have the bitcoin address but I don't know if its a coinbase, coinmama, torwallet or what? Any ideas how to find out how to log into it?

No way to know.  Bitcoin addresses are created by a random generation process, and the address itself shouldn't contain any information associating it with the site where it was created.  If it did, that would weaken your privacy.
The wallet site should have offered you the option to back up your private key, so you might look for those keys somewhere on your computer.  Otherwise, if you don't know the site and have the required password / passphrase / whatever, you cannot get those coins.
Fortunately, faucets provide such a minuscule amount of bitcoin that you surely haven't lost much (see Do faucets actually work?).  So it's probably not worth your time to do anything other than just start again.  This time, make a backup of your private keys.


text:
Initital block downloading does not start
I've installed bitcoind as said:
sudo apt-add-repository ppa:bitcoin/bitcoin
sudo apt-get update
sudo apt-get install bitcoin-qt

Then I started server, running bitcoind -daemon
But initial block download doesn start for some reason. When I call bitcoin-cli getblockchaininfo verificationprogress is always 0.0000000
On my local machine everything went well and seems that I have to fix network settings to be able to run bitcoin on remote server at collocation. But I have now Idea what to fix and where to look. I've searched google all the way up and down, I've tried setting proxy=127.0.0.1:9050 - no effect :(
Pls help - how do I make bitcoind to connect to peers?

what does bitcoin-cli getpeerinfo report?

empty array '[]'

I think 8332 and 8333 ports are closed by my provider

Can you look at debug.log? Do you see it making connection attenpts at al? Do they fail or timeout?

where's that debug.log?


text:
How to transfer my wallet.dat to dedicated Ubuntu server
Sorry for dummy question at first.
I have developed an application on my local dev machine. Now I want to make a realease on production server located elsewhere to which I have ssh access.
I dont want to put my wallet.dat in git. Of course.
But dedicated server doesnt have access to my local virtual ubuntu developer machine where wallet.dat is kept.
So I have to copy my wallet.dat from one virtual machine it terminal to another terminal. I thought I could dump keys to some text file and simply copypast it between servers. But dumpwallet command creates file with hundreeds of addresses and each one of them should be than imported on by one by importprivkey and there is no option to import dumped file (weird, no?)

Though not really bitcoin related...
How are the two systems connected? I mean, can you already login via ssh? Or do you only have a terminal running on both, and no ssh daemon?
If no ssh daemon, then netcat is the tool of choice.
If ssh daemon is running, use secure copy tool:
scp -port source target

e.g.:
scp -P 22022 ~/.bitcoin/wallet.dat 192.168.92.117:/home/mybitcoinuser/.bitcoin

And lastly, if the target server doesn‘t run ssh daemon, you can for sure start one in your terminal, and execute the scp from the target server (adopting the source and target).
There is a capital P when using scp.

Ah, just re-read question. you have ssh, so the first approach with scp should work...

I do have ssh access to the remote server. But my virtual server where dev site is running - does not. My host machine is windows, so I can copy wallet.dat from my dev server to windows, but cant copy it to remove target server since to connect I use putty ssh manager and it doesnt have an access to my windows files.

ahh, windows... and you have 3 machines involved... I am not clear: a windows host, with a virtual dev machine, and a remote server. And you want to send from Windows to the virtual machine or to remote server? I remember, that using pscp.exe was the tool, which allows to send files to a remote machines from a windows box...

pscp.exe doent even start :(

Ok, now it gets more and more complicated, and doesn’t add value to the bitcoin community. Probably you need to find the software, get it installed, and maybe look into the Windows areas on further howto...


text:
How to send bitcoins with commission extracted from payment in PHP or bitcoind
First, I have simple problem. I want to send customer some bitcoins, but I dont want to pay fees for him. I'd like to substruct fees from payment, so all commissions would be payed by customer.
I thought it should be a simple and common problem for all merchants that making refunds to clients. But I googled for hours and could not find any detailed explanation on how to achieve this feature 'receiver-pays-commissions'.
Here some links that I found usefull, but still they dont have exact answer
How to create raw transaction in bitcoind
How to create raw transaction in PHP
How to calculate transaction size and fee
Simply put. I want to send some bitcoins away so that my account balance will be equal exactly 1.8000000. Now it is slightly higher:

Surprisingly this simple and common problem took hours of googling, so I'm making this question just to share solution with public, since I finally found it.
(Or at least I think I've found it, so critics and comments are very welcome.)

Here is the algorythm without the code:

createrawtransaction with amount that you want to send assuming that fees are 0
fundrawtransaction to let your bitcoind construct final transaction, put your change address (on where you get change from unspent transaction - very important!) AND to caclulate fees that will be taken of your account for this transaction.
Substract caclulated fees from initial amount
Repeat steps 1-2 with new lowered amount.
Profit.

And here is the PHP code.
We will need function to create and fund new transaction
function prepareRawTransaction($amountToSend, $addressToSendTo) {

    $bitcoin = new Bitcoin('bitcoinrpc', 'xxx');

    $collectedAmount = 0;
    $sendToArray = [];
    $sendToArray[$addressToSendTo] = $amountToSend;

    $unspentTransactions = $bitcoin->listunspent(); //First we find out all our unspent transactions from where we can withdraw
    $collectedTransactions = [];

    foreach ($unspentTransactions as $unspentTransaction) {

        if ($collectedAmount < $amountToSend) {
            $collectedTransactions[] = [
                'txid'  => $unspentTransaction['txid'],
                'vout'  => $unspentTransaction['vout'],
            ];

            $collectedAmount += $unspentTransaction['amount'];
        } else {

            break;
        }
    }

    //Now we create raw transactions
    $rawTransaction = $bitcoin->createrawtransaction($collectedTransactions, $sendToArray);

    //And fund it
    $newTransaction = $bitcoin->fundrawtransaction($rawTransaction);
    return $newTransaction;
}

Now we can use that function to go on algorythm
$bitcoin = new Bitcoin('bitcoinrpc', 'xxx');

$amountToSend = 0.09999556; //That's exact amount that we want to send INCLUDING commission
$addressToSendTo = '2N8hwP1WmJrFF5QWABn38y63uYLhnJYJYTF';

//createrawtransaction with amount that you want to send assuming that fees are 0
$transactionWithoutCommission = prepareRawTransaction($amountToSend, $addressToSendTo);

$decoded = $bitcoin->decoderawtransaction($transactionWithoutCommission['hex']);
print_r($decoded); //You can see that fees now set up

//Substract caclulated fees from initial amount
$amountToSend =  $amountToSend - $transactionWithoutCommission['fee'];

//Repeat steps 1-2 with new lowered amount
$transactionWithCommission = prepareRawTransaction($amountToSend, $addressToSendTo);

$decoded = $bitcoin->decoderawtransaction($transactionWithCommission['hex']);
print_r($decoded); //Here you can see that total amount + commission equal needed amount

$signed = $bitcoin->signrawtransaction($transactionWithCommission['hex']);
print_r($signed); //should say complete:1 if everything was correctly put

$published = $bitcoin->sendrawtransaction($signed['hex']);
print_r($published); //will output you tx id

And profit: you have sent exactly the amount you wanted INCLUDING the commission

What API/lib your using e.g. easybitcoin.php

easybitcoin, yes

Ok so does the answer below me helps ?

What you can do is use

$txid = $bitcoin-        >sendtoaddress("User's bitcoIN address here ","amount of btc to send","comment 1","comment 2", true);
// echo $txid;

what the true is that it makes sure the fees are already included in the amount you want to set (not sure if the lib is glitches and if it is then the true may not work properly)

I suggest you try it on the testnet to see if it works

For bitcoin-cli that supports it, you can type bitcoin-cli "address btc" "amount" "comment 1" "comment 2" true

When using sendtoaddress you will pay commission off the primary account.  Say if you want to send me 0.01 BTC, your account totally will be credited to 0.01 BTC PLUS commission for the transaction. That's the main problem.

I think scheme when sender-pays-commission is more common, since you have to be sure that receiver will get the amount that he expects, not less. But scheme receiver-pays-commission is also needed and it wasnt easy to make it up.

If it refund depend on your choice


text:
Run bitcoinCash on same server with bitcoin
I followed the great answer here how to install bitcoin legacy and bitcoin cash on the same ubuntu server?
and installed bitcoinCash client to my ubuntu server.
Now I have both binaries available but they both work on same configs and same blockchains as I see.

There supposed be a way how to tell bitcoinCash client to download its own chain and use its own keys, but I cant figure out where those setup files for bitcoinCash are located and how to change them.
Could anyone help pls?

You can create a new username for Bitcoin cash or change default directory.
adduser BitcoinCashUser

su BitcoinCashUser

BitcoinCashd -daemon

Now make sure it has own directory
cd ~/.bitcoin

You should find the files in here.
Change Bitcoin Directory
Follow these instructions on here
Note: kill bitcoin-cash before start it again.
ps ax | grep bitcoinCashd
kill -9 <Process ID>


text:
How to generate legacy receiving address in Bitcoin core 0.19.x.x
I must have missed the memo.  I see Bitcoin Core 19.1.0.1 defaults to generating Bech32 receive addresses (prefixed with "bc1"), and offers a checkmark to generate P2SH addresses instead (prefixed with "3").
But if I want to generate the legacy P2PKH addresses I know and love (prefixed with "1"), it seems I need to drop into the console and run something like:
getnewaddress("mylabel","legacy")
Is there a way to do that in the GUI?

Why do you want to do this? There’s no option for it in the GUI because it’s largely to your detriment to use non-segwit transaction types at this point.

From within the GUI, no, and this is intentional. There is no reason to use P2PKH addresses anymore. If you need backwards compatibility, then that's what the P2SH checkbox is for.
But if you really must have P2PKH addresses, you can configure Bitcoin Core to only use them by adding addresstype=legacy to your bitcoin.conf file. If you want your change to also be P2PKH, you will need to set changetype=legacy as well.


text:
How safe is Nicolas Dorier's BCCSpliter?
I noticed a link to this resource on an article talking about safely splitting your BTC and BCH(/BCC):
https://github.com/NicolasDorier/BCCSpliter
Has anyone reviewed the source code and is it safe to use?  Could someone provide a run-down on how it works?  I read the readme but am hoping for a bit more detail.

The readme file pretty much explains everything step by step.
But if you don't have much technical knowledge, the best one to use will be a wallet with some GUI. I suggest you to use Electron Cash.
But before using your private key of the BTC addresses, move those BTC to any other addresses, and then only use the private keys in this software (just a precaution).
You can also import multiple private keys together in this software.
P.S. I cannot comment due to the reputation limit right now, hope this helps you somehow.
Edit: Use precaution while using Electron Cash, as it is as of writing this answer is not much tested and have bugs.

Take a look at the warnings surrounding electron cash before you trust it, for example in the answer here: https://bitcoin.stackexchange.com/questions/57545/retrieve-bcc-bch-but-now-have-0-was-i-hacked

I have done some transaction using electron cash mate. But as I said, it will be wise that you transfer your BTC to another wallet before messing up with this. Anyways, updated my answer mate.

authors: Алексей Смирнов


text:
when does an address shows on blockchain?
I have a ledger wallet which generates several public keys/addresses. Without having used any of them, some of them are shown in blockchain.info whereas other produce an "Unrecognized search pattern" error. Why does that happen? All these addresses come from the same master key.

Are you sure that you are checking Bitcoin addresses with blockchain.info (a Bitcoin address from a Ledger Wallet starts with a "1")?
If there has not been sent any bitcoins to an address, then blockchain.info will show it without any transactions and a balance of zero. It should never say "unrecognized search pattern".

yes, they are pks/addresses produced by the dongle and they start with 1. But some of them are "unrecognized search patterns" by blockchain.info. What are these keys? I also received some bits to the others that do appear at blockchain.info but the amount never appears to my wallet (ledger wallet  interface). Have I lost these payments? I am confused with what these keys are?

Have you tried to lookup the "unrecognized" addresses with e.g. blockr.io just to make sure it is not a problem with blockchain.info? Otherwise can you public one of those addresses here?

you were right. now almos all of them appear at  http://blockr.io but I still have one address that is not shown.. the address is 1PYJ3cY9hDu8Gshzp7aN9z8SyhDY5gT5PBnþ .. what is that?

You know that you have a special symbol at the end of the address you posted, which is not part of an address? I can find the address here: https://blockr.io/address/info/1PYJ3cY9hDu8Gshzp7aN9z8SyhDY5gT5PBn

oh thank you so much! So, I tried to send some bits to some of these "weird" addresses, but the amount does not show on my wallet. Do you have any idea why that happens? I am a bit afraid of using that particular wallet now, as the amount sent to these addresses does not show.

Sending bits to "weird" addresses is not possible, since an address contains a checksum which makes sure that there are not typus (such as weird characters) in the address. You have to sent the amount (again) to the correctly spelled addresses.

but I can see the transaction online as well as the balance of these addresses, but that balance does not appear to my wallet? Am I missing something here? For instance, I have sent 0.05 bits to one of these addresses that my dongle produces, I can see the trasnaction online, but thse 0.05 bits do not appear to the balance that its shown by my wallet..


text:
how do i convert an uncompressed key to an extended bip 32?
I am completely new to bitcoin. My question is how do you convert an uncompressed key to an extended bip32 key? Are there any tools that do that? Thank you

They have different use cases. A public key is for receiving sending on, an extended key is for deriving more keys from. Why do you need to convert one into the other, as opposed to creating a new one, for example?

With "uncompressed key" you probably refers to an uncompressed public-key.
An extended public-key has additional informations (next to the compressed public-key itself).
You can get the pure compressed public key from an extended public key, but not vice-versa.

depth (in the hierarchy)
child-index
chaincode (the hierarchal link)
fingerprint (first 4 bytes of the keyId [ripemd(sha256())])


text:
is there a tool to produce addresses given a master public key?
I have master public key of my wallet and I want to generate addresses but without using my current wallet. Is there a tool that does that?

Check out libbtc (https://github.com/libbtc/libbtc), once compiled, you get a command line application called bitcointool.
libbtc compiles without external dependencies (compile it with --disable-net if you don't need libevent based p2p network features).
You can then derive a sub-key from your master with something like...
./bitcointool -command hdderive -keypath m/1 -privkey xprv9s21ZrQH143K3C5hLMq2Upsh8mf9Z1p5C4QuXJkiodSSihp324YnWpFfRjvP7gqocJKz4oakVwZn5cUgRYTHtNRvGqU5DU2Gn8MPM9jHvfC

(should also work for public key derivation)
Maybe check the docs: https://github.com/libbtc/libbtc#the-bitcointool-cli

I have written two tools that can derive addresses from master public key.
hd-wallet-addrs: aimed at finding all addresses that have actually been used (received coins).  But it can also also do simple derivation from xpub by using the --gen-only flag.  This tool will automatically find both receive and change addresses.
hd-wallet-derive: aimed at simple xprv/xpub derivation.  This tool is best for when you have a master xprv and you want to find all derived xprv, privkey/wif, xpub, addresses, or you need to use a custom derivation path.
hd-wallet-addrs example for your use case:
note: --gen-only=3 flag is used, to prevent blockchain lookups and generate 3 receive addresses and 3 change addresses.

$ ./hd-wallet-addrs.php -g --xpub=xpub6BfKpqjTwvH21wJGWEfxLppb8sU7C6FJge2kWb9315oP4ZVqCXG29cdUtkyu7YQhHyfA5nt63nzcNZHYmqXYHDxYo8mm1Xq1dAC7YtodwUR --gen-only=3

+------------------------------------+---------+---------+
| addr                               | type    | relpath |
+------------------------------------+---------+---------+
| 1Ge6rDuyCdYVGhXZjcK4251q67GXMKx6xK | Receive | 0/0     |
| 1NVsB73WmDGXSxv77sh9PZENH2x3RRnkDY | Receive | 0/1     |
| 1BkgqiHcvfnQ2wrPN5D2ycrvZas3nibMjC | Receive | 0/2     |
| 12SisoiXLUEbkytL5Pzia1jBY8gJP5XN8D | Change  | 1/0     |
| 1CkvACVpFwkPnMG13w9kXXE9YcsiyL4pcY | Change  | 1/1     |
| 18EmV6cYjVmK3SQshZc92CdD9ByHDdf39v | Change  | 1/2     |
+------------------------------------+---------+---------+

hd-wallet-derive example for your use case:
note: we run the script twice, once for receive addrs and once for change addrs.  The --path arg controls this.  The --cols arg is used to hide columns we don't care about.

$ ./hd-wallet-derive.php -g --key=xpub6BfKpqjTwvH21wJGWEfxLppb8sU7C6FJge2kWb9315oP4ZVqCXG29cdUtkyu7YQhHyfA5nt63nzcNZHYmqXYHDxYo8mm1Xq1dAC7YtodwUR --cols=address,relpath --path=0 --numderive=3
+------------------------------------+---------+
| address                            | relpath |
+------------------------------------+---------+
| 1Ge6rDuyCdYVGhXZjcK4251q67GXMKx6xK | 0/0     |
| 1NVsB73WmDGXSxv77sh9PZENH2x3RRnkDY | 0/1     |
| 1BkgqiHcvfnQ2wrPN5D2ycrvZas3nibMjC | 0/2     |
+------------------------------------+---------+

$ ./hd-wallet-derive.php -g --key=xpub6BfKpqjTwvH21wJGWEfxLppb8sU7C6FJge2kWb9315oP4ZVqCXG29cdUtkyu7YQhHyfA5nt63nzcNZHYmqXYHDxYo8mm1Xq1dAC7YtodwUR --cols=address,relpath --path=1 --numderive=3
2017-08-03T10:19:04-07:00 [pid: 28708] [info] -- Generating addresses
+------------------------------------+---------+
| address                            | relpath |
+------------------------------------+---------+
| 12SisoiXLUEbkytL5Pzia1jBY8gJP5XN8D | 1/0     |
| 1CkvACVpFwkPnMG13w9kXXE9YcsiyL4pcY | 1/1     |
| 18EmV6cYjVmK3SQshZc92CdD9ByHDdf39v | 1/2     |
+------------------------------------+---------+

If related to a BIP32 address (such as generated by Mycelium, Ledger, or Trezor), enter link description here wallet service allows you to use your xpub address to derive previously used addresses, although not addresses that haven't seen an on-chain transaction yet.


text:
can I create addresses based on what I want to look like?
Hi I am completely new to bitcoin. I was wondering if it is possible to create addresses based on how the final outcome you would like to be. For example, I dont like something like that 1L5gu6zJHxtAiDM74heP7wW84PYQ5Ltc9o as it is extremely difficult to remember. Could it be possible to create something like that eg., 1L5a5a5a5a5a...c9o i.e. decide the final letters or an approximation?

Look into vanity addresses, it should be pretty close to what you're looking for. VanityGen is the most popular.

@m1xolyd1an That's indeed the right answer, but it only lets you control a few characters, so it hardly helps for memorability.

Not really, a Bitcoin address is the result of applying multiple hash functions to a public key. Since you can't decide how the result of a hash function will look like depending on the input, you won't be able to do so with a Bitcoin address.
You can find the Bitcoin address creation process explained in the Bitcoin wiki.
However, as commented by @m1xolyd1an and @pieter-wuille, VanityGen can be used to create a more personalised address, instead of a purely random one. Since VanityGen is based on a probabilistic search, the pattern that you will be able to include in your address will be quite short. Trying to include long patters requires a lot of time, becoming infeasible.