Do miners have an incentive to confirm various transactions from same address?

It sounds like you have rediscovered a mechanism called child pays for parent.
Generally, no, two independent transactions could get included in any order even when they were sent from the same wallet or involve the same address.  There is no efficiency benefit to reusing addresses, in fact it has significant downsides especially for privacy.—Miners will simply pick the transactions that maximize the transaction fees collected by their block. In effect, transactions with higher fee rates get prioritized.
However, I don't think the transactions were independent in this case! Usually, when you make a payment from a wallet, the wallet will not have exactly the amount you're trying to pay available in a distinct UTXO. In that case, when you send the payment, the inputs make up more funds than the payment amount and your wallet creates an additional change output to assign the remaining funds to itself. When your second transaction spent the wallet's complete balance, it would have also spent the first transaction's change output. I'm confident that this is how the two transactions became dependent.
When one transaction pays another transaction's output, they can only appear in topological order in the blockchain. Obviously, funds that don't exist cannot be spent. So, when a transaction spends the output of an unconfirmed parent transaction, the child is invalid unless the parent precedes it.
Now, you say that your second transaction paid a large transaction fee. This incentivized the miners to include the child transaction, but to be able to include the child, they first had to include the lower feerate parent. It turns out that the fee bid by the child was sufficient to make the whole transaction chain attractive for inclusion: the child paid for the parent.


How would one inject a blockchain fork to the Bitcoin network?

Just pass the blocks one at a time to your official bitcoind program, and it will broadcast them to the network.  You don't need to do anything tricky, except for somehow manage to hash faster than everyone else combined.


When does bitcoin wallet subtracts the coins spent by that particular address?

Bitcoin Core does not have a concept of address balances.

It has a concept of a wallet balance. The wallet balance is the sum of the values of all the transaction outputs that are:

Not serving as input to any (confirmed or unconfirmed) transactions that are not abandoned.
Either:

Confirmed (at least one confirmation)
Unconfirmed, but produced by a transaction that we signed ourselves ("change").


About changing the endpoint in insight API (in bitcore)

You can change the bitcore-node.json configuration to include these items: https://github.com/bitpay/insight-api/issues/430


I think you are confusing the monetary function of "coins based on blockchain technology" with the technology itself.  Blockchain technology, and thus any "alt-coin" using that technology, is used to prove the chain of ownership of a some item.  In the case of Bitcoin, that item is money, however it might just as easily be used to prove ownership of oranges.

Blockchain technology can be used by anyone to create a proof-of-ownership chain.  Therefore, a private company might choose to use it for whatever purpose they desire; that may make it closed, private, non-neutral, and non-censorship resistant.  That doesn't make it wrong, per se.

In the case of "alt coins", always perform due-diligence before making an investment.  Unless a company is designated as "not for profit", practically-speaking the only reason for it to exist is to make money for its owners.


Electrum uses hash function on your input to create a key. Now you may be asking what the problem to do a brute force to the short password for all possibilities of hashes and try to crack the key.

Electrum using a hash function, that takes lot of times, to solve. So to create many hashes for brute force it will take forever.


When MtGox was hacked on 15th June 2011, how many bitcoins were actually stolen?

According to MtGox, the hacker got about 2000 BTC.  A few real customers also appear to have purchased bitcoins at an artificially low price during the incident, withdrawn them, and kept them. This is estimated to amount to less than 650 BTC.

The details given at the above link are:

~June 2011 Mt. Gox Incident
Time: 2011-06-19T18:00 ± 1 h (theft), days ensuing (hacks & withdrawals)
Victim: Mt. Gox (some claim also customers)
Status: Thief uncaught
Amount:
Stolen by thief: 2000 BTC (official estimate)
Additional withdrawn from Mt. Gox: 643.27 BTC (lower bound)
Total: Lower bound 2643.27 BTC
Equivalent USD: 46970.91 $ (used last trade value; actual price at the time was not reliable)
Transactions: none released officially
The event's scale was widely disputed; some report a theft of almost 500000 BTC due to related account hacking. At this time, these reports seem to be unfounded and closer inspection puts the losses at closer to 2500 BTC. Some additional money was stolen by traders capitalizing on the dropping price and withdrawing in time, including toasty of the bitcointalk.org forums. Mt. Gox claims it has reimbursed customers for this theft.


What happens if you create and lose an Mt. Gox redeemable code?

The code appears in your account history.  If it hasn't been redeemed, it also appears here:

Funding Options -> Redeem Codes

It also has a Cancel if you don't wish to use it (it simply redeems it to your own account).


How many confirmation do i have to wait before i can spend the inputs I already received?

If the input is coinbase transaction, you can't spent it until it get 100 confirmations. Relevant code is here
If the input is not a coinbase transaction, you can spend it by creating a raw transaction How To Create A Raw Transaction

However, receiving input with 0 confirmation is not recommended.

  Zero-confirmation transaction vulnerability: accepting
  zero-confirmation transactions (transactions that have not yet been
  included in a block) from somebody you do not trust is still not
  recommended, because there will always be ways for attackers to
  double-spend zero-confirmation transactions. However, this release
  includes a bug fix that makes it a little bit more difficult for
  attackers to double-spend a certain type ("lockTime in the future") of
  zero-confirmation transaction.


Misledgering possibility for double spending attack

If a block contains an invalid transaction, it will be rejected by all honest full nodes. Full nodes verify transactions in a block in linear order, so after the first transaction is encountered, the nodes will deem the UTXOs being used as spent. Then when the second transaction (the double spend) is encountered, the nodes will see it as trying to spend already-spent outputs, and reject it along with the block.


Why Full Node stores whole blockchain instead of only the UTXO set?

You are right, and it seems this answer is outdated.

The concept of a UTXO set is more recent than Bitcoin itself. The original software kept a database with information on every transaction output ever created, including whether it was already spent. In that setting, the UTXO set was only defined implicitly by the spentness information in that database.

Bitcoin Core 0.8 (back then still just called Bitcoin) was the first full node software version to make the UTXO set explicit. At the time (2013) it was known that it was possible to also actually delete old block data after validation, as the UTXO set was maintained separately. It was only in 2016 with Bitcoin Core 0.12 that this was actually implemented using a feature known as pruning.

Historically speaking, the answer in the course was not wrong: UTXO maintenance used to imply having the full database. Since the introduction of pruning this is however no longer the case.


Has the bitcoin network ever been "down"?

A bitcoin node could be down or (extremely rarely as you say) all its peers could be down... but the bitcoin network could not be considered down; you could still synchronize by connecting to different peers manually using fallback nodes or even have your own list of nodes.

The only way for the bitcoin network to be down is if all the nodes+miners are down which would be nearly impossible even with a few dozens of nodes (current estimate is 6000+ nodes). However, in the very beginning, when there where 1 or 2-3 machines it was possible (see example in @Murch's answer, where that early on, there was only one node on the network: Satoshi's).


First, to clear things up, it isn't up to the exchange to quote a certain price/rate. It's all up to the users of that exchange what they ask/bid for a bitcoin. For example there are two exchanges, X and Y, with both have an ask one 500 USD and a bid on 400 USD. Then person A bids a higher price, lets say 470 (instead of 400), on exchange X. Person B asks a lower price, 430 (instead of 500), but he is one exchange Y, so their offers are never matched by the exchange itself. You however, are smarter. If you buy that coin (lets assume they both offer/ask a whole coin) from B, and sell it to A, you made a $40 profit (minus fees). Caching! Of course, these numbers are not plausible anymore. Think in cents/btc.

The discrepancy on different exchanges can indeed be the results of the effects you name. A few months ago, you could buy 'MtGox bitcoin', with a lower price then normal bitcoin. You weren't sure however that you could return that coin in the future.

But to answer your question, this arbitrage process can be completely automised and therefor fast as hell. There is no handwork involved anymore (just depositing/withdrawing USD/EUR). It is not very difficult to program (I half did it, without any knowledge in php or good programming skills), so there are a lot of scripts running, trying to make a small profit. Every ask/bid that has an arbitrage option is closed within tenths of a second. You cannot do it by hand. If you have made a script by yourself, you can get lucky if you import the data and execute your order at the right time.

edit: you can take a look at this site, they list options of arbitrage.


Most of the Bitcoin exchanges, are they using 3rd party API like
  blockchain.info or running their own node?

They're running own nodes.

  I'd like to know people could make an exchange solely relay on third
  party apis and are they safe ?

In my own opinion it's not safe to delegate service to third party services in case of money, especially if you can create and run that's service byself.


Are my BTC now BCH?! What happened?! Is my money lost?

If what you're saying is true, this sounds like a big problem.

BTC and BCH are two completely separate blockchains.  It's impossible to send bitcoin from one to the other.

If you send BTC to an address, then it's always going to be an address on the BTC blockchain, not the BCH blockchain.

So if you sent your BTC's to address X, then you sent them to address X on the BTC blockchain.  If you don't own address X on the BTC blockchain, then you no longer have access to those funds.


It looks like bitcore replaced the insight-api


Bitcoin Address Generator in Obfuscated Python is a fun piece  of Python 2.7 code:

_                   =r"""A(W/2,*M(3*G
               *G*V(2*J%P),G,J,G)+((M((J-T
            )*V((G-S)%P),S,T,G)if(S@(G,J))if(
         W%2@(S,T)))if(W@(S,T);H=2**256;import&h
       ashlib&as&h,os,re,bi    nascii&as&k;J$:int(
     k.b2a_hex(W),16);C$:C    (W/    58)+[W%58]if(W@
    [];X=h.new("rip           em    d160");Y$:h.sha25
   6(W).digest();I$                 d=32:I(W/256,d-1)+
  chr(W%256)if(d>0@"";                  U$:J(k.a2b_base
 64(W));f=J(os.urando       m(64))        %(H-U("AUVRIxl
Qt1/EQC2hcy/JvsA="))+      1;M$Q,R,G       :((W*W-Q-G)%P,
(W*(G+2*Q-W*W)-R)%P)       ;P=H-2**       32-977;V$Q=P,L=
1,O=0:V(Q%W,W,O-Q/W*                      L,L)if(W@O%P;S,
T=A(f,U("eb5mfvncu6                    xVoGKVzocLBwKb/Nst
zijZWfKBWxb4F5g="),      U("SDra         dyajxGVdpPv8DhEI
qP0XtEimhVQZnEfQj/       sQ1Lg="),        0,0);F$:"1"+F(W
 [1:])if(W[:1           ]=="\0"@""        .join(map(B,C(
  J(W))));K$:               F(W          +Y(Y(W))[:4]);
   X.update(Y("\4"+                     I(S)+I(T)));B$
    :re.sub("[0OIl    _]|            [^\\w]","","".jo
     in(map(chr,ra    nge    (123))))[W];print"Addre
       ss:",K("\0"+X.dig    est())+"\nPrivkey:",K(
         "\x80"+I(f))""";exec(reduce(lambda W,X:
            W.replace(*X),zip(" \n&$@",["","",
               " ","=lambda W,",")else "])

I'd check out these two Python modules:

Bitcoinaddress
Pybitcointools (a fantastic Bitcoin library: see the README.txt for usage)

A private key is just/can be a very large number. However it's not possible to use a calculator to calculate an address easily, mainly because:

modular arithmetic is involved
base 58 check is not a straightforward conversion
there's appended bytes and such

I'd recommend either this web app to get the next best thing.


Can I safely shutdown and restart?

Yes.

If yes how? Do I have to pass --reindex again or will bitcoin-qt remember and continue from where it stopped?

No, Bitcoin Core will remember that it was reindexing and continue the reindex.


Is a loss of trust in USD necessary for the success and mainstream adoption of Bitcoin?

There is not black and white answer here I guess, but here is my logic.

Let's say that trust is a proxy of security and stability and satisfaction is a proxy of liquidity, usability etc.
If we look at the extremes: if people had 100% trust in the USD, then they are less likely to look elsewhere for alternatives (holding everything else constant). Therefore less trust in the USD is more likely to increase BTC adoption and hence value.
However an improved usability, liquidity and other functionalities may be good enough reasons to increase BTC adoption as well.
Therefore, we can conclude that a loss of trust in not necessary, but it will help.


Can a blockchain offer transparency to a humanitarian aid supply chain?

It would largely function by pictures I would imagine. Let's say, for example, each crate of goods had a QR code, EDIT: with the private key known only to the supplier.

So the supplier gets these QR codes(public keys) , slaps them on the crates and sends the crates on thier way. The receiving end then must provide not only a video of those crates being opened in a food distribution center, but the video must include the QR codes in the footage. Then the supplier will know thier goods have not been hijacked, particularly if the video includes the goods being handed out on camera.

Those videos can then be published along with the QR codes for external verification on a blockchain.


How do "trustless third-party watchers" work in Lightning Network?

I suppose that when you refer to "third-party watchers" you mean watchtowers. I do agree that 'trustless' is probably an ambiguous word in this context. At the time of writing, the only actual proposal with a protocol that I am aware of is PISA, by Andrew Miller et al. PISA allows users to select a custodian that will be incentivised in publishing. Users pay the custodian, and the custodian loses funds if it does not perform (i.e. if the counterparty node manages to publish an old state).

At the moment, seems like Roger Wattenhofer is working on it too. However, They have not proposed a protocol yet. Their idea is to incentivise through rewards when channels are 'saved', instead of through penalisation when a watchtower does not save on time.

Both sides have pros and cons.

The con of Miller's proposal is that one must choose the watchtower, having to trust in it. The counterparty might try to bribe the watchtower, so that they both earn more than the penalisation.
Wattenhofer's proposal does not have this problem, as anyone in the network can retrieve the reward, and thus everyone is the watchtower. The problem of this proposal is that there are incentives for people to attack other people and prevent them from publishing themselves.

This is a work in progress. As for a self-claimed trustless watchtower, there has been some discussion in the ligthing-dev mailing list here and here, but it is yet a work in progress.


Blockchain.info, How to receive new transactions (not websocket)

Blockchain.info's API doesn't operate like a stream like the Twitter feed.  You can't page back and forth through the API like that.

For taking payments, it's best to generate a fresh address to receive the coins than to reuse an address over and over.  It becomes too much trouble to keep track of where/who each coin came from outside of bitcoin (the software running the wallet).  The software does it automatically if you just let it by using a new address for each incoming transaction.  Save the unique receiving address in the db and when it receives funds, you can easily find the order to complete.

Try their Receive Payments API.  They automate much of the process and post a callback to you once the funds are received.


Why do exchanges provide ask/bid transaction data like the NYSE and NASDAQ?

Where does it get its data?

It gets it from the APIs of those exchanges. For example, here's the Coinbase/GDAX API for order book information: https://docs.pro.coinbase.com/#get-product-order-book

AFAIU all the bitcoin transactions inside an exchange are just bookkeeping they do and the only real blockchain-recorded transactions are when you send bitcoin into the exchange, take bitcoin out of the exchange, and all the balancing activity the exchange needs to do to buy and sell actual bitcoin to keep themselves balanced. So none of these can be actual bitcoin-network transactions (appearing in the mempool), right?

Correct, none of this data is from the actual blockchain. It's entirely from the exchange APIs.

Only thing I can think of is that somehow when you become an SEC regulated exchange you've got to provide public visibility to the market - just like the NYSE or Nasdaq. Is that the case? Or is it something else?

I don't think cryptocurrency exchanges are regulated by the SEC since they aren't securities exchanges. It's just a standard feature that traders will expect on an exchange, much like you'd expect a speedometer on your car as a given. Order book information is necessary for traders to make informed trades, and if the exchange didn't make it available it would be missing key functionality.


If I only know my private key, can I still login to my wallet, even if this requires some calculations?

Yes. The main idea of mnemonic backups is that the mnemonic encodes a master private key. All other addresses that your wallet generates are derived from this initial secret.
To recover your transaction history and funds, you would need to go further than just to derive a single public key. You would need to rederive all of the wallet's addresses and then search the blockchain for any transactions that pertain to these addresses. The simplest way to achieve a recovery would be to import the mnemonic into the same wallet software that created it, or another wallet that implements the same derivation scheme (of which there are multiple, unfortunately).
I'd recommend that you additionally note what software was used to create the mnemonic, (and which wallet software you used to transact from the mnemonic, if the two differ). If you know it, you might also want to note the derivation path with your backup.


Bitcoins are only ever really anonymous if you mine them your self or were given them by a miner. Once bitcoins are exchanged on, well an exchange (especially one affiliated with the U.S.) then those bitcoins have been associated with you. You can transfer them to other wallet addresses, but it will be visible in the block chain.

You can cycle them through many different accounts, but unless you have hundreds or thousands of accounts, then any illicit activity could be traced back to your first transfer by a sufficiently savvy analyst.

I also think that in the current mining climate, it would not be a trivial feat to acquire enough computers to generate enough bitcoin to fund any significant endeavor.

It should be noted that any exchange operating in the U.S. is obligated to employ someone whose job description is to look for money laundering.


How do merkle trees ensure credibility to blockchain, when full node wrongly denies a presence of a txn in a block?

Your instinct is correct: a full node can lie-by-omission to a light client and deny them proof that a transaction was included in a block. This is a well-documented vulnerability of SPV wallets and the only mitigation really is to connect to more peers (you only need one "honest" peer).
This problem is also somewhat addressed by BIP157 aka "Neutrino". In this protocol, the light client scans entire blocks for its own transactions. It knows which blocks to check based on filters provided by full nodes. Of course, this brings us back to the first issue: what if a full node provides an invalid filter? Eventually we might see a soft fork that requires valid filters to be inserted in some part of the block, secured by proof-of-work.
Currently, BIP157 offers this:

Unless securely connected to a trusted peer that is serving filter
headers, the client SHOULD connect to multiple outbound peers that
support each filter type to mitigate the risk of downloading incorrect
headers. If the client receives conflicting filter headers from
different peers for any block and filter type, it SHOULD interrogate
them to determine which is faulty. The client SHOULD use getcfheaders
and/or getcfcheckpt to first identify the first filter headers that
the peers disagree on. The client then SHOULD download the full block
from any peer and derive the correct filter and filter header. The
client SHOULD ban any peers that sent a filter header that does not
match the computed one.


Cryptsy has a lot of currencies to trade. Right now you can only trade them one versus each other (BTC to LTC, NMC to BTC) but they are planning to start trading for USD.

You might find the interface cumbersome as well, but in my opinion it is still better then vircurex's.


I forgot where i created my bitcoin wallet

Your best bet might just be to look at your browser's history and use the search box to find which site you visited to create your wallet.


Is Quickbitcoins.net gone with all money?

The site was shut down in November and the former operator claims to no longer be involved with the service.

That operator is now attempting to raise funds for a new venture, Ziggap.

QuickBitcoins didn't take deposits.  They were a service used to buy coins for immediate delivery or for selling coins with immediate cash-out.

If you are owed bitcoins or funds from a cash-out transaction, the operator at the time would still be responsible for that liability, regardless of whatever disclaimer is provided about now "no longer having any relationship" with the service.


What is the maximum amount of users bitcoin is ideally suited for?

This is a highly speculative question. From a technical point of view there will eventually be 21 million (21e6) bitcoins in circulation, yes. But we are already witnessing a shift to using the millibitcoin (mBTC) when denominating prices.

This use of ever smaller fractions may go on until we reach the satoshi (1e-8 bitcoins). We would effectively have 21e14 satoshis in circulation. Even this limit could be shifted if there is consensus among the users of Bitcoin that such a change is indeed needed, but let's assume that it is indeed a hard limit. So we would have 21e14 units of accounting for a world population of 7e9. That would mean that on average each human would own 3e5, or 300'000 satoshis. The purchasing power of those satoshis depends on the evolution of the market price, but there certainly is no technical limit to the widespread adoption of Bitcoin.


Destination Tag of Ripple Desktop Wallet

I've never seen an exchange that required a destination tag even when sending to an account that doesn't require one. But any destination tag will do. The destination tag just tells the recipient account holder who to credit for the payment. But you are the recipient account holder, so you don't need this information. Entering one should be fine.


what is the difference between eatch coins wallet address,what is the coin public id/salt?

Yes, currencies like Bitcoin typically have a version byte that gets stored in the address which would be the PUBLIC_KEY_VERSION in the code you found.

More information here:

https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses

https://en.bitcoin.it/wiki/List_of_address_prefixes

There is another byte used for private keys as well. See:

https://en.bitcoin.it/wiki/Wallet_import_format

These bytes can't really uniquely identify a coin but they should make it harder for users to accidentally send Bitcoin to a Dogecoin address or make other mistakes like that.


Have any SPV users lost money because they accepted forged bitcoins?

I run simplecoin.cz|sk|pl|eu bitcoin exchange. We use different wallets and we made 10k+ transactions. We lost some bitcoins. Most of it was human errors. Some bitcoins were lost when transactions took days to confirm during network flooding. We encountered some double spend transactions (which did not confirm)

On other hand we never lost bitcoins when transaction had one or more confirmations.

I'm not sure if spv wallet can be fooled when transaction has confirmation already. We trade 5k$ almost every day, our conclusion is to wait for confirmation and know your customer.

There's also another risk in accepting even very small unconfirmed transaction and spending it to another customer, because like this you create whole tree of double spends which will never confirm, so you lock your funds for couple days until this toxic stuff gets pruned from memory pool. You also need to resend all this transaction again, it's paid by your time and customer happiness in the end.


Unable to get transaction with json-rpc command

You're trying to run code from example, dont do it, try with real transaction id, not from examples.

Examples:
> bitcoin-cli gettransaction "1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d"
> bitcoin-cli gettransaction "1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d" true
> curl --user myusername --data-binary '{"jsonrpc": "1.0", "id":"curltest", "method": "gettransaction", "params": ["1075db55d416d3ca199f55b6084e2115b9345e16c5cf302fc80e9d5fbf5d48d"] }' -H 'content-type: text/plain;' http://127.0.0.1:8332/


Which is the more productive miner output k/sh or G/hs

Your question doesn't really make much sense, I'll explain why:

As a miner, the number of hashes per second you can perform is relevant to the amount of payout you'll receive. More hashes per second for the same mining algorithm means a higher payout, all else equal. The 'k' or 'G' prefix is the shorthand for an exponentiation:

1 kh/s = 10^3 h/s = 1,000 hashes per second

1 Mh/s = 10^6 h/s = 1,000,000 hashes per second

1 Gh/s = 10^9 h/s = 1,000,000,000 hashes per second

etc.

With that in mind, the reason I say your question doesn't make sense is that the number of hashes per second is only one part of the equation for determining your mining income. The algorithm that allows your hardware to do more hashes/second is not necessarily the algorithm that will be most profitable to mine. There are many other factors, such as what your share of the network hashrate is, what the price of the coin you are rewarded with is, etc.

As a toy example, consider 'mining algorithm A' (maA), and 'mining algorithm B' (maB). With maA you can only do 1 h/s, but with maB you can do 1 Gh/s, so obviously you can perform way more hashes with maB.

However, if the total network hashrate of maA is only 5 h/s, and the total network hashrate of maB is 100 Gh/s, then you will have a much larger share of the hashrate for maA (1/5) than for maB (1/100). Assuming the block reward is equal, it will be more profitable to mine on maA, despite that apparently low hashrate.


There's no need to consider the timestamps in order to know the difficulty. The difficulty is stored in the blocks.
This is a bit speculative but in the past such threats have been discussed, more along the lines of the hash function being hacked, and I think in such cases there will be a large consensus to hard fork. If the hypothetical threat you're describing is basically an adversary with infinite free power then most like PoW would have to be abandoned. Let's worry about that we get there. ;)


It's important to realize that a domain name can represent either a host machine OR a sub-domain. Name-serving a sub-domain is done by delegating the job to name servers for that sub-domain. This is done by specifying name servers for sub-domain in the parent domain's zone file.

I'm not familiar with how to delegate sub-domains at GoDaddy, but I bet your issues are at least partly in this detail.

Also, you're not showing whether your seeder is in fact finding good nodes to give when it gets a request. (In this example, we see 21/223 available)

#./dnsseeder -h myseeder.mycoin.com  -n 184.254.106.32 -m admin@mycoin.com

Supporting whitelisted filters: 0x1,0x5,0x9,0xd
Loading dnsseed.dat...done
Starting 4 DNS threads for myseeder.mycoin.com on 184.254.106.32 (port 53).......done
Starting seeder...done
[18-03-10 18:09:09] 21/223 available (223 tried in 277s, 0 new, 0 active), 119 banned; 0 DNS requests, 0 db queries

In general, the important points are to choose a host which will run the DNS Seeder software, and then delegate name service for a coin's sub-domain to it. For examples:

 Machine                                       Sub-Domain
 --------------------------------------------------------------------
 m1.platform.com      hosts name service for:  myseeder.mycoin.com
 explorer.bitmark.io  hosts name service for:  biji.bitmark.one
 jp.bitmark.io        hosts name service for:  shido.bitmark.one

In this example, we are looking at a fragment of the zone file for the domain "bitmark.one".
 We are delegating name service for the "biji.bitmark.one" sub-domain to the name server at 'explorer.bitmark.io' and delegating name service for the "shido.bitmark.one" sub-domain to the name server at 'jp.bitmark.io'.

;; Thanks to: http://www.zytrax.com/books/dns/ch9/delegate.html
;;   for info clarifying the concept of DNS delegation !
$ORIGIN bitmark.one.
www             IN      A       204.68.122.6

biji            IN      NS      explorer.bitmark.io.
shido           IN      NS      jp.bitmark.io.

If we use dig to find which are the name server(s) for shido.bitmark.one (query type NS) we get the IP of its name server, 139.162.122.138 :

# dig -t NS shido.bitmark.one

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t NS shido.bitmark.one
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21880
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;shido.bitmark.one.             IN      NS

;; ANSWER SECTION:
shido.bitmark.one.      21577   IN      NS      139.162.122.138.

;; Query time: 29 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Mar 10 09:00:44 PST 2018
;; MSG SIZE  rcvd: 75

and just to confirm who will answer for shido.bitmark.one, we see that the ip 139.162.122.138 is jp.bitmark.io

# ping jp.bitmark.io
PING jp.bitmark.io (139.162.122.138) 56(84) bytes of data.
64 bytes from jp.bitmark.io (139.162.122.138): icmp_seq=1 ttl=52 time=101 ms
...

When we query shido.bitmark.one, which is running the DNS Seeder software, for addresses (query type A),  we get:

# dig -t A shido.bitmark.one

; <<>> DiG 9.10.3-P4-Ubuntu <<>> -t A shido.bitmark.one
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17729
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;shido.bitmark.one.             IN      A

;; ANSWER SECTION:
shido.bitmark.one.      59      IN      A       178.238.224.213
shido.bitmark.one.      59      IN      A       80.211.182.224
shido.bitmark.one.      59      IN      A       76.85.169.188
shido.bitmark.one.      59      IN      A       139.162.122.138
shido.bitmark.one.      59      IN      A       145.239.29.193
shido.bitmark.one.      59      IN      A       46.105.62.121
shido.bitmark.one.      59      IN      A       139.162.128.92
shido.bitmark.one.      59      IN      A       173.255.252.140
shido.bitmark.one.      59      IN      A       108.61.86.198
shido.bitmark.one.      59      IN      A       80.241.214.77

;; Query time: 159 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sat Mar 10 09:09:12 PST 2018
;; MSG SIZE  rcvd: 222

Which is what we want:  a list of active coin nodes in our coin's P2P network.

It's good to remember when setting up DNS Seeding that propagation of entries in the DNS system can take time - sometimes a matter of several hours or even days.  So when testing and probing, you may want to substitute actual IP addresses for DNS names wherever its possible without affecting the testing, to avoid uneccessary DNS lookups that could provide false results because DNS entries have not yet propagated throughout.


Can you run a bitcoin lightning node on a raspberry pi zero?

Will a bitcoin lightning node run on a raspberry pi zero?

This probably depends on what you are doing on the node, how much traffic it gets, etc. I have one running on a Raspberry Pi 3B with basically no traffic and its currently utilizing virtually no CPU and 0.8% memory.

  Does it have to have the full Bitcoin blockchain synced or can it
  connect to a remote node?

No, it can connect to a remote node. For example, see https://github.com/ElementsProject/lightning#getting-started.

  Also what are the minimum requirements to get a lightning node up?

I would recommend setting up C-Lighting, it currently works on Linux, and the dependencies are listed in the Installation section. You also need to fund a channel in order to be able to do any transactions.


How to test your Litecoin mining hash rate?

You can go to https://litecoin.info/Mining_hardware_comparison and see the hashrate corresponding to the equipment you have, assuming you know what is inside your computer. Actual results may vary, but usually this is a good estimate. Of course, if you overclock, you will get better hashrates, at the cost of increased power usage. If you want to actually mine, you will need to register at a mining pool and configure your miner to log in to said pool. The website you linked uses Java code to test hashrates, and this will not give accurate results (even for Bitcoin), as Java is usually slower than machine language.


What I would like to know is if all of this data can be transferred onto a Windows environment with minimal fuss.

Yep. Find the data directory on the Mac. Copy out multibit.wallet. Install MultiBit on Windows. Find the data directory on the Windows computer. Copy it there.

  He also says he has a "bridge" into his "trezor" that he needs as well.

He's probably talking about the Trezor plugin. This page explains how to set that up in the first paragraph.


Is there a way to access Ethereum Smart Contract's variables by name in JavaScript?

Note that this question has been automatically mapped to reddit and answered there.

If you declare your state variables as public, a function to read their values will be automatically created by the compiler ("accessor function"). If you use the rich interface provided by web3.js, you can create a javascript contract object and just call message() on that to get the respective value.

For arrays and mappings, the compiler will generate a function that has additional arguments which correspond to the indexes. For example, for a variable mapping(uint => uint[]) public data; the function will be equivalent to function data(uint x, uint y) constant returns (uint) { return data[x][y]; }.


For P2SH transactions, the redeemScript is what is put in the scriptSig for the transaction preimage, not the scriptPubKey of the output.


How can I reduce the time until I get the newest block ? Does the number of the outbound peers affect the speed?

Up until the latest release (v0.9.3), more peers actually means slower synchronization typically, because we only really fetched from a single peer.

The upcoming release (v0.10.0) has a completely rewritten block fetching/validation mechanism, which first validates headers, and then fetches the blocks from all peers in parallel. The result should be much faster synchronization.


Are sockets kept open when connections are made?

The bitcoin protocol says that any given node is connected to at least 8 other nodes.

Right.

  Does that mean that when a client connects to a node and learns about new peers... will the client keep the socket open and wait on recv?

No, since this is about connection between peer nodes, not about clients.

  Or does it just record the new peers and closes the sockets and opens a new connection when there is new data to be received or sent?

Nodes try to retain at least eight connections to peer nodes so that they can track the flow of new transactions and blocks on the network. Establishing a reliable set of stable connections to at least eight peer nodes is the objective here.


Generating a QR code using the NXT / Ardor api for scanning

https://nxtwiki.org/wiki/The_Nxt_API_Examples#Encode_QR_Code

You can do the following:

http://localhost:7876/nxt?
  requestType=encodeQRCode&
  qrCodeData=NXT-7A48-47JL-T7LD-D5FS3&
  width=100&
  height=100

Or via the command line:

curl -d requestType=encodeQRCode -d qrCodeData=NXT-XXX-XXX-XXX-XXX -d width=100 -d height=100 http://localhost:7876/nxt

You can use it in an image tag like this:

< img src="data:image/gif;base64,R0lGODlhEAAQAMQAAO....." width="100" height="100" />


Is CPU mining worthwhile for Litecoin? FPGA? GPU?

Litecoin CPU ScryptMiner

Download

http://www.mediafire.com/?l8i99fbyn41n97a

I have an i7 getting 40 k/Hash which is not too bad

Considering that with cgminer config correctly you will get an k/Hash result similar to the M/Hash result for your GPU mining activities

Check this out for an complete guide of what your outputs should be using both reaper & cgminer

https://bitcointalk.org/index.php?topic=117221.0

I think that given i5 cpu and lots as in 30 that u have @ your disposal then LTC should be a goer

mrb stated that with correctly configered s/w LTC & BTC mining should be on a par of ~ 0.0041/0.0040 BTC/LTC per hour for (600 m-Hash BTC/600 k-hash LTC) GPU card setup

https://bitcointalk.org/index.php?topic=131809.msg1414530#msg1414530


what will happen to coins on the other fork?

Move all your coins to a wallet where the private keys are under your full control.
You should not lose the legacy BTC that you have with any service now, but you may lose the new coins if they dont support the new fork.
Once you have the coins in your private wallet, you can get the software of all the new forks aopen your original "legacy" wallet with the new software and you will have the new coins.


Would it be possible to do atomic swaps with Monero and Bitcoin?

To do an atomic swap, you essentially need two things:

The ability to do 2-of-2 multisignatures. Basically every cryptocurrency supports this, including Bitcoin and Monero, though with varying degrees of ease-of-use. In Bitcoin you can use CHECKMULTISIG opcode; in Monero (and eventually Bitcoin, I hope) you can do 2-party Schnorr signatures which are more private and compact but require interaction. In Ethereum you can do 2-party ECDSA signatures which are complex and annoying but perfectly doable (or maybe you can use a multisig contract, but these are non-atomic and have super weird semantics, so caveat emptor).
The ability to have timeout refund transactions, so that if one party disappears halfway through the protocol, the other party will get their funds back. This is done using Bitcoin locktimed transactions or OP_CSV.

Unfortunately Monero currently does not have a way to do refunds. I believe it has locktimed transactions, but these aren't usable since Monero does not let you spend unconfirmed coins, meaning you'd have to put your coins up before making a refund transaction, leaving a window for your coins to get stuck. I don't expect Monero to ever support spending unconfirmed transactions, unfortunately, because these interact poorly with their ring signatures.

On the other hand, something like OP_CSV, where coins' spending conditions change after a timeout without the need for explicit locktime transactions, naively seems impossible in Monero since their ring signatures require outputs be labelled with public keys rather than scripts. Further, every output can have at most one public key since it must have at most one key image to prevent double-spending.

Fortunately, there is a third solution, proposed by Pedro Moreno-Sanchez, and AFAIK, not written up anywhere. (I'd welcome comments linking me to a writeup, I heard of this through the grapevine so maybe I'm just out of the loop.) The way this works is that outputs may be labelled with two public keys, each with the same key image. How can two keys have the same image? Essentially, key images are computed by hashing public keys into other public keys and then multiplying the result by the original secret key. If each key's "hash" is defined to be the other key, the result of this process will be the same thing no matter which key is used (specifically, the Diffie-Hellman secret associated with the two keys). This means that one key can belong to the original party and have a locktime on it, while the other key is a 2-of-2 multisig key used for the swap in the cooperative case. When spending, it is impossible to tell which key is actually being used.

(OK, if the locktime has expired it's almost certainly the locktime key being used, and otherwise it must be the non-locktime key. Pedro had a solution to that using rangeproofs on the locktimes but my feeling is that the complexity-to-privacy ratio is too high, and in any case it distracts from the essential point.)

This is not supported in Monero today but expect to see it in a hardfork down the road, because the ability to do atomic swaps, and eventually payment channels, is something its developers and community are very interested in.


How to transfer signed tx from coldstorage to online system for submission into blockchain?

I would reroute all incoming deposits to cold storage, which I would keep in small portions on different addresses.

Then I'd import some cold storage addresses to my hot wallet whenever my hot wallet is running low, keeping the amount in my hot wallet in the range between "not empty" and "what I'm comfortable having in the hot wallet".

As Mike mentioned, multi-signature addresses could provide additional security, and accountability.


Unexplained Segwit transaction results in wrong balance (mixed address transaction?)

You just experienced what is called a change address, when you send a transaction from an address, the wallet sends the amount to the address you put and sends the remaining balance to another address in your wallet. this is why you saw the correct balance in your ledger because the address is still in your ledger.


Are all private keys required to create a multisig bitcoin address

You do not need private keys at all to generate multisig m-of-n address!

You do need public keys. Yes, three for m-of-3 and eleven for 5-of-11 (for example)


If you have 10 Bitcoin, and pay Alice 9, the 9 will be unusable by either party until the transaction has been confirmed, them Alice will be able to use the 9 Bitcoin.
Since you only sent 9, you will still have 1 Bitcoin in your account that will be useable and available, no matter if the 9 Bitcoin transaction have been confirmed yet or not.

I'm not sure what you meant by the second question, but blockchain.info has a great explanation on how to use and change and import wallet addresses and other info here. You can also look up more info if needed.

A Hierarchical Deterministic wallet is just a wallet that you can back up and restore with a mnemonic, using 12 common English words. If you press the "backup funds" option, you can store these words to later restore your wallet if you lose it or etc. FYI, the wallet stores all the addresses you've had previously, so when you backup your wallet you backup all your addresses on the same account

Not if you run out of Bitcoin on your "cold" wallet, you won't have anything to "top up" on. If you decide to send 9 Bitcoin to Alice and your top up is 1 additional BTC, to reach 10, why would you do 2 separate transactions, one from wallet A and one from cold wallet? Wouldn't you want to just do 1 transaction of 10?

Happy Bitcoining


the terminal is just hanging there

Yes, if you want it to run in the background, you need to run with the -daemon flag.

  how can I examine the activity?

You can look at the debug.log file (in the datadir), or you can run with the -printtoconsole flag. You can increase the verbosity using the -debug flag (or specify a specific category, for example -debug=mempool; to see the various debug categories and more, use -help).

  For instance, see the coins that are being generated in my wallet, etc.

The built-in miner was removed in Bitcoin Core v0.13.0, as it was not even useful for testing purposes anymore. If you want coins, you'll need to either buy them, get someone to send you some, or run a mining setup (which at the time of writing almost certainly requires custom ASIC hardware).

  I've tried this proposed solution, i.e. to write

    bitcoind getinfo

You need to use bitcoin-cli now to communicate with bitcoind (since a few years ago...). The getinfo command still works but is deprecated. More specific information can be obtained using the RPC calls:

getblockchaininfo
getpeerinfo
getnetworkinfo
getwalletinfo
gettxoutsetinfo
getaddednodeinfo
getmempoolinfo


How to prevent specific method calls to bitcoin node

Bitcoin-core has no built-in mechanisms for restricting access to the API.

For your goals, you need to use a proxy between the user and the node.

For example, https://github.com/rsksmart/rskj/wiki/Nginx-Proxy-Server-for-JSONRPC-Calls


Use old legacy bitcoin private key generated from 2012 to generate a segwit address

Addresses beginning with a 3 generated using addwitnessaddress are called P2SH-P2WPKH addresses. That means it is a Pay-to-Witness-Public-Key-Hash (P2WPKH) script embedded in a Pay-to-Script-Hash (P2SH) address, which starts with a 3.

To restore from that private key, you should be able to just import the key into your wallet and call addwitnessaddress on it again. Note that addwitnessaddress is an experimental RPC call so the method to restoring may change in future, but you can always generate the corresponding public key hash (address) from the key, create a P2WPKH witness script for it, and wrap it in P2SH.


terminology and conceptual question about progress of PoW

Time only helps the attacker if they have more hashpower than all other miners together. That scenario is called a majority-attack and discussed on numerous questions on this site. Such an attacker can essentially rewrite arbitrary lengths of history.

However, if the attacker only has minority hashrate, time works against them. The more time passes, the more likely is it that other miners advance the blockchain further than the attacker in the same time. Once the attacker falls behind, nobody will consider their chaintip when it is broadcast and the attack is failed.


How an LN node can be sure about existence / liveness of an individual path of channels?

Short answer: no (unless you control all nodes on that path)

However the problem about uncertainty is part of the routing anyway. You know the topology of the network with the cltv deltas, routingfees and capacity of ech channel. Yet you never know how the capacity is split into balance of a channel. so once your lightning nodes computed a potential path the onions are constructed and the routing process starts and will only be successful if all channels on the way have enough satoshis on their side to forward the payment. The next time this path is supposed to be used again they have to construct the onion and get feedback from the nodes on the path to see if the payment can actually be routed through.

So to some degree it seems to be of little use to store previous paths that have been used.

if however channels would be closed or new capacity is spliced in (once splicing is implemented) nodes would get this information via the gossip protocol.


Where is the extraNonce in this coinbase transaction here?

Which part is the actual AntPool address

The miner's address is not part of the coinbase part of a coinbase transaction.

  and which part is the extra Nonce

There is no standard for putting extranonces in the coinbase transaction. It is really just arbitrary data. You cannot determine what is actually the extra nonce and what is just arbitrary data unless you know what the software that generated the coinbase transaction actually does.

  also why does it have decoded?

Typically miners will put some text in the coinbase part of the coinbase transaction. This text is encoded, and thus must be decoded in order to read it.


Is the following a valid bitcoin private key? - FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE


Perhabs your bitcoin datadir has moved. Try to start you client with the path to you folder containing the blockchain:

bitcoin-qt.exe -datadir=

Another posibility, the client is just reindexing the blockchain, not downloading. You can check this if you hover over the progressbar and look at the text.


Issues when creating Bitcoin Cash wallet

Probably you should retrieve the extended private key (or use the pass phrase you have remembered) from when you created the online wallet and create a new BTC wallet with the same information. You might want to do this with a wallet where you have more control on and which is local like Mycelium for Android. Then the address should be in that wallet and the funds as well.


A Sybil attack is an attack where a single adversary is controlling multiple nodes on a network. It is unknown to the network that the nodes are controlled by the same adversarial entity. For example, an adversary can spawn up multiple computers, virtual machines, and IP addresses. They can create multiple accounts with different usernames and e-mail addresses and pretend that they all exist in different countries.

Avoiding Sybil attacks is a difficult problem. In centralized systems they are typically avoided through heuristics that do not provide cryptographic assurance of Sybil resilience. For example, a centralized entity may try to avoid Sybil attacks by requiring that an individual IP cannot create more than a specific number of user accounts in a given time interval.

Sybil attacks are avoided in Bitcoin by requiring block generation ability to be proportional to computational power available through the proof-of-work mechanism. That way, an adversary is limited in how many blocks they can produce. This provides strong cryptographic guarantees of Sybil resilience.


Who would buy my bitcoin? (Hypothetical question)

A lot of exchangers have such liquidity but you will encounter issues with withdrawal limits depending on your verification level. Also I don't think you can expect transfers of that magnitude to happen at once - they will likely chunk it out by agreeing it with you.

As for the tax, it all depends where you live as I believe you will be taxed on income.

We all wish we could go back in time - however you have to look to the future, what tells you 1 Bitcoin won't be worth $100,000 in 5 years time?


CGMiner, share sizes, what does a shares size with a G appended mean, how much larger than a M (million) share is it?

G is short for "giga" (billions), just like M is short for "mega" (millions). Congratulations on a very lucky find that, sadly, won't pay you any more than any other share.


That's pretty easy! Just try the steps here:

Open the wordlist.
Choose 24 words
Go to mytrezor.com, press "Trezor recovery" and type the words you chose.
Don't forget to write down your words to somewhere.


How To get Address Public Key from Account XPUB?

To go from account xpub to address, you must first derive an xpub at the External index (0) or Internal index (1), then derive another xpub from the External/Internal xpub. Take the public key from the resulting xpub and this is the public key used for the address.
For a detailed explanation of extended public keys and how to derive child public keys, take a look at the BIP32 documentation. For a not-as-in-depth breakdown of deriving addresses from an extended public key (which is exactly what you're trying to do), I have written this writeup.


What are the (non-escrow) methods people are using to minimise bitcoin transaction fraud?

One possibility is to use 2-of-2 multisig. This means that if the parties don't reach an agreement, the funds are lost so they have an incentive to cooperate. (This is still vulnerable to blackmailing).

Another is 2-of-3 multisig with a 3rd party. If the parties agree (which is usually the case) the 3rd party doesn't need to do anything and can't control anything. If the parties disagree the 3rd party can arbitrate. This means that for a problem to exist, one of the parties and the 3rd one must misbehave, which is by far rarer.

It is a mistake to think that Bitcoin means there should be no centralized services. It means that whatever can be decentralized, should be; leaving centralized services with a reduced role, leading to lower barrier of entry, lower vendor lock-in and more competitive service.


Two kinds of Bitcoin addresses issued with bitaddress.org

Okay, so a compressed address and an uncompressed address are 2 separate addresses. They aren't linked, and the blockchain sees them as 2 entirely different addresses.
There are 2 different private keys, and the one starting with the number 5 is for the regular address whereas the one starting with the letter K or L is for the compressed address. If you want to use the uncompressed address you will have to import the private key starting with the number 5. If you want to use the compressed address, you will have to use the private key starting with K or L.
So now, what is a compressed address? The underlying ECDSA key for these two addresses is the same, just represented 2 different ways, one of which is longer than the other. The 2 private keys encode the same ECDSA key, they just have a small header that identifies whether the address being used is the compressed or uncompressed variant.
You should only use one or the other, not both. To the Bitcoin network, they are 2 different addresses, so if you wanted to use both you'd have to import both keys separately. However, because the underlying ECDSA key for both are the same, if you use both addresses, it is possible for an analyst to identify both addresses as belonging to the same person, and if someone got your compressed key, they would be able to easily figure out the key to your uncompressed address (and vice versa).


Are there any tools to visualize where the transactions are coming from and going to?

Blochchain.info also offers a virtuaisation of transactions, called tree chart. It can be view for every transaction over the "View Tree Chart" link.

Example: https://blockchain.info/tree/59587897

The link you posted seems to be offline, so I'm not sure if it's this sort of visualization you are looking for.


Transfer coins from Armory paper backup without Armory

Here it is step-by-step

Run armory in offline mode (simply run armory --offline)
Import the wallet into armory if you haven't already. (Import wallet, etc) (you probably don't need to do this if you have it on USB, just run that instance)
Click on the wallet and click "Backup This Wallet" and enter the password.
Select "Export Key Lists" and click the button at the bottom
Check "Private Key (Plain Base58)" from the checklist and nothing else.
Select "Omit spaces in key data", as these may cause an "Invalid private key encoding" during import
Take each private key listed in the window and import them into some other program (this might take a while)
Transfer the funds from the private key to a new address.


Tax implications in Canada of buying and selling Bitcoins?

Taxing authorities consider currencies or goods received in trade to be taxable income. Bitcoin would fall in the same category as foreign currency or barter, and would be taxable.

In Canada, barter is sometimes exempt from taxation:

"According to the Revenue Canada document T-490 (Barter Transactions): if the person(s) bartering is an employee, and not a business owner, they may exchange non-business-related services or goods "occasionally" without being subject to taxation. However, if the goods are business-related, or the exchange is "a regular habit" it falls under the category of taxable income, regardless of his employee status." source

Here's the Revenue Canada bulletin on barter and taxation:

http://www.cra-arc.gc.ca/E/pub/tp/it490/it490-e.txt


Are there any existing tools to measure the time required for block and transaction validation？

Bitcoin Core has inbuilt benchmarks which can be enabled using debug=bench, which breaks down the validation time of incoming blocks.


bitcoin recovery when exchange ceases business

They should be independent of the exchange that manages them I assume.

Should be
If coinroom was a regulated currency exchange then there might be some financial arrangements they would be required to make by law. There is no indication this was the case. Even if it were the case, people often set up businesses that do not obey the law, through carelessness, incompetence or deliberate criminal intent.
Cold storage
Coinroom may have claimed they kept funds in cold storage but I am not aware of any independent audit of their processes - no one can easily tell whether such claims were true.
Even if they were kept in cold storage - that does not by itself provide any guarantees about how those funds would be disposed of when the business ceases operations.
Not your keys, not your bitcoin.
When you buy BTC at an exchange, you are giving money to someone else that you trust. The exchange owns the BTC not you. What you "own" is a debt whose amount is denominated in BTC.  You have 0 BTC until you use that exchange's facilities to transfer that BTC out of the exchange and into your own standalone wallet - to an address for which only you know and/or control the private-key.

How do I recover my bitcoins

Creditors of a failed business
When you gave money to the business in Poland, you would, if prudent, have made a note of the registered company (if any), its address, registration details and it's owners and managers names etc. You could then find out the legal status of the company and if it has been placed into any insolvency process by company regulators in Poland. If so, you might be able to register as a creditor in any winding up proceedings.
Debt recovery, breach of contract etc.
You gave some money to a business in Poland. The way to recover money from a business in Poland is to engage a lawyer in Poland and see if a prosecution is possible under Polish law. This is likely to be expensive. It will take a long time (compare MtGox) there is no guarantee that this process will be successful.
Recovering stolen money
If you believe a crime was committed, you could report the crime to your local police. I wouldn't hold out too much hope of recovering your money, especially if you are not a resident of Poland.


How can I import an existing Blockchain.info wallet to bitcoin-cli?

It's possible to export your private keys from Blockchain.info (a bit of googling showed me this: https://github.com/OmniLayer/omniwallet/wiki/Exporting-Private-Key-from-Blockchain.info-and-Importing-to-Omniwallet.org) and then import it in bitcoind using the import function (as described in https://en.bitcoin.it/wiki/Original_Bitcoin_client/API_calls_list)

Good luck!


OK, thanks.
For anyone else doing this type of migration, the procedure I did was :

bitcoin-cli listaccounts   //to get amounts of all balances on each account
copy old wallet to newer version node
bitcoind -upgradewallet //to upgrade wallet to newest version

This procedure preserves all keys, addresses and makes account a label so now when you enter bitcoin-cli listlabels you get all labels as were accounts before

Since label can not have any balance, in separate database enter balance of each account/label from first step.

While upgrading make note of new transactions that should be added to wallet and run

bitcoin-cli listtransactions XXX where XXX is number of last transactions you want to see

add each new incoming transaction (if any) to database balance so balance in database match balance on wallet

That is it. Seems complex but it can be done in no time even for large number of accounts.
Best regards


Where can I find a record of blockchain soft forks?

Bitcoin Core maintains a document with all BIPs that are implemented, including those which establish a soft-forking consensus change. From that list, BIP16, BIP30, BIP34, BIP65, and BIP66 have been soft forking changes.

In the two first years of Bitcoin's history, changes were made more frequently, and much less care was taken that all consensus changes were backward compatible. Most of them probably were, though.


It's advisable to send bitcoins from one wallet to another. Messing with private keys always increases the risk of theft or user error.

If the reason that you want to change to an SPV wallet is that your harddisk is getting full, then update to the latest Bitcoin Core version (0.11) and have a look at the prune option. Sorry, the prune option actually disables the wallet, so that's not useful in your situation. Hopefully that will be fixed in the next version.

Note that an SPV wallet requires significantly more trust (in other people not lying to you) than Bitcoin Core.

As a more direct answer, you can export private keys from Bitcoin Core and load them into most(?) SPV wallets. I believe this should give you the details: How do I export my private keys from my Bitcoin-Qt client?


Do private people mining or exchanging Bitcoin with Fiat fall under FINCEN's definition of "user"?

The short answer is, it is complicated.  Below are some resources that may helpful.

As a disclaimer none of the below statements constitute legal advice and they should not be relied on.

I recently co-authored an article that contains some background information to your question. William B. Fleming and Joseph Evans, Bitcoiners in the Courtroom Part I: Government Oversight, Ford. Corp. L. Forum (Aug. 20, 2013).

TXT

PDF

The relevant portion is below.  Though, admittedly, it may not answer your question in full.  An argument can be made that the Guidance may have left room for a distinction between a miner who uses his Bitcoin for goods and services, and a miner who sells his Bitcoin for fiat.

"Notably, according to the Guidance, “users” are not subject to these registration requirements.   “A ‘user’ is a person that obtains virtual currency to purchase goods or services.”  Miners, too, are not subject to these registration requirements since “a person that creates units of this convertible virtual currency and uses it to purchase real or virtual goods and services is a user of the convertible virtual currency and not subject to regulation as a money transmitter.”

The most interesting part of your question really raises the issue of the scope of the definition for a "money transmitter."  Specifically: "are miners who sell their Bitcoin for fiat money transmitters?"

Page 5 of the Guidance offers an explanation that you may find helpful:

"A person that creates units of this convertible virtual currency and uses it to purchase real or virtual goods and services is a user of the convertible virtual currency and not subject to regulation as a money transmitter.  By contrast, a person that creates units of convertible virtual currency and sells those units to another person for real currency or its equivalent is engaged in transmission to another location and is a money transmitter."

Another helpful piece of information is located in footnote 10: "whether a person is a money transmitter is a matter of facts and circumstances.  The regulations identify six circumstances under which a person is not a money transmitter, despite accepting and transmitting currency, funds, or value that substitutes for currency."  31 CFR § 1010.100(ff)(5)(ii)(A)-(F).

This is the relevant portion of that statute:

(5) Money transmitter —(i) In general.

(A) A person that provides money transmission services. The term “money transmission services” means the acceptance of currency, funds, or other value that substitutes for currency from one person and the transmission of currency, funds, or other value that substitutes for currency to another location or person by any means. “Any means” includes, but is not limited to, through a financial agency or institution; a Federal Reserve Bank or other facility of one or more Federal Reserve Banks, the Board of Governors of the Federal Reserve System, or both; an electronic funds transfer network; or an informal value transfer system; or

(B) Any other person engaged in the transfer of funds.

(ii) Facts and circumstances; Limitations. Whether a person is a money transmitter as described in this section is a matter of facts and circumstances. The term “money transmitter” shall not include a person that only:

(A) Provides the delivery, communication, or network access services used by a money transmitter to support money transmission services;
(B) Acts as a payment processor to facilitate the purchase of, or payment of a bill for, a good or service through a clearance and settlement system by agreement with the creditor or seller;
(C) Operates a clearance and settlement system or otherwise acts as an intermediary solely between BSA regulated institutions. This includes but is not limited to the Fedwire system, electronic funds transfer networks, certain registered clearing agencies regulated by the Securities and Exchange Commission (“SEC”), and derivatives clearing organizations, or other clearinghouse arrangements established by a financial agency or institution;
(D) Physically transports currency, other monetary instruments, other commercial paper, or other value that substitutes for currency as a person primarily engaged in such business, such as an armored car, from one person to the same person at another location or to an account belonging to the same person at a financial institution, provided that the person engaged in physical transportation has no more than a custodial interest in the currency, other monetary instruments, other commercial paper, or other value at any point during the transportation;
(E) Provides prepaid access; or
(F) Accepts and transmits funds only integral to the sale of goods or the provision of services, other than money transmission services, by the person who is accepting and transmitting the funds.

These definitions can be found here: 31 CFR § 10.10.100

I hope that you find these resources helpful.

Joe


Converted Segwit address (YPUB) to Legacy (XPUB), but balances differ

It's not possible access funds in SegWit addresses (actually UTXOs) as if they were in legacy addresses. A SegWit address and a legacy address with the same public key map to different addresses, hence they don't share the same funds.


Will the block data saved or discarded after synchronization? Does it get removed when uninstalling?

The blocks will be stored on your hard drive in the application data directory. If you uninstall, the block files will be kept. There may be an option in the uninstaller that will remove them, but the wallet.dat file will be kept for certain.

Future versions of the mainline client, Bitcoin-Qt, will handle this storage differently via Simplified Payment Verification.


Block number + bitcoin address -> Find transactions with bitcoind?

some pseudo-code to work with the Bitcoin-Core 0.16 (if there are simpler ways pls lmk).

suppose you all have is height and addr

hash = getblockhash(height)
block = getblock(hash)

for txid in block[‘txid’]:

  tx = getrawtransaction(txid)

  for vi in tx['vin']:
    original_tx = getrawtransaction(vi['txid'])
    for vo in original_tx['vout']:
      if vo['n'] == vi['vout'] and addr in vo['scriptPubKey']['addresses']:
        print('this tx is relevant')

  for vo in tx['vout']:
    if addr in vo['scriptPubKey']['addresses']:
      print('this tx is relevant')


Looking for a Bitcoin Cash (bch, bcc) testnet faucet

There's a new faucet, it can be accessed here: https://testnet.wormhole.cash/faucet/

Edit: Broken! Coinfaucet still works.


I have bought bitcoin in the past but forgot which wallet it was. Anyway to find it with wallet address?

No.  Bitcoin addresses conform to a standard, and that standard purposely does not include any indicator of the wallet that generated it.  As such, any bitcoin address could be generated from any wallet.


Every Bitcoin in existence today exists as an unspent transaction output (UTXO) on the Bitcoin blockchain. That is, the output of an existing confirmed transaction that has not yet been consumed as the input of some other transaction.

Coinbase has a collection of UTXOs that represent the Bitcoins that they hold. When you tell Coinbase to make a Bitcoin payment to someone from your wallet, they choose one or more of those UTXOs to make the payment with.

They then form a chunk of data that claims those UTXOs and creates a new UTXO giving the Bitcoins to the recipient and one giving any change back to them. It's that chunk of data that they sign with the key for each UTXO they are spending with that payment.

Once the transaction is confirmed, the new UTXO for the recipient is the Bitcoins you sent them. When they see that UTXO appear on the blockchain, they know you paid them. They can then form a transaction that spends that UTXO to transfer those Bitcoins to someone else.


Who can predict that a benign attacker has 51% hash rate of the system?

1) As this benign attacker accepts any new block by other miners, is it again illegal to have more than 50% of the total hash-rate?

It is not illegal to have any percent of hash rate, you are allowed to have it. If you meant whether it breaks the bitcoin protocol, then the answer would be no if they are always benign. However, once they do turn malicious, they can harm the network. Refer to this link for what a 51% attacker can/cannot do.

  2) If yes, who can detect such a benign attacker?

