How many paths are tried on average before a payment succeeds in Lightning? In Lightning, the sender can never be sure that a multi-hop payment will go through, as intermediary nodes don't announce the distribution of funds in their channels (only the total capacity). Is there any publicly available data on how many attempts it takes on average in practice to route payments of different sizes? Something like this (the numbers are my wild guess):

Amount - Average paths tried

100 sat - 1.8

1000 sat - 3.3

10000 sat - 5.9

1000000 sat - 13.2

There is a similar question Lightning network routing failure rate and a 2018 article linked from there, but it addresses the success probabilities based on capacities only (this can be calculated from a network snapshot). I'm interested on the data from real-world transactions.

I don't think there is a Public dataset online with an answer to your question. This would also be extremely hard to create as the results could change a lot depending on which node is doing the experiment.

I know people are probing payment channels you could do the same. Just do payments to random payment hashes and collect the data for your node. You will get the routing failures and attempted tries in that way you can easily collect those statistics yourself.


How bitcoin is peer to peer? Bitcoin's whitepaper says that "A purely peer-to-peer version of electronic cash would allow online payments to be sent directly from one party to another without going through a financial institution". That is, without a trusted third party. But in Bitcoin, instead of the third party being financial institution, it is miners who are in between. So, how bitcoin is peer to peer? And isn't the traditional method of payment, including PayPal etc., peer to peer?

miners who are in between

No, miners aren't in between. Miners around of block-chain, they are builders of the chain. *

* As Pieter Wuille says in the comment, anyone can be a miner, but in nowadays that's too hard to be a miner without special hardware.

  And isn't the traditional method of payment, including PayPal etc.,
  peer to peer?

No, that's also false, peer-to-peer doesnt have a centralized management.

Here is peer to peer (computer  to computer for e.g.).

And here is centralized service like PayPal or whatever:

The PayPal has centralized management.

  But for the end user, he just scans the paypal's code of the receiver
  and payment is done. Sender to receiver. So isn't this peer to peer?

You're simplifying things too much. For example the telephone call, you just speaks with a friend of yours directly, looks like peer-to-peer(friend-to-friend), but under the hood the phone provider in between you and your friend.


Merge Bitcoin Mining with Fold at Home! I am new, but have a big idea about bitcoin.

There is a distributed computing project known as Fold at Home. What if its software were used for the generation of something instead of for a menial, useless task? Fold at home distributes datapackets that need to be worked on by computers. Once computers finish the work, they send a report of the data back to the host.

What if Bitcoin mining were, instead, Folding at home? if the programs could be made compatible, then bitcoin mining would also be donating something to a good cause.

Folding@home work is not compatible with the required properties of the work that needs to be performed for bitcoin. In particular, the computation work required for bitcoin mining needs to assure:

(a) difficulty of getting a 'good' result
(b) ease of verification of a good result once it is found
(c) precise scaling of difficulty depending on total network power.

The folding@home problems provide neither assurance of difficulty nor are in any way easy to scale depending on network power (since each folding problem is unique). They probably do meet the (b) ease of verification, but not the other criteria.


How to price a Bitcoin? What method do you use to price / value a bitcoin?

You use discounted cash flow for a stock, what methods do you know to price a bitcoin?

This guy shows some ideas: https://www.youtube.com/watch?v=iqyLByXUksg&list=WL&index=22

Bitcoin has no "inherent" value; it is a currency.  Value is therefore subjective, and can only be discovered when you attempt to convert a bitcoin into some other currency or good.

In a free, unmanipulated market, the "price" of a currency operates by seeking equilibrium between buyers and sellers.  If there are more sellers than buyers, the price will drop.  Conversely, if there are more buyers than sellers, the price will rise.

If demand for bitcoin drops radically, and the price declines in the same manner, it may become extremely difficult to "get out" of bitcoin since transactions rely on being "confirmed" by mining nodes.  Mining nodes only perform mining activities when the financial incentive is bigger than the cost of performing that mining.  You can see the current "price" of a transaction in various places, including https://bitcoinfees.earn.com/ and https://statoshi.info/dashboard/db/fee-estimates among others.  The function of price-for-confirmation is a combination of how much you, and others, are willing to pay for confirmation, how many confirmations are in the queue, and how the price of bitcoin compared to the input costs of running mining, such as electricity and the cost of mining rigs.  So, if the price is declining, and many people sell causing a lot of transactions, you will need to spend more than everyone else on transaction fees; this could very quickly cause an escalation of fees, and could be considered one of the bearish cases for this cryptocurrency.  Do not put more into bitcoin than you can stand to lose, which is of course good advice for any risk.


Unconfirmed bitcoin transaction (Need help) I have sent bitcoin since 25th May 2017 till now the transaction haven't confirmed yet.
https://blockchain.info/tx/ac0635c98af0703927f1b364d2d8c19f4b2812c97169c729cb341111adcea866
How can i do? Please kindly help me to get my bitcoin back
Thank you in advance
Tickbit

The transaction you link builds on a chain of approximately 30 unconfirmed transactions. As far as I saw when skimming through, they all pay decent fees with 295sat/B, however due to them being unconfirmed for more than two weeks, probably some have been dropped from the mempool since.

You should make sure that all the transactions are broadcast to the network again, then I think they would confirm easily within an hour or two, as currently transactions at <80sat/B get confirmed.


Why 'bitcoin-cli getreceivedbyaddress ...' always returns 0? I've already synchronized about 400.000 blocks, but every time I'm trying to get balance for specific address, e.g. first coinbase address - link:

$ bitcoin-cli getreceivedbyaddress 12c6DSiU4Rq3P4ZxziKxzrL5LmMBrzjrJX
0.00000000

It always returns 0.00000000. What am I doing wrong?

P.S. My bitcoin-cli information:

$ bitcoin-cli getinfo
{
  "version": 140200,
  "protocolversion": 70015,
  "walletversion": 130000,
  "balance": 0.00000000,
  "blocks": 396531,
  "timeoffset": -2,
  "connections": 8,
  "proxy": "",
  "difficulty": 120033340651.237,
  "testnet": false,
  "keypoololdest": 1500906189,
  "keypoolsize": 100,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "errors": ""
}

getreceivedbyaddress is a wallet RPC. It queries your own wallet for how much money it has received on that address. Arguably, the RPC should return an error if the address is not considered its by the wallet.

You can make the wallet treat addresses as its own even if it does not have the private key, by using the watch-only functionality. However, introducing a new address will require a lengthy rescan of all of history to discover the transactions.

There is no equivalent RPC that operates on the whole node, as Bitcoin Core does not maintain a full per-address index of the blockchain.

I filed an issue here: https://github.com/bitcoin/bitcoin/issues/10921


Which pooled mining scheme is better in terms of constant mining? I'm comparing gash.io with slush scheme. Say I mine 24x7 without pool hopping at 5GH/s. Will the BTC amount be the same if I mine at slush or gash.io. And what if I get disconnected from either of pools for say random one half hour duration or more a day, how would the reward be?

I think it will roughly (~1%) be the same, otherwise no-one would stay at Slush or GHash.IO, if one of them has obvious lower rewards. In your previous question I answered that there are differences in the way your share is calculated, and thus the reward changes. But because you don't want to hop pools, score will be the same as PPLNS. Otherwise you can try to mine a week in both pools, and see the reward you get in both pools. I think it is best to try it yourself. You get bitcoin in return, so it is not for nothing.

I'm not sure how the disconnection works with the score-system, but I think PPLNS wins on that area, because you won't get penalised. IN PPLNS you'll just get paid for each share you contribute. So if you mine 100 shares/hour, and you are offline 6 hours, you'll miss 600 shares. Depending on the btc/share, that exact amount of btc is what you miss during your offline time.


Signing a transaction with SSL I'm trying to sign a transaction using SSL. I already generated the raw transaction and hashed it properly. So I'd like to sign the following hash: c88568c9a85d52d07432dee9ee8dd1c63a4bfea6f754d2ec94f50015ae91a3f3, using the following private key: a16173978f25fcae5a1e55733fbda2f86470427e5cd9407c51b427c3054d182e.

I have looked around and figured the following command: openssl dgst -sha256 -hex -sign key.pem hash.txt. Great! (I think). How can I convert my private key to .pem file so SSL can use it to sign?

Bitcoin does not work with strings and hashing, you first need to convert to binary. On Unix systems, you can use xxd to convert string to binary (into file).

See also here:

Verifying a bitcoin trx on the Unix cmd line with OpenSSL?


Slow but effective mining as a learning tool Most discussion about mining is from the perspective of serious Bitcoin users who are trying to profit from it. I’m curious to try mining, only to experiment and become more familiar with cryptocurrencies. I’m not interested in being profitable over the long term, but I am interested in verifying success, namely in seeing my wallet balance nudge a tiny bit.

How can I best use my regular computer (~18Mhash/s GPU, via this) to mine Bitcoin or Litecoin? Specific questions:

If joining a pool, a centrally coordinated one or a P2P pool?
What mining pool payment system(s) would make the most sense?
I’ve got cgminer operating. Any parameters / tweaks I should use?

From what I’ve read, with a slow hash rate, it’s easy to just waste all your compute time on dead pool shares and whatnot. How can I avoid that? Is there anything else I should watch out for?

If it's for learning I recommend starting with the simplest options and then moving up to more elaborate settings.

Start with a centralized pool with PPS payments. Then you can move on to any other hopping-proof method such as PPLNS or DGM. Then you can try p2pool.

Having a low hashrate should have no affect on the relative portion of stale shares.


Details in double spend detection I'm confused with the details in double spend detection. my question is if Alice first sends her 10 BTC to Bob, and then sends the same 10 BTC to an address that belongs to herself. How do Bitcoin clients detect the second transaction is invalid? In other word, how can client know these bitcoins have been spent in the first transaction? Does the clients trace back all the blocks to check if these bitcoin have been spent before?

There are two stages that affect double spending transactions.

Initially, when the transactions are unconfirmed, a node can't know which transaction was "the first" or the "double spend". Through a local policy it can pick either, usually the first it sees. But it might pick the other one depending on for example the amount of fee (Miners might prefer the highest fee).

As soon as one of the transactions is confirmed (6 confirmations to be sure), the other will be invalid. A Bitcoin node maintains an Unspent Transaction Ouput (UTXO) set. Whenever a transaction spends an output (of an earlier transaciton), that ouput is removed from the UTXO set and any outputs of the new transaction are added to the set.

A double spend transaction would be trying to spend an output that is not in the UTXO set and is therefore invalid.

The UTXO set is currently about 1 GB and is kept in memory, to make all the lookups very fast. There are optimizations in the works that would reduce this size. Although with larger Bitcoin adoption the UTXO set will also grow again.


Overclock Antminer U3 running on raspberry pi I have an Antminer u3 running on a raspberry pi using bfgminer. Its currently running at 47GH/s. Does anyone know if  is possible to over clock it using BGFminer so that it will run at 55 - 60 GH/s?

