text:
Bitcoin And BitcoinCash Input Value
According to bip 143 (https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki), bitcoin transaction has the information about the input value as part of the witness.
i heard bitcoincash has also a solution for validating the input value (without going through all the blockchain), but i cant find this information in a transaction.
i tried to find it and read about the bch transaction structure and the only thing i found is this proposal: https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/replay-protected-sighash.md
and im not sure if its indeed deployed into the bch blockchain.
is there any solution for this problem in bitcoincash?

Compliance with the "Replay Protected Sighash" is required in all BCH transactions since the BTC-BCH chain split, while on Bitcoin BIP143 is only required for spending SegWit outputs.
Here is how it helps offline signing if you want to know how it was invented.
Update:

has the information about the input value as part of the witness.

Note that the witness contains the signed hash that contains the value of the UTXO, but not the value of the UTXO itself.
If I missed one of your questions, let me know by commenting.


text:
Transaction as been confirmed but has not reached receiver's wallet
Transaction 26e074dda878b78b122739b6dbe65d06472bb40ca3abd047a58910016cd5467a
Receiving Wallet address: 3J4Vwkd8KBzf7Np69KWkkvzED6HyRTpL1e
Amount: 0.04457308 BTC

It's confirmed, so there's nothing you can do for the receiving wallet.

Can I resend it to a different wallet and then send it to the recipient that way? I used a bitcoin ATM to send this money. I'd rather not have just lost $700

No, but the transaction should reach the recipient. There are scams that tell users "We didn't receive your payment" so that one sends again, so if you don't trust them be careful. Otherwise, they need to fix their wallet.

re: "Can I resend it to a different wallet and then send it to the recipient that way? I used a bitcoin ATM to send this money. I'd rather not have just lost $700": it sounds like you are the victim of a scam, sorry for your loss. The transaction you linked above was confirmed (completed) 2 days ago. It is without any doubt received by that address. If the recipient is saying they have not received it, they are either lying to you, or their wallet is not properly in sync with the network.

source: Stack Exchange

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

sort: votes


text:
Bitcoin Core make
Whenever I try to recompile my changed files in Bitcoin core. I have to run make clean and then make or else it wont compile the changed files. It just goes back to the last compiled file. How do i do smart make where it only compiles the files that I have changed

Is your system clock wrong perhaps? Alternatively, did you make any changes to the source code and saved them?

I think my system clock is fine. I also save changes to source code every time but I constantly have to run make clean and then make to see my changes

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


text:
Input/Output size for various transaction types
What are input/output sizes for various transaction types?
I see some numbers like 210 byte for input for p2sh-p2wpkh here (How do virtual size, stripped size and raw size compare between legacy address formats and native segwit?), but curious to know more detailed breakdown of input/output for each transaction types.

