text:
What effect on Lightning Network would be of setting dustrelayfee to 0.003 by all nodes?
Having thought a lot of spam bloating my node, I cannot but wonder of what effect on Lightning Network would be of setting dustrelayfee to 0.003 by all  nodes, instead of the default value of 0.00003. From my calculations it would force the minimum funding channel amounts, e.g. given the rate 15sats/vbyte and the size of the funding transaction being 164.2vBytes one would have to have the amount of 0.0483BTC for funding the channel.
It seems that such filering would prevent many spam transactions from being relayed. Or at least to force a spammer such as this one to some additional Bitcoin so that instead of paying just the fee they would have to pay additional 13.220kb*0.003BTC/kb=0.039BTC to someone or to themselves. In the case of the spammer not having that much BTC it may stop him in his tracks for some time.
Would such filter disrupt channel closing transactions of the Lightning Network?
In particular, would such filtering prevent closing of many single-funded channels that have exhausted their spending capacity?

The dustrelayfee is used to calculate dust thresholds. The change you propose would increase all dust thresholds by a factor of one hundred. This would make transactions with recipient or change outputs of less than 29,400–54,600 sats (depending on output type) non-standard. The proposed change would not increase the transaction fees users need to pay.

Or at least to force a spammer such as this one to some additional Bitcoin so that instead of paying just the fee they would have to pay additional 13.220kb*0.003BTC/kb=0.039BTC to someone or to themselves.

It is not clear to me how you got to this conclusion. The dust threshold for P2TR is currently 330 sats, and under your proposal would be 33,000 sats, 0.008 times of what you calculated. The linked transaction has a single P2TR output that is 10,000 sats which under your new rule would need to be at least 33,000 sats. Your value seems to be based on the transaction weight, but the minimum output amount does not scale with the actual transaction weight.
Given the larger minimum output amount, it seems to me that this change would increase the minimum HTLC amount that can be reliably enforced on chain, but other than that I don’t see how it would hamper LN much.

I compute the minimum output to be virtual_size_of_tx * dustrelayfee . If this is not the correct formula then what formula is? dust = (input_vsize + output_size) × 3 sat/vB is very enigmatic to me as mempool.space does no break down transactions details into input_vsize and output_size. Your value seems to be based on the transaction weight, but the minimum output amount does not scale with the actual transaction weight. I used virtual_size to compute the minimum input. Doesn't the minimum input from grow linearly with the growth of the virtual size of the transaction?

Since third parties cannot predict the vsize for an input based on outputs that commit via hash to arbitrary scripts, the input vsize is estimated per the corresponding keyhash input for scripthash outputs. For P2TR this is the size of a P2TR keypath input. The first topic I linked to goes into more details.


text:
Would it be possible to sync a new node without it being connected to even one unpruned node?
There are some Proof-Of-Work chains where pruning is default on their nodes, i.e. the network does not rely on full unpruned nodes at all:

Due to the pruning mechanism, Kaspa nodes only needs ~3 days of prior history to be stored by each decentralized machine.

1. Do Kaspa rely on additional assumptions that Bitcoin do not rely on in order for such prunning to work?
2. How do Kaspa nodes construct their utxo set in such circumstances?
Who is to verify the signature
Lets imagine that some time in the future due to some reason (be it high cost of storage or due to protest against on-chain inscriptions) everybody node on a Bitcoin network is a pruned node. In that circumstances and within current Bitcoin protocol:
3. Would it be possible to start a new node from scratch. Would it possible to verify a the last 550 mb of blocks without having a connection with even one full, archival node.
4. With a node that was just started from scratch, would it be possible for such a node to construct the UTXO set in which there would be some utxos that were created below the blockheight of the chop off point.  As far as I know, the utxo set is constructed by each node based on the data in the blocks (and not synced with other nodes as it is the case with blocks) - correct me if I am wrong.

If every node on the Bitcoin network was a pruned node, I believe it would not be possible to start new nodes or to recover a wallet from a seed phrase or from a backup file (e.g. of a wallet.dat without chainstate data).
I guess that Kaspa prunes its directed acyclic graph (DAG) of blocks in a way that preserves the ability of a new node to build and verify a UTXO set from the remaining data. After reading the description you linked to, it isn't clear to me how this is safely done. I doubt it could be applied to Bitcoin.

source: Stack Exchange

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

sort: votes


text:
What op_codes are used to inscribe "microstrategy orange" spam?
Other than pricing out peer-to-peer financial transactions out of the scarce blockspace, can such inscriptions also bloat the UTXO set of Bitcoin?
What op_codes are used to inscribe the decentralized identity content.

According to the specification, data for IDs is embedded into the blockchain through either OP_RETURN outputs, or through inscriptions.
OP_RETURN outputs have no effect on the UTXO set since they are provably unspendable and are therefore never inserted into it.
Inscriptions look like any other Taproot output, so will initially have an effect on the UTXO set in the output's creation. Storing the data on the blockchain requires spending the UTXO in order to reveal the data that is present in the tapscript. This necessarily removes the UTXO from the UTXO set, and is therefore a net neutral interaction on the UTXO set. Since their protocol requires the information to be revealed, it is unlikely that the data stored in this method will have any measurable effect on the UTXO set.
The inscriptions method uses the same script opcodes and construction that ordinals' inscriptions do.

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


text:
Why is the decription of listreceivedbyaddress misleading and contradictory to what says its name?
From bitcoin-cli --testnet help listreceivedbyaddress:

listreceivedbyaddress ( minconf include_empty include_watchonly "address_filter" )
List balances by receiving address.

The issue is that listreceivedbyaddress does not do this, though it actually does what its name suggests.
Let's take a look at this address.
listreceivedbyaddress shows what corressponds to Total received and not Balance.
One can easily verify it by importing the address, bitcoin-cli --testnet importaddress tb1qf9p5mrl2mf4ulae257ewj2rns6hsu2y4p8j0q2,
to their wallet.
Am I missing something or is it a bug?

The confusion is due to the fact that contrary to how block explorers show information, Bitcoin (and by extension the Bitcoin Core wallet) isn't designed for addresses to hold an individual balance.
This is more a philosophical point than a technical one. Addresses are entry points into a wallet. They are identifiers to be given out for individual payments, and by observing how much was received on them, you can track which payments were completed. However, once received, the coins are managed by the receiving wallet, pooled together with coins received on other addresses for the same wallet. For example, wallets, when constructing payments, will consider all coins received on all addresses, and even move remainder to new change addresses.
Again, there is nothing technically wrong with the notion of "balance of an address" - one might think of coins as belonging to an address until those coins are spent. But this isn't the philosophy used in the Bitcoin Core wallet (and several other wallets).
So what the listreceivedbyaddress RPC does is show the total of what was received on each address; exactly what you need to determine which bills/invoices/items were paid. To determine how much remaining balance you have in your wallet, use getbalance and related RPCs, which show the balance of the entire wallet, taking received coins on all addresses into account, and excluding any coins already spent - on chain or pending.
Given the modern notion of "address balance" popularized by block explorers, I do agree the explanation in the RPC help is confusion, and could be improved.


text:
Obtaining Bitcoin Cash generated at the fork in August 2017
I had Bitcoin in my ANX Wallet at the fork in August 2017 I transferred it to my Blockchain wallet in September. Is there any way I can obtain the Bitcoin cash generated at the fork?

It sounds like ANX will not give out the private key to your wallet, at least not now.
ANX terms 16.5:

16.5 In the event of a Fork, the value, function, and/or even the name of the Digital Asset you store on the Exchange may be materially
  affected. In any such event, you agree that ANX may temporarily
  suspend the service (with or without advance notice to you) in its
  sole discretion and ANX may decide based on commercially reasonable
  efforts either (a) configure or reconfigure its systems or (b) not to
  support (or cease supporting) the branch derived from the forked
  protocol. In the instance of any private keys held and managed by ANX,
  ANX does not convey ownership or any related rights associated with
  the Users. You acknowledge and agree that ANX assumes absolutely no
  responsibilities whatsoever in respect of an unsupported branch of a
  forked protocol.

Bitcoin Cash fork happened August 1st, 2017, only way for you to claim Bitcoin Cash is if you manage to persuade ANX to give it to you, or give you the private key.
However, you may be eligible for Bitcoin Gold if you had Bitcoin in your Blockchain.info's wallet 2017-10-24,if so then follow this procedure.

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


text:
What came first, transaction or mining?
I have been thinking for a while and can't really figure this out..
From my understanding, in Bitcoin network, 'bitcoins' are created when a miner successfully mines a transaction. So this means in order for the network to create a bitcoin, there has to be something to be mined and that something is transaction.
But what I also read, the first transaction was from Satoshi to Hal where Satoshi transferred 10 BTC to Hal. How is the possible since to create 10 BTC, they had to do mining previously which can only be done on previous transaction which makes this transaction not first.. Circular.
Or is it the genesis bitcoin was created without mining? Could be the case, but I am not able to find a reference to that.

The first block is the Genesis block which starts with reward which is typically sent somewheres. Must of been sent to Hal. So I guess the transaction came first which was sending the mining reward. The next block required mining.

^ this is incorrect. In fact the genesis block coins are not able to be spent. The first transaction was sent to Hal, but I believe that was not until ~block 9.

Mining was first, as you say, there had to be bitcoins to transact which must have come from mining blocks. The key is, that blocks can be empty. Most early blocks were. And even some blocks now are mined empty, e.g. this one: https://blockchain.info/block/0000000000000000005afd87cdbb34e8126674766c261619044c4c213286d72b
Blocks always contain a Coinbase transaction which pays the reward to the miner regardless of whether there are any other transactions to mine or not.
The incentive for miners to include other transactions in blocks rather than leave them empty is the transaction fees.

'Empty block'. That what I needed. And to "blocks always contain a Coinbase transaction', can you put me to a link or elaborate this? Do you mean Coinbase exchange?

The coinbase transaction in a block refers to the newly minted coins, which are a reward the miner may claim for finding the block. There is also a business called coinbase, but they have no relation beyond the name.