if i cant do it using BFGminer is there another mining software i can do it in?

any suggestions would be welcome and would be appreciated:)

I set up my rasp pi b+ and U3 mining rig using the instructions in this forum post, with screen and cgminer.

The command relevant to over clocking the raspi that I used is the following:

sudo ./cgminer --bmsc-options 115200:0.57 -o POOL -u USERNAME -p PASSWORD --bmsc-voltage 0800 --bmsc-freq 1286

Those last two options (bmsc-voltage and bmsc-freq) are what over clocked the rasp pi.  But I think I had to compile cgminer and configure it to include bmsc.  Mine typically runs with a hash rate in the high 50's or low 60's, but maybe not quite 62-63 GH/s.

Also, I did try to push the U3 voltage and frequency higher by playing with the settings as detailed in the U3 manual.  However, I could never get the U3 to run stably at settings any higher than what I gave above.  I'm not sure if it makes a difference, but I'm actually running two U3's on the one rasp pi and cgminer instance.

Update: In the interest of providing a complete answer in one place, here's the full text from the linked forum post:

  Run a fresh install of Raspbian using NOOBS, after the install type ifconfig and make a note of the IP address, so that you can remotely
  SSH into your Pi. Login via PuTTY with the default username/password,
  then raspi-config if you would like to change the hostname, default
  password and so on.

  Now update the Pi:
  sudo apt-get update && sudo apt-get upgrade

  Install dependencies:

  sudo apt-get install libusb-1.0-0-dev libusb-1.0-0 libcurl4-openssl-dev libncurses5-dev libudev-dev screen libtool automake pkg-config libjansson-dev screen

  Clone cgminer from here:
  git clone https://github.com/bitmaintech/cgminer

  Install, configure and also enable bmsc options:

  cd cgminer

  sudo ./autogen.sh

  export LIBCURL_CFLAGS=’-I/usr/include/curl’

  sudo ./configure --enable-bmsc

  sudo make

  Test cgminer is working correctly by running the following (input your
  own pool, username and password):

  sudo ./cgminer --bmsc-options 115200:0.57 -o POOL -u USERNAME -p PASSWORD --bmsc-voltage 0800 --bmsc-freq 1286

  Type Q to exit cgminer...

  Now, add cgminer to start automatically when the Pi is powered on and
  create a screen session:

  sudo nano /etc/rc.local

  Remember, Ctrl-X to exit, then type Y and press Enter to save changes. Add this just above
  exit 0, again enter your own pool, username and password:

  cd /home/pi/cgminer

  screen -dmS cgminer ./cgminer --bmsc-options 115200:0.57 -o POOL -u USERNAME -p PASSWORD --bmsc-voltage 0800 --bmsc-freq 1286


How to generate a P2WSH address getnewaddress "" bech32 generates a P2WPKH address (e.g. tb1qw508d6qejxtdg4y5r3zarvary0c5xw7kxpjzsx).

How can I generate a P2WSH address (e.g. tb1qrp33g0q5c5txsp9arysrx4k6zdkfs4nce4xj0gdcccefvpysxf3q0sl5k7)?

To generate a P2WSH address, you need to have some script. The most easiest one you can use is a multisig script. You can do this with the addmultisigaddress. If you do something like

addmultisigaddress 1 '["37Ju7oTbPfe5qNAHYiAKfdTtVvCSP3TTdL"]' "" "bech32"

you should get a P2WSH address.


Do any hardware wallets / hardware platforms that rely on or allow open source firmware? There's a reason the safest software wallets are open-source: they can be audited by anyone. With hardware wallets, unless you're manufacturing one yourself, you're all but forced to trust the manufacturer to a certain extent. This trust could be minimized if a manufacturer created a generalized security device that users would upload their own firmware to. This way, the manufacturer would be very limited in the types of security holes it could intentionally add, given that they couldn't know what firmware would be running on it.

So it seems to me that the ideal would be for a hardware wallet to have an open-source design, manufactured by some hopefully (but not necessarily) trustworthy private company, and each user would upload and run some open source firmware on the device.

Are there any devices / hardware wallets that fit this description?

See here the latest list of 27 hardware wallets, many use open source software in the meantime - flagged with a (O). The other ones are flagged with a (N).
For security reasons it is of course not sufficient to consider the software alone, also hardware can contain backdoors.

(O) Archos Safe-T (Mini)
(O) BC Vault
(O) Bitbox
(O) Bitfi
(O) BitLox Hardware Wallet
(?) Card Wallet
(O) Cobo Vault Wallet
(O) ColdCard
(N) CoolWallet S --> plans to (O) it in future
(N) D’CENT Hardware Wallet
(N) Ellipal
(N) Ellipal Titan
(O) Keepkey
(N) Keevo Wallet
(O) KeyCard
(N) Ledger Blue
(N) Ledger Nano S
(N) Ledger Nano X
(N?) MIRKey by ellipticsecure
(O) Opendime
(N?) SafePal S1
(O) Secalot
(N) SecuX V20
(partly O) Temexe X Wallet --> backup algorithm is open source
(O) Trezor One Wallet
(O) Trezor T
(N?) XZEN Wallet


Lightning network hub security? Reading the whitepaper, I came across a point: nodes wishing to act as effective intermediaries, 'hubs' or not, need high availability and need to operate autonomously.

This means they must have access to the private keys of their payment channels in order to rebalance in support of transactions!! Vulnerabilities in the Lightning Network service - or other services on the same system or adjacent network - will end up exposing those keys to risk of theft.

Are there any solutions to this?

While I agree with you in that this is an issue, it is in no way different from current systems. In current systems, stealing credentials of a bank give you pretty much enough power to move the money around. In the case of the LN, stealing credentials of a payment channel/tx gives you the possibility of compromising that payment channel, or to publish that tx.

However, the damage is not that bad if only one of the two participants is compromised:

In the event of key theft, the thief can simply try to cooperate with the counterparty in creating a new state that benefits the counterparty, creating some kind of LN-like protocol to ensure a part of the funds go to the thief.  The thief must however do this for each of the channels and counterparties, while in the meantime the hub can update the state and invalidate the stolen keys.
In the event of tx theft, the thief can simply either publish a previous state (which the hub should have deleted completely anyway when updating), by which the hub loses all funds after counterparty proves fraud. Or instead, the thief can only publish the current state, in which nothing changes.

I do not really think this is much of a problem, but perhaps I am missing some case scenario here. Please complete my answer if that's the case.


bitaddress.org paper wallet vs. single wallet After generating a single wallet (at bitaddress.org), the paper wallet option at the top shows a different public address?  Why is the public address different?

bitaddress.org does not use the same private keys for paper wallet generation as for the single wallet. It uses the same initial entropy that you provide, but new private keys are generated for the paper wallet. Thus the addresses are different.


What are ways a BTC Exchange could steal from its customers, and how can they protect themselves? Mt Gox is the dominant Exchange that handles BTC to USD conversions.  Given the recent spike in price, and that Mt Gox is the primary exchange that publishes this price, it's conceivable that a second set of books could be used to manipulate the public -vs- non-published value of the coins.

What are the methods in which an Exchange can steal from its customers? (dual set of books, etc)
How can consumers and businesses protect themselves from exchange based fraud?

One way an exchange could prove that it is liquid is to move all the funds from one address to another, and publish the transactionID.  This would be visible in the block chain.


Any documentation available that would help developing a Bitcoin Client? I want to start developing a Bitcoin Client in a new language. For this I'm looking for references and resources that could be used to as a guide. Some kind of comprehensive guideline of what a client should include. But haven't been really successful so far. Does anybody knows about something like this?

EDIT:
I'm aiming for a full node with wallet capabilities

The bitcoin.it wiki contains a Protocol documentation section with information about network messages mostly. You can also use other pages of this wiki, but be sure to check it's up to date.

Ultimately, the documentation you are looking for, as mentionned by the commenters, is Bitcoin Core's source code (unfortunately) ; if you want to create a full node implementation, you'll have to be bug for bug compatible.

Finally, to test your progress, you can use https://github.com/TheBlueMatt/test-scripts to see how your implementation handles some edge cases, as well as run it on testnet.


Can lightweight wallet users exchange money? Instead of downloading full block chain, lightweight (SPV) users only download blockheaders of the blockchain.

This makes SPV users to check if transactions are confirmed or not. However, can SPV users also exchange money without being full nodes? That is, can they create a transaction and send it to nodes?

Instead of downloading full block chain, lightweight (SPV) users only download blockheaders of the blockchain.

Not all thin client are doing it.

  Can the *SPV clients create a transaction and send it to nodes?

yes, they can create a transaction. The example of thin client is Electrum wallet.

Electrum fetches blockchain information from Electrum servers, bitcoin nodes that index the blockchain by address. Electrum performs Simple Payment Verification to check the transactions returned by servers. For this, it fetches blokchain headers from about 10 random servers.

* SPV - Here is lightweight client


When mining, does one also include Merkle root data into block header when testing for hashes? I am just a beginner trying to understand technical details of bitcoin. As far as I know, the Merkle root of a block works to provide summarizing hash of list of transactions. And according to my understanding, mining works by first hashing block header, appended with some bits and testing whether the resulting hash satisfies difficulty requirement.

My confusion is this: when hashing to perform mining, is Merkle root included? I am asking this as if Merkle root is included, then this would mean that mining depends on the transactions chosen to form a block. Thus it seems to me that if this is the case, then a miner can, by luck, choose some group of transactions that turns out to provide the hash that is under then target faster than other agents, assuming that other conditions are equal.

[…], mining works by first hashing block header, appended with some bits and testing whether the resulting hash satisfies difficulty requirement.

Yes, although it's actually just the block header that is being hashed. One part of the block header is the nonce that allows to try 232 different possible block headers for the same block template. Another part of the block header is the Merkle root of the transaction tree, which must be recalculated when the extra-nonce in the coinbase transaction or the transactions included in the block template are updated.

The Merkle root has to be included in the block header because that's what cryptographically ties the transactions to the block in the first place.

No miner can predict whether a particular set of transactions would give them an advantage to find a block quicker, because the only way of doing so would be to try out all the possible options, which is exactly what they are doing anyway when they are mining. This follows from the hashing algorithm being based on a cryptographic hash function. If it weren't true, the hash function would be broken.


Are there any Bitcoin payment providers with an API’s for allowing unconfirmed transactions? I want to design my web app to instantly accept crypto currency like Bitcoin as a payment for a subscription to the app. I will design it to cancel the subscription and ban the user’s account if the transaction does not appear in the blockchain 6 blocks later.
My app is such that malicious users wouldn’t be able to do much with just 1 hour of subscription time even if they constantly make new accounts. I’m counting on them just getting bored of the first few levels and taking the loss if they don’t. If I’m not giving refunds and I make sure not to withdraw pending coins myself, what attacks am I vulnerable to like Mt. Gox?
I have a degree in Computer Science, and I’ve dabbled in crypto for a while. The idea of working on a custom full node wallet for my server excites me. However, if someone has already built exactly what I need I guess I should use that. Are there any online payment services which already accept BTC instantly with an API for reporting false transactions?