This website (https://www.buybitcoinworldwide.com/fee-calculator/) shows the approx size of transactions according to the address type, number of inputs and number of outputs and the final fee (after you set how much sat/byte you want to pay)
As you play with it you will see that the most important if you are worried about fees is to reduce the number of inputs. The best practice is to consolidate your small inputs in native segwit addresses (bc1...) when fees are low.
This way when you need to transfer bitcoins when the network is congested you will have a smaller transaction size, paying less fees.
Be careful with your privacy while doing so.


text:
Pros and Cons of each address types
Can someone explain benefits of using p2pkh, p2sh, bech32, p2sh-p2wpkh, p2wkph, p2wsh.. and so on
from what I know, bech32 is most recent, but what would you say is the best?

The most commons, and which you need to understand best are those 3:
Legacy (P2PKH),  Pay-to-Pubkey Hash. begin with the number 1. Old addresses, fees are higher. Compatible with every software. Able to sign messages and get verified in every wallet.
Compatible (P2SH) begin with number 3. Segwit address, fees are intermediate. Widely supported and compatible with old software. "transitional" addresses until native segwit is fully adopted. Not able to get its messages verified in every soft.
Native Segwit (Bech32) begin with bc1. Lower fees. Not fully compatible with old software, like blockchain.com. Can't get messages verified in every software.
read more here: https://en.bitcoin.it/wiki/Address


text:
How can Bitcoin transactions be traced if you can change your address?
I understand in Ethereum you can trace it because wallet address never changes. But in Bitcoin you can change your address, no? Thanks.

How can Bitcoin transactions be traced if you can change your address?

In Bitcoin you don't change your address. You create new receiving addresses.
This is normally done so that a new address is created for each new transaction with the intention to increase privacy.
However in each transaction there are inputs and outputs and if a transaction has one input and two outputs, if you can infer which output is change, you know that there is some connection between the input address and the output address. You may be able to then trace that connection further back through a series of transactions. This is approximately like tracing possession of a coin passing through a series of people or businesses in a series of transactions.
This becomes more difficult if transactions have much more than one input and much more than two outputs.
Transactions may have certain characteristics such as address-types, size, timing and so on that may make it possible to make inferences. Transactions with differing characteristics could be inferred as being different parties, those with similar characteristics might be potentially associated with a single party of interest.
For example, if you see a large transaction with hundreds of inputs and one high-value output occur every Friday at 19:00 UTC, you might suspect it was a large exchange moving funds into cold storage as part of it's regular operational procedures. The timing might suggest a specific timezone.
We know that organisations such as the FBI perform blockchain analysis to trace illegal activity. The details of their methods are not published, so far as I know.
See

https://bitcoin.stackexchange.com/search?q=blockchain+analysis which leads to
How can there exist businesses that "specialize in blockchain analysis looking for patterns of usage that reveal how money is being used"?
How can I find a digital forensics expert to help trace stolen bitcoins?
etc

Let me give you two examples:

You want to send 3BTC to address 1abc... .  Your wallet uses for this transaction input address 1def... with balance 2BTC and input address 1ghj... with balance 2 BTC. On the output side you see address 1abc... with 3 BTC and 1pqr... with 1 BTC. Then it's very likely (not sure) for third parties that 1pqr is the change address belonging to the same entity as 1def... and 1ghj. This is because otherwise one input address would have been enough to do the transaction. For your next transaction 1pqr is spend together with 1stu... as common input. Even if you didn't re-use an address it's now likely that 1def..., 1ghj..., 1pqr... and 1stu are controlled by the same person. We linked addresses although they weren't re-used.
Tracing through a mixer transaction (e.g. wasabi): You have address 3abc.. and 3def... in your wallet and both addresses are likely known belonging to the same person (derived by analytical techniques like in 1.). Now you send 3abc through a mixer and your new address is 3ghj... . If now or later 3ghj ends in the same wallet as 3def and will be co-spend together then the mixer transaction privacy is revealed for 3abc. One of my peers recently traced a wasabi transcation and was able to link 22% of the output addresses to their inputs with this method.

I like this explanation.  My question, what if the amount was emptied (0) after each use?

You mean a transaction without change address? You can do this but then you donate bitcoin if you  have not exactly the right amount to send (having the exact amount is very unlikely in an 8 digits currency). If I see this transaction I'd check if the output address is a deposit address of an exchange. Alternatively I'd assume you just consolidated or moved funds into the new address which is as well yours.

ethereum addresses are interchangeable just like bitcoin addresses, you can track bitcoin for example at blockchair.com and ethereum addresses at etherscan.io


text:
How to get address type(format). Need to calculate vsize and fee
Help me please. I need to calculate vsize and multiply it by the function result  estimatesmartfee.
To calculate vsize, I implement a formula like this https://jlopp.github.io/bitcoin-transaction-size-calculator/
byt i cannot getting address type from Bitcoin API.
Please tell me how to get the address type by API for implementing this formula?

Related: https://bitcoin.stackexchange.com/a/67896/26873

Perhaps this is somehow related to my question, but I did not understand how to determine which type the address from which I send funds and the address to which I send funds according to the following types, belong to?
P2PKH
P2SH
P2WPKH in P2SH
P2WSH in P2SH
P2WPKH
P2WSH
P2TR
If you can more details please

P2PKH: Starts with "1". Commonly known as "Legacy Address". They have a known vbyte size. Size to spend is predictable.
P2SH: Starts with "3". You would know if you made a P2SH address, since they're almost always involved with n-of-m multisig. Vary in size depending on how many parties are involved in the multisig. Size to spend is unknown unless the wallet you're spending from knows how to spend it or you created the transaction manually.
P2WPKH in P2SH: Starts with "3". Commonly known as "Segwit Address". Quickly becoming, if not already, the most common address type. They have a known vbyte size. Size to spend is predictable.
P2WSH in P2SH: Starts with "3". Likewise with P2SH, you'd know if you made this type of address as it's involved in n-of-m multisig. Vary in size depending on how many parties are involved in the multisig. Size to spend is known unless the wallet you're spending from knows how to spend it or you created the transaction mnually.
P2WPKH: Starts with "bc1q". Commonly known as "Native Segwit Address". They have a known vbyte size. Size to spend is predictable.
P2WSH: Just like P2SH but starting with "bc1q" and much longer than a P2WPKH address.
P2TR: No idea what this is unfortunately. Looks like it stands for "Pay 2 Taproot". But I admit that I don't know much about Taproot, and I don't think this has been implemented on mainnet yet.

Please tell me how to get the address type by API for implementing this formula?

I don't know what API you're referring to, but if you are running a Bitcoin Node you can run the command bitcoin-cli getaddressinfo "YOUR_ADDRESS_HERE" to get information about a particular address. Note that for addresses starting with "3", you will not be able to determine if it is P2WPKH in P2SH vs. P2SH, as they are indistinguishable from each other until spent. They will both have "isscript": true. For "bc1q" addresses, they will both have "iswitness": true and P2WSH will also have "isscript": true.


text:
Having trouble finding wallet.dat
Where is the data folder for Bitcoin-Qt?
Windows:
%APPDATA%\Bitcoin
(This defaults to C:\Documents and Settings\YourUserName\Application data\Bitcoin on Windows XP and to C:\Users\YourUserName\Appdata\Roaming\Bitcoin on Windows Vista, 7, 8, and 10.)
Whereas mine looks like this:
C:\Users\YourUserName\Appdata\
Then my choices are:
local, local low, roaming,
If I click roaming I get Identities- In this folder is a sequence of 32 characters starting with E9. Microsoft- within there are folders named Credentials- empty MMC- empty Crypto- has a rsa file. System certificates- has empty folders. A file called protect- has a sequence of characters stating with s1. Windows folder- contains more folders and files.
I have two appdata folders, one has a swf and a docwrite file and the other is described above.
There is a dat file in local but it isn’t a walletdat.


text:
Transaction with highest fee, but stuck, what did I do wrong?
I recently sent btc that appears to be stuck (https://live.blockcypher.com/btc/tx/c131d65d933e343f852021830b833123de952c1857f264503388cf642655c457/)
The interesting thing is that I used a higher fee (4.5 sat/byte) which was the highest fee that Electrum's slider would support. I also notice that there are only two transactions in this block. Did I screw up? Is there any way that I can fix this?
Edit: Electrum says that I am only 0.12 MB from tip, however it has hovered around there without moving and sometimes increasing in size.

The hourly average fee when this question was posted was between 9 and 10 Satoshi per Byte (sat/B).
The latest TX's that I just randomly checked all had 10.03 sat/B fee which is higher than the 4.5 sat/B that you sent.
Transactions are at a hourly peak right now. Wait it out and it'll probably go through in the next couple of hours as the mempool empties.
I just noticed your TX went through and has 3 confirmations from the time I started replying to now. So I guess this is a closed issue.

Since transactions can be of different size, miners actually select transactions by fee rate (fee over size), not by absolute fees.

@Murch Yep. His was 4.5 sat/B and those I checked (the first few on that block I linked to) all were 10.xx sat/B.

Block #600283 had 18 transactions with fee rates below 3 sats/B, but that's not my point. The point I was trying to make was that the absolute fee a transaction paid is not a good metric to assess its priority, because paying 2200 sats for a 1100 byte transaction is a lower fee rate than paying 1674 satoshis for a 372 byte transaction.

@Murch OK, thanks for the suggestion I've reworded the answer. Let me know please if this is better.

Your transaction paid a fee of 1674 satoshis for 372 bytes, or a fee rate of 4.5 satoshis per byte, which was a reasonable estimate in the past hour (via https://mempool.space/tv):
There was just a slow block with #600,283 taking 37 minutes to be found (via https://blockchair.com) and it looks like your transaction would have been exactly in that little blue corner above the dotted line.

Otherwise, four of the last six blocks were not even full, so if not for that slower block, it would have been included in the next block (via https://mempool.space/tv):

Should you do get a transaction stuck during a congestion phase sometime in the future, check out this canonical question: Why is my transaction not getting confirmed and what can I do about it?


text:
Receive/send Transactions latency
I am on Ubuntu 16.04, with the latest version of Bitcoin Core, synced and working.
I would like to know why is there a little delay of approximately 1 sec, sometimes more, before a received transaction appear on the console when we run for instance bitcoind -printoconsole, if I check the tx on blockchain.com for instance, I can see that the transaction were received 1 or 2 sec before I even see it on my node, why is there a delay ? I have try on another ubuntu server with a super fast connection and it's the same thing. By the way, it's the same thing when I send a Tx, it's submitted and appear on the network 1-2 secs after.
So my question is why is there such a delay even on a node ? Is it possible to reduce it ?
I have already asked the same question on the bitcoin repo on github and someone told me that it is an intentional delay against attackers, but what I don't understand is why blockchain has access to it before node ? If they can it mean that we can too right ?
Just like when few years ago and even months, some brainwallet were swipped within milliseconds.
Thanks in advance !

If I understand your question, your latency compared to blockchain.info is motivated to the blockchain.ifo use the node distributed to the world and you have only the one node.
I have read this reasearch where write this

In  any  peer-to-peer  system,  dierent  nodes  will  receive  thesame data at different times.  Blockchain.info uses a geographi-cally distributed set of nodes to obtain relatively accurate times-tamps.   BlockSci is a single-node system,  so its timestamps in-evitably lag those of blockchain.info. Based on 2 weeks of mempooldata recorded by our AWS node in theus-east-1ddata center, wefound that our timestamps lag blockchain.info’s timestamps byan average of 16 seconds and a standard deviation of 4 seconds.Any BlockSci user can perform a similar measurement and apply auniform correction to eliminate the average lag, but of course thevariance will remain.

Okay I understand, I will read the research, thank you !


text:
Does GDAX charge network transaction fees?
I've heard its free and when transferring your bitcoin out to an external wallet, but others are saying it's impossible. When I went to withdraw from GDAX I didn't notice and fees.  On the withdrawal screen it also says "BTC network transfers are fast and free."  What is right?

I don't know about GDAX specifically, but it's pretty common that exchanges pay the network fees on outgoing transactions.  They recoup the costs in the fees that they charge you for trades.

@NateEldredge I'm specifically asking about GDAX

I sent ETH from GDAX to another exchange last week, didn't charge me for anything at all. Not sure about BTC, as I'm unable to view older transactions right now. Another transaction shows that I sent ETH from Coinbase to my wallet,and got charged 0.00042ETH. So I'm pretty sure ETH is free of charge on GDAX.

It states that "PROCESSING TIME" - BTC network transfers are fast and free. However I don't have BTC on GDAX right now so I can't test for you.

I could confirm GDAX does not have any network transfer fees. It could be unbelievable, specially if you started with Coinbase(like most people now), but it's the fact, as it's confirmed in all of their withdraw pages 'network transfers are fast and free'!

I'm amazed GDAX would pay my $21 Bitcoin transfer fee in December 2017

I just bought BTC on Coinbase, I then transferred that BTC to GDAX and then sent the BTC from GDAX to Binance.  NO FEE!!!
If I would have withdrawn in Coinbase to Binance, $200 of BTC would have had a fee of $144!!! CRAZY!

If you want to save even more you should buy on GDAX, not Coinbase. On GDAX you can buy with a limit order and you'll incur in zero fees (because GDAX uses the maker-taker model). So, essentially, you send money to Coinbase, then move the money to GDAX (instant and free) and then you buy.

Side note -- you must leave the Post Only option checked for this and place your order at a price lower than the current trading price.

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


text:
Testing Ledger Nano S wallet seed
Can I test that I've correctly recorded the seed by "restoring" my wallet in a desktop wallet like Electrum by using the seed given to me by my Nano S?  It would mirror my hardware wallet, correct?
Is this safe / right way ?

Safe is a rather vague word here. If you restore the seed on a computer that never connects or have been connected to the internet. Then you are safe to do so.

If you do this correctly, it would mirror your wallet, yes. BUT!
Doing so is probably not a good idea, because you'll have to type your seed phrase into a desktop computer that may be compromised. The point of a hardware wallet is keeping your keys locked away in a device which never touches the internet, testing your backup seed phrase on an internet-facing device entirely undermines this.
Instead, it is best to test your seed phrase using the hardware wallet itself (or, a second one).

Initialize the hardware wallet, write down your seed phrase
Open the wallet software on your PC, copy the receiving address your wallet shows into a text file
Wipe/reset your wallet, and re-initialize it using the seed phrase
Once done, open the wallet software on your PC, and check to see if the receiving address is the same as the one you copied to your text file. If it is, then you successfully recreated the same wallet.

If you've already sent funds to your hardware wallet, then it may be worth removing the funds from the hardware wallet before doing this test (or, just do the recovery test on a second hardware wallet). You wouldn't want to wipe the wallet with funds on it, before you're comfortable with the recovery process.

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


text:
Does support HD wallets multi networks?
Due to bip 44 list
https://github.com/satoshilabs/slips/blob/master/slip-0044.md

HD wallets support multi coins.
does it mean HD wallets support multi networks? like omni for bitcoin, TRc20 for tron?
what is network role in the HD wallets? I think in the derivation of child for multi coin, nothing, yes? but what about in sign a transaction? is there any difference or all networks are same?

does it mean HD wallets support multi networks?

No.
A Bitcoin wallet can implement BIP-0044 without supporting any cryptocurrency other than Bitcoin.

So how can I have a wallet with supporting many cryptocurrency? I mean an HD wallet that can generate multi coin address for receiving and also can signing(spending) coins and also discover their networks? In bitcoin HD wallet we can  only  generate address for other coins or we can generate address only for bitcoin?

@HamidNaghipour: Multi-currency wallets need specific software code for each separate currency. It's not enough to have a common standard for derivation paths. Cryptocurrencies vary greatly and verification of transactions, blocks, etc are currency specific.

So we can say: HD wallets in BIP44 is only to generate addresses.

HD wallets in BIP44 is only to generate addresses for different Coin, but if we need to discover address, spend and sign a transaction, so we need to access the network of each currency for example for Tron or Eth. yes?

And this is a relationship between a wallet software (even HD wallets) and all networks that each blockchain of coins work and exist there. yes?


text:
if bitcoin miner(s) changed the UTXO set would the bitcoin nodes reject the blocks?
if so, would this cause a Fork? or what would happen?

Every node has their own UTXO set. Nobody knows or cares about what miners do in theirs. If they produce an invalid block however (for example because it spends a UTXO that doesn't exist), that block will be rejected.

wow if this is the real Pieter Wuille - i am honored to haveu answer this noobie question - thank you !  i asked this question because of what Faketoshi said: 'If a court orders mining pools to seize funds, they will modify their software to do it, or be shut down'    - i thought this couldnt happen because nodes would reject - but can you explain what would really happen? thanks in advance - i am learning - long way to go

@user100601: Hey, welcome. Could you please edit your question to put the clarifying information there instead of the comments? Thanks!


text:
If a court orders mining pools to seize funds, they will modify their software to do it, or be shut down' - can this happen?
I thought nodes could prevent this too.  but if enough miners did do this, what could happen in worst case?  thanks in advance for responding

To spend some BTC, the network’s nodes will require a valid cryptographic signature on the transaction that consumes the UTXO in question. Each UTXO is locked to some bitcoin address, and to create a signature that is valid for that address you’ll need knowledge of the private key used to derive/create that address.
So a miner is not in any sort of privileged position to spend coins that are not theirs, since they do not have knowledge of everyone else's private keys. No matter what a court mandates, the miner will be unable to legitimately spend coins they don't own. Any attempt to do so would be easily identified as cryptographically invalid.
A miner could start creating blocks which move arbitrary coins to addresses of the miner's choice, but these transactions and blocks would be rejected by the rest of the network of nodes, so it would be of no consequence to the network. The miner creating these fraudulent transactions would simply be ignored.
Each network node is an individual instance of the code, working to independently verify the state of the network. Even if every miner started to break the rules, the nodes would simply ignore them (and we’d expect some miner to eventually capitulate and start mining valid blocks again, since they will gain profit for doing so, and otherwise lose money by mining invalid and useless blocks).

thank you chytrik for your excellent answer - having faketoshi say this was very disconcerting .  and your response is how, i thought, i understood it to be also - so having u validate my reasoning is reassuring.

@user100601 happy to help. I would generally recommend ignoring whatever faketoshi has to say, save for the comedic value of his ramblings.

yes i agree but unfortunately for me (and prolly others) we are the local bitcoin expert (and i am no expert ,but having read Andreas' book i am the closest thing to one -to those around me - lol.  so when i get these questions - i am not good enough yet to answer with certainty.  so again, thanks for the help


text:
Is it possible to build pay to script without destination address?
I am thinking of a transaction that can only be spent if the recipient proves that he has burnt a specific amount of a colored coin.
Because the recipient is not known beforehand, is it possible that the recipient provides the destination address together with the proof when trying to spend the funds, or the destination address has to be always provided when building the scrpit?

Addresses are a human-convenience feature, and have little bearing on the underlying Bitcoin transaction.
Common types of addresses rely on sending coins to scripts that allow spending by signatures from certain private keys. However, you can have scripts that allow spending as long as any given locking requirement is met.
Unfortunately, the script must be self contained, and you will not be able to enforce a burn requirement, as there is no way to check if the coins have actually been burned on-chain. Your best bet would be to lock the coins to a key, and have an off chain way to share that key with someone who burns the required amount of coins.

Thank you.  The proof of burn would have this structure: https://docs.bisq.network/dao-technical-overview.html#proof-of-burn-tx
I think that it could be possible if the script hash is the result of hashing the hash of the burnt transaction + the amount burned + random text signed by the one who burnt the colored coin.
But this is only possible if the burning is made before building the script transaction. Correct?  Or could be a way of building the script without before the burning takes place?


text:
BIP38 Encryption
Like many people, I created a paper wallet on BitAddress.org for the first time a month ago. I chose to use BIP38 encryption like an idiot. I'm not sure if I typed in my password wrong, but I have entered every password I can think of to no avail. First off, why would this website not have a "confirm password" section, and 2nd, how in the heck am I supposed to retrieve my first purchase ever from this paper wallet if the passcode I believe I used, is not working? A keystroke of bad luck, is what that was! Any ideas? Is there any place I can send this just using a private encrypted key? Thanks! Us noobs. Need to be looked out for.

how in the heck am I supposed to retrieve my first purchase ever from this paper wallet if the passcode I believe I used, is not working?

Sadly, if you created a BIP38 paper wallet and lost the password, then your bitcoins are locked away forever. A password protected wallet would be kinda useless if there was a way to circumvent the password protection. With financial sovereignty comes responsibility, hopefully you only have a small amount locked away in that wallet.
If it was just a matter of one wrong keystroke, you can maybe look up some sort of password brute-forcing software online. This might end up being a fair bit of work, but it may be possible to recover your funds this way.
Best of luck.


text:
I sent a bitcoin to a non coinbase email address
How do I retrieve a bitcoin sent to an email address from coinbase and the email address is not registered with coinbase...

If you used the bitcoin network to send coins there is nothing you can do, once you send them you you no longer own them.
If you send bitcoin with coinbase with their service then you should contact their support service.


text:
How to speed up first sync bitcoind?
I am running bitcoind version 0.19.0.1 on different cloud providers and it gets very slow at some point. After 300k blocks, CPU drops from ~90% to 5% and network usage drops to a minimum. I've tried in a medium size droplet at Digital Ocean and t2.small on AWS.
In the latter, IO operations in the HDD are at a good throughput. My configuration is by default.

If you have enough RAM, try increasing dbcache, that should speed things up for you

As you've discovered, Bitcoin Core is almost optimally non-performant on shared servers.

The majority of the work done is on a single core, so measuring the total utilization of the CPU is not a good measure.  Database operations are necessarily single threaded, and the majority of the work in the early parts of the chain are entirely consumed by this.
Bitcoin Core is sensitive to disk speed and latency for some operations, which shared servers are often starved of resources for. EC2 especially is well known for atrocious IO performance in even moderately sized instances, other low cost providers suffer similarly.

Security issues with delegating your private material to a third party not withstanding, the best performance is going to be on a dedicated piece of hardware that is not EC2. Otherwise increasing the amount of dbcache increases performance to a degree (more than a couple of gigabytes will not help), but this will not resolve CPU resource starvation which is common for shared hosts.


text:
download bitcoin core safely: wrong checksum
I've downloaded the "classic" linux bitcoin core 0.19.1 (tgz) on https://bitcoincore.org/en/download/
In the SHA file that's on the website this is the key:

5fcac9416e486d4960e1a946145566350ca670f9aaba99de6542080851122e4c  bitcoin-0.19.1-x86_64-linux-gnu.tar.gz

In my terminal, when I do sha256sum filename, I don't get this key.
Also when I run this I get a [FAILED]

sha256sum --ignore-missing --check SHA256SUMS.asc

1) Am I doing this right ?
2) if yes does it mean bitcoincore.org compromised ?

What size is your file?  It should be 31995432 bytes.  When I downloaded it just now, I got the correct checksum, so I would wonder if your download was truncated or otherwise corrupted.

same amount of bytes. I extracted it to test it works

could you try using sha256sum without the check flag and compare the hashes manually? maybe there was a problem with the asc file download.


text:
How is Bitcoin/Blockchain programmed to do multi transaction at the same time?
I read this article blockchaing stored and now I am bit confused. In this article it is described, that the transaction needs 15 seconds to propagate to the whole blockchain network. I know that the new transaction block contains the hash of the previous block. So my question is, if anyone in this 15 seconds create another transaction, how the systems doesn't crash?
To make my question a little bit more clear, I make one example. Let's say the hash of the previous block was "11b83f1dbb421b7539f755". If I make a transaction (Transaction A) for about 1 BTC and 1 second after me someone other makes new a transaction (Transaction B), which transaction becomes the previous hash "11b83f1dbb421b7539f755", because it needs 15 seconds till every node knows the new chain? So after one second not every node, knows about the Transaction A.
Thank you very much in advance!
PS: English is not my mother language :)

Let's say the hash of the previous block was "11b83f1dbb421b7539f755". If I make a transaction (Transaction A) for about 1 BTC and 1 second after me someone other makes new a transaction (Transaction B), which transaction becomes the previous hash "11b83f1dbb421b7539f755", because it needs 15 seconds till every node knows the new chain?

Not quite.
When you submit a transaction to the network, the network's nodes will check to see if it is valid. If it is, then the nodes will each store the transaction in their local 'mempool' of unconfirmed transactions. Note that a transaction does not reference a previous block, but it will reference some valid unspent transaction outputs (UTXOs) to consume as inputs (which means, it will specify which coins it is spending). It is possible for different nodes to have different mempools, and a node can even elect to not keep a mempool at all.
Miners will select transactions from their local mempool, and attempt to mine blocks which include those transactions. Once a miner finds a valid block with a certain transaction included in it, that transaction is said to be 'confirmed'. Note that a valid block must reference the previous block's hash.
If two transactions consume the same UTXOs, then only one of them can possible be validly included in the blockchain record.
Likewise, if two blocks reference the same previous block hash, then only one of them will eventually become a part of the blockchain record (whichever one is extended first).


text:
.xlsx or .csv file that holds the information about supply of bitcoin in time series
I am developing a new alpha for algorithmic trading of bitcoin.
My basic Idea is to construct a function which maps a change of supply into the total buy/sell action.
and also I'd like to track the change of total liquidity of bitcoin.
To make this alpha, I need handleable .xlsx or .csv file that holds the information about supply of bitcoin in time series.
Any help for me to find this data? where can I find it?

By "supply" do you mean the total number of bitcoin in circulation at a given time? They're being created at a fairly constant rate.

@Geremia yes total number of bitcoin in circulation.

@Geremia why is it so constant?

They're not constant. The creation rate is constant.

@Beverlie The creation rate is constant, as Pieter said, so the amount of bitcoins in circulation grown about linearly. You can find those and other data that may be useful for your case by API on blockchain.info, bitcoinity.org, coin.dance and many other.


text:
What is #Hash in bitcoin from a layman's perspective?
I am currently reading through the paper on bitcoin and being from a non IT background, I am unable to understand the use/function of hash

A hash is like a unique identifier, perhaps like a barcode, usually written in hexadecimal as a string of numbers an letters. Bitcoin specifically uses the SHA-256 hash algorithm in most places (it also uses RIPEMD160 in some places). You can 'hash' any data you like, and get such a unique identifier. For example the hash of a transaction is called the TXID (transaction ID). If you change any small part of the transaction then the entire hash changes. Same with blocks, the hash of a block header is used to uniquely identify that block and make sure nothing has changed. Anyone can verify that the header hashes to the same hash, to test for integrity. And it is also used to make mining difficult - a special requirement is placed on each block hash that it has to be less than some target (or that it has to start with a certain number of 0s). One of the key aspects of a hash is that there is no way to reverse it, hashing is a one way function, you cannot take a hash and find out the data it came from.

A hash function is a mathematical operation with some special properties, such as being deterministic (always get the same output if you use the same input), and being non-invertible (if you have the function output, you can't work backward to get the input). You can take any input data, "hash it" (use it as input for the hash function), and you'll receive some output data that looks completely random. If you change just one little thing about the input, your output will change entirely and unpredictably.
So in layman's terms.. its like a magical piece of math that lets you turn any input data into some random looking output data. If you give someone the output, there is no way they can figure out your input, even if you show them how the hash function works.
These properties allow for some neat cryptographic tricks, such as public key cryptography, or the 'Proof of Work'


text:
Please help with my unconfirmed transaction (for two days already)
Could someone pleas help me with this trancaction,highly appreciated :).
Link underneath

By now there are waiting like 170k transactions: https://blockchain.info/en/unconfirmed-transactions

The only thing you can do is either wait or fee bump the transaction by using the replace by fee functionality to increase the transaction fee.
https://en.bitcoin.it/wiki/Fee_bumping
Unfortunately the bitcoin network in being spammed with transaction by crooks operating competing cryptocurrencies the mempool has a backlog at the moment

Thanks for your answer! I bought from a "bank", so i dont think i can fee bump.

"banks" have nothing to do with it, you can still send more to the transaction fee to speed it up


text:
Same private keys, address started with 3 in electrum, but address started with 1 in electron cash
I have a electrum wallet with 2fa. The addresses in this wallet all start with 3. When I export private keys and import them in electron cash to get Bitcoin cash, the addresses start with 1 instead. And the balance shows 0.
Why? What should I do to get my Bitcoin cash?

An adress starting with 3 is either segwit or Multisignature, and segwit isn't supported by BCH, hence why it would start with a 1 on their chain.

@RutgerV. BCH does support multisignature though (and P2SH in general), which is what electrum uses with 2FA I believe, so your comment is incorrect


text:
BTC Hash-Rate API
I'd like to get hash-rate of BTC from OKcoin' API(GET /api/v1/charts/:type)
here is OKCoin's API web site.
How can I get information from  here is OKCoin's API web site.
python
gets = requests.get("http://block.okcoin.cn/api/v1/charts/hash-rate.do")
gets.json()

OUT
{'error_code': 10010, 'result': False}

Your links seem to lead to another website than OKCoin's website. Is that intended?

I couldn't find a Hash-Rate endpoint in OKCoin's API anymore, but I found an endpoint from blockchain.info
To get the data programmatically, you can call:
import requests
response = requests.get("https://blockchain.info/q/hashrate")
print(response.json())


text:
How to use API of BTC.com
I'd like to get some information(BTC's difficulty, hash rate).
I think I can get that from api of BTC.com, and I checked github of btccom, but I can't mount api with python.
How Can I use btccom api(v3)?
maybe for the first time, I need to install something on terminal(mac).
It's like a [pip insall ***].
Than you

BTC.com APIs are Web APIs. This means you can use them by making HTTP requests (GET/POST requests).
Like all online APIs, you can access them through whatever program/script you want, provided they are able to make HTTP requests and handle the answers.
Requests/responses are usually encoded using the JSON format.
You can find a good introduction here.
You can choose your favorite language. However, since data is in JSON format, I would suggest to use either Javascript or Python.
In Python you can use the 'request' package. Here you can find a quick introduction.
In Javascript you have the 'request' library.
I wrote a generic lib to make Web API requests: https://github.com/frz-dev/webapi.js/blob/master/webapi.js


text:
Why is my Bitcoin transaction taking so long
I am new to Bitcoin (using Bitcoin core client) and i tried to make a transaction but its taken 4 days so far and i not sure what to do?
https://blockchain.info/tx/8c2057ca78c0843b881c2620127d140cdeeeb73f38fa6444d9aecd82d0979cc9

The transaction appears to have a very low "fee per byte" of 20.09 satoshis per byte.  A transaction I just completed got confirmed 5 times within 30 minutes or so with a fee per byte of 298 satoshis/byte.
You need to make sure the fee you specify for the transaction is attractive to miners, otherwise it will take a long time for the transaction to be confirmed.
Earn.com has a great bitcoin fee tool at https://bitcoinfees.earn.com/ (I'm not associated with Earn in any way)

Would there be a way for me to add more money to the fee?


text:
Building Bitcoin Core on Linux/Ubuntu with Visual Studio Code
Does anyone developing Bitcoin Core use VSCode for compilation and debugging on Linux/Ubuntu?
How can one configure VSCode to compile Bitcoin Core?

@Prayank see answer below

I found a solution to work with VSCode, and use it for compilation.

Install vscode on your machine, including the C/C++ development extension
Create a directory named .vscode in the root of bitcoin repository folder
Create a .vscode/c_cpp_properties.json file. This file contains the configuration for the C/C++ project, including compiler type and source path.
Create a .vscode/tasks.json file. This file contains configuration for build and test tasks, which compiles the code and parses errors into the IDE
Hit Ctrl+Shift+B to run the build task

If you want to develop on a Windows machine but build and run on a remote Linux machine, this can be done with the Remote Development extension. After connecting to the remote server, create the relevant files in the directory.
The relevant json files:
c_cpp_properties.json
{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${default}",
                "${workspaceFolder}/src"
            ],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "gnu17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "linux-gcc-x64",
            "browse": {
                "path": [
                    "${workspaceFolder}/src"
                ],
                "limitSymbolsToIncludedHeaders": false,
                "databaseFilename": "${workspaceFolder}/.vscode/browse.vc.db"
            }
        }
    ],
    "version": 4
}