No, coinbase exchange is completely unrelated. https://bitcoin.stackexchange.com/q/4571/51948

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


text:
CAN I GET MY MONEY BACK FROM AN OLD MYCELIUM WALLET ? I HAVE THE BITCOIN ADDRESS MYCELIUM SUPPORT SUCKS NO HELP AT ALL
CAN I GET MY MONEY BACK FROM MYCELIUM I HAVE MY BITCOIN ADDRESS  THERE SUPPORT SUCKS MYCELIUM CRASHED THEY GAVE ME A NEW WALLET BUT I HAD MONEY ON THE OLD ONE I CAN NOT GET THERE SUPPORT WILL NOT ANSWER ME

Do you remember making a backup of the old wallet? If so you should have a secret 12 word phrase written down (never give this to anyone else, not even helpers).

Do you still have access to the old wallet on an old phone perhaps?
If, so you should look into exporting your private keys and then you can use any other preferred wallet and import the same set of keys and youre good to go :)


text:
Enable Bitcoin payment for a new SaaS
I'd like to create a Software as a Service (written in Python, so it would be nice to have good for this language) with some paid content in BTC.
Basically, I would like that users are able to pay:

Directly in BTC. I have identified Coinbase and Bitpay, but I would
also consider using a wallet on my own (in this case, I will use
bitcoinlib).

Through a "broker" with PayPal, Visa, etc. and I receive BTC.

I am interested to know your experiences/opinions and if you can give me some pointers.

Look no further than BTCPayServer - "a self-hosted, open-source cryptocurrency payment processor. It's secure, private, censorship-resistant and free."
The description above taken from their website is absolutely spot on. BTCPayServer allows you to easily accept payments for free, and without an intermediary (unlike Coinbase, BitPay, paypal etc - don't use these, there's absoluteley zero need to pay their exorbitant fees!). It's a fantastic project built and funded by a whole host of awesome bitcoin devs and contributors.
There's a number of very easy deploy options and plugins (e.g. WooCommerce and Wordpress).

Thank you so much! I just read the documentation and this is even better than what I had in mind...


text:
Binance now updating my btc balance
I transferred some ltc coins from gdx to binance. Binance shows that I have the transferred amount in my profile. But btc balance for trading is always shown as 0.000000. How much time will it take to reflect. I am trying to buy xrp and unable to buy because of that. what may be the issue?

did you convert your litecoins to btc?


text:
unconfirmed bitcoin transaction since last 10 days
(0d868f6d6459be4b343ac6442c8d4c484fd28370c4e7753f59f8b8669ef828c3)
This is he transaction which i have  done at 16 december and it is still pending
what to do ?

Unfortunately you paid a very low fee 53.223 sat/B
And the transaction may never get any confirmations a very little chance
In this case the transaction will be cancelled after a period of time and return to original address.
The next time you create a transaction you need to look for current average fee which is now as an example 620 sat/B (Satoshi per byte).

"And the transaction may never get any confirmations"... Well, the fee-situation is bad at the moment. But you could send the same amount for a fee of 10,000 sat/b 3 months ago. If the lightningh network is published, the fees will probably go to zero again.


text:
How to move blockchain.info api created wallet to be used by bitcoin core
I originally created my wallet through the blockchain.info api.  I have since downloaded the bitcoin core and it's finishing downloading all the blocks now.  What is the process to access this wallet directly?  Also, is this a one way transfer, or will it still be usable through the blockchain.info api?
Thanks.

You would need to extract the private key from blockchain.info, and get it imported into bitcoin core. See here:
I don't know how to export a private key from blockchain.info
You may need to repeat this step, if you have several wallets in blockchain.info.
Once done, it is like having two wallets, with the same privkey. Nothing prevents you from using both.


text:
Can someone post an explanation of how to get the input/output addresses?
Can someone post an explanation of how to find the source and destination addresses of a transaction from the input/output portions of a block?

From input script? you mean just like that:
ScriptSig: PUSHDATA(72)[3045022100f4427952c78e1dc5108bc57a101a53f766706ee08fa99c24ec17f05d06e66ffb02201e826952e13a3042b6599bcfc921ad14504e08cf05f19f82eb8d1111e56ee1a701] PUSHDATA(33)[0236371dd8c40e66849d7fda6f78645ca0222798de7d1f3df8d1af78eb114d719b]

hmm, Bitcoin? Altcoin? from input/output portion of a block? In Bitcoin a block contains transactions, and these transactions move coins from one address to another. Besides bitcoin.org and of course Andreas book "Mastering Bitcoin", this here is maybe the shortest way:
http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bitcoin.html? Otherwise you may need to rephrase your question, so we can find the right answer / approach...

@pebwindkraft Thanks for the response! I guess I'm trying to figure out where the source and destination addresses are stored in a transaction? Does that make sense?

in general: I have added a sample tx, which explains the details:
VERSION
 01000000
TX_IN COUNT [var_int]: hex=02, decimal=2
 TX_IN[0]
  TX_IN[0] OutPoint hash (char[32])
  BC8361DEC060BFE1D481BDA60B3127524B8FF65F307221DE105E9DDB3F3B6053

--> this is the previous tx, which contains funds to move
  TX_IN[0] OutPoint index (uint32_t)
  hex=01000000, reversed=00000001, decimal=1
  TX_IN[0] Script Length (var_int)
  hex=6A, decimal=106
  TX_IN[0] Script Sig (uchar[])
  4730440220128487F04A591C43D7A6556FFF9158999B46D6119C1A4D4CF1F5D0AC1DD57A94022061556761E9E1B1E656C0A70AA7B3E83454CD61662DF61EBDC31E43196B5E0C10012102B12126A716CE7BBB84703BCFBF0AFA80283C75A7304A48CD311A5027EFD906C2

--> this script has the signature, and the following public key (starting with 02B12126...) - this is where the funds were signed with, and would be the source address (you would need to convert the pub key first to the bitcoin address - see references in my comments)
  TX_IN[0] Sequence (uint32_t)
  FFFFFFFF

--> and here follows a second input, from which this transaction moves funds... same rules as before.
 TX_IN[1]
  TX_IN[1] OutPoint hash (char[32])
  A75B4B6369ABC4A5F0A95FF714460BFA33802A2C422FD06D7B28771570C4520E
  TX_IN[1] OutPoint index (uint32_t)
  hex=00000000, reversed=00000000, decimal=0
  TX_IN[1] Script Length (var_int)
  hex=6B, decimal=107
  TX_IN[1] Script Sig (uchar[])
  483045022100A428348FF55B2B59BC55DDACB1A00F4ECDABE282707BA5185D39FE9CDF05D7F0022074232DAE76965B6311CEA2D9E5708A0F137F4EA2B0E36D0818450C67C9BA259D0121025F95E8A33556E9D7311FA748E9434B333A4ECFB590C773480A196DEAB0DEDEE1
  TX_IN[1] Sequence (uint32_t)
  FFFFFFFF

and here follow the outputs...
TX_OUT COUNT, hex=02, decimal=2
 TX_OUT[0]
  TX_OUT[0] Value (uint64_t)
  hex=9025730000000000, reversed_hex=0000000000732590, dec=7546256, bitcoin=0.07546256
  TX_OUT[0] PK_Script Length (var_int)
  hex=19, dec=25
  TX_OUT[0] pk_script (uchar[])
  76A914FCA68658B537382E27A85522D292E1AD9543FE0488AC

--> this pk_script defines the conditions, under which the funds can be spend. It is encoded in bitcoin's script language, and would finally translate to an address: 1Q2tmgphDqFJxhFFYNrjBr5o8XKSSDKtXv
 TX_OUT[1]
  TX_OUT[1] Value (uint64_t)
  hex=9838110000000000, reversed_hex=0000000000113898, dec=1128600, bitcoin=0.01128600
  TX_OUT[1] PK_Script Length (var_int)
  hex=19, dec=25
  TX_OUT[1] pk_script (uchar[])
  76A9146AF1D17462C6146A8A61217E8648903ACD3335F188AC

and this is a second script (usually a return address), which translates here to: 1AkUKA3NNQt4gs3GGexhacnkSMcmYHsN3S
 LOCK_TIME
00000000

Hope this helps, as mentioned before, Ken Shirrifs link is probably best to quickly follow.


text:
On Coinbase Pro does anybody know what criteria are used to decide if a limit order should be rejected due to insufficient funds?
I'm playing around with their sandbox api and trying to figure out when a buy order will be rejected due to insufficient funds. It seems that market orders will be rejected only if you give the order funds greater than the amount of USD you have in your wallet. That seems straight forward enough. The case for limit orders seems a little bit more complicated. If I have $1000 in my wallet and I specify a buy order for 1 BTC for $1000 the order will be rejected due to insufficient funds. I'm guessing this is because I need money for any possible fees. However if the order goes on the order book as a maker order.
My question is do I need enough USD for possible fees regardless if the order becomes a maker or a taker order?

If you place a market buy order but there's not enough USD in your wallet to cover the order plus the fee, what happens with the fee?   Do they just buy a little less BTC than you specified, so that there's enough USD left over to pay the fee?

From experimentation it seems like if you're placing a limit order you need enough USD in your account to cover any possible fees regardless if the order will become a maker or a taker. I'm going to mark this as the answer util someone corrects me.

As mdornfe1 pointed out, it has to do with fees, specifically maker's fee that seem to be around 0.7% on the sandbox (which does not match what their doc say...)
Another option is to send the order as "post only" instead of "allow taker"


text:
How to move bitcoins to own wallet from other wallet
I am new to bitcoin community and I have a website where I want to collect payments through bitcoin or altcoins.
For now I want to know that can I shift my bitcoins from one wallet to another
wallet without paying any fee if yes how can I do this with my limited knowledge
of bitcoin network.
Here is the example of my situation :-
I have generated a bitcoin address for myself called MainWallet
now I have generated two bitcoin addresses for my customers to collect payments for example we can say CustomerWallet1 and CustomerWallet2 now if my customer pay for their respective orders  let say I got 1 BTC on both customer wallets can I shift this 1 BTC to my MainWallet from both of my customer wallets without paying any miner/transaction fee.
If yes how can I do this manually on my windows PC.
Please note : I have private key for all address which I have generated here.
Thanks