I will present two arguments, one in a complete theoretical world and another one that uses some information that is not available to the bitcoin protocol.

Theoretically:
You cannot detect them. There could right now be a benign attacker which you describe and we cannot know about them. For a more concrete argument, consider the following two scenarios.

Scenario A: In this scenario, all the miners are honest and create certain blocks and honestly extend each other.

Scenario B: 60% of the miners are malicious(benignly as you describe) but choose to act as if they are honest.
All the block creation and exchanges which take place in scenario A and scenario B are identical. So from the point of view of observer, those are identical. And hence, in theory, we cannot detect such a benign attacker.

In practice:
    However, in practice, I believe that it is unlikely such a benign attacker exists as it would require lots of resources to be owned by a single party.


What happened to my coins, balance account is zero ... hacked?

7,5 hours ago your funds were moved in transaction d25efe9d5f1f2cc1fc253e4b32631fdb99870fb29b34d06fb48f43fb0de7ae92 to address 13fgTXgdyNVrq9qUxrkGzjoBVjQVZ9nKx4 which belongs very likely to bittrex.com . So the exchange might have information about the sender.
I'd report it to both the exchange and the police a.s.a.p.


I don't believe you can"t use the $() syntax to concatanate strings in node.

var message = `https://api.bitforex.com/api/v1/trade/placeOrder?accessKey=   ${accessKey} <--  &amount=  ${amount} <-- &nonce=${nonce} and beyond[...]`