tasks.json
{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build",
            "type": "shell",
            "command": "make -j 8",
            "problemMatcher": {
                "base": "$gcc",
                "fileLocation": ["relative", "${workspaceFolder}/src"]
            },
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Test",
            "type": "shell",
            "command": "make check",
            "problemMatcher": {
                "base": "$gcc",
                "fileLocation": ["relative", "${workspaceFolder}/src"]
            },
            "options": {
                "cwd": "${workspaceFolder}"
            },
            "group": {
                "kind": "test",
                "isDefault": true
            }
        },
        {
            "label": "Clean",
            "type": "shell",
            "command": "make clean",
            "problemMatcher": {
                "base": "$gcc",
                "fileLocation": ["relative", "${workspaceFolder}/src"]
            },
            "options": {
                "cwd": "${workspaceFolder}"
            },
        },
    ]
}


text:
Pending Unconfirmed Transaction for 5 days
I have been waiting on this transaction to confirm since July 16th when I made it. I have no idea as to why this transaction is not being fulfilled. Here is the blockchain of the transaction.
https://www.blockchain.com/btc/address/3FpnL3kikVBm1mifSqebiuxHL6rcwe7K8B
Please someone help ; I just want to get the coins returned to my Coinbase Wallet (the origin address).

You linked to an address, with in addition no transaction related to it.