Do you mean between wallets or between addresses?

between wallets

Which wallet solution are you using?

I will use wallet from bitcoin.com.

For transferring bitcoin between wallets, you can import the private keys for the relevant addresses into the wallet in which you desire to have the bitcoin.
If you mean between addresses, then you will have create and broadcast a transaction with an appropriate fee.

So if I import my customer wallets into my main wallet can I spend all my balance from my main wallet?

If you import the private keys for your customer wallets into your main wallet, then you will be able to spend the bitcoin in your customer wallets from the your main wallet.

Ok, in this case fund are still shown in customer wallet address or my main wallet address?

Unless the private keys you import into your main wallet will be removed from the customer wallets, the funds will be shown in both.

Last thing, Is it possible to remove private key from customer wallet after import?

That will depend on the wallet you are using.


text:
bitcoin core RPC vs bitcoin libraries
What is the main difference between using one of the bitcoin libraries to create a project and using bitcoin core json RPC API directly by connecting to your node for everything?
If the library has no full node support, which part exactly requires you to use a fullnode and which part can be done without full node?
https://en.bitcoin.it/wiki/API_reference_(JSON-RPC)#Java The link mentioned for library doesn't work here but I found BitcoinJ and it mentioned that you don't need local copy of bitcoin core so how does everything happen without node?

you may want to specify which libraries you are referring to when you say "between using one of the bitcoin libraries", otherwise the question is not very clear.

In simplified terms...
Libraries work more like a calculator that simply process the data you feed it.
The JSON-RPC API can not only process the data you feed it, but also gives you access to the data you need.


text:
If my service only accepts Bitcoin, will there be a lot of missed customers who only have non-Bitcoin crypto currencies?
I'm about to release a service which only takes payments in Bitcoin.
I'm wondering if this will impact me negatively in terms of not getting business from people who own other crypto currencies.
I don't reject the others out of ideological reasons, but for practical ones:

My hard disks are already overflowing from the 335.8 GB Bitcoin blockchain.
I barely trust Bitcoin Core to run on my computer -- I don't trust non-Bitcoin clients whatsoever.
Even if I did have the storage space and the trust, I would have to learn the respective RPC APIs (assuming they exist) for each "altcoin" as well. It took me a very long time to grasp the Bitcoin Core API.
Any kind of reliance on a third-party service is unthinkable due to KYC/AML BS, as well as the obvious risk with getting my money stolen if somebody else "holds them for me".

Is there any way around this? Is there some kind of mega-trusted "multi-coin" client which doesn't need to download the entire blockchains, yet is able to securely and locally handle multiple of the biggest altcoins, so that I could support those for payments?
Or would anyone who has altcoins also have Bitcoin? I get the feeling that they are very, very few, but perhaps they are also more likely to spend their coins compared to the stubborn "HOLDers" of the increasingly valuable Bitcoin?
I know myself that I'm very unwilling to part from any of my Bitcoin, especially as the price is increasing... It's just a fact for me, but I can't speak for others. I don't have any other crypto currencies myself, and the times I've looked into them, I've just been put off by their software. (In the cases where software even exists!)
Advice?

If you don't trust Bitcoin Core, I'm not sure what could possibly be worthy of your trust - especially if it needs to spread its review attention across support for multiple currencies. If the disk storage is an issue, run in pruned mode - it doesn't affect your ability to accept and verify transactions. (Disclosure: I'm a Bitcoin Core contributor).


text:
Can you think of a safe way to safely keep my "spendable" Bitcoin in my situation?
I have my "cold stash" wallet.dat on multiple fully offline, encrypted hard disks/sticks inside a fireproof safe. I never seriously considered printing them onto paper because that would be too stealable/seizeable. At least they would have to point a gun to my head for me to give them the encryption key as I have it currently.
My "live" wallet.dat is running on my Windows 10 machine with Bitcoin Core. Yes, I know how insanely bad Windows 10 is, but I have also taken insane measures to be as safe as I could possibly be. But still, every day, I fear that some kind of malware update or 0-day will just snip away all my "live" coins.
(I say "all my coins" as if I have more than one Bitcoin in my live wallet. Yeah, right... More like "all my satoshis".)
Now, I'm strongly considering starting to regularly buy $100 worth of Bitcoin each month, regardless of the current price, because I'm convinced that it will skyrocket at least 10x and maybe 100x in the upcoming years.
However, this makes me even more scared of getting them stolen.
I can't buy a physical wallet because, just like paper ones, that screams "steal me" or "seize me" to the burglars/coppers.
I do have a Raspberry Pi (v1) which I'd love to use as a dedicated "Bitcoin station". Sadly, they made it so incredibly cryptic (no pun intended) to enable encryption on that thing, that I've simply given up on ever doing it. Note that, since you have to "burn" an image onto the RPI's "hard disk" (flash memory), there is no installer like on x86 machines, where you normally can select encryption. It has to be done "after the fact" in an extremely convoluted and impossible to follow manner. It's as if they don't want RPIs to be secure...
Putting any amount of BTC in an "exchange" or "bank" is impossible both because I don't trust them whatsoever (and for good reasons), but also because they all require "KYC/AML" crap now. (Bisq is how I get new coins.)
I've been thinking and thinking, but I simply can't see any way to make sure that I have some Bitcoin secure and accessible at the same time. I wish I had pre-generated some receive addresses for my cold wallet and written them down so that I could regularly "send in" some to it, to keep as few satoshis as possible "live". (It still boggles my mind how that is technically possible!)
Is there something I haven't thought of? Is there like a dedicated "Bitcoin OS" for the RPI or something which encrypts itself on the first boot and is rock-solid and minimal and dedicated only for Bitcoin?

Wallet.dat itself is encrypted if you use a password. No need to encrypt the entire Pi. It would probably be a waste of performance to encrypt the whole chainstate, so might as well only do wallet.dat anyway.

Storing your wallet backup in only digital format is terrifying to me. All digital devices will fail, given a long enough timeframe. You should really consider making a physical backup of some sort.

i'm confused, why don't you just use a hardware wallet? it covers everything you mentioned perfectly. you can set a pin number on the hardware wallet and it will wipe itself after sufficient incorrect attempts, and if you keep the seed safe you can recover your coins even in the event the physical hardware wallet is lost or stolen.


text:
unconfirmed transactions made 1 month ago
I have 2 unconfirmed transactions made 1 month ago, i need help !!!
2adc111438150800e1f6e2746adb4a66f7d81b77800f68585990c9fbcc418c6a
and
3a9f86a7a697c241b83b841857976aff196d8a76fc42c12be407424d14295716

your fee is too low.

i see my fee is to low but how can i edit them? i have the wallet on blockchain.info

You can't "edit" it. But you can look those answers. They explain all your options: https://bitcoin.stackexchange.com/questions/9046/why-is-my-transaction-not-getting-confirmed-and-what-can-i-do-about-it


text:
Sending coins without wallet just address
My wallet is not working and is not showing I have any amount of money in my account. I have the wallet address and the transaction record showing that the money is in my account. How can I send this money to another wallet to save it?

This answer to a similar question may help you. https://bitcoin.stackexchange.com/a/67800/71255

By wallet i am assuming its not on exchange. And by coin i am assuming you are talking of Bitcoin. So if your coins is stored in bitcoin core qt wallet then you can reuse the private key to sign the transaction.
So if my assumptions is correct than you can go to debug console in your QT wallet and type
dumpprivkey XYZ
where xyz is your address which you are saying you know it.
Once you have your private key with you you can use API
1) createrawtransaction [{"txid":txid,"vout":n},...] {address:amount,...}
2)signrawtransaction  <hexstring> [{"txid":txid,"vout":n,"scriptPubKey":hex},...] [<privatekey1>,...]
3)sendrawtransaction <hexstring>

checkout apis available in Bitcoin to know more.

To spend a cryptocurrency like bitcoin, you need to sign a transaction with the private keys (which are controlled by your wallet software). Just knowing the address the funds are sitting in does not help you do this, you'll need to get your wallet working in order to move the coins.

if you are tech savvy, then there is a possibility to find the private key in your corrupted (depending on wallet), that you could then use in another wallet and spend funds from there. Search the forum a bit, there are many entries on lost private keys or corrupted wallets.


text:
Can i transfer/deposit bitcoin from another exchange into my bit coin account for trading purposes?
Can I deposit bitcoin from another exchange to be used for trading?

If you need help, at least put in the effort to ask a clear question.

In general you should be able to transfer your bitcoin between any two exchanges for trading.
As an example, you may wish to move BTC from GDAX to Gemini for trading. First you should get you'll need to get a deposit address for your Gemini account. Next you should follow the instructions to withdraw digital currency to an external address from GDAX.
You'll need to have created an account at each exchange you wish to use. You should also make sure that you have completed any required identity checks before you send an exchange your bitcoin. You should also expect transfer fees and possible withdrawal delays.
I recommend transferring a small amount between exchanges first. You should also try selling that small amount on your new exchange and withdrawing money to your bank account.


text:
Bitcoins stuck and showing as negative on block chain
I sent money to a Bitcoin address which keeps changing on hourly by the time I sent the btc and it could get to the other end the address at the other end changed. Now the transaction is stuck somewhere I am not sure need your help to retrieve my lost btc

Can you elaborate? Transaction 3bed5f667d64c4175893f93681816f5d47cb5a47f64831d8be4ff12dc619f7ab is confirmed, not stucked as you suggested.

The amount did not reach the other end showing in negative ... so how can I retrieve this back please suggest

Sites which generate new addresses every hour always keep the old addresses too, so your bitcoins won't be lost. The second transaction which shows the amount as negative means that the bitcoins were then transferred out of the address shortly after you sent them. Looks like everything is as expected though.