you can simply do
message = "/api/blahblah" + accessKey

You obviously did this multiple times.  If the issue is something different I will return to the question but this seems simple.


Lost bitcoins on smartphone after resetting it, although I backed it up before

Go to the Menu->Safety->Restore wallet and select the backup file and enter the password you encrypted with.


Bitcoin has been unconfirmed for over 9 hours now am scared I don’t know what to fo

Just wait, your fee is low, so you have a low priority. It will eventually get trough.


Is DNSSec needed / Possible with namecoin?

No DNSSec is not needed with Namecoin.  The mapping from name to IP cannot be forged.

However, DNSSec requires changes to resolver libraries so the domains are actually cryptographically verified.

Namecoin, to be secure, requires similar changes to resolver libraries because nothing in the current resolver libraries actually checks the integrity of the results.

Anyone can run software to verify that a traditional (insecure, no cryptography) nameserver that resolves .bit addresses actually return addresses corresponding to the blockchain.

Thus namecoin name servers can be ensured to not "fool all the people all the time" by having some servers that continuously check the integrity of the results produced by the insecure but backwards compatible nameserver.


OP_RETURN transaction doesn't go to the blockchain

Can you give the full transaction, and decode it?

The default client nodes will not broadcast your transaction because it is not standard. That may be the problem. If it is mined into a block, however, they would not refuse that block just because it had non-standard transactions, because the transaction would be valid even though it might not be standard. For more on this, you may find the below questions helpful.

