text:
Why does bitcoin core appear to freeze while connecting to peers on startup?
When I startup bitcoin-qt (version 0.20.1.0) on linux, at the bottom of the app is the mesage "Connecting to peers... 4 years and 10 weeks behind". It appears that things are just frozen, no progress and the increase per hour says "calculating...". Estimated time left until synced is "Unknown...".
In the .bitcoin/debug.log file, it just keeps spitting out a lot of the following.
2021-03-10T20:26:47Z Disconnecting and discouraging peer 88.99.213.166:8333!
2021-03-10T20:26:47Z New outbound peer connected: version: 70016, blocks=674050, peer=61 (full-relay)
2021-03-10T20:26:47Z New outbound peer connected: version: 70015, blocks=674050, peer=62 (full-relay)
2021-03-10T20:26:48Z ERROR: AcceptBlockHeader: block 0000000000000000032864f2cd9a15916fdd8c4e2b49a4a9c1403152bdaa6259 is marked invalid
2021-03-10T20:26:48Z Disconnecting and discouraging peer 213.156.1.101:8333!
2021-03-10T20:26:48Z ERROR: AcceptBlockHeader: block 0000000000000000032864f2cd9a15916fdd8c4e2b49a4a9c1403152bdaa6259 is marked invalid
2021-03-10T20:26:48Z Disconnecting and discouraging peer 35.245.173.118:8333!
2021-03-10T20:26:49Z New outbound peer connected: version: 70015, blocks=674046, peer=63 (full-relay)
2021-03-10T20:26:49Z ERROR: AcceptBlockHeader: block 0000000000000000032864f2cd9a15916fdd8c4e2b49a4a9c1403152bdaa6259 is marked invalid
2021-03-10T20:26:49Z Disconnecting and discouraging peer 34.69.253.72:8333!
2021-03-10T20:26:49Z New outbound peer connected: version: 70015, blocks=674050, peer=64 (full-relay)
2021-03-10T20:26:51Z New outbound peer connected: version: 70015, blocks=674050, peer=65 (full-relay)
2021-03-10T20:26:51Z ERROR: AcceptBlockHeader: block 0000000000000000032864f2cd9a15916fdd8c4e2b49a4a9c1403152bdaa6259 is marked invalid
2021-03-10T20:26:51Z Disconnecting and discouraging peer 37.187.117.39:8333!
2021-03-10T20:26:51Z New outbound peer connected: version: 70015, blocks=674050, peer=66 (full-relay)
2021-03-10T20:26:52Z New outbound peer connected: version: 70015, blocks=674050, peer=67 (full-relay)
2021-03-10T20:26:53Z ERROR: AcceptBlockHeader: block 0000000000000000032864f2cd9a15916fdd8c4e2b49a4a9c1403152bdaa6259 is marked invalid
2021-03-10T20:26:53Z Disconnecting and discouraging peer 47.96.111.238:8333!
2021-03-10T20:26:54Z ERROR: AcceptBlockHeader: block 0000000000000000032864f2cd9a15916fdd8c4e2b49a4a9c1403152bdaa6259 is marked invalid
2021-03-10T20:26:54Z Disconnecting and discouraging peer 75.148.91.168:8333!
2021-03-10T20:26:58Z New outbound peer connected: version: 70015, blocks=674050, peer=68 (full-relay)
2021-03-10T20:26:59Z New outbound peer connected: version: 70015, blocks=674050, peer=69 (full-relay)

Also, I do run a VPN, but even a few days ago things were working ok.
Thoughts?
Update:
I've run ...
$ bitcoin-qt --reindex

And this eventually leads to a segfault.

My best guess is that you have a corrupted database, and Bitcoin Core is rejecting valid blocks as a result. The most likely cause is a hardware error.

And how would I fix that?

You can start over by running Bitcoin Core with the "-reindex" command line flag, or by deleting the "blocks" and "chainstate" directories yourself. But in all likelihood these will not address the underlying issue - you need reliable hardware.

I guess that's the part I'm not understanding. I've got a good machine, never had issues or anything. What are we talking about as "reliable" and what hardware? Bad blocks in RAM? USB 3.0 to a practically new external hard drive? Anything to nail this down. I see this error a lot on forums and no one can get any more detailed that "bad hardware" which in the majority of cases is a cop out.

You have to realize that Bitcoin Core tends to stress hardware a lot more than most consumer applications, when doing full validation of the chain - and is also far more susceptible to errors (a single bitflip is sufficient to make it reject the entire chain). It could be a slightly overheating CPU, or bad RAM; most USB storage adaptors used in external hard drives are also not designed for the kind of I/O heavy load.

All good to know. Thanks for your replies.


text:
Changing bitcoin core password
Let's say I have 5 copies of my .dat file on individual flash drives. I download the blockchain and run a full node and have the core wallet.  I copy my .dat file into bitcoin core. I type in the old password and then change the password to a new password. Will someone who has 1 of my old .dat files and who knows the old password be able to access my bitcoins?
Follow up- So the easiest solution is delete the old. .dat files once I have btc core wallet running with the new password?
Thanks

Will someone who has 1 of my old .dat files and who knows the old password be able to access my bitcoins?

Yes. Including bitcoins added anytime afterwards!
As far as I know, the password is used to encrypt the file contents (or at least the private-keys in it). So old passwords are still valid for decrypting old files that were encrypted before you changed passwords.

source: Stack Exchange

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

sort: votes


text:
I have an old bitcoin core/qt wallet - how do I extract the forks?
I can access the wallet, and move my bitcoin to other addresses, but it doesn't show me the fork coins. (Bitcoin-Cash, Bitcoin Gold, and perhaps more?) Can I access them through some other wallet?
What would I need to extract all forks from my wallet to a modern one (Say, a Trezor)?
I created a legacy bitcoin wallet in my trezor, and moved my bits to it, but the bitcoin cash and gold never appears in my wallet.

here you can find a bunch of info about claiming fork coins: https://99bitcoins.com/bitcoin-forks. your question is off topic here.

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


text:
Safest way of long term holding
I am considering holding Bitcoin for the long term. I have learned a few basics about the blockchain and BTC mechanisms, but still unable to find a complete guide on how to safely store bitcoin.

How to generate a private key safely? Online tools are obviously undesirable as they might keep a back door on all keys generated. Similar reason for any library or packages even they operate offline (I cannot check if these keys generated are in fact following some predetermined sequence).
I can use a random number generator on a offline PC. But I am not a real 'hacker' and have concerns on whether any programming language can produce truly random numbers that cannot be reproduced (or say predicted) on another PC.
Currently, I can only think of throwing dice in my room for key generating but that cannot scale.

I do not want to use any 3rd party software as wallet. Suppose I just store my private key on a piece of paper and later transfer coins into it using exchanges. Would that be a valid transaction and allows me later to spend these coins?  Is there anything else I need to store together with the private key (like the hashed transaction number in transaction_input in the blockchain?)  I really want to avoid 3rd party software because it might be obsolete in the future, get wiped out, and cannot be backed up on a single paper.

Any advice?

Does this answer your question? Long term BTC investing

What about a hardware wallet? They're specifically designed for long term holding off the air. Some are open source as well.

Regarding your question about storing the private key on a piece of paper and later transferring coins to it using exchanges, yes, it is possible to do that. You can send Bitcoin to an address associated with the private key written on paper. However, always verify the address carefully to avoid any mistakes.

Paper wallets used to be the safest way. But as of late there are many rumors that some of them actually do not generate random keys but can steal your coins (even when generated offline). So sites like bitcoinpaperwallet are a nono.
If you want it for free, you can find many key generators on github. You'll need some programming skills to check them. And before comitting to one test that the keys are generated correctly. Even I have made one in Java at https://github.com/Johanpmeert/GeneratePrivateBitcoinKey
It uses a Intel DRNG to generate 32 random bytes. Or you can bypass this by entering the random bytes yourself or by taking any picture and taking the SHA256 hash. That'll be random enough.
The safest way is buying a ledger or Trezor direct from the manufacturers website.
If you have a paper wallet, that's all you need. Private and bitcoin address on the paper. No need to store anything but that. You can verify the amount on it by entering the bitcoin address on any blockchain explorer. If you have a QR code that is even easier, there's many apps that scan that and give you the balance.

The back door and any unchecked random generator is exactly my concern.  I will try your advice, but in worst case probably buy some 20-faces dice for private key generation.
Regarding cold storage, you mentioned that I only need to store the private key. From what I understand, spending the coin need to refer previous transaction (where this coin is obtained, scriptSig). Do you mean if I import my private key to any online trading platform (exchanges), they will find these relevant information for me (searching from the whole blockchain)?  Thank you.

Never ever give your private key. When you generate a private key, from that you can calculate the public key and from that you calculate the bitcoin address. The last one is the one you use to put coins onto and to check the balance. The private key is only necessary when you are spending the coins. When you are spending the coins, import your private key into a wallet software like electrum. Use that to send your coins to an exchange.

Also no need to buy 20 face dice. You can do that with normal dice. The generated bitpattern is as follows: 1 = 00, 2 = 01, 3 = 10, 4 = 11, 5 = 0, 6 = 1. Throw as many as necessary to get to 256 bits.


text:
How are malicious forks resolved?
I understand that forks are resolved by opting in for the eventual longest chain, preferring the chain with the longest POW. But everything I read on this suggests it's just random chance or that the next block is really "alone" on some nodes due to delays in propagating, so "tough luck".
But let's imagine the scenario where a miner changes the last block with incorrect information for his own benefit, creating block A which should be rejected by the network. Another miner creates block B with the correct data.
We now have a fork, with block A and B being at the end of the chain.
The next miner needs to choose one of the blocks, hopefully not validating the bad intentions of the first miner. How does this gets resolved, how does block A get proven wrong?

Validating a block is extremely fast compared to mining it, it can be done in a matter of seconds. The malicious block wouldn't validate, no other node would accept it.

Why wouldn't be accepted? The hashes are correct, what other validations are performed?

If the hashes are correct, then the block isn't malicious, Its a valid block. It can't have "incorrect information" if its a valid block.

It's valid but it's a miner writing wrong data, e.g. changing a transaction address to his own or changing a 3 btc transaction to 30 (while the wallet holds 50).
The hashes are correct but the miner is using his position as miner to benefit himself or others.