Can you please suggest how can I retrieve the btc back to my wallet

You can't, if you sent it then you have to ask them for a refund (whoever you sent it to)


text:
How does the Lightning Network stop flooding nodes (DDoS) with micro transactions? Is this even an issue?
I'm creating a "Megathread" regarding the Lightning Network and have been fielding questions. To help obtain the correct answers with sources, I'm reaching out to the Bitcoin StackExchange.
Thank you in advance for helping the community understand more about this great technology.

It's generally preferable if your (detailed) question is in the body of your post, not just in the title.

As of right now, Lightening Network suffers from the same flaw that allows mempool spamming in the Bitcoin network (making tons of incredibly small transactions with normal fees), and therefor if there are a large number of microtransactions, will suffer from the same flaw.

All channel updates are broadcast to everyone. How badly that will suck depends on how fast updates happen, but it's likely to get painful somewhere between 10,000 and 1,000,000 channels.

It is important to note that the mempool attack works by creating an artificial demand for space in a networks mempool. The transaction fee is average or above average, but there is little to no output. This attack works because it forces real transactions to pay higher fees.
However in LN the problem is different. It is more a question of what the network bandwidth can handle. This is not to say the issue is not fixable, the LN Developer listed in the source goes on to say that this system is not optimized. A possible solution would be for the seller to only send the preimage (for more information on how LN transactions hop through the network) to the those who have created an HTLC with the seller and to pass the preimage along the chain of debt until it reaches the payee.
Source: RustyReddit, RustyReddit


text:
Can the Lightning Network work on any other cryptocurrency?
I believe Lightning can be used with other cryptos such as LTC, what needs to be implemented to make it compatible with other cryptos? How difficult is it to implement on those other cryptos if they are compatible?

The answer to this question depends on how broad you define the Lightning Network:

If you want to run the currently specified protocol (and any of the current implementations without having to modify them), you'll need to use either Bitcoin. Litecoin is partially supported by some of the implementations, but Lightning is being built first and foremost for Bitcoin.
If you are talking just about the specification, you'll need to have a Bitcoin derivative that also implements Segregated witnesses.
If you want to port Lightning onto a cryptocurrency, you need to at least support the UTXO model of accounting, and a malleability fix. In addition you need to have some form of knowledge contingent payment similar to HTLCs to perform multi-hop payments.
If you want to drop the UTXO model, you might get away by reworking the functionality in major ways, like the folks at raiden did for Ethereum.

So it's all in the eye of the beholder, but these are the requirements for various forms of payment channels and off-chain payment networks, from simple (and precise) to really hard (and fuzzy).

It works with LTC and any other cryptocurrency which implements SegWit.
The currency must have a transaction malleability fix (which segwit provides).
(Meaning it is easily adaptable to be used for all such currencies).

At least Litecoin, Vertcoin, and Decred all support Lightning Network.  At least those three use forks of the btcsuite-based btcd: ltcd, vtcd, and dcrlnd, respectively.
I saw an article on configuring the Zap wallet to use Litecoin and it requires changing the configured port to communicate with ltcd... I don't have those specifics available here at this time.
As far as I know, they all run on Bitcoin's testnet3.  Following this topic closely.

Yes it's applicable for few other currencies like Litecoin and also other privacy coins like ANON.But privacy coins usually prefer Sapling over Lightning for the upgrade.


text:
How can you make sure that there will be routes with large enough balances to handle transactions?
I'm creating a "Megathread" regarding the Lightning Network and have been fielding questions. To help obtain the correct answers with sources, I'm reaching out to the Bitcoin StackExchange.
I was asked to make a separate post for each question.
Thank you in advance for helping the community understand more about this great technology.

This is not so easy. Infact it seems almost impossible to be done in an elegant way. While the capacity of public channels is known to everyone on the network the balance of each channel is unknown.
As nodes sharing their balance is

a privacy issue,
technically in a peer-to-peer network difficult as the channel state / balance might change several times per second and gossip protocol propagation takes longer and
Hard to proof validity of a published the channel Ballance

We usually don't know the balance.
Thus a Sender could just use try and error which is particularly inefficient in large networks as the number of paths grows quite quickly.
In practice node operators could use "manipulated onions" to probe nodes for a current minimal channel balance. Which obviously is also difficult as the balance might change quickly.
In precise people work on AMP routing which means doing several small payments (maybe even over several paths) instead of a large one or JIT routing which allows nodes along a path to rebalance their channels if they don't have enough balance to forward the onion. (disclaimer I proposed JIT routing and it is not clear yet if it becomes a lightning standard)
On a Side note :maybe you want to add my youtube channel with lightning educating to your mega thread (which in the past helped me a lot! Thanks!)

It's all done in the process of finding the best route between a payee and a seller. This post details that process pretty thoroughly
Relevant tidbit:

Altogether, "shortest" would be some combination of reachable, sufficient liquidity, lowest fee, fewest hops, and most reliable. As Hash Time Lock Contracts are nearly trustless (only potentially locking your money for some time), and operating a routing wallet should have low resource requirements, it seems likely that the payment routing market should achieve a healthy competition, therefore discouraging nodes to lock money by establishing channels just to earn fees from routing. Payment channels between nodes that have some form of regular business relationship seem more likely as there is an immediate benefit.

Context and explanation: The post describes the process that nodes in the network rank their connections by desirability in reference to a transaction. The node that is doing the calculations takes in many factors include reachability, sufficient liquidity, lowest fee, fewest hops, and reliability.


text:
Will the lightning network reduce BTC Liquidity due to "locking-up" funds in channels?
How will people be able to buy and sell their BTC if all of it is locked inside Lightning channels?

Lightning Network payment channels are not really "locking up funds". Your funds are not locked, you can still send money to people and transact over the Lightning Network, even if you don't have a direct payment channel with those people. LN lets you route payments through others. So if you wanted to sell some Bitcoin and you have an open LN channel, then you can route your money to an exchange that supports LN and thereby deposit your coins. Then you can sell them. In your LN channel, you would have 0 Bitcoin, so you have actually sent your Bitcoin elsewhere.

"LN lets you route payments through others" only if the route between your node and the recipient node has enough capacity. This relies on every channel in the route between your node and the recipient's node to have enough capacity to carry your coins through the network to their destination. If the capacity is used-up OR the route doesn't exist then your funds are locked up in the channel.

There isn't necessarily just one route between two nodes. It is very likely that there will be multiple routes between nodes with each node (note that all users of LN are nodes) having multiple channels. So it's very likely that a route will be found that can allow you to transact with the other person.

I don't see how that's possible or probable - for what reason would a node have an open channel to a random person with capacity more than the amount they need to send to that person once?

The node may be running in autopilot mode where it opens and closes channels automatically and as it needs to without the operator having to do anything. Autopilot mode in LND maintains several open channels which the operator does not necessarily know about so that when they want to make a payment, there will be at least one route it can use. It also lets more people route through that node. Furthermore, payment channels are not for one time use, so it is reasonable that you would put more funds than just one payment's worth into a channel for future use.

Pre-funding is exactly the issue I have: channels must be funded with more BTC than the amount I'm sending at the time, but funding those channels with more BTC than I'm sending at the time means my coins are sitting in a channel waiting to be used. The set of payments possible on LN is a subset of the payments possible on the blockchain because it requires not only a route to my destination but also a route with enough capacity for my payment to go through it. Let's be clear about the trade-off: LN increases scalability at the cost of locking up funds in a smaller potential spending pool.


text:
Can a bitcoin exchange recover coins sent to a previous address used on said exchange?
In my case, I withdrew from my exchange account from wallet ABC (if I look up the trx on block explorer, it says it came from public key ABC). A few weeks later I went to deposit more money into my exchange account, however I accidentally sent the bitcoin to wallet ABC instead of the nominated 'deposit address' on my account.
I'm freaking out that my coins may be lost. Would the exchange be able to sweep this wallet and credit it to my correct account?

Why can’t you again withdrawal from walllet ABC? It should still be associated with your account on the exchange site.

Yes, it would be possible because they hold the private keys for that address. You will need to contact the exchanges customer support. However while they may be technically able to do so, they may not actually credit your account.

They probably already credited whoever's address that is. Say Alice sends bitcoins to her deposit address. When you withdraw, the exchange can use any bitcoins they have, which might include the ones Alice deposited. So your bitcoins will come from her deposit address. If you send bitcoins to that address, the exchange will credit Alice.


text:
'Create a new receiving address' is greyed out, why?
on the new wallet I created the button for 'create new receiving address' is greyed out. I've tried looking for answers over several places but most the guides and posts are outdated.
Also the wallet says its encrypted and locked, and on 0.20.1 There does not seem to be an unlock button under 'File' or 'Settings'. I did try to make a send txn where it asked the passphrase to unlock, but given there's no bitcoin in the wallet it failed, but I tried this to see if I could unlock the wallet.
Please help, the default wallet and a new wallet I created (without a passphrase) have no issues on generating a new receiving address, however this encrypted one, I can't click the button to generate a new receiving address, and I can't understand why. I've also enabled 'coin control features'.
Help,

I fixed it by running 'getnewaddress' on the RPC console of that wallet. I don't know how or why! but the button to 'create new receiving address' is no longer greyed out! Wooo!

This issue is reported in https://github.com/bitcoin-core/gui/issues/105 and fixed in https://github.com/bitcoin/bitcoin/pull/20230

Dont check the 'Make blank wallet' option when creating a new wallet.
Blank wallets don't initially have private keys or addresses, those can only be imported. Having the new wallet encrypted or not has no effect on the ability to create a receiving address.


text:
Is bitcoin egalitarian or is there a hierarchy of owners of the cryptocurrency?
I hope my question will be well understood and well received. I see bitcoin as a passive system, as far as I know, and therefore egalitarian, but maybe there is a situation where at the point someone puts in a bid for it, the whales get the cheapest bid and at that point it creates hierarchy and inequality, I don't know, so this is why I asked the question.
As a general rule, nobody is going to treat you different as an individual owner of bitcoin whether you buy or sell it, but I don't really know. I don't know how the exchange is programmed, I don't know if it has a high frequency trading that is biased.
Does Satoshi and the original buyers of bitcoin have more power over other bitcoin owners?