Which scripts are currently considered standard and therefore actually propagated?.
What node implementations and mining pools relay and process 'non-standard' scripts?.

That might not even be the problem, though. It could be signed incorrectly. You should make sure that the OP_RETURN output was included before the transaction was signed. You can verify that the signature of the transaction is valid using the code in this question: How to verify ECDSA of a sample litecoin tx using pycoin?.


What happens to a transaction once generated?

Regarding your update:

It's true that when a node receives a transaction, there is nothing forcing them to relay it.  They can just sit on it if they want.

But the network won't look like the picture you drew.  If Node1 actually wants his transaction to be confirmed, he wants to distribute it to as many other nodes as possible.  In particular, if Node2 is the only miner that knows about the transaction, then it can't be confirmed until Node2 successfully mines a block.  Assuming that Node2 only controls some fraction of the network's total mining power, this may take a (very) long time.  Node1 would prefer for his transaction to be included in the next block to be miner, no matter who mines it.

So for that reason, Node1 won't send the transaction only to Node2, but to many different nodes.  Bitcoin Core, for instance, will by default try to connect to at least 8 different nodes. If at least a few of those nodes are honest, they will relay the transaction to many more nodes, and so on. This also means that Node2 has less incentive to be greedy; it only helps to be greedy if no other miners know about the transaction (or very few), and Node2 knows this is not likely to be the case.  On the other hand, if Node2 is a miner, then she has a slight incentive not to be greedy: having invested in Bitcoin mining equipment, Node2 has an interest in having Bitcoin keep a high value, which will only happen if people continue to use it, and having their transactions confirmed fast would tend to encourage that.  So at some point, the incentives fall on the side of not being greedy.