The miner can not transfer funds from an address without having the private key - which means owning the wallet. Transactions are signed, you can nor create a transaction with funds of someone else without having their private key.

@C0pterPi the hash is only one of many checks to ensure a block is valid. If anything is invalid (such as a transaction with an invalid signature), then the block is rejected.

Appreciate all the replies. Will look better into what signing a transaction entails, if it protects a transaction from its contents to be tampered with, e.g. input or receiving address.
So there aren't any mischievous actions a miner could try to do that would benefit himself?

@C0pterPi The block is either valid or invalid. If it's valid, then there's no problem. If it's invalid, then everyone ignores it.

It's valid but it's a miner writing wrong data, e.g. changing a transaction address to his own or changing a 3 btc transaction to 30 (while the wallet holds 50). The hashes are correct but the miner is using his position as miner to benefit himself or others

Miners can't change that data in a transaction because that data is secured by the transaction-author's digital signature. Any change in the data will cause a signature check to fail.
Nobody cares about other people's balances, no one ever needs to know another person's balance. Bitcoin keeps track of coins not balances. In this case a coin means an unspent transaction output (UTXO). These UTXOs can only be spent by someone who knows the secret number (private-key) that can be used in a mathematical proof of right to spend.

Yes, that makes sense, thanks. I guess I'm looking for realistic scenarios where a miner could try and cheat the blockchain, but the tech is resilient enough to not even allowing my scenario coming to fruition.

@C0pterPi Miners can re-write the blockchain at will if the have more than 50% of the hashing power, this is known as the "51% attack".

But how would they even start at re-writing anything if they can't sign other people transactions, therefore having nothing they can change?

@C0pterPi https://bitcoin.stackexchange.com/questions/658/what-can-an-attacker-with-51-of-hash-power-do

Very cool, a lot less than I imagined.