I will design it to cancel the subscription and ban the user’s account if the transaction does not appear in the blockchain 6 blocks later.

It's better if there is a system that waits for few hours before sending an email to the user that subscription maybe cancelled if transaction is not confirmed soon (1 confirmation). If the user fails to make the payment or reach support via email, subscription is cancelled. The reason I am suggesting to use time instead of blocks is because there is no fixed time interval between two blocks. It can take anything from few minutes to few hours for 6 blocks to be mined. The transaction may or may not be included in next 6 blocks depending on the fee rate used in this transaction and fee rate used in other unconfirmed transactions (mempool). Also1-2 confirmations are considered safe to accept a transaction as final.

If I’m not giving refunds and I make sure not to withdraw pending coins myself, what attacks am I vulnerable to like Mt. Gox?

Not sure if I understand your question correctly, If you can implement the above described process in your web app with no vulnerabilities, there shouldn't be any issues.

Are there any online payment services which already accept BTC instantly with an API for reporting false transactions?

You should research more about btcpayserver and  discuss things with the devs involved in it.


My BTC hasn't shown up in my Wallet I transferred BTC to my wallet and it hasn't shown up. IT's been 6 weeks and still nothing. I transferred my funds from Binance and Binance is showing that the BTC has been send and received. Bitcoin Core is telling me that it needs to synchronize with the network and is 5 years and 4 months behind. Does anyone have any suggestions as to how to retrieve my BTC? Thank you

Bitcoin Core is telling me that it needs to synchronize with the network and is 5 years and 4 months behind. Does anyone have any suggestions as to how to retrieve my BTC?

You have not synced bitcoin core full node yet.
If you want to check transactions associated with an address from this wallet or create unsigned transactions:
Create a watch-only wallet in Electrum by using the last option 'Import bitcoin addresses or private keys' while creating new wallet or you can create watch-only wallet in bitcoin core as well if you have it synced on other machine
If you want to sign and broadcast transactions using bitcoin core:
signrawtransactionwithwallet
sendrawtransaction


How many coins will be available after bitcoin cash fork? I am confused about bitcoin cash fork.

Will Bitcoin Cash disappear and its name change to the Bitcoin cash ABC? or after hash war there will be only one coin?

There will be one additional coin after the fork. One network will keep the ticker BCH and the other will get a new one. At the moment it looks like ABC is going to keep the BCH ticker and Bitcoin SV will get the ticker BSV.

The fork is much the same as previous forks off of BTC. The coin with the most proof of work gets to keep the ticker symbol. Right now ABC chain has 55% more PoW done than SV chain.


Halving reward, price effects? What is the case after halving reward takes place:

Would bitcoin price gets double, since its harder to mine?

Would Blockchain introduces more blocks (e.g: 1/5mins)?

Will Bitcoin switch to a faster block rhythm?

No, the Blockchain will not change the number of blocks produced. That would require the difficulty retargeting rules to be changed, but the difficulty setting is part of the Consensus Rules, i.e. changing them would require a successful Hard Fork. There are currently no such plans.

Price

There is lots of speculation about price effects, but before we get to that, let's review the facts first.

Facts

Daily production is about 3600 bitcoins (~144*25)
The Halving will reduce this to about 1800 bitcoins per day
The timing of the halving can be predicted fairly accurately: 16th of July (± a few days)
We have data from the first Halving (2012-11-28), and numerous altcoin halvings
Price has been "fairly stable" between $152 and $502 (source Bitstamp) in the past year
Previous research showed that most bitcoins were not circulating, I assume this still is the case

Thoughts

From [1.] daily production, [5.] price stability, and [6.] dormant bitcoins we can conclude that the market is soaking up more bitcoins worth more than 1,000,000 USD per day.
Reduced supply from [2.] would suggest an upward shift of market equilibrium.
Yet, the predictability of the supply event [3.] would suggest that such movements spread out due to anticipation, which aligns with the day of the [4.] first Halving only showing small price movements (+1.7%).
Reduced supply will also cause a steep decline in Mining profitability, may cause inefficient hardware to be sunsetted, or pointed at more profitable coins. E.g. the May'14 Dogecoin Halving [4.] caused difficulty to drop by ca. 25%. This effect should be less pronounced in Bitcoin, as more than half of the Bitcoin network's hash power came online over the last 6 months since the hash rate more than doubled.

Conclusions

It is unreasonable to expect a sharp price increase around the Halving as the event is anticipated. The Halving effects would manifest ±6 months (guess!) around the Halving.
The price remains unpredictable: The longterm effects may have been mis-estimated by the market, leading to a subsequent correction (as with Litecoin's Halving in Aug'15), or a subsequent rally, as reduced supply takes effect.
Remember: There is a large number of other unknown events that will also affect the market.

So my final answer is: We don't know yet whether the price will double. It seems plausible for the exchange rate to rise above current levels.


Stellar UTF-8 Support We are developing the open government auctions system on “Stellar” platform.  We forked Stellar and run our own network. We’ve added Lot creation transactions, auction participation, bids etc. There is encoding problem. We tried this solution:  https://github.com/stellar/js-stellar-base/issues/60 But during the debug process we’ve find out that Stellar-core can’t process the data sent by js-xdr library in base64 (UTF-8) format. We’ve looked at the C++ source code but haven’t found the way to fix that.