(Keep in mind, too, that not all nodes are miners.  Many nodes on the Bitcoin network are run by people who don't do any mining, and just run a full node for fun, or to support the network altruistically, or because they installed Bitcoin Core with default settings and don't really know or care what it's actually doing.)

As for your second scenario, if Node1 is a miner himself, he can certainly keep its own transactions to include in his own blocks, rather than transmitting them on the network.  This also means that he won't have to pay fees for that transaction (or, equivalently, that he pays the fees back to himself).  There are two tradeoffs: (1) as mentioned above, the transaction will take longer to be confirmed; (2) if there is a high volume of transactions on the network, enough to keep all blocks filled, then by including his own transaction in his block, Node2 is giving up the ability to include someone else's transaction which would pay him a fee.  So it's up to Node1 to decide what is best for him. But this has no impact on anyone else, so it isn't really a problem for the network either way.


There are some pools that reroute the computational power, depending on where they can make the most money, i.e., they maximize their utility for a fixed amount of hashing power. Apparently the huge influx of computational power triggered these automatic coin choice pools to switch to the Feathercoin network, which again triggered more pools to switch.

In the end, the attacker not only had to fight against the computational power of FC, but also had to deal with the power coming from those pools, which proved to be too much, and he lost his majority.


What are some possible causes of the BTC-e 'flash' crash?

Flash crashes can and will occur in any market where technology (algos) determine trading.  Always tailed by real people panic selling (or panic buying).

Doesn't matter what market you are in.

There also the effect of futures trading (I know of a few futures/options houses that operate in the crypto-space).

There is really nothing you can do.  Worrying about it now (while it is happing is pointless). But to give you an answer (at least for litecoin pricing pressures) newer ASICs miners are 'supposedly' creating too much liquidity.

There are quotes from the old world of stock trading that ring true here (non-cited and paraphrased):

"The market is designed to make as many people look as stupid as possible..."

and

"Do you want to look like a fool before the crash or after the crash..."

Seems to apply pretty well to the new and shiny crypto-currency markets too.

But there is another quote that is pretty famous and great to light up those of us enveloped in the darkness of nasty market moves.

"Be fearful when others are greedy and greedy when others are fearful..."

Here is the thing, when everything is mined to the point that it is simply not feasible to continue and coins are lost over time then you will find yourself in a deflationary situation where all of a sudden your coins (bitcoins and litecoins) are hit with supply-side pricing movements to the up-side that will pale in comparison to anything you have seen before.

Since we are about half-way there, I would recommend relaxing and watching the fireworks because the low-hanging fruit is being consumed.

Finally, I would venture a guess that we will see this supply-side anomaly begin to take shape in early 2017.


Test in a box duplicating addresses how come?

Bitcoin Core uses a "keypool".  When it first runs, it generates a list of 100 new addresses.  After that, each time the user asks to "generate a new address" (or an address is needed for change, etc), the next address from the keypool list is used, and a freshly generated address is added to the end of the list to replace it.  The keypool keys are stored in wallet.dat along with your other private keys.

The purpose of this feature is so that when you back up wallet.dat, you get not only the keys you have already used, but also the next 100 you will use.  If this were not the case, then everytime you generated an address or made a transaction (generating a change address), you would have to immediately backup wallet.dat again, and you'd be vulnerable to losing coins if your disk crashed in the meantime.

So when you copied the entire Bitcoin data directory, including wallet.dat, you also copied the keypool.  As such, the next 100 addresses "generated" by both installations will be the same.    After that they will differ.

But you probably didn't really want to share the wallet between both installations, since this can cause confusion unless you really pay attention to what you are doing.  So you can delete the wallet.dat from one of the installations (if you have made real transactions with it, back it up first) and let it be regenerated.


Tracking incoming transactions using nodejs and own node

I was doing almost the same thing you need, to accomplish that I created a database with the addresses I wanted to monitor and keep track of them on the mempool of my fullnode which I could read the transactions and check each one of them if any of my addresses is there if it is I record the txid for further checking.
If the transfer gets confirmed before it is in my mempool (never happened to me) but the logic would simply be to check the block sent by ZMQ scraping all transactions and looking for any of the addresses.


why can I not recreate my blockchain.info addresses?

I solved the issue! the point was that in fact I should have removed 1. , 2. etc before my 12 word seed phrase.pretty funny, huh? :)


