Can i create wallet services of bitcoin core wallet

Is it possible to create wallet url services for bitcoin core wallet

Yes it is possible.
It is possible because Bitcoin core has a Remote Procedure Call (RPC) interface usable with many different programming languages, including those popular for creating back-end web-services accessible from web-browsers.
The developer reference says:

The Bitcoin Core RPC service listens for HTTP POST requests on port 8332 in mainnet mode or 18332 in testnet or regtest mode. The port number can be changed by setting rpcport in bitcoin.conf. By default the RPC service binds to your server’s localhost loopback network interface so it’s not accessible from other servers. Authentication is implemented using HTTP basic authentication. RPC HTTP requests must include a Content-Type header set to text/plain and a Content-Length header set to the size of the request body.
The format of the request body and response data is based on version 1.0 of the JSON-RPC specification. Specifically, the HTTP POST data of a request must be a JSON object

Exactly how you would write new software to use this is a software-development/programming question. For example see How to communicate between Java and bitcoind?

URL services of wallet so that i can run in web

No, the API is RPC based. Maybe you are looking for something with a RESTful interface accessible from an ordinary web-browser or a ready-made custodial-wallet HTTP service - in that case I suggest searching using an Internet search engine of your choice.


send to online wallet ie spend bitcoin from cold paper wallet ,without losing the remainder

Client normally means the wallet

You don't need to give money to someone to make you a wallet. There are many free wallets like electrum , greenwallet, coinomi which create a address for you and also make you the owner of your private keys

You also don't need to send the money from your paper wallet . If you are able to destroy you paper wallet safely , you can sweep the bitcoin from your paper wallet to coinomi wallet .

No need to make a new private key every time .


Use TAILS Linux. From the website:

  Tails is a live operating system that you can start on almost any computer from a USB stick or a DVD.

  It aims at preserving your privacy and anonymity, and helps you to:

  use the Internet anonymously and circumvent censorship;
  all connections to the Internet are forced to go through the Tor network;
  leave no trace on the computer you are using unless you ask it explicitly;
  use state-of-the-art cryptographic tools to encrypt your files, emails and instant messaging.

Even Edward Snowden uses it.


What aspects of Money Order laws will apply to merchants who use Bitcoin?

In the U.S., FinCEN just determined that decentralized virtual currencies are not like money orders.

Money orders are the mechanism enabling the moving of currency or value that serves as currency from one person or location to another person or different location.

Using bitcoins for making a purchase from a merchant is not the same as moving currency.

Now if instead of providing goods or services the merchant instead delivers currency elsewhere, then that would be transmitting money and in the U.S. State laws specify the restrictions on money transmitters.  FinCEN requires that a money transmitter register a Money Service Business (MSB) and keep records according to guidelines.


blockchain.info says password is incorrect, and wont allow me to access my BTC

What do you mean the btc are not there, does a transaction show up when you used the phrase to recover? if so then it was probably stolen, if not, then you used the wrong phrase.


Will transaction fees eventually make microtransactions not worthwhile?

A change to the 500KB per-block limit can be done with updating the client without causing a fork, but that only goes up to a 1M block size.  To exceed that 1M limit would require a hard fork and thus it is possible when that limit approached, a larger limit might never happen.

Bitcoin could hit those limits before really even "taking off" even.

Bitcoin was never architected to be a microtransaction system.  It works fine as one for now but eventually that use might no longer be feasible.

There are currently methods to use bitcoins for microtransactions without touching the blockchain.  For example, Mt. Gox BTC redeemable codes have no fee (currently) and could be used, presumably, for microtransactions.  Various approaches will solve the microtransactions problem better than Bitcoin does.

In the meantime, businesses that do use microtransactions can get off the ground by taking advantage of the fact that Bitcoin's is still well below the per-block capacity limit and thus microtransactions are nearly free.

Build a customer base in a market today, solve the technical problems tomorrow.

With Satoshi Dice's growth, for instance, there might soon be enough demand to launch a alternate blockchain for its microtransactions with properties that are useful for that special case.


When closing the channel for LN - how to calculate the fee for the blockchain transaction?

If worried about the original closing transaction having too high of fees:

The signed closing transaction that you're worried about (with too high of fees) has not yet been broadcast to the network, so no harm no foul (yet).

If the two parties are cooperative, they can just agree to sign a new transaction with lower fees and broadcast that to close out the payment channel (this should be advantageous for both of them anyway).

If the two parties are NOT cooperative, it might be best to just broadcast the original closing transaction and eat the fees.

  Is replace-by-fee possible for LN's closing transaction?

Replace-by-fee only applies to transactions that have already been broadcast to the network. Also, they only help if you're increasing fees, not decreasing them, so it doesn't apply to this situation.

If worried about the original closing transaction having too low of fees:

If the two parties are cooperative, you can just sign a new closing transaction with higher fees and broadcast that.

If the two parties are NOT cooperative, just broadcast the original closing transaction and hope that the transaction does not get stuck in the mempool. Also make sure that the original closing transaction has a high enough fee that there is little worry about it getting stuck in the mempool. Even somewhat non-cooperative parties should be willing to re-sign and lower the fees to close out the payment channel. Overall, this is the trickier scenario to predict.

  Is replace-by-fee possible for LN's closing transaction?

Again, replace-by-fee only applies to transactions that have already been broadcast to the network. Also, this would require a cooperative party.


How do miners determine if a wallet has sufficient funds

The blockchain does not see wallets at all.  It only sees spent and unspent transaction outputs (txouts).  A txout is either completely spent or completely unspent - it cannot be "partially" spent and so there is no notion of balance.  (If you want to spend less than the full value of a transaction, you create a change output.)

In your example, there are now two txouts that B can spend.  The "private key" B would actually be a master private key - each "derived" key is really a keypair consisting of a private key B.1.priv and a public key B.1.pub.  So in order to spend the txout that was paid to B.1, user B must sign a transaction using the private key B.1.priv.  If B wants to spend the entire 1 BTC, she can create a transaction with two inputs and signed by both B.1.priv and B.2.priv.

It is true that nobody except B (and maybe A) knows that both txouts are spendable by the same person.  That is fine - they don't need to know.  This is considered a desirable privacy feature.

If B should lose B.1.pub, no problem - it can be regenerated from B.1.priv. This is part of how ECDSA works.   If she should lose B.1.priv, it can be regenerated from the master private key B.  If she loses the master private key, she is out of luck and cannot spend her coins.


How do different implementations of the Bitcoin Cash client know which type of coin they're processing?

They don't.

They have different, but sometimes common, consensus rules. There are two competing fork blocks with different transaction ordering rules and some transactions with either OP_MUL or OP_DATASIGVERIFY. One of the blocks are valid for that client, followed by many valid blocks. Sometimes, they process transactions of both network, as the replay protection is optional. They simply process if something is valid, or not if it's not.


How can I export my private key from Block.io?

Log in, click Settings -> Private Key access -> Access private keys. You will recieve e-mail confirmation with link to private key access.

Then you will have to transfer your funds to another wallet. This is how I've claimed my BCH. The same will be for BTC but you shouldn't change Network and should set larger fee.

First of all you should get from security settings of you block.io profile: "Redeem Script Hex", and two private keys. (actually you will have some more strings and values but only these three required to claim your BCH).

After that:

Go to http://www.motelmaya.com/BCH/BCH.html

I know this seems strange and may cause doubts and believe me I wasn't sure too. But the real deal was: getting BCH (I had 0,5 of BTC at block.io wallet) or getting nothing.

So, then:

Click +TX
Enter the redeem HEX that you received from block.io in the first box (Address, WIF key or Redeem Script)
Click on "Advanced options" -> "Network" -> Settings and change the network to "Bitcoin Cash (mainnet)"
Click New -> Transaction or +TX once more.
Put in the amount you want to transfer and the address you are sending to (your new BCH wallet I guess - I've used my blockchain.info wallet address), make sure that the fee is not too high (I've entered something like 0.000317
Click "Submit", you will get a long HEX string. copy it
Click "Sign", paste the copied string, paste the first private key from the  block.io to the "Private key" field, click "Submit", copy the string.
Paste the string into the second box (below the "Private key" field), paste the second private key from the block.io, click Submit, copy the output
Go to "Broadcast", paste the string and click "Submit".

That's it. You will recieve TXid which you will be able to check at https://bitcoincash.blockexplorer.com

Actually all regards should go to ohad serfaty but I can't comment the post where he advised this method because of low reputation.

Good luck!


How do you calculate fees with bitcoind?

Fees are the difference between the total inputs and the total outputs.

To retrieve the total out: Let’s make a getrawtransaction request with this transaction id, and add all the "vout" values together to get the total.

The request will look like this (use "1" at the end to return JSON):

  bitcoin-cli getrawtransaction
  10ff046cb00483c4b4222fe3d1798b98d5a17af55ff7fc0a6e1e2398b86c13bd 1

In this example there is only 1 output:

  "vout": [
    {
      "value": 3.60555045,
      "n": 0,
      "scriptPubKey": {
        "asm": "OP_DUP OP_HASH160 ccc497f13cf4c598201e4b12353649be44172b01 OP_EQUALVERIFY OP_CHECKSIG",
        "hex": "76a914ccc497f13cf4c598201e4b12353649be44172b0188ac",
        "reqSigs": 1,
        "type": "pubkeyhash",
        "addresses": [
          "1KfiMh5SDTYBGrDDHfSegrHkkWZQ2mSXtP"
        ]
      }
    }   ], ...

To retrieve the total input: We need make an additional request for each input to get the input values. So in this example there is one input:

  "vin": [
    {
      "txid": "b13b4765e46228f3239858c9f18e766b72bed24a56c52b9692e7f021c376e7ce",
      "vout": 1,
      "scriptSig": {
        "asm": "3044022044ca9b69f8c14eccd400be62a5320c8938aee176033c91f4cb17f57b14a20de402206e520a6398b01467772395557415bde2b7879e0e554eb6306718aa81fae5247d[ALL] 0373b9e8c6bd75e3029c00d629baff141895a4444d55894d48f0426842608d8e4d",
        "hex": "473044022044ca9b69f8c14eccd400be62a5320c8938aee176033c91f4cb17f57b14a20de402206e520a6398b01467772395557415bde2b7879e0e554eb6306718aa81fae5247d01210373b9e8c6bd75e3029c00d629baff141895a4444d55894d48f0426842608d8e4d"
      },
      "sequence": 4294967295
    }
  ],
...

We are interested in the "txid" and "vout". We need to make an additional getrawtransaction request for this id, and look at the value of the 2nd ouput (since vout is 1). That output is here:

{
  "value": 3.61007045,
  "n": 1,
  "scriptPubKey": {
    "asm": "OP_DUP OP_HASH160 02952d768c840f30a49e20af5bd4219210a14d24 OP_EQUALVERIFY OP_CHECKSIG",
    "hex": "76a91402952d768c840f30a49e20af5bd4219210a14d2488ac",
    "reqSigs": 1,
    "type": "pubkeyhash",
    "addresses": [
      "1Ef4RcUBZfrFyoVxZeU7tH5dRd9SXcJHN"
    ]
  }
}

Now we can subtract the total inputs from the total outputs to get the fees: 3.61007045 - 3.60555045 = 0.00452 in fees


Does leaving your wallet unencrypted mean that all the private keys bundled in the wallet are susceptable to loss of confidentiality?

When you export a private key, you are essentially just exporting a plain text private key (you have to type in a password to export is a giveaway of decryption happening). So yes, an unencrypted wallet has all the private keys plain text no matter what.


I use IT Itch. They allow both anonymous domain registration and bitcoin payments. I also use them for my VPS web hosting and I find them pretty fantastic.

But be aware that some domain names can't be purchased anonymously. For instance, some domain registries require things like tax numbers or proof of citizenship, so make sure you choose a domain that supports anonymity (like .com, .net).


What protocols are built on top of Bitcoin?

New information:

See David Schwartz's response at examples-of-asset-backed-virtual-currencies for a short description of Ripple.

Older information:

The List of all Cryptocoins  mentions both Mastercoin (MSC) and Ripple (XRP).  This URL is dated, and Ripple is now open sourced. The ripple video is informative.  According to Wikipedia, Ripple is currency agnostic. Ripple has network consensus times of 2 to 5 seconds (which is much less than 2.5 or 10 minutes) and already has 100 billion units of XRP which probably explains why it is not visible at Mining Revenues. I've yet to dig into the Bitcoin Ripple Open Forum.

The Central Banks are scared that an open source architecture is emerging that will be redefining the FIRE Sector, and thus threatening their monopolies.  The FIRE Sector is starting to go through a very disruptive innovation revolution with the genius of Open Source Technologies. If these distributed technologies are implemented properly, we could be on the verge of another 1776. I would love to see the diagram below updated and refined by the Open Source Community so we all have a bigger picture road map to focus our efforts.


Can bitcoin transaction data be used to study markets?

There are no academic papers on Bitcoin market behavior.

If Bitcoin or another peer-to-peer currency ever develops a significant closed economy, then it would be a rich source of information on the behavior of markets and economies, as the transaction timing, value and locations (for both the sender and receiver in a transaction) of Bitcoin transactions is publicly broadcasted -and in the case of timing and value, already being recorded in the block chain.

Furthermore, information about the full Bitcoin transaction history of each pseudonymous individual can be deduced through network analysis techniques.

While Bitcoin is reserved for niche use and doesn't form a closed economy though, the data from the transaction history is of limited use for studying real world market and economic behavior.

Also, in the future the visibility of Bitcoin transaction data could be reduced if many participants in the Bitcoin economy begin to rely on private layers built on top of the Bitcoin network to conduct their transactions through, which is likely to happen given the implications for privacy that visible transactions create.


What are the methods for getting an old, used windows P.C. ready for secure Bitcoin usage?

If a reinstall is not an option for you then you should do the following:

Requires: CCleaner

Boot in Safe Mode so that any malware start up entries don't get executed.
Use CCleaner to clean up disk space and registry.
Inspect the Start Up list for any suspicious/unwanted entries and
remove them.
Reboot the computer.
Use any anti-virus to remove any present malware and clean infected
files.

This should clean your old pc.

Source: Experience


as @mcccs mentioned i changed the network fee to a custom value and it show more fund to transfer

when i set the fee to max (137) the transferable fund is 4.15$


Exporting secure seed using bitcoin core

Bitcoin Core uses BIP32, but does not implement BIP39 - As such, you cannot export a set of seed words, since the seed to BIP32 master key conversions is one way only, and it is not possible to obtain seed words if you only have the master key.

You should simply back up the master key itself, and import it into another instance of bitcoin core when needed. The dumpwallet command will help you with that.


It's the price per BTC for the specified order. The "type_str" field specifies the type of order ("ask" or "bid"), the currency specifies the currency in which the price is quoted.

The example listed refers to an "ask" order of 14.43 USD/BTC.


Does bitcoind re-index or reverify downloaded blocks upon startup?

It walks back a small number of blocks and re-verifies them, this ensures there's no obvious corruption and warms the cache. It takes a few tens of seconds at maximum on most hardware. You can adjust or effectively disable this using checklevel=1, but it is generally inadvisable to do so.


Does Decentralized Cryptocurrency Exchange work for Bitcoin?

Yes, bitcoin have a simple but working scripting language so why not ? The most famous one is Bisq


How to get BTC transfer amount from raw tx using bitcoinjs

The transfer amount (BTC) is, (somewhat dependant on the library used),  most commonly denominated as "value:"
Read: the outs => value: *

 {
      value: 1000000,
      script: <Buffer a9 14 14 ea 69 2e 87 76 ec c6 2e 6a aa a1 7d cc d2 8f f3 30 b7 46 87>
    },
    {
      value: 3299775,
      script: <Buffer a9 14 73 e2 99 78 43 31 1e cc 32 b5 ac 38 ef c9 9b b3 ae 54 bc 7c 87>
    }

Where the value is most often denominated in satoshis (a single unit.). But, some block explorers (blockchair) or other libraries will denominate in single units of Bitcoin, as is done below. (10^8 satoshis - 1 BTC ( 100 mil))

1000000 = 0.01BTC
3299775 = 0.03299775 BTC


Is there a proposed name for 1e-4 bitcoins?

Well, a thousand grams is a kilogram.   A thousand sats (Satoshis) is a kilosat.  So 10,000 sats would be ten kilosats.   Maybe that would work.

This assumes when that is needed we are moving away from fractions of a bitcoin and moving towards multiples of Satoshis.

There was also proposal to call it a milray.  And a number of votes were cast for calling it a lilbit (as in Littlebit).

When a name is found, the entry for it in the FAQ should get updated.


Beginning the process of buying bitcoins

If you want your wallet to be as safe as possible, you'll have to store it cold, i.e. create a Paper Wallet. There a several options with different safety levels:

Use an online generator, like Bitaddress and print the generated address/key
Use an offline computer with a ubuntu-live cd to generate address/key and print it

You can send bitcoins to this wallet, even though it's created offline, and never has seen the internet, or vice versa. For further reading about this, I recommend the first link, as there are some recommendations you should read first.

Buying bitcoins with Tor is a little more complicated. I never did it, and couldn't find anything about it. PrivateInternetAcces said Bitinstant was a good option, but the article is 2 years old, and bitinstant returns a white page. A local trade is a good option, find some people on LocalBitcoins


What is the math behind a private key BASE58 (P2PKH)

Taking a private key like this, I would like to understand how I can verify if it is valid, what the procedures are, because I would like to write a script to play around with this.

Check if the string has valid Base-58 characters (123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz)
Decode the string to get the byte array using Base-58 encoding while removing and validating its checksum (last 4 bytes). Refer to the wiki link you posted for details.
Take the first byte and check if it is using the expected (version) value (128 for MainNet, 239 for TestNet).
Check the remaining data length (without first byte):
4.1. If it is 32 bytes, that is the key
4.2. If it is 33 bytes, remove last byte and check if it is equal to 1, the rest is the key
4.3. If the length is anything else, it is invalid
Convert the 32 bytes you have from step 4 to a 256-bit integer using big-endian definition
The value of step 5 has to be >= 1 and <= 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364140


While using Open Transaction as a Decentralized Exchange, how can one guarantee sanctity of the trade carried out by the parties?

This is more of a legal than a technical question. All Bob needs to do is to have Alice provably transfer her shares. For example, Bob could demand that Alice associates her smart contract keys with her real identity through some means such as key signatures. That way, they can put their dispute before traditional court. Then the transaction is left to the judgement of a judge.

In future cryptocurrency systems, to solve this problem, and to not rely on subjective law, we envision share ownership to also be verified on the blockchain. Colored coins and turing-complete blockchains allow shares to really be owned by their respective owner. When decentralized anonymous organizations develop, blockchain ownership of shares will also directly and self-enforcibly give the cryptographic right to voting and dividends.


There was a 3 part article in JavaWorld about bitcoinj in 2011. It is obviously a bit dated but is a thorough introduction to it. First part:
http://javaworld.com/javaworld/jw-11-2011/111122-bitcoin-for-beginners-part-1.html


Can someone explain this weird mining activity?

It has no transactions other than the coinbase transaction. However, the transaction's coinbase output is 0 BTC. Here's the valuable piece of information that you are looking for:

  Coinbase outputs may be set lower than the max. value (12.5 currently), and the block will be valid (if the difficulty is lower than the target, as always)

Also look at: https://btc.com/0000000000004c78956f8643262f3622acf22486b120421f893c0553702ba7b5

BTW, the miner loses money, for the price of being "cool".


Empty wallet after making a Bitcoin purchase

Fill in the address in blockchain.info and see where the funds have gone.


Storing my bitcoins on an offline computer

I have a mac that I never use, would storing my bitcoins on a wallet on that laptop and then only connecting it to the internet when I am ready to transfer money be safe? Is there any reason not to do this?

Your laptop needs to catch up every time you want to make a transaction, which is not good.

The ideal solution would be Bitcoin Armory, which is designed for this type of thing:

How to sign a transaction using only an offline computer?

Find the mac version here - but note that it's in beta, hence why it's not on the main site.

  Would I get an error from the P2P network or would I have duplicate coins

The second time you spend the coins, other nodes will reject it.


p2pkh vs. p2pk keeping public key private

Bitcoin addresses, and the public key by extension, should ideally only ever be used once. So your time of exposure of the public key in P2PKH  is the time between when the spend is made and when it confirms. For P2PK the public key is always known to everybody. There's a considerable difference between the two.


Would more Full Nodes help scaling and transaction speed?

No, the number of full nodes is decoupled from capacity and fees.

Transaction capacity is a function of transaction size and blocksize. Blocks occur roughly every 10 minutes and have a fixed size. Transactions also have a more or less fixed size, so capacity is currently not going to change unless either transactions get smaller (e.g. Schnorr signatures, MAST) or blocks get bigger (e.g. SegWit, blocksize increase).

Fees are a function of supply and demand of blockspace. Since the number of transactions that can be confirmed is limited over time, transactions with higher fee per byte get preferred. Especially when the network is unlucky and blocks are slow for a period the transactions waiting to be confirmed may build up intermittenly, which makes the average fees in blocks peak.

Full nodes are still important: Besides allowing their owner to trustlessly use Bitcoin, they serve as information providers to thin clients. If their number would be much smaller, the full nodes would be overwhelmed by these requests.


Can you assume that all inputs to a Bitcoin transaction are controlled by the same person?

No.

In practice, it is likely, but in several more complex use cases, transactions can be jointly constructed.

For example CoinJoin implies combining both inputs and outputs from multiple people together into a single transaction to make it less obvious which outputs belong to whom.


How much of BIP 62 ("Dealing with malleability") has been implemented?

Most of the fixes have been implemented in Bitcoin Core's master branch, or earlier versions, as standard transaction checks that prevent default Bitcoin Core nodes from relaying or mining transactions that break the rules.  Here are some details:

  Non-DER encoded ECDSA signatures

These are currently non-standard, so Bitcoin Core nodes (since 0.8.0, IIRC) by default won't relay or mine them.  When the BIP66 soft fork is successful and version-3 blocks become mandatory, this rule will be enforced on all confirmed transactions.

  Non-push operations in scriptSig

These are also currently non-standard, and are completely forbidden for signature scripts spending a P2SH output.  I don't know when they were first made non-standard, but I suspect it was 0.8 or before.

  Push operations in scriptSig of non-standard size type

These were made non-standard in 0.9.0, where they're called "non-canonically-encoded serialization sizes".

  Zero-padded number pushes

This will be non-standard in 0.10.0.

  Inherent ECDSA signature malleability

This is currently allowed, and several popular Bitcoin programs still do create full-range signatures.  Getting those programs to update to using only low-S values before BIP62 is implemented would be nice, but it isn't critical because the new BIP62 validation rules will only apply to version 2 transactions.  Programs that don't update will still be allowed to create version 1 transactions even after the soft fork.

The advantage for programs using v2 transactions is that they can generally be constructed to be non-malleable by third parties, so v2 transactions can more safely be used for applications like the initial bond part of establishing a micropayment channel.

Edit: an earlier version of this section incorrectly said getting programs to create only low-S signatures was critical.  Thanks to @PieterWuille's comment below for pointing out my error.

  Superfluous scriptSig operations

Non-standard since 0.6.0.  In master, this test has moved here.

  Inputs ignored by scripts

This is partly addressed in 0.10.0, but see the note below.

  Sighash flags based masking
  New signatures by the sender

Per BIP62, "The first six and part of the seventh can be fixed by extra consensus rules, but the last two can't. Not being able to fix #7 means that even with these new consensus rules, it will always be possible to create outputs whose spending transactions will all be malleable."

In short, rule 7 doesn't have a complete solution and rules 8 and 9 don't have any solution.  (Indeed, the malleability from 8 is a feature, and fixing 9 would require a different signature scheme.)


Where can I find altcoin inflation rates?

Maybe this sites will help this is from which ones I get all info normally
https://etherscan.io
or
https://www.blockchain.com/explorer
or
https://www.coinlore.com/


bitcoin-qt stops subsequent RPC calls, then won't shut down

I was having a different somewhat related problem and stumbled across this thread. It seems that bitcoin-qt creates a .lock file to make sure no other program is using the same folder. If the app crashes, the lock file might not be deleted which could cause it to throw up an error about the program already being open. The .lock file is hidden, though, so you won't see it unless you have hidden files turned on. Deleting the .lock file might fix this for you.


sudo add-apt-repository ppa:luke-jr/bitcoincore
sudo apt-get update
sudo apt-get install bitcoin


How do I know which exchanges are serious actors?

For finding Bitcoin exchanges, check here (exchanges are ordered by volume):
https://www.cryptocompare.com/coins/btc/markets/USD

There are two types of Bitcoin exchanges to consider:

Centralized
Decentralized

With decentralized exchanges, users keep their assets local, and so there is no need to trust a central authority. At the present time, it is harder for decentralized exchanges to build up liquidity. This means that the trading volume is lower and the bid/ask spread is wider.

Here are couple of resources regarding decentralized exchanges:

0x Protocol for building decentralized exchanges for Ethereum
assets
Waves platform DEX - decentralized exchange
https://www.cryptocompare.com/exchanges/guides/what-is-a-decentralized-exchange/

Now, with centralized exchanges, the central authority running the exchange must be trusted. The process of deciding who to trust is less straight forward. Here are some attributes to consider when evaluating a centralized exchange:

The people running the exchange or company
The country where the exchange is subject to regulations
The security practice the exchange uses to protect customer assets
The insurance policy offered by the exchange
The history of customer issues at the exchange, reviews etc.
The transparency the exchange offers
The communication facilitated by the exchange with its customers

I have put together this YouTube playlist discussing some of these attributes with respect to GDAX, Coinbase's exchange: GDAX and Coinbase cryptocurrency exchange - Overview


Where are Bitcoin online casinos hosted?

This is sort of a general question, so to simplify I'll pick a specific example: SatoshiDice.com
SatoshiDice itself
does not list their location.
DNS
A whois lookup shows that they host their DNS with a company called Public Domain Registry. Using their whois lookup shows that the domain name is registered to privacyprotect.org
Jurisdictions
Public Domain Registry: Beaverton, Oregon, United States
Privacy Protect: Claim an address in Austrailia, but also have a telephone number that begins with Denmark's country code.
Hosting
Their IP address resolves to 54.247.163.243, which is part of a /16 allocated to Amazon, and reverse DNS shows that it is part of their elastic compute cloud. The ARIN/amazon.com whois/amazonaws.com whois all have mailing addresses in Seattle. However, the servers are not located in seattle. A traceroute shows that this ec2 server is hosted in their eu-west-1 region. (i.e. Ireland)
Jurisdictions
Amazon: Seattle, Washington, United States
Amazon's servers: Dublin, Ireland
Conclusion
Maybe. What I know about international law could fill a thimble. But if you wanted to shut them down, there are a lot of jurisdictions that you could attack them in.


trying to get text of a field in json rpc 2.0 response into ar PHP variable

To get the address you would do:

$result = json_decode($response, true);
$address = $result["result"]["address"];


this bitcoin address contains transactions which may be double spends. You should be extremely careful

One of the transactions was rejected by blockchain.info and one got through.

There was a "malleability attack" going on just recently, that's probably the reason.  The attacker can take legitimate transactions, change the transaction ID (hash) and republish the transaction to the network.  See more at https://en.bitcoin.it/wiki/Transaction_Malleability - there is a BIP 62 in the pipeline dealing with this problem.

The attack is merely an annoyance, the recipient will never get twice the amount (800 mBTC in your case) through a malleability attack.


How do Bitcoin Altcoin Hardware wallets work?

When using a hardware wallet, the gui wallet on the computer or phone creates the transactions, but does not sign it. The transaction details get sent to the hardware wallet and it signs it and sends it back? Is this correct?

Yes.

  Does the hardware wallet ever pass the private key data back to the computer to sign?

No. The private keys never leave the hardware wallet. If they did, that would ruin the purpose of a hardware wallet.

  Which hardware wallets works with which software?

Electrum supports all of the commonly used hardware wallets (Trezor, Ledger (all products IIRC), Digital BitBox, and KeepKey). Each hardware wallet also has a manufacturer provided wallet. These wallets are usually web wallets or browser extensions. Many other wallet software support some hardware wallets (usually Trezor, Ledger, and KeepKey).

  Which hardware wallet is the most trusted out of them?

Trezor and Ledger are the two go-to hardware wallets that people generally trust.

  Can you import existing paper wallets or basically just private keys into the hardware wallet? And which ones support this feature?

No, hardware wallets generally cannot handle imported private keys. This is because they actually only store one private key and then use BIP 32 to derive the private key that you actually want to use when you sign something. They don't have much onboard memory to hold more keys.


What are the perceived advantages of bitcoin as a means of exchange?

The primary advantages are:

Speed and price. You can transfer money anywhere in the world within minutes with negligible fees.
No central authority. Bitcoin is not dependent on any company or government to maintain its value.
You can start accepting bitcoins instantaneously, without setting up merchant accounts, buying credit card processing hardware, etc.
Bitcoins are less traceable than many types of monetary transactions (though not anonymous).
Bitcoins cannot be counterfeited and transactions cannot be reversed.
No transaction blocking or account freezing. We have seen governments freeze bank accounts of dissidents and payment processors refuse to process certain types of transactions (wikileaks, online gambling in the US, etc). With bitcoin this is impossible.
A known amount of inflation. Bitcoin is seen as a store of value because the total number of bitcoins that will ever be created is known in advance and it is impossible to create more than that.


Does bitcoin core 0.18 support bip44,bip39 (HD wallet)

You seem to have confused a couple of things.

Firstly, HD wallets is specified by BIP 32, not BIPs 39 or 44.

Secondly, being able to set your own seed is completely unrelated to setting a custom derivation path. They are two different things that have no effect on each other.

Note that BIP 39 specifies a menmonic scheme, not a seed. When I say mnemonic, I will be referring to BIP 39 mnemonics. When I say seed, I refer to BIP 32 seeds. They are two different things.

Bitcoin Core has had BIP 32 HD wallet support since 0.13. Since 0.17, it has had a sethdseed RPC which allows you to replace a wallet's BIP 32 seed with a custom one or a newly generated one. Note  that this does not allow you to have multiple active seeds in one wallet.

While you can set a HD seed with sethdseed, you cannot set a BIP 39 mnemonic. BIP 39 mnemonics and the seeds that they produce are incompatible with Bitcoin Core.

Lastly, while you can set a new HD seed, you cannot change the derivation paths that are used to derive keys. Bitcoin Core does not follow BIP 44's derivation path specification. Instead it uses m/0'/0'/i' as the derivation path for receiving addresses, and m/0'/1'/i' for change addresses.


Transaction fee is based on only "transaction size" ? or depends on "transaction amount" as well?

First, when we quote a "Bitcoin transaction fee", we will usually quote one of two numbers:

Consumers care about the total fee.This is the total fee that you're paying in a transaction, such as 10,000 satoshis or 0.0001 bitcoins. This is probably the most important number for consumers as they only care about the fees associated with their particular transaction.Miners care about the fee per byte (or kilobyte).This is the total fee divided by the number of bytes in a transaction, such as 40 satoshis/byte or 0.0004 bitcoins/kilobyte. This is the most important measurement for miners. The reason is that they use this to decide whether to include your transaction in the blocks they attempt to produce, as they can only include about 1 million bytes of transactions in their blocks. As such, they prefer to include transactions that pay more fee per byte.

It's important to note that the total bitcoin amount of your transaction doesn't matter for the purposes of fee calculation! For example, if your transaction is 250 bytes, you'll have to pay the same fee whether you're transferring 0.001 bitcoins or 1 million bitcoins.

For a transaction that you've already sent, you'll find either one of the numbers above or both numbers above on a block explorer.  For transactions you haven't sent yet, you probably want to find the best fee-per-byte to ensure your transaction confirms quickly.


Transaction Status: 0 / not confirmed, not in mempool

Is the software you're using Bitcoin Core?

Then you need to make your software forget your unconfirmed transaction that is not in the mempool, so that you can make it again with a higher fee.

When launching your Bitcoin Core, run it with -zapwallettxes. This'll make your wallet forget the unconfirmed transactions relevant to your wallet. You can learn how to add that on Andrew Chow's blog.

Then the balance in your wallet should become the balance before you made the payment.

I've learned this from here, but the other two methods aren't applicable as you need to change your transaction to increase the fee.


What is the size of different Bitcoin transaction types?

There are a number of different address formats and other standard transaction types:

Pay to Public Key (P2PK) outputs tie payments directly to the public key of the recipient instead of the derived address. These have been almost completely replaced by P2PKH, although sometimes mining rewards are still paid out to P2PK.
Input: 114 B
Output: 44 B (compressed), 76 B (uncompressed)
Multisig transactions were possible by using the corresponding OP_CODE directly even before P2SH was introduced. Most multisig transactions today are done with P2SH transactions today, though.
Input:  variable (depends on m-of-n)
Output: variable (must include all pubkeys)
Pay to Public Key Hash (P2PKH) is today the most commonly used address format. A P2PKH output signs over funds directly to an address derived from a single recipient key.
Input: 148 B (compressed), 180 B (uncompressed)
Output: 34 B
Pay to Script Hash (P2SH) was in the past foremost used for multisignature transactions, but any valid redeemscript is allowed. Creative use of P2SH allowed the introduction of backwards-compatible segwit addresses: "Nested Pay to Witness Public Key Hash" (P2SH-PWPKH or NP2WPKH) and "Nested Pay to Script Hash" (P2SH-P2WSH or NP2WSH) can be sent to by any client that can send to P2SH.
Input: variable (2-of-3: 297 B, NP2WPKH: 91 vBytes, NP2WSH 2-of-3: 139 vBytes)
Output: 32 B
Pay to Witness Public Key Hash (P2WPKH) is the corresponding native segwit format to P2PKH, making use of a witness program rather than a signature script. P2WPKH addresses are encoded with bech32 instead of base58 meaning that only clients that understand the native segwit format can send to them.
Input: 68 vBytes
Output: 31 B
Pay to Witness Script Hash (P2WSH) is the corresponding native segwit format to P2SH, making use of a witness program rather than a redeemscript. P2WSH addresses are encoded with bech32 rather than base58, only updated clients can send to them.
Input: variable (2-of-3: 105 vBytes)
Output: 43 B
Null Data (OP_RETURN) transactions are allowed to have a single output that writes up to 83 bytes of data to the blockchain.
Input: N/A
Output: x ≤ 83 + 11(?) bytes
Non-standard transactions encompass any other transactions that don't fit one of the above template. Non-standard transactions will not be relayed by most nodes in the network.

Additionally, transaction overhead adds 10 bytes for non-segwit transactions and 10.5 vbytes for segwit transactons (for numInputs, numOutputs < 256).

  overhead = version + numInputs + numOutputs + nLocktime = 4 + 1 + 1 + 4 = 10 bytes
  segwit overhead = version + numInputs + numOutputs + nLocktime + marker + flag = 16 + 4 + 4 + 16 + 1 + 1 [weight units] = 42 weight units = 10.5 vbytes

All size data is provided on a best-effort basis, corrections welcome. Figures with "(?)", I have been unable to corroborate. H/T to Pieter Wuille, Alex Bosworth, Raghav Sood, Sergi Delgado for corrections.

Note that due to the formatting chosen to represent ECDSA signatures in Bitcoin, they have variable size up to 72 bytes with most being 71 bytes or 72 bytes. The given figures above represent the maximum size of the input scripts.

Many of the above formats may produce variable input and output sizes.
Generally, the average transaction size has been 514 bytes in the past week. I suspect that this number may be absolute transaction data size and not virtual size, unfortunately blockchain data providers are still lagging behind on properly assessing segwit transactions.

p2sh.info collects a number of statistics on various transaction formats, but as far as I can tell unfortunately not the number of transactions using the respective formats in each block.


Why can't miners meet the difficulty by picking a low number for the block hash?

The hash is a result of computing two rounds of SHA256 on the block header. If you set the hash yourself, when other nodes try to verify the hash by performing the aforementioned computation, it will not (however, there is an infinitesimal chance) result in "63 zeros followed by a 1". I suggest reading about hash functions.

The only reliable way to create a valid hash is to continuously compute the hash on the actual block header, while modifying the contents of the block so that the block is still valid (e.g. nonce, transactions, block version, etc.), but gives you a lot of tries (guesses) until you get an output that is valid. It is basically brute forcing, so having fast, efficient mining hardware is an advantage.

See also: Block Hashing Algorithm


Is there any way to mathematically optimise Bitcoin transfer fee?

The network fee doesn't depend on the amount of BTC that you're sending, it depends on the total size of the transaction. So there is no such thing as "maximum amount of BTC that can be transferred". You transfer as many BTC as you want and you determine the fee per byte. The miners will include your transaction on a block depending on that fee.

To calculate an optimal fee I recommend you have to take a look at the mempool taking into account that the transactions with greater fee will be processed first. In general, except that you're on a hurry or the mempool is overloaded, a fee of 5 satoshis/byte would be enough.

For further details take a look into How is transaction fee calculated?


The general answer is that your card replacement caused the huge drop in hash-rate. Radeon cards are generally better for mining (faster and more efficient) compared to Nvidia. There is a nice chart that approximates hash rate per card here: https://litecoin.info/Mining_hardware_comparison

You should really consider mining scrypt algorithm at either a profitability pool (I think BTCGuild has one now) that will mine the most profitable coin and convert it to BTC for you, for a small fee of course. This should increase your mining yield by 10fold or so!

You also might try Cudaminer instead of GUIMiner for nvidia cards. I have had better using cudaminer for nvidia gpus than both cg and bfgminer.


There is a problem with the transaction favoring a party, and they can use the timeout to their advantage. But it is not as dire as some think.

Here is an example:

Alice creates a contract on the Bitshares blockchain that will pay Bob 1 Bitcoin if Bob can come up with the secret. If he does not do this within 24 hours, Alice gets her Bitcoin back.

Bob creates a contract on the Litecoin network that will pay Alice 2.5 Bitcoin if she comes up with the same secret within 12 hours.

Alice has a small advantage here. She has the secret. She can wait until near the 12 hour mark to decide if the price moved in her favor. If the price is not to her liking, she does nothing. Bob gets his Litecoin back, and Alice waits another 12 hours to get her Bitcoin back.

If Alice decides to take the Litecoin, Bob has few choices. He has to take the Bitcoin or leave empty handed.


When Bitcoin Cash was forked they used the same address format as bitcoin. A new address format was later proposed (CashAddr) so as to lower the confusion amongst people, but legacy addresses continue to be used and people can send funds to those addresses provided.

  Does this mean I can send BTC and BCH to this address?

Yes, if you control the private key related to the address you control the funds. However, care must be taken while doing that. BCH supports legacy addresses of P2PKH starting with 1 and P2SH addresses starting with 3. However, BCH does not support segwit types. By default Bitcoin Core generates a segwit address of P2SH(P2WPKH) form. BCH supports P2SH addresses (ones that start with a 3) but it doesn’t support segwit address of P2SH(P2WPKH) form which also start with a 3. To avoid ambiguity, the ATM must have shut off sending it to addresses starting with 3


The direct cause for Segwit's activation is BIP 91 which forced all miners to signal for segwit and that thus activated segwit. However BIP 91 was caused by BIP 148 which threatened to force miners to signal for segwit on August 1st and potentially cause a hard fork. If BIP 91 had not activated, then there may have been two chains where segwit activated/will activate on one (the BIP 148 chain) and a chain where segwit is not activated and may not activate. There may have also been no chain split and all miners followed BIP 148 and activated segwit at around the same time anyways.


why is bitcoin-qt connecting to port 9051?

You're seeing probes for automatic configuration if it were running.


Is there a system that support job contracts?

You could use a payment API similar to:

http://dev.blockcypher.com/#payments_summary

This gives you a new address for which any deposit will be automatically transferred to another address of your choice. I'm sure they could implement the 10% fee transferred to a separate wallet very easily.


If one could simply "print more" Bitcoins, then it would quickly lose its value (this is the definition of inflation btw) because of increased supply. This is the main reason why, for instance, the USD has lost so much value in the last 50 years.

People invest in Bitcoin because they think it will increase in value, not because there is a limited supply. Lots of stuff is limited, but have no value.

Throughout history, inflationary currencies (ie currencies without a cap) have all lost their value and collapsed. This includes thousands of fiat currencies and will most likely include the ones we're using today.

You say that money must be inflationary for it to work?

Well, gold is not inflationary but has been used as currency for thousands and thousands of years. In fact, it was used as world currency up until 1971. Apparently gold worked, right?

Consider this... Two villages. One produce fish and the other coconuts. They buy from each other. They each have 10 Bitcoins each. Let's print more Bitcoins -- let's double the number of coins and give them out to each village! They still produce the same amount of fish and coconuts. What's going to happen now? Yes, the price of fish and coconuts will double! In effect, the value of each coin just got cut in half. That is the effect of (uniform) inflation. (*)

Or, simply put: If every person's bank account is doubled, then all prices will double as well. So changing the amount of currency uniformly like that is pointless. Nothing really happens.

But wouldn't a non-inflationary currency cause prices to drop (and, thus the currency value to raise)?

You're correct! But there are forces which work to counter that effect. Let's look at gold again:

On a fixed gold standard, prices would indeed fall slightly year by year. (By the way, this is fundamentally a good thing).

The reason prices fall is because the amount of goods increases due to increased productivity while the amount of gold stays the same. In other words, prices go down while the price of gold goes up. But (and this is important!) higher gold prices also gives gold miners strong incentives to mine more gold! So more gold is produced which enters the economy. More gold in circulation will eventually lower the gold price (and raise prices again) until miners don't earn enough and they stop mining. Which leads to higher gold prices (ie lower prices of goods) AND... the cycle repeats again.

And that is why prices on a "fixed" money base stays stable.

But what about Bitcoin?

The stuff you just read (above!) about applies to Bitcoin a well, but there is a huge problem:

The Bitcoin price is not even remotely predictable.

I agree that it wouldn't be wise to buy one pizza with Bitcoins today, when you can buy 10 pizzas tomorrow. You see, for us to call something money, it has to to be stable. Otherwise, it's impossible to make economic calculations. So until (if) Bitcoin becomes stable, no-one is going to use it as money for practical reasons.

So for the time being, you should consider Bitcoin an asset for investment, not money.

(*) This is extremely simplified, particularly as I ignore the harmful Cantillon effect. Inflation (money supply increase) in the real world, causes enormous amounts of problems, one of which is that it acts taxes the most unfortunate of us.


There is the Wallet Import Format, which should be a standard for Bitcoin wallets. As to how popular it is, I don't have any data on it. Alternatively, storing the raw private key should suffice, as it can be converted to any other fancy format whenever needed.


Splitting BTC and BCH from cold storage using bitcoin core wallet sending to exodus

Did you import the keys from your bitcoin core wallet to the exodus wallet?

It seems to me that you simply transacted your bitcoins to another adress (+Wallet).

This however does not mean that your bitcoin cash will also be send to that adress ( unless there was no replay transaction of course.(Which there is))

Your bitcoin cash is still at the adress where your bitcoin was at the time of the split.
Import that adress ( or rather the private key) into a bitcoin cash compatible wallet and you should see your BCH balance.


I am confused about the difference between a fork and a client, can someone explain?

Since everything is open source, anyone can take something, make some changes and it'll be different.

Some good examples:

Dash
Dogecoin
Litecoin
Bitcoin Cash

Just a few examples of someone taking Bitcoin's core code, tweaking it, and releasing it. Given some of them did it in different ways. Doge for example started over with Block 0. It's considered a "new coin". While Bitcoin Cash used the history of Bitcoin up to a specific block, before their changes took effect. This is a hard fork.

A node configured to run (or in some cases simply a flag in the config file) Dash, will not receive/process/store Litecoin blocks. The same way a Bitcoin node will not receive/process/store Bitcoin Cash blocks (once the block where the hard-fork occurred was hit). (I'm aware there are nuances to this but brevity is taking priority)

Finally to touch on your first point, there can be many clients for a specific coin. It's open source. There is no "official" client for Bitcoin as it's decentralized from the ground up. Some chains use a more centralized development process like the Ethereum Foundation. While they provide more input (as well as some communities have more sway over specific chains) it is ultimately up to the individuals running nodes on if they will upgrade and support the changes. This is best highlighted in the hard fork for Ethereum 25 October 2016. Those that did not fork were left with the original code and original coin now referred to as "Ethereum Classic".  Those that did upgrade, were then using the current day "Ethereum".

In the end no matter what client is used, it must follow the same basic protocols as the network it's trying to interact with. As long as it does, then it can be used.


Are there any blockchain inspection tools/libraries?

You probably make the right decision to not use one of the centralized API (blockchain.com, etc.).
Run you own bitcoin-core fullnode(s) and connect to the RPC or REST interface.

You could connect via python with things like http://laanwj.github.io/bitcoin-python/doc/examples.html or any other RPC client.

If you need blocks / headers / chaininfos and transactions, consider enabling bitcoind -txindex and access data over the REST API (https://github.com/bitcoin/bitcoin/blob/master/doc/REST-interface.md).

If you need to verify scripts, you could use libbitcoinconsensus. There is a verify function:

EXPORT_SYMBOL int bitcoinconsensus_verify_script(const unsigned char *scriptPubKey, unsigned int scriptPubKeyLen,
                                    const unsigned char *txTo        , unsigned int txToLen,
                                    unsigned int nIn, unsigned int flags, bitcoinconsensus_error* err);

Bitpays insight is also a nice library (https://github.com/bitpay/insight) but it's javascript node.js based.


What is the differences in Bitcoin derivative products such as perpetual vs futures?

Futures are derivative instruments used to lock in a price of a security at a predetermined future date and price. The price that you buy a future indicate the price of what Bitcoin would be say 3 months from today, also known as the expiry of the contract. However, if investors would like to trade on the current price, the only option available to them is to physically buy Bitcoins. But the biggest disadvantage with this method is that you need to put in higher capital as compared to buying a futures contract. Moreover, futures contracts have to be rolled over as they come close to expiry.

Perpetual contracts are future contracts that do not expire. The price of perpetual contracts closely mimics that of the average spot price of Bitcoin on different exchanges. The cash settlement of a futures contract is: spot price at expiry - futures price (as you can take the physical delivery of asset at expiry and sell in the open market). Thus if the perpetual contract trades at a premium to the spot price of Bitcoin, the longs of the contract will need to make funding payments to the shorts. This will make the contract less attractive to longs and more attractive to shorts thereby pushing the contract price back down to the level of the spot price. The opposite happens if the perpetual trades at a discount to the spot price. This is the reason perpetual contract closely mimics Bitcoin price (after adjusting for trading costs).

Perpetual contracts are very similar to margin orders as you need not post the entire buying amount. You need to keep certain amount as collateral. If you keep 20% of the buying amount as collateral than you have 5x leverage. The advantage over futures is that they track the spot price and they prevent the hassle of rollovers.


Since it works without your wallet file, it is likely that your wallet has some sort of corruption which is causing Bitcoin ABC to error on start. Try starting Bitcoin ABC with -salvagewallet and see if it is able to recover the wallet to a working state.


do transaction merkle trees have any use outside individual blocks?

The merkle tree means that you can verify the existence of a transaction in a block while only having the header, the transaction, and the merkle tree itself. It allows SPV clients to act extremely quickly and securely while only using the bare minimum of bandwidth. MultiBit is a SPV client that works in this way, and is extremely quick as a direct result.


Merged mining allows a miner to mine for more than one block chain at the same time. The benefit is that every hash the miner does contributes to the total hash rate of both (all) currencies, and as a result they are all more secure.

Starting with a high-level explanation: The miner (or mining controller in the case of pooled mining) actually builds a block for both hash chains in such a way that the same hash calculation secures both blocks. Work units based on this block are then assigned to miners. If a miner solves a block (at the difficulty level of either or both block chains) the block is re-assembled with the completed proof of work and submitted to the correct block chain (or both blocks are separately reassembled and each submitted to the corresponding network if it met both of their difficulty requirements).

The only confusing detail is how the same hash can secure both block chains. I'll use the example of Bitcoin and Namecoin, where Namecoin supports merged mining and Bitcoin doesn't:

First, the miner must assemble a transaction set for both block chains. He then assembles the final Namecoin block and hashes it. He then creates a transaction containing this hash that is valid in the Bitcoin chain and inserts it in the Bitcoin transaction set at the tip of the tree. He then assembles the final Bitcoin header with this transaction in it and sends out the work units.

If a miner solves the hash at the Bitcoin difficulty level, the Bitcoin block is assembled and sent to the Bitcoin network. The Namecoin hash does nothing and the Bitcoin network ignores it.

If a miner solves the hash at the Namecoin difficulty level, the Namecoin block is assembled. It includes the Namecoin transaction set, the Namecoin block header, the Bitcoin block header, and the hash of the rest of the transactions in the Bitcoin block. This entire "mess" is then submitted to the Namecoin system. The Namecoin system, supporting merged mining, accepts this as proof of work because it contains work that must have been done after the block header and Namecoin transaction set was built. (Because you can't build the Bitcoin transaction set containing that hash, and therefore the Bitcoin header that secures it, without that information. So it proves the work was done.)

Note that a miner can solve both chains simultaneously, and they will if they solve at the higher difficulty. One block can "win" in the public chain and not the other. They are fully independent -- only the mining is merged.

Three key points to remember:

The Bitcoin chain doesn't get junked up with Namecoin stuff due to merged mining. At most, one tiny hash is inserted in the transaction tree.
The two hash chains remain fully independent. The "Bitcoin stuff" that goes in the Namecoin tree is basically ignored and only used to validate the proof of work. (It will bloat the Namecoin chain a bit as it means some blocks will have an extra header and an extra hash.)
Lastly, no special support is needed from Bitcoin.

The benefit for Namecoin is obvious. A lot of Bitcoin miners will probably do merged mining, since it costs them basically nothing and gives them a greater return than mining Bitcoins alone. As a result, their block generation timing will be more predictable and their transactions more secure against a 51% attack.


BIP 70 addresses the issue in merchant/customer use cases:

https://github.com/bitcoin/bips/blob/master/bip-0070.mediawiki

As to individuals I guess there's still room for improvement. Meanwhile check out the following website:

http://onename.io

It's worth noting that by using a single address anonymity is basically thrown away (e.g. everybody can see your balance).


Given a Tx message, how does one calculate the fee paid for the transaction?

Use the following pseudocode:

TotalOutputValue = 0
For each Output in tx_out array
  TotalOutputValue += Output[value]
TotalInputValue = 0
For each Input in tx_in array
  PreviousOutput = Input[previous_output]
  PreviousTransaction = PreviousOutput[hash]
  OutputIndex = PreviousOutput[index]
  Look up the transaction with hash PreviousTransaction
  Output = The output with index OutputIndex in that transaction
  TotalInputValue += Output[value]
Fee = TotalInputValue - TotalOutputValue


I want to transfer coins to multiple exchanges, how can I do it?

Just open accounts on all those exchanges and then get deposit addresses. Transfer funds howefver you like.

  Can I split coins from one wallet into the exchanges?

Yes.

  Do I need a specific kind of wallet?

You can just withdraw from wherever your coins are now to your deposit addresses at various exchanges.

  And when I withdraw coins from an exchange, can I withdraw only a part of my funds(and leave the rest in my exchange account)?

As far as I know, every legitimate exchange supports withdrawals of whatever amounts you want. Typically there are minimum withdrawal amounts and some withdrawal fee to cover the transaction cost, but that's about it.


Will g'root be included in the Taproot soft-fork?

It is not part of the BIP drafts we're working on for Taproot, and there has not been any development on it apart from publishing the basic idea.

The reason is simply that there are far too many ideas to include all at once; ultimately everything boils down to costs/benefits, and I think just G'root is only marginally useful. And softforks are more than a technical process: we don't need to just propose a technical improvement, but also find adoption for it. The more complex the ideas involved are, the harder the latter becomes.

As I explained on the ML a while ago, I think that G'root does have actual tangible benefits when combined with cross-input aggregation. We deliberately chose to not include that in the current taproot proposal as it interacts in complicated ways with OP_SUCCESS, but perhaps a future change that includes both is possible.


Yes, your understanding is correct.  In fact, not only are there multiple copies, there are a huge number of copies: everyone who runs a full node has a complete and validated copy of the entire block chain, which they will share with anybody over the Bitcoin peer-to-peer network on request.

In fact, if your hypothetical attacker starts sending out their corrupted block, most users won't even notice: their software will validate it, notice it's incorrect, figure there is just something wrong with the attacker's data, and request it from some other node instead.


You could:

Wear a Bitcoin shirt (people will ask ;))
Have a Bitcoin themed party in a student bar
Offer a Bitcoin meetup
Walk around on Campus with a sign "Ask me anything about Bitcoin"
Start a Bitcoin student club
Convince a Campus shop to accept Bitcoin
Convince a food delivery service close to campus to accept Bitcoin
Offer a competition where you offer a price in Bitcoin
Organize a Presentation/Lecture/Panel about Bitcoin
Write an article for your student newspaper/newsletter
Organize a viewing of one of the Bitcoin documentaries on campus


Where would a fee come from when I send the remainder of my Bitcoins?

First, you cannot have negative amounts of Bitcoin in your wallet. Just like with cash there can only be a positive amount.
You can, however, depending on what settings you are using, make transactions without attaching a fee.

Perhaps, when you tried to send all your money, the software automatically reduced the sent amount to the maximum you could send in order to still have enough for the fee. This would show up as the full amount leaving your wallet, but only the amount without fee being signed over to your friend.


How to mine with Intel HD Graphics 4000?

The latest cgminer no longer supports GPU mining -- it is now exclusively for ASIC mining.

Here is the old 3.7.2 version, which is the last one to support GPU:
http://ck.kolivas.org/apps/cgminer/3.7/


Ability to Send Bitcoins to an Address over a duration of time

Seems like you're looking for an automated billing solution, or something along those lines. There may be others, but I know Coinbase has support for this. This is a screen shot from their online interface:

If it was a recurring payment in small amounts, you might also consider Micropayment Channels, so that the feels were not prohibitive. For larger, monthly or yearly transactions, though, the fees paid to the miners may not be as noticeable.


One of your transaction outputs is below "dust" limit. Most of nodes do not relay and mine such transactions. However, there are miners who accept such transactions.

There are two possibilities:

just wait (may be a day or two) for such miner
try to double-spend your transaction with another one

Please read https://bitcointalk.org/index.php?topic=232979.0 for more info


Is it possible to run Bitcoin on Google App Engine? / alternatives?

You should have a look at this (my master thesis topic connected to running Bitcoin on GAE).

While it is possible to run a Bitcoin-related application on Google App Engine, the service will inherently depend on another application to run. GAE only allows one to use the most basic ports for HTTP and HTTPS communication, whereas running an independent Bitcoin node requires the use of TCP/IP. It is possible to write a simple program to convert HTTP calls into TCP/IP ones, but that would need to be hosted elsewhere. If you want to use Bitcoind as the way to communicate with the Bitcoin network, things get significantly easier.

I've tried writing my own implementation of a Bitcoin client on Google App Engine in Go, but was ultimately defeated by OP_Checksig and its lack of documentation. But honestly, I found using Bitcoind for everything Bitcoin-related to be a lot simpler.

What you also need to consider are the costs of running apps on Google App Engine. I personally found the write and read operations to be a bit limiting if you want to stay on a free tier, but depending on what you will actually want to do, there can be other factors to consider.


Yes, bitcoin-unlimited lets you create BCH addresses offline.


I don't believe there is a direct way to do this via ZeroMQ. Your best bet would be to validate the ancestry for each block as you receive it.

When you receive a block, check its parent hash against blocks you have already seen. If the parent chain validates and you do not have another, longer child chain from the parent block already, you can accept this block.


Are there other ways to have more than one address involved in a SINGLE transaction input or a SINGLE transaction output?

Bitcoin address is human-readable form for representation output script. So, one output transfers funds to one address by the definition of the term address.

One transaction input always spends one output of the prevoius transaction.

Your question has no sense.


How do I know if my bitcoin client is mining?

Help > Debug window > Console > Type "gethashespersec"

  If my client eventually does find some bitcoins, will they appear in my wallet? Will they appear in the transactions log?

Yep.


It's worth keeping in mind that your "wallet" doesn't actually contain any bitcoins. What your wallet contains is the private keys that permit you to spend coins that have been sent to any of your addresses. Which addresses have been sent coins is a matter of public record (the blockchain).

If you had previously received (or mined) coins using one or more of your addresses that are contained in that wallet, then the record of those transactions will still exist. Note that your wallet likely contains more than one address, particularly if you've used it for anything at all. The address you have shown in your question has not received any coins.

If you have copied your old wallet.dat file into a new Bitcoin client, the first thing to do would be wait for the blockchain download to complete. Your client won't know about any coins that have been sent to the addresses in your wallet without actually seeing the whole blockchain.


Which VPS providers are the most popular or notable for hosting bitcoind instances?

BitVPS offers a VPS with a pre-installed and synced bitcoind, and of course they accept payment in Bitcoin.  Email the owner (james@bitvps.com) for details.


Comments that you add to transactions are for your wallet only. No one else will see them as transactions do not have anywhere to have comments. Comments on public blockchain explorers (such as tags on blockchain.info) will only appear on those websites as they are comments specific to those websites. They are not part of the transaction itself.


The probability of block generation by two miners in a special case?

In your example the two pools have very similar hash power, so for simplicity let's assume they are both exactly 50%.  The difference between 49%, 50%, and 51% will not significantly affect  the answers.

The probability that the first pool finds at least one block in 10 minutes is roughly 1 - exp(-1/2), about 39%, and the same for the second pool.  The two pools operate independently, so the probability that both events happen is simply the product of their probabilities, i.e. (1 - exp(-1/2))^2, which is about 15.5%.  By symmetry, it's about equally likely for either pool to find the first block.  So the probability that this happens and moreover Pool 1 finds the first block, is half of this: 7.75%.


Two transactions are signed by different private keys, and the value of "R" for these two transactions is the same?

Assuming the two private keys are unrelated, the answer is no.

The reason for this is simple: there are 3 unknowns (the two private keys, and the single secret k value), but only two equations (the ECDSA validation equation for both signatures).

If a relation is known between the two private keys (like one is twice the other, or one is one higher than the other, ..), another equation becomes known, and the system becomes solvable.


Is the hash of ZMQ channel blockhash a merkleroot hash?

As the name suggests, it is the block hash, not the merkle root hash. It is the hash of the block header which includes the merkle root hash. To learn whether your tx is included in a block, you will need to fetch the block with that hash and then search for your transaction within that block. You can do this by using the getblock RPC after receiving the ZMQ message. You could also use the rawblock ZMQ channel and receive the entire block in full, but that will also mean that you need to implement block parsing.
Even if you could just get the merkle root, the merkle root itself does not contain sufficient information to determine whether a particular transaction is included in that block. You still need to get the full block and search the transactions list for your transaction.


Why do all Electrum master public keys all start with xpub661MyMwAqRbc?

BIP32 specifies how hierarchical master public keys are serialized.

4 byte: version bytes (mainnet: 0x0488B21E public, 0x0488ADE4 private; testnet: 0x043587CF public, 0x04358394 private)
1 byte: depth: 0x00 for master nodes, 0x01 for level-1 derived keys, ....
4 bytes: the fingerprint of the parent's key (0x00000000 if master key)
4 bytes: child number. This is ser32(i) for i in xi = xpar/i, with xi the key being serialized. (0x00000000 if master key)

So, when a master public key is serialized, it always begins with 0488 B21E 0000 0000 0000 0000 00

Encoded, that's the pattern you see.


Bitcoin Core on Windows get wallet address

I am unable to find the wallet address anywhere in the application itself.

Little confusion here, there is no one wallet <==> one address.

Your wallet is handling many keys, hence many addresses. You could see addresses as invoices (it has been proposed to rename them to "invoice addresses" btw).

You can (security-wise) but should not (privacy-wise) reuse such invoice addresses.

  If you could please point out what I am missing here.

Assuming you run bitcoin-qt. In order to receive coins, go to the Receive tab and click on request payment.

You will be given a fresh new invoice address.


Where can one find the listing of the 3-call letters for all of the altcoins?

As said above, there's no real, official "standard" everybody follows. Now then, you can go have a look at different exchanges and see what the call them. Cryptsy is famous for allowing you to deal with dozens of crypto-currencies, and they're constantly adding new ones (as well as taking out those deemed defunct) - you could go to their home-page and download

Be warned, though, that not all call-signs are 3 letters-long, though. Dogecoin appears as "DOGE" in most of the exchanges it appears at, and forty-two-coin is usually represented as just "42".

Some call-signs, off Cryptsy's page - notice the 4-lettered ones, the non-obvious (as eMark being "DEM" or Primecoin being "XPM") and the potentially confuse (as "LK7" and "LKY")

42   42Coin
ALF  AlphaCoin
AMC  AmericanCoin
ANC  AnonCoin
ASC  AsicCoin
BET  Betacoin
BQC  BBQCoin
BTC  Bitcoin
BTE  ByteCoin
BTG  BitGem
BUK  CryptoBuck
CAP  BottleCaps
CAT  CatCoin
CENT Pennies
CGB  CryptogenicBullion
CMC  Cosmoscoin
CNC  CHNCoin
COL  ColossusCoin
CSC  CasinoCoin
DBL  Doubloons
DEM  eMark
DGC  DigitalCoin
DOGE Dogecoin
DVC  DevCoin
EAC  EarthCoin
ELC  ElaCoin
ELP  ElephantCoin
EMD  Emerald
EZC  EZCoin
FFC  FireflyCoin
FLO  FlorinCoin
FRC  FreiCoin
FRK  Franko
FST  FastCoin
FTC  FeatherCoin
GDC  GrandCoin
GLC  Globalcoin
GLD  GoldCoin
GLX  Galaxycoin
GME  GameCoin
IFC  InfiniteCoin
IXC  IXCoin
KGC  KrugerCoin
LK7  Lucky7Coin
LKY  LuckyCoin
LOT  LottoCoin
LTC  LiteCoin
MEC  MegaCoin
MEM  MemeCoin
MNC  MinCoin
NAN  NanoToken
NBL  Nibble
NEC  NeoCoin
NET  Netcoin
NMC  NameCoin
NRB  NoirBits
NVC  NovaCoin
PHS  PhilosopherStone
PPC  Peercoin
PTS  ProtoShares
PXC  PhoenixCoin
QRK  Quark
RED  RedCoin
RYC  RoyalCoin
SBC  StableCoin
SXC  SexCoin
TGC  TigerCoin
TRC  TerraCoin
UNO  Unobtanium
WDC  WorldCoin
XNC  XenCoin
XPM  PrimeCoin
YBC  YBCoin
ZET  ZetaCoin


You basically got it.
create 2-of-3 multisig addresses (meaning needing two out of three signatures)
1 is for the buyer, 1 is for the seller, and 1 is for the mediator

buyer sends money to the multisig address, commiting the funds to the transaction
if the transaction goes well, buyer sends a signed transaction
spending the multisig output to the seller and sends the transaction
to the seller, the seller signs the tx and broadcasts it
if buyer is unhappy he/she can try to work out the matter with the
seller till they agree on any split of the money, it would involve
same steps as in (2) except now the money is divided (any
percentage) between the buyer and the seller
if the buyer and seller can't work things out, the mediator steps in
and after a decision is made, the money is split between the three
addresses (buyer, seller, fee for mediator)

So those are the conceptual steps to implement the scheme


Can we use fee rate less than 1 sat/vbyte?

Yes, we can create, sign and broadcast transactions with fee rates below 1 sat/vbyte. However, it requires some workarounds and such transactions will most probably not be mined because most full nodes do not allow such transactions in their mempools.
minRelayTxFee is an option in the bitcoin.conf file that can be used to change the fee rate required for mempool inclusion as explained by Murch.

These are the steps for broadcasting a low fee rate tx which I found in a reddit thread:

Pair HW wallet to Electrum

Use the paytomany command to create a transaction with fee rate below 1 sat/vbyte

Import the transaction to sign in Electrum

Run a full node with minrelaytxfee set to 1 sat (0.001 sat/vB)

Find low-fee peers

addnode to connect with the low-fee peers discovered

sendrawtransaction to broadcast transaction

Check tx in block explorer: https://sochain.com/

Related PRs:
https://github.com/bitcoin/bitcoin/pull/13922
https://github.com/bitcoin/bitcoin/pull/13990
Related question: What is the smallest fee you can pay for an on chain transaction?
Related options in bitcoin.conf:
incrementalrelayfee : Fee rate (in BTC/kB) used to define cost of relay, used for mempool limiting and BIP 125 replacement.
dustrelayfee : Fee rate (in BTC/kB) used to defined dust, the value of an output such that it will cost about 1/3 of its value in fees at this fee rate to spend it.


If you call getnewaddress 100 times (via RPC for bitcoind, in the debug console for Bitcoin-Qt), the key pool is flushed.

After that, you can request one more new address and send all your funds there.


It can also derive a non hardened xpriv, which we will use with the neutered function to make it an xpub.
The xpub derived, is the same xpub that we would get if we had done CKDpub on the original Xpub.

Yes. Neutering really means "Do CKDpub and delete the Xpriv". There is no neuter function on Xprivs; it's for the wallet software, not the key derivation.

My other question on top of this, is if a Wallet software has the mnemonic key, would it be better to always derive from the mnemonic?

Deriving from the mnemonic requires additional computation, however requires less storage space. I don't think it really matter.

Also, Is the extended private key, the (private key + chain code), or is it the (magic + depth + fingerprint + index + chain + key) ?

The second.


Is there any tool available that can tell me the balance of bitcoin address on specific date?


Transfer bitcoins from one wallet to another

The fee you are referring to is the fee paid to the miners (not to you) for the transaction.  The miner (or mining pool) who is lucky enough to solve the block is going to receive all the fees from all of the transactions on that block.  It will be unknown who will receive the fee it until the block is solved. For more information, see Bitcoin Transaction Fees.  If you want them to pay you a fee, then you have to create a separate transaction for that.


Where should one suggest new terminology?

Bitcoin is completely decentralized.  Most terms in use today "pools", "51% attack", "miner", "rigs", "stales" came about simply because they were adopted by most users of bitcoin.

In addition to the IRC options already given, http://bitcointalk.org has a general discussion forum which may finds some interest if you start a "glossary" thread.

Alternatively you could look to influencing the discussion via the bitcoin wiki.  You can add entries for existing terms, clarify terms, request terms be merged with othe terms in an attempt to improve standardization.

Just remember bitcoin is decentralized.  You can only gain adoption by winning mind share.  You can't force a term by committee.


bad-txns-nonstandard-inputs error after sendrawtransaction

Your transaction is not being signed.

First of all, the hex string that createrawtransaction gives you is not the txid, it is the transaction itself. That transaction is not stored in your wallet.

When you pass it to signrawtransaction, the raw transaction will be signed and returned to you (it will be the thing under the hex field in the returned object. Again, this transaction is not stored in your wallet. That signed transaction is what you pass to sendrawtransaction, not the thing that createrawtransaction gives you.


Why bitcoins not reflected in bitcoin wallet after being transferred from Web based wallet to its address even after ten confirmation?

The address shown in Bitcoin Wallet App is a different one than the recipient address shown on the blockchain.info screenshot. Unless you created a second address with Bitcoin Wallet App, that would explain why Bitcoin Wallet App doesn't show the above payment—it went somewhere else.


Please tell me the procedure for installing bitcoin full node in CUI on CentOS

In your bitcoin.conf, remove the spaces before and after the equals (=) sign. I believe the conf file parser does not handle spaces well.

Also, your command has -conf=/.bitcoin/bitcoin.conf, but your conf file is at ~/.bitcoin/bitcoin.conf so it is pointing to the wrong location.


Transaction confirmed by network but never showed up in bitcoin-qt

Launch the client from the command line with -rescan and it will recompute the balances for all addresses in your wallet.

For Windows:

C:\> Bitcoin-Qt -rescan


There is no timestamp field in bitcoin transactions. BC.I timestamps the transaction when it comes to this service for a very first time. You should not use this value, because it can be quite incorrect/irrelevant.

I think that the last transactions in these blocks have not seen by BC.I in "wild" form. BC.I discovered them when they come within a block. So, it is a small bug on BC.I - it does not shows you timestamp for some txs.

Just live with it.


Can I transfer Bitcoin from Binance to an Electrum Wallet?

Yes it is possible, as long a Binance is willing to let you withdraw your coins.
Steps:

Open your electrum wallet. Open the 'Receive' tab, and copy the 'receiving address' to your clipboard.

Open Binance. Navigate to the page where you can initiate a withdrawal.

Paste the 'receiving address' from Electrum into Binance withdrawal form. Be sure to triple check that the address you pasted into Binance is exactly the same as the address that is showing in Electum

Submit the withdrawal to Binance, and then wait until they send you the coins. You will see confirmation of this in the Electrum wallet, as long as it is properly synced with the network.


Hosting lightning node and non-custodial

Unlike layer 1, keys are not needed in order to perform transactions, which means that you are not only trusting the information the node is providing, also they could perform transactions without your knowledge.

Keys are required in lightning. Multiple, in fact.

The lightning node itself is identified by its public key. You need the private key to perform the secure handshake so that you can have encrypted and authenticated communication with peers. You also need the node's private key to sign any gossip information about your node or channels.

On forming channels, you need the private key for an unspent transaction output on the bitcoin network in order to fund the channel.

On operating channels, each channel has a unique funding key which is used to spend the 2-of-2 P2WSH output. You must have the corresponding private key to sign each commitment transaction and also the closing transaction - this must be done once per commitment.


Where can I get the export format for exchanges?

The suggestion is to contact each exchange (technical support/development/API support?) directly (without signing up) to request a template. Hopefully, they will be happy to be of assistance once you explain why you need them.


It's possible your blockchain is corrupted or you have multiple bitcoind processes running. Kill the bitcoind process, go to /home/bitcoin/.bitcoin and delete the blocks, chainstate and database directories using

rm -r blocks
rm -r chainstate
rm -r database

then start the daemon again without the '-daemon' flag to see if it progresses further.


How is a USD-chained currency like Tether economically possible?

Bitfinex, the issuer of Tether, claims that all of the USDT is backed by USD and USD equivalents. As such, the intrinsic value will be close to [$1 * asset impairment], and so no market manipulation/pegging is required to maintain parity, so long as their assets actually match the tether outstanding.

Although no action is required, there is an opportunity for Bitfinex to buy USDT with USD when the price dips below 100 cents and sell when its over 100 cents if they actually are fully backed. This would tighten the trading range, and make Bitfinex a profit in the process.


What are 'pegged' side chains are and how they will be useful for Bitcoin?

Portions of this are copied from my answer to Scott's question.

This particular proposal only requires one change to Bitcoin: SPV proving.

SPV proving is required when you want to move Bitcoins from the sidechain to the mainchain. The idea is that rather than putting all of the rules to validate transactions on the other chain into the original Bitcoin client, Bitcoin clients would look at how much hashpower was used to secure the transaction. It's pretty clever, actually.

Destroying Bitcoins to fund other blockchains has always been possible.

One issue that I see is that I don't think there would be enough hashpower to secure the network from double spending; merged mining could probably fix that though.

Another weakness of the paper that I see is that it does not address what to do if someone does steal coins from the sidechain. (In other words, the Bitcoin network thinks there are 90 Bitcoins in the sidechain, but the sidechain thinks it has 100 BTC.) One possible approach would be to devalue all coins moved back to the mainchain by the percentage that was stolen. Another would be to take a flat percentage off the top of coins moved into the sidechain.


Is it possible that the authors of Bitcoin have an alternative way of generating bitcoins?

Your question is equivalent to asking, "Does SHA256d have a trapdoor?"

SHA256d is a well studied algorithm.  It's believed not to have a trapdoor.

If the creator of bitcoin has a way to break SHA256d, stealing all our bitcoins would be the least of our worries.


Bitcoinjs-lib how to add multiple utxos in addInput

What's different with spending SegWit outputs is that signatures cover input values. In other words, every SegWit input must be accompanied by its input value.

Mozilla's documentation says don't use map if you aren't constructing a new array. So I'll use for loop. (because order is important, and for-of is too new)

for (let i = 0, k = utxo.length; i < k; i++) {
    txb.addInput(utxo[i].txId, utxo[i].outputIndex, null, scriptPubkey);
}

//add output - Total UTXO SATOSHIS are: 20000 + 30000 = 50000/ So sending 10000 rest should be in the same address
txb.addOutput("ltc1q9umns6nuxv3xrhzdwlmhkzujewu6hulyuwgx30", 10000);

//signing
for (let i = 0, k = utxo.length; i < k; i++) {
    txb.sign(i, keypair, null, null, utxo[i].satoshis);
}


You could probably run goxtool in Python under Cygwin, since that would give you a terminal.  I'm not sure if that's the only Linux-specific thing it'd need, but it'd probably be a start.


How does the hash of a coinbase transaction differ for the same miner?

The script of the input to a coinbase transaction can hold up to 100 bytes of arbitrary data. After BIP 34, the block height must be the first thing in that script. Since each block has a different height, this rule ensures that each coinbase transaction is unique as the block heights will always be different.

Furthermore, since miners can put whatever arbitrary data they want in that input script, they frequently use that as an extra nonce. Instead of reselecting transactions when all of the nonces are exhausted, miners will increment a value known as the extranonce which is put in the input script.

Also, before BIP 34 activated, there were in fact cases of identical coinbase transactions in different blocks. Only the outputs from the most recent of these identical coinbase transactions are spendable. Spending outputs from these transactions does not spend all of the outputs, only the ones from the most recent one. This means that the outputs from the earlier coinbases are unspendable and those coins are provably lost forever.


What is the order of block hashes in block-locator array?

The code on that wiki page is how Bitcoin Core constructs block locators, and it's a good method, but the method isn't enforced by the protocol. All you need to do is list a bunch of block hashes that you know about, ordered by descending block height. So in your example your locator could be (2,1,0), (2,1), (1), etc., but not (1, 2).


Do you need XRP reserves to receive trust lines?

The Ripple account reserves are documented on the Ripple wiki.

The trust line reserves are only for trust that you set. Others cannot cause your reserves to increase by adding a trust line to you.

The client warns you when you are bellow twice your current XRP reserve limit by placing a warning symbol beside your XRP summary (located at the top right of the client). Wheather the warning is shown or not, hovering the pointer over the XRP summary will provide a "tool tip" with the current reserve requirements.*

If an action would put you under the reserve requirements (such as sending too much XRP, creating a trade offer, setting a new trust line) the action is refused with an error. When below the reserve requirements you can still do other transactions so long as you have enough XRP to pay the 0.000010 XRP transaction fee.

Note:There is currently a client bug that causes the reserve requirements shown to be twice the old levels, about eight times the current reserve requirements.


Will a recursive sha256 run over all 2^256 inputs before a collision?

Short answer: you will "probably" find a collision after 2^128 attempts.
The concept you are looking for is called the birthday problem, explained also very well in this video by Professor Christoph Parr.
One of the approximations from The Birthday Problem is that given a random output space of size n, the probability of an input collision approaches 50% after approximately √n attempts. (2^256)^1/2 = 2^128


Can I mine with BFGMiner on an ATI Radeon

You need to use cgminer-3.7.2 or earlier.  For some reason, GPU mining was removed from subsequent versions.

Cgminer is the best available miner for your purposes.  Con Kolivas is one of the world's great programmers, and we are lucky to be able to use his software.

Please also be sure to read the file SCRYPT-README to get reasonable performance.


Bitcoin is generally accepted in France however the government seems to be very willing to prosecute anybody who is in breach of reporting or other laws. Somewhat recent proof: http://www.reuters.com/article/2014/07/07/us-france-bitcoin-idUSKBN0FC19220140707

There is not much legislation on Bitcoin, however it is clear that you can not use new technology to break old laws.  Accepting bitcoin as a form of payment for legal products/services is generally agreed to be the same as if you accepted USD or any other currency (for reporting requirements). You can pretty safely assume that accepting bitcoin in lieu of Euros is safe so long as Bitcoin is not illegal in your jurisdiction.

As for the legality of operating a casino/gambling site, there are much more considerations to be had. Of course operating such a casino/gambling site would have to be legal in your jurisdiction, also you should speak with a finance lawyer to determine if you need to register as a Money Transmitter or Money Services Business (since you may be taking money from one to give to another, as opposed to a store which simply takes money and might give a refund to the same client but never transfers money ON BEHALF of said client). You also need to consider which countries/regions you can serve and which you can not. For example, online gambling very illegal in the US, and simply having a US customer can be a breach of American law with hefty penalties. Most sites block US IPs for this reason.


How accurate should pool estimation of hashing speed be?

This happens with all pools. Some pools measure over a long time and get a fairly accurate hashrate, but it is very slow to react to changes (stop mining, add hashpower, etc.). Other pools measure over a short time and get a more inaccurate hashrate, but one that reflects changes faster.

The estimated hashrate isn't affected much by rejected work, unless you have an abnormal amount of those. If you have a lot of hardware errors (miscalculations) from your devices, those can also affect it some. These two issues can give a persistently lower hashrate than you are actually hashing with. But the source of the swings up and down is primarily the randomness with finding proofs of work. Some nonce ranges you scan will contain 3 and some won't have any at all.

Mining with a higher worker difficulty will increase the variance with finding proofs of work. If you set a worker difficulty that is very high for your hashrate then the website's estimate of your hashrate will likely be all over the place.

For a more accurate estimation of your hashrate look at your average hashrate per shift or other longer term, rather than a live hashrate estimate.

So there is really no specific answer to how accurate an estimated hashrate should be. Different pools use different methods, and some even have different hashrates in the same pool (measured over short and long periods of time).


TL;DR: You are not aware of the total number of users, but total number of transactions. In order to speculate the number of wallets (mean the number of users), you can adopt some heuristics, but that's all estimation.

First of all, a user can obtain multiple public keys. In order to get the number of public keys, you should firstly parse and extract the bitcoin transaction network that is publicly available. For example, in this dataset, created on Jan 6 2013, there are 8.864.955 public keys.
That's the easy part.

If you wish to calculate the number of users participating in bitcoin networks, you have to adopt some heuristics, as those data are not publicly available, due to the anonymity that is offered by bitcoin.

The first heuristic could be:

When a single transaction has multiple input addresses, we can assume that those addresses belong to the same wallet, thus to the same user. We should bear in mind that users do not share private keys. In fact many users may use web wallets which have pools, so those services will be treated as a single user.
Secondly, you can exploit the change mechanism in transactions. The entire value of unspent output should be sent back to the user as change. Bitcoin, in order to improve anonymity, produces a shadow address which collects back the change that results from any transaction. So when a single transaction has 2 outputs, you have to predict which one of the output addresses is actually belonging to the same user that initiated the transaction. If one of those two outputs has never appeared before in the blockchain, while the other has, then we can  assume that the one that never appeared before is the shadow address.

You can read this heuristics in more detail in BitIodine paper. In this work, there are 2.175.621 users found, using the above methodologies.


Bitcoin transaction unconfirmed for 7 days

After some time the network nodes will simply drop the transaction from memory. See here


what is the Difference between ./bitcoind and $ ./bitcoind -daemon?

What is the difference between the two commands?

./bitcoind - runs bitcoin node in the foreground.

./bitcoind -daemon - runs bitcoin node as daemon.

  What is daemon?

In multitasking computer operating systems, a daemon is a computer program that runs as a background process, rather than being under the direct control of an interactive user.


Action taken when data of a block gets tampered with

I believe that if the data of one block is maliciously altered on one node, this would likely affect signatures relating to affected data.

All other nodes would ignore any blockchain data and transactions from that node which are affected by the changes made.

For example, any other nodes obtaining that block from the malicious node would either notice that it's checksums and signatures were invalid or would notice that there is a competing chain (based on an unaltered block) which is longer and more trustworthy.

Wallet software, when synchronising, does check the validity of each block received. This means it is not impractical to do this for the entire blockchain (although it does contribute to the time that initial synchronisation takes)

Some wallets don't need to check really old blocks because they have hardcoded within them, checksums for blocks at release date. They can still distinguish blocks built upon on differing earlier blocks (because changes to significant data in earlier blocks affect the checksums of blocks built on that)

The upshot is that making changes to old blocks doesn't give anyone the ability to spend bitcoins they wouldn't otherwise have had.

Useful links

https://bitcointalk.org/index.php?topic=2129247.0
What are the trust assumptions in --assumed-valid in bitcoin core 0.14?


Is it possible to determine the total amount of timelocked Bitcoin?

No, it is not possible. Tools like this use P2SH, which means the script which locks the output isn't visible until it has been spent. You can determine how much might be locked (total P2SH outputs for which no script is known) and how much isn't (total non-P2SH outputs), but you can't tell much more than that.


Why is BTC transfer on coinbase taking 30+ hours?

Because they're not a real Bitcoin wallet, I guess they're sending it manually after they confirm it.

A real Bitcoin wallet is a wallet that gives you the full access to your coins and they are just managing your wallet controls and usually its called non-custodial bitcoin wallet, unlike Coinbase.