The exchange of Bitcoin is carried out under the laws of a free market (supply and demand). The  mechanics of the blockchain and Bitcoin do not intervine in the buy/sell of the cryptocurrency. The only aspect that the code of Bitcoin affects the cryptocurrency in the economic field is by its programmed scarcity which makes the currency a deflationary one, and therefore creates an upward pressure for the price (makes the price go higher).
Exchanges simply serve as a means through which people can buy or sell Bitcoins for other currencies (fiat or cryptos) and it is performed outside the blockchain. Only the transfer of the funds takes place in the blockchain.


text:
What is local Bitcoin?
I was listening to the Pompliano podcast and there was this really awesome guy talking about how he has been able to use local Bitcoin to stay afloat in amidst a collapsing economy and society in his home nation of Venezuela.
He shared how others like him have been able to survive economically thanks to local Bitcoin, but what is local Bitcoin? Where can I learn more about it?

LocalBitcoins is a service that allows you to trade BTC with real money. The difference between it and other exchanges is that LocalBitcoins staff themselves don't buy or sell, but its users set their trading fee, price, and the currency, and to buy or sell bitcoins the site allows you to find a merchant-user.
A local Bitcoin does not exist. The BTC blockchain is a whole and only meaningful if it's together.


text:
If I send bitcoin or some other crypto from my wallet to Binance and I don't see a deposit, what could be going wrong?
I am still very new to the world of cryptocurrency but as of a couple of years ago I realized its significance and now I am afraid I have a lot of catching up.
Anyway, what happens if I send Bitcoin, Ether, XRP or Dash from my wallet to Binance and I don't see a deposit, what could be going wrong there? How do I troubleshoot something like that?

If you don’t see your deposit right after you made the transaction, you should wait a little bit, it shouldn’t take so long to have your transaction/s into the blockchain of x cryptocurrency.
Transactions can take minutes and even hours in order to go through the verification process which is basically a process for the network to make sure your transaction is legit in all possible ways, after such process your transaction is added to a block and thus to the blockchain for good.
However, there are a few cases where a transaction won’t appear:

You put the wrong address
number 1

Make sure you put the right information before making a transaction, if it doesn’t appear just give it a little of time and you’ll be fine, but notice that if you put a wrong address or any other parameter required to make a transaction YOU WONT BE ABLE TO REVERSE/TROUBLESHOOT this event and thus, you will loose your money
pd: Crypto-exchanges like Binance or coinbase, they all have a certain number of verification in order to have your transaction shown. I don’t know how many binance uses, but I think after 4 verifications (BTC) your transaction will appear on your wallet, however, such parameters are different among cryptocurrencies, ripple just takes 1 verification and you’ll be all set to spend your money.


text:
Can I create a Blockchain copy (up and running) in order to make my own bitcoins transfers without Fee?
I need to make a lot of transfers per day (bitcoins), but the fee is higher than expected. I'm thinking in create a Blockchain copy running on our servers and make the transfers from my wallet and to my wallet by my own blockchain.
I'll charge my self a fee but small and fix.
That can be possible? or a missing something?
Thanks!

What is your use case? Why do you need to make a large number of transfers per day? How many transactions is 'a lot of transfers per day'?

We handle investors, they transfer the bitcoins to our accounts and we trade with those bitcoins. The problem is they can request the bitcoins at any time, and we want to do it automatic and offcourse if we can provide the lowest fee will be great, so if we have our own node in the Botcoin network can we do the transfer without fee? We have something arround 5k customers.

Anyone can create their own blockchain, but you will not be able to reconcile your chain with the bitcoin blockchain at a later date (even if you start your chain by forking off from a certain btc blockchain block height).
I don't know what your use case is, but if you're not going to use an already existing blockchain, I would expect that creating a private database (SQL?) would be a better choice than trying to create a private blockchain.
You could, for example, create a database that is designed to mimic the balances of bitcoin addresses you control. Users of your database could freely transfer these 'bitcoins' to eachother on your server, and then only when the user wants to move value to someone outside of your internal system, would you need to initiate an actual bitcoin network transaction.
So the actual bitcoin you control would function as a 'reserve' that your database's value is backed by. This is basically how centralized exchange services work. The users of your system will need to trust you in using it.

I think OP is asking if they can just make their entry into the blockchain LOCALLY on their servers and then that is propagated out to the network. Saving the fees in the process.
If so, the answer is no.

Is any way to get the fees for ourselves? Act like exchange? Thanks!


text:
Can Bitcoin be "shutdown" if energy consumption for mining is heavily regulated?
Can Bitcoin be "shutdown" or heavily hampered if energy consumption for mining is heavily regulated? Can transactions still be processed if mining for new coins is hampered? I am thinking it would be easy to detect illegal mining just like they detect illegal drug-plant farms from the massive use of energy used to power the solar lights. Would BTC survive with only minor mining going on?
It is quite obvious that if BTC will start to consume more energy than USA than people might be, if nothing else, a bit concerned about the environmental effects.
If BTC won't survive, has Ethereum with the future proof-of-stake concept a better chance of surviving government clamp-down?

Basic understanding - https://en.wikipedia.org/wiki/Hashcash

Well, regulating mining cannot do it, but if the energy usage goes way up because of rising prices, they could be brought down by outlawing it's commercial usage as long it's PoW based, as the EU already considered

Those questions have been answered multiple times.
The difficulty depends on the mining power. If there is a regulation and 60% of the miners are away, the difficulty would decrease drasticly within 2 weeks and the other 40% would need less power to mines the blocks. So the mining would not be hampered for a long time.

Would BTC survive with only minor mining going on?

yes. Only a few people could still mine. The bitcoin network does not really need big mining-pool companies for that.
And you third question is a primarily opinion-based.

So, in a sense, energy regulations might actually be a good thing for the environment but not a bad thing for Bitcoin? Should we embrace BTC mining energy regulations? (In case we are not miners that is).

Bitcoin needs much energy, but the really bad thing is the energy production and how the energy production works in my opinion. There are completly green miners in Ireland who using renewable energies but there are also the other ones.

Why does it need much energy if we don't really need to mine to keep transactions going?


text:
BCH on Coinbase
I saw this message on Coinbase

Update: We anticipate enabling Bitcoin Cash (BCH) buys and sells in
  early January 2018. Sends and receives are online. If you held bitcoin
  on Coinbase on August 1, 2017, you should now see BCH in your Account.

Does that mean "since" August 1? 'cause I have had Bitcoin since October on Coinbase but I don't see any BCH on my account.
However, I sent all my BTC to GDAX (Coinbase & GDAX should be the same).. But does that make the difference?

No. It means "until August 1".
The history of the time until August 1 was copied. So the person who had your BTC at August 1, has the control of the BCH.

They state you should hold BTC on August 1 and you held BTC since October. Because August comes before October, you did not have any BTC in your wallet on August 1 and therefore do not see any BCH in your account.

Yes, now sounds like a stupid question haha.
Made sense after I posted it but I wanted to be sure.
Now, if Coinbase supports a hardfork, should you move your coins from GDAX to Coinbase? Or is GDAX the same.


text:
BTC sent to Coinbase BCH wallet
I have sent my BTC to a BCH wallet on Coinbase, it is for a sizable amount of money and I read that if greater than $5K, they will help you.  What is the proper channel to ask for help as the cases I have opened are not getting any results.  Both accounts are mine one on Electrum (BTC) and one on Coinbase (BCH)

Coinbase has the private key for the BTC transaction (because it should be the same as the BCH address), but it might require manual intervention on their part to recover the deposit and refund it. Unfortunately, their support is swamped with many other issues this month. If you submitted a support ticket to https://support.coinbase.com/, you might just have to wait a while before they get to it.

I am fine to wait as long as it is not gone forever, $15K is a lot to lose.

Unfortunately, still no guarantees that you'll hear from support any time soon. Their response times are pretty abysmal right now.

Thanks Ryan I did a similar mistake. But when I contacted Coinbase they just said due to irreversible nature of crypto currencies transactions they cannot do anything about it. Do you know if this is a routine process and at some point in time they will get to intervene and transfer private keys or their reply means there is no hope and coins are lost? Are you aware of any simple similar incidents that were resolved?

If your "similar" mistake was identical to Jeff's, then what they said is not accurate. It is reversible; although, it is likely a burden for them. These kinds of mistakes are really dangerous to make. You really need to be careful when submitting any kind of cryptocurrency transfer nowadays, especially with forks that use the same address format.  Yes, I have heard of similar incidents being resolved on Reddit, but I also heard that Coinbase requires the USD value to be over $5000 for them to intervene; though, I do not have any first hand experience with this.

Thanks Ryan. Yes identical sent 2 BTC from blockchain so I fall into 5k$+ category. I always take extra caution but this happened on 21st of Dec and Coinbase just had launched BCH wallet and I was not aware of it so by mistake ended up on that wallet. Hope they do help at some point. So far no customer support and only negative responses.


text:
How to check about 10 million bitcoin addresses?
A few years ago I deposited a specific amount of bitcoins into an address and wrote that address/private key down. I lost the last four characters of the address. I counted that each character can be 26 upper + 26 lower + 10 digits = 62 characters. So missing 4 characters means that my wallet can be an of 62*62*62*62 = 14,776,336 addresses. How can I programmatically check all those combinations? I will find all the addresses with the same bitcoins as I deposited and then check them one by one as I expect (hope) there to be less than 1,000 matching addresses.
I've checked blockchain.info but they timed me out after a few requests, I checked blockonomics.co but they are expensive.

Is actually 585858*58 since the address is in Base58 , not that it matters much here. Is it only the public address you are missing the last four characters, do you have the full private key?

Yes and yes, I have the full private key.