Error example:
{\"exception\"=>\"Non-zero padding bytes encountered\"}"

Some help and/or advice on this issue will be much appreciated.

All source are available here: http://www.eauction.idf.solutions/

The problem was in count of characters encoded in tx. C++ code allocate memory depending of count variable in tx.
This commit solve the problem: https://github.com/stellar/js-xdr/pull/4/commits/119a8c26f71de8568d88cee1a94cb33074797859


Where's the code related to block 494784 for segwit2x? I read everywhere that segwit2x activates at blocks 494784, around 15 or 16 of November.

I did just checkout the segwit2x codebase doing:

git clone https://github.com/btc1/bitcoin

And I can see that I'm on a branch called "segwit2x".

I tried to search every single file for any hint of block 494784, 494783 or 494785 but couldn't find anything.

I've got many technical questions regarding segwit2x and I wanted to dig into the source code to find answers.

Seen that I couldn't find anything, my first technical question is this one: where's the code related to block 494784 at which segwit2x is supposed to happen?

It is referenced relatively, namely by using the parameter BIP102HeightDelta. The hardfork is 3 months after the block that Segwit was actived and the number of blocks after is equal to 90(days)*144(blocks/day)(https://github.com/btc1/bitcoin/blob/385cbc994f35d36cefdab8c1c00ebfaceb55cfc6/src/chainparams.cpp#L78)

Try to look for that parameter. It will show up that it is used here to define if the 3 months have passed to activate 2MB or not (https://github.com/btc1/bitcoin/blob/385cbc994f35d36cefdab8c1c00ebfaceb55cfc6/src/validation.cpp#L2934 and https://github.com/btc1/bitcoin/blob/385cbc994f35d36cefdab8c1c00ebfaceb55cfc6/src/validation.cpp#L1853 and https://github.com/btc1/bitcoin/blob/385cbc994f35d36cefdab8c1c00ebfaceb55cfc6/src/consensus/consensus.h#L24).


What version byte will produce a Base58 encoding starting with X? What is the Value of X in Base58?

The Problem is when I referred to this table: https://en.bitcoin.it/wiki/Base58Check_encoding

I in the end come up with D when I used 30, but I want X, so what will be the correct value for PUBKEY_ADDRESS and (if necessary) SCRIPT_ADDRESS

This is my existing code:

PUBKEY_ADDRESS = 30, // The letter X (Version 1 Addr.)
         SCRIPT_ADDRESS = 9,
PUBKEY_ADDRESS_TEST = 56, // The Letter P (Version 0 Addr.)
   SCRIPT_ADDRESS_TEST = 119,

Can somebody give the Value that will give me X

I wrote a node.js program to solve this in general.

var cs = require('coinstring')

var hash160L = "0000000000000000000000000000000000000000" //hash representing uncompressed
var hash160H = "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" //hash representing uncompressed
function startsWith(version) {
        var hash160Buf = new Buffer(hash160L, 'hex')
        lowEnd = cs.encode(hash160Buf, version).charAt(0);
        hash160Buf = new Buffer(hash160H, 'hex')
        highEnd = cs.encode(hash160Buf, version).charAt(0);
        if(lowEnd == highEnd) {
                return lowEnd;
        } else {
                return [lowEnd, highEnd];
        }
}
var version = 0x00; //Bitcoin public address
for(var i = 0; i < 256; i++) {
        console.log(i + " will produce addresses starting with: " + startsWith(i));
}

Here's the output:

0 will produce addresses starting with: 1
1 will produce addresses starting with: Q,o
2 will produce addresses starting with: o,2
3 will produce addresses starting with: 2
4 will produce addresses starting with: 2,3
5 will produce addresses starting with: 3
6 will produce addresses starting with: 3
7 will produce addresses starting with: 3,4
8 will produce addresses starting with: 4
9 will produce addresses starting with: 4,5
10 will produce addresses starting with: 5
11 will produce addresses starting with: 5
12 will produce addresses starting with: 5,6
13 will produce addresses starting with: 6
14 will produce addresses starting with: 6,7
15 will produce addresses starting with: 7
16 will produce addresses starting with: 7
17 will produce addresses starting with: 7,8
18 will produce addresses starting with: 8
19 will produce addresses starting with: 8,9
20 will produce addresses starting with: 9
21 will produce addresses starting with: 9
22 will produce addresses starting with: 9,A
23 will produce addresses starting with: A
24 will produce addresses starting with: A,B
25 will produce addresses starting with: B
26 will produce addresses starting with: B
27 will produce addresses starting with: B,C
28 will produce addresses starting with: C
29 will produce addresses starting with: C,D
30 will produce addresses starting with: D
31 will produce addresses starting with: D
32 will produce addresses starting with: D,E
33 will produce addresses starting with: E
34 will produce addresses starting with: E,F
35 will produce addresses starting with: F
36 will produce addresses starting with: F
37 will produce addresses starting with: F,G
38 will produce addresses starting with: G
39 will produce addresses starting with: G,H
40 will produce addresses starting with: H
41 will produce addresses starting with: H
42 will produce addresses starting with: H,J
43 will produce addresses starting with: J
44 will produce addresses starting with: J,K
45 will produce addresses starting with: K
46 will produce addresses starting with: K
47 will produce addresses starting with: K,L
48 will produce addresses starting with: L
49 will produce addresses starting with: L,M
50 will produce addresses starting with: M
51 will produce addresses starting with: M
52 will produce addresses starting with: M,N
53 will produce addresses starting with: N
54 will produce addresses starting with: N,P
55 will produce addresses starting with: P
56 will produce addresses starting with: P
57 will produce addresses starting with: P,Q
58 will produce addresses starting with: Q
59 will produce addresses starting with: Q,R
60 will produce addresses starting with: R
61 will produce addresses starting with: R
62 will produce addresses starting with: R,S
63 will produce addresses starting with: S
64 will produce addresses starting with: S,T
65 will produce addresses starting with: T
66 will produce addresses starting with: T
67 will produce addresses starting with: T,U
68 will produce addresses starting with: U
69 will produce addresses starting with: U,V
70 will produce addresses starting with: V
71 will produce addresses starting with: V
72 will produce addresses starting with: V,W
73 will produce addresses starting with: W
74 will produce addresses starting with: W,X
75 will produce addresses starting with: X
76 will produce addresses starting with: X
77 will produce addresses starting with: X,Y
78 will produce addresses starting with: Y
79 will produce addresses starting with: Y,Z
80 will produce addresses starting with: Z
81 will produce addresses starting with: Z
82 will produce addresses starting with: Z,a
83 will produce addresses starting with: a
84 will produce addresses starting with: a,b
85 will produce addresses starting with: b
86 will produce addresses starting with: b,c
87 will produce addresses starting with: c
88 will produce addresses starting with: c
89 will produce addresses starting with: c,d
90 will produce addresses starting with: d
91 will produce addresses starting with: d,e
92 will produce addresses starting with: e
93 will produce addresses starting with: e
94 will produce addresses starting with: e,f
95 will produce addresses starting with: f
96 will produce addresses starting with: f,g
97 will produce addresses starting with: g
98 will produce addresses starting with: g
99 will produce addresses starting with: g,h
100 will produce addresses starting with: h
101 will produce addresses starting with: h,i
102 will produce addresses starting with: i
103 will produce addresses starting with: i
104 will produce addresses starting with: i,j
105 will produce addresses starting with: j
106 will produce addresses starting with: j,k
107 will produce addresses starting with: k
108 will produce addresses starting with: k
109 will produce addresses starting with: k,m
110 will produce addresses starting with: m
111 will produce addresses starting with: m,n
112 will produce addresses starting with: n
113 will produce addresses starting with: n
114 will produce addresses starting with: n,o
115 will produce addresses starting with: o
116 will produce addresses starting with: o,p
117 will produce addresses starting with: p
118 will produce addresses starting with: p
119 will produce addresses starting with: p,q
120 will produce addresses starting with: q
121 will produce addresses starting with: q,r
122 will produce addresses starting with: r
123 will produce addresses starting with: r
124 will produce addresses starting with: r,s
125 will produce addresses starting with: s
126 will produce addresses starting with: s,t
127 will produce addresses starting with: t
128 will produce addresses starting with: t
129 will produce addresses starting with: t,u
130 will produce addresses starting with: u
131 will produce addresses starting with: u,v
132 will produce addresses starting with: v
133 will produce addresses starting with: v
134 will produce addresses starting with: v,w
135 will produce addresses starting with: w
136 will produce addresses starting with: w,x
137 will produce addresses starting with: x
138 will produce addresses starting with: x
139 will produce addresses starting with: x,y
140 will produce addresses starting with: y
141 will produce addresses starting with: y,z
142 will produce addresses starting with: z
143 will produce addresses starting with: z
144 will produce addresses starting with: z,2
145 will produce addresses starting with: 2
146 will produce addresses starting with: 2
147 will produce addresses starting with: 2
148 will produce addresses starting with: 2
149 will produce addresses starting with: 2
150 will produce addresses starting with: 2
151 will produce addresses starting with: 2
152 will produce addresses starting with: 2
153 will produce addresses starting with: 2
154 will produce addresses starting with: 2
155 will produce addresses starting with: 2
156 will produce addresses starting with: 2
157 will produce addresses starting with: 2
158 will produce addresses starting with: 2
159 will produce addresses starting with: 2
160 will produce addresses starting with: 2
161 will produce addresses starting with: 2
162 will produce addresses starting with: 2
163 will produce addresses starting with: 2
164 will produce addresses starting with: 2
165 will produce addresses starting with: 2
166 will produce addresses starting with: 2
167 will produce addresses starting with: 2
168 will produce addresses starting with: 2
169 will produce addresses starting with: 2
170 will produce addresses starting with: 2
171 will produce addresses starting with: 2
172 will produce addresses starting with: 2
173 will produce addresses starting with: 2
174 will produce addresses starting with: 2
175 will produce addresses starting with: 2
176 will produce addresses starting with: 2
177 will produce addresses starting with: 2
178 will produce addresses starting with: 2
179 will produce addresses starting with: 2
180 will produce addresses starting with: 2
181 will produce addresses starting with: 2
182 will produce addresses starting with: 2
183 will produce addresses starting with: 2
184 will produce addresses starting with: 2
185 will produce addresses starting with: 2
186 will produce addresses starting with: 2
187 will produce addresses starting with: 2
188 will produce addresses starting with: 2
189 will produce addresses starting with: 2
190 will produce addresses starting with: 2
191 will produce addresses starting with: 2
192 will produce addresses starting with: 2
193 will produce addresses starting with: 2
194 will produce addresses starting with: 2
195 will produce addresses starting with: 2
196 will produce addresses starting with: 2
197 will produce addresses starting with: 2
198 will produce addresses starting with: 2
199 will produce addresses starting with: 2
200 will produce addresses starting with: 2
201 will produce addresses starting with: 2
202 will produce addresses starting with: 2
203 will produce addresses starting with: 2
204 will produce addresses starting with: 2
205 will produce addresses starting with: 2
206 will produce addresses starting with: 2
207 will produce addresses starting with: 2
208 will produce addresses starting with: 2
209 will produce addresses starting with: 2
210 will produce addresses starting with: 2
211 will produce addresses starting with: 2
212 will produce addresses starting with: 2
213 will produce addresses starting with: 2
214 will produce addresses starting with: 2
215 will produce addresses starting with: 2
216 will produce addresses starting with: 2
217 will produce addresses starting with: 2
218 will produce addresses starting with: 2
219 will produce addresses starting with: 2
220 will produce addresses starting with: 2
221 will produce addresses starting with: 2
222 will produce addresses starting with: 2
223 will produce addresses starting with: 2
224 will produce addresses starting with: 2
225 will produce addresses starting with: 2
226 will produce addresses starting with: 2
227 will produce addresses starting with: 2
228 will produce addresses starting with: 2
229 will produce addresses starting with: 2
230 will produce addresses starting with: 2
231 will produce addresses starting with: 2
232 will produce addresses starting with: 2
233 will produce addresses starting with: 2
234 will produce addresses starting with: 2
235 will produce addresses starting with: 2
236 will produce addresses starting with: 2
237 will produce addresses starting with: 2
238 will produce addresses starting with: 2
239 will produce addresses starting with: 2
240 will produce addresses starting with: 2
241 will produce addresses starting with: 2
242 will produce addresses starting with: 2
243 will produce addresses starting with: 2
244 will produce addresses starting with: 2
245 will produce addresses starting with: 2
246 will produce addresses starting with: 2
247 will produce addresses starting with: 2
248 will produce addresses starting with: 2
249 will produce addresses starting with: 2
250 will produce addresses starting with: 2
251 will produce addresses starting with: 2
252 will produce addresses starting with: 2
253 will produce addresses starting with: 2
254 will produce addresses starting with: 2
255 will produce addresses starting with: 2

You can use 75 or 76. 74 and 77 will work too, but only sometimes.


How can I sell bitcoins and transfer the funds to my bank account? A friend of mine gave me two bitcoins which I now want to sell. I don't understand the process which would enable me send the funds generated to my bank account.

Although you can find a more comprehensive list here on the Bitcoin Wiki, some of the most popular exchanges in the community are:

Coinbase - https://coinbase.com
Bitstamp - https://www.bitstamp.net

You can exchange your bitcoins for US dollars on these websites and have them funded to your bank account.


Can I configure Bitcoin (Linux) with a custom wallet location? The default setup on Linux/Ubuntu has Bitcoin storing the data in the ~/.bitcoin folder, which is usually not encrypted with TrueCrypt.

Suppose I do now want to rely on the internal Bitcoin encryption system, but instead want to save the wallet to disk on using TrueCrypt encryption. Currently, I have a separate TrueCrypt data file, that I mount to a partition, copy files from it to ~/.bitcoin, and when I'm finished, I copy the files back to the truecrypt volume, and shred+delete the copies on ~/.bitcoin.

This is bothersome and error prone.

Can I configure Bitcoin to only take the wallet from /media/trucrypt, but keep the blockchain data in ~/.bitcoin?

The bitcoin startup argument -datadir=<dir> allows you to specify a data directory, including the wallet file.

That'll still require you to pass a custom argument I'm afraid. The config file is also in the data dir, hence there's a chicken-and-the-egg problem that makes it impossible to configure up ahead. Unless you're savvy enough to change the default constant in the source and recompile, which might be okay since you're already running Linux.


Arithmetic operations in Bitcoin (OP_ADD, etc) How do arithmetic operations work in Bitcoin? If I have:

 5
 OP_1ADD

it is obvious that I will get 6 on stack. But what if I have to make OP_1ADD on "02c34538fc933799d972f55752d318c0328ca2bacccd5c7482119ea9da2df70a2f"?

 "02c34538fc933799d972f55752d318c0328ca2bacccd5c7482119ea9da2df70a2f"
 OP_1ADD

Short answer: arithmetic on large numbers will cause the script to fail.

Long answer:

Script arithmetic is limited to 32-bit arithmetic.

You can find the code for arithmetic operations in script.cpp, in the function EvalScript, where the opcodes are evaluated using CScriptNum in [script.h](https://github.com/bitcoin/bitcoin/blob/master/src/script.h].

The numeric limit is enforced through the constant nMaxNumSize.

The CScriptNum constructor shows that numbers larger than 32 bits throw an exception, resulting in failure of the script.


Does each peer prioritize inv(type=block) over inv(type=tx)? I found that when a peer receives an inv message with type=block, it will immediately request that block or that block's headers with a getdata message or getheaders message. But if the peer receives an inv message with type=tx, it won't respond immediately.  For example:

Node A  inv(tx)      Node B  |  Node A  inv(block)  Node B
        <-----------         |          <---------
                             |
        [delay]              |          [no delay]
                             |
        getdata(tx)          |          getdata(block)
        ----------->         |          --------->

Why is there a delay in requesting transactions but not a delay in requesting blocks? I'm guessing that relaying a transaction is less important than getting the most recent block to ensure the node is on the consensus best block chain.

I don't see any delay here.  Looking at Bitcoin Core 0.9.3's code, I also don't see any code which would cause a delay as long as the node sending the inv responded to a getdata message immediately.

Transactions and blocks are placed into to separate queues in this code:

if (!fAlreadyHave) {
    if (!fImporting && !fReindex) {
        if (inv.type == MSG_BLOCK)
            AddBlockToQueue(pfrom->GetId(), inv.hash);
        else
            pfrom->AskFor(inv);

Transactions and blocks are requested in this long piece of code, which I won't paste here.

I don't see any delays here for transaction requests.  I also tested this locally, and my node always immediately replied to a new inv message (type=tx) with a getdata message requesting that transaction.

There can be a delay in relaying transactions.  For example: node A sends an inv message for a new transaction to node B.  Node B gets the transaction, but then waits before sending an inv message to node C announcing that transaction.  You can see that in this code which includes the comment, "trickle out tx inv to protect privacy".


I'm making an infographic on Bitcoin. How can I download all Bitcoin transactions to do some analysis? I would like to do some analysis of Bitcoin transactions in the last 3 months and share my insights by preparing an infographic. What would be the best way to get all Bitcoin transactions in the past 3 months?

A key element of the Bitcoin protocol is the block chain, which is a public transaction database. This contains most all transactions made in bitcoins and also includes information such as the sending and receiving addresses. You can find historical transaction data for the past 3 months by using a block chain explorer like ABE or Blockchain.info.

I would recommend ABE, only because it is written in Python, which will make it a lot easier to interface with for data analysis purposes.


Error running BITCOIND in Ubuntu 12.04 Desktop Running Ubuntu 12.04 LTS Desktop under Oracle VirtualBox in Windows 7 64bit I get the following error:

sim@sim-VirtualBox:~/bitcoin-0.8.5-linux/bin/32$ ./bitcoind -rpcpassword=12345 **terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<boost::filesystem::basic_filesystem_error<boost::filesystem::basic_path<std::string, boost::filesystem::path_traits> > > >'
  what():  boost::filesystem::create_directory: File exists: "/home/sim/.bitcoin"
Aborted (core dumped)**

Anyone know how I can fix this or what the issue may be?

Do you have a file named .bitcoin. in your root directory? If so, delete it with rm /home/sim/.bitcoin and try running the server again.


How do I use the RPC command "decodescript"? I used "decodescript" on a transaction inputscript

304402206c4eba989dd5f87b7814f25ec8b9e08f955d30b299d963df8955639aa0a0f9bc02203c4d41b047d4dc616da101911c512e89255e2c3261733f030f9d1329ca2822dd01

I got this script from this website.

and got

"p2sh" : "3BfdeDc4HpcLJCs6PZ5jzdfaVDzFDBXrVu"

which makes no sense to me.

You didn't copy the full script from blockchain.info, you copied half of the already decoded script. The part you copied is the signature, but the public key (the other part) is also part of the script. Even if you had both, though, it's still not the right data to pass to decode script, because the script has already been decoded. The hex that should be passed to the getrawtransaction call can be gotten by looking at the result of:

getrawtransaction 2c7b5cede0ab477800c407526ea98de9c89e80e53435dc786479be15970cc0d7 1

But you will just get the same thing as what blockchain.info already has up on their site.

And the "p2sh" value is the address that would be made by using the script passed to the RPC call as the redeemScript. I don't think this is what you're looking for at all, so you can pretty safely ignore it.


Can I claim my BCH if my BTC is held with Coinbase? I have BTC in an account with Coinbase.

Since Coinbase doesn't support BCH, they don't provide access to it.

In all honesty I don't know much about bitcoin and how to move my BTC from Coinbase to an offline wallet, so when I received the notification they wouldn't support the split, I didn't understand the ramifications.

From the little I understand at this point, I believe this is the situation I find myself in, and I am looking for verification that my points below are correct - hence this question:

Coinbase owns the private key to my wallet with them.
If I now move my BTC to a different wallet, to which I own the private key, only the BTC will be moved.
As such, the BCH (which is technically mine), is held against the private key in my Coinbase wallet, and won't be moved.
Therefore, to all intents and purposes, unless Coinbase is somehow persuaded to release the BCH and/or private keys to their BTC customers, that BCH is lost to me.

Final question:

Is there any way for me to obtain access to my BCH?

If you didn't move out your BTC before the fork, then your BitCoin Cash tokens remain with CoinBase. They are not really lost, but they might remain in their system for a while. Here is the explanation directly from CoinBase Support:

  We are planning to have support for bitcoin cash by January 1, 2018, assuming no additional risks emerge during that time.

  Once supported, customers will be able to withdraw bitcoin cash. We'll make a determination at a later date about adding trading support. In the meantime, customer bitcoin cash will remain safely stored on Coinbase.

  Thank you,

  Coinbase Team


Why does calling BlockExplorer's checkaddress JSON API do nothing? I need some help with using JSON and the bitcoin / blockexplorer json calls. I'm not even sure if this is going to work. Basically I'm trying to validate a bitcoin wallet address. I want it to check against the blockexplorer to see if it's a "valid" address or not.

Here's what I've done so far:

function checkAddress(){
  var address = $('#wallet').val();
  $.getJSON('http://blockexplorer.com/q/checkaddress/'+address+'?format=json',{"format":"json"},function(data){
    alert('xxx == '+data);
  });
}

But it doesn't seem to be doing anything at all.. Is it even possible for me to use the blockexplorer with JSON to get the results? I'm incredibly new to bitcoin and I'm not entirely sure what I'm doing.

You are trying to cross domains.

Look into jsonp for that:

https://github.com/jaubourg/jquery-jsonp


CGMiner litecoin mining generates invalid nonce errors It seems that litecoin/scrypt support in cgminer is unstable as I've found a lot of mentions of this error in various forums and no real solutions. Some seem to be able to resolve the problem by experimenting with different versions and combinations of drivers and AMD SDK. So far I've tried much and always the same problem. Here's the output from command line:

  cgminer --benchmark --scrypt --debug --verbose

 [2013-06-07 00:34:54] Started cgminer 3.2.0
 [2013-06-07 00:34:54] CL Platform 0 vendor: Advanced Micro Devices, Inc.
 [2013-06-07 00:34:54] CL Platform 0 name: AMD Accelerated Parallel Processing
 [2013-06-07 00:34:54] CL Platform 0 version: OpenCL 1.2 AMD-APP (1124.2)
 [2013-06-07 00:34:54] Platform 0 devices: 1
 [2013-06-07 00:34:54]  0   Tahiti
 [2013-06-07 00:34:54] GPU 0 iAdapterIndex 0 strUDID PCI_VEN_1002&DEV_6798&SUBSYS_254D1458&REV_00_4&176F368&0&0018A iBusNumber 2 iDeviceNumber 0 iFunctionNumber 0 iVendorID 1002 strAdapterName  AMD Radeon HD 7900 Series
 [2013-06-07 00:34:54] GPU 0 AMD Radeon HD 7900 Series hardware monitoring enabled
 [2013-06-07 00:34:54] Pushing ping to thread 0
 [2013-06-07 00:34:54] Init GPU thread 0 GPU 0 virtual GPU 0
 [2013-06-07 00:34:54] Popping work to stage thread
 [2013-06-07 00:34:54] CL Platform vendor: Advanced Micro Devices, Inc.
 [2013-06-07 00:34:54] CL Platform name: AMD Accelerated Parallel Processing
 [2013-06-07 00:34:54] CL Platform version: OpenCL 1.2 AMD-APP (1124.2)
 [2013-06-07 00:34:54] List of devices:
 [2013-06-07 00:34:54]  0   Tahiti
 [2013-06-07 00:34:54] Selected 0: Tahiti
 [2013-06-07 00:34:54] Preferred vector width reported 1
 [2013-06-07 00:34:54] Max work group size reported 256
 [2013-06-07 00:34:54] Max mem alloc size is 2951741440
 [2013-06-07 00:34:54] Selecting scrypt kernel
 [2013-06-07 00:34:54] GPU 0: selecting lookup gap of 2
 [2013-06-07 00:34:54] GPU 0: selecting thread concurrency of 22400
 [2013-06-07 00:34:54] Loaded binary image scrypt130511Tahitiglg2tc22400w256l4.bin
 [2013-06-07 00:34:54] Initialising kernel scrypt130511.cl with bitalign, 1 vectors and worksize 256
 [2013-06-07 00:34:54] Creating scrypt buffer sized 1468006400
 [2013-06-07 00:34:54] initCl() finished. Found Tahiti
 [2013-06-07 00:34:54] 1 gpu miner threads started
 [2013-06-07 00:34:54] Pool 0 not providing work fast enough
 [2013-06-07 00:34:54] API not running - API will not be available
 [2013-06-07 00:34:54] Generated benchmark work
 [2013-06-07 00:34:54] Pushing work from pool 0 to hash queue
 [2013-06-07 00:34:54] Generated benchmark work
 [2013-06-07 00:34:54] Pushing work from pool 0 to hash queue
 [2013-06-07 00:34:54] Generated benchmark work
 [2013-06-07 00:34:54] Pushing work from pool 0 to hash queue
 [2013-06-07 00:34:54] Popping ping in miner thread
 [2013-06-07 00:34:54] Popping work from get queue to get work
 [2013-06-07 00:34:54] Got work from get queue to get work for thread 0
 [2013-06-07 00:34:54] Generated benchmark work
 [2013-06-07 00:34:54] Pushing work from pool 0 to hash queue
 [2013-06-07 00:34:54] Generated target 00000000000000000000000000000000000000000000000000000000ffff0000
 [2013-06-07 00:34:55] [thread 0: 18432 hashes, 17.7 khash/sec]
 [2013-06-07 00:34:55] GPU 0 found something?
 [2013-06-07 00:34:55] OCL NONCE 33519 found in slot 0
 [2013-06-07 00:34:55] New best share: 6
 [2013-06-07 00:34:55] GPU0: invalid nonce - HW error
 [2013-06-07 00:34:55] Discarded cloned or rolled work

Any help gratefully received.

In my experience scrypt mining on GPUs is quite susceptible to cause HW errors and wrong nonces if the parameters are not chosen to match the GPUs the algorithm is run on. As the SCRYPT-README file of cgminer states:

  The reason this is crucial is that too high an intensity can actually
  be disastrous with scrypt because it CAN run out of ram. High
  intensities start writing over the same ram and it is highly dependent
  on the GPU, but they can start actually DECREASING your hashrate, or
  even worse, start producing garbage with HW errors skyrocketing. Note
  that if you do NOT specify an intensity, cgminer uses dynamic mode
  which is designed to minimise the harm to a running desktop and
  performance WILL be poor. The lower limit to intensity with scrypt is
  usually 8 and cgminer will prevent it going too low.

The --benchmark option you specified in your command line tells cgminer to attempt to find an optimal set of parameters, so it will make a few attempts with high intensities as well, which will fail. Once you figured out a good value for the parameters you should be fine.


I have over 130addresses and I have never sent nor received any bitcoin. How is that How do I know the amount of bitcoins in an address. My addresses are so many and my wallet says that no bitcoins sent. How is this

Bitcoin clients generate a number of addresses in advance for backups to remain complete for some amount of future use. E.g. Bitcoin Core creates 100 addresses in advance, I'd expect bitcoinj to do something similar.


Wallets vs Addresses I dont understand how a wallet comes into play?
Is a wallet a necessary part of a transaction or is it just a way of collating multiple addresses?

I get how I should use a new address for each transaction but don't understand whether they have to be attached to a wallet?

I am looking to generate thousands of addresses to accept payments for purchases in my online shop. Once an address has money in it, do I need to collate all the money together in a central account?

Is a wallet a necessary part of a transaction or is it just a way of collating multiple addresses?

Wallets are just a convenient way to store/back up multiple private keys (corresponding to multiple addresses).

  Once an address has money in it, do I need to collate all the money together in a central account?

Not really - you can spend money from multiple addresses in one transaction.


USD conversion rate API I want to build an mobile application which tells you how much your bitcoins are worth in USD. I would like to know of good API that I can rely on for data. As well as historic conversion rates over time.

Example.

I have 5 bitcoins -> which are worth 5031 USD.

Bonus points for other alt-currencies included in said API.

I would like something that isn't linked to a particular service or exchange.

It will never be accurate unless you know the preferred exchange for your user, because as you can see the prices are different for each exchange.
Go to this website http://bitcoin-analytics.com, and click on "Arbitrage", you will see the difference in exchange rates from multiple sources.

Your best bet is to ask the user to choose their exchange or if they have a preferred one, and use their API, which means you'll need to use multiple APIs for most popular exchanges, like mtgox.com, bitstamp.net, btc-e.com..etc, I would also consider which geographical area you are targeting, it would help you identify who are the ones you need to have.

Good luck.


Bitcoin Tax Question I have three scenarios that I have a question about related to bitcoin, the IRS< and taxes.  I tried asking the finance types, but they didn't seem to really understand bitcoin and cryptocurrencies, especially on the latter two questions below this and I think this is a more appropriate community to ask since this is in your realm of expertise.

I buy a product with bitcoin.  The IRS only cares about the US dollar cost-basis for the purchase; that's it.  From this question, I file this on a 1040 Schedule D form.  For institution, do I list companies like Coinbase, BTCPop, and Magnr if these are the accounts where I sent money for a purchase?  What about if it's a wallet that I privately own?
I have several savings accounts that earn bitcoin on bitcoin (Magnr, BTCPop, exchange lending, etc) and I do not convert earned bitcoin back to US dollars (for now).  I do keep records of the total earned bitcoins for the accounts, but those are still in bitcoin.  Since this hasn't been converted to US dollars or any other fiat, what is owed on taxes at what cost basis, or do I wait until I convert these gains to US dollars?

Example: I earn 5 bitcoin on 100 bitcoins saved at BTCPop, but since I haven't sold those 5 bitcoins, there isn't an official US dollar cost basis that I'm aware of.  How are these 5 bitcoins taxed, or are they taxed when I finally sell them to US dollars or other fiat?

I buy a bitcoin at $400.  I take that bitcoin and swap it for Monero at $4.  I had 1 bitcoin that I swapped for 100 Monero.  Do I owe taxes when I swap from bitcoin to Monero, or when I swap back to US dollars or another form of fiat?

Thanks everyone.

I have several savings accounts that earn bitcoin on bitcoin (Magnr, BTCPop, exchange lending, etc) and I do not convert earned bitcoin back to US dollars (for now). I do keep records of the total earned bitcoins for the accounts, but those are still in bitcoin. Since this hasn't been converted to US dollars or any other fiat, what is owed on taxes at what cost basis, or do I wait until I convert these gains to US dollars?

The cost basis is zero since there was no cost for you to acquire the bitcoins. It's just like interest. You have ordinary income equal to the fair market value of the bitcoins at the time you acquire them. When/if you sell them, your basis is also the fair market value at the time you acquired them.

  Example: I earn 5 bitcoin on 100 bitcoins saved at BTCPop, but since I haven't sold those 5 bitcoins, there isn't an official US dollar cost basis that I'm aware of. How are these 5 bitcoins taxed, or are they taxed when I finally sell them to US dollars or other fiat?

They are taxed based on their fair market value, just like any other income. The amount you paid taxes on becomes your basis.

  I buy a bitcoin at $400. I take that bitcoin and swap it for Monero at $4. I had 1 bitcoin that I swapped for 100 Monero. Do I owe taxes when I swap from bitcoin to Monero, or when I swap back to US dollars or another form of fiat?

You owe taxes on that trade if you had a gain. If you bought the bitcoin for $400 then that's your basis. If the Monero is worth, say, $1,000, then you have a taxable gain of $600. Your basis in the Monero would then be $1,000.


Cannot Find Transaction from Blockchain Explorer I just withdrew some Bitcoin (BTC) from FreeBitco.in to this address:
1FCFLjBDk3BGbp2vtEPRNLcbGisZRUWfbV
My withdrawal was confirmed by the website an hour agao, and I received an email from FreeBitco.in showing this link to view the transaction.
However, that link does not show any transactions at all. From my experience and all other information available online, FreeBitco.in seems legit. Why cannot I see the transaction from blockchain explorers? Is that because of the recent drop of hash rate?

A bulk transaction on 2020-09-05 at 02:07 transferred funds to a large number of recipients including 0.01546751 BTC to 1FCF...WfbV (34th recipient on that list)
See https://www.blockchain.com/btc/address/1FCFLjBDk3BGbp2vtEPRNLcbGisZRUWfbV
Maybe the transaction was initially included in a block that became extinct and the transaction was subsequently included in a later block? All normal.


How fast is BitcoinJ for getting UTXOs(/UnspentTXOuts)? I'm making an app where I need to be able to get unspent TX outs very quickly for addresses I do not know beforehand.

Now this is supported by Bitcoins architecture in that you can have a pruned merkle branch and TX data taking only ~300 bytes and of course someone could index that by addresses.

The question is how quickly can BitcoinJ do this?

Will it synch up the whole chain using bloom filters or can it directly poll BitcoinD nodes for UTXO data for a specific address?

I worry that if it synchs the whole chain then even with bloom filters it will take maybe 10 seconds.

The question is how quickly can BitcoinJ do this?

It's not fast enough for that particular use-case.

  Will it synch up the whole chain using bloom filters or can it directly poll BitcoinD nodes for UTXO data for a specific address?

It always uses bloom filters, and if you search for one additional transaction, it needs to search through those blocks again.

  I worry that if it synchs the whole chain then even with bloom filters it will take maybe 10 seconds.

10 seconds is very optimistic. The remote node needs to go through all ~50GB of blockchain data, and compare each transaction against your bloom filter.

It sounds like your needs would be better served by something that allows you to query by address, like the Electrum network or Blocktrail's API.


Ledger 8 pin number how hard in terms of entropy is it to guess? ledger has a  max. 8 number pin for unlocking it as far I know.

I am very interested, can someone say if (given any method/resources) it is in any scenario (except luck) possible to guess this 8 number pin within 3 tries? Because as i understand after 3rd try, the device resets.

Is this too hard or possible?

And if you know, could you calculate (or tell me how) the entropy for this case (8 random numbers, 3 tries)?

thanks

With an 8-digit PIN, the number of possible PIN combinations is 10^8 (100,000,000), ranging from 00000000 to 99999999.

So you chance of just guessing the PIN correctly within three tries is about 1 in 33,333,333. So it is of course possible, but extremely unlikely.

Note that an attacker could perhaps increase their chances by eliminating some possibilities (eg, assume nobody would just choose 00000000 as their unlock PIN), and/or by making a more educated guess based on knowledge of the victim (eg their birthday is 19 Jan 1980, so try the PIN 19011980).

Entropy is often described in terms of bits. To find the total entropy, take the binary logarithm of the total number of combinations. This turns out to be 26.575 bits of entropy.


Corrupted old bitcoin wallet. !!!file unknown has LSN! I have a corrupted UN-ENCRYPTED bitcoin wallet from 2013.
what I have tried so far with both wallet:
1, with old and new version of bitcoin client the wallet just creating a .bak file and not showing any amount/transaction.
2, i also try bitcoin-qt.exe -salvagewallet - that is creating a bak + epoch time. and the db.log saying
file unknown has LSN 91/5547280, past end of log at 1/1042
Commonly caused by moving a database from one database environment
to another without clearing the database LSNs, or by removing all of
the log files from a database environment
wallet.dat.1608587747.bak: DB_VERIFY_BAD: Database verification failed
3, pywallet installed correctly and working fine under ubuntu for me with different wallets that not corrupted, (dumping all data just fine)
but when i trying to dump the corrupted once python2 pywallet.py --dumpwallet --datadir=./ im getting the "ERROR:root:Couldn't open wallet.dat/main. Try quitting Bitcoin and running this again."
4, i have try the python2 dbdump.py --wallet --wallet-tx --datadir=./    (getting "ERROR:root:Couldn't open wallet.dat/main. Try quitting Bitcoin and running this again.")
Kind of run out of stuff now, how i go more deeper in this to get those private keys and addresses?
If any of you can successfully help me, reward will be issued for sure.

how i go more deeper in this to get those private keys and addresses?

Well the basic process I would start with would be

Don't use the computer that contains the damaged file
Use a bootable USB to make a copy of the file onto external media
Lock the computer away until you have repaired the file or extracted keys on a new computer
make copies of the damaged file and work only on those copies.
keep some unaltered copies in some safe places.
make a hex dump of the wallet.dat file
study the defined file format used by Bitcoin core in 2013

perhaps by searching for documentation of the file format.
perhaps by studying the source of PyWallet.
perhaps by getting a 2013 set of Bitcoin-core's source code from GitHub.

compare the defined file format with a hex dump of a working wallet.dat of 2013
make small changes to a working 2013 wallet.dat, make new hex dumps and study the differences.
compare the defined file format with a hex dump of your damaged wallet.dat
attempt repair
perform some forensic recovery process of all data in unallocated space on a bitwise copy of the original computer's hard disk(s) or equivalents. Repeat process on data to try to identify fragments of wallet.dat data.

This would be slow difficult work. You will find differences that don't make sense and you may have to invent new content to insert and also decide what parts to delete. You may need to find tools, or create tools, that allow you to make the changes to a copy of the wallet.dat to repair it. Or you may be able to identify the private keys in the hex dump and just extract those.
If the wallet contains a small amount I wouldn't bother. If it contains an amount equivalent to a years wages say - then, in your shoes, I would probably spend some time on this.

There's no safe way to have someone else work on this. It's easy for a stranger to say they found nothing and walk off with your wallet's money. It's easy for conmen to slowly gain your trust until you pay them various fees for working on this for you.


How does circular rebalance on LN work? How does circular rebalance on LN work? (note: circular rebalance is term used in RTL, I use lnd). Let me describe the situation that happened to me:
I have two channels, one with Alice, one with Bob.
The situation before circular rebalance from my point of view:
Me    (200) sats outbound -----[400]----- (200) sats inbound         Alice
Me    (200) sats outbound -----[200]----- (0)   sats inbound         Bob

Then I initiated a circular rebalance of 100 sats on the the second channel with Bob and I was asked to choose "receive from peer" where I chose Alice
The situation after the circular rebalance from my point of view (supposing no routing fees):
Me    (300) sats outbound -----[400]----- (100) sats inbound         Alice
Me    (200) sats outbound -----[300]----- (100) sats inbound         Bob

My overall outbound capacity increased by 100 sats while overall inbound capacity stayed at 200 sats. Did I just make 100 sats? Did I cheat Alice?
Solution (It was my misunderstanding, I'm answering here because Rene's answer is really good and I want to keep it):
Basically, my outbound capacity decreased on the channel with Bob by the expected amount but the commit_fee on that channel rose by 100 and since I thought that my outbound capacity + commit fee are my disposable funds I thought of them as a overall outbound capacity which is not obviously the case.
What actually happened:
The situation before circular rebalance from my point of view:
Me    (200) sats outbound {100} commit fee -----[500]----- (200) sats inbound         Alice
Me    (400) sats outbound {100} commit fee -----[500]----- (0)   sats inbound         Bob

The situation after the circular rebalance from my point of view (supposing no routing fees):
Me    (300) sats outbound {100} commit fee-----[500]----- (100) sats inbound         Alice
Me    (300) sats outbound {200} commit fee-----[500]----- (100) sats inbound         Bob

if your channel's are initially as you described (just depicted here again with better readability using total cpacity of the channel in brackets in the middle of the channel and the respective local balance on the side of the peer)
You -(200) --------[400] -------- (200) - Alice
You -(200) --------[200] ---------- (0) - Bob

And you create a circular rebalance of 100 sats the result schould (in an ideal world ignoring routing fees) look as follows:
You -(300) --------[400] -------- (100) - Alice
You -(100) --------[200] -------- (100) - Bob

Thus your total local balance should have stayed the same as the total capacity of the channels should not have changed. Of course you pay the routing fees for such an operation so in reality the result might look a little bit more like
You -(298) --------[400] -------- (102) - Alice
You -(100) --------[200] -------- (100) - Bob

This means that you had sent out 100 set to Bot Bob and others have probably decreased the amount to forwards a little bit so that you will only receive for example 98 on your channel with alice.
The situation that you discribe in which you magically have 500 sats instead of 400 can / should not happened with a rebalancing operations. Are you sure that:

noone sent you 100 sats on the channel with Alice at the same time
You did not earn 100 sats of routing fees on that channel with alice at the same time?

Thus I would kindly ask you to reproduce the operation..


What block numbers & hashes were discarded by the March 2013 blockchain fork? When exactly (GMT) were these blocks mined?

The following blocks were abandoned (along with a few more along that chain as the quickly dwindling set of 0.8.0 miners plugs along) when the 0.7 blockchain caught up with the 0.8.0 blockchain at 2013-03-12 06:19:32.  Thankfully, you can see that the 0.8.0 chain has slowed down to just one block in the two hours after 03:28:41 UTC.

Also note that, as I understand it, most transactions are showing up in both blockchains.

Source: https://blockchain.info/blocks/1363065244022  (where the ones to abandoned were labeled "Main Chain" until the current "Orphaned" chain caught up, at which point the labels swapped)

Update: I added 7 more blocks since the 0.8.0 chain was abandoned, up to 225461.  The rate of continued mining there is a bit less than one block per hour.

Update 2: As of another day later, there haven't been any more blocks in the orphaned chain.  There is only one block at height 225462 (http://blockchain.info/block-height/225462) so the orphaned chain may end at a record 32 blocks.

Height  Time (UTC)             Hash

225461  2013-03-12 16:21:02  00000000000002d74c31d9c9f8e4768c0b51c3f145be07be7e77af0146144c30
225460  2013-03-12 15:05:56  00000000000002afb9088485b05a2b8a1dfa6b82e3e915fa0765879a05061461
225459  2013-03-12 14:36:39  000000000000036e459f26b1dc02683c9beeb061eedf18689995143354467245
225458  2013-03-12 12:18:23  00000000000000620d78c08bd345aa489b02a52c5f823f0324d3c42212577c24
225457  2013-03-12 09:48:00  0000000000000067fa40b890799ef9814e1e427abd5fc9f4751ffb3ef6512d14
225456  2013-03-12 07:59:29  000000000000031ce5f5c447dbe06ebd62f988c6718e1a17d14b9dcd8ff9605c
225455  2013-03-12 07:14:21  000000000000009d2dee89c7732b5bc912845d96a6bee38cab815949cfa60d23
225454  2013-03-12 05:17:11  00000000000000df96f272c3b1e9dd15272b55750966cbd239219b94756c73ec
225453  2013-03-12 03:28:41  000000000000031803e492a0103154d243c9945ef78dbdba42a1ecfdb5bc5dbb
225452  2013-03-12 03:05:29  0000000000000190f5944e56c52600e9d8d4d5416432e03b324bc85c51629bcd
225451  2013-03-12 02:06:07  00000000000003bdcc4424dea94de83e9f54ca158ae3eac59c2e97c2f90a32ad
225450  2013-03-12 02:01:28  000000000000026a105de544bfbe71bca0820ac3963ba132c75ec40411b5f162
225449  2013-03-12 01:50:05  00000000000001f15726ea57dc7702407a3ebc097ed801cb3d7b0e8a450807cb
225448  2013-03-12 01:38:10  00000000000001f9fd0b0cab82deca5f53030911b33ba7dd7ce3fd77ad2c5a55
225447  2013-03-12 01:34:55  00000000000000ec24f812807f81aadb7a665ef4ab8b8aa49df5ef789cdc13ff
225446  2013-03-12 01:30:40  00000000000000757de9173ee2f01c9f957c8aa3b4f71b901b0fa19683ab1fa1
225445  2013-03-12 01:14:54  00000000000000ec0df675972dddf0c2bdb1d436064672a6f0b79ce65ffcade6
225444  2013-03-12 01:07:00  00000000000003381ed79de2fa810c0e4f0e9c0cd5d307380b779e2b5ffa982e
225443  2013-03-12 01:05:42  0000000000000213874009d269b90be16ea5c1f6a83a79ae2be3813d8972a2a3
225442  2013-03-12 00:50:25  0000000000000229cd059490b7607ca4c191c52bb40405fa052c48d72bfda8b0
225441  2013-03-12 00:39:25  0000000000000372a4c37e27587255ca77a6377391c1974f13ea55ec1d3bc01b
225440  2013-03-12 00:20:11  00000000000003264ac7a6a74ca779997ee637b30f84debcb6ba6c26e2d09f4b
225439  2013-03-11 23:49:08  000000000000015aab28064a4c521d6a5325ff6e251e8ca2edfdfe6cb5bf832c
225438  2013-03-11 23:47:25  000000000000019881625f04eac2046512fa1e1bd7193f56f39595d802bbbd04
225437  2013-03-11 23:34:58  000000000000000016b3a292d63f9eea6b8177b8ba8dfd621d36fd828e5cb187
225436  2013-03-11 23:34:35  00000000000001a23b3f38106f210493795a1ef6b21dd559f87ada8dfc84181b
225435  2013-03-11 23:22:47  00000000000000947452b814ed008f750023e64c8fd03bb19b3865716eeb243d
225434  2013-03-11 23:08:53  00000000000002528688a366a9f42c07089268cd8a474961c49f787cb385807e
225433  2013-03-11 23:07:54  00000000000001b3c862fd66689712bc1cdd44fc004c008ada6c1b51367686f2
225432  2013-03-11 22:56:44  00000000000002c9e42c23f6eed2b9f9152a440610dcfaf992357c3cbff3689c
225431  2013-03-11 22:46:35  00000000000002d2012cc1b3fc0cceb8c156f0e698db40bf4413a210eca056c3
225430  2013-03-11 22:39:09  000000000000015c50b165fcdd33556f8b44800c5298943ac70b112df480c023


What are some resources for non-tea-leaf cryptocurrency trading strategies? I've heard of some bizarre cryptocurrency trading strategies that basically amount to reading tea leaves:

patterns of five, referencing that we have 5 senses, 5 fingers on each hand, and thus one can assume 5 patterns in a day for trading, lol
fibonacci analysis

Can you point me in the direction of some resources for somewhat scientific trading strategies that work to reduce trading risk? For instance, here are two that I've heard:

Market Cap Distribution Analysis
Cross-Exchange Arbitrage. Buy cheaper on one exchange, sell higher on another exchange, pocket the difference.

I've been trading on Poloniex for about 8 months now and Ill tell you what I've learned about trading crypto-currency:

There really is no method to the madness. You can try to follow trends, you can try to read the charts and watch markers and signals for whatever they are supposed to signal. But honestly, it just kinda does what it does.

I've found that trying to trade from exchange to exchange trying to take advantage of small price difference is tough because of how long it can take for different coins transactions to be confirmed. It's easy to miss a quick swing in price while waiting for funds to be confirmed.

Watching for news articles or coverage of a specific coin and then trying to trade on the news is also tough. Again because you can't be everywhere at once. The news might not inspire US investors but it might inspire Asia or European investors and they don't wake up until you go to bed. So it's easy to miss out on an afternoon rally in Asia when it's 3am where you live.

Here is what I have found to be helpful. The crypto currency market is a rollercoaster. It swings up and it swings down. And it does it very quickly and often. So here's what I do, base your buy and sell decisions on the average price over a period of time. I like to use two week intervals. Take the daily high for the two weeks and get an average price. Take the  daily low for the two weeks and get an average. Place a buy at about 5 to 10 percent above the average low and place a sell about 10 to 20 percent above the  average high. Then wait. Wait for it to reach the high you set and sell. Then wait for it to come back down (because it always does) and buy again.

If you do that over and over again over time you'll make a decent profit. You just have to be willing to wait a few weeks sometimes for it to reach the high your looking for.


Which coins can butterfly-labs miners mine Can I use a butterfly-labs miner to mine any crypto-currency?

Look at http://dustcoin.com/mining.  The currencies designated as having SHA-256 algorithms (e.g., Bitcoins, PPCoins, Namecoins, and Devcoins) stand a good chance of being mined with BFL-like ASIC mining hardware. Remember, some currencies support merged mining - mine once and get paid in multiple currencies. Either your centralized pool supports merged mining or you have to do it on your own.


Electrum wallet - Can not send bitcoins Does anybody know what this code means?  error: {u'message': u'64: dust', u'code': -26}   I've managed to send bitcoins once, same settings, but it only worked once.
Any help is welcome, thanks!

According to another question about an Electrum error message the error message is just passed along by Electrum and originally was generated in BitcoinQt:

According to rpcprotocol.h in the source code error -26 has the following meaning:

 RPC_VERIFY_REJECTED = -26, //! Transaction or block was rejected by network rules

Guessing from the word "dust" appearing in the message, was the amount you were trying to send below 5430 satoshi? That would be considered dust, and perhaps electrum would not send a transaction with dust.


Proof of work - lottery approach I'm sure I am missing something here. But not sure what ...

Proof of work - after all is said and done, when a hash is found (about 10 min), it is said to be like someone hitting the lottery. Anyone that wins the lottery should be able to prove that a cost was incurred. So there are two things:

Include a cost to finding the hash.
The winner is considered "random" because finding the hash is an iterative guessing process.

The result is a huge energy burn and the result "mimics" a random winner.

QUESTION: Can the bitcoin network randomly select a subset of the existing nodes, for each block, who then compete to solve the hash? For example, if there are 100,000 nodes, the network randomly selects 10% or 10,000 nodes who are allowed to compete to find the hash. Or take it to a smaller number like 1% or 1,000 nodes, etc.

The burning question is: Why can we not mimic the proof of work process and save a ton of energy along the way?

Why not have all the nodes that wish to enter each block lottery pay a small fee. They all currently incur electricity cost so from a financial standpoint, does it matter whether they pay a small lottery fee or pay a small fee to the electric company?

EXAMPLE: for the next block, here is the process:

All 100,000 nodes pay (arbitrary number for now to make point) 1000
satoshis.
The bitcoin network randomly (maybe this is tricky part)
selects a subset percentage. Say 10% or 10,000 nodes. These are the nodes that compete for the next block entry.

BENEFITS:

There is still a cost incurred by each participant without the energy usage.
The energy usage is now a fraction of the total network participation for the iterative hash search.
It can allow more node participation by less powerful computers. A laptop will still be at a disadvantage, but is now competing against 9,999 other computers instead of the hashing power of the entire network.

To make sense of this is the fact that the end result of the current process is a "random" winner that can prove a cost has been incurred.

Can the lottery fee approach achieve the same goal without sacrificing security?

There's a lot going, but I'll do my best.

  QUESTION: Can the bitcoin network randomly select a subset of the existing nodes, for each block, who then compete to solve the hash?

Selecting a subset of existing nodes isn't easy as it seems. The vast majority of bitcoin nodes aren't reachable at all, in fact. That's why every website that counts those are different from each other. (The best probably being Luke Dashjr's one).

So you might: "Well, you could make it so that in order to participate you have to public announce your node". But that opens up (from the top of my head) a big attack vector: DDoS's. If every node participating in the consensus is known and reachable then you could hit them once they are selected and cause a network failure.

But that's not even the most important part: This approach would be extremely easy to gamble. Any person could run thousands or millions of nodes (Amazon Web Service has 1 million business customers) and change the odds to their favor.

Proof-of-Work is not a consensus algorithm, but rather an Anti-Sybil protocol. Sybil being the attack that I described in the last paragraph.

  Can the lottery fee approach achieve the same goal without sacrificing
  security?

Absolutely and 100% no, if you take "without sacrificing security" serious. And (1) I'm not sure if it can be done at all or (2) if it would work, but regardless: no.

  The result is a huge energy burn

This is a little off-topic but I feel that might be worth commenting. Bitcoin energy usage is far from "deadly" or something like that. Most researches point to +70% use of renewable energy in the industry, highest than any other.


What do "support" and "resistance" mean? I'm still very much a newbie to all this and would like to get some help.

By 'support' and 'resistance' assume you mean in the context of trading an asset. If so, then, simplistically, support means a level at which the value of the asset could become attractive for incremental buyers. Resistance means the value which the asset may be having a hard time breaking out of (likely due to people selling at those levels)


How do I get my Bitcoin Core to rescan for a different wallet.dat file on OSX? I have an old wallet.dat file that I have backed up and I have already replaced the new wallet.dat, which had no btc on it with the old one, which does. I have tried to enter the command for the rescan function to adapt to the different wallet information without success. Do I do this through the QT terminal or through the debug console command line? And can this be done before the bitcoin core wallet is completely synced with the entire network? Thanks.

The QT terminal (RPC) rescan option will be available in 0.16 (not release by the time of writing). https://github.com/bitcoin/bitcoin/pull/7061

Manual rescans should generally not be required, though, if you are missing transactions in an old wallet, the rescan may help.

In Core < 0.16 you need to rescan either by startup argument or by a configuration option.

Startup (OSX)

Open up "Terminal.app" and enter /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt --rescan

bitcoin.conf (OSX)

Place a plain text file called bitcoin.conf in ~/Library/Application Support/Bitcoin/ and make sure the textfile contains the line "rescan=1".

Make sure you remove the rescan=1 line after you have successfully rescanned your wallet.dat.


Why was block # 289791 empty of any transactions? I just came across something strange, block no 289791 which was mined on Mar 10, 2014 is empty of any transactions. Is it because the miner refused to accept any? Or something else?

This is the previous block,

289790
Number Of Transactions  86
Height  289790 (Main Chain)
Timestamp   2014-03-09 23:24:02
Size    43.853 KB

This is the block you are talking about

Number Of Transactions  1
Height  289791 (Main Chain)
Timestamp   2014-03-09 23:30:23
Size    0.183 KB

As you can see by the size of the previous block, there was little activity in that time, only 43 KBs worth of transactions, you can also note that both blocks came less than 5 minutes apart, so perhaps the transaction pool was emptied by the previous block and there wasn't enough time for a new transaction to be broadcasted after that. Since every minute counts, miners won't wait for a new transaction to appear because they run the risk to lose the block reward.


When launching cgminer with scrypt parameters, Windows gives an error message. Why does this occur? Cgminer opens up, stays for like a second or two and then Windows gives me an error message. Mining (bitcoins?) without --scrypt works fine but with the scrypt parameter, I get the message seen in the window below.

The settings for the .bat file are also in the image and I think they've been configured correctly. I tried uninstalling, installing different drivers. Read somewhere that the new ones don't work (tried with the latest drivers already) so I installed Catalyst 12.2 Beta (GPU is a Radeon HD 6670, Driver Version: 9.10.8.0 according to device manager) and it still doesn't work.

Help? :(

I've seen this problem a few times, it could be just about anything unfortunately.  I would try changing your thread concurrency, and intensity values.  Some people have also recommended different drivers.


Pump & Dump communities. Are they legal? There are several communities that allow anybody take part in their "movements".
They say, for example, that at 7pm GMT they will announce an altcoin name and people would rapidly buy this coin on a specified early exchange (say, Bittrex).

When it's time to go, they disclose the coin name and people participating start to buy it. In consequence, the price of this coin rapidly rise. And after some short period of time it does down. Therefore, those who managed to buy it early and sell it in time, get profits.

These communities often call it as "Pump".

I read on Wikipedia about Pump & Dump scheme. It's illegal on security market (as I understand). Although, in my opinion these communities do not really do Pump & Dump as described on Wikipedia (from my point of view) as they do not make "false and misleading positive statements" about pumped coins.

The only thing that looks like described on Wikipedia scheme (again in my opinion) is that admins of some of such communities ask other participants to "promote" pumping coins on different chats/forums.

My questions are:
1) Do organizers (admins) of such communities do illegal things?
2) Do participants do illegal things when they:
  a) "promote" coin
  b) do not promote coin and just participate
3) What are consequences for those who could be determined as the one who do illegal things?

Legality depends largely on jurisdiction, and you didn't specify one.  In addition, the regulation of cryptocurrencies is constantly in flux, and even in a given jurisdiction it's difficult to say which laws apply to them and which don't.  It also may be in question whether fiat money is involved, or are these scammers selling their altcoins for bitcoin.

As far as I'm concerned, this looks like it is illegal, or at the very least should be.  Whether it actually is, is impossible for me to say.  If you want a more definitive answer, I recommend consulting a lawyer in the jurisdiction you are concerned with.


Clearing 2 week old transactions from mempool I can see a lot of questions posted on Reddit similar to "My transaction is not confirmed for X days. What do I do?".
The most common answer is "Transactions are cleared from mempool after 2 weeks".
Can anybody please explain how it is technically possible?

Say I broadcast a raw transaction through bitcoin-cli. A little later I can see it in

My local mempool
Blockexplorer.com
Blockchain.info

Transaction is not confirmed due to low fee for 2+ weeks.

I check if transaction is still known to network.

My local mempool. Transaction is not present. The reason might be not these 2 weeks, but rather my full 500mb pool where low-fee transactions are cleared due to limited space.
Blockexplorer.com. Transaction is not present. They definitely have a bigger mempool. So 2 weeks might be the reason.
Blockchain.info. Transaction is still known to the service. Probably not in mempool in terms of bitcoin, but somewhere in there local storage. The point is they still remember it.

So, two out of three parties forgot transaction.

The questions are:

What stops Blockchain.info to rebroadcast my transaction to the network again so that it is back again in network mempools? It would be exactly the same as if I just broadcast my transaction for the first time, right?
If Blockchain.info can do it, is this 2-week rule true in the first place?
If it is true, how it is implemented on the network level? Is it some kind of agreement that we do not rebroadcast transactions that are this days old?

What stops Blockchain.info to rebroadcast my transaction to the
  network again?

Nothing. Or may be laziness.

  It would be exactly the same as if I just broadcast my transaction for
  the first time, right?

Right.

  If Blockchain.info can do it, is this 2-week rule true in the first
  place?

Everyone can do it. And someones definitely do it. Your node will get it back after 2 weeks.

  If it is true, how it is implemented on the network level?

It is not consensus rule. If you want - you have a right to rebroadcast a transaction if it is still valid [and not confirmed].

  Is it some kind of agreement that we do not rebroadcast transactions
  that are this days old?

No.


transaction that was included in a block without my permission After requesting for bitcoin it automatically sent to my blockchain wallet after that it was then sent out without my permission again to another address and it never arrived in my final balance but yet my total received transaction keeps increasing am so confuse about were the money went to .please help me understand

Note that there is a difference between a wallet and an address. Namely, a wallet may control the keys for many addresses.

Checking the address you posted, it clearly has no bitcoins in it, as they have been transferred out to two different addresses:

15748uoft3CUiwvAqzPrLNxNxKNRpKpjt6

1EnD6fRsuajQm6B2KkYENE86nEvoinTjU8

If your wallet controls these addresses then you have nothing to worry about.

If not, then I’m sorry to say it appears your BTC was stolen. You’ll want to never use that wallet again, and it may be with spending some time trying to uncover how your wallet was hacked. Did you share login or wallet backup/seed info with anyone? Did you back it up to a potentially compromised email or Dropbox account? Etc

Your chance of recovering those coins is likely very slim, so at least you can try to learn from a past mistake.