Unconfirmed bitcoin transactions are also known as the transactions in the mempool.
The Bitcoin Mempool (memory pool) is a collection of all transaction data in a block that have been verified by Bitcoin nodes, but are not yet confirmed.
Once a transaction is included in a block, it has one confirmation. As soon as another block is mined on the same blockchain, the transaction has two confirmations, and so on. Six or more confirmations is considered sufficient proof that a transaction cannot be reversed.
In your case you have probably sent a transaction with a low feerate; for this reason all other transactions that have paid a higher commission than yours will be confirmed faster, while you will have to wait for your turn.
You just have to wait until mempool is clean. Transactions are cheaper and faster when the mempool is empty.
You can check websites like Johoe's Bitcoin Mempool Statistics or mempool.space to see mempool statistics in real time.
Ps: what you sent us is not a transaction, but an address.
To be able to help you we would need the transaction, to understand if it is possible to carry out some actions aimed at speeding up the confirmation by the miners (eg RBF - Replace by Fee) instead of just waiting it to be confirmed.

On my coinbase account, the only thing that shows is a pending transaction to that address. There is no transaction ID/hash. It just shows the address the BTC were intended to be sent to, zero confirmations, and a fee of 0.00002088 BTC.

^Continuing from that comment, I bought 300$ worth of BTC from Coinbase at 11:48 am on July 16th. Then in the same minute (11:48am), I sent the BTC to that address. Any ideas on what to do ?

Please, check in your email that you have not received a confirmation email from Coinbase.
Usually Coinbase, before sending the transaction, asks you to confirm it through a link in the email.
Have you already confirmed it?

@RiccardoMasutti: This last thing sounds like the most likely explanation given that there was not a transaction on the blockchain yet.


