There is no REST endpoint to create an account. An account is implicitly created after receiving at least 20 lumens.

To create an account:

Generate a private/public keypair. You can use the Stellar Laboratory Account Creator for that.
Get at least 20 lumens, either from an exchange or through another account, sent to the public key you just created.

That's it.

Official guide : https://www.stellar.org/developers/guides/get-started/create-account.html


MtGox bancruptcy: Filing proof of claims

From the mtgox website:

  Please be aware that confirming the balance on this site does not constitute a filing of bankruptcy claims under the bankruptcy procedure and note that the balance amounts shown on this site should also not be considered an acknowledgment by the bankruptcy trustee of the amount of any bankruptcy claims of users.
  Bankruptcy claims under a bankruptcy procedure will be fixed through filing of claims and the investigation procedure. The method for filing claims will be published on this site as soon as we are in a situation to announce it.

This implies that yes, you as a creditor will have to file a claim to avoid forfeiture, even if the bankruptcy trustee already knows about it from mtgox' data, and even if the current website confirms that to you. There is a deadline for filing your claims that apparently has recently been moved to May 29th 2015. The last sentence from the quote suggests that the trustee is struggling to provide a means of filing claims that scales to the thousands or tens of thousands of creditors.

All of this is based on taking the information at the mtgox website at face value. A better answer would include whatever big money creditors or their lawyers say---but I have no source for that.


No you cannot. Monero uses a different PoW that is incompatible with sgminer, but also uses a different pool communication protocol that is Stratum-like but not actually Stratum.


DigitalNote Wallet Stuck on last node (415608)

I hope it helps you, but the current version should fix that.
https://github.com/xdn-project/digitalnotewallet/releases

If this does not help, can try to change the p2pstate.bin file,
located in
C/Windows/Users/Your username/AppData/Roaming/digitalnote
with the file from this one
https://drive.google.com/drive/folders/0B4t0S1ES9L-RUUUzX2ZjUW5Xems
and should not help it all, say something!
And if needed, the current addresses should be:

176.9.2.145:8480,
73.187.10.116:42080,
176.9.147.178:8480,
148.251.51.113:8480,
122.173.153.251:42080

Best regards


How the first succesful miner is ensured his reward

By definition, by altering the block, the hash would have to be altered too. Thus the hash ensures the block can't be tampered with, and the miner safely receives his reward.

To modify the block, the attacker would have to recompute a new valid hash within the difficulty, i.e. mine the block again after the original miner, which would clearly not be part of the main chain by that point and thus basically ignored.


What benefits does Bitcoin have that other cryptocurrencies do not?

Why do people prefer to buy Bitcoin over other cryptocurrencies?

There are many reasons:

Liquidity

Bitcoin is the most capitalized market amongst cryptocurrencies, and that is an important measure for any form of money. If it is difficult to trade a form of money without crashing the price of it, then it is not a very useful money in the first place! As liquidity grows, more economic activity can occur using BTC (liquidity begets liquidity), it is a positive feedback mechanism.

User-base

Systems of money benefit from network effects. It is beneficial to own a form of money that a large number of people accept, compared to a specialized money that only a few people will accept. Bitcoin is still 'specialized money' in the big picture, but it is certainly the most widely accepted cryptocurrency at this time, with the largest userbase.

A decentralized network

When compared to a centralized financial network, the operation of the Bitcoin network is quite inefficient: every network node independently computes and validates the entire history of the network. This inefficiency is seen as acceptable because it results in a network with no hierarchy amongst nodes: nobody is in control of the network. There is no central admin. There is nobody that can exert undue influence on the network (for example, to change the rules, or inflate the supply). This point is very important! Many other cryptocurrencies are tied to some central authority, and this represents a single point of failure, that a user of that currency must trust to not be abused or attacked.

Historically, the Bitcoin network has proven to be extremely difficult to change (as evidenced by events such as the 'Segwit2X' debacle), which gives investors confidence that the value they store in the network will remain secure (1 BTC continues to = 1 BTC). To contrast, the Ethereum network regularly enacts hard-forks that change the rules of the network (see: the DAO attack, ice-age setbacks, changes in issuance of new ETH, etc).

Network security

The history of the Bitcoin network is probabilistically secured through the economic incentives of Bitcoin mining. To put it more clearly: each new block on the network provides a reward which incentivizes miners to spend resources mining and progressing the network's state. To alter the history, an attacker would have to spend more resources than the entire rest of the network combined (this is called a majority attack).

As a user, it is thus in your best interest to use the network which has the highest amount of security, so that there is the lowest chance of someone successfully attacking the network you've invested in. To date, Bitcoin has always had the largest amount of security, no altcoin has come close to it in this regard.

Hard money

As mentioned above, the rules of the network are extremely hard to change. Making a change requires that a super-majority of users will all agree to the change, and then update the code of their nodes to reflect the desired change. Because of this, the issuance and supply of BTC is very well understood, extremely predictable, and likely almost impossible to alter. This means that investors can have confidence that they understand their stake in the network, and this stake will not be changed without notice (by, for example, a central authority deciding to alter the supply).

Financial Sovereignty

With all of the above in mind, the result is a network that grants the user financial sovereignty: un-censorable money that is completely under the control of the user. Other cryptocurrencies do not have the level of decentralization required to strongly guarantee such a thing, many of them are in fact entirely centralized, depending on some central authority to guarantee the value, services, security, or function of the network.

Infrastructure

The Bitcoin network has been around for the longest time, and as a result of this, it has a large developer base working on a huge variety of projects that will benefit the network and it's users. Since the code is open source, you can view the development progress in real time by checking out the Bitcoin-core project's github repository, the bitcoin-dev mailing list, #bitcoin-dev IRC channel, etc. Beyond this, you can also check out development of the Lightning network (LND, c-lightning, etc), the lightning-dev mailing list, the many wallet projects in the ecosystem, and the many systems and services being built to utilize Bitcoin.

Following the work can be dizzying, but the results are clear: as time has passed it has become increasingly easier to use and interact with the Bitcoin network. It seems logical to conclude that this trend will continue.

You may have noticed that everything written above is largely a social phenomenon: the code itself is entirely open-source: you can copy/paste all of it, tweak a few parameters, and start up your own altcoin network without much work at all. What you can't copy/paste is the network of humans that partake, and that is where the real value comes from.

  If Libra is introduced as a stablecoin with a company like Facebook supporting it, why would there be a demand for BTC?

Libra is no different than any other altcoin that has a centralized point of failure, posing a huge risk to its users. Further, facebook's abhorrent privacy policies and past abuses of user data make it inconceivable that a currency they control would gain widespread trust.

  Why is there still demand today when Tether can serve as a stable medium of transaction?

Similar to Libra, Tether is backed/guaranteed by a central authority, it does not promise the same things that Bitcoin does (which isn't to say these things can't have use-cases in their own right, but the key point is that they are not equivalent to Bitcoin).


Check which bitcoind version I am running

EDIT: As of 0.16.0, use getnetworkinfo to get the version of bitcoind:

getnetworkinfo: version, protocolversion, timeoffset, connections, proxy, relayfee, warnings

Send a getinfo command to the server. It shows the version of bitcoind:

{
  "version": 80400,
  "protocolversion": 70001,
  "walletversion": 60000,
  "balance": 102.2899977,
  "blocks": 104358,
  "timeoffset": 1,
  "connections": 15,
  "proxy": "",
  "difficulty": 1.0,
  "testnet": true,
  "keypoololdest": 1372886245,
  "keypoolsize": 101,
  "paytxfee": 0.0,
  "errors": ""
}


Is this brainwallet approach safe enough?

Appending numbers doesn't open you up to any particular vulnerability, but using any human derived private key is an extremely poor idea. Markov chains are extraordinarily good at attacking passphrases, which is counter intuitive when most people assume an exhaustive search character by character.


Could somebody be traced in a situation like this?

Bitcoin addresses are pseudonymous, in other words they aren't linked to anybody's ID without that user somehow linking the address to their ID (for example by withdrawing from an exchange service where they have provided their ID to the exchange).

There are various known tricks/tools to reveal IP addresses of transactions and to link various addresses to a wallet if they are all in the same actual wallet. Each have varying degrees of success. But at the end of the day if an address is used only once and isn't part of a wallet with other addresses in it, plus you use tools like Tor and mixing services it would be very difficult to link future addresses to the source address while still knowing for certain that the addresses belong to the same owner. Potentially impossible depending on the tools/services used. I'm not saying Bitcoin is anonymous, it's not at all, the entire transaction history of every address is entirely visible to every man, and his dog. But it is pseudonymous if used correctly and that's what is important for your question. The funds can be traced through the addresses, but tying the owner to those addresses is what's important.

For example, note that this is not advice, but if you sent your identifiable purchased funds to an exchange, gambling site, dark net site, or other site that does not require ID verification. Then withdraw those funds in multiple transactions to different addresses in different wallets, using Tor or similar perhaps. Then those funds would be indistinguishable from the source funds in most cases. But, do your research if extreme privacy is important to you. Most of us are happy just pushing the funds through a simple mixer for a little bit of semi-privacy.


How can block time and block size be fixed when transaction volume is constantly increasing?

When transactions are received, nodes will hold those transactions in memory (the mempool) whilst mining software attempts to mine a new block. A miner will try to fit as many transactions into a block as they can, so as to earn more fees if they successfully mine a block.

If there are more transactions than will fit in the block, the miner must filter them so as to include enough while keeping under the block size limit. The filtering method typically used is to order transactions by fees paid, and include the highest fee transactions, because this results it the biggest payout if they are successful at mining the block.

Any transactions which were left in the mempool will then be candidates for adding to the next block in the chain, but will be placed under the same filter whilst additional transactions are coming in from the network also. This means that a transaction only paying low fees may be in the mempool for a long time because they are deprioritized over transactions which are paying more.