Advice on upgrading firmware on Ledger Nano

1st test your 24 word recovery backup with Electrum . Electrum as Ledger using BIP39 seeds. Crate new wallet with Electrum and choose " I already have a seed" then enter the 24 word recovery backup.

You can do it from Tails live system if you worried of keyloggers. No need to  connect to internet if you don't need to see your balance but just want to test your seed.


bitcoin paper wallet--multiple addresses

The bitcoin's wallet is made up of two keys, a public key and a private one. The general title of the wallet, where you can receive money from others, is exactly the opposite: it allows you to send your coins to others.
And of course your key, no one should know, so you do not steal easily, do not disclose this number to anyone.
Create a paper bitcoin wallet step-by-step.

here you can find in MY SITE more information regarding How to create paper bitcoin wallet


How can vulnerabilites in bitcoin be responsibly reported?

Information on current (ie, not past/public/resolved) security issues should be sent to the private bitcoin-security@lists.sourceforge.net mailing list.


Is the order of transaction inputs malleable?

The signature associated with an input doesn't just sign that input, it signs the entire transaction payload - basically every part of the transaction except the signatures themselves. (Technically, it appears to actually sign a hash of a serialized version of the transaction.)

It has to be that way. Otherwise, you could take someone else's signed transaction and modify the outputs to pay it to yourself instead of the intended recipient.

So if you modify the order of the inputs, you modify the signed payload. The signatures will no longer verify and the modified transaction will not be accepted as valid by anyone.

The malleable transaction attack worked by modifying the signature itself to a different but still valid alternate version. The payload of the transaction never changed.


Blockchain android app did a stupid thing!

It was my fault. What a stupid who i am. I'm really sorry.
It is fake application:
https://play.google.com/store/apps/details?id=android1.blockchain.piuk.bitcoinwallet

Report application to google If you can to prevent from another SCAM.
Thank You.


Estimated profit of a $400 21's RaspberryPi-ASIC computer?

We know only some of the variables so it's hard to make a blanket statement.

The chip mines at 50GH/s in the configuration given to consumers, while consuming 8W, for the whole device the consumption is likely in the order of 15W at the power point accounting for the consumption of the Raspberry Pi and conversion losses.

Power cost varies worldwide, but here's a general idea, all amounts are in USD.

╔═══════════╦═════════╦════════════════╦═══════════════╗
║  Country  ║  $/kwh  ║ Cost per Month ║ Cost per Year ║
╠═══════════╬═════════╬════════════════╬═══════════════╣
║  Iceland  ║  5.5c   ║     $0.55      ║     $6.57     ║
╠═══════════╬═════════╬════════════════╬═══════════════╣
║ Indonesia ║   11c   ║     $1.22      ║    $14.40     ║
╠═══════════╬═════════╬════════════════╬═══════════════╣
║  Norway   ║   17c   ║     $1.89      ║    $22.33     ║
╠═══════════╬═════════╬════════════════╬═══════════════╣
║  Spain    ║   25c   ║     $2.79      ║    $32.86     ║
╠═══════════╬═════════╬════════════════╬═══════════════╣
║  Denmark  ║   33c   ║     $3.68      ║    $43.36     ║
╠═══════════╬═════════╬════════════════╬═══════════════╣
║  Vanuatu  ║   60c   ║     $6.67      ║    $78.84     ║
╚═══════════╩═════════╩════════════════╩═══════════════╝

The amount of gross income from such a device is essentially unknown, the Bitcoin network difficulty is constantly changing, and so is the value in USD of the Bitcoin being mined.

Your income from a given hashrate is inversely proportional to the wider bitcoin networks hashrate, as it goes up your income goes down. The difficulty is adjusted every two weeks, and is growing single or double digit percentages per period at the moment. Planning ahead how much a miner will make even in one months time is essentially futile as a result of this unpredictability.

Without counting the power costs, for the current difficulty of 72722780642, a 50GH ASIC will produce 0.01037 BTC per month.

If the difficulty and price has not changed, they could sell this for $3.28. If they live in Spain, Norway, Indonesia or Iceland, they made a tiny profit over their power bill which can go to paying for the $400 cost of the device, in Denmark or Vanuatu they made a loss.