If you have the full private key, why don't you use Electrum and import/sweep the private key? No need to check each address individually unless you also got 10 million private keys/addresses pairs. If you want to check a bunch of addresses you have better chance of doing so by using API.

Are you saying that only by knowing the private key I can get the balance? Also, is there an API you can recommend that can serve 10 million requests?

Yes, and check out the link.

You don't need to check the whole 62*62*62*62 addresses online through API. That would be an insanely long journey, and you'll get blacklisted at any free service before finding what you seek, no doubt.
In your place I would:
1) download the daily balance snapshot from blockchair.com
2) either in Windows through Cygwin or in Linux shell, or in MacOS terminal type:
zcat blockchair_bitcoin_addresses_latest.tsv.gz|grep "the part of the address you remember"

Example, I took a random address from the list and removed last 4 digits:
root@ubuntu:~# time zcat blockchair_bitcoin_addresses_latest.tsv.gz |grep 1EpfyhhNnwF2Sv53PUzoJGRawiTVy
1EpfyhhNnwF2Sv53PUzoJGRawiTVybuMTz      1

real    0m9.479s
user    0m9.209s
sys     0m0.746s

I've run the command with time in front just for testing purposes, in order to demonstrate that it took less than 10 seconds to parse the list and find the matching address, and this is not a powerful PC. I don't even have SSD here, I bet if you have one it will be even faster.
Please note the number 1 after the address: this BTC address has indeed 1 satoshi.
If you are in doubt about capital letters in your address just add the -i option after grep so it will not run a case-sensitive search and will return the result even with wrong capitals in the search pattern; here I searched all Bitcoin addresses with non-zero balance containing my name despite any capitals, and it still took 10s:
root@ubuntu:~# time zcat blockchair_bitcoin_addresses_latest.tsv.gz |grep -i marco
3NPjX9BFc3hZdXeqjFqMNMARco2gfna9cR      1512000000
1HTsd6dR5qdKUTghRh8VdfDq3marcoVBdZ      4267964
1LCidVxbHzL4maRcoeaYZrevVVz3KTHnqb      3900000
1AF9enGasTBY1zxsMARCotYP9izc2v3Fzs      2028360
17kaMiiyDa11VGYMArCoZM8wD9enpWXc5K      1009417
1EoDrgLovufWp4BjC4iEqyhSHR2MaRcob1      1003055
14UEd1qtHwvWk3tWjkDsZfRXKUDx7mArCo      483996
1At868R9nWceRRpymarCopNhrywPUooDvE      431629
1Marco12CWtLWwAK9eKxqTZmeQgitBwAhg      200000
1marcoUFS2NyCtW7hH2AGxGVbJ9fpZkrR       184000
17Nw3Ed1vnUQpmzKty2MarcoCskKDZQmAp      167192
18odA7ipASdRFkf1gGAspQ8DQmArCoLrsU      99300
1MArcoSBgoNhnypXD7YhE4T9B7eUFSTLA3      26280
1marco52Uta2SKaLPeNiEczbrwCHnV7Jb       17100
1MaRCoEoSZXpupVVtCcs5chdEVwF78FQ9U      10000
1Kf9aZ21UQmrRBpXfMarcoQoj7VgV2e9H2      3660
1FT4mpGZS4Df8WzjWHhDDCezJJKksmARCo      3607
1MarcoStvKXXkeQJhwfcUdUP1NLnHB2bfr      1
1MArCovVsyQ54sRufEvjCrNCmUfgr3ZsvY      1
1MARcoseSo15DysRD9t2GoRm2aaHPKxgeh      1
1DemArcoSrb2D8RCSvsU7gPBvFbT3sdDL1      1
1MarConm2xEoBveieCcGGZvAvKZi6EHvzn      1
1DemArCozufYcpvVqxsXy3ttLh2iN5keHr      1
1MARCoNioFuSbuX7mgAifgBx8hsF8FVFu8      1

real    0m9.921s
user    0m10.829s
sys     0m0.656s

Relevant note: if you have not a premium API account on blockchair.com the list download (today over 700MB) is rate limited to 128KB/s. The DL takes around two hours but it is updated daily, and I find it's still a tremendous booster for all bulk balance lookups issues, unless you need balances to be real time. In this last case, look to a paid API as only solution.

Downvotes would be useful with an explanation!

even though there are better solutions, i thought your answer provided value that could be useful to others

Each private key corresponds to exactly one public key. This public key can be represented in two ways that give different addresses: uncompressed and compressed. This gives you two addresses for a private key.
So no need to check each public addresses individually unless you also got 10+ millions private keys/addresses pairs.
You can check out this simple and easy to use software created by Shorena on bitcointalk.org, that uses blockchain.info Query API. I've checked the source code, clean codes and nothing malicious found.
If you really plan to check 58*58*58*58 addresses, I recommend that you add a delay in the source code so you don't overflow them with requests or hit whatever limiter they've got. Also modify the code to search for multiple address per query(Multiple addresses can be separated by '|' ).
You can also bypass the request limiter on blockchain.info , by requesting an API-key.

If you are actually only trying to find the full address from the start of it, you could use walletexplorer.com. On that site you can input the first few (about 8-10) characters of a wallet address and it will find the address for you.


text:
Having trouble with a new wallet
Not sure if this is the right place to post because it is not specifically bitcoin, but it is crypto, and I need the help of someone a bit more tech-savvy than myself... I have just downloaded the wallet for a new cryptocurrency, and it was working fine, but as I was getting used to the layout, I accidentally checked “connect through socks proxy” box in the settings. Now I have tried to go back on the wallet and it won’t open, and comes up with error message “unsupported argument - socks found. Setting SOCKS version isn’t possible anymore, only SOCKS5 proxies are supported”. I have tried deleting all the files, redownloading the wallet, and restarting computer, but it still comes up with the same error message and won’t let me open the wallet to change the setting back! Is there a way to change this setting without opening the program, or bypass this error message so I can open it and change it? As this is a new currency, there is only this one wallet available so I can’t just use a different one, and I really don’t want to leave my coins sat in the exchange! Thanks in advance for any advice..

We cannot guess from the provided info, what you are using. Maybe you want to tell us, which wallet, which OS, the link maybe? I have a guess, that there is a hidden config file, that contains the config settings you mention. This file just needs to get out of the way...

It’s ignition wallet for windows. The layout is pretty much exactly the same as other wallets I have downloaded, with the command console, etc. I just can’t get it to open to get on there and change the setting now that SOCKS is enabled..

I don’t know the details of this wallet, maybe you can try to create a new user on your windows, and install for this new user the wallet, without activating the socks function...

I will try doing that. Thanks. I have emailed the developers but I’m being impatient. I don’t like leaving my coins in an exchange!

The solution for anyone else is to change the Ignition registry value for fUseProxy back to false, then relaunch the wallet. Search for it in regedit.


text:
Origins of the Blockchain data structure
Where did the blockchain data structure originate from? Is it a product of computer science research or did it just evolve from more established data structures like binary trees and linked lists?


text:
does 24-word recovery seed recover just bitcoins or all coins?
I keep Bitcoins, Bitcoin Cash, Bitcoin Gold, Ethereum (via My Ethereum Wallet) and Litecoins on a Trezor.
Question 1:  In the event that my Trezor is lost or destroyed, will my 24 word recovery seed restore my access to just the Bitcoins, or will it recover the other coins as well?
Question 2: If the answer to Question 1 is "just the Bitcoins", then what should I be doing to preserve my access to the other coins in the event of a lost Trezor?   Is there some way to  display my private keys and copy them down on paper? Or something else I should do?

Yes, you will have access to all of your cryptocurrencies.
The 24 words seed is used to derive the master key. Keys for all cryptocurrencies are derived using BIP32 and BIP44.
You can check out the BIP44 Mapping Table.
The 24 words seed can be used on BIP39 compliant wallet like Electrum.
The private keys can also be accessed with BIP39 Tool GitHub or the online version (I don't recommend using it online.)

This is extremely helpful, and having had a very quick web-look at BIP32 and BIP44, it  looks to me like it's exactly correct --- though I want to read a little more to make sure.  Thank you for the answer and the pointers.  It has been remarkably difficult  to find a clear answer to this question on line (and the Trezor documentation, unless I've overlooked something, is no help at all).


text:
is bitkingdom.org legit?
My grand father invested in a bitcoin scheme few years back he died recently.In his whatsapp he had all details about this investment. I Have no idea about how this works. I tried looking around for the site mentioned in the DMs but couldn't  find any trace of the site "https://www2.bitkingdom.org" "https://www.bitkingdom.org". I just want clarification whether my grandpa was mugged or he made it big? Any help I would really appreciate.
thank you,
jabes

A quick websearch found me a review on BehindMLM. The site indicates that BitKingdom was a multi-layer marketing scheme. Unless your grandfather happened to be one of the first investors and actually cashed out, the funds are probably lost.
Disclaimer: I'm only familiar in passing with BehindMLM, but they had a lot of useful background information on BitClub and OneCoin in the past. I have not further verified this initial take.

thank you for the info. and No! my grand father had not cashed out large amount in  past 4 years. He had nasty returns from different investments, this was one of those. I was thinking I would be a millionaire after I cash out the money. But it seems all that investment went down the drain. he should have brought another house..!!!


text:
How can I add the MySQL C++ connector to Bitcoin Makefile?
I'm trying to add a custom function to my bitcoin client that queries a mysql db. I followed this guide for the basic: https://technology.finra.org/code/compile-run-customize-your-own-bitcoin-client.html
I build the bitcoin node from the source code: https://github.com/bitcoin/bitcoin
with help from: http://www.reynoldtech.com/building-bitcoin-core-0-16-3-from-source-on-ubuntu-18-04-1-desktop-amd64/
And I am getting this error:
Making all in src
make[1]: Entering directory '/home/ubuntu/bitcoin/src'
make[2]: Entering directory '/home/ubuntu/bitcoin/src'
make[3]: Entering directory '/home/ubuntu/bitcoin'
make[3]: Leaving directory '/home/ubuntu/bitcoin'
  CXXLD    bench/bench_bitcoin