text:
How many addresses can be in input and output of a transaction
I have read through this question and i understand that there can be many sender and receiver addresses within 1 transaction(i'm new to bitcoin transaction, previous i was working with ethereum where 1 transaction can only have 1 sender and 1 receiver).
I'm working with blockcypher api endpoint to monitor incoming bitcoin to an address. I need to get all the possible number of address that can happen in input or output.
Here the logic of my monitor system, user can input their addresses to send(save in database), and my system also has an address to receive that amount. The monitor system only detect the incoming transactions to my address from the user addresses in the input addresses (exists in database)
I have categorized it into these to know the correct value that was send to an address:
input | output  | incoming amount to address
1     | 1 or 2  | amount show on receiver(output) of my address
1     | >2      | amount show on receiver(output) of my address
>1    | 1       | amount show on sender(of the system)(input)

Now i need to know can there be more then 2 on the input and more than 2 on the output? i haven't found any example of it yet
Also please tell me if my monitor logic is correct, are there different logic to monitor incoming bitcoin transaction to an address?
Thank in advance
Sorry if i mess up somewhere in my question, i'm pretty new to bitcoin system.

Every transaction output locks funds to one specific output script. These scripts can have various spending conditions such as for example requiring a signature of one specific private key (P2KH, P2KH, P2TR key path spend) or fulfillment of an arbitrary script defined by the recipient (P2SH, P2WSH, P2TR script path spend).
A common script used in the latter category is 2-of-3 multisig, but it would be incorrect to describe this as "2 addresses being funded in one output". Either way, that would be not the limit.
So, tbh, I'm a bit confused when you describe that one output can fund two addresses.
If I was misconstruing that and you're asking how many inputs and outputs a transaction can have, the answer is that standard transactions must have at least one input and one output, and otherwise are limited to 400,000 weight units. So, a transaction could have thousands of inputs or outputs.

i was referring to this transaction for example: https://www.blockchain.com/btc/tx/aed3cda4203fa9f2ab225e1722ad7202fa888a8ad5818116f5cfab4682784746 , it has 1 input and 2 outputs, i know that 1 of the output is the change of the input sender

@Linh Nguyen That is likely the case, but you don't know that. A transaction does not need to have change.

right, i remember if i'm not the owner of the sender i can't know if it's a change address, but that not bother the logic i have on because i know which 1 of the output address belong to me then the amount it receive is the intended amount the sender put in transaction :) I'm trying to detect the amount come to address from certain sender addresses, that my goal right now

it's like a deposit monitor system that constantly call api to check if the system pool address received bitcoin from certain listed addresses

You should never try to identify sender addresses in Bitcoin. There is by design no reliable of doing that.

i'm not mean by physical adresses, but public key address in an input. For example my system will save certains users bitcoin addresses in database, and i only record transaction where those user addresses send bitcoin to my single pool address by info in 1 transaction

You should give every user a different address instead. Don't try to identity senders, it's not possible.

I have added a second answer to elaborate this point

After sleeping and looking at your question again, I think I am getting what you were asking.
While in Ethereum it is common to have a single address when operating a wallet because there is efficiency of scale that way, the Bitcoin way of transacting is to treat addresses as invoice identifiers. You give out a new address for each payment that you expect to receive. Since the address is unique, you can use the address itself as the identifier tying it to a specific business deal. A wallet can track many addresses, and a Bitcoin wallet can efficiently operate with many addresses (in fact there is no efficiency advantage to spending multiple unspent transaction outputs that were received to the same address together in Bitcoin).
Trying to track who paid you by means of "sender addresses" is a terrible approach, because

people will use many different addresses, so you will need to collect this information over and over again, especially, each input usually was received to a different address prior
when people use custodial services, they may be the initiator of
payments even when they do not actually control the address the funds were sent from, nor the address is associated with their account
there is often no easy way to give proof of control of addresses

Using only a single address for all of your transactions destroys any possibility of financial privacy for your business and diminishes that of your customers.
Using a new address for each payment instead puts you into control, clearly identifies the business deal getting funded, and has better UX.


text:
Bitcoin stolen from Electrum 2.9.3
my btc were stolen with an anonymous transaction. How was possible? Electrum should be a offline secure wallet, besides they were stolen during the night , with my desktop offline. The receiver address is visible. Can i retreive my btc? Moreover, in the future how can i trust every offline wallet? I donwloaded the electgrum sofware from the official site.

Easy.
Someone has/had remote access to your wallet/files.  They don't need access to the computer during the time of a transaction.  Example:  Send me your wallet and go ahead and secure your computer all you want.... I can simply use your wallet on my machine and spend the funds.  Also, it doesn't need to even be your wallet as I would only need your private key or your seed.   It's likely your computer is infected, they downloaded the wallet, and simply waited to withdraw.
No, you can't get your bitcoin back.  Once gone, it's gone.
The fact is, your computer wasn't always offline since you admittedly used it to download the wallet software.
What you should do?  Well, nothing about the bitcoins that are gone, but know that you should never use that seed/wallet again.  It's already compromised.
Again, what you should do?  Get a hardware wallet like Trezor and know that even if your computer is infected with a virus, your coins are still safe.  (As long as you don't backup the seed via notepad on the computer.)


text:
Newbie question about exodus wallet!
I just installed exodus,
1) why the program didn't even ask, do you want a new address? it's generated automatically!
2) when I click recieve on my bitcoin wallet, there are two different addresses generated(that I can click next or backward to chose them), interestingly enough they are not there to be chosen when I click send. which address is mine?
Thanks

All of the addresses are yours.

No, I am talking about just the bitcoin tab,

I have two addresses in bitcoin tab, install and see yourself,
and If I have two bitcoin addresses why is that?

When you want people to pay you, you can give them different addresses, which means you can keep track of who paid and who didn't.

so it means I have two different private Keys??

Here is the explanation: https://support.exodus.io/article/81-how-do-i-generate-a-new-bitcoin-address

Your bitcoin addresses are reusable, however, some users may want to
  generate new bitcoin addresses for privacy purposes. If you would like
  to generate a new address, click on the arrow to the right of the QR
  code in your bitcoin receive window.
You start out with two bitcoin addresses. As each address is used, a
  new one will generate. This way, you always have an unused address
  available to you.


text:
Since blockchain is public.. can someone tell how
Since blockchain is public.. can it be found how many bitcoin you own by having your bitcoin public address?

Yes. Simply paste your bitcoin adress into a block explorer such as http://blockchain.info
For example, this adress has 200$ pending -> https://blockchain.info/address/1Lx4aebbGAUA2ASuYBoiAC2akutzpZQMzb Or, 0.025631 BTC
You can also add a watch-only adress in bitcoin-core / electrum to keep track of balances from certain adresses.

A typical bitcoin wallet consists of many different individual addresses, and does not have a unique ID that can be queried.
So while it is quite easy to learn how much BTC any single address has, learning how much BTC an individual user has, with any certainty, is extremely difficult.
If you want to know your own balance, your wallet-software should tell you that quite easily.
If you want to learn the balance of another user, that is difficult.


text:
Is there a way to launch bitcoin-core and have it shut down when synchronized?
I use bitcoin core infrequently.  I don't want to have it running all the time, but I'm willing to (for now) devote disk space to having it stay current.  I'd like to be relatively current whenever I do start it up, without being weeks behind.
What I'd like to do is:

Once a week or so, start bitcoin-core up.
Have it shut down once it's caught up (I guess defined as "when the latest transaction is less than an hour old).

I know how to handle step one (via cron/launchd/etc).  What I don't know how to do is step 2: either having it terminate automatically, or using some kind of CLI-command to check the sync status every so often.
If the answer to this is "put in a feature request to bitcoin core", then I'd be looking for workarounds/alternate methods to use until that worked.
For the record, I'm on OSX, but in theory this question applies to all variants of the client.
Any ideas?

Bitcoin-core can never complete synchronising since every 8 - 10 min there's an new block.

Asker specified that he considers to be caught up when he's only one hour behind.

You could sleep for e.g. 10 minutes after you started bitcoind, and then  do the following:

bitcoin-cli getblockcount, which is the current height of the node
call getpeerinfo, parse the JSON, take the median of startingheight (how far these nodes are)
If difference < 10, stop bitcoind with bitcoin-cli stop and exit
Sleep 1 minute, repeat

Or use something like this to determine if the last known block is less than an hour old.


text:
Dragonmint T1, cannot find on network anymore (AngryIP Scanner) + NO SDCARD SLOT
I was using Braiins OS for a while, but couldn't get the voltages to settle down no matter what I did, so I went to Braiins OS website and noticed they would no longer be supporting the DM-T1, so I decided to revert via ssh, and upon reboot it never came back online. I've tried hard resets. I've been given instructions by BraiinsOS via email on how to restore it via ssh because it's the NO SDCARD version, and cannot find it anymore. Even with Angry IP scanning for dead hosts, I can find my L3plusplus that's unpowered, but cannot find any, let alone any with port 22 open. I've even tried rigging my arduino with an mp3 player shield, which has an sdcard slot, to try to reflash it. I did manage to hook into it with a USB to TTL adapter I used before to unbrick my Linksys router, but being able to make use of it is outside my scope. I did get the hash control board to light up with that method, showing a valid connection, but I have no idea what if any options that presents. I should probably just give up and buy a new board, or newer machine, but always enjoy fixing things as opposed to giving up. Any help would be appreciated. It's been down since before the halving, so I've lost more than it's worth worrying about at this point.


text:
Bitcoin Core Address
Hi how can I look up my bitcoin-core address. I have generated multiple addresses to received bitcoins but when I look them up in a bitcoin explorer they do not show the balance I see in bitcoin core.
Thanks guys.

Running the bitcoin-core software creates a 'full node', it does this by fully validating the current state of the network. Once in sync with the network, the BTC balance shown by the software can be assumed correct.
Looking up the balance on a blockchain explorer service's website can provide some assurance that what you're seeing on your node is indeed correct, but its also kind of like asking someone else to do some math for you, when in fact you've already computed the answer yourself. Why trust the other person, you've already independently arrived at the answer.
Note that each address in a wallet is unrelated to any other address in that wallet. So if you receive funds to address X, then you'll have to look up address X to see the balance of address X. If you're also received funds to address Y, they won't be shown if you look up address X. Likewise, if you haven't received funds to address Z, then looking up address Z will not give any information about any other addresses in the wallet (you won't see the balance of address X or address Y).
To see a list of unspent UTXOs and their associated addresses, you can run the following command: bitcoin-cli listunspent. If you look up those addresses using a block explorer, the balance of each address should be correctly displayed.
NOTE: using a block explorer is very bad for your privacy. The block explorer service will learn which addresses you are interested in, as will every other service involved in serving you that data (your ISP, local network admin, etc). Using the tor network to look up addresses with a block explorer would be preferable, to help preserve privacy. Some block explorers even offer a .onion hidden-service site mirror, to allow users to retain privacy.

I can assume every address has it's own private key. I'm trying to get educated so I can take control of my own bitcoin instead of leaving them in the exchanges.


text:
Getting "N5boost10filesystem16filesystem_errorE" error when running bitcoin-cli
Backstory
I'm running Bitcoin Core 0.20.1 on a Raspberry Pi 4 (running Raspberry Pi OS standard).
It's just a standard install of Bitcoin Core, I built from source and installed into /home/pi/.bitcoin (looking back, I should have created the 'bitcoin' user first).
I created a new user 'bitcoin' and mounted an external HDD (under /mnt/bitcoin), now when running bitcoind I specify this location as the datadir. I had initially added this location in the bitcoin.conf file but was getting errors and someone mentioned not to add the datadir in the conf file.
Bitcoind runs just fine and uses the correct datadir when using the following command (whilst logged in a bitcoin user)
bitcoind -daemon -datadir=/mnt/bitcoin

The issue
The issue is when I try to access a bitcoin-cli command.
I'm currently getting the following error when running
bitcoin-cli getblockcount

************************ EXCEPTION: N5boost10filesystem16filesystem_errorE
boost::filesystem::create_directory: File exists: "/home/bitcoin/.bitcoin"
bitcoin in AppInitRPC()

It can definitely access bitcoin-cli, as when I run the command without any parameters, it returns the help screen.
Can someone point me in the right direction to fixing this please?

I believe this is a bug with boost::filesystem itself when running on old systems.  There is a fix in boost > .77, but i think it might need to be enabled at compile time.  I found the issue in the boost project and luke jr had actually commented on it, but i've misplaced where it is.  found your question while looking.

Here is the issue thread: https://github.com/boostorg/filesystem/issues/172
soutions are: upgrade system, downgrade glibc headers?, downgrade boost, or upgrade boost and jump through hoops


text:
Can a low fee unconfirmed transaction prevent confirmations of following transactions?
To be more precise, consider the following situation:

Address A gets an input of 4 BTC.
You try to make a transaction from A to B with 1 BTC and a very low fee, which means its unconfirmed for a long while. The transaction's output are B and A (to account for the change of ~3 BTC after fees)
Before waiting for the previous transaction to be confirmed, you send again from A to B, this time you send 2 BTC with a higher fee, hoping it'll be confirmed fast.

My question is, since the output of the first transaction is the same address A, will it need to be confirmed first for the second transaction to follow through, because the input of the second transaction is A?
In this example I used amounts to make sure there's "enough" bitcoin for each transaction separately (since if you have 1 BTC and you try to send it twice intuitively see why it shouldn't work).
Assume no extra addresses are generated automatically by the wallet to handle it. I'm talking about this specific re-use of addresses scenario.