This creates a fee market for block space. People who require their transactions to be processed in a timely manner - the next few blocks, will pay a higher transaction fee which will promote them to the top of the queue, whereas people who have no urgency for their transactions to be processed will pay a lower fee and be willing to wait until the size of the mempool is reduced.

As transaction volume increases due to more demand, people must either pay more fees, or utilize new technologies to reduce the size requirements of their transactions in order to pay less in fees. Some techniques for achieving this are batching transactions, using payment channels (like the Lightning Network), using sidechains, and using future improvements to the bitcoin itself, which will allow for signature aggregation, and removal of unevaluated branches of bitcoin script.

  As I understand it the network rejects blocks over 1MB, and block hash difficulty is set after each block is created as to keep the block time close to 10min.

The difficulty is adjusted every 2016 blocks (approx 2 weeks), by taking into account the blocks created over that period. Blocks are not necessarily every 10 minutes, because it is a random process of finding a valid hash which is under the target value, and can range from seconds to an hour or more. It averages to approximatetly 10 minutes over extended periods of time due to the regular difficulty adjustment.


What happens to a coinbase transaction when no address is given?

In the event that the Coinbase transaction produces outputs that total less than the eligible block reward, any unclaimed coins are permanently lost.
In this specific case, the entire block reward of 12.5 BTC was permanently lost.
There have been other instances where miners only partially claimed the full amount they were able to claim, also leading to a permanent loss.
Note that in scenarios like this, it leads to a reduction of the total supply of bitcoin. There are other types of losses, such as sending coins to an address with no known private key, which don't reduce the total supply.


How to find out if LND opening pending channels has a confirmation onchain?

lncli pendingchannels gives a pendingChannelRespnse which might have the pending_open_channels parameter. This contains an array of  PendingOpenChannel objects.

According to the documentation they should have a parameter confirmation_height which is the height of the blockchain at which the funding TX has enough confirmations (the max of your and your channel partners threshold)

See

So from bitcoin-cli you figure out the current height and take the difference to see how many confirmations are still needed.

I guess if you don't get a pendingopenchannel object you don't have confirmations yet.


Which function in which file verifies that transactions are the right size

The function, which is found in main.cpp is called CheckTransaction():
https://github.com/bitcoin/bitcoin/blob/master/src/main.cpp#L526


I sent bitcoin address to user and he sent payment, I haven't recieved payment after 24hours?

My transactions have been confirmed 120+ times

That transaction has been completed and the money received.

Your wallet might not know the money has been received but that is irrelevant so far as the Bitcoin network is concerned.

That transaction sent money to two addresses 1AP3T8gcHiUDdaPYQuBLbRL6Zqg8CF5GGz and 16z1nWRJDcbgDzyQFY62Q37gGHG2duWvKS. One is the payment and the other is change returned to the sender.

If either of these addresses are the address you gave the other person, it means you have received payment. I would check your wallet is fully synchronised and working properly. I would double check that the wallet knows of the address.

If none of these addresses are the address you gave the other person, it means this transaction is irrelevant and/or the other person made a mistake, or is not telling the truth.

  I would like to know if there's a way to recover it back

As I expect you know, Bitcoin transactions are irreversible. There is no way to cancel, undo or reverse a Bitcoin transaction with more than 120 confirmations.


I would try an ATM if available in your area they seem to be alot faster, I've never waited more than 30 minutes and most of the time they are extremely fast.


Can you encrypt not just the private key, but also the public keys (ie bitcoin addresses) in an Armory wallet?

I would get a Tails USB and store the Armory application and wallet files in encrypted storage. That way not only can they not tie your addresses to you, but if you access bitcoin related sites only through Tails, it would be hard to show you even know anything about bitcoin.


What can be bitcoin's secret can be at most and at least?

The maximum and minimum private key possible is defined by ECDSA and the curve being used. In ECDSA, the private key is an integer between 1 and n - 1, where n is the order of the generator point G. Bitcoin uses the secp256k1 curve whose generator has an order n = 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141, which is almost 2^256.
This means that the minimum value for a private key is 1 and the maximum is 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364140. If you use an integer outside of this range, taking the modulo n of that integer will give you a value that is in the valid range (except for multiples of n for which the modulo is zero).


How to best explain these transaction fee spikes?

First of all you'd have to look at the spikes and see if they are the result of single transactions with a high transaction fee or if there were more transactions overall that day.

If you see individual transactions with a very high transaction fee then I'd say it's pretty likely to be a mistake by the sender. Here, for example, is the explanation for the spike on January 10th.

  I've been doing raw tx's without a problem for weeks I guess the
  exhaustion of working over 12 hours per day for the last week has
  clearly taken its toll.

In general though, there is obviously no way to know if someone paid a very high transaction fee on purpose or not.


What causes synchronous price movement within and between crypto exchanges without matching trades?

My understanding is that prices displayed on exchanges is not based solely on the last filed order, but also on the existing orders, which change constantly as traders manually and automatically move their orders up and down. Given enough traders, we can expect that they examine and perhaps participate in other exchanges. Some trying to make arbitrage like you and others just trying to feel informed. Thus, we can expect that traders change their open orders on all the exchanges that they participate in, but based off their impression of price/value in reality, not just the published price on any individual exchange.
Theoretically it would seem possible that a perfect storm of too few traders that are also ignorant of price changes on other exchanges might not change their orders, leaving price on that exchange unchanged while it rapidly moves on others. In my opinion, such rare instances are really the only opportunity for arbitrage to be profitably worthwhile.  The whole point of a published price is to be as close to public perception as is possible. Should a new up-and-coming exchange fail horribly in that regard, they would lose trust of the few traders they already have.


How are Bitcoin Addresses generated when using bitaddress.org?

https://github.com/pointbiz/bitaddress.org/blob/master/src/bitcoinjs-lib.eckey.js#L65 seems like a good starting point.

The functionality you are interested in has been taken from https://github.com/bitcoinjs/bitcoinjs-lib, so you might want to have a look there as well.


vout is the 0 based output index. It can be more than just 0 or 1, but those tend to be the most common because people don't make transactions with lots of outputs.
To understand vout, you must understand how Bitcoin transactions actually work. A Bitcoin transaction consumes transaction outputs as inputs, and creates transaction outputs. It can consume multiple transaction outputs, and create multiple transaction outputs. Furthermore, these transaction outputs can be consumed by different transactions, so each one needs to be able to be uniquely identified. So a unique identifier contains two items: the transaction id to identify the transaction an output belongs to, and an index to point to the position in the list of outputs in that particular transaction.
That index is what the vout is. As with many things in computer science, it is a 0 based counter so the first item is at index 0, the second at 1, and so on.
listsinceblock, listtransactions, and some other RPCs in Bitcoin Core don't actually list Bitcoin transactions. Rather they list the logical transaction - the one that humans tend to think of. This is because a single Bitcoin transaction can both send Bitcoin away from you, and allow you to receive Bitcoin.
In a single Bitcoin transaction, you can be consuming your own transaction outputs, so the transaction is sending your Bitcoin away. However not all transactions contain inputs from the same person. This transaction could involve another person who has their own transaction outputs as inputs to this transaction. And perhaps they are creating an output that you would be able to spend. So this transaction is also sending Bitcoin to you. This single Bitcoin transaction would then consist of two logical transactions - one where you are sending, and one where you are receiving.
This can often occur with change outputs, but the software should not be showing you those as it is smart enough to hide them and not consider them as a distinct logical transaction. Change outputs are when a transaction output is created by you that sends the Bitcoin back to yourself. They exist because a transaction output must be spent in full, but often the amount you are actually sending does not exactly match the exact amount of the output your are spending. So you must create an output that sends the remainder back to yourself.


Running full node on OSX, how to tell if its working correctly?

Those are not errors/are benign errors. You have multiple connections and your node can be found on bitnodes. Your node is fine and working correctly.


How much do you gain from minting a proof-of-stake coin on multiple wallets?

There is no theoretical gain. It would basically be multiple computers doing the same calculations and arriving at the same result.

Look at https://github.com/ppcoin/ppcoin/blob/master/src/kernel.cpp#L290-L312. These are the things that are included in a PoS hash:

//   nStakeModifier:
//       (v0.3) scrambles computation to make it very difficult to precompute
//              future proof-of-stake at the time of the coin's confirmation
//       (v0.2) nBits (deprecated): encodes all past block timestamps
//   txPrev.block.nTime: prevent nodes from guessing a good timestamp to
//                       generate transaction for future advantage
//   txPrev.offset: offset of txPrev inside block, to reduce the chance of
//                  nodes generating coinstake at the same time
//   txPrev.nTime: reduce the chance of nodes generating coinstake at the same
//                 time
//   txPrev.vout.n: output number of txPrev, to reduce the chance of nodes
//                  generating coinstake at the same time

These will be the same on two different wallets, so you'll just be doing the same calculation and getting the same result on two different computers.

  One possible theoretical gain is that blocks could be propagated from different nodes at many locations, and the blocks would spread much more quickly.


History of transactions in Lighting Network

Transactions in LN are off-chain, so transactions couldn't be stored in main-chain, so how could you look-up the transactions history?

You cannot view the transaction history of any node except your own. Transactions in LN are private and sent encrypted over an onion routing layer. It is up to the software client to keep track of payments if you want your own payment history.

  Payment channel is private for someone outside, and if there is no transaction history, how do i give the information to others to proof that I've just made a payment in LN.

Every payment on LN uses a 256-bit random number, called a payment_preimage. The preimage is hashed using SHA256 to produce a payment_hash. The intended recipient of funds initally witholds the payment_preimage, but gives you the payment_hash and asks you to make the payment.

When you make the payment, it is made for a specific payment_hash. This is done with a Hashed Time-Locked Contract (HTLC), which is a conditional payment. The payment expires after a timeout, unless the intended recipient accepts the payment by surrendering the payment_preimage for that payment_hash. If the recipient does not accept the payment, they must fail the HTLC before the timeout, else their channel may be forcibly closed and they will not receive the payment.