libbitcoin_server.a(libbitcoin_server_a-blockchain.o): In function `testFunction(JSONRPCRequest const&)':
/home/ubuntu/bitcoin/src/rpc/blockchain.cpp:2391: undefined reference to `get_driver_instance'
collect2: error: ld returned 1 exit status
Makefile:7133: recipe for target 'bench/bench_bitcoin' failed
make[2]: *** [bench/bench_bitcoin] Error 1
make[2]: Leaving directory '/home/ubuntu/bitcoin/src'
Makefile:17537: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/ubuntu/bitcoin/src'
Makefile:785: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1

I've added the following to /src/Makefile
CXXFLAGS = -g -O2 -fno-extended-identifiers -I /usr/include/cppconn
LDFLAGS = -L/usr/lib/x86_64-linux-gnu/libmysqlconn.so -lmysqlcppconn -lmysqlcppconn-static
When I run locally I can remove that error by running: g++ -o output testBlock.cpp L/usr/lib -lmysqlcppconn
How can I properly add the mysql connector library to src/rpc/blockchain.cpp?


text:
Can we check if a miner has validated the solution?
When a miner finds a solution for the block and broadcasts it to the other node, all the other nodes verify if it is a correct solution or not. The idea pops up a few questions in my head:

I read somewhere that if mining pools find a solution, then peer miners in that pool don't verify the solution and straight away go for the mining of next block on top of it. This is kinda unfair for the other miners. Do we have any system to check if a miner has validated the solution or not?
On the other side of it, not sure how often does this happen on the network but a pool of miners can share wrong solutions to keep the other miners busy and get an advantage. Does this happen on the network?

Thank you in advance! :)

Firstly, correct me if I'm wrong.

When a miner finds a solution for the block and broadcasts it to the other node, all the other nodes verify if it is a correct solution or not.

It's very trivial to validate the PoW, just hash the block header and then count how many "leading zeros" that hash contains (note that such description is theoretical. The actual implementation allowing "fractional leading zeros" is somewhat complex or even weird).
Validating the whole block is much more complex and "costy" than validating the header only. The CVE-2018-17144 inflation/DoS vulnerability was actually caused by improper optimization of the validation code in order to further improve block propagation.
However, theoretically no matter how many miners are in a pool, they are just one single full node (as the identity of the pool) in the Bitcoin P2P network.
It's the pool who constructs the block to be mined. Pooled miners using the stratum protocol don't download the full block data at all. They only download minimal data required (like the block header, coinbase transaction etc) to do the SHA256d mining. They therefore don't validate the block because it's not even downloaded at all.
So we can see, currently pooled miners (who do not run their own full nodes) blindly follows the pool, so that it's possible for an evil pool operator to abuse the hashpower provided by miners in that pool. Actually some miners are even happy with such situation, because some pools promotes features like "automated switching for maximum profit". We may see improvement/relief on this issue in the future if BetterHash/StratumV2 protocol could be widely adopted.
Besides, pooled miners can indeedly attack the pool (or other miners in the pool, depending on the pool's payout mode, PPS or something other) by withholding the solution, albeit it's very trivial for the pool to validate the solution (PoW).

Can we check if a miner has validated the solution?

To my knowledge it's currently not possible to know whether a miner (mining pool) had validated the whole block.
It's just the miners' own interest to fully validate the previous block once again on their own, so that they would be completely confident that they won't waste their hashpower/electricity costs on an invalid branch of blockchain.

I read somewhere that if mining pools find a solution, then peer miners in that pool don't verify the solution and straight away go for the mining of next block on top of it. This is kinda unfair for the other miners. Do we have any system to check if a miner has validated the solution or not?

You seem to describe a kind of validationless mining called "SPV mining".
However, it's not "peer miners in that pool", but other pools (or solo miners) can possibly do that.
It indeedly once caused problems, like the 2015 chain-fork incident related to BIP66.
Theoretically there's also a variant of selfish mining attack called "Blockchain Denial-of-Service (BDoS)", which aims to push victim miners under profitable line.
There's also a controversial argument that SegWit also has an issue similar to BDoS, because developers had once pointed out that SegWit allows the miner to mine atop previous block without downloading & validating the witness data (mostly digital signatures, only SegWit transactions have such data), so that that miner could then collect transaction fees with higher confidence (because, with the non-witness part of the previous block it's already enough to update the UTXO set, which is the "global account balance database" of Bitcoin maintained by each full node on its own).

On the other side of it, not sure how often does this happen on the network but a pool of miners can share wrong solutions to keep the other miners busy and get an advantage.

In selfish mining, it's not really a "wrong" solution to be shared, but stale branch of the blockchain which the victim "honest" miners have no choice but to mine atop it, because the longer branch is withheld by "selfish" miners.

I read somewhere that if mining pools find a solution, then peer miners in that pool don't verify the solution and straight away go for the mining of next block on top of it. This is kinda unfair for the other miners. Do we have any system to check if a miner has validated the solution or not?

The miner would submit the valid block to the pool operator, who would check it for validity. This check is computationally cheap and fast to perform, so the pool operator can extremely quickly decide whether or not to instruct pool participants to start mining on the next block.
The other pool participants implicitly trust the pool operator, so they will follow suit. If those miners are running nodes, then their nodes will validate the new block when they receive it, but this will not affect their mining operation.

On the other side of it, not sure how often does this happen on the network but a pool of miners can share wrong solutions to keep the other miners busy and get an advantage. Does this happen on the network?

Anyone can publish an invalid block, in fact this sentence itself is an invalid block, if you care to consider it as such.
Like above, determining whether or not a block is valid is a very cheap and fast computation, so any node which receives such data will quickly discard it. If it continues to receive junk data, that peer would eventually be dropped.
Note that when a new block is in the process of being validated, the miner will still be mining on the current block. Only once the new block data is determined to be valid would the miner (or pool) start working on the next block. Thus, sending invalid block data will not interrupt a miner's operations.


text:
Why do miners go offline?
As per my understanding mining process in bitcoin is fully automated. A manual intervention is needed only when:
(i)  A hardware failure occurs
(ii) You might want to cool down the hardware
(iii) You completely shut it off (can be due to various reasons)
Are there any more reasons why a miner might switch off his/her system given that the complete process is automated?

One of the most common reasons for which miners go offline is when their profitability drops below the cost of electricity - this could either be the result of the BTC price dropping, or their local operating costs (costs including air conditioning, power, networking, hardware depreciation, etc.) rising, or the total network hashrate rising faster than they are able to acquire a new set of machines to proportionally increase their hashrate.
Remember that most miners aren't usually operating a single machine - they usually operate a mining farm, where a single machine's hardware failure or thermal shut off won't actually take the miner's entire operation offline, just reduce their effective hashrate. For a noticeable removal of hashpower from the network, such as when an entire farm is shut off, the cause is usually economical.

There is one more factor affecting profitability: the relative portion of total hashpower controlled by the miner. If BTC price stays constant, electricity price stays constant, but the miner's share of total hashpower decreases, then so too will their profits (because they will receive a smaller portion of the total reward).

Good point, I'll edit that in

It doesn't matter how fast they can buy new machines to increase their hashrate; either electricity costs are more than the mining rewards, or they are less - since (for an individual miner) both increase linearly with the number of machines.

It does matter, if the network hashrate is going up significantly - at the same electricity cost and the same BTC price, an increase in network hashrate results in a decrease in your returns

Just a bit out of context but is validating other people's solution also automated or does it need manual intervention?

@user253751: new machines may be more efficient, giving more hashrate per kwh.

@shubham kumar: every full node (including non-miners) automatically validates every block mined. Hence even a majority of miners can't set validity rules.

Are there any more reasons why a miner might switch off his/her system given that the complete process is automated?

I can think of a few more reasons a mining operation would be disrupted, they are perhaps more rare, but possible:

The miner loses access to the electricity needed to run the mining ASICs. For example, if a mining operation is capturing excess/waste energy from a hydroelectric dam or oil field, there will be times when there is no excess, and thus mining will be halted.
The miner experiences some sort of disaster (fire, flood, theft, earthquake, etc) that forces them to stop mining
The miner is forced to stop by some local regulatory or judicial body (ie, they are mining somewhere that they were not allowed to, and were caught)
Personal conviction: perhaps the miner just simply decides to invest their time and energy into a different project, and so they shut down their mining operation. This decision could be made for any reason, seemingly logical or not.


text:
How is a block solution broadcasted?
As we know there are scores of mining pool around the globe but some are pretty big ones such as Antpool, Poolin, BTC.com etc. with majority of them lying in China https://www.buybitcoinworldwide.com/mining/pools/. I have few questions in the broadcasting regard:-

If a solution is found by a miner, does the miner have the control to which nodes is it broadcasted?
If it is broadcasted based on the location of miners, then won't all the miners in the pool have an intrinsic advantage of their pool peers validating the solution?
Let's take a case when there are two solutions being broadcasted at the same time, one from the USA and another from China. Since, a lot of miners are there in China, Mongolia, Russia etc. doesn't miners in China have a better chance of getting consensus?
Also, what do we mean by consensus in the above case? Let's say the USA solution reached 20% of the active miners and the Chinese solution reached 80% of the  miners. As per my understanding even the USA solution could reach more than 51% consensus(more than 10% of globally active miners agreeing with the solution). Shouldn't there be a threshold on the minimum number of global miners agreeing with your solution given this large pools existence?

Thanks in advance! :)

If a solution is found by a miner, does the miner have the control to which nodes is it broadcasted?

Certainly, they can control the first level of peers they broadcast a solution to. However, they have no control over which peers will receive the block from the peers they have sent it to.
It is in a miner's best interests to broadcast it to as many nodes in the network as possible.

If it is broadcasted based on the location of miners, then won't all the miners in the pool have an intrinsic advantage of their pool peers validating the solution?