Yes, if the second transaction spends the output of the first one, then #2 cannot be confirmed until after #1 is confirmed.  (Though they can be confirmed in a single block, as long as #1 appears before #2 in that block, in which case the confirmations are effectively simultaneous.)
Most miners will consider transactions on a "child pays for parent" basis, so that a low fee for #1 could be compensated by a high fee in #2.  The two transactions would be considered as a single "lump" with their combined fee, and a miner would confirm them if the combined lump pays a higher fee than the next most lucrative transaction (or lump) that could fill that space.

Two followup clarifications:
(1) Does that mean you can effectively lock your use of a wallet, since you had just one silly transaction with low fees, and all your bitcoins arrived using a single input into a single address?
(2) Why would it matter, if in my example the 2 transactions are floating in the mempool, and you can confirm either one of them first without even knowing about the former. Do miners check every transaction they confirm against every other transaction in the pool as well?

@AhiaCohen (1) It's not permanently "locked".   Even if #1 is never confirmed, you may still create a different transaction #1a which spends your original 4 BTC input, sending it either to address B or anywhere else you want.  This is a double-spend, and other nodes on the network may not like you very much if you send it while they still have #1 in their mempool (Bitcoin Core will disconnect from you and ban your IP for a while, I think), but it's not forbidden by the protocol, and #1a could eventually get confirmed in place of #1.

@AhiaCohen: (2) You cannot confirm #2 before (or without) #1, that is what I am saying.  It's a protocol rule that a transaction in a block may only reference inputs which already exist as outputs of previous transactions.  Any block that contains #2, if #1 is not already in a previous block in the chain (or earlier in the same block), is an invalid block and will be rejected by the network.  Miners do and must check this.

About (2), but since #1 is unconfirmed yet, it's not in the blockchain. And as input, #2 can take the original input into the wallet of the 4 BTC, no (since #1 is unconfirmed, there's still an UTXO of 4 BTC in address A).

@AhiaCohen: I see.  Yes, that is the situation I described in my response to (1); in that case, your #2 is what I called #1a.  It has all the usual issues of a double spend.  Wallet software will normally not do this by default; they will prefer to spend the "change" output from #1, since they assume that you actually want #1 to confirm if possible.

Thanks, that clarifies it a bit. Just one final bit: Can the wallet choose to take as input for #2, the output of #1 even though it's not confirmed? I assumed it can only take as outputs things that are already registered in the blockchain, but if not, then I should probably be angry at my wallet for causing this mess.

@AhiaCohen: Yes it can, and wallets often do this.  This is based on the common case that #1 will confirm pretty soon, and the user may not want to wait before creating more transactions.  If fees are sufficient and block space is not in short supply (which was the case when most current wallet software was designed) then it is nice to be able to queue up multiple transactions, and they could all get confirmed together in the very next block.


text:
Electrum addresses start with "b"
As far as I know, all bitcoin addresses start with a "1" or "3" prefix.
I've just started using electrum wallet and all the addresses it generated had a prefix of "b", or even "bc".
Is this legit or some scam, and if legit, does it have a special meaning (like segwit addresses starting with "3" prefix) and where can I read more about it?

These are native SegWit addresses, specified in BIP173 using a format called Bech32. They begin with 'bc1'.
Addresses that begin with a 3 are P2SH addresses, an address format that has been around for over 5 years now. They were originally used by multisig wallets like CoPay and GreenAddress, which only saw limited usage. However, SegWit can also be used in compatibility mode, using the existing P2SH format, so that old clients can send to it. This gave rise to the myth that '3' addresses are specifically for SegWit.


text:
Power Off Dash Miners for Short Time on P2Pool
I've been DASH ASIC mining (3 miners) for about 1.5 months. I have accounts with the NiceHash and SuprNova pools. I switched to the P2Pool (peer-to-peer pool) method just this evening.
I have typically powered my miners off for about 2-3 minutes per night to make recordings for another activity of mine. I am assuming that as long as I leave my P2Pool program running and simply power my miners off for a short time, I should be fine.
This got me thinking about other needs for the future. When I eventually reconfigure my setup, update my server, update it's OS, or move my mining to a new location, I am guessing that if I setup my P2Pool programs and config file the same way, and start everything back up, I should be fine.
I just want to confirm that these assumptions are correct. If not, what's the best procedure for when you do need to do the above things?

Mine as long as possible, turn off only when needed.  I haven't check Dash P2Pool, but most payouts use some form of PPLNS (Pay Per Last N Shares) payout (although some have different methods to calculate it), so the longer you're offline, the lower the payout will be if you hit a block (since your %age of the submitted shares will be lower).
This is intended to stop people "pool hopping" (when your pool hits a block or gets super lucky, you jump to a pool that is due to find one or particularly unlucky at that point in time, if you're lucky you can get both rewards.  As you're paid depending on how many shares you've submitted, then you're not going to get paid as much because your work on the new pool is low, so it disincentivises that behaviour.
It's technically fine to stop mining for a few minutes, no harm to the machines (although heating them up and cooling down too often could pose a problem with components etc, but it's unlikely to be a big issue).
If you want to regularly turn them off, or for extended periods, then I'd advise sticking with something like NiceHash, since they use PPS (Pay Per Share), so any work you do is paid (although their fees may be higher).
Someone can correct me if I'm wrong, but stopping P2Pool and starting it shouldn't be a problem, I don't know how it stores it's statistics, but if it's a local version then it doesn't matter anyway, since you're the only one on that node.


text:
P2Pool Payout Addresses vs Worker Addresses
I initially did a setup of 3 Antminer D3's following DIRECTIONS AT THIS LINK.
I used a payout address for my P2Pool command line that I created in my Dash Core wallet. I did NOT initially use wallet receipt addresses for each of my miner's worker names, but instead called them DASH01, DASH02, DASH03.
As I continued to research, seeking to find ways to optimize my mining and my miners on my P2Pool, I learned to set the difficulty using address+diffnumber. That led me to realize that the REASON I was NOT seeing complete stats for my miners on my P2Pool monitoring web pages, was because I was not using wallet reception addresses generated by my wallet/node for my worker names.
Now that each worker has a separate wallet/node receiving address, I can see all the stats.
Herein lies my question. Should none of my worker addresses use the same address as my payout address? I am confused about this particular point. Thanks for clearing up any conceptual errors too.

It occurred to me that IF I have wallet reception addresses for my worker names = address+diff, I don't need a payout address in my p2pool command line - is that correct?

Through trial and experience, I can now answer this question myself. I decided to NOT use a payout address for my p2pool command line, and only used dash core wallet reception addresses for my worker names, but each worker address is address+difficultNumber. It's working fine and reporting well in the p2pool web page, whereas it wasn't reporting things before using the above initial scheme. It looks like this arrangement will be more profitable than the previous one too.


text:
What happens if everyone discovers much faster way of solving hash function problem (mining)?
The question is not about how bitcoin mining works, but rather how bitcoin system adapts to progress in ability to tackle proof-of-work problems.
Suppose that proof-of-work problems used for bitcoin mining become very easy to solve. (eg. P=NP with very fast practical polynomial-time solver, though of course unlikely, but let me play a hypothetical game.) Then it seems that bitcoin system would collapse - 32-bit nonce may be insufficient to counter how fast proof-of-work can be done, in case that this becomes reality.
Is there any part in the current bitcoin implementation that would protect the bitcoin ecosystem from this type of collapse? Is the "difficulty target" system enough to resolve the hypothetical issue?

A sidenote: The 32-bit nonce (i.e. ~4 GHashes) has been far from sufficient for a long time.

They already did find a faster way. Bitcoin mining now is run on specialized ASIC chips but it wasn't always that way. In early days it was CPU or GPU.
So nothing happens really, difficulty will adjust so that new blocks are found every 10 minutes on avg.
If this new mining tech is only in the hands of one entity though, then they could potentially do bad things, but your question was "What happens if everyone...".

The difficulty adapts dynamically to the increasing capability of miners to solve the proof of work, in order to maintain a 10mins block time.
If some new tech (like quantum computing) would make the current POW trivial then Bitcoin would have to switch to another POW or any other working consensus mechanism. This would require a hard fork.

A typical miner runs through all possible nonces in a fraction of a second. Fewer than one in a trillion times will it find a nonce that works. It then tries all the possible nonces for a different block and repeats this process over and over.
The 32-bit nonce doesn't have to be "sufficient" for anything special.


text:
Create offline bitcoin tx for p2pkh address in a user-friendly way?
You created vanity  p2pkh-addresses in the past, you have access to the private keys (WIF) and addresses (1...).
Now you want to spend the funds securely and in an offline way (you do not want to enter your private key into an ONLINE computer).
I imagine something like:

You enter the p2pkh address (ONLINE), the program fetches the UTXOs and
creates a list of transactions and an unsigned transaction
to spend the inputs to a given address.
In the next step you can sign
the transaction (OFFLINE) and export the signed transaction.
In the
last step you submit the TX to the network.