Once the recipient has accepted a payment by sending the payment_preimage, it is trivial for you to prove that you have paid payment_hash, because anybody can perform the SHA256 on the preimage and assert that it matches payment_hash. The assumption here is that SHA256 is cryptographically secure and it is not possible to brute force a payment_preimage to produce an expected payment_hash.

By surrendering the payment_preimage to accept the payment, the recipient has provided proof that you have paid.

Note that this must assume that a preimage is never reused. Every payment must use a unique random preimage else it may be possible that funds are stolen.


Understanding blockchain 'under the hood' how a block is created

All miners are gathering transactions that they have heard about on the peer-to-peer gossip network.  This means that when someone broadcasts a transaction it gets propagated to all of the nodes it is connected to which then in turn share it with the nodes they are connected to etc etc...  These transactions are gathered by miners and stored in the mempool.  These are transactions that have not yet been included in a block or "confirmed".  The miner can choose which transactions it would like to include in the block, most miners gather as many TX's as they can to collect a larger reward, some do not some miners can build blocks with little or even no transactions included in it.  It is in the miners best interest to include as many tx's as possible to attain the fees generated by those tx's.  Miners take the aggregated transactions and the hash of the previous block and then generate a random nonce.  These items are all hashed together and if the hash of the block has an appropriate number of leading 0's to pass the current difficulty formula then a valid block has been found.  The miner then propagates the block the same way the transactions are distributed across the gossip network.  When the block is mined a coinbase transaction is created which the miner includes his address in, this address gets the block reward and fees for distribution (usually to a pool of miners).  The network continually adjusts the difficulty formula based on the hashing power of the network to ensure that one block is created about every 10 minutes.  There are some formulas in place to ensure the difficulty doesn't move too fast in the event of a large number of miners going offline at the same time.  Hope this answers your questions.


thin-client remote node lying through omission

Peers who don't use the whole blockchain are relying on at least one of their peers to send them transaction data when a transaction satisfies the bloom filter that the SPV (simplified payment verification) node has set. As such, SPV nodes have to be careful about which peers they connect to, and that they have a variety of peers. I believe some implementations of SPV nodes only connect to a set of defined, or are at least configurable to only connect to a strict set of peers.

Read how the bitcoinj (SPV node implementation) creator describes its security here:

  Because bitcoinj apps do not accept incoming connections, the peers you talk to are always randomly selected at startup (based on DNS seeds today). So it can be difficult for an attacker to control your connectivity like that. For this reason, the number of peers that have announced a transaction is exposed in the TransactionConfidence object and you can listen on that to learn when new peers have announced a transaction. Once most of your peers have announced, you can be fairly sure that the transaction is propagating its way across the network and is very likely to be valid.


Move bitcoins from one address to another using JSON RPC

The leftover 0.5 BTC is sent to a change address because it is not good practice to reuse addresses.  You would simply have to assign the change addresses to the users.


how to get confirmations about many transaction at once using bitcore node or bitcoind rpc?

Solutions (depending on your use case)

Use JSON 2.0 batch requests (supported in Core)
Use REST with binary export https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md
Use the wallet if your set of scripts you want to watch is known. Use list transactions to get all relevant transactions of a set of keys/scripts


send bitcoin to mobile number or email address

First of all: You do not really send the bitcoins to an email-adress or a phone number. You can only transfer them from one bitcoin adress to another one.

My understanding: The internetsite / (software behind it) creates a keypair (private and public key) and generates a bitcoin adress. Then, the site tells the user to send x Btc to that adress and provides you a textfield to enter an email-adress of your fried for example. And after that, the site sends an email to the email adress like "Hey, someone sent you bitcoins. Visit our site http://...
And finally, you need to provide the 2nd person the opportunity to import the keypair into his wallet or you ask him for a passwort that the first person gave the second person and let him/her enter a new bitcoin adress where he/she than send the bitcoins to. And you should use https for such a project.


how does bitcoin solve the same chain replay attack?

In all cases what you are describing is a double-spend. Bitcoin uses a UTXO model (not an account based model) which means that there is a set of coins also known as the UTXO set or Unspent Transaction Output set.
Transactions destroy coins and create new coins.
A new transaction attempting to spend a coin that has been destroyed is simply invalid.
Your concept of you and Bob "having x BTC" as a balance is incorrect for Bitcoin. What you have is a set of coins (a subset of the network-wide UTXO set) that you can destroy with a transaction by solving an output script. When you send 10 BTC to Bob what's really happening is you are taking one of your coins (lets say a coin with a 20 BTC value) and destroying it. Your transaction replaces it with two new coins, both for 10 BTC -- one secured by Bob's public key and the other secured by your own public key (this is your "change").
Once that transaction is confirmed the original 20 BTC coin no longer exists. Sending the same transaction a second time would be invalid because it attempts to destroy coins that don't exist.


Where on the web can I find out the current total blockchain size?

Blockchain.info has many useful stats.

http://blockchain.info/charts/blocks-size


Is there a way to create 9995000 spendable BTC on regtest?

This is not possible because the regtest network is limited to 15000 regtest BTC. Unlike mainnet and testnet, it's halving interval is 150 blocks which limits the number of regtest BTC on one chain to 15000 (actually just under that).

On regtest, you don't actually need to make outputs which reach the dust threshold. The default behavior is to allow non-standard transactions be relayed and mined on regtest and testnet. So you can just make outputs as small as you want and they should still be relayed and mineable. Furthermore, Bitcoin can actually have 0 value outputs, so you can make transactions which don't even send money, thereby removing the need to get any significant amount of regtest Bitcoin.

If for some reason regtest transactions are being rejected for being below the dust threshold, you can lower the dust threshold by using the -dustrelayfee=<amt> option. With this, you set the feerate that the dust threshold is calculated at. Since it is in BTC/kB, you can set it to be 1 satoshi per kB with -dustrelayfee=0.00000001, which is 0.0001 satoshis per byte. This should reduce the dust threshold to less than 1 satoshi allowing you to have outputs that are 1 satoshi.


Where to find a list of Bitcoin attorneys?

Depending on the magnitude and urgency of your question, you might want to try contacting the Bitcoin Foundation:

Coindesk reported in July that the Foundation formed a Legal Defense Committee of which Brian Klein is the chairman. Either his office, or the Bitcoin Foundation's General Counsel Patrick Murck's office should be able to answer legal questions or refer you to someone.


Why does my full node need to load IP addresses from DNS seeds on restart?

This appears to be resolved for me in v0.21 with this merged PR 16939 and some additional context in this issue and this Bitcoin Core PR review club.
Falling back to load IP addresses from DNS seeds should be the last resort and as you say addresses of previous peers should be persisted in addrman after stopping bitcoind and restarting.


Is it safe to store a sha256 hash of my BIP39 seed on the blockchain?

You could and it's probably not a direct security issue, but it's a senseless waste of time trying to find it again. Keep in mind that doing this destroys the PBKDF2 key stretching used in the seed needlessly. Electrum stores a checksum with their 12 word seed (making it a 13 word seed) if you really desire that functionality, though it's clear if you have it right when the money in that wallet is restored.


Future risk of computer farms generating addresses for previous balance?

I think the way to reason about this is to think about the incentives and rewards of such actions.

Yes, I can potentially throw a lot of computational work into generating private keys and checking their balance... But is it really worth it knowing that I can throw the same amount of energy into Mining, and get a guaranteed and constant return on my computational work?

Somebody was discussing something similar in 2012 on BitcoinTalk, here's the link https://bitcointalk.org/index.php?topic=107172.0. Note that the author of the post says that "you probably have much better odds finding extraterrestrial life or winning the Powerball 5 times in a row" than randomly finding a generated BTC address with a balance in it.

EDIT: Reason for the downvotes? Why did a couple of people damage my account reputation without explaining exactly what is wrong with my answer? So sad this community is not as nice and newbie-friendly as it should be.


I believe flickr uses a base 58 scheme for encoding picture IDs in URLs, though Bitcoin's Base58 isn't compatible with flickr's.


Can miners insert transactions into the block from wallets they do not own?

Of course, otherwise you wouldn't see blocks containing transactions at all. Miners are not the only transactors on the network. Miners can include any valid transaction that they wish.

If you are asking whether miners can make a transaction for a wallet they do not control, then no, they cannot. Miners are still must follow the consensus rules, which means that they cannot just make arbitrary transactions for wallets which they do not control. In order to spend from an address, you must have the private key associated with that address. Miners only have the private keys for their own addresses and no one else's so they cannot make transactions for any arbitrary address.


Can I restore a Litecoin wallet with Public / Secret?

All you need to do is importprivkey. The software will handle everything else. Everything else it needs can be derived from the private key, and it will do so when you give it a private key.


Does the estimated transaction volume on Blockchain.info exclude exchanges?

The paper uses Blockchain.info's estimated transaction volume as input data. This data would not include off-chain transactions, it is only the transactions made public on the blockchain.

Centralized bitcoin exchanges make use of off-chain transactions, to execute trade orders between their users, etc. This off-chain data may be made public by the exchange, but from my skim through this paper it appears that data is outside the scope of the paper.

Quote from page 17 of the paper:

  We rely on Blockchain.info because this site provides an estimate of transaction volume excluding the major Bitcoin exchanges, and we believe their list of addresses associated with Bitcoin exchanges is more complete and accurate than ours. Blockchain.info also makes use of heuristics to remove change.

I'm actually a little confused by this, as it seems to imply that any data relating to a bitcoin exchange's addresses has been excluded, but I see no such mention of that on blockchain.info's website. Whether this is a typo on the authors' part, or the authors misinterpreted the dataset as actually excluding exchange addresses, I am unsure (ie. not just the off-chain tx data is exlcuded, but the on-chain txs to/from the exchanges themselves, as well as internal on-chain txs completed by the exchange).

As the authors mention, the blockchain.info site also removes change addresses from their reporting. I think it is worth mentioning that blockchain.info can only guess at which output is a change address, there is no way to be certain about this measure.