There are two kinds of miners in a pool - large scale mining operations with mining farms occupying the same physical space, and smaller scale miners who have anywhere from 1 to a few thousand miners who connect to the pools from anywhere around the world.
These mining devices receive work instructions, usually via a protocol such as stratum - once any device in the entire pool discovers a solution, the pool immediately instructs all devices connect to it to mine on top of this new block. Miners that are a part of that pool will then begin mining the next block, likely even before most other pools have finished receiving and validating the newly found block.
Since sharing your block with as many other nodes as possible is key to its acceptance in the event of a competing block, there are special solutions solely dedicated to broadcasting blocks, such as https://bitcoinfibre.org/.

Let's take a case when there are two solutions being broadcasted at the same time, one from the USA and another from China. Since, a lot of miners are there in China, Mongolia, Russia etc. doesn't miners in China have a better chance of getting consensus?

Pools will generally mine on top of the first block they see. However, consensus will only be achieved when a new block is found on top of one of the two competing blocks.

Also, what do we mean by consensus in the above case? Let's say the USA solution reached 20% of the active miners and the Chinese solution reached 80% of the miners. As per my understanding even the USA solution could reach more than 51% consensus(more than 10% of globally active miners agreeing with the solution). Shouldn't there be a threshold on the minimum number of global miners agreeing with your solution given this large pools existence?

Consensus here is not dependent on how many nodes you are able to broadcast your solution to, but depends on the next block to be mined. If block N has N_USA and N_CHINA, and block N+1 refers to N_USA as the previous block, block N_CHINA will be discarded as block N_USA is part of the longest chain, regardless of how many nodes had received N_CHINA before N_USA. Until block N+1 is found, both blocks are valid.
This is known as selecting the longest chain, or more formally, the chain with the most work.


text:
Hardware Wallet security vs. software
if you have a nano ledger, you can access your coins with the ledger live app. Even if the device is not plugged in, I can still see my currency from the app. You are given a 24 word recovery phrase when setting up the nano ledger.
What makes this any different from a software wallet like Electrum? The electrum wallet has a seed phrase just like the hardware wallet, no? If I can access ledger live from either my PC or phone, I don't understand what makes the two any different? Is it the case that you can not trade or transfer coins unless the physical device is plugged into the PC or phone with the app open?
What is the differentiator between the two that I am missing?

Electrum also supports offline signing (aka cold storage), which shares the core idea of a hardware wallet.

The difference is that the private keys that allow you to move your Bitcoin are stored on the hardware wallet itself.
Bitcoin uses asymmetric cryptography. This means that a "key" has two components: the private key, and the public key. The public key is computed from the private key and can be shared publicly. The private key is randomly generated and needs to be kept private.
Hardware wallets store the private keys and provide a way for software to communicate with the device. Software will create transactions (and other data) and ask the hardware wallet to sign it with its private keys. Furthermore, those hardware wallets also allow the software to ask for its public keys.
So your software wallet on your computer (like ledger live) asks the hardware wallet for a public key. It then saves that public key on your computer and generates the address for it. Then it can search the blockchain for your transactions and be able to see your balance. In order to spend your Bitcoin, you need to plug in your hardware wallet so that the software can request it to sign transactions.
Software only wallets (such as a default Electrum wallet. Note that Electrum can work with hardware wallets.) save the private keys on your computer. You don't need a separate device to sign transactions; the private keys are stored on your computer and everything happens on your computer.
What this means is that if your computer is compromised with malware, with a software wallet, that malware can steal your private keys. With a hardware wallet, because the private keys cannot be retrieved from the hardware wallet and because the keys are stored on the hardware wallet, the malware cannot steal your private keys. In this way, your funds will be safe.

The 24 word recovery phrase is a BIP 39 mnemonic. It is a representation of the private keys in your wallet. Modern wallets use this and BIP 32 Hierarchical Deterministic wallets. BIP 32 allows for many private keys to be deterministically generated from a single randomly generated seed. So BIP 39 provides the seed and BIP 32 generates the actual private keys that you use.
In this way a wallet can store generate and store a single random seed and derive the actual private keys and public keys on the fly. BIP 32 also allows public keys to be derived from public keys. So for hardware wallets, they will export a single public key and the software can derive further public keys from that.
Both software and hardware wallets use things like BIP 39 and BIP 32 (Electrum has an alternative mnemonic scheme, but they still use BIP 32). The difference is where the seed is actually stored.

Hardware wallet is a dedicated, air-gapped (offline) device with its own buttons and screen, with security mechanisms similar to SecureBoot which blocks unofficial firmware. It allow you to generate your private keys and then use them to sign transactions always in a secure, offline environment.
When you are signing a transaction it also allows you to examine the transaction details without the risk of being tampered by malwares, that's why it has its own screen and buttons.
It can also display your receiving address (and its QR code) on its own screen, so that it won't be possible to be tampered by malwares. (I'm not a Ledger user. It seems that the QR code feature is not supported by Nano S? I'm not sure. However this dosen't really matter as long as you check the address carefully after scanning the QR code) However this security measure can't work if you or your transacting counterparty (like an exchange sending withdrawal to you, or accepting depositing from you, where most exchanges are in fact a website in a browser, so that a malicious browser extension is totally able to tamper the address) can only see tampered address, that's sadly one of the inherent limitations of hardware wallet. To my knowledge only in a face-to-face scenario can the participants of a transaction be immune from this risk.
Not like the case of PC that processes can inject code to each other freely (and even worse, inject to the kernel), so that malwares could be really ghosty, hardware wallet doesn't allow installing arbitrary things on it, which creates a very secure environment. The firmware of hardware wallet is digitally signed by the manufacturer, so that the device can validate them, and then refuse to install or run a unofficial firmware.
(However, sadly this assumption that "only official firmware can be installed" does not really hold in reality sometimes, that some famous hardware wallets have been reported to have vulnerabilities allowing to bypass such limitation)
(Besides, there's also a potential risk called "supply-chain attack", that the hardware wallet device can be tampered/substituted during manufacture/delivery)

You are given a 24 word recovery phrase when setting up the nano ledger

That's your mnemonic phrase. All your private keys are derived from it. It can control whole your wallet, so it's very important.

you can not trade or transfer coins unless the physical device is plugged into the PC

Of course. Anyone cannot spend these coins without private keys. The private keys never leave the hardware, that's the point.
However, just as you can see, since all the private keys can be derived from the mnemonic phrase, you still have to keep the mnemonic phrase safely.
Especially, don't type/photograph/screenshot/store it on any electronical device (except the hardware wallet itself). Just write it down on paper.

I can still see my currency from the app.

Andrew Chow has explained this. You don't need the private keys to obtain the transaction history and final balance. Only public keys (or addresses, which are essentially hashes of pubkeys) are required to obtain such info.
To improve your privacy, most wallets avoid address reusing by generating a brand new address for each transaction, either sending (where the new address is used to receive the change) or receiving. BIP32 HD allows the wallet to derive almost infinite addresses from one single seed, and what's more, it allows the wallet to derive pubkeys (addresses) without the private key, therefore, you can avoid reusing an address with ease.
Note that BIP32 also has an inherent weakness that as long as you can derive "child" pubkeys, a single leaked "child" privkey would lead to leaking all the other child privkeys as well. BIP44/49/84 mitigate such risk by deriving the "parent keys" through "hardened-derivation", so that the influence of a potential breach would be within a limited range. However, since a lot of people use only one single account (defined in BIP44/49/84, which is a subset of address/privkey pairs, where different accounts are isolated from each other), one single currency (like Bitcoin), and one single address type (like 3-starting compatible SegWit address), this mitigation may not take much effect. How to deal with this problem? Simple, don't mess around your private keys carelessly. Just take good care of the mnemonic itself.


text:
Balances Via RPC
I'm trying to get some wallet info via RPC commands.
getunconfirmedbalance gives me the "Pending" amount in the GUI wallet.
What does getbalance give me? Is that value the "Available" value in the GUI wallet, or the "Total" value?
Whichever it gives me, I can then add or subtract the pending value to get the other value.

What does getbalance give me?

getbalance returns the total available balance according to your configuration. If you have -spendzeroconfchange set to 1 (the default), this is your total confirmed + unconfirmed balance.

Whichever it gives me, I can then add or subtract the pending value to get the other value.

By default getbalance - getunconfirmedbalance = confirmed_balance.

PS: This information is available from the help and the manpage, which I merely quoted..


text:
How to check if a given address belong to an exchange
Does any exchange provides any public information about its private keys managed BTC addresses, or is there any service that provides this information?

Needless to sat, I mean providing a list of its public-key wallet information, not the private keys of course

A few exchanges publicize their hot and cold wallets, but currently, as far as I'm aware, no exchange publishes a full list.
This may change as FATF's Recommendation 16 adoption grows, but may still be limited to closed access networks among exchanges.
Beyond that, for most services, it is not very hard to determine if a used address belongs to an exchange - most exchanges tend to follow fairly easy to identify sweeping patterns to move funds between receiver, hot, and cold wallets. Many block explorers tag various addresses to exchanges, in addition to paid coin monitoring services.


text:
MISSING FUNDS ON BLOCKCHAIN
Please help me out. i have never shared my wallet ID or password with anyone. i only loss access to my blockchain account because i misplaced my phone and i had to reset my 2FA. It has been approved and then i logged into my account yesterday. To my greatest suprise it was empty. I have some amount of bitcoins and i could not find any of it and there are also no transaction history anymore please help me out With any suggestions of what might have happened.my school fees i had it all there. something is clearly wrong. Thank you.

Does this answer your question? MISSING FUNDS AT BLOCKCHAIN

The moment you disabled 2FA, you removed an important level of security for your account.
If your funds have been moved and it wasn't you, most likely someone entered your account and robbed you.
First, I advise you to use a real Bitcoin wallet, not blockchain.com/info.
Second, you should check this page and enable a couple of advanced security options.

The problem is that I never shared my details with anyone and also there is no transaction history appearing at all.  That’s why I don’t understand what happened.

If there's no transaction history showing the bitcoins moved, they probably haven't moved at all and are still there.