Are there any user-friendly tools/programs that offer this functionality?

The big difference is that most offline wallet programs are using BIP39 HD wallets.
Here I want to "solve" this problem for a dump private/public key pair.

I think electrum is perfect here among its functionalities it is user friendly and it support offline transactions for P2PKH addresses securely and also offline transaction signing.
You can have more information on the official website https://electrum.org/#home


text:
How to move/sweep your Bitcoin Core bitcoins safely and air-gapped to your new fancy cold storage?
I have stored my bitcoins on Bitcoin Core in a few P2PKH addresses with many UTXOs. I would like to have a plan, how these bitcoins can be moved air-gapped to a more up-to-date setup (not discussed here).
I have not touched this computer (OFFLINE) for many years and I am afraid to connect it to the internet.
I assume that I need to have access to the lastest UTXO set and then create air-gapped transactions. But how exactly can this be done?
Is it possible to setup a Bitcoin Core on another online computer (ONLINE) and import the addresses using "importaddress"?

Is it (and how) possible to create an unsigned transaction on this ONLINE computer including all UTXOs of one of the imported (watch-only) addresses?

And then move this unsigned transaction to the old offline computer (OFFLINE) with the old wallet.dat file and sign the transaction?
Is this possible or is there another way to do this air-gapped?
Has anyone documented all the necessary steps?
Thanks for your help!
-A frightened hodler

Thank you. But manually creating a transaction with many inputs seems too error-prone to me. Is this possible using the GUI?

Yes, that's my idea. But is this really possible using Bitcoin Core? Are you aware of any documentation/videos?

@Prayank I tried and I am stuck here: I've done importaddress on the ONLINE computer, getaddressinfo shows that the address is iswatchonly, not ismine and not solvable. What do I have to do now to create an unsigned PSBT tx using the GUI?

By setting up a wallet with disabled private keys and importing the p2pkh address using importmulti it's now possible to click on Create Unsigned but I'm now stuck like you at The amount exceeds your balance Have you managed to get it to work? I guess the issues is somehow the missing output script. How can I import it?

@Prayank Great. But how do you create a descriptor when using a p2pkh address?

@Prayank Thank you, but getaddressinfo does not return the pubkey required by  getdescriptorinfo. Did you manage to test it using a p2pkhaddress?

Yes, it's even easier using Bitcoin Core 0.21.0, descriptors and PSBTs.
How to spend/sweep p2pkh UTXOs air-gapped using Bitcoin Core's 0.21.0 GUI and PSBTs.
Here are the required steps, many of them have to be entered into Bitcoin Core's console.
OFFLINE
(best to use a laptop booted from a Ubuntu USB-stick and no internet connected)

export the descriptor of the p2pkh address:  getaddressinfo ADDRESS

copy the "desc": "pkh([....", output to the ONLINE computer

ONLINE

optional: create a new wallet in Bitcoin Core
import the descriptor from above into Bitcoin Core:  importmulti '[{ "desc": "pkh([....", "timestamp":0, "label":"import", "watchonly":true }]'
optional: check that the following is now "solvable":  getaddressinfo ADDRESS
now create the unsigned PSBT using Bitcoin Core's GUI: "Send", "Create Unsigned", "Create Unsigned" and "Save"
copy the file containing the unsigned PSBT to the OFFLINE computer

OFFLINE

if needed unlock your wallet walletpassphrase "YOUR_WALLET-PASSWORD" 600
now import the file from above and sign the unsigned PSBT using Bitcoin Core's GUI: "File->Load PSBT from file"
double check the transaction and "Sign Tx"
then select "Copy to Clipboard"
copy this hex output (now in your Clipboard) from above to your ONLINE computer

ONLINE

send the raw transaction using sendrawtransaction HEX-FROM-ABOVE
optional: copy the raw transaction into an block explorer like blockstream.info instead

Done!
Feedback is welcome!

Update Aug 1, 2021: this answer covers Bitcoin Core <= 0.20.1.
For Bitcoin Core >= 0.21.0 using the GUI-integration for PSBTs check the second answer.
Yes, it's possible using descriptors and PSBTs.
How to spend/sweep p2pkh UTXOs air-gapped using Bitcoin Core's GUI and  PSBTs.
Here are the required steps, most of them have to be entered into Bitcoin Core's console.
OFFLINE

export the descriptor of the p2pkh address:  getaddressinfo ADDRESS

copy the "desc": "pkh([....", output to the ONLINE computer

ONLINE

optional: create a new wallet in Bitcoin Core
import the descriptor from above into Bitcoin Core:  importmulti '[{ "desc": "pkh([....", "timestamp":0, "label":"import", "watchonly":true }]'
optional: check that the following is now "solvable":  getaddressinfo ADDRESS
now create the unsigned PSBT using Bitcoin Core's GUI
copy the unsigned PSBT (YOUR-PSBT) to the OFFLINE computer

OFFLINE

if needed unlock your wallet walletpassphrase "YOUR_WALLET-PASSWORD" 600
optional: check the PSBT  decodepsbt YOUR-PSBT and  analyzepsbt YOUR-PSBT
sign your PSBT: walletprocesspsbt YOUR-PSBT
finalize your PSBT: finalizepsbt OUTPUT-FROM-WALLETPROCESSPSBT-ABOVE
copy the hex output from above to your ONLINE computer

ONLINE

send the raw transaction using sendrawtransaction HEX-FROM-ABOVE
optional: copy the raw transaction into an block explorer like blockstream.info instead

Done!
Feedback is welcome!

Hi hodddl, am i understanding correctly that the difference between your two answers is that one is CLI-based and the other GUI-based? I think it might make sense to combine them both in one answer where give both variants for the offline step, as the two answers do not look obviously different to a skimming reader in the first place.

Hi Murch, thank you for your feedback.
The first answer covers Bitcoin Core <= 0.20.1 and required a lot of CLI commands.
The second answer is an update covering Bitcoin Core >= 0.21.0 using the GUI-integration for PSBTs.

Maybe you could add a little pointer at the top of this answer in which case people should read the other answer instead. :)

With Bitcoin Core 22.0 it is even easier since it adds the command "listdescriptors".
OFFLINE:

Create a wallet with descriptors true.
In console type: listdescriptors.
Copy the desired descriptors.
( You will see descriptors with internal:false and internal:true. Internal false will provide the information needed for the watch-only wallet to generate receiving addresses while internal true is for the change addresses).

ONLINE:

Create a watch only
Import descriptors with the command "importdescriptors"

After this the watch wallet only it is fully functional allowing  to receive payments and create unsigned transactions.
For payments:
ONLINE:
Create Unsigned, save the PSBT file
OFFLINE:
File→Load PSBT from file and sign
ONLINE:
File→Load psbt from file and broadcast signed tx

Are you sure that this will work with an old (OFFLINE) P2PKH-only addresses wallet?