Is SegWit a blocksize increase or more efficient use of blockspace?

Yes and no. It depends on how you frame the question.

It is a block size increase, because you can fit a larger number of
useful transactions into a block.

If you want to make a useful Bitcoin transaction, it has to be signed so that nobody else can change it. If you can find a way to make the block size limit not count the signature, then you can fit more transactions into a block. Therefore, segwit is a block size increase.
It isn't a block size increase, because increasing the block size
would be a hard fork, which segwit isn't.

There's a constant within Bitcoin:

static const unsigned int MAX_BLOCK_SIZE = 1000000;

If you raise this, even by a little, it becomes possible to create a block which new clients will accept, but old ones will not. This is commonly called a hard fork.

Segwit is not a hard fork. It does not amend or remove any rules; it only adds new rules. Increasing the block size requires modifying a rule, and segwit does not modify a rule, therefore segwit is not a block size increase.
It is a block size increase, because a block requires more space to
store and send.

You have a segwit block with 800KB of transaction data, and 800KB of witness data. This is 1.6MB, which is bigger than the previous limit. Since segwit full nodes must have this data to validate a block, segwit is a block size increase.
It isn't a block size increase, because a node requires less or the same amount of space to store and send blocks if it doesn't understand segwit.

You have the same block as the previous example, but it's sent to a node that doesn't understand segwit. It only receives the 800KB of transaction data. This is all it needs to store. Since that isn't larger than 1MB, segwit is not a block size increase. However, if it does not store the witness data, it cannot meaningfully validate the block.


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.


Is there any tool to visualize the bitcoin transaction graphs?

Check out KYCP.org. They have good visual and written explanations of heuristics used by chain analysis companies, such as common-input, round numbers and change outputs, and address reuse.

OXT.me is also a good website. I think they're related in some way, but provide slightly different visualizations and heuristics.


No, there is no enforcement that a private key exists.

However, due to a Bitcoin address including a checksum, it is very unlikely for the client to create a transaction when for an address with a typo, paste error, or other erroneous data.  There are addresses that will pass the checksum test in which, presumably, no private key exists. 1BitcoinEaterAddressDontSendf59kuE is, in all likelihood, one such address.


Bitcoind daemon: error connecting to the server?

-bash: =: command not found

Leave out the initial dollar symbol when you assign the variable:

NEW_ADDRESS=$(./bitcoin-cli getnewaddress)

Use the dollar symbol when you use the variable:

echo $NEW_ADDRESS


The transaction that you submitted and the transaction that was malleated in-flight or by a miner are both legitimate (valid) transactions. Transaction malleability means that a valid transaction can be modified in-flight, without invalidating it and without access to the relevant private keys. Even if changing the components of the transaction doesn't make it invalid, it changes the txid of the transaction. So if you plan on creating two transactions together, where the second spends the outputs of the first transaction, then you can be a victim of transaction malleability. This is especially important in Lightning Network where you create commitment transaction prior to signing the funding transaction.

  Is there a script I can use to test it out?

The easiest one to try out is ECDSA signatures as ECDSA signatures are by themselves malleable. You can just change the S component of the signature to -S and it will still produce a valid signature verification check. This was fixed by SegWit by moving the signatures from scriptSig to a separate witness component. Although the signatures are still malleable, the txid calculation does not include hashing the witness component (wtxid includes the witness component and hence is malleable).

  If the transaction that is malleable is changed by the attack, how is it possible that the two transaction are still in the blockchain and the miners still pick the attackers TXID over the legitimate one? Why our legitimate transaction not seen by the miners?

Many miners still follow a first seen policy which means they will use the transaction that they see first. Bitcoin operates a gossip network with best effort basis. If you broadcast your transaction to nodes directly connected with you then it might possible that one of them malleates your transaction and is able to send that directly to a miner before the honest nodes are able to do it. Thus the miner will keep the first transaction received and discard the second transaction as a double spend. The miner has no way of knowing which transaction was the one that was directly relayed by you. Only one of them will enter the blockchain, not both after the miner mines the block. It might also be the case that it is the miner you malleates your transaction.


Is mining gold creating money? It's called mining because work goes into it. The money that comes out of it is remuneration. When the FED increases (er, eases) money into our system it's done by adding a few digits to an account. There literally is no work that goes into that. I cannot make bitcoin with no work -- that's the primary differentiator. Gold and bitcoin have real work backing them. Understanding would be enhanced by a read through Bastiat's economic sophisms: https://mises.org/library/bastiat-collection . This book is also recommended: https://mises.org/library/mystery-banking


Which payment processors do not allow for chargeback?

It's a short list.

Cash
Liberty Reserve (though they did freeze some customer funds recently until they became verified)
Bank Wire (though see comment below)
Webmoney (supposedly)

Here's the payment methods hardness list:

http://en.bitcoin.it/wiki/Payment_methods


Is it important to have an unencrypted backup of the private key?

It is important to be able to recover your private keys using only tools you fully control. That protects you against failure of infrastructure you would otherwise need to transfer your funds. There are lots of stories of corrupted backups, unreadable backups, and backups that didn't actually include the private keys.

Storing your private keys unencrypted on paper is one way of doing this. They can also be stored electronically in encrypted form, so long as you have reliable access to the encryption key and decryption tool.


How to determine if transaction is going to propagate?

Verify() verifies if the transaction is properly signed.

  Since Verify() doesn't really tell us if a transaction will successfully propagate

It is either untrue or you found a bug.

node.SendMessage(new TxPayload(tx)); should be perfect. However Stratis is currently building a Bitcoin .NET fullnode, with the lead of Nicolas Dorier, NBitcoin's creator, so you should be sure the method they are using is up to date. In their tests, they are doing it a little differently:

node.VersionHandshake();
node.SendMessageAsync(new InvPayload(transaction));
node.SendMessageAsync(new TxPayload(transaction));
node.PingPong();

I cannot explain why two SendMessageAsync and PingPong is there. You might want to figure out.

To make sure you might want to ask some other nodes if they have the transaction in their mempool you are connected to, to check the propagation.
Like this:

bool broadcasted = false;
foreach(var txid in node.GetMempool())
{
    if(txid.Equals(tx.GetHash()))
    {
        broadcasted = true;
    }
}

Alternatively you can ask your node only. I strongly suspect the transaction would not get into your (Bitcoin Core) mempool if there is something wrong, but you should not rely on that. Theory not always mimics practice.

Privacy concerns: if you broadcast a transaction without Tor, interested parties can note it and come to conclusions.


C-lightning Implementation password protect hsm while maintaing node access

In theory, the way that Lightning works allows for the use of a Hardware Security module to perform a lot of the logic which would allow for secret material to be stored externally on a secure device similar to a Trezor. However none exists at the time of writing, and persistent access to many of the files is likely required in the current software. The balance of a Lightning wallet should be for the moment considered to be an extremely hot wallet, rather than long term storage for this reason.


Where does the change go in blockchain.info when using a paper wallet?

(I assume here that you have a simple single-address paper wallet, like the ones from BitAddress.org. I also seem to have understood that you use the Blockchain.info app to make the payment.)