text:
Restoring private key from old bitcoin wallet
I have old bitcoin wallet with some (not very huge) amount (last transaction was on 2014). It was created in Multibit (Classic, I guess, then I had old computer with old OS). Now I have new device, system and wallet, and want to restore old [wallet] to send bitcoin to the new one. I know, I need a private key, so I imported old wallet (it's watch-only wallet right now) in Bitcoin Core with rescan and next try to do like this guy -> https://www.youtube.com/watch?v=8Ev33XGCH8M, however, after putting "dumpprivkey"-command in console, it says "the private key for this address is not known".
That's what I don't understand (interesting, though), b'cause I remember I've backuped it and hold those files for all those years on my USB stick, but now they're completely unusefull. :(
How can I resolve this problem? Anyone knows?

watchonly means that the wallet does not have any private keys. Did you import your private keys to Bitcoin Core?

I tried, but it didn't work.

It would probably help if you expanded on "didn't work" - what exactly did you do and what is the exact wording of any error-messages?

Rejected b'cause of invalid key.

You need to make sure the thing you have is actually the private key. And you may need to convert it into the format that newer software requires. (Don't forget, you have bitcoin cash too.)

The private key should be in .key file, am I right?

If you "imported" something from your old Multibit Wallet and ended up with a "watch-only wallet" it means that what you "imported" was a Bitcoin-address and not a private-key. You must find and import the private-key, not the Bitcoin-address if you want your new wallet to be able spend the money.
If your old Multibit Classic software is still working, you should be able to use it to create a transaction that sends money to a receive-address you create in a new wallet (using some different wallet-software such as Bitcoin-core).
I think a lesson for the rest of us is not to trust our money solely to proprietary backup formats. Always have a backup of either the master private key in Wallet Import Format (WIF) or the seed-phrase/recovery-phrase/backup-phrase in BIP-39 format or in some equally well-defined and well-known public format

Related questions with answers that may be useful:

Restore old multibit wallet
Recovering wallet from MultibitHD backup file
How do I get BTC out of my Multibit wallet?
My Multibit wallet is empty
I used multibit years ago - now what? (BTC, BTG, BCC etc...)
Import Multibit multibit.key into Electrum
Other questions about Multibit wallets

Where can I find Multibit Classic for Linux?

If you have access to your old computer look for the backup file there. If you used MacOS: Navigate to ~/Library/Application Support/MultiBit and if Windows: Search for %APPDATA%\MultiBit.
Look for .key or .wallet extension. Later you will need to decrypt the .key or .wallet file. Then you will obtain private key


text:
Forgotten password for wallet. Must a password be entered before spending?
I was about to spend some bitcoins but Bitcoin Core required my password, which I don't remember, to complete transaction... The wallet is open but cant use bitcoins.
I would like to know if before ANY transaction, you must ALWAYS enter password. This is the first time I try to send bitcoins so I don't know how this goes...
Thanks.

Yes, you cannot transact without entering the password.

Learn from other people's past mistakes
Some good advice is at https://bitcoin.org/en/secure-your-wallet#encrypt

Encrypt your wallet
Encrypting your wallet or your smartphone allows you to set a password for anyone trying to withdraw any funds. This helps protect against thieves, though it cannot protect against keylogging hardware or software.
Never forget your password
You should make sure you never forget the password or your funds will be permanently lost. Unlike your bank, there are very limited password recovery options with Bitcoin. In fact, you should be able to remember your password even after many years without using it. In doubt, you might want to keep a paper copy of your password in a safe place like a vault.
Use a strong password
Any password that contains only letters or recognizable words can be considered very weak and easy to break. A strong password must contain letters, numbers, punctuation marks and must be at least 16 characters long. The most secure passwords are those generated by programs designed specifically for that purpose. Strong passwords are usually harder to remember, so you should take care in memorizing it.

Notice that second item.
Once you set a password, which you definitely should, it is important to never forget your password. This is why people use password managers and make backup copies in secure places.

What next?
If you have some idea of what your password might have been, you might try recovery tools such as btcrecover. (not an endorsement, other tools exist, take extreme care choosing tools)
If you care about your money ...

Only download tools from sites you are 100% certain of, Check carefully.
Compile any tools from source code if you can.
Never give any potentially sensitive information to helpers. Treat all helpers as if they were thieves (almost all people offering to help will in fact be confidence tricksters). A genuine helper never needs to know your password or any part of it or anything about it. A genuine helper never needs any kind of access to your PC. A genuine helper never needs to create a wallet for you.
It is better to spend time learning how to do things yourself with no active participation from any helper. A genuine helper needs no more information than is already in your question above.
Don't attempt recovery on any computer that has ever been used or accessed by anyone else in the past.
Don't attempt recovery on any computer or device that is connected to the Internet.


text:
using my own public and private key for managing wallet
I managed to create wallets for bitcoin with public and private key. I can get the balance of these wallets.
But when I want to send someone tokens from this wallet, I can't because there is no website nor application that will accept my wallet (rather they create wallets on registration or installing the app).
I used Node.js for programming the application and I don't have a full node.
Please do not answer about security or other stuff just want to know
how I can use this token or transform them to other wallets without programming.

Hello @Prayank, both ERC20 tokens and bitcoin I have wallets with balances but I can't spend them or send their tokens to other wallets

Since this is a bitcoin-only Q&A website I edited out the parts about ERC20 and other cryptocurrencies. You can restore the previous version if you disagree with my edits, but there is the danger that other people may then close the question as off-topic.

@Prayank the ERC20 now I found a wallet for managing but I want a software to manage my own wallet with my private and public key for bitcoin


text:
Recovery of scammed funds
firstly, a very, very newcomer to this space, and don't have any knowledge of its operation at all. I have been corresponding with individuals regarding recovery of scammed funds which are currently stored as BTC.  I've been told I need to pay 0.19258 BTC to activate the transaction as the account has been suspended because of missing turnover.  I have the details of the hash, which lists 18 different transactions for a total of 4.35 BTC.  Can I send this to my account?  I sure hope the answer is ýes' and if so, how do I go about it?  TIA.

This sounds like you are the target of a scam. I don't even know what "turnover" in this context means.

All so-called "recovery" companies or "hackers" are scams. Anyone who tells you that you are owed money but you have to pay some money to get it is trying to scam you.

firstly, a very, very newcomer to this space, and don't have any knowledge of its operation at all.

When we lack experience and knowledge, we are easy to trick. Be very very careful. Don't rely on one person to explain this. Especially not a stranger you have never met.

I have been corresponding with individuals regarding recovery of scammed funds

I would ignore anyone who contacts me privately over Facebook or other social media private messaging.
You'll get better advice if you keep all communications in a public place like this website where many people are reading the questions and will quickly correct any misleading answers.

I've been told I need to pay 0.19258 BTC to activate the transaction

This usually means someone is trying to steal more money from you. You don't need to pay any kind of activation fee in any normal kind of Bitcoin transaction.
In this situation I would forget about any "scammed funds". They either never really existed or are under the control of a scammer. Usually there is no realistic prospect of recovering control over this money. I would think it prudent to discontinue use of any wallet that was ever under the control of the original scammer or subsequent "helper".

I have the details of the hash, which lists 18 different transactions

That's probably a Bitcoin address. That doesn't give you control over money, it just lets you see some transactions associated with that address. The address does not identify a person, business or place. Knowing an address doesn't give control over any money.

a total of 4.35 BTC. Can I send this to my account?

No.

I sure hope the answer is ýes'

Unfortunately scammers are very good at exploiting hope. They are very convincing. I would stop communicating with them - no good can come of prolonging contact with criminals.


text:
Saved bitcoin dat file, unfortunately converted to Adobe
Is there a way to convert back or what do I do?   I would have thought that the old dat files would still be somewhere on my PC.  I never put them in a wallet ( .1 BC) so it was just a bunch of files. If i can access them, which ones do I need & how would I transfer them to a Trezor1 ?
Thank you
i can find this, is it usable to move the data to my wallet ?
C:\Users\Doug\SkyDrive\Documents\bitcoin (2016_09_09 22_16_58 UTC) (2017_08_22 13_54_01 UTC).dat

What does "converted to Adobe" mean? What does "I never put them in a wallet" mean. That "bunch of files" likely was a wallet.

I wanted to "save" the files to be sure to have them in the future. I clicked on the dat file & used the "save file" function. They were on a remote hard drive under bitcoin.dat.   I downloaded Bitcoin Wallet app and can't figure out how to move the data to it to have my .1 bitcoin ( it was a fee download years ago from a newsletter. On my PC, I can only find bitcoin.dat files in Adobe format (?). when I try to do anything it tells me that Adobe can't open them. Maybe that doesn't mean anything. Can I drag/drop into Bitcoin Wallet ?

Are they called wallet.dat or bitcoin.dat?

What I call pull up all seem to have .h or .cpp

That's the source code, and will be useless. Can you please expand your question with information such as exactly what you see, exactly what you did, exactly which software you're trying to use. Perhaps include screenshots if things are hard to describe.

Pieter,    cant seem to be able to do a print screen & post it here. Is there an email you use for this stuff ?   The software is/was Bitcoin & Bitcoin Core.   I installed Bitcoin about three years ago & let it run all the blockchain.   About a year ago I got frustrated because I could not get the files to transfer & show my BC. That's when I thought I'd do a save of the files ( had a scare with my hard drive) and then installed the Bitcoin Core because it had a wallet.  In trying to re-access the dat files, all I get now are the ones that look like they are in Adobe format. Thank you

I see some old files from 2011 that are qt, qt1, ICNS, orc, and some that are preceeded by a VLC media player icon that says it has 98.1kb

I don't do private support, and you should in general not trust anyone who offers you help with recovering funds privately in general - this space is full of scammers. You can add screenshots to your question, or just update the question with all the details you have. That way everyone can give advice.

Thanks, sorry, didn't intend to upset anyone, I'm just following instructions & not getting the results I'd imagined.

No hard feelings, don't worry; I'm just trying to help. Unfortunately, right now, there is really nothing for us to go on. Please update your question with all the details you have.

did that just before your comment about trusting & scammers.    I've tried to do print screen & paste, but I'm being challenged.       I do get this right after the Adobe logo;   C:\Users\Doug\SkyDrive\Documents\bitcoin (2016_09_09 22_16_58 UTC) (2017_08_22 13_54_01 UTC).dat

Please actually update your question.

Please use the edit link that is immediately under your question. Then move the cursor to the bottom of the text-area input box, you can use the icons along the top of that text-area input box to help insert a picture (e.g. a saved screen shot) from your local PC. Or cut & paste extra text at the end or just type in additional information.

Above you're talking about "Bitcoin Wallet app", is that Bitcoin Core, or are you referring to some smart phone app? Please give more information about what you remember. In general you need the same software to restore a wallet; you can't just import something from one into another.

Filename extensions and file associations
You can probably ignore the Adobe icon and messages from Adobe.
Microsoft windows decides on the type of a file by using the last part of a files name, the part after the last period (dot), called a filename-extension. For example something.txt is a plain text file that can be edited with Notepad. something.mp3 is a music file that can be played with, for example, Windows-Media player. something.jpg is a photograph and so on.
Microsoft Windows can also associate a particular filename extension with one particular program that understands and uses the type of file that usually has that filename-extension.
Unfortunately a lot of different programs use .dat as a filename extension - it just means some kind of raw data file. The Bitcoin Core wallet (sometimes called Bitcoin-qt) uses that filename extension - for example in a file named wallet.dat.
When you install one of Adobe's products (e.g. Adobe Illustrator), the installation process has associated the .dat filename-extension with the Adobe program and removed any association with other programs.
This is why Windows explorer erroneously shows the Adobe icon next to your bitcoin .dat file. This is why Windows runs the Adobe program (not Bitcoin core) when you click on the file.
This doesn't matter that much, you can ignore it and leave the association as it is.
If you run your wallet program by finding it in the start menu or going to its web-page etc (and not by clicking on the .dat file name) it will likely work OK despite the file-association with an Adobe program.

bitcoin (2016_09_09 22_16_58 UTC) (2017_08_22 13_54_01 UTC).dat
You don't explain what kind of wallet (or web-site service) you used to store your Bitcoins before. The rest of this answer assumes you used the "Bitcoin core" wallet. If you didn't you should stop reading this answer.
The Bitcoin core wallet stores important information in a file named wallet.dat in a place on your computer's hard-disk that is not easy to find using Windows explorer.
If you open Windows explorer and, on the left hand side, click on This PC then Windows (C:), then users, then click on your name, then at the top click into the part at the top where it says This PC > Windows (C:) > Users > Yourname. It will change to C:\Users\Yourname. Move the cursor to the end (right-arrow) and add \AppData (by typing that) and press the Enter key. Click on Roaming then Bitcoin. You should see wallet.dat.
The filename you have given is different and is not one I am familiar with. This is a long-shot but,if we assume it is a backup copy of a wallet.dat saved with a special name but the same contents, you might be able to

close the Bitcoin program if it is running.
rename the existing wallet.dat to wallet.dat.new (so that you can undo these changes)
make a copy of your bitcoin (2016_09_09 22_16_58 UTC) (2017_08_22 13_54_01 UTC).dat with the name wallet.dat
put the copy into the same folder as the wallet.dat.new
start Bitcoin.

If you did not use Bitcoin core, whatever Bitcoin wallet you were using before likely has some "restore wallet" option used in conjunction with data files created using a "backup wallet" function.

How would I transfer them to a Trezor1?

This is a separate question, you need to get some information out of your Bitcoin wallet (out of a valid wallet.dat file) and that requires a working Bitcoin core wallet program and knowledge of the password for the wallet.

I doubt this is a Bitcoin Core wallet.

@PieterWuille: I agree, the more I wrote the more I thought OP more likely has something simpler to use which created his wierdly named file. Maybe the first part of my answer will at least help OP understand file-associations if this is a PC-based wallet of some kind. I'll maybe delete this if any progress is made.

Gents,     Thanks very much for the help so far.  I have gone into the files as eloquently explained above and now have a wallet.dat and wallet.dat.new      There is still an Adobe logo before the file name, maybe that doesn't matter ?

When I got the file I did not have a wallet. About 3-4 years later I downloaded bitcoin 0.8.1 and ran it to catch up on the blockchain, which it did. It would update daily.    I could not figure out how to move the .dat file to the wallet and downloaded Bitcoin core. It is now trying to download 5 years of blockchain. Which of these do I delete and how would you suggest i attempt to proceed ?

I have the password and a Trezor wallet. Can I skip the bitcoin wallet  and go straight to the Trezor ?

@doug: I don't think you can skip that step. So far as I know, you have to transfer funds into the Trezor by creating a normal Bitcoin transaction. This means your wallet.dat file needs to be used from a working Bitcoin-core program to send the funds to an address created on the Trezor. You probably have to wait for Bitcoin-core to finish synchronising before it will allow you to create a transaction -- You might be able to export the private key, maybe convert it to WIF and then import that into a lightweight wallet (Electrum etc).

RGB     I'm using Bitcoin core, I updated to 19.0 today, it was on 14.0. I'm waiting for the index to update now.  i see that I need to create a wallet with passwords, etc. Once that is done, exactly how do I put the .dat files or open them to move them into the wallet ?   Thanks

@doug: you don't need to open the dat files. You can use Windows explorer to rename (e.g. select then F2) and move files - either by drag & drop, by cut & paste or whatever method you are familiar with. I suggest taking great care and first making sure you have several spare copies in several safe places of your bitcoin (2016_09_09 22_16_58 UTC) (2017_08_22 13_54_01 UTC).dat.

I hate to sound dumb, but am I moving the .dat files to the Trezor/Bitcoin wallet or just to another safe location ?  Can I drag/drop to either of these wallets ? What i find online assumes we are all technically competent. Thanks again.


text:
How do I send BTC from my wallet to another wallet?
I have BTC in my bitcoin.com wallet, but I have no way to use it in Texas, so I want to send it to family, but I need assistance on how to send BTC from my existing bitcoin.com wallet to another family member's wallet.

It sounds like you are using a custodial account (a service which controls your keys/coins). If so, you’ll have to ask their customer service to help you.

I have a hard time following your problem description. Could you please elaborate what service you are using and what options to interact are available to you?

No, the site does not control anything.  It is BTC I sent to myself by accident and I just want to send it to another wallet?  I have been in contact with them, but no answer has been given, so I was told to ask here for useful advice.

I am using Bitcoin.com for now.  I have been using them all year.  I have asked  many operators because I want to use the BTC before it is lost.

There should be a "Send BTC" options in your wallet, and your recipient can generate an address and you can send to that address.

Questions can be reopened by addressing the issues which other contributors identified. It seems you want to know the general process for sending Bitcoin money to another person. (which involves asking the other person to send you a QR-code or another form of their "receiving" Bitcoin-address - you then instruct your wallet to use that QR-code/adddress as the recipient).

The receiver sends me the wallet and I put the wallet in the destination wallet, but I put my own wallet by accident, so the Bitcoins are in my wallet.  I want to send the BTC from my wallet to another wallet.  That is the question I am trying to ask.
Is sending from my wallet to another BTC wallet a
"general process" question?  Forgive me for being new to this, but I am trying to learn from other users.  Thanks to all fort the questions, suggestions, anything because I want to know more and those suggestions give me more information to learn.

Thank you very much for the assistance.  I am asking the operators of the BTC wallet.  I think I was not asking the right question,  I hope I got the right question to ask from here.  I will try to be back with an answer that I need.

On the site with my BTC, they have a "2 Factor authentication" that does not accept the password, and it asks me to enter the code, but they do not send me a code?  I have to ask them for help with this.


text:
How does Electrum compute seed byte just before BIP-32?
As a newbie in Bitcoin and programming it, I am trying to generate BTC addresses from mnemonic. So I read about the BIPs, and found codes in Github that implement those.
I found out that Electrum doesn't implement BIP-39 (by default if I have not mistaken), because mnemonics that are invalid in BIP-39 are accepted by Electrum!
So my question is: How does Electrum do its own "From mnemonic to seed" section (atleast for standard wallet)? This "seed byte" is the one to be used in BIP-32 for generating keys, if I have not mistaken.
I tried the following Python psuedocode (from "Electrum Seed Version System"):
hmac = hmac.digest(b"Seed version", b"...(12 word mnemonic)...", hashlib.sha512)
bip32_thing = Bip32(secret = hmac[:32], chain = hmac[32:]) # default: Bip32 main net version (idk what this means)

But my generated master public key and Electrum's doesn't match (most likely I misunderstood the "Seed Version System" altogether). Thanks for responding!
In case it helps: I am using bip-utils in Python.

After many hours, I found it! It is exactly what Mnemonic.mnemonic_to_seed() does in mnemonic.py! (link)
The most relevant part is what it returns:
seed_byte = hashlib.pbkdf2_hmac('sha512', mnemonic.encode('utf-8'), b'electrum' + passphrase.encode('utf-8'), iterations = PBKDF2_ROUNDS)

Where PBKDF2_ROUNDS = 2048. Then, I just did...
bip32_node = Bip32.FromSeed(seed_byte)   # Derivation path: "m/"


text:
I'm worried I have lost my BTC from sending on my BTC Core 0.13.2 wallet
I would truly appreciate anyone's help.
I have a BTC core wallet, it's 2 years behind on the blockchain update.
I previously sent a couple of test sends for 0.01 BTC each quite a while ago, end of 2017 and mid 2018. These were seemingly lost as I can't find anything relating to them. I likely used too low a mining fee that I had nominated, being clueless.
In any case, just yesterday I tried to transfer the balance of my wallet with the "recommended" settings of my wallet for the mining fee, and now I can't find anything and fear the coins all lost, as they don't turn up on any blockchain search (or even the boost thing at https://www.viabtc.com/tools/txaccelerator) that I can find. Also Nexo, the org behind the receiving wallet, cannot help me as they just don't know since the transaction hash produces nothing for them.
These are the three transactions:
[all hashes and addresses below removed now since I have solved things, leaving just the label on what was there]
3.
0.198 btc  - yesterday  3/18/2021 19:59
label
hash
to account #
1
(label )  5/7/2018 16:32 tried to send 0.01 BTC
hash
to
wallet
2
(label) 6/8/2018 15:55 tried to send 0.01 BTC
hash
to
address
The wallet started with 0.2 sent to it in Dec 2017.
Thanks in advance to anyone that might be able to help. My heart is coming out my mouth...
Thank you
michael
[will write solution to this shortly...]

When you write "BTC core" do you mean "Bitcoin core" downloaded from https://bitcoincore.org or do you mean something like this?

Just as an update: So the bitcoin core wallet reads empty, but the wallet on the blockchain shows the full balance, so these transactions are locked in limbo somewhere, and seem to be not even reaching the mempool...?

@RedGrittyBrick Hi, yes the first option, it is a early (2017?) download from bitcoincore.org. thanks

The wallet is at ~2019 updating the blockchain. So I have stopped  updating in case it is harmful to do so. I have no problems with the passphrase to the core wallet, or the private keys, and have also saved the wallet.dat info. So maybe the way to get back these lost transactions is to recreate another wallet with the same status (-possible?) that will maybe then be able to access the btc. But it seems like a critical time and I don't want to do anything else stupid to compound the chance of losing it all, if I haven't done so already.

Your transactions won't show up in Bitcoin Core until it has synchronized past the part of the chain from when it was mined.

I think I am all good. Thanks Pieter for your input, maybe that is so. but I was worried as  none of the web blockchain transaction displayers showed a thing, but core was happy to display all funds gone. So I think it was just not getting out at all with Bitcoin Core, even though it was providing the "not found" (by blockchain etc) hashes of transactions.
I started a (Kleopatra verified!) Electrum wallet. This seems to be a Godsend. So much nicer to use, and no waiting for the blockchain. More data at the fingertips, specify fiat, it knows your capital gain, etc. etc.
Yes, I know the blockchain on your own device is the most robust way of handling your BTC but, oh the wait! The size! The stress (in my case)! The money lost whilst waiting for that chain to download the first time I bought in 2017 (which I didn't know at the time but I don't think I had to do. I could have bought 6 months before the peak, instead of the 2017 peak). The recent repartitioning / merging of hard drives and moving & deleting that had to go on to handle 300 Gb+ of chain... The many hours left on overnight even to catch up from 2015 onwards (when used in 2017-18 I had downloaded the whole chain but for some reason I lost a whole batch when I tuned back into crypto now things are moving again.) Overall, the headache of the locally held chain for me is something, as a newbie, I could have really done without (not to mention the sleepless night last night!)
Electrum took my private key and automatically acknowledged the full 0.2 BTC. I then made a transaction and for whatever reason I could see much better the satoshi per byte level and compare it with https://bitcoinfees.earn.com/#fees to make sure there was plenty enough to get it moving with the miners. Now the transaction is in progress and it's confirmed three times so far... a few more and it will be where I need it.
In the end the solution was so simple, I'm very disappointed in the staff at the 'exchange' who didn't know more to give me the tip. You think if you did this stuff all day you would at least have a clue about core wallets and potential problems/fixes. Another hardware data recovery mob that I spoke to here in Australia said that they often had people calling up with similar requests, but they couldn't help either, citing "some USA companies are beginning to get into this sort of recovery."
If there's any further problem I'll add it here, but otherwise assume happy endings (SFW) from one bitcoin 'newbie' that was scared witless he'd lost about 15 grand Aussie about half a day ago thru to now.
--Wow that was fast, 7 confirmations and my money is in the right spot. Phew! Hope this helps anyone in a similar space.


text:
Get single xpub key from multi signature wallet
I created a multi signature wallet 2 of 3. I want to get the xpub key used to generate the addresses. As I understand all 3 public keys are used to generate the address. Is it possible to use those 3 keys to generate a single xpub key for further addresses?

No, it's not possible to get a single public seed for all future addresses.
Let's say you have three private seeds, Sa, Sb and Sc with public seeds (xpubs) Pa, Pb and Pc that generate the addresses Px1, Px2, ...
Then, the way to calculate the multi-sig addresses for a 2-of-3 multisig for these three seeds using P2SH is the following:
You create a P2SH redeem script that looks as follows:
OP_2 [Pa1] [Pb1] [Pc1] OP_3 OP_CHECKMULTISIG

Then, the "multisig address" is the RIPEMD-160 hash of that script.
Thus, to know the next address, you will need to calculate a new RIPEMD-160 hash with the script now containing Pa2, Pb2 and Pc2. There is not a multi-seed of any kind.

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


text:
What's the relationship between SLIP39 and BIP39?
Trezor's SLIP39 makes it possible to apply Shamir's secret sharing to a Bitcoin wallet seed.
How do SLIP39 and BIP39 relate to each other?
I.e. it seems possible to derive SLIP39 from BIP39 words but this is messy, and deriving BIP39 from SLIP39 is not possible at all?
Or in Tony's words, what are the the details of calculating the BIP32 master seed from entropy using both schemas?
I want to know this because I was first under the impression that the relationship was quite strong and it would be possible to derive BIP39 words that can be used to recreate a wallet, but this does not actually seem to be the case.
There's some useful information here but it's not very concise answer: https://github.com/iancoleman/slip39/issues/1

Are you looking for a grand scheme answer (what is SLIP39 and what is BIP39), or asking about the details of calculating the BIP32 master seed from entropy using both schemas?

Yeah, explaining the difference about BIP32 master seed derivation between SLIP39 and BIP39 will be great.

BIP39 (Bitcoin Improvement Proposal) describes the implementation of a mnemonic sentence (set of easy to remember words from a predefined wordlist of 2048 words) that can be mapped to a binary seed from which you get a master key which in turn is used as per BIP32 for the generation of deterministic wallets.
SLIP39 (Satoshi Labs Improvement Proposal) has to do with the Shamir Secret Sharing Scheme (SSSS). This is a way to break up any secret into N parts so that any M of the N parts can reproduce the original secret. It is not limited to, but in the context of bitcoin it is mostly used for breaking up a mnemonic sentence from BIP39 or the seed of an HD wallet and giving each piece to a different party so that reconstruction of the secret would require collaboration/collusion of at least M parties. You still get with SLIP39 a mnemonic word sentence like you do with BIP39, only the words originate from a different wordlist. So if you see a mnemonic sentence, you can lookup its words against the online published wordlists of BIP39 and SLIP39 and recognize where it comes from.
SLIP39 is actually pretty neat, in that it allows for a two-level scheme where you have group-shares and within each group you define member-shares where you define an overall group threshold and within each group a separate member threshold.
For example I can split a master secret across four groups like:

Group-share 1: 1-of-1 for myself = single member-share and the threshold to fulfill this group-share is one i.e. I can do it by myself since I have the single member-share
Group-share 2: 1-of-1 same as Group-share 1
Group-share 3: 2-of-5 for my family = five member-shares (mom, dad, brother, sister, wife) and the threshold to fulfill this group-share is two i.e. any two family members together can reproduce it
Group-share 4: 3-of-6 for friends = six member-shares (alice, bob, charlie, david, eva, frank) and the threshold to fulfill this group-share is three i.e any three of my friends together can reproduce it

And finally you set a group-threshold of two i.e. to recover the master secret the goal is to reconstruct any two of the four group-shares.
Now, to recover the master secret here are a couple of possible recovery scenarios.
Scenario 1: I can do it all by myself since I have two member-shares from two of the four group-shares (Group-1 and Group-2) that both require a single member-share.
Scenario 2: alternatively my family members and friends can come together. In particular any two family members (to fulfill Group-3) and additionally any three friends (to fulfill Group-4). This way again two (the group threshold) of the four group-shares can be fulfilled.

Can a wallet setup using Shamir's Secret Sharing (SSS) with SLIP39 protocol later be recovered onto a BIP39 wallet? i.e. A wallet is created based on SLIP39 on a Trezor device and then later recovered on a Ledger BIP39 based wallet?

SLIP39 and BIP39 are not compatible according to SatoshiLabs.

yes  BUT you have derive the SLIP39 back to the original secret > BIP32 which you can use as input for any other hardware wallet. But deriving the SLIP39 with the minimum required keys of the group to get the master key = BIP32. Some expernal program
https://slip39.com/posts/ethereum-slip39-account-generation/#headline-13
explained here needs to be used.
So it's no trivial deal. And you have to use a computer which is not so safe. There is no direct way to enter slip39 codes into a hardware wallet that does not support it other then manually decode the bip-32.


text:
How to calculate multisig address?
Given the transaction below, how can I -

Identify this tx involves multisig
What tool/s can I then use to calculate the resulting multisig address

The second HEX address 9d07acef34e0ad5a54f92aae65f49e2f3a24dd39 is easy enough - Base58Check converts it to 1FKJHRVHmyvjDfVbPuBW9e1tdCgt2XWtCb. I can follow the technical background for standard addresses at https://en.bitcoin.it/wiki/Technical_background_of_version_1_Bitcoin_addresses
To calculate the multisig address I can use bitcoind to decode the raw tx:
./bitcoind decoderawtransaction 010000000147759651f76ec0dbc7c248337d791afa7363636da4af0006fbafb77b9ac8214f070000008b483045022100b980b3bf9b20d1dc98a6cc8c76e19c67c9c24a23fc44a3f6baf1020fb7b6b9ce022029bd5fda88553f1dac92b12c404f65cd2ed97b481244d45558129698e43595ce0141040ab4a6619b82e1555f6c3ac9bd9b62c17433f3fb502d054dce9474ae6639777454b2509aae137c9048adb8491d28710c785b86aee766110d6aa0bcd3b07860a9ffffffff02a08601000000000017a914f815b036d9bbbce5e9f2a00abd1bf3dc91e9551087d0e89600000000001976a9149d07acef34e0ad5a54f92aae65f49e2f3a24dd3988ac00000000
"vout" : [

    {
        "value" : 0.00100000,
        "n" : 0,
        "scriptPubKey" : {
            "asm" : "OP_HASH160 f815b036d9bbbce5e9f2a00abd1bf3dc91e95510 OP_EQUAL",
            "hex" : "a914f815b036d9bbbce5e9f2a00abd1bf3dc91e9551087",
            "reqSigs" : 1,
            "type" : "scripthash",
            "addresses" : [
                "3QJmV3qfvL9SuYo34YihAf3sRCW3qSinyC"
            ]

But this took over 6 seconds to complete.
Is there an easier/quicker to simply calculate a multisig address?
The raw tx:
{

  "value":"0.00100000",

  "scriptPubKey":"OP_HASH160 f815b036d9bbbce5e9f2a00abd1bf3dc91e95510 OP_EQUAL"

},

{

  "value":"0.09890000",

  "scriptPubKey":"OP_DUP OP_HASH160 9d07acef34e0ad5a54f92aae65f49e2f3a24dd39

[ANSWER PART #1/2]

To calculate the multisig address I can use bitcoind to decode the raw
  tx [...] But this took over 6 seconds to complete.

May be the daemon was too busy processing other things?
The transaction has very simple and easy-to-parse format. You can parse it without bitcoind. It is possible to do it even manually. Look here! Lets take your raw data
01000000 // version id
01       // inputs count
47759651f76ec0dbc7c248337d791afa7363636da4af0006fbafb77b9ac8214f // prev tx hash
07000000  // prev tx output index
8b        // scripSig len
48        // push signature + type
3045022100b980b3bf9b20d1dc98a6cc8c76e19c67c9c24a23fc44a3f6baf1020fb7b6b9ce022029bd5fda88553f1dac92b12c404f65cd2ed97b481244d45558129698e43595ce01
41        // push pubkey
040ab4a6619b82e1555f6c3ac9bd9b62c17433f3fb502d054dce9474ae6639777454b2509aae137c9048adb8491d28710c785b86aee766110d6aa0bcd3b07860a9
ffffffff  // sequence
02        // outputs count
a086010000000000 // value1
17        // scriptPubkey len
a914f815b036d9bbbce5e9f2a00abd1bf3dc91e9551087 // scriptPubkey
d0e8960000000000 // value2
19        // scriptpubkey len
76a9149d07acef34e0ad5a54f92aae65f49e2f3a24dd3988ac // scriptPubkey
00000000 // lock

OK, I've spent more than 6 seconds, but I parsed it with hands :)
take first output script a9 14 f815b036d9bbbce5e9f2a00abd1bf3dc91e95510 87
it is p2sh script - OP_HASH160 f815b036d9bbbce5e9f2a00abd1bf3dc91e95510 OP_EQUAL
convert these 20 bytes to p2sh address and you will get 3QJmV3qfvL9SuYo34YihAf3sRCW3qSinyC

[ANSWER PART #2/2]

A standard address is
  Base58Check(f815b036d9bbbce5e9f2a00abd1bf3dc91e95510)

#define NET_BYTE  0x00
#define P2SH_BYTE 0x05  // https://github.com/bitcoin/bips/blob/master/bip-0013.mediawiki
//--------------------------------------------------------------
const QString MyKey20::toStringP2SH ( ) const
{
  quint8 tmp1 [21];                           // buffer
  tmp1 [0] = P2SH_BYTE;                       // first byte = 0x05 for p2sh addr
  memcpy ( tmp1 + 1, constData ( ), 20 );     // next 20 bytes
  const MyKey32 key ( tmp1, 21 );             // sha256 ( sha256 ( buffer ) )
  quint8 tmp2 [25];                           // another buffer
  memcpy ( tmp2, tmp1, sizeof ( tmp1 ) );     // copy 21 bytes
  memcpy ( tmp2 + 21, key.constData ( ), 4 ); // and concat with checksum
  char addr [40];                             // buffer for human-readable string
  memset ( addr, 0, sizeof ( addr ) );        // clear it and base58 encode data
  BASE58::encodeBase58 ( tmp2, sizeof ( tmp2 ), addr, sizeof ( addr ) - 1 );
  return QString ( addr );
}

and a method for creating "classic" addresses (to compare the diffs)
const QString MyKey20::toString ( ) const
{
  quint8 tmp1 [21];
  tmp1 [0] = NET_BYTE;
  memcpy ( tmp1 + 1, constData ( ), 20 );
  const MyKey32 key ( tmp1, 21 );
  quint8 tmp2 [25];
  memcpy ( tmp2, tmp1, sizeof ( tmp1 ) );
  memcpy ( tmp2 + 21, key.constData ( ), 4 );
  char addr [40];
  memset ( addr, 0, sizeof ( addr ) );
  BASE58::encodeBase58 ( tmp2, sizeof ( tmp2 ), addr, sizeof ( addr ) - 1 );
  return QString ( addr );
}

OK, let me continue with another answer. I need text formatting


text:
What is the workaround for high transaction fees
I wanted to transfer BTC from coinbase to Celcius for the APY, but it costs me 0.0003 BTC just to transfer this money. That's like $5.
What is the workaround for this? How can I transfer money with small fees in the cents?

Please note that while there are transaction fees inherent to the Bitcoin network, a service that holds your bitcoin can charge whatever they want for transferring it. Some services only charge the necessary minimum to cover transaction fees, but others charge a very high fixed transfer fee (a round amount like 0.0003 BTC suggests the latter).

If you stop using custodial services, you'll have full control over the transaction fees. But when using such services, you are stuck paying whatever fee that service decides to charge you.

The workaround is either to use something like the Lightning Network or to choose a fee that is small and wait for a much longer time.
The transaction fee is effectively a bid in an auction of space in a Bitcoin block.
By using some system layered over the Bitcoin network you can potentially avoid the auction for many transactions.

For example see Liquid Vs Lightning

Layer-2 protocols expand the range of options available to Bitcoin users. They enable Bitcoin to scale and bring benefits that include lower transaction costs, improved speed, and increased anonymity.
This article compares two different, but complementary, layer-2 payment solutions for Bitcoin: the Lightning Network and the Liquid Network.

Also Wikipedia - Lightning Network

"The transaction fee is effectively a bid in an auction of space in a Bitcoin block." Ahhh i am a noob. Thanks for the analogy of an auction. Just a few moments ago, it was just 0.00005BTC! I am interested in the "system layered over the Bitcoin network" you are speaking of but i have no idea what this mean. Coudl you please elaborate?

See addendum to answer


text:
problem accessing wallet
I have a 2011 wallet.dat created in version 0.4.0 it accepts my password normally.  but when putting in the current version of bitcoin core it doesn't work can you help me?
If I enter any other (not correct) password, it doesn't. I can enter 10000 incorrect passwords and the above error message does not appear.
At first I thought that the password(s) I was using were not correct, but then I made an observation, that only when I type only a specific password do I get this message in the popup:
assertion failed
program: C:\Program Files\Bitcoin\bitcoin-qt.exe
File: wallet/crypter.cpp, line 205
expression false
Runtime error
program: C:\Program Files\Bitcoin\bitcoin-qt.exe

Remember: Bitcoin doesn't have staff. This website is not run by the people who created Bitcoin. This site is a coomunity-run self help question and answer website where people like you answer other people's questions.

I only have this password and it works in version 0.4.0 in current versions of the error

Perhaps you could update your question to add a list of the exact steps you took and the exact error message?

If I enter any other (not correct) password, it doesn't.  I can enter 10000 incorrect passwords and the above error message does not appear.

At first I thought that the password(s) I was using were not correct, but then I made an observation, that only when I type only a specific password do I get this message in the popup:
assertion failed<<<
program: C:\Program Files\Bitcoin\bitcoin-qt.exe<<<
File: wallet/crypter.cpp, line 205<<<
expression false<<<
Runtime error<<<
program: C:\Program Files\Bitcoin\bitcoin-qt.exe


text:
Sent crypto to email address, recipient's exchange needs transaction-id
I sent $500 in Bitcoin and Ethereum to my niece email address. She got an email for each but could not cash them without Transaction Hash (TXN ID) as I was told by her exchange company! Is there any way I or she can get the money ($1000)? Appreciate help in advance!

Hi Naser, which company were you using to make your transfer? What did their support team say?

Note: When you use an exchange such as Coinbase to send Bitcoin to an email address, this is "off-chain" - it isn't a true Bitcoin transaction and doesn't have a BItcoin transaction-ID (transaction-hash). The recipient probably needs an account on the same exchange.

What do you mean by "her exchange company"? What relationship does this company have to the transfers you made to her?

Thanks for quick response. She is in overseas with company named Wallex (Form screen shots she sent me)! Can she open a Coinbase account even now (10 days later) and any hope to collect the money? Coinbase can't help (sounds like get lost). NOT happy at all.

Please clarify your specific problem or provide additional details to highlight exactly what you need. As it's currently written, it's hard to tell exactly what you're asking.

The normal way to send Bitcoin to someone is to send it to a Bitcoin address, not to an email address. This means the transaction is handled by the Bitcoin network and has a Bitcoin transaction-ID (transaction-hash).
When you use an exchange such as Coinbase to send Bitcoin to an email address, this is "off-chain" - it isn't a true Bitcoin transaction and doesn't have a Bitcoin transaction-ID (transaction-hash).
The recipient probably needs an account on the same exchange. Only the exchange can advise whether opening an account will allow the receipt of money sent to an email address weeks earlier.

I have sent $ to her a couple years ago using her Bitcoin address before, (Coinbase Pro). However, the software was discontinued. I contacted Coinbase support and explained  and provide a copy of screen shot that will not allowing me using bit coin address. I was advised to use her email address which I did and the Submit button became "Enable". Then, my niece forwarded me the emails that she received from Coinbase. I assumed that all went well. Next day, she contacted me and saying her company needs TXN ID! Coinbase (chat) said no hope (Nature of Crypto) and hung up! Bad support and deal.

Yes, personally I would never give money to an exchange to look after for me medium to long term. I would always keep the money myself in a normal non custodial wallet instead.

She just sent me an email that she tried to open an account with Coinbase but coinbase told her where she resides opening account is prohibited/Restricted! Please help!

I realized that now. But what can I do to get that money back? It supposed to help with medical expenses. I have to get that back. Coinbase is not helping and I'm thinking to put complain with FTC, FCC, etc.

Since Coinbase have the money, only they can give it back. No one else can. However there are several aspects of your situation that are warning signs of a scam:  Your niece is far away, She urgently needs money, she cannot use normal methods to receive money. I would check with my niece through some other method than those used recently, maybe through relatives or friends that live near her. For example, her email account may have been hacked by scammers.

Coinbase branch in USA confirmed the $ is her account. NO scam. But because she is in overseas it falls under Coinbase in Germany (her VPN). However, because geographically she is in prohibited country (Iran), her account is restricted and cannot get it. She has contacted the Coinbase branch in Germany and was told I need to be contacting them, while USA branch telling me because she's the account holder she is the one to contact them. They just giving us running around (bureaucracy at best). SO frustrated. I'm not going to give up. Thanks for trying to help.


text:
Descriptor Wallets are way more confusing than legacy
how do you dump backup into a json file?
then how do you load the json file into backup?

" How to create the descriptors wallet? createwallet("my_wallet",
False, False, "", False, True, False) getnewaddress("my_label",
"bech32") How to save the wallet? backup =
listdescriptors(True)['descriptors'] Dump backup into a json file This
file can be printed or saved for later reuse.
How to restore the wallet? createwallet("my_wallet_2", False, True,
"", False, True, False) Load the json file into backup
importdescriptors(backup) getnewaddress("my_label", "bech32") This
should give the same BTC address as before. "

The quotation is from https://bitcoin.stackexchange.com/q/102601/13866


text:
Bitcoin-core not saving transaction data
I have installed Bitcoin Core for full node and the synchronization seems to have finished, but there seems to be no transaction data saved on my PC storage. Why is this? Hopefully it should be several hundred gigs, right?
PC environment is Ubuntu.
The green check mark is still there in the lower right corner. The node also appears to be working. But there is no historical data?
Can anyone tell me what I should do?

It's possible your node is running in "pruned" mode, where block data is downloaded and validated, but later discarded after validation, and only the chainstate is kept in order to be able to verify future blocks.

Thanks for your answer.
How do I set it to normal mode?

Pruning can be turned off in the "settings" menu under "options", "main"

Resolved. I appreciate.


text:
Why does bitcoind store block data in a different directory than bitcoin-qt does?
I downloaded the bitcoin blockchain with
./bitcoin-qt

When I first executed the command I could tell him to use a mounted hard drive. All the data goes there. So far so good.
Now I want to experiment also with
./bitcoind

With bitcoind its running through all blocks one by one and gives me updateTip: new best, height, version, log2_work, tx, date, progress and cache. And when I execute the command
df

all the data goes on the SD-card and not on the hard drive.
What is the bitcoind doing there and how can I tell it to use the hard drive and not the SD-Card? Because there is not much space left
Thanks in advance

This may answer your question: What's the difference between bitcoind and bitcoin-qt? Different commands?

Not really an answer to my question what is happening even though I downloaded the blockchain already. Don’t know where the data is stored when executing bitcoind (its not the blockchain)

You have to provide the same path to bitcoind as you did for bitcoin-qt. Let's say you gave /path/to/data to bitcoin-qt, you should start bitcoind with ./bitcoin -datadir=/path/to/data. Otherwise it will download all blocks in the default dir (On Linux is ~/.bitcoin)


text:
Do I have to backup ~/.cashu/wallet/wallet.sqlite3 of my nutshell wallet in order to backup my ecash tokens?
Upon inspection with sqlite, wallet.sqlite3 has following tables: balance    dbversions keysets proofs seed balance_used invoices nostr proofs_used.
As a wallet holder, do I need to back up the file or is the mnemonic phrase enough for backing up my ecash tokens in nutshell?
If just restoring from the mnemonic is enough, does it also apply when the user has ecash in many CASHU mints?
P.S. The question pertains to ecash, CASHU protocol, and to Chaumian mints and not to
any scamcoins.

After experimentation that included deleting .cashu/ I can confirm that I am able to restore the funds just from the mnemonic phrase.


text:
How do I send the change output from an input to fundchannel to a taproot address instead of to a SegWit v.0 address?
Is there a way send the change output from an input to fundchannel to a taproot address instead of to a SegWit v.0 address?
I have only one large utxo in onchain funds of my Core Lightning node. Its address is a
SegWit v.0 address, that starts with bc1q. I want to open a channel with lightning-cli fundchannel. Is there a way to send the change from this input (not needed for the opening of the channel) to a taproot address (i.e. a SegWit v.1 address that starts with bc1p) instead of to a SegWit v.0 address? I am worried because my experience with lightning-cli newaddr is that  by default it generates a SegWit v.0 address.

So, your question is "How can I send the change output from a channel funding transaction to a taproot address?"

@Murch Yes, this is exactly what I mean. I already modified my question in response to your worthy comment.

The documentation of the fundchannel command does not appear to make any references to parameters for setting the addresstype for the change output of a funding transaction.
However, according to the announcement of Core Lightning 23.08

We also added Taproot address support, thanks to Greg Sanders: you can issue Taproot addresses for people to send you on-chain funds, and we will immediately use them for our own change outputs. Taproot addresses (i.e., P2TR) start with bc1p instead of bc1q, just so you know!

and the Core Lightning 23.08 Changelog, Core Lightning should generally be creating P2TR change outputs since version 23.08 after pull request #6035 added Taproot wallet support.
If you are running an older version, you should hopefully see the desired behavior after upgrading. If you are running version 23.08 or later and your funding transactions do not have P2TR change outputs, you might want to report a bug to the Core Lightning developers.


text:
How do I run a Core Lightning Node on top of Bitcoin Knots?
Recently, Giacommo Zucco mentioned that he runs Bitcoin Knots instead of Bitcoin Core. As far as I know, he is an experienced Lightning user and so there must be a way in which he runs his lightning node on top of Bitcoin Knots instead of Bitcoin Core. I myself have been running a nonrouting Core Lightning node on Debian and Ubuntu for a couple of years. Is running Core Lightning with Bitcoin Knots so seamless as with Bitcoin Core? Does it require any tweaks or special configuration in .lightning/bitcoin/config?
And what about other implementations such as LDK?

Yes, the two implementations are perfectly interchangeable, as long as bitcoin-cli can talk to either Bitcoin core or Bitcoin knots it should just work as expected.
CLN internally actually calls out to bitcoin-cli, and needs only a handful methods are used anyway, so the difference between the two implementations may not even have any effect, as it affects parts we don't use internally.
I don't know the specifics of how ldk interacts with it's Bitcoin backend, and it may depend on which components you combine. I'd expect however that ldk would also not be affected by the switch in Bitcoin implementation.
Disclaimer: I am one of the CLN maintainers, hence the "we" in the reply.

Yeah lampo https://lampo.devcrew.cc/ uses bitcoin core as a way to fetch blocks and it is working well with Knots too


text:
Other than for obvious spam, what is OP_RETURN used for in non-coinbase transactions?
Some time a go I heard from Bitcoin Mechanic that there was a coin join implementation that inscribes some data that they need in order to determine their pricing.
Is that true? Do custodians such as Liquid use OP_RETURN for anything?
Other than for many forms of spam, what is OP_RETURN used for in non-coinbase transactions?
Or in other words, lets say that starting from tomorrow there is no OP_RETURN other than that used in coinbase transactions, what would be broken in such scenario?

Related: https://bitcoin.stackexchange.com/q/105881/5406

The main use of op_return outputs is that junk gets written to op_return outputs instead of output scripts that are part of the UTXO set.


text:
My withdrawal is still verification pending after 1 week, what should I do?
After 910 days, I withdrew 0.205 BTC to Trust wallet. And still nothing. Any tips? What should I do? I really need this money.

Does this answer your question: https://bitcoin.stackexchange.com/q/9046/5406?

Welcome to bitcoin.stackexchange.com. Where/what are you withdrawing money from?

Has it been 1 week or 910 days that you are waiting for your transaction?

It was from a free roll BTC website and its totally leggal. Put effort for 910 days and when i withdraw it says verifacation pending for 1 week and more

You have been scammed. Transactions on the Bitcoin network never have "verification pending" - that must be an invention of the "free roll BTC website" you were using

no it iz imposible bcz my friend withdraw from fhe same site and he got the money my uncle did the same too


text:
Transfer and account
I'm attempting to clarify a few things in my mind. The wallet.dat file contains (amongst other things) my transaction history alongside the private keys associated with each address in use in the wallet.

Im wanting to know how to cash out or transfer mbtc

Does this answer your question? How can I sell bitcoins and transfer the funds to my bank account?


text:
Recreate Java code in python
I have a java code that I need to pass to python but I don't know which libraries to use and how to start and if you can help me I would really appreciate it
MNEMONIC = "twenty four mnemonic words hereí" ACCOUNT_KEY = "" WALLET_PRIVATE_KEY = ""

// We will generate 3 parameters here // 1. hashSecret // 2. encryptedSecret // 3. hashPublicKey

const epochTimeNow = Fecha.ahora().toString()

const secret = getDeterministicTradeSecret(MNEMONIC, epochTimeNow) // This function is defined below

const hashSecret = hash160(secret)

const encryptedSecret = encryptTradeSecret (secreto, ACCOUNT_KEY, indefinido)

const publicKey = privateKeyToPublic(privateKey)

const hashPublicKey = hash160(publicKey)

const btc_trade_secrets = {crypted_secret:cryptedSecret, hash_secret:hashedSecret,hashed_public_key:hashedPublicKey,}

I’m voting to close this question because this is not a place for coding assistance or general software development questions.

I have a java code that I need to pass to python

Unless the same library has been ported to both languages, there will probably be no direct equivalent.
Instead it will probably be best to describe what you want to achieve and select a well-known Python bitcoin library and work from the examples


text:
My Bitcoin was stolen
What is the complexity of recovering a stolen bitcion, is it possible to recover it back?  Has anyone successfully recovered their Bitcoin?
I have tried reporting to the cops but they have rendered no help, Any suggestions or advice?


text:
Bitcoin recovery company saying I have bitcoin in a frozen account
I’ve been approached by a company saying I have bitcoin in a frozen account, they can see that it belongs to me and want to get me to give the wallet details to transfer, I’m sure it’s a scam however 10-12 years ago maybe longer I did invest but it wasn’t like it was today it was a lot more difficult, I didn’t understand it and took the loss and didn’t want anything to do with online currency. Is there a way I can see if that money has done anything and if I can access it again ? I have no idea what platform and or the wallet that was used.

Most likely someone is trying to scam you out of an advance fee or trying to steal your identity. If they are very concretely addressing you and referencing an account that you actually had you might want to research them further, but the vast majority of these contacts are scams.

I’ve been approached by a company

You are right, so far as I can tell, this is always a scam.

Is there a way I can see if that money has done anything ...

Only if you have your own independent record of the Bitcoin addresses you used 10-12 years ago. Addresses of which you are certain and not just addresses given by strangers claiming to be a recovery company.

... and if I can access it again ?

Only if you have your own independent backup of the private keys or recovery phrase. Or your own record of complete account details for some known online service that is still in busines.

I have no idea what platform and or the wallet that was used.

Then you have no way to recover control over any money. Be extremely skeptical of anyone who says otherwise.


text:
Unable to send BTC using Electrum - OP_EQUALVERIFY Error
I'm using Electrum to send BTC to my Trust Wallet, in this case I'm getting the following error:
The server returned an error transmitting the transaction.

Consider connecting to a different server, or upgrading Electrum.

Script failed an OP_EQUALVERIFY operation.

How could I fix this problem?
Thanks in advance.
PS: I'm already using the last Electrum version.

This question is similar to: Bitcoin Script: mandatory-script-verify-flag-failed Script failed an OP_EQUALVERIFY operation. If you believe it’s different, please [edit] the question, make it clear how it’s different and/or how the answers on that question are not helpful for your problem.


text:
I invested thru a friend
My friend told me a new company was launching and I invested $300. There were 29 investors. The company wants me to verify my account by sending money on same Bitcoin wallet I used when I sent the money to my friend so he could invest it. I have used this wallet address a few times to send Bitcoin to my friend.
To proceed with the verification, a $1,300 Bitcoin transfer is required.
This transfer needs to be made from the same Cash App wallet you used to deposit funds into the account. The reason for this is to validate that the same person who made the original investment is now claiming the
funds, ensuring the security of the transaction.
Here's how the process works:

You will transfer $1,300 in Bitcoin to the same wallet you initially used for your deposit.

Once the transfer is complete, the amount will show immediately in your available balance within the account.

This transaction will serve as confirmation of your identity and ownership of the account.

After the transfer is successfully verified, you will receive a call from our team to confirm your identity using the information we have on file.

I trusted my friend that this is legit but I'm scared! My question is how would this company NOW have the wallet address I used many times to send Bitcoin to my friend??? Could my friend be involved in a scam also???

I don't see a specific question here, but this seems like a scam considering the use of Bitcoin, the supposed verification transfer, and the theory that you could invest in a company with $300 via Bitcoin with 29 people (investment scam? advance fee scam? identity theft? all of those, maybe?). Is this "account" from the official page of a reputable brokerage or some random page? Also, I really would not suggest giving information to "confirm your identity". Random people (especially random DMs) claiming to be able to recover lost funds are probably also scams. See "recovery scam".

I trusted my friend that this is legit but I'm scared! My question is how would this company NOW have the wallet address I used many times to send Bitcoin to my friend??? Could my friend be involved in a scam also???

I'm not sure on the first question. For the second question, did this friend reach out to you online? Or have you known them a long time and met them in person? It's not unheard of for scammers to interact with people online enough to convince a victim that they're friends, when really they've just been trying to scam you the whole time. It's also possible your friend just got scammed too. Hard to say without more information, although I would not send any more crypto. Can you share anything about this company or how you access your account?

They send me emails then I can check my acct. This is the web site of you could please let me know if this is a scam. https://group.westerncf.top/login.php

It's a scam. One indicator (but there are plenty of others) is the phone number on the about page. (123) 456-7890 is not a legitimate number.


text:
In a mining pool, how do shares counting works with vardiff?
I was reading this very interesting page: https://slushpool.com/help/hashrate-proof/
I read the "How does the mining and hash rate calculation work?" section and with a fixed difficulty for all miners it all made perfect sense. But the there is this phrase:

The value of 2^32 was chosen arbitrarily in the past, but is stable
  and makes one share well defined. In reality, proof of work value may
  vary from miner to miner, but it is just an implementation detail.

Except that I cannot figure out exactly that "implementation detail". How do you factor variable difficulty of each miner in how you count shares exactly? What would be the exact formula to compute the % of rewards for each miner?


text:
Can failed Transactions figure out which Channel is exhausted?
According to information in this LND PR the sender of an TemporaryChannelFailure can be determined:

In many cases it is impossible for the sender to determine which of the two nodes in a pair is responsible for the failure. In this situation, we now penalize bidirectionally. This does not hurt the good node of the pair, because only its connection to a bad node is penalized.

So my understanding of this comment is, the channel, or at least the node next to one of the exhausted channels can be identified quite easily. Is it really that easy? Can TemporaryChannelFailure and therefore channel exhaustions always be assigned to two nodes or one channel?
I always assumed, the error cannot be assigned to a node or channel at all.
This might simplify the work of some papers, such as On the Difficulty of Hiding the Balance
of Lightning Network Channels by J Herrera-Joancomarti et al., or open new attack vectors.
Edit: more links for further research
In case someone wants to give a more in-depth answer or do research on top of this, here are some links to the code in the lnd client github code base:

In lightningnetwork/lightning-onion crypto.go, function DecryptError, the client cycles through the secrets to unwrap the error and identify the sender index.
In lightningnetwork/lnd htlcswitch/switch.go, function parseFailedPayment this DecryptError function is used to access the failure.
Later this value will be accessed e. g. in missioncontrol.go or result_interpretation.go as FailureSourceIdx, failureSourceIdx or failureSrcIdx.

As far as I understand (but I did not double check the code) the answer is yes. The error messages in the onion seem to be encrypted in a way so that only the origanal sender of the onion can decrypt it. Since the error also had to be padded to keep the error onion of constant length the key derivation scheme for sending onions is kind of reused. In that sense the receiver of the error message unwraps all the envelopes and thus should know from which node the error arose.

When an intermediate or the final node (intended recepient) wants to send an error message they create an error packet which contains the (1) error message; (2) padding to conceal length and (3) HMAC that authenticates the packet using key um. This erring node then generates a key ammag that is used to generate a pseudo-random stream which in turn is applied to the error packet using XOR to obfuscate it. This error packet is then sent using the error message update_fail_htlc which includes the failure message temporary_channel_failure (this failure message is used in case of lack of channel funds or too many htlcs in flight).
This erring node will then forward this error packet to the node that forwarded the htlc to it. Intermediate nodes store the shared secret from the forward path and reuse it to obfuscate any corresponding return packet during each hop. The obfuscation step is repeated by every hop along the return path which generates its own ammag, generates the pseudo-random byte stream, and applies the result to the return packet before return-forwarding it. The error messages includes an id to let the peer know the htlc to which the error message is being referred.
When the error message arrives at the origin node, it is able to detect that this error message is intended of itself using the id as it was the one that created it. When an origin node receives an error message matching a transfer it initiated it generates the ammag and um keys for each hop in the route. It then iteratively decrypts the error message, using each hop's ammag key, and computes the HMAC, using each hop's um key. The origin node can hence detect the sender of the error message by matching the hmac field with the computed HMAC of the error packet.


text:
Will electrum wallet increment the fee automatically or do I have to do it manually?
Although I've broadcasted many transactions via testnet with RBF opted-in ( --rbf true), yet, given different
incentives present among the miners of the testnet and of the mainnet, my experience so far does not seem very helpful when it comes to grasping firmly how RBF works in Electrum.
So far I've always broadcast them with 1 sat/byte. I most
cases they were picked up by miners with this fee. A couple of times I noticed a slight discrepancy between the fee that I did broadcast (always 1 sat/byte) and the fee (1.2-1.3 sat/byte) that was shown in the blockchain explorer. Such minor discrepancies suggest to me that Electrum somehow automates the process of bumping the fee up when needed.
Does Electrum handle incrementing the fee for me or do I have to manually bump the fee up? If the latter is the case,
can the fee bumping be done from the terminal (i.e. without GUI)?
If the logic of the wallet automates the RBF process, how does it look like exactly? How many blocks does it wait until it increments the fee? By what factor is the fee increased?
I have not found any information that would answer my questions in Electrum's documentation.

When you write "broadcast", I think you're actually referring to your transaction building instructions. I.e. you instructed your wallet to build with 1 sat/vB, but what was broadcast had a slightly higher feerate. I'm asking about that, because it could otherwise be understood that you first broadcast a transaction with the lower fee, but then saw an updated variant of the transaction later on the network, but I don't think the latter is what you mean.

@Murch When I wrote Although I've broadcasted many transactions via testnet with RBF opted-in ( --rbf true) I meant that I broadcasted to the mempool, i.e. executed two commands: first electrum payto with --rbf true flag and then, after getting a long string of numbers in the output, electrum broadcast long_string_of_numbers. When I referred to the fee (1.2-1.3 sat/byte) that was shown in the blockchain explorer. I meant here the tx fee shown on some Bitcoin explorers, after being the tx have been confirmed.

Yeah, I guess it's just a small terminology nit: we would usually describe the first step as the transaction building and the second step where you submit the transaction to the network as the broadcast. The feerate is decided in the "payto" step where the transaction is built. Transactions are immutable after built, so the second step just allows you to either broadcast or refrain from broadcasting a fixed transaction.


text:
What command does a c-lightning node run, after did broadcast fundchannel from my side, when they establish a channel with me? Can they be censored?
c-lighning's user has the option of funding a private channel with fundchannel's announce=false flag.
The user, such as myself, executes fundchannel and, provided that the fee was sufficient,
soon has a channel at their disposal. How does the process look on the other side?

Is the request
to open a private channel logged in .lightning/bitcoin/log of the other party? If so what level of logging is required? Would anybody be kind enough to paste an example from their .lightning/bitcoin/log?
Is fundchannel_complete or open_channel used to complete the creation of the channel in
the case that the other party agrees on creating a private channel.
Can monitoring the content of .lightning/bitcoin/log be the basis of
Bitcoin's censorship through the attempt to limit private channel creation
to only whitelisted parties or to only those that are not blacklisted.
Let's say that a law is passed that says that the operators of routing nodes
have a legal obligation to store their logs and provide law enforcement
with access to such logs. Opening private channels to the sanctioned entities
or the non-whitelisted entities is punished. The aim of such a law would be to
restrict the usage of c-lightning to custodial wallets.
Do top-capacity routing nodes automate the process of agreeing on the channel opening to them? If so what are the most commonly used solutions/scripts/plugins for this purpose?

Does this answer your question? Is it possible to programmatically or preemptively deny any/all open_channel Lightning messages coming into your node?

@AntoinePoinsot It does partially answer, hinting me towards open_channel. Yet, I would gladly receive the answer about the details that I ask for in the points 1, 2, and 4 of my question.

I believe the concerns of the authors are addressed in this answer. Here is anyway, to their request, an adaptation of the answer to the application from this question.
I think you are conflating logging with the ability of taking part, or not, in the Lightning Network protocol. One can always refuse the establishment of a channel to their node, as much as they can refuse a handshake, refuse to advertize a way to reach them through the internet, or refuse to set up a computer connected to the internet in the first place.

Yes it is. I'm pretty sure you'll at least have a line at info level. You'll have more details about the process at lower logging levels, of course.
You are mentionning RPC commands. If your node is listening, reachable and advertized a mean to reach it then you do not need to execute any command for another node to establish a channel to it.
That sounds overly convoluted, to say the least. Why would one use the logs to attempt that? In any case, you may of course be coerced into refusing the establishment of a channel to you, as much as you may be coerced to not use Lightning, or Bitcoin.
Most nodes on the network enforce a minimum channel capacity.

Thank you, especially your answer to 2.  does make clear to me what happens on the other side. A newbie like myself runs only a non-routing node but knowing at a high level what happens in routing nodes helps to understand the censorship-resistance of lightning.


text:
Cannot open a channel. How might deal with fundchannel: "They sent ERROR channel ***: funding failed due to internal error"?
After running lightning-cli connect 03a93b87bf9f052b8e862d51ebbac4ce5e97b5f4137563cd5128548d7f5978dda9 ldafy556bsfgjuxodwbt6naw3r67yt5jztajlpluqawhowt324s3rzqd.onion:9735 I received from this output from the peer with whom I chose to open a channel:
{
   "id": "03a93b87bf9f052b8e862d51ebbac4ce5e97b5f4137563cd5128548d7f5978dda9",
   "features": "8000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000020008a8a51a1",
   "direction": "out",
   "address": {
      "type": "torv3",
      "address": "ldafy556bsfgjuxodwbt6naw3r67yt5jztajlpluqawhowt324s3rzqd.onion",
      "port": 9735
   }

Assuming that establishing a connection over TOR succeded I then run lightning-cli -k fundchannel id=03a93b87bf9f052b8e862d51ebbac4ce5e97b5f4137563cd5128548d7f5978dda9 amount=16777215 announce=false feerate=3000perkb and got the following output:
{
   "code": -1,
   "message": "They sent ERROR channel ****************************************************************: funding failed due to internal error",
   "data": {
      "id": "03a93b87bf9f052b8e862d51ebbac4ce5e97b5f4137563cd5128548d7f5978dda9",
      "method": "fundchannel_start"
   }
}

I then went down the list of onion lightning nodes and tried the same with BOTLZ and got
similar output after running fundchannel.
I have enough onchain BTC, listfunds returns
{
   "outputs": [
      {
         "txid": "****************************************************************",
         "output": 1,
         "amount_msat": 368885441000,
         "scriptpubkey": "********************************************************************",
         "address": "bc1***********************************************************",
         "status": "unconfirmed",
         "reserved": false
      },
      {
         "txid": "****************************************************************",
         "output": 1,
         "amount_msat": 335330026000,
         "scriptpubkey": "********************************************************************",
         "address": "bc1***********************************************************",
         "status": "confirmed",
         "blockheight": 856377,
         "reserved": false
      }
   ],
   "channels": [
      {
         "peer_id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "channel_id": "****************************************************************",
         "short_channel_id": "*************",
         "our_amount_msat": 186720444,
         "amount_msat": 4999999000,
         "funding_txid": "****************************************************************",
         "funding_output": 1
      },
      {
         "peer_id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "channel_id": "****************************************************************",
         "short_channel_id": "*************",
         "our_amount_msat": 12676067452,
         "amount_msat": 16777215000,
         "funding_txid": "****************************************************************",
         "funding_output": 0
      },
      {
         "peer_id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
         "connected": false,
         "state": "AWAITING_UNILATERAL",
         "channel_id": "****************************************************************",
         "our_amount_msat": 16777215000,
         "amount_msat": 16777215000,
         "funding_txid": "****************************************************************",
         "funding_output": 0
      },
      {
         "peer_id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "channel_id": "****************************************************************",
         "short_channel_id": "*************",
         "our_amount_msat": 16777215000,
         "amount_msat": 16777215000,
         "funding_txid": "****************************************************************",
         "funding_output": 0
      },
      {
         "peer_id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "channel_id": "****************************************************************",
         "short_channel_id": "*************",
         "our_amount_msat": 16777215000,
         "amount_msat": 16777215000,
         "funding_txid": "****************************************************************",
         "funding_output": 0
      },
      {
         "peer_id": "03864ef025fde8fb587d989186ce6a4a186895ee44a926bfc370e2c366597a3f8f",
         "connected": true,
         "state": "CHANNELD_NORMAL",
         "channel_id": "****************************************************************",
         "short_channel_id": "*************",
         "our_amount_msat": 16777215000,
         "amount_msat": 16777215000,
         "funding_txid": "****************************************************************",
         "funding_output": 0
      }
   ]
}

I have channels open with just one peer and when trying to open with them I do not get the same output, channel opening succeeds provided the fee is high enough.

As the error message states: They sent ERROR channel meaning the remote endpoint has aborted the fundchannel for some reason. They do not include an error, other than internal error, which is very non-descript. Unless you have contact with the operator of the remote node, and can ask them for details, you most likely won’t be able to debug this further just from your side.


text:
Which mobile apps support swiping/importing private keys via QR code?
The bitcoin.org site that provides a list of wallet clients doesn't clearly show which allow for importing bitcoin via a QR paper wallet. Does anyone know a location to see which support such features, or know of ones that work on mobile phones that clearly support swiping?

These wallets do:

Bitcoin Wallet
Mycelium

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


text:
A Blockchain that merges mining forks and could be more power-efficient?
I'm new to blockchain technology so I'm sorry if I'm using wrong terminology. This is not a Bitcoin question, but a general blockchain question.
Imagine a theoretical blockchain that uses gradual proof-of-work - instead of finding a single nonce that gives a hash smaller than the target, you have to find 10 nonces that give hashes that are smaller than target * 10.
(Edit: more complicated algorithm can be used, for example the first hash includes the block-header and the first nonce, the second hash includes the
block-header, the second nonce, and the previous hash, etc. - so calculating the hashes must cannot be done in parallel).
If you discovered 9/10 good nonces, you will try to find the last nonce even if some other miner has already published a complete block.
This kind of blockchain will encourage arbitrary mining forks - where two miners publish a mined block with the same previous-block-hash (i.e. the same index in the chain), which looks like:
B1  ←-  B2  ←-  B3  ←-  B4
                ↑
                +-----  B4'

The way current blockchains (that I know of) solve this problem is by letting the miners pick which of the forks to continue, and because only the longest blockchain is the "true blockchain", all the miners will eventually work on a single fork, and all the work that was done on the other forks will go in vain.
Now imagine that each block could have contain more than 1 previous-block-hash. For example, a new miner could try mining a block like:
B1  ←-  B2  ←-  B3  ←-  B4  ←-  B5
                ↑               |
                +-----  B4' ←---+

With one important condition: the transactions in B4 must not contradict the transactions in B4' (no double-spending, etc.). Assuming there are many unrelated transactions in the mempool, this will be a very common scenario.
Miners can even be incentivised to include more previous-block-hashes in the next block. For example, if the miner of B4' notices that B4 was already published, he can offer to pay some fee to the following miners (of B5) that include B4' too.
This algorithm will be much more power efficient (in the case of a gradual proof-of-work) because miners can keep mining the same block even if some other miner already found a good block. It can mine more transactions in parallel without increasing the block size. It is different than choosing an easier hash function (for the proof-of-work), because it has no effect on the blockchain's length or growing speed.
Do you know of any proof-of-work blockchain/cryptocurrency that does something similar, like a blockchain that can split and merge? I know that IOTA is not using blockchain at all, but I never delved into the details.
Thanks

Something that is very similar to what you describe is the concept of "Uncle Blocks" used in Ethereum. Even there, though, there are no partial blocks and nobody would continue to mine on a "half-finished" block. Ethereum has significantly shorter block intervals which causes multiple blocks at the same height to be found often and allowing to reference them as uncle blocks mitigates the waste of that to a degree. Introducing progress into mining is problematic, because it biases mining success towards miners with more hashrate.

I now read about Ethereum Uncle Blocks, and how their miners are being rewarded, but these blocks are not considered valid - i.e. the transactions will still be stuck in the mempool.
Surely there is a way to introduce progress into mining without creating unfair bias to miners with more hashrate. I will edit my question to a different algorithm for that.