text:
Is the Antminer S5 still worth it for low profit?
I'm thinking about getting an Antminer S5 for Christmas to jump start my Bitcoin mining adventure. Using CryptoCompare's profit calculator I see that I will be losing 60 cents per day with the current kWH in my area. I have yet to talk to my parents (I'm 14) about allowing me to get it and put it in the shed. If they let me and the electric bill increase won't bother them, would the Antminer S5 be worth it? If I were to pay my parents part of the cost, say $10-$15 since the estimated cost would be $20, would it still be a little profitable?

This means that your parents have to cover about 1200$ in electril bill for you per year.
It would be more profitable if you just ask them for 1200$ in allowance per year.
You will profit from both options, but on the expense of your parents.
Also, the S5 is quite loud and produce some heat, I would't sleep in the same room without ear plugs.

Your question doesn't make much sense, you are asking if it is profitable yet you acknowledge that you will be losing 60 cent per day due to electricity costs.
Bitcoin mining is not very profitable unless you have zero or low electricity costs, and the constant increase in difficulty makes your hardware obsolete. It is more worthwhile to invest in a concurrency simply, and wait for the value to rise (if it does)
Is the Ant miner worth it?
Well, if you are going to lose 60 cents per day, it most likely is not, and as difficulty increases you will make less and less while losing more.
Anyways, it seems more like you want daily income at the expense of your parents (weather they realize the more expensive electric bill or not). It probably is not worth it.


text:
Forgotten SEED, Could you help me?
I have a problem, when i created my new wallet, so i took a photo my seed to my mobile, that then i will write to my notebook. But next day, my mobile shuted down and i must to reset it, what my seed has been deleted.
Is it possible, how to refresh my seed or gain it back?
Do you know to help me?
Thank you so much

Does the wallet that produced the seed still work, or are you looking for the seed in order to restore the wallet?

You could also try file recovery software on your phone to see if the image is still there. What software did you use to create the seed?

It is very important to write down your seed phrase with pen and paper (or some other permanent, real-world method of recording it), it is a BIG security risk to store it digitally. Do not ever take a photo of your seed phrase again!
Unfortunately, if you reset your phone and your photos were deleted , and that was the only copy of the seed (I'm assuming no cloud backup), then you may have lost your bitcoins. Your only hope is to somehow recover the deleted photo from your phone, but this may be very difficult/impossible to do.
Best of luck

Hopefully you didn't have a significant amount of bitcoins on that wallet.  Check if you had auto backups to a cloud service (Google Photos/Dropbox/iCloud).  If not rather than asking here, look into how to restore data from a mobile phone. It may be possible, I recommend not playing with your phone until you know how you will proceed.  Alternatively, there are professional services that may have better luck.
Good luck!


text:
My Bitcoin transaction hasn't confirmed in over 57 Hours. What can I do to speed it up?
Here is the transaction 5f15aae40fad7328f8ea2986595c105d423d429e3513d8bcbb1b93934ff0c0f7

Your transaction paid a fee of 101 satoshis per byte. With the current fee market, your transaction should be confirmed in about 17 hours. You could try using a transaction accelerator but the network is pretty jammed right now.

Cheers for the answer David! do you know any way to change the fee when sending it? My exchange set the fee really low and really screwed me over here.

The sender could have specified any fee they wanted to. Unfortunately, it's not particularly easy to raise the fee on a transaction. It might not be their fault, they may have submitted the transaction just before fees shot up. But most exchanges are using around three times that fee right now.

Yeah I didn't consider that. Thanks for all the help David.


text:
Strange transaction
I have noticed this...
https://blockchain.info/address/18EC8axfZZBj5rM3wfnVAZCPmuBP3v5E7r
I am waiting for the transaction of 0.748458 and 1.1147815BTC but it looks like they are received on the blockchain.  The unconfirmed transaction is 1.8632395 is the transaction total of the two, but it looks like its sent from the wallet that is waiting for the deposit.  I have checked my wallet and there is no deposit or withdrawal from 18EC8axfZZBj5rM3wfnVAZCPmuBP3v5E7r.
Is this normal as its quite worrying.
I appreciate your help and replies.
Thanks.

Possible duplicate of Why is my transaction not getting confirmed and what can I do about it?

Do you own 18EC8axfZZBj5rM3wfnVAZCPmuBP3v5E7r? The 1.86 BTC transaction is being sent from that wallet not to it, if that is your wallet it's possible it has been compromised?

Yes, that is my wallet.  I'm wondering how a I've used this numerous times, but this was the first time from this exchange.

I have checked my wallet BTC history and there is no deposit or withdrawal of the amounts missing.  Could my wallet address been cloned to receive and then used again to send out?
Which part could be compromised.... the person sending out the BTC or the bitcoin wallet receiving side?

I checked with the exchange that my wallet is held at and they said no deposits had been made but after an hour the BTCs were deposited.. does the exchanges hold a master wallet where they send the coins to the clients?

The transaction is not confirmed, as such both outputs in this transaction are not confirmed (and all the others as well). There is a ~50 Bytes per Satoshi transaction fee, and this is way too low to be taken into consideration by any miner. There are many, many transactions offering higher fees, so you might need to wait for quite some time.
More info here: Why is my transaction not getting confirmed and what can I do about it?

Thank you for your reply.  I did not set the transaction fee, it was from the exchange that i sent it out from.

yup, this is indeed funny. There are many bitcoins in the tx (+22), a value of +220.000 Euros, but tx fees in the low, low, low range ... the tx has a length of ~4000 Bytes, with 50 Satoshi/byte is 200.000 Satoshis, is roughly 20 Euro tx fee...

I see, i just checked the exchange i sent it out from there is no option to increase fee for tx.  What can i do now?
Thanks

not much (?), but following advice in the link above (which is probably contacting your provider).


text:
Is there any blockchain-based mail services available?
According to technology behind the Bitcoin, I'd be interested in using decentralized blockchain-email. Cryptamail was only one I found but they've been told that it is in beta right now but last update seems to be in year 2014. The site isn't working.
Is Cryptamail really something, what we have to wait before start using decentralized email at tor-network or upperground?

What do you mean by blockchain-based mail? That your emails are stored on the blockchain?


text:
why aren't transactions on the blockchain stored like "from, to, amount"?
Wouldn't it save lots of block space and reduce transaction fees? It seems to me the current method wastes lots of space. I wasn't able to find a technical reason for the current method

Bitcoin transactions basically are just "from, to, amount" - "from" are the inputs, "to, amount" are the outputs. What specific difference are you suggesting?

On some blockchains, they are. They just don't work that way on the bitcoin blockchain. There are advantages to the way bitcoin does it. What if you want to send bitcoins to more than one destination or from more than one source?
Also, bitcoin's scheme is much simpler. Either a particular transaction output exists and is unspent or it isn't. A balance is the end result of a very large number of transactions and much more complex to verify.

Not only that, an accounts based system is vulnerable to transaction replay. Suppose you were to send me money in a transaction. What prevents me from waiting until your balance is high enough and rebroadcasting that transaction?

@AndrewChow That's not particularly difficult to solve. Ripple does it by requiring that transactions include a sequence number that must match the account's sequence number. During the transaction execution, the account's sequence number is incremented, forever invalidating the transaction. (Ripple also supports binding the transaction to a "ticket" that can only exist once and which is destroyed when the transaction succeeds.) If an account can have a balance, it can just as easily have a sequence number.

You have to store the sequence numbers forever though.


text:
If I have made a BTC transaction after the fork and haven't claimed my BCH before, have I lost them?
The title sums it up pretty well, I made a transaction with bitcoin core wallet after the fork, but I hadn't claimed those bitcoin cash, can I claim them, or have I lost them?
Thanks!

Bitcoin Cash is an altcoin; things that you do on Bitcoin Cash will not effect your Bitcoin and vice versa.
With Bitcoin Core, you can install it's Bitcoin Cash analogue, Bitcoin ABC. From there you import your Bitcoin Core wallet into Bitcoin ABC by copying it to the Bitcoin ABC datadir. Then you can spend your Bitcoin Cash normally.

You can claim them.
How to do this? I used a btc.com tool and 12 words seed phrase. With bitcoin core wallet procedure will be different, I saw some people recommending electron cash.

Great! Glad to see someone else has been able to claim them, thanks for your answer. Does anyone else know exactly what I should do or knows somewhere where it is explained step by step?


text:
Does a full node attempt to remove tx from a valid block that shares the same parent?
If a full node receives A-B-C with C being a valid block and removes the transactions from the mempool, what happens if the next block is A-B-D? It is my understanding that the full node validates the D block and then if it’s valid hangs on to it until the blocks are reconciled? My question is does the full node try to remove the tx in D from the mempool as well? Since it is likely that C and D share some of the same txs what happens when the node attempts to delete a transaction in D, that was in C from the mempool?

A node wouldn’t switch to D unless there was E on top of it as well. Equal proof of work isn’t enough to cause a reorganisation, more work is.

Right, I left out the reorg to make it simpler, so let's say the next block after A-B-C is A-B-D-E, same question applies.


text:
Retrieve Bitcoin wallet details
We have a bitcoin wallet which we tried to update as it was dormantfor some 8 years plus but we were unable to do so as we haven’t got the Bitcoin wallet details.
Is there any way of retrieving my Bitcoin wallet details as we don’t have the wallet ID details.

What website or software?

Possible duplicate of Where can I find my Bitcoin core key?

If you have access to the hard drive or computer, you can follow the steps here to recover your wallet.


text:
What is the difference between ripple blockchain and bitcoin exchange?
What is the difference between ripple blockchain and bitcoin exchange ? I was reading this blog the other day but wanted to understand in simple language.

XRP runs on an internal blockchain. There are no public blocks/ transactions, but rather everything is done P2P.
They do however track alot more client/user information.
They do not use PoW, neither do i think that you can call the system that they use PoS.(As there is no direct reward eg staking, all transaction fees are BURNED.).
There's no hashpower involved in confirming ripple transactions, every simple node can do it, which means almost every transaction is instant.
Which means there's also no block reward. Every XRP has been generated by Ripple Labs, 100 Million is the maximum amount that can be generated, and there's a dev fund of ~20 million.


text:
Do i need to sign each input in a raw transaction?
I've been reading up about raw transactions on bitcoin.org and there are two examples Simple and Complex.
What I can't tell from the information provided is if it necessary to sign each of the inputs separately, or whether you can just sign the entire tx with one.
So two examples:

Input 1 came from address A and input 2 came from address A.
Input 1 came from address B and input 2 came from address C.

For example 1, my assumption is that I could just use
bitcoin-cli signrawtransaction RAW_TX

but for example 2 I would have to use
 bitcoin-cli signrawtransaction RAW_TX [] ["ADDR_B_PRIVATE_KEY"]
 bitcoin-cli signrawtransaction PARTLY_SIGNED_RAW_TX [] ["$ADDR_B_PRIVATE_KEY"]

next to the answers below, this is at the tx level itself, if not using a wallet: https://bitcoin.stackexchange.com/questions/41209/how-to-sign-a-transaction-with-multiple-inputs?rq=1

Do i need to sign each input in a raw transaction?

Technically, yes. But software like Bitcoin Core Client signs all inputs where the private keys are known. And of course, leave unsigned/untouched all other inputs.

You can just use
bitcoin-cli signrawtransaction RAW_TX

if the private keys of all inputs of that transaction are in your Bitcoin Core (or bitcoind).

And what if the keys are not imported (but known anyway)? How should it be added as a argument? a list with each key, all in the same order as the outputs ?

@FeedTheWeb Do this for each key: importprivkey PRIVKEY "" false Don't forget to type false, and.the order doesn't matter. If this doesn't work, do a rescan after adding each key (but probably it won't be needed.) If you have lots of keys, I may write you a little piece of code that reads the PrivKeys from a file and imports them.

And if I don't want to import/rescan (because it takes forever), the syntax should be bitcoin-cli signrawtransaction RAW_TX [] ["PRIVKEY1", "PRIVKEY2"] , right?

@FeedTheWeb No, importprivkey PRIVKEY "" false won't rescan, because the last argument is rescan?, false. And you're right, you don't need to importprivkey, your command is correct.


text:
Retrieve my balances
I just recently discovered that i had a GUIminer that i installed in 2012.  I also had Bitcoin Core with several wallet.dat files.  I have been unsuccessful in running a full node as my computer and connection are slow.  Two of the wallets i cant dumpwallet because the passphrase is incorrect.   I was able to dumpwallet one of them and there are 25k+ addresses.  Most Change=1, Script=1 all with the private keys.  I uploaded the master key and have checked many addresses but the all say zero.  I have a watch only address with 18btc that i cannot unlock.
Ive tried pywallet for andriod but run into bin/sh error
In python.  Ive tried it all.   Really need some help finding these balances.

I think more information is needed to help. By "uploaded the master key" do you mean you imported a HD master key to the wallet? A watch only address could have come from another wallet so that can be tough unless you think that the watch only address is part of the 25k+ addresses then all you would need is to find the corresponding private key out of the 25k key pairs.

Yes i imported Master to Electrum.  The watch may or may not be from it.  I had the address in a notepad.  All the addresses start with 3, while the $ address is a 1.  Is it possible more btc sits on these addresses but have not been confirmed?

There was no concept of "master keys" in 2012.

Like i said..   I had 3 wallet.dat files.  Not sure which one this was.. But it was last used nov 2012 according to my computer.  I believe this is the wallet from the GUIminer and bitcoinqt