Create multisignature wallet from xpub keys in bitcoin core

This will be mostly possible in the upcoming Bitcoin Core 0.18 release.

First you need to understand that the sequence of such paired multisig addresses (with public keys generated from 2 xpubs in lockstep) can be described in the new descriptor language.

The syntax is sh(multi(2,XPUB/*,XPUB/*)). The sh indicates P2SH embedding, multi refers to multisig, the 2 means 2 signatures are required, and the two XPUB arguments are what the public keys are drawn from.

As descriptors are intended to be safe for human communication, they need a checksum in some cases. This checksum can be computed using the getdescriptorinfo RPC command, which will append a #CHECKSUM suffix.

Once you have the descriptor, you can do multiple things with it. One is determining the corresponding addresses using deriveaddresses.

bitcoin-cli deriveaddresses "DESC" [0,1000]

Will give you the first 1001 addresses (using keys with indexed 0 through 1000) for your descriptor.

You can also import them into a wallet, all at once using the flexible importmulti RPC, which in 0.18 is extended to support descriptors.

bitcoin-cli importmulti [{"desc" : "DESC", "range" : [0, 1000], "watchonly" : true, "timestamp" : "now"}]

Will import the first 1000 addresses, together will all information necessary to recognize payments to them, and sign for spending them (excluding the private keys, of course).

The watchonly indicates you're aware private keys are missing, but want to import as watched anyway.
The timestamp indicates the first time these keys may have been used. "now" means you know the keys haven't been used yet (or you don't care about their history); alternatively you can give a timestamp as the number of seconds since UNIX epoch to specify a birth time.

Note that this will not automatically watch for more than the first 1000 addresses as they get consumed - you'll need a new import command for that (for now).


Why can't Bitcoin switch over to Gridcoin's proof of work system?

Such a switch will never happen. There are three main reasons for this.

It would require the worst kind of hard fork, one where a lot of legacy code would have to remain in the coin, for the sake of validating transactions before the hard fork date.
While the reward system itself has been specifically designed to not be game-able (https://github.com/TheCharlatan/Gridcoin-Research/tree/master/contrib/BoincMonteCarlo), it is nevertheless destroyable by a malicious actor with reasonable funding, since it relies on a centralized service to distribute its data.
There is little to no research towards the specific crypto algorithms used to secure user information in the chain, such as https://github.com/TheCharlatan/Gridcoin-Research/blob/CPID-style/src/cpid.h . In fact the CPID (which is used to identify researchers) is an md-5 hash of some string and the user email, so it definitely does not compare to Bitcoin's standard of security.


Litecoin - mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation)

I am not 100% sure, if this also applies to Litecoin, as it is a clone of Bitcoin. But I understand the signature scheme is the same... So it should be possible to use openssl or any ECDSA library to check the signature. Therefor the double sea of the unsigned tx must be created, as per these steps by amaclin's answer:

  1) Remove input script from transaction

  2) Replace it with the previous TX's pubkeyscript

  3) Append SIGHASH_ALL

  4) Hash it twice with SHA256

I try to replay it, and get these values:

sig:         3045022100ac91b8da716668553088da2da32c596a03973fffcbc36d2a7f3ecb8e93c3de07022040b7015c065e74d6f5fc30c9458c0631ddfb2d72feae3bb699c6ce835cd0ba54
pubkey:      02d41b76393d5f82b1856343623974684ff2bf03b26ec6bc2d0391ae0768cd9ebd
double hash: c54fa81808f1feef80298f232f00b42fa5d548b964d580026799b1bf5f431529

This returns an error in signature verification. This can have several root causes... You said, "after adjusting fee's and other network variables": the fees are related to the amounts in the output structure, and they are signed. At anytime something of the signed tx is changed, invalidates the signature. This might be the root cause ...
Can we see the unsigned transaction?


Will I save on miner and network fees for sending btc if I import my bitpay wallet to another wallet like electrum or blockchain?

Will it help to import that wallet to another client like electrum or blockchain?

It should help. Electrum is better than Bitpay wallet. You can import wallet using seed phrase in Electrum.
Mempool looks clear right now so low fee rate transactions should get confirmed soon.

Ensure that you select BIP 39 option while importing:

Select "legacy" if you had addresses starting with "1" in Bitpay wallet:

I confirmed the first address after importing which is same in both wallets:

In future you can create a new wallet in electrum, move all funds to this wallet. Select "segwit" this time instead of legacy and use RBF for all transactions.


Any block explorer should do, if the address contains coinbase inputs (not to be confused with the company) then there's your proof of mined coins.
Read more about what coinbase transactions are here:
https://en.bitcoin.it/wiki/Coinbase
https://developer.bitcoin.org/devguide/block_chain.html


What is the optimal Bitcoin Core 0.17 settings in bitcoin.conf settings for running a full node with a very beefy system?

dbcache is the only significant performance influencing option.  Performance may be improved somewhat by increasing receive and send buffer sizes.

You don't specify exactly what application's you're concerned with speeding up.  To lower block reception latency you could connect to matt's public fibre network. See http://bitcoinfibre.org/public-network.html


Are there any blockchain explorers that provide raw Tx data and block headers?

You can get this info from blockchain.info, by simply adding ?format=hexto the end of the relevant URL.

For example, here is a recent block (height 509,244):

https://blockchain.info/block/0000000000000000000635bda771916ca727db53fea5441508f7161386e066be

And here is the raw data for that block, in hex:

https://blockchain.info/block/0000000000000000000635bda771916ca727db53fea5441508f7161386e066be?format=hex

(Note that you will need to parse the block header out of this data, as that URL will dump the raw data for the entire block)

Similarly, here is a transaction from that block:

https://blockchain.info/tx/74d350ca44c324f4643274b98801f9a023b2b8b72e8e895879fd9070a68f7f1f

And here is the raw data from that transaction, in hex

https://blockchain.info/tx/74d350ca44c324f4643274b98801f9a023b2b8b72e8e895879fd9070a68f7f1f?format=hex


How can I find the "real" difficulty on testnet?

You can use the getblocktemplate RPC command and look at the target field.


Difference in balance in my wallet and in btc explorer

The 3CyZ... address has a balance of 0.00946525 BTC, so it appears that your nicehash wallets includes some other addresses as well.

In general, a bitcoin wallet will include a collection of addresses: the more you use the wallet the more addresses it will generate. Best practices include only using each receiving address once (if you search 'address reuse' you'll find the reasoning behind this), so every time you send or receive a transaction the number of addresses you wallet controls will increase.

So to get an accurate account of your wallet balance, you'll need to sum the balance of all of the addresses the wallet controls, not just the 3CyZ.. address.


Can I use any "wallet" to store Litecoins?

Any wallet is based on the particular set of cryptographic functions used for a single cryptocurrency. If you tried to send dogecoins to a litecoin wallet address, the transaction would not be valid because the dogecoin blockchain is only a record of dogecoin transactions and the litecoin blockchain is only a record of litecoin transactions.


Is there a way to stop a man-in-the-middle attack when communicating addresses?

No. That is impossible if A and B have never communicated through a secure channel to exchange keys before, unless you are willing to trust another user, for example a user, D, you know and have safely exchanged keys before, that says it trust users B address, creating a web of trust or less preferable a certificate authority. This is a known and significant issue in public key exchange.


What if all the 8 peers of the node are malicious?

But what if all the eight nodes to whom a given node send the transaction are malicious/faulty? And all of them change the message in the original transaction. Wouldn't it allow for wrong transaction to get merged in the blockchain network?

Transactions have signatures that sign the whole transaction (except signatures. Signatures are added after the transaction is signed). Signatures prove authenticity so it's impossible to change the transaction without invalidating the signature check.

  I just want to know that when a node sends the transaction it received to its peers, the peers send it to their peers, how does the network keep the count of which transaction has been accepted by how many nodes?

There's no count of acceptance. Every node keeps its own mempool which is a list of transactions that could be included in the next block.

PoW is about making blocks. When a block is broadcast, the transaction becomes the part of the immutable blockchain (unless that block is orphaned (replaced by another block.))

If the only nodes you're connected to are malicious, the worst thing they can do to you is to isolate you and log your IP-address and transactions.


HD Wallets, XPUB and child private key leaks

Children created by these wallets are not hardened

They are m/44'|49'|84'/0'/0' for trezor one/T and m/49'|84'/0'/0'   for ledger X/S. All subsequent children aren't hardened.

If an xpub is leaked for a mnemonic phrase + passphrase, if you have
any of the children's private keys, you can compromise the entire
wallet linked to the xpub and all other children, hardened or
non-hardened BUT the attacker will not be able to compromise any other
meomonic phrase + paassphrase you have as it has a different xpub, and
ultimately different children

This is the explanation from bip32: "knowledge of a parent extended public key plus any non-hardened private key descending from it is equivalent to knowing the parent extended private key (and thus every private and public key descending from it). This means that extended public keys must be treated more carefully than regular public keys."

I want to know how it's even possible to leak a childs private key on
a trezor or a ledger as none of the outputs are able to leak these

Private keys should never leave hardware wallets without any extraordinary cause. Usually, only the master seed is transferable as a possibility from a hardware wallet device. And there are not many reasons to do so. If an attacker is able to backdoor your device and steal keys, the fact of sharing xpubs would be irrelevant.


How long has this message been supported by other clients?

It was added by Satoshi in Bitcoin v0.3.18 (released on december 8th, 2010)

  How many existing nodes support it?

All of them. It has been used by SPV clients for a long time to do fast synchronization without downloading all historical blocks.


Is transaction time correlated to block generation time

On average, based on Bitcoin protocol, a block takes 10 minutes to mine.  Transactions that optimize miner profit take precedence in the block. In other words, the transactions that pay the highest fee get incorporated into the block first and therefore get confirmed the fastest since currently the mempool is large. The mempool consists of all transactions that are waiting to be mined into a block. A transaction that pays a low fee can be stuck in the mempool for a very long time if the mempool remains crowded, so it’s hard to say how long a particular transaction can take; but, yes, a transaction that is broadcast to the network remains unconfirmed until mined into the blockchain.