You should be able to decide yourself where the change goes (using the web-apps's Custom Send feature), but Blockchain.info's default behaviour is to send it back to the original address.

Especially if you have a paper wallet with only one address, Blockchain.info won't generate new change addresses for you.

So this is what happens:

  Let's say you received two transactions on your paper wallet. One for 2 BTC and one for 3 BTC. When you try to send 1 BTC to someone, the Blockchain.info app will:

  Take an output that has at least 1 BTC. This can be done randomly, but I suppose it will take the oldest one. If you don't have an output large enough, it will combine multiple ones until they have at least 1 BTC all together. Suppose the 3 BTC output is chosen.
  It will make a new transaction with the 3 BTC as input. It will create an output for the 1 BTC you want to send to another address. It will then have to specify what to do with the other 2 BTC.
  Considering that it only knows about one of your addresses, it will use this address for change. This means an additional output is created for 2 BTC, sending them (back) to your paper wallet address. (Note that Blockchain.info charges the minimal transaction fee by default, so this will be deducted from the 2 BTC change.)

So basically, you don't have to fear for losing your coins. And you will be able to spend the change from your paper wallet automatically.

However! This type of use, is not what paper wallets are intended for. Using Bitcoin, you are supposed to use a new address for every transaction. This is to ensure your privacy. When you use your paper wallet like this, everyone you ever made a transaction to or that ever made one to you will know your balance. This is obviously not what you want. Paper wallets are originally intended to store an amount of coins safely offline. When you want to use them again, your privacy ensured only if you send them back to a regular wallet that uses change addresses like it is supposed to.


How do blocks signal whether it supports segwit for the 95% threshold?

BIP141 – Deployment says:

This BIP will be deployed by "version bits" BIP9 with the name "segwit" and using bit 1.
For Bitcoin mainnet, the BIP9 starttime will be midnight 15 november 2016 UTC (Epoch timestamp 1479168000) and BIP9 timeout will be midnight 15 november 2017 UTC (Epoch timestamp 1510704000).

As we're currently on the second version of blocks, the version field will be showing 0x20000002 when signaling readiness for segwit and 0x20000000 when not. Readiness for segwit2x would show as 0x20000010 if only signaling bit 4 or 0x20000012 if signaling both bit 1 and bit 4.
BIP 9 requires 95% readiness signaled over one difficulty period (from reset to reset). Once that is achieved, SegWit will be activated on the network after the following difficulty period has passed.
It appears that Coin.Dance will show support in the linked graph, as indicated by the footnote "BIP 141 (voting starts on 2016-11-15)".
Note: In BIP9 signaling readiness only starts with the first difficulty retarget after the starttime. In the case of SegWit this is likely to be around the 19th of November.


Does getaddr.bitnodes.io find all Bitcoin nodes or only one node per mining pool?

getaddr.bitnodes.io shows only the reachable Bitcoin nodes in the network. These are nodes that make up the core data exchanges within the P2P network.

There is non-trivial distinction between mining and non-mining nodes at the protocol level among the network participants. Although having observed the first announcement of a block from a node may be a good indicator of a mining node.

It is impossible to tell the full size of the network that includes nodes behind firewall, or nodes that only accept connection from certain IP address/netblock, or nodes that have simply hit the set max. connections.


The decoding error is not really an error, per se, just an OP_RETURN. OP_RETURN is used for storing data in the blockchain and that's what this transaction is doing. It's not actually a spendable output, so the block explorer is getting confused and puts out a decoding error.


How multiple unfinished payments in single LN channel work?

The htlcs are just an additional output in the commitment tx which spends the funding transaction (as you described)

So assume Alice and Bob have a channel of capacity 0.1 BTC in which alice owns 0.03 BTC.

On chain you have a multisig wallet that has 0.1 BTC and offchain you have a commitment tx with two outputs.

0.03 to alice
0.07 to Bob

Let's assume Bob wants to pay Alice 0.015 BTC or wants to forward an htlc through Alice of the same amount a new commitment tx is negotiated (by which the old one is invalidated) that has 3 outputs

0.03 to alice
0.055 to bob
0.015 htlc clsimable by Alice if she can show a preimage within a Timelock and afterwards by bob

Now if routing is successful alive provides the preimage and a new state is negotiated in which the htlc output is removed but added to slice balance resulting in

0.045 to alice
0.055 to bob

Otherwise the htlc is removed but the amount is added to bobs output.

I omitted onchain fees for simplicity


Can someone explain the output from running Bitcoin Core unit tests on Mac OS please?

This is the output for all platforms at the moment, not just MacOS. To paraphrase from sipa on IRC:

The first summary is bitcoin's own summary: because of some hackery to run unit tests in parallel, it currently shows no tests (even though they are executed).
The second and third summary are the output from make check for the built-in dependencies, secp256k1 and univalue respectively.


How do I find a list of all Electrum public servers?

Electrum has a list of default servers which you can find here: https://github.com/spesmilo/electrum/blob/afa1a4d22a31d23d088c6670e1588eed32f7114d/lib/network.py#L57. However there is no list of all Electrum servers just like there is no list of all Bitcoin nodes. This is because Electrum servers are distributed like Bitcoin nodes and anyone can run one. Electrum has a peer discovery protocol which you can read about here: https://github.com/kyuupichan/electrumx/blob/master/docs/PEER_DISCOVERY.rst. The Electrum servers will connect to each other and ask each other for a list of other Electrum servers each peer knows about. So each Electrum server builds up its own database of other Electrum servers. Then when a client connects, it asks the servers it is connected to for a list of other Electrum servers and the client also builds up its own peer database. The message for getting a list of other Electrum servers is servers.peers.subscribe and you can read about that here: https://github.com/kyuupichan/electrumx/blob/master/docs/protocol-methods.rst#serverpeerssubscribe
So if you want to find available Electrum servers, you can begin with the default Electrum servers. Then ask each server for a list of other Electrum servers, connect to those, and so on and so forth. You do this to build up a local database of Electrum servers.


Bitcoin is completely transparent, with all transaction visible on the public ledger. Your statement “I imported my private key, and the wallet showed I had exactly…” suggests that you're making some incorrect assumptions about how Bitcoin works.

You don't need a private key to find out where payments have gone from your address — just look it up on a blockchain explorer web site to find what was paid to where and when. Incoming payments are also visible and traceable. Also, if you've made incoming payments yourself, you could use the same blockchain explorer web site to look up (i) the sending addresses and (ii) the addresses to which bitcoins were sent from the sending addresses.

Once you've tracked down all relevant incoming and outgoing addresses, you need to see which of them are in one of your wallets. If someone else has made an outgoing transaction from any of your addresses, then that person has gained illicit access to one or more of your private keys.

You will not get a definite answer until you've checked all of the sending addresses and destination addresses.

EDIT: You should avoid exposing any of your private keys to the internet until you're clear about how Bitcoin works. For large sums, it's advisable to keep the private keys permanently off internet-connected computers, and to learn about cold storage techniques that allow offline signing.


Are the huge transaction fees mostly mistakes or some other market indicator?

As mentioned, raw transactions are incredibly easy to screw up since you must explicitly pay yourself if you want change.

Here's a few scenarios besides unbalanced outputs which will produce huge transaction (Tx) fees:

forgetting to pay change
forgetting to convert to Satoshis in your code
misplacing the decimal (perhaps due to rounding errors)
swapping the fields using BCI or Bitcoin Core (this used to happen easily)
setting the Txfee variable in the core software on top of the built in Tx fee
a miner could spend time mining the current blockchain plus an additional non-broadcasted transaction with a high fee. If the miner succeeded, it would then broadcast and cause a spike in the graph. The miner wouldn't make any extra money, and it would be wasting time not contributing to a pool.


All the above steps are correct although. The only catch over here is that except for the Scripts, everything else is captured in the Little Endian format (for whatever reasons). So except for Step 5  and Step 9 all other data is stored in the Little Endian format. Took me a while to get to this answer! Just a small tip to keep in mind when implementing!


Multiple Currency Pairs returned in Single API Call


How to connect to a remote Bitcoin Core remotely

I found a plausible answer which did not work for me, but almost!

To start it up, follow this:

Install xpra both on the server, and on the client. On Debian-like OS it would be:

sudo apt-get install -y xpra

Temporarily stop the Bitcoin Core daemon on the server:

bitcoin-cli stop

Over the first SSH connection, start xpra on the server like this:

xpra start :7

Over the second SSH connection, start bitcoin-qt on the server like this:

DISPLAY=:7 bitcoin-qt

Connect xpra from the client to the server like this:

xpra attach ssh:SERVER-IP:7

After you have finished your work, follow this:

Close Bitcoin-Qt on the client
Press CTRL+C in this window and close it:

xpra attach ssh:SERVER-IP:7

Press CTRL+D in this window and close it:

DISPLAY=:7 bitcoin-qt

Press CTRL+C in this window and don't close it:

xpra start :7

Issue this command in the SSH session to the server:

xpra stop :7

And finally start your Bitcoin Core daemon again with or without a wallet:

bitcoind -daemon -disablewallet


How do I make Mulitbit show the exchange rate?

Bitstamp is currently offline for security reasons so that will be why. It'll be back within a day or two. Perhaps there's an option to switch it to use a different exchange's rates.. if not, there should be.


How to search for TXs using only the PublicKey linked to those TXs?

In fact, the usual way to consult blockchains is using the public key (purportedly the public key of the searcher) as the result will be all the transactions in which the key is involved:
https://www.blockchain.com/btc/address/1EwpnNBdFJykwxp6X8v9AfZnup9bgmrLE1

I suppose you're puzzled about the way to convert the public key to the public address, as the latter is the one used in blockchain explorers (I don't know if there's some one that can use the public key as input) :

You can use online tools like this one: https://iancoleman.io/bitcoin-key-compression/
Or some code, for example using my very simple Python scripts bitcoin-in-tiny-pieces, in this case, as the prefix of the compressed pub key is 02 we know that y is even, and as y is not necessary in compressed form we can use 0x00 as y coordinate:

:

$ ./bitcoin-address-from-public-key.py af31b067645ffe4eb534d609da80332e5c5747543fd97385e832c6fdf2d4b4bf 00
pubkey = 04af31b067645ffe4eb534d609da80332e5c5747543fd97385e832c6fdf2d4b4bf00

Compressed public key:
key_hash =      98f7fbd15e7b30a4ed55aec7baae40729967ba67
checksum =      c199dbe6fc87793152351aaa25b4ce28e395225dd3abcb4606b159e1ac26b346
key_hash + checksum =   0098f7fbd15e7b30a4ed55aec7baae40729967ba67 c199dbe6
bitcoin address =       1EwpnNBdFJykwxp6X8v9AfZnup9bgmrLE1

In case you want to ask directly blockchain.info from command line it is possible to combine various scripts:

C:\> bitcoin-address-from-public-key af31b067645ffe4eb534d609da80332e5c5747543fd97385e832c6fdf2d4b4bf 00 | bitcoin-get-address-balance

address         = 1EwpnNBdFJykwxp6X8v9AfZnup9bgmrLE1
total_received  = 1.57390781 Bitcoin
final_balance   = 0 Bitcoin

In these examples I've modified two lines in bitcoin-address-from-public-key.py with COMPRESS_PUBKEY = 1 and VERBOSE = False.


what's the link between iSCSI protocol and "stratum+tcp attacks

You most likely have a stealth Monero miner installed, I recommend checking your system for rootkits.


Send payment from one user to another via API?

If User A enters their bitcoin address to where they want to receive payment, User B can directly send to User A. There's no need for you to facilitate the transaction.


How to restore my old wallet from address and privatekey?

A step by step process has been explained in the below link

How to import private keys in Bitcoin Core

You need to sync your Bitcoin Core to see your balance.

If you want to access your BTC easily and without downloading the whole blockchain, then go to Blockchain.info

Sign up and after logging in, go to settings. Then in settings, you will see addresses as shown below:

Then click on Import Bitcoin Address as shown:

Then add your private key as it is in the form as shown:

Click import, and you will be able to use your BTC again.

Please follow that and let me know if you were able to retrieve the coins.


Do P2Pool nodes always accept real blocks over share blocks?

The p2pool sharechain and the bitcoin blockchain operate similarly, but independently. I do not believe there is any requirement that a "real" block be accepted into the p2pool sharechain.

What I think you are really concerned about is that the p2pool nodes may see a "real" block and not do their part to get it into the blockchain so that everyone gets paid. On that account you can rest assured.

In the source code, have a look at p2pool/node.py ("GOT BLOCK FROM PEER! Passing to bitcoind!") and p2pool/work.py ("GOT BLOCK FROM MINER! Passing to bitcoind!") Regardless of whether the new bitcoin block ends up in the p2pool sharechain, all nodes who become aware of the block relay it to bitcoind to help get it in the blockchain.


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

  When no -rpcpassword is specified, the daemon now uses a special
  ‘cookie’ file for authentication. This file is generated with random
  content when the daemon starts, and deleted when it exits. Its
  contents are used as authentication token. Read access to this file
  controls who can access through RPC. By default it is stored in the
  data directory but its location can be overridden with the option
  -rpccookiefile.

  This is similar to Tor’s CookieAuthentication: see
  https://www.torproject.org/docs/tor-manual.html.en

  This allows running bitcoind without having to do any manual
  configuration.

If all you use is bitcoin-cli without need for the RPC user/password stuff, you should probably just comment out or remove rpcuser=XXX and rpcpassword=YYY from bitcoin.conf and restart bitcoin. It "should just work [tm]".

If you need a specified rpc user/pass combo, you need to switch to using rpcauth instead of rpcuser/rpcpassword.

The rpcauth is described as

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

In share/rpcuser (on github) there is a Python script which lets you create such a user/password combo (note that you are given the password, you do not get to specify it yourself).

Grab that python script, then run it. E.g.

$ python ./rpcuser.py foo
String to be appended to bitcoin.conf:
rpcauth=foo:a14191e6892facf70686a397b126423$ddd6f7480817bd6f8083a2e07e24b93c4d74e667f3a001df26c5dd0ef5eafd0d
Your password:
VX3z87LBVc_X7NBLABLABLABLA

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


What are the possible ways may father may have managed his bitcoin, and how can I find this out? How could I find out if he was using a third party to keep his bitcoin? I have no idea what I am looking for...

The first thing you have to come to terms with is that there is no guarantee of success. If your father did all of his Bitcoin transactions on a LiveUSB drive, then buried the USB drive inside of a tupperware in his backyard, there is no way that you would know, unless you found it.

That said, there are some general ways to focus your search.

Examine bank statements: Look for cash withdrawals/deposits. Look for transfers to Bitcoin companies or unexplained transactions. Combine this with other methods, like web history. If he withdrew money on the same day that he visited Coinbase, that suggests that Coinbase might have some of your father's assets.
Ask third parties like Bitcoin exchanges to give you any assets belonging to your father: Make sure to attach documentation showing that those Bitcoins are legally yours. An estate lawyer can help you with this.
Look for known wallet programs: Bitcoin Core, Electrum, and Bitcoin Armory are all programs that might be installed on your father's computer. Also look at this list, and this less popular list.
Examine downloaded programs, installed programs, and web history: Continue your search for wallet programs by looking in the Downloads folder for any installation programs. Look in the Start menu. Look in Add and Remove Programs.
Don't forget smartphones: You can run wallets on phones too. Look for the apps on this list. (Click "Mobile" after you visit that link.)
Don't forget paper records: These can have Bitcoin wallets too. Look for a long alphanumeric string beginning with 1, 5, or L (capital "L").

Example: L1aW4aubDFB7yfras2S1mN3bqg9nwySY8nkoLmJebSLD5BWv3ENZ
Talk to people who your father might have talked to about Bitcoin, or how he kept his Bitcoin: This might include the primary beneficiary of the will, or someone who introduced him to Bitcoin.
Consider getting a forensic examination of your father's computers: Ask them how much experience they have assisting with Bitcoin related investigations and lawsuits. This can find programs that were installed, then deleted, or files that used to be present on the computer.


What happened to Krad Miner (the first javascript GPU miner)?

I purchased Krad Miner from the creator for the bounty cost of 50 BTC, and have released it as open source (Apache 2.0 license) on Github. Since the author has other projects using the Krad label, I have renamed it to Tumen Miner. I would currently consider it alpha-quality; I have not run it, merely cleaned it up as best I could.

In the short term, I plan to fund some minor testing and development on it. Longer term, I may start coding on it myself, if I ever find the free time. I welcome donations in the form of bug reports, code pull requests, and BTC to pay the coders.

Merry Christmas, coiners.


How to split the funds and send X% to fee wallet and the remaining funds to another wallet?

Problem solved using "sendmany":

<?php
#SENDMANY WORKING
require("easybitcoin.php");
$bitcoin = new Bitcoin("root", "000000", "localhost", "18332");

$account = "pizza";

$arrayRec = array("2MsWztzmaxnsU3xetrKsD4E9ep4r2gYtXj9" => "0.00111",
                "2Mt7dkQiyExrNQTXu9D3qoCpWg3J5TJy9Up" => "0.00222" );

$send = $bitcoin->sendmany($account, $arrayRec);

print_r($send);

?>


Electrum does not support bitcoin core wallet files. What you can do is dump all the private keys using bitcoin core and then import them into electrum. So first make sure that the wallet.dat file is in bitcoin core's data directory and then launch bitcoin qt, go to window menu > console and unlock your wallet:

walletpassphrase your-wallet-passphrase 300

Then dump the wallet to a file on your filesystem:

dumpwallet C:\path\to\new\file

Open that file using a plain text editor like notepad and you'll see your private keys in the row to the left. for example:

# Wallet dump created by Bitcoin v0.18.0
# * Created on 2020-01-16T09:48:08Z
# * Best block at time of backup was 115144 (0000000000000c76185d6ab9b04672082d8d9a876fbe9f908c63bd9ec5d02433),
#   mined on 2011-03-26T14:26:44Z

# extended private masterkey: xprv9s21ZrQH143K4UvtqjsWXxXBSDkxVbwePkX2ofaCRhrB2xBcMaFxnWBvZBKnTmgdc32cKc6PbmGCd1LB6X8K9JUGqqVGvxoWbEh231FB6x6

KyDFvw3oUNsJ1rFgAX4VQ5ffP5kpkeStU9kjyA3vAm5EpjF21TMh 2019-01-16T15:33:42Z change=1 # addr=3QKaCD7kQrwstfMvEYbv3iDuXPFLUUoj4p hdkeypath=m/0'/0'/874'
L3tWcLep3Vmhoq3eQFQioycDdyFvpdLBfmvBYHdSBH3bBepE5KR9 2019-01-16T15:33:42Z change=1 # addr=32ubG76VZ23TUWYf8ZGaU7MwFs1bJVbd3r hdkeypath=m/0'/0'/395'
KwQH7xszobX5ByvsTdFrhVrCshyZG3aLa1cagcv5rJghGHuQStuK 2019-01-16T15:33:42Z change=1 # addr=3GfzM8BRgQj6FtGvZZUfLKaE9KTfL39A1B hdkeypath=m/0'/0'/499'
L5Q4SnnKvvSoCDaz2GvQkWWLgjJx5aMXogRvjJHfQG9faXLmaNLM 2019-01-16T15:33:42Z change=1 # addr=3GWHaeXKBoAxa23MHRknaygDosJiWTiMP1 hdkeypath=m/0'/1'/159'
L3Bnvj1xTJFMzXsym7jBDMLbz5qhxotq8La4UxDdhKZnmZ4s1nw1 2019-01-16T15:33:42Z change=1 # addr=39WoYcrRnY9vRBuxSCmU4vtdEvnWRcn5QJ hdkeypath=m/0'/1'/918'

Your private keys are the strings that begin with K, L or 5 and are in the left most column.

Now to import them in electrum you download and install electrum and run it. The first time you run it it'll let you create a new wallet file. If this is not the first time you are running it use file > new/restore to create a new wallet file or simply enter a unique file name in the first window that pops up when you run electrum. During the wallet creation process choose "import bitcoin addresses or private keys" in the first step and in the next step enter the private keys one per line with either "p2wpkh:" for bc1 addresses or "p2wpkh-p2sh:" for addresses that begin with 3 prepended to each private key. If your address begins with 1 you don't have to enter a prefix. For example:

KyDFvw3oUNsJ1rFgAX4VQ5ffP5kpkeStU9kjyA3vAm5EpjF21TMh

becomes

p2wpkh-p2sh:KyDFvw3oUNsJ1rFgAX4VQ5ffP5kpkeStU9kjyA3vAm5EpjF21TMh

Follow on-screen instructions for the rest. Note that if you know exactly which addresses have coins sent to them you can import just those addresses' private keys.


You cannot. That feature has been was "temporarily" cancelled due to numerous reports of stuck transactions and growing awareness of its privacy limitations:

https://blog.blockchain.com/2014/03/17/shared-coin-suspended-temporarily/

http://www.coindesk.com/blockchains-sharedcoin-users-can-identified-says-security-expert/

I dont think the previous version of SharedCoin is ever coming back because its GitHub page is now gone:

https://github.com/blockchain/Sharedcoin


Lost my wallet password. Is there anything I can do?

Are you saying you still have a backup of the wallet.dat file ? If so, did you secured your bitcoin-qt 0.50 with a passphrase ? If not, install the latest version of bitcoin-qt, start the program once, exit it after it has appeared on your screen, and replace the wallet.dat file that has been created with the backup. Then restart bitcoin-qt and wait till the blockchain has been completely downloaded. This could take hours, but your BTC should appear again.


How can I accept Bitcoin as a payment without a 3rd party gateway

There are several solutions out there and currently the most hyped one is probably BTC-Pay. It also supports lightning, so you should be pretty future-ready.


Can I rely on multisignature addresses being future proof?

Multisig transaction types use standard CHECKMULTISIG opcodes (which have been present in Bitcoin since its initial release in January 2009) and P2SH addresses (standardized in BIP13 in October 2011). Both are very commonplace nowadays.

Consensus changes sometimes happen in Bitcoin, to add features or improve security. However, to the best of my knowledge, valid useful scripts have never been invalidated by such changes, nor do I expect such a thing to ever happen. Loss of money caused by a protocol change should and likely would cause an outrage.


Does the Bitcoin client generate bitcoins automatically?

Not really, there are a few issues you have to know about:

In order to generate Bitcoins, you have to be explicitly mining them. The standard client does not mine coins, it stores the keys you use to access them. You need to run a so called miner (like the GUIMiner) and you probably want to join a mining pool (like, Slush's Pool).
Even if you are mining Bitcoins, you probably won't make too many coins unless you have some good hardware. You should check out what hashing speed your hardware has and then punch the hash speed in a dedicated calculator.
If you want to mine coins by yourself (without pool), the chances of getting coins are pretty small, again, check the calculator and look for "Time to generate one block".

So in short, you need specialised software and hardware to mine coins, but it's not hard to get started.


Of course they make use of these datatypes. They have to because it is how the CPU is constructed, the CPU and its instruction set architecture (ISA) work with fixed amounts of memory. This can be different per instruction, but can not be arbitrary.

If you need to perform arithmetic on arbitrary sized words, your only option is a software approach called a BigNum library. Bitcoin uses a BigNum library too (I believe some Boost stuff, but correct if I'm wrong). Examples include but are not limited to: GMP, Java's BigInterger class.


However, if you do the withdrawal over their Binance network then the fee is only 0.0000014 BTC (a mere fraction!)

This transaction will involve withdrawal of a token on other chain. This token is not same as BTC. I have explained few things in this answer: https://bitcoin.stackexchange.com/a/100838/
Those options available for BTC withdrawal are misleading but there is nothing much we can do about it. I tried my best by creating a question on Stackexchange, sharing on Reddit and ask few people to tweet about it. Not sure what else can be done for the misinformation, marketing, misleading things etc. by altcoiners in this ecosystem.


How can I generate wallet files for multibit or armory?

For MultiBit you could use the command line utility called WalletTool that Mike Hearn wrote. You can use it to create bitcoinj wallets (which is what MultiBit uses).
There is a description of it here:
https://bitcointalk.org/index.php?topic=43616.msg1451177#msg1451177

You could wrap calls to it in your favourite scripting tool fairly easily I imagine.


How much does it cost in computing time/hardware to mine bitcoins?

It really depends on how much you're willing to spend.
Low end
Let's talk about the very smallest investment you could make for mining bitcoins: a Raspberry Pi. It can do 200,000 hashes per second, which might sound like a lot, but actually it's about 0.000001% of the total network hashrate.
Power: 3.75 W
Hashrate: 0.2 MHash/s
Cost: $35
(Note: this doesn't mean a RPi is useless for mining. You can use it as a host for your ASIC/FPGA miners.)
Mid range
Okay, CPU mining is bad, but what if we use GPU's?
Let's say we use a $162 graphics card, the 5830 from AMD. Let's throw in another $187 for case/motherboard/power supply. (Based off of this list I just threw together.)
Power: 175 W
Hashrate: 302 Mhash/s
Cost: $349
High end
Okay, let's get something specifically designed for bitcoin mining - the ModMiner Quad. It costs $1070, but it needs a host, so let's use a raspberry pi for that.
Power: 43 W
Hashrate: 800 Mhash/s
Cost: $1105
Ultra-high end
Okay, let's say that you have stupid amounts of money to use on mining hardware. Let's say that you can get a Bitforce Mini-Rig. (They are not being sold yet.) In fact, let's say that you can get 10 of them. This gives you 40% of the bitcoin hashrate.
Power: 15,000 W
Hashrate: 15,000,000 Mhash/s
Cost: $299,000
Sources for most of this
The lesson here is that you can spend any amount of money on bitcoin mining.


Bitcoin Server won't connect, timeout error

Issue solved. Simple firewall issue, always unblock 8333


How to apply my bitcoin address generated offline to online

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

Later, when you want to spend the funds sent to you, you would need to load the keys into a client.


It depends on the payout system that they are using. Most payout systems use some sort of payment based on shares. A share is a Proof of Work that a miner submits to the pool. This Proof of Work is a "full PoW solution". But instead of having to meet the target for the Bitcoin network, shares just need to meet an easier target set by the mining pool.

Pools track how much work and how much hashrate someone has based upon the number, frequency, and difficulty of the shares submitted to them. They then use that to compute the payout amount. This computation depends on the payout system being used (e.g. PPS, PPLNS, etc.). The different payout systems calculate the final payout in different ways, but they all use this concept of shares.

The shares themselves are not categorized by their value. A pool knows what difficulty a particular miner is mining at so all shares are treated as being at that difficulty even if the value meets some other difficulty. The hashrate can be inferred from the number and rate of shares being submitted at a particular difficulty; the value of the hashes are not important so long as they meet the target.


What are the advantages of using my own blockchain versus the Bitcoin blockchain?

The Bitcoin blockchain is maintained and secured by people throughout the world: miners. They take care of the security and validation of the decentralized consensus rules. The incentive for those people is the bitcoin reward.

Your own blockchain will need such people to secure your blockchain. How are you going to incentivize them to mine for your blockchain? Is it going to offer some service in return and/or a reward in an alt coin (like the majority of altcoin blockchains) ?

To answer your question, I see no reason to create your own blockchain unless you have a use case that noone have thought until now. There are several hundred different blockchains already. The vast majority are bitcoin clones that offer nothing new and have much weaker security than bitcoin. Others, like Dash offer nice additions and just a few, like Ethereum, offer unique functionality on their blockchains.

Even for massive financial institutions I would argue that they will not gain much if they build a blockchain in isolation. One application I see is several such institutions joining to support one blockchain. So they share the resources of securing the blockchain, they have part of transactions public for auditing but still control what is private and what not (permissioned blockchains).

We would need to know the requirements of the hypothetical project to be more specific. However, I do recommend you to read this and this, since it goes into detail on requirements for financial institutions and governments and permissioned blockchains.


how long does it take for a miner to validate account "balance" and how does it do it

Every full node in the network does the work of making sure a transaction is valid, whereas miners do the work of confirming valid transactions by including them in new blocks. Transactions can be validated very quickly, whereas being confirmed in a block may take some time.

Every node keeps a copy of the blockchain and in doing so it generates a list of unspent transaction outputs (UTXO). When a node hears about a new tx, it will check to see if that tx's signature cryptographically matches the relevant address in the UTXO. If it validates, then the tx is valid, if it does not validate, then the node will drop the tx, and not relay it to other nodes. For some good related info, check out the answer to this question.

This is different than a method that functions by "maintain[ing] an internal database that represents each member and their balances", for more info on this, check out the answer of this question.


i had the locktime field of the spending transaction accidentally set to 0 when in fact it is 272295 for this transaction.

{
    "hash": "7edb32d4ffd7a385b763c7a8e56b6358bcd729e747290624e18acdbe6209fc45",
    "num_inputs": 1,
    "input": {
        "0": {
            "funds": 990000,
            "hash": "40eee3ae1760e3a8532263678cdf64569e6ad06abc133af64f735e52562bccc8",
            "index": 0,
            "parsed_script": "OP_FALSE OP_PUSHDATA0(72) 3045022100ad0851c69dd756b45190b5a8e97cb4ac3c2b0fa2f2aae23aed6ca97ab33bf88302200b248593abc1259512793e7dea61036c601775ebb23640a0120b0dba2c34b79001 OP_PUSHDATA0(69) 5141042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51ae",
            "script_length": 144,
            "sequence_num": 4294967294
        }
    },
    "lock_time": 272295,
    "num_outputs": 1,
    "output": {
        "0": {
            "addresses": [
                "13fLLox43yXYvfoZadXpGbkTUXkW8bhqut"
            ],
            "funds": 980000,
            "parsed_script": "OP_DUP OP_HASH160 OP_PUSHDATA0(20) 1d30342095961d951d306845ef98ac08474b36a0 OP_EQUALVERIFY OP_CHECKSIG",
            "script_length": 25
        }
    },
    "size": 229,
    "version": 1
}

and the serialized tx with the txin 0 script replaced with the following script:

OP_TRUE
OP_PUSHDATA0(65)
042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf
OP_TRUE
OP_CHECKMULTISIG

should actually be:

0100000001c8cc2b56525e734ff63a13bc6ad06a9e5664df8c67632253a8e36017aee3ee4000000000455141042f90074d7a5bf30c72cf3a8dfd1381bdbd30407010e878f3a11269d5f74a58788505cdca22ea6eab7cfb40dc0e07aba200424ab0d79122a653ad0c7ec9896bdf51aefeffffff0120f40e00000000001976a9141d30342095961d951d306845ef98ac08474b36a088aca727040001000000

only the final 8 bytes that contain the locktime are different from before: a727040001000000

the new serial tx has hash:

607789be41392e6b12735a79bc9ea94573b4e39948badef18ca48e85ee15196d

and the signature and pubkey from before were already correct. these evaluate correctly in pybitcointools now, like so:

pybitcointools.ecdsa_raw_verify(tx_hash, pybitcointools.der_decode_sig(bin2hex(signature)), bin2hex(pubkey))


From a privatekey (ECC, 32Byte) to an P2PKH address:

Ensure the private key is a valid ECC privat key (libsecp256k1 function)
Calculate the public key from the private key (complex math. function, use a library)
Calculate the RIPEMD160 hash (aka Hash160) from the public key
Do a base58check encoding of the hash160 with a prefix byte 0x00 (for mainnet) or 0x6f for testnet

C code to explore:
https://github.com/libbtc/libbtc/blob/3331ec47ca4ad33e8f2e46e6f01dfbeae090c53d/src/toolfunc.c#L22


You need to set your computer to bridge the connection from the interface that it is using to connect to your phone and the connection to the ethernet interface your Antminer is connected to. In this way, you share your phone's internet connection with your Antminer.

To do bridging, typically you open up whatever network interface settings are available for your OS. Then there is usually an option to create a bridge, and from there, you just follow the instructions.


What is a hallmark node in NXT (nxtcoin)?

From the NXT wiki

  A hallmark is a "stamp of approval" for a Nxt node.  By creating a digital signature based on your IP address and secret passphrase (private key), you are verifying that your account "owns" a node and is accountable for it.  This helps protect the network from attack, and increases the network's trust in your node. You do not need to generate a hallmark if you are a casual Nxt user.  It is a very good idea for those who operate public Nxt nodes on dedicated, public servers. Hallmarks have no impact on forging.


You probably want this:

http://pastebin.com/ZYMNFAXt

It is a BTC miner that works in JS.  I took it from bitcoinplus.com

I don't think that this is economically feasible though - cpu mining is a total waste - unless you're looking to do something malicious with the code like having others use your tools that also happen to utilize CPU power to mine for btc underneath - which by the way is a sure fire way to get your software banned and shunned at large.  What you describe sounds like something deployed in a botnet or malware scheme - perhaps a bad android modded rom.


Only the parties in the channel need to keep track of what transactions happened in the channel; they are not broadcast publicly. They keep track of this by using a database local to the wallet only.


Can I make Bitcoin transactions without the involvement of a bank account whatsoever?

Could I use a Bitcoin wallet to receive money and store it there as long as I want (and possibly, send those Bitcoins) ?

Yes. You can buy Bitcoin at Bitcoin ATM where is located some places. You can find a Bitcoin ATM here.
Some ATMs allow you to buy and sell coins, but some does not allow you to sell.


I believe that your configs are ok, but when you launch lnd with the command like flags, you overwrite one parameter to a broken value.

Specifically, I am talking about the flag --bitcoind.zmqpubrawtx=8332, which should be --bitcoind.zmqpubrawtx=127.0.0.1:28333 instead.


How can I build custom bitcoin network and start with bitcoin codebase

Try reading the book Mastering Bitcoins by O'Reilly Chimera, this should help in understanding the bitcoin network, process and the principles involved.

Here is a guide (from bitcointalk.org) on how to make a new altcoin by cloning the bitcoin code.

I would suggest understanding the process before trying to make your own custom network


Always the same deposit address for a user?

The bc.info receive paments API will NOT work if you reuse addresses. The funds will still be yours since the addresses are hierarchical deterministic, but the callback notification will not fire. Your site will not know when a new deposit has been made unless you check manually. I suppose you could create a "refresh my balance" button for your users, but you'd need to put some restrictions on how often they can click so you don't exceed API request limits.


Does mining with multiple computers add up?

Yes, and that'll net you around 0.01 USD worth of BTC per year (as of January 2016), assuming your power is free.


The IRC bootstrapping method is deprecated and default off since the 0.6 release. It's still implemented and can be enabled using the -irc command line option.

The function of the IRC bootstrapping system will get replaced by DNS seeding and peer exchange, however.


My Bitcoin Qt is behind 7 years and 32 weeks

If you shut down your PC and then restart, the Bitcoin sync will pick up where it left off.

The latest transaction your Bitcoin currently knows about is 7 years old, but it won't take 7 years to catch up. It should be all caught up in a matter of days.

You will need a lot of storage for Bitcoin Qt. The current size of the blockchain is over 80 GB, and grows at about 4 GB per month. The blockchain is always growing so you will continue to need more space indefinitely.

If you want to use Bitcoin but don't want to store the entire blockchain forever, consider using an SPV client. See the question What is an SPV client? for more information.


How do I read the time field from the json-rpc calls from bitcoind?

It's unix time, the number of seconds since January 1, 1970. Your programming language probably has an easy standard way of converting it to a date.


What is min time to get first confirmation for transaction?

The time to get a confirmation varies by the transaction fee, the transaction priority, and the rate of block creation.  In the upcoming Bitcoin 0.10, two new RPCs will be introduced that will help you estimate the number of blocks a transaction will take to get confirmation based on fee and priority (see notes below).  The rate of block creation is unpredictable over short spans of time---a single block can be found seconds after the previous block or take more than an hour. Over longer spans of time, it averages about one block every 10 minutes.
If the transaction is ever going to get confirmed, it must be in some miner's memory pool.  If it was broadcast by a full node which has that transaction in its wallet, it will also be in that node's memory pool.  If you have access to either of those nodes, the getrawmemorypool will return the transaction.

As for whether it's in any other node's memory pool, that depends on whether or not it propagated to that node---assuming it pays a reasonable fee and is a standard transaction, it should propagate to most nodes within a few minutes (see BitcoinStats) and should stay there until the nodes shutdown.

Appendix

Here's an example of the new estimatefee RPC from Bitcoin Core 0.10.  The argument 6 says "tell me how much fee I need to pay per kilobyte to make it statistically likely my transaction will be included in the next 6 blocks":

bitcoin-cli estimatefee 6
0.00026809

Here's an example of the new estimatepriority RPC.  The same deal, except priority is based on per-byte.  (Here's a SE answer about priority.)

bitcoin-cli estimatepriority 6
728784383.01282048

And here's the chance of finding a block within a certain number of minutes:

Variance http://dtrt.org/tmp/en-block-variance.png

The code to produce that plot in gnuplot is: plot [0:60] 1-exp(-1/(600./60)*x) where 600 is the average number of seconds between blocks (10 minutes) and 60 is the number of seconds in a minute.


What is to stop a malicious attacker only mining 1 transaction per block?

With 5% of mining power you only mine 1 every 20 blocks. "The attacker" would somewhat slow the network down, but they wouldn't stop it from working. He would need to pay for all the harware he is using and he would deliberately loose the potential 0.5 BTC per block in fees.


I don't think StackExchange is the best place to ask for legal advice.

Logically, one would set up a company, get a business bank account and start their operations. However, it is very advisable to consult a lawyer first, as there are some legal concerns one should keep in mind, like the money laundering regulations that one should adhere to.


What are some commonly used commands for Bitcoind shell command line?

To find the list of most common commands type

bitcoin-cli help

for a list of all commands refer to the bitcoin client API.


For readers, this issue has been solved by @cdecker here: https://github.com/ElementsProject/lightning/issues/3359.

TL;DR: Use the --rescan startup parameter of lightningd.


I bought a bitcoin before my client sychronization was finished. Will I get the coin?

No, it will not matter.  Sync only affects the readiness of your client.  The purchase is reflected on the public blockchain, which has nothing to do with whether your client is ready or not.


Can I generate an offline Bitcoin wallet using only OpenSSL?

You are almost correct ;-)

You can create a public/private key using OpenSSL (in fact, some wallets use OpenSSL libaries to generate the keys). However, the bitcoin address is not your public key but a function of such public key. The exact function is defined here
https://en.bitcoin.it/wiki/Technical_background_of_Bitcoin_addresses

So, once you generate your pair of keys and compute the bitcoin address from your public key, you can receive bitcoins in such bitcoin address.


HTC Exodus - New phone Capable To Run Full BTC Nodes - is this possible?

1) >How can this phone act as a "FULL NODE" of BTC? Is this really true? You could throw away your full node on linux computer, and instead use the HTC phone?

A smartphone is just a lower power computer that fits in your pocket. For a computer to be a full node, it just needs to run full node software. Phones can already do this, and it seems like HTC is just pre-installing an app to run a full node on this phone.

In fact, right now you can run a full node on a phone yourself using the ABCore android app.

  -First, I have difficulty to understand how its going to store the hundreds of GB of data...

By using a high capacity MicroSD card. The phone will have a MicroSD card slot, and MicroSD cards can already have capacities as high as 512 GB. Alternatively, the node could be a pruning node so it doesn't actually store the entire blockchain history. Pruned nodes are still full nodes, they just don't serve historical blocks to other nodes.

  -I am thinking about the mining activity. how can this small piece of phone chip do mining if it cannot achieve high hash rates?

Full nodes are not necessarily miners. You can have a full node without mining or producing any blocks at all whatsoever.

  2) Is such a fullnode phone helpful and positive impact on the overall btc network (what are the positive impacts?)?

Yes. Any full node is helpful to the network. Full nodes validate and relay all blocks and transactions they receive. More full nodes means more people are verifying that blocks and transactions are correct. More full nodes in general help make Bitcoin more robust and decentralized.


coin seems to have gone to a duplicate address

bitcoind (and hence presumably also americancoind) keeps a separate database of "relevant" transactions so that it does not have to search the entire blockchain all the time.  Since you added a new address by copying wallet.dat, the daemon may never have figured out that transactions involving that address are relevant.

Try rebuilding this database with americancoind -rescan.  You can also try americancoind -reindex to rebuild all databases (this may take a long time depending on the size of the blockchain).

It's extremely unlikely that someone else managed to generate a private key with the same address.  If this were at all feasible, the currency would be useless.  Moreover, even if this had happened, what you should see would be your transaction sending one coin to Azpv... and then another transaction created by the attacker, sending the coin to an address controlled by him.


Obivously, the question and this answer are subjective based on personal experiences. I've only used LND and C-Lightning, which are arguably the most popular. The following is a summary of my experiences:

LND

LND is built in GO and requires a special version of Bitcoin built in GO as well. The install process is well documented and pretty straightforward. However, I had issues with configuring Glide, which is required to install the dependencies. Additionally, I was hesitant to rely on the GO version of Bitcoin to stay supported. Supposedly, there's a pull request to make the changes needed in the Core version, but still... I considered it a risk. Once past the dependency issues, LND worked great. I would have continued using it, but I wanted to try other implementations.

C-Lightning

Since I run Core's version of Bitcoin and prefer my daemons to be in C (again, an objective position based on personal experiences), I tried C-Lightning next. There weren't any issues with installation on Ubuntu and it's been purring along since. The only problems I've had are around documentation, which I'd say LND has done a slightly better job with so far.

In summary, the above Lightning implementations are great and I would recommend either. Both have fantastic teams behind them and are consistently committing updates.

I ended up sticking with C-Lightning because it had the architecture and dependencies I'm most comfortable with and have the most experience with (Bitcoin Core and C). Since both implementations are still a work in progress and documentation is ongoing, I find myself continuously in the code figuring out errors and options. If I was more of a GO developer, I'd probably choose LND.