text:
Amount of block locator hashes in "getblocks" message
How many block locator hashes are sent in a getblocks message? And how distant are these locator hashes from one another?

getblocks message pushes a maximum of 500 block invs to the caller. It will lookup the given block locater in the active chain and pushes up to 500 MSG_BLOCK invs to the caller (it might stop earlier because the called node reaches the chain tip). The corresponding code for bitcoin-core 0.10 can be found here (https://github.com/bitcoin/bitcoin/blob/0.10/src/main.cpp#L3888).
Also notice that bitcoin-core now uses the headers first approach and therefore getblocks is no longer in use when acting as a "calling node".

What was actually confusing me was teh description on Bitcoin Wiki, here. According to this description I imagine block locators being like distant markers on a blockchain - not being  pushed into inv necessarily consecutively. Let's say one node0's last seen block was block #40 and the best tip is at block #45. Will node0 then send block locators/header hashes in its getblocks message in this pattern [#1, #2, #3, ..., #40]? or as "distant" markers like e.g. [#10, #25, #30, #35, ..., #40]?

Check L3892 (https://github.com/bitcoin/bitcoin/blob/0.10/src/main.cpp#L3892). As far as i see only one locator is supported. So your node0 should send its top block hash within the getheaders message. Consider also reading: https://bitcoin.org/en/developer-reference#getblocks and you could also follow the CNodes hashContinue variable.

Ok, but upon reading bitcoin.org/en/developer-reference#getblocks, it says "One or more block header hashes ..." and with your hint of hashContinue and the fact that nLimit is decremented I'd claim that a consecutive order of multiple header hashes inside the inventory field sounds more plausible!?

I think you/we mix up getblocks message with the inv response. The getblocks message should probably only contain one block locater and a optional hash stop. The called node will response your getblocks message with serval invs containing all blockhashes that where found on the called node after your given block locater up to hash-stop or a max. of 500 blocks. If the node already sent you a block hash inv, it might be skipped. nLimit is decremented to make sure you won't get more than 500invs.

Yes I also think we're talking of different things. I'm actually referring to bitcoin.org/en/developer-reference#getblocks and in particular to https://bitcoin.org/img/dev/en-ibd-getblocks.svg where it also says "header hashes" whereas you say "The getblocks message should probably only contain one block locater and a optional hash stop."

What do you think?


text:
RPC connect to Umbrel
I have an Umbrel Node on my RaspberryPi4. It is connected to the same router as my Computer, but somehow I can't connect to it using python (bitcoinrpc).
My Code
rpc_user = "umbrel"
rpc_pass = "password"
rpc_host = "192.168.1.122"
rpc_port = "8332"
rpc_connection = f"http://{rpc_user}:{rpc_pass}@{rpc_host}:{rpc_port}"
print(rpc_connection)
rpc_client = AuthServiceProxy(rpc_connection, timeout=240)

This always results in the same error
Traceback (most recent call last):
  File "/media/donbolli/code/python/bitcoin/crawler/test.py", line 10, in <module>
    rpc_client = AuthServiceProxy(rpc_connection, timeout=240)
  File "/media/donbolli/code/python/bitcoin/venv/lib/python3.10/site-packages/bitcoinrpc/authproxy.py", line 87, in __init__
    if self.__url.port is None:
  File "/usr/lib/python3.10/urllib/parse.py", line 185, in port
    raise ValueError(f"Port could not be cast to integer value as {port!r}")
ValueError: Port could not be cast to integer value as 'password'

What am I missing? What is done wrong?

Could it be a special char in the password is causing this issue, if so, how can I solve it?

As I understood on the Umbrel forum, Umbrel does not support local LAN connection to RPC port 8332 for security reasons.
did you manage to solve it somehow?

It seems like you have some special character in either rpc_user or rpc_pass that makes the parser think that the host appears much earlier than it actually does. It's probably one of :, @, ;, ?, #, or /.

my password has such a chrachater in it, but how can i change the password?

I would try URL encoding the value of rpc_pass when constructing the  rpc_connection URL. In other words change ":" to "%3A" and "@" to "%40" in the rpc_pass value.

I'm not familiar with Umbrel, so I cannot give instructions. But in general, you'll need to find the bitcoin.conf file that Umbrel's bitcoind is using and modify the password set in there, then restart bitcoind.

source: Stack Exchange

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

sort: votes


text:
Naming Convention In Bitcoin Source Code
Is there specific reference for naming conventions in Bitcoin Core source code?
I see regularity in class naming with prefix "C" (Chain, CInv etc.) or pointer naming with "p" (pprev, pnode etc. ) and am wondering if there's more to my list of prefixes or other conventions.
Is there a Bitcoin-specific naming convention at all?

I don't know if there's a formal reference, but the second thing you're describing is http://en.wikipedia.org/wiki/Hungarian_notation

The bitcoin repo specifies their conventions here as well: https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md

http://en.wikipedia.org/wiki/Hungarian_notation

C stands for Class
p for Pointer
f for Flag (boolean)
n for Number
sz for zero terminated string

These conventions are no longer mandatory when contributing to bitcoin core.
You might also read https://github.com/bitcoin/bitcoin/blob/master/doc/developer-notes.md

The style guide for Bitcoin Core is available on GitHub here. It no longer details a naming convention, but as Nick ODell already mentioned above, variables typically follow a form of Apps Hungarian naming.
In the past, the style guide did include a naming convention, however it has since been removed because it wasn't being consistently followed.

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


text:
sweep 52 Character private key beginning with L
I'm trying to sweep an unencrypted private key, created with bitaddress.org 4 years ago into, Electrum. I also gave these to family with small amounts on, so need to figure this out before I go down in history as the worst Uncle ever.
The private key is too long and just turns red in the sweep private key box in electrum. I have tried all the versions of the key provided by bitaddress.org but there is a small dollar value when I input the public key in https://www.blockchain.com/explorer
Is there a tool that will convert all bitaddress.org created addresses anywhere? Shall I use a different wallet to sweep the private key?

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


text:
Chain 2 transactions in same block with bitcoinlib in Python
I asked yesterday if it's possible to have a tx from A to B then B to C in the same block, with the second tx spending the UTXO of the first one (with initial balance of B is 0)
Apparently it is : Can two related "spends" be in the same block?
But now i'm trying to test this with bitcoinlib in Python.
My code is :
wallet = Wallet.create('MyWallet',
                        keys = seed_phrase,
                        witness_type = "segwit")

address = wallet.get_key(0).address
address2 = wallet.get_key(1).address
address3 = wallet.get_key(2).address

wallet.transactions_update()

fee = 1_000
send_value = wallet.balance() - fee

tx = wallet.send( [(address2, send_value)],
                    fee = fee,
                    offline = True)

wallet.transaction_import(tx)

send_value2 = send_value - fee

tx2 = wallet.send( [(address3, send_value2)],
                     account_id = 1,
                     fee = fee,
                     offline = True)

The first tx work correctly because the first address have a balance, but then the second one fail with :
WalletError: Create transaction: No unspent transaction outputs found or no key available for UTXO's

I think the problem is with the importation of the first tx in the wallet
Any idea on how to fix this ?
Thank you

I have a couple ideas someone may want to investigate if they’re writing an answer: (1) It looks like the account_id parameter allows you to manage multiple accounts within one wallet. You only specify account_id on the second transaction, but not on the first. What happens if you drop the account_id parameter? (2) The library may not support spending unconfirmed funds.

(1) account_id is zero by default, if i remove it for the second tx then it send from address 0 to address 2, not what i want (2) yeah probably, if i wait for the first tx to be confirmed in the blockchain then it works, but it takes too long to wait for new blocks

Have you considered testing on testnet, regtest, or signet?

no i tested this on mainnet directly, i think the library will do the same with testnet


text:
Generating blocks in regtest: "hash doesn't match nBits"

I'm getting this error in regtest mode after setgenerate RPC:

ERROR: CheckProofOfWork() : hash doesn't match nBits

After looking for error text in src I found a match in pow.cpp (obviously standing for proof of work) with following extract from code:
// Check proof of work matches claimed amount
if (hash > bnTarget)
     return error("CheckProofOfWork() : hash doesn't match nBits");

Does it mean there's a target in regtest?If yes, isn't it contradicting to difficulty being 0?

The regtest difficulty is not 0. It is around 0.0000000005 initially (corresponding to 1 hash in 2 being valid), and retargets the same way that the main network does, every 2016 blocks.
The fact that you see this error is a bug though, which will probably be fixed in Bitcoin Core 0.11.

OK. Thanks Pieter! But only, I'm not understanding your formulation of "[...] corresponding to 1 hash in 2 being valid [...]" ... Would you rephrase that, please?

Of every two candidate block you try, one will be valid.

I am running bitcoind v0.10.0.0-047a898 in regtest mode on a Raspberry PI. I see lots of those "ERROR: CheckProofOfWork() : hash doesn't match nBits" and they slow bitcoin down quite a bit. In the end I have commented the check out. Surprisingly, everything seems to work fine now, but I must be missing something here...

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


text:
I would like to know can this company do this?
Has anyone ever heard of Hcrex? I invested 1000 and profit 10,000. When I went to withdraw some of the funds I was told I had to pay 3000 in tax before I can withdraw anything.

Hi William, it’s a common scam to ask for an advance fee. If they actually had 10,000 they could just keep 3000 for the tax. So they probably don’t have 10,000 in your name.


text:
Full Node and Pool ZMQ Error
i'm new into the BitcoinCore und started a FullNode. The Node is running well on Debian12 VPS.
I'm also setup a Mining Pool and get some Problems ....
(Username and Passwort i changed already so don't worry)
Everytime i started the Pool i got:
ZMQ Unable to connect, Retrying

i can't figure out whats my fault :(
Here the bitcoin.conf of my Node:
listen=1
upnp=0
txindex=1
maxconnections=40
server=1
rpcthreads=4
rpcuser=xxx
rpcpassword=xxx
#rpcauth=
rpcauth=bitcoin:xxx
rpcallowip=0.0.0.0/0
rpctimeout=30
txconfirmtarget=6
mempoolexpiry=72
maxmempool=300
maxorphantx=100
debug=rpc
logips=1
limitfreerelay=10
minrelaytxfee=0.0001
zmqpubhashblock=tcp://127.0.0.1:28332
zmqpubhashtx=tcp://127.0.0.1:28333
[main]
rpcbind=185.218.x.x
[test]
rpcbind=0.0.0.0
[regtest]
rpcbind=0.0.0.0

thats the pool.env of my Pool:
BITCOIN_RPC_URL=http://185.218.x.x
BITCOIN_RPC_USER=xxx
BITCOIN_RPC_PASSWORD=xxx
BITCOIN_RPC_PORT=18332
BITCOIN_RPC_TIMEOUT=10000
BITCOIN_ZMQ_HOST="tcp://185.218.x.x:28332"

API_PORT=3334
STRATUM_PORT=3333

#optional telegram bot
#TELEGRAM_BOT_TOKEN=

#optional discord bot
#DISCORD_BOT_CLIENTID=
#DISCORD_BOT_GUILD_ID=
#DISCORD_BOT_CHANNEL_ID=

#optional
#DEV_FEE_ADDRESS=
# mainnet | testnet
NETWORK=mainnet

API_SECURE=false

ENABLE_SOLO=true
ENABLE_PROXY=false

BRAIINS_ACCESS_TOKEN=

PROXY_PORT=3333

the IP 185.218.x.x is the IP of the Node.
Can someone please help me to figure out where my mistake is?
Thanks a lot

When you specify the ZMQ bind, you are also specifying the address it will listen on. This means that if your machine has multiple IP addresses. only when it is reached through the specified IP address will the specified port be open.
You specified the ZMQ should bind on the localhost address 127.0.0.1. However, your pool configuration is trying to reach it via a different IP address of 185.218.x.x. As ZMQ is bound to a 127.0.0.1, it cannot respond to anything received on 185.218.x.x.
You can change this by binding to 185.218.x.x, or by binding to all IPs by using 0.0.0.0.

thats works for me ... thank you


text:
Before 2013, did multiples inputs necessarily belong to a single user?
I am all new to bitcoin and would like to make some studies for a datascience project.
I'm focussing on the visualization of some chains of transactions where I could visualize users by some color scheme or pictogram.
I gather that in 2013 the so-called mixers started to occur which allowed different users to feature as different inputs of a transaction.
My question is : can I assume that before 2013 in any transaction the different inputs all belonged to a single user?
If not was it the case in 2010 or in 2009?

Not categorically, no. I think it has pretty much always possible to apply signatures one-by-one, but it has become a lot less arduous over time to create multi-sender transactions. However, I would surmise that even today you would be right almost always to assume that all inputs are controlled by a single entity, especially if you special case obvious coinjoin transactions.

Ha great, thank you!

Is there a claim for the earliest multi-sender transaction? Maybe Satoshi and Hal tested it?

Interesting question! I don’t know of one from the top of my head, but that would make a great follow up question. Could you start a topic for that?

Thanks, I have done so at https://bitcoin.stackexchange.com/questions/124461/what-is-the-earliest-multi-sender-transaction


text:
What is the earliest multi-sender transaction?
Is there a claim for the earliest multi-sender transaction?
Maybe Satoshi and Hal tested it?

I think amaclin's answer illustrates that we can't easily distinguish between multi-sender transactions and single-sender multi-input transactions with certainty. It might have been better to ask about what murch called "obvious coinjoin transactions" in murch's answer to your earlier question on this theme.

Obviously my question requires some extra knowledge on top of transaction data, which is usually not available, but for very early transaction I expect some comments on forums to provide the extra data.

The earliest transaction with more than one input
https://mempool.space/tx/a3b0e9e7cddbbe78270fa4182a7675ff00b92872d8df7d14265a2b1e379a9d33
The earliest transaction with more than one output ( Satoshi -> Hal )
https://mempool.space/tx/f4184fc596403b9d638783cf57adfe4c75c605f6356fbc91338530e9831e9e16

Thank you. The first one is presumably all Satoshi though, not multi-sender, given the block numbers of the 50 coins from coinbase that led to the 1, the 10 and the 50 (Hal started mining at block 78) and there is the Patoshi pattern to allow guessing Satoshi's blocks.


text:
Is there a fast way to verify if a wallet is the correct one?
I recently read about a sneaky trick some hackers are using to steal money. They use a malicious software that can mess with your copy-paste when you’re dealing with wallet addresses. You copy an address, but when you paste it, it changes to a different one that looks almost the same — same start, same end - just a few different characters in the middle. And because of that, you end up sending your funds to the wrong place without even noticing.
It’s super easy to miss, especially if you’re busy and just trying to get stuff done quickly.

Is there a fast way to verify if a wallet is the correct one before doing a transaction (even with a copy/paste)?
Also, why don't exchanges implement better security measures?
Thanks.

Question 1:
Address spoofing and clipboard hijacking are a real threat (source).
The safest way would be to check each character and make sure they are the same. You can also initiate a transaction with a small amount and check on the blockchain if the wallet received it.
Another way would be to use a simple tool I created after a friend lost some of his funds.
The tool is called "Wallet Inspector". You can use it on the web or on iOS. It generates a unique 6-digit security code for wallet addresses, providing a quick way to verify address integrity.
If the codes match, you can be confident that the address hasn't been tampered with.
Question 2:
As for why exchanges don't implement better security measures, it's a complex issue. Many exchanges already have various security features in place, but they often have to balance security with user convenience.
That said, some exchanges are implementing features like address whitelisting and mandatory waiting periods for new addresses.


text:
Bitcoin Core linking error
I'm trying to build Bitcoin Source code v24.2 for Windows using WSL running Ubuntu (latest). I'm following the instructions instructions given the /doc/build-windows.md. I got linker errors:
/usr/bin/x86_64-w64-mingw32-ld: libbitcoin_node.a(libbitcoin_node_a-txindex.o):txindex.cpp:(.text+0x3009): undefined reference to `node::OpenBlockFile(FlatFilePos const&, bool)'
/usr/bin/x86_64-w64-mingw32-ld: libbitcoin_node.a(libbitcoin_node_a-coinstats.o):coinstats.cpp:(.text+0x13fc): undefined reference to `node::BlockManager::LookupBlockIndex(uint256 const&)'
/usr/bin/x86_64-w64-mingw32-ld: libbitcoin_zmq.a(libbitcoin_zmq_a-zmqpublishnotifier.o):zmqpublishnotifier.cpp:(.text+0x4c3d): undefined reference to `node::ReadBlockFromDisk(CBlock&, CBlockIndex const*, Consensus::Params const&)'
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:7029: bench/bench_bitcoin.exe] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory '/home/madguy/BitcoinSetup/bitcoin/src'
make[1]: *** [Makefile:18981: all-recursive] Error 1
make[1]: Leaving directory '/home/madguy/BitcoinSetup/bitcoin/src'
make: *** [Makefile:824: all-recursive] Error 1
root@MadGuy:/home/madguy/BitcoinSetup/bitcoin# grep -r "ReadBlockFromDisk" .

I did:
root@MadGuy:/home/madguy/BitcoinSetup/bitcoin# grep -r "ReadBlockFromDisk" .

and got (and some more):
./src/node/blockstorage.h:bool ReadBlockFromDisk(CBlock& block, const FlatFilePos& pos, const Consensus::Params& consensusParams);
./src/node/blockstorage.h:bool ReadBlockFromDisk(CBlock& block, const CBlockIndex* pindex, const Consensus::Params& consensusParams);
./src/node/blockstorage.cpp:bool ReadBlockFromDisk(CBlock& block, const FlatFilePos& pos, const Consensus::Params& consensusParams)

which means the headers and definitions exist (same goes for OpenBlockFile(...)). But they've no preprocessors either, I'm not sure what can cause this issue. Please help, it's kinda urgent.

Hi Ahsan, v24.2 has reached EOL earlier this year, is there a reason you're not building a more recent version? And do you really need to build from source as opposed to using the pre-built release binary?

@VojtěchStrnad Thank you, man!! At least you replied. But I solved it. I wasn't following any of the provided instructions in bitcoin/build_windows.md. In fact, I didn't everything is automated; I love that repo. Someone else asked for help, it wasn't mine.
THANK YOU, I don't know why. But I'm feeling good today. Hope you also have a good day.

@VojtěchStrnad and you didn't get mad like some other nerdies setting in the basement.

Fellow person with the same problem.
If you're building while not following the provided documentation at bitcoin/doc/build_windows.md or any platform whatsoever. You should follow whatever instructions are given in bitcoin/doc. You'll need cmake and libtool-bin and execute any libtool commands given as warnings during dependency build or you'll have to juggle (I don't know what this word means) errors.


text:
Tool for finding bitcoin transactions with specific characteristics
Just wondering if exists a tool to find transactions with certain parameters/characteristics; for example, a transaction with a SIGHASH ALL|ANYONECANPAY input and no OP_RETURN outputs.

If you run your own node and know how to write command-line shell scripts then you can build your own: just use the RPC to request blocks in JSON format and use a tool like jq to filter on the TX fields you're interested in and put the operation into a loop across the block range you're interested in.
Example of how to use RPC through bitcoin-cli command-line tool can be found here: Is it possible to get bitcoin address from Jan 2010 that still has balance and never send out transactions?


text:
Hash-Preimage Construction for a two p2pkh Input transaction?
When verifying a transaction, a Bitcoin node rebuilds the hash-preimage used to create each signature.
After serializing the hash-preimage for each input, the next step is to double-hash it and verify the signature for each input using the corresponding public key.
My question is: what is the exact serialized hash-preimage for each input? I haven't found clear guidance on how this should be constructed.
For example, take this transaction:
https://mempool.space/es/tx/592ea2010ec259252959b6047e227ceac6ffd0dbbe20bad71248960c18a5d890
This transaction uses the SIGHASH_ALL flag, meaning that each signature signs all inputs and outputs.
Should the hash-preimage include the scriptPubKey of every input, or only the scriptPubKey of the input being signed, leaving the other inputs with an empty script (0x00)?
Example of My Attempt:
Here is my attempt to construct the hash-preimage for signing both inputs:
01000000 - Version
02 - Number of inputs
19f4d40cb4204ad8429ec3d98d240661593edcfcfb8efcb3b684141ceb0df2e4 - First UTXO txid
00000000 - First UTXO output index
1976a914d52c9ce97c8dea0b71df687659a847a62c37732c88ac - scriptPubKey of first UTXO
ffffffff - Sequence for first input
22d07db06b68e4c15154db0ce0dd9c9dcd683a60a5117490451e0b52743492ca - Second UTXO txid
00000000 - Second UTXO output index
1976a91497ccdcca4f494b1bd652ad8f9d816b4bbb1108ac88ac - scriptPubKey of second UTXO
ffffffff - Sequence for second input
01 - Number of outputs
c047bfe54d000000 - Amount in satoshis
1976a91492512166101806dd6a695cbe56f883c3bea2a7e488ac - Output's scriptPubKey
00000000 - Locktime
01000000 - SIGHASH_ALL flag

When I try to construct the preimage for just one input (with the second input's scriptSig set to 0x00):
01000000 - Version
02 - Number of inputs
19f4d40cb4204ad8429ec3d98d240661593edcfcfb8efcb3b684141ceb0df2e4 - First UTXO txid
00000000 - First UTXO output index
1976a914d52c9ce97c8dea0b71df687659a847a62c37732c88ac - scriptPubKey of first UTXO
ffffffff - Sequence for first input
00 - Empty scriptSig for second input (set to 0x00)
ffffffff - Sequence for second input
01 - Number of outputs
c047bfe54d000000 - Amount in satoshis
1976a91492512166101806dd6a695cbe56f883c3bea2a7e488ac - Output's scriptPubKey
00000000 - Locktime
01000000 - SIGHASH_ALL flag

Am I correctly understanding how to set the scriptPubKey for non-signed inputs in the hash-preimage? Should I be clearing the scriptSig of other inputs as 0x00?
Thanks for any guidance!

Maybe this could help:
https://github.com/bitcoinjs/bitcoinjs-lib/blob/34e1644b5fb60055793ec3078f2e4f48b2648ca6/ts_src/psbt.ts#L1593

Yes, you are correct. When serializing the transaction for signing, the input you are targeting is set to the ScriptPubKey of the UTXO it is trying to spend, while the other inputs are left empty, This means that for an N input transaction, you would need to create N different serializations.

Thanks sr_gi!
After testing, I have managed to get the answer: for a two P2PKH-input transaction, the Hash-preimage has the following structure (for the first input):
01000000 - Version
02 - Number of inputs
c43959452301573767dc4c3430de6230a0c573414b204b74079d3a6a467e0f29 - First UTXO txid
00000000 - First UTXO index
1976a914df638f7f911f97a3dd764c1eaffebdc932ba6fe288ac - scriptPubKey of first UTXO
ffffffff - Sequence for first input
c43959452301573767dc4c3430de6230a0c573414b204b74079d3a6a467e0f29 - Second UTXO txid
01000000 - Second UTXO index
00 - Empty scriptSig for second input (set to 0x00)
ffffffff - Sequence for second input
01 - Number of outputs
1027000000000000 - Amount in satoshis
1976a9140983b6a0b7885957f8aa8ffb5de0d365c663b40088ac - Output's scriptPubKey
5fb93000 - Locktime
01000000 - SIGHASH_ALL flag

For the second input, the hash-preimage will set the first input scriptPubKey to 0x00 and the second input scriptPubKey to the corresponding scriptPubKey.


text:
Error message "mandatory-script-verify-flag-failed" when constructing a SigHash SINGLE | ANY transaction
One of the main possibilities that SigHash SINGLE | ANY (0x83) has, is to combine two or more transactions with this particular flag into one (Modularity).
That's the theory, but when it comes to practice, it is not working (at least for me); Let me explain:
I created this two transactions in testnet4, both spending only one input and sending it to only one output, both P2PKH:
Transaction 1:
0100000001bd20399c1f2d841f1e147ad2e03df1635f48fc5b8cdbb55ea3a86b14225e2743000000006a4730440220435c5161232d1b3215c44169f7c0328f1af1d40b4a8f2ec16795f442e9b80f7e022047fd3dd15421d2a0956a79e2141f3a72d2fe69c4e6c5bcc75047bd6d8bf019f5832102313b35fdf7af967980d29e684c508c90e11d99b10cab20ef477c9e63d9bf7bf7ffffffff0158980000000000001976a914c103e57c094061209b419e5ca559704a8a22f3f988ac00000000
Transaction 2:
0100000001d38e64afa39dd966f96e07bf56ae44bc3d402630771480f461389edff8a0051e010000006a4730440220645a7a25ebb00194a3b2f940d5618d021f513c2dd9bdc0504f623824e9845d8e0220077af01808e98b7ca97d2927243f9beb8cbd48e85d07dde26ea46c2e79d6c2ee832102e90fb489e28444cdfd85057fcce5f6d6ab1ba525acf570a7ffa355dbb7f21162ffffffff0128a00000000000001976a914d80f48340dd7ee6c7fae287342d3eeb1d4d887e288ac00000000
Then, I have combined them into one, making sure that outputs are in the correct index position:
0100000002bd20399c1f2d841f1e147ad2e03df1635f48fc5b8cdbb55ea3a86b14225e2743000000006a4730440220435c5161232d1b3215c44169f7c0328f1af1d40b4a8f2ec16795f442e9b80f7e022047fd3dd15421d2a0956a79e2141f3a72d2fe69c4e6c5bcc75047bd6d8bf019f5832102313b35fdf7af967980d29e684c508c90e11d99b10cab20ef477c9e63d9bf7bf7ffffffffd38e64afa39dd966f96e07bf56ae44bc3d402630771480f461389edff8a0051e010000006a4730440220645a7a25ebb00194a3b2f940d5618d021f513c2dd9bdc0504f623824e9845d8e0220077af01808e98b7ca97d2927243f9beb8cbd48e85d07dde26ea46c2e79d6c2ee832102e90fb489e28444cdfd85057fcce5f6d6ab1ba525acf570a7ffa355dbb7f21162ffffffff0258980000000000001976a914c103e57c094061209b419e5ca559704a8a22f3f988ac28a00000000000001976a914d80f48340dd7ee6c7fae287342d3eeb1d4d887e288ac00000000
When I verify the signatures with a code that I created (that also reconstructs the Hash-Preimage of each one; I have checked that the Hash-Preimage reconstructed for each input, is the same one as the Hash-Preimage of the transaction separately), the signatures are valid.
But when I try to broadcast it, the following error message appears: (code 26) Failed to broadcast transaction, reason: mandatory-script-verify-flag-failed (Signature must be zero for failed CHECK(MULTI)SIG operation)
What could be happening?


text:
Blockchain.com has frozen my Atomic wallet
I have been investing money into Bitcoin for almost a year now. I decided it was time to get some back. I use the Blantomic platform and asked them to send an amount to my Atomic wallet. I do not have a blockchain.com account. Shortly after they sent the amount I received an email from Blockchain-compliance.com saying I need to send 20% of the amount to verify and make my account liquid. After that it was to pay taxes. I am not sure if this is a scam and I am out of money. Does this sound like a scam or am I paranoid.

See: Is it normal to be asked for an advance fee on a withdrawal? Yes, it is definitely a scam.


text:
Someone giving me a bitcoin wallet address into the crypto app I just bought £150 worth bitcoin
Someone has told me they can help me make some money on crypto by buying some bitcoin and getting some good returns whilst they will get a 5% cut on profit.  They did say I could start small.  So I bought bitcoin on my crypto app they guided me step by step by screen shots.  Noe I have come to the wallet bit and they have given me a BTC wallet address to input on the app - a bitcoin address.  Now I am thinking are they going to get access to my app?  or is it safe for me to input the Bitcoin address they have given me?  I have checked the address they have given me it starts with bc1...... and is long.  Can you help?

This is 100% a scam. Don't send them any bitcoin.

After in putting the wallet address - does the bitcoins go to them?

Yes, if you send an amount of bitcoin to an address given to you by a third party, that amount will go to them. In this case I suspect not only will you never get that bitcoin back, but they will make up excuses to make you send them even more.

Thanks for this advice really appreciate it!

is it safe for me to input the Bitcoin address they have given me?

Doing anything they ask is unsafe. Continuing to communicate with them in any way is unsafe. Your computer may now be unsafe to use.
They have already tricked you and stolen your money. Addresses are public and putting an address into a wallet doesn't give you control over money sent to that address.
Bitcoin wallets don't contain money, they normally contain the numbers called private-keys that give control over money sent to addresses derived from those keys. Wallets are also a kind of window onto the blockchain and can show amounts of money associated with addresses - but if you don't have the private keys you cant spend that money.
The person you spoke with will encourage you to invest more and more. They will trick you by making the wallet show you huge profits that you really don't control.
When you want to withdraw your fake profits, they will falsely say you have to pay some special fee in advance.
When they have bled you dry they will drop contact and move on to other victims, ignoring you.
You have no way to recover money you gave them but can report fraud to your local police.


text:
No exp of trading need help bought bitcoin
I am a beginner and have recently purchased some bitcoin about £150 worth - can anyone give me a basic guide on how everything works, how to trade what to look out for.  i have bought this on the crypto app but have no idea how to trade LOL!  So looking for some advise starting from most basic! Thanks

Welcome to Bitcoin.stackexchange. You will find it helpful to take the [tour]. This website works best when you ask one question at a time and make the questions very specific. For example, you should say which "crypto app" you are using as there are hundreds, or maybe thousands of them. This question is likely to be voted for closure as too general - using a search engine can be a better way of getting answers to broad general questions. See New to Bitcoin, How to get started


text:
How to implement coinscrash.com model of deposit & withdraw flow for my crypto poker casino?
In coinscrash.com for each user they generate separate bech32 address for deposit & displays the deposited amount as balance in top of the navigation bar.
Similarly for withdraw they just ask for the amount to be withdrawn & receiver address for withdrawal.
Currently for our setup we're generating bech32 address with publicKey & privateKey using node JS. But for sending transaction to another bech32 wallet it's more complicated to calculate transaction fee & sochain.io costs too much.
How to implement this model of deposit & withdraw model for my crypto poker casino?

Could you be more specific what the problem is with sending to a new "bech32 wallet"? Do you mean that you move the funds around before the withdrawal and thus double the transaction cost, having issues predicting the weight of the transaction, or is it something else?


text:
How is the d-30ad... pseudo-address generated for OP_RETURN
How are the pseudo-addresses (e.g., "d-30ad...") used in Bitcoin's OP_RETURN transactions generated? Specifically what process or criteria are used to create these unique identifiers following the "d-" prefix? Here's an example transaction with one of these addresses, however I've noticed that they are not unique to Blockchair

Does this answer your question? Where other than blockchair have you seen this? I'm leaning towards this being generated randomly by some hash function that is not related to the transaction asm (such as any data after the OP_RETURN), or some combination of the txid + vout, but you will have to ask blockchair about this as it is definitely unique to their platform as far as I can tell. More importantly why would you want to know this, what does it solve?

Also a possible duplicate of this question


text:
RPC to Umbrel returns 403
I have mangad to get closer to my goal.
My Code
# rpc_user and rpc_password are set in the bitcoin.conf file
rpc_user = "umbrel"
rpc_pass = "pass"
rpc_host = "192.168.1.122"
rpc_port = "8332"
rpc_connection = f"http://{rpc_user}:{rpc_pass}@{rpc_host}:{rpc_port}"
rpc_client = AuthServiceProxy(rpc_connection, timeout=240)
num_blocks = rpc_client.getblockcount()
print(num_blocks)

Which should just print out the BlockHeight of the node. But I get a 403 - Forbidden
Error Message
Traceback (most recent call last):
  File "/media/donbolli/code/python/bitcoin/crawler/test.py", line 37, in <module>
    num_blocks = rpc_client.getblockcount()
  File "/media/donbolli/code/python/bitcoin/venv/lib/python3.10/site-packages/bitcoinrpc/authproxy.py", line 139, in __call__
    response = self._get_response()
  File "/media/donbolli/code/python/bitcoin/venv/lib/python3.10/site-packages/bitcoinrpc/authproxy.py", line 186, in _get_response
    raise JSONRPCException({
bitcoinrpc.authproxy.JSONRPCException: -342: non-JSON HTTP response with '403 Forbidden' from server

403 Forbidden means that your authentication is incorrect. Either your username or your password is incorrect, or both.

I double checked with my node and copied user and password from umbrel. still i get a 403

If you changed the config to use a different user and password, you will need to restart the node for it to take effect.

My research brought up, umbrel doesn't allow that. So i download Bitcoin Core and synced it. Now i get Connection refused (Errorno 111), what is missing?


text:
Bitcoin Core for Mac not syncing, can't access private key
Wondering if you can help me guys, I'm new to using bitcoins and recently downloaded Bitcoin Core to my MacBook. I stupidly sent bitcoins to my wallet without realising i had to sync first, but it's been syncing for a week now and still has 1 year 46 weeks to go.
I have the phassprase but the bech 32 adress I cannot see the private key
Please help

What is your question? What do you need help with? Anything that wouldn't be solved by waiting a day or two for sync to complete?

Hey, first of all thanks a lot for your response. The problem is that I started de sync on my mac disk (245GB) so it's imposible to finish. I'm trying to save my public and private keys of my bech 32 segwit adresses to close bitcoin core and install then on a external disk. I dont want to lose the bech 32 adresses because I already sent funds. Im worried

But I dont find the way to export or see the private key. Dumpprivatekey dont work with bench 23. And im a noob programming so it's a little bit dificult for me to use de debug terminal.

The Problem is the lack of disk space to complete the sync? In this case I would suggest configuring pruning in Bitcoin Core so that it only keeps the last x blocks, along with the info relevant to your wallet. This will allow you to finish the sync. And verify that the funds are there.

I can think of multiple possible avenues to resolve your issue:

FWIU, your computer has insufficient disk space to store the entire blockchain. You can configure your node to use pruning mode, so that it does not keep the entire blockchain. This way, you can just let your computer finish synchronize.
Stop Bitcoin Core. Back up the wallet in at least one additional place. Move the Bitcoin directory to your external disk. Configure your node to use the directory on your external disk as its data directory. Continue synchronizing from there.
Stop Bitcoin Core. Back up your wallet file in at least two other places. (Test the backup!) Uninstall Bitcoin Core. Install Bitcoin Core on your external disk. Import your wallet.

I would generally not recommend exporting keys, as you may end up just exporting the master key, but not the derivation path or something similar. If you are using the GUI, use the wallet export function from the GUI to create a backup. Preferably, first test your backup by means of starting another installation on the external disk or a second device before you delete anything.

I can use pruning mode during sync or I need to do before start? I tried to back up but I don't know if the file that creates is correct. Generates a .dat file, It's Ok? And finaly where can I find Bitcoin directory on mac finder? (srry for the dumb question and thanks for your time!)

It should create a wallet.dat. Regarding directory, check out: https://bitcoin.stackexchange.com/a/4007/5406. You can change it to pruning mode after it started synchronizing, but it’ll require restarting Bitcoin Core. I believe there should be a GUI option to set that.

Okay I find the directory but when I press back up wallet It opens to put a name, tag an specify where it goes, so It don't create a wallet.dat on bitcoin directory. And when I back up It saves all the receiptor adresses (3) to reopen again the 3 right? And with the backup file I also need the private key to import later? Or maybe ask me the phassprase?

The bitcoin directory already contains your original wallet.dat, so it does make sense for the backup to be stored in another directory. The wallet.dat and a backup contains the data to regenerate all private keys the wallet has ever derived and will ever derive and I would assume also any manually imported keys. If your wallet has a passphrase, you will need that later to import the backup

I have the wallet.dat file, now i'm trying to install Bitcoin core correctly on My external disk, how I have to do it properly to use my wallet.dat backup? Thanks

It should suffice to put it into the bitcoin directory of your new installation for it to load the wallet

Hi, thanks a lot for your help. I do what you say and a datadir to redirect correctly the blocks download and it works perfect. Thanks again


text:
How to create own crypto currency like bitcoin?
I would like to create a crypto currency like bit coin. So is there any step by step guide or procedure that will help me to create ones? It would be appreciated if you provide me that.


text:
What is wrong with this JSON-RPC? (via BTC.com)
The subscribe message works. But the authorization does not. I was wondering why I cannot get this to work. The expected outcome is to have a miner that is logged in and has no errors in authorization, subscription, or in nonce capture. I am get this as a response to the code below it:
Received: {"error":null,"id":1,"result":[[["mining.notify","0000ce121"],["mining.set_difficulty","0000ce122"]],"0000ce12",8]}
Authentication Response: {"error":null,"id":1,"result":false}
# Subscribe to mining notifications
    subscribe_message = '{"id": 1, "method": "mining.subscribe", "params": []}\n'
    sock.sendall(subscribe_message.encode())

    # Receive and print the response
    data = sock.recv(1024)
    print(f'Received: {data.decode()}')

    # Extract the subscription ID and extranonce
    response_data = json.loads(data.decode())
    subscription_id = response_data['result'][1]
    extranonce1 = response_data['result'][1][1]

    # Authenticate (replace 'username' and 'password' with your actual credentials)
    auth_message = '{"id": 2, "method": "mining.authorize", "params": ["{username}", "{password}"]}\n'
    sock.sendall(auth_message.encode())

    # Receive and print the authentication response
    auth_response = sock.recv(1024)
    print(f'Authentication Response: {auth_response.decode()}')

i just joined this pool. BTC.com I am perhaps unknowing of its proper edict in username and password for joining the pool. What, if any knowledge you might have about this pool that could help me?

Okay, so the auth_message need not have quotes around username and password apparently. That was the answer.


text:
70% of nodes accept Bloom filters, despite DoS attack vector?
Could someone explain why so many Bitcoin nodes allow Bloom filtering given that DoS attacks exist [1], [2] for such nodes?
According to bitnodes.21.co, right now 3879 nodes out of the total of 5515 Bitcoin nodes have Bloom filtering enabled.
Is it that these DoS attacks are not made any worse by Bloom filtering, as documented here by Mike Hearn? I quote:

Thus you can easily trigger exactly the same DoS attack by just using
  regular getdata requests on large blocks over and over. You don't need
  Bloom filtering. If you don't want to actually download the blocks
  just don't TCP ACK the packets and then FIN after a few seconds ....
  the data will all have been loaded and be sitting in the send buffers.
So even if I refine the attack and find a way to actually deny service
  to someone, the fix would have to apply to regular non-filtered block
  fetches too, which cannot be disabled.

Yeah looks like after reading Hearn's comments that the underlying issue is the fact that a client is able to request a bitcoin node to do some serious work by sending getdata requests. So the DoS vector isn't really in the bloom filter code as much as it is in the fact that bitcoin nodes allow anonymous connections to cause them to generate large work loads repeatedly. I have no idea if anyone's fixed this underlying problem.

Thanks! I don't think it's fixable: New nodes who join need to send getdata requests to old nodes to download the blockchain.

No problem. Thank you for asking the question as it informed me about a potential problem I was unaware. It seems to me this could be fixed by simply rate limiting the speed at which getdata requests are handled, but perhaps there are complexities I do not understand. Hearn says you send getdata requests over and over, so I would think the node should have some defensive logic here.

So I guess the answer is "Yes, nodes accept Bloom filters because filtering does not make existing DoS attacks any worse nor do they introduce any new DoS attacks."


text:
Can malicious payer deanonymize payee in Zcash?
Looking at both the Zcash original paper and the updated Zcash protocol specification, it seems that after Alice paid Bob, she can reveal to the world that she did so.
Alice can do so by revealing the randomness of the new coin commitments she generated, one of which contains Bob's PK and the amount. For example, in the image below, Alice reveals the elements highlighted in red (i.e., Alice's randomness) and purple (i.e., Bob's PK and the value), while the elements in yellow are already public.

The same attack works in the updated Zcash proposal (see Section 4.4 on page 19 in v2018-beta2.0, plus image below).

I just want to confirm that (1) I am not missing anything and this is possible and (2) it's potentially problematic. For example, if Alice paid Bob for some illicit goods or services, she can later reveal that she did so.
Thoughts would be welcome!

tl;dr Alice can reveal payments she made to Bob. She cannot reveal payments that others made to Bob, or reveal what (if anything) Bob does with the ZEC that Alice sent.

Revealing the pre-image of the note commitment only proves that Alice knows the pre-image. It does not prove that Alice sent the transaction, because the proof is replayable: once revealed, anyone can take the randomness and note data, and show it to someone else.
In order for Alice to prove to someone that she sent the transaction, she can do the following:

Write a message that contains:

The private key esk used to encrypt the note (randomness and value) to Bob.
Bob's payment address.
A challenge string chosen by the person Alice is convincing.

Sign the message using the private key joinSplitPrivKey corresponding to the joinsplitPubKey that was originally used to sign the transaction.

The signed message is proof that Alice currently has access to joinSplitPrivKey (because the challenge string is fresh). Assuming that joinSplitPrivKey is never revealed, Alice is indistinguishable from the person who created the transaction (i.e. either she or someone with her spending keys made the payment). This is what we call a payment disclosure, and is how e.g. you would prove to an exchange (or a third party dispute resolution service) that you did indeed pay them.
What you are describing is fundamentally the same issue that messaging apps have with end-to-end encryption: someone with intended access to the data can accidentally or intentionally reveal it. Removing this potential privacy leak would by definition mean that Alice cannot see some or all details about her own outgoing transactions, which is either a contradiction (in the Zcash model, Alice needs to be able to calculate a commitment from its pre-image in order to create valid transactions), or a completely unusable payment system!
Note however that even though Alice can prove that she sent a transaction to Bob, she cannot reveal anything about what Bob does with the note he received (because she does not have Bob's spending key, and thus can't calculate the nullifier that will would be revealed at spend time). Alice's ability to reveal information is limited to information she was ever able to view.

Thank you! I am not sure I follow why "removing this potential privacy leak would by definition mean that Alice cannot see some or all details about her own outgoing transactions". I could imagine designs where Alice knows all details about her transactions (maybe some of them are kept offline) but these details are completely "deniable:" they cannot be used to prove Alice ever sent coins to Bob. However, it seems this will prevent Alice from ever convincing Bob that she paid him, which could be problematic!

To add to @str4d's answer, here are links to public documentation and discussion of the payment disclosure feature:

Selective Disclosure & Shielded Viewing Keys - Zcash blog
Payment Disclosure (Experimental Feature)
An Introduction to Payment Disclosure in Zcash - Gareth Davies

Note that if Bob were concerned about this possibility, he could have given Alice a unique address to pay him, so that a revealed payment to that address could not be linked to his other addresses. This is suggested in section 3.1 of the protocol spec.
In Sapling, there is a new feature called "diversified payment addresses" that makes this usage more efficient: Bob can give out a unique  diversified address to each potential payer, and can still scan the block chain for incoming payments as efficiently as if he had only one address. We're planning for this to be integrated into the Zcash equivalent of BIP 32 (Hierarchical Deterministic Addresses), so that all secrets associated with a wallet can be backed up using a single seed.


text:
from which address when I send some bitcoin in bitcoin core?
I send some bitcoins using bitcoin core, but not know which address sending from?
for example:
address A: 1 bitcoin
address B: 2 bitcoins
3 cases:

sending <=1 bitcoin
sending >1, <=2 bitcoins
sending >2, <=3 bitcoins

@RedGrittyBrick, these answers are too complex. I just want simple answers of 3 cases(without fee). thanks anyway.

Does this answer your question? bitcoin-core automatic coin selection

I got it, options - wallet - enable coin control features.
Bitcoin Core v25.0.0


text:
getnewaddress vs. getrawchangeaddress
I'm using the Golang btcsuite/btcd library to write a Bitcoin app that creates custom OP_RETURN TXs in the blockchain.
I understand Bitcoin at a high-level (proof-of-work consensus, Merkle trees, membership, signatures, etc.), but I'm getting lost in the (unnecessarily?) complicated details of its RPC interface.
I was writing code in Go for creating a custom transaction with 1 input and 2 outputs (an OP_RETURN output and a change output). Here are my questions:

Is this considered a raw transaction? (If so, what exactly constitutes a raw transaction? Is it all transactions that don't get created via the sendfrom/sendmany/sendtoaddress RPC?)
What's the difference between getnewaddress and getrawchangeaddress at a semantic level? It seems that both generate a key-pair, but why is there a need for two different calls?
If I'm creating a raw transaction as described above, should I send the change to a getnewaddress key or a getrawchangeaddress key?

Thank you,
Alin

The rawtransaction interface accepts and returns "raw" hex encoded p2p compatible transactions. Using the non-rawtransaction methods (like sendtoaddres, will not give you the possibility to inspect or alter the created bytearray.
The getrawchangeaddress method will retrieve a key from the keypool and return its pubkey (encoded into an p2pkh address). Unlike getrawchangeaddress, gewnewaddress will create an address book entry that will allow you better ways to inspect/distinct what funds you have received with that address and therefore increases the chance of a reused address.
You should use getrawchangeaddress if you like to use the given address as a change output for your rawtransaction.

Thank you! Cool, so when people talk about a raw transaction they mean any custom-built transaction, as opposed to a fixed kind as suggested by APIs like this one. Did you mean to write "unlike" instead of "unless then"?

Question: If I use getrawchangeaddress to send the change, the change UTXO of the raw OP_RETURN TX I created doesn't show up in my listunspent query. Why is that? I would like to continue spending that change, by easily finding the UTXO for it. Should I use getnewaddress instead? Is there something wrong with that? This is where I am confused about the two.

(This is in regtest mode and I've generated a new block for the raw TX, plus another 10 blocks after it.)

Answer: Actually, I just realized the raw TX was not being included in a block because I set the transaction's fee to zero. I was able to mine it in a block and send the change to a getnewaddress PK. I am seeing the change in listunspent now. Will check if getrawchangeaddress works as well...

Both getnewaddress and getrawchangeaddress work except getnewaddress can associate the PK with an 'account.' However, since accounts are deprecated, I will stay away from them. Still unclear why both calls exist, especially if accounts are being deprecated: the corresponding SK needs to be added to the wallet by both of them, so what's the difference between them?


text:
Do Bitcoin miners verify validity of merge-mined Namecoin blocks?
I've been reading a little about merged mining as used in Bitcoin and Namecoin.
It seems like merged mining effectively eliminated Namecoin-only mining pools, right? Since Namecoin-only pools are mostly 'out-mined' by the Bitcoin merged mining pools, it seems pointless to start one.
In this case, I had a concern about the incentives of Bitcoin merged-miners to verify Namecoin blocks (i.e. check Namecoin transactions, name updates, etc.). So my question is: Do Bitcoin merged-miners verify the Namecoin block before starting to mine on the merged block? I assume they do.
I suppose if they don't verify the Namecoin part, they save some computation-time but they stand to lose the Namecoin reward, which is not that high anyway. Is the saved computation time ever worth losing the Namecoin block reward?

Where do you think they get the block from? Generally, the only way to tell what block to build on top of is to verify it.

I assume you mean the Namecoin block? I don't know who exactly advertises the Namecoin block to the Bitcoin miners. I am thinking that maybe instead of advertising the full block, just its hash is advertised. Or if the full block is advertised, the Bitcoin miners might want to save some cycles. So they might not verify the block content and just compute its hash, which they then incorporate into the Bitcoin block. That would be bad, and you're saying it doesn't happen. I suppose the Namecoin reward is always worth the time to verify the Namecoin block?

They have no choice but to verify it. The way you get a Namecoin block is by verifying it. There isn't some service they use that provides them with unverified blocks.

I would say they have another choice: to just hash the Namecoin block without verifying it (after putting in their private key for the block-reward) and incorporate the hash into the Bitcoin block.

What is "the Namecoin block" that you are talking about? Are you suggesting that they have some service that provides them with unverified Namecoin blocks? Who do you think provides such a service and what purpose do you think it serves? How would a person get a Namecoin block to hash without verifying it?

Here's how I think things work. Bitcoin miners are part of the Bitcoin P2P network and see all Bitcoin transactions. They use whichever transactions they want, verify them and build a Bitcoin block. To merge mine Namecoin, I suppose Bitcoin miners participate in the Namecoin P2P network as well (assuming there is a separate one). If they do, then they would get Namecoin transactions, verify them and assemble a Namecoin block (assuming they also store the Namecoin block-chain to verify those transactions against). Their incentive is to verify the Namecoin transactions for the Namecoin reward.

Exactly. They have no way to get a Namecoin block other than by monitoring the network and verifying what they see. You seem to be assuming the default is to get the information and that verifying it is extra. But without access to some trusted source, verification is necessarily already part of the process of getting the information.

Thank you David. I found a small discussion about the incentives of Bitcoin miners to verify Namecoin blocks in Princeton's recent draft book called
"Bitcoin and Cryptocurrency Technologies" (see "Merge mining and security" on pg 278-279 here). They point out one scenario in which small Bitcoin miners might skimp out on Namecoin verification to save some costs. This was the type of attack that I was worried about.

Small miners skimp out on all verification, including Bitcoin verification. They just use a mining pool.

A similar question was asked here, go through it, it should give an answer to your question.
A more detailed explanation is given on bitcoin wiki


text:
How to show every UTXOs of each address in bitcoin core?
We only get balance of all addresses in bitcoin core, but how to show every UTXOs of each address in bitcoin core?

I think you will be able to do what you want using listunspent. listunspent command

but listunspent only show the addresses whose UTXO is not zero. I want to list all addresses.

UTXO stands for unspent transaction output. So there is no zero UTXO. listunpsent will show you all UTXO from your wallet. The number of addresses is really large, you can consider it infinite in order to understand the magnitude. If you only want to see a list of addresses with 0 balance, you can just generate new addresses with getnewaddress. You can also use listtransactions to see all transactions that are already spent and get addresses from there.

The coin control features is the same with listunspent.


text:
Synchronize CEX.IO wallet address
I am expecting to receive funds into my CEX.IO BTC and Ethereum wallet addresses. The sender is asking me to synchronize the wallet address I want to send the funds to. I have requested CEX.IO support to sync the wallet. No answer so far. Is there any technical procedure I can run or execute to sync the CEX.IO wallets. Any directos on this topic would be appreciate it!. Best regards.

What do you mean with "synchronize the wallet address"? Do you think that an address can be valid for Bitcoin and Ethereum at the same time?

Related: https://bitcoin.stackexchange.com/a/93433/5406

There should be separate addresses, one for BTC and another for Ethereum. I have a guy that has a spyware system asking me to pay $300 to sync my CEX.IO, BTC, and Ethereum wallets to complete the procedure of fund transfers from the spyware system. These funds we're considered lost and this guy got a spyware system to recover the funds.

It sounds like someone is trying to scam you out of $300.

That's correct. I already pay $100 to recover the funds. Now, I want to recover the lost funds by myself. Another guy scammed me as well two years ago asking upfront payments to withdraw the invested funds. That's why I will give it a try by myself. First step. Get the private key of the trust wallet watch address where the funds are. Next, code the software and bypass the wallet. Then complete the withdrawal process. Any ideas or directions on what tools should I use?


text:
What technical reasons exist for off-chain transactions?
I'm trying to get a grasp on off-chain transactions, as they seem more common than I initially realized but they are not the way that I originally perceived bitcoin being used as an outsider looking in. What technical advantages exist for off-chain transactions?

Speed
An off-chain transaction can complete instantly, without waiting for confirmation.

Naming
With off-chain transactions, you can send Bitcoins to another user by referencing their username, rather than typing in an address.

Possibly lower transaction fees, possibly fewer on-chain transactions
Depending on how many transactions happen off-chain, it can save space on the blockchain. However, if there's only one off-chain transaction, it will end up consuming more space. (The coins will travel from User A -> Off-chain transaction provider -> User B instead of User A -> User B)

(Related to #3) It makes it feasible to have lots of very small transactions. For example, you might use off-chain transactions to pay someone a microfee for every minute that you use their wifi.

I think another big advantage is that off-chain payment-channel transactions enable micropayments.

Virtually nothing... once blockchain trimming and instant transactions built directly into the coin are implemented, which are much better ways to deal with the issue.

Bitcoin's block chain has always been able to be pruned, it's built into the design from day one. "Instant transactions" are possible with other systems around Bitcoin and are not ever going to be a feature of it.

Pruning does not magicially give infinite space on the blockchain. The size of the blocks doesn't change with it, nor do any of its limitations go away. All it does it make not every user store every block forever.

Is there really a way around that? There's things like UTXO commitments but I wouldn't really call that "trimming" in any sense.

Actually yes.. you can remove all the information but the account info say a few hundred blocks back, as well as the newest blocks, and then just keep a long chain of only block headers.  This would even satisfy miners. In my opinion it's enough.
We're working on something like this for Burst.. your average customer will only have to download something like 10kB of blockchain headers plus only the exact transactions he cares about to trustlessly be able to interact with Burst.

An whoever said we were solely talking about Bitcoin.. yeah the  Bitcoin developers aren't developing a fancy coin that allows Instant Transactions.  But Burst is!!


text:
Technically speaking, how are transactions recovered with a private key?
I have tried searching for this answer but I must not know the right keywords or something because I can't find an explanation anywhere.
There are 2^96 addresses per private key and ~865,000,000 transactions.
If I have a private key and want to recover my transactions, it would seem that I would have to either scan the ~500GB Blockchain to see if any of my addresses are used, or if any of the transactions were encrypted by my private key.
Even if I had the Blockchain on my local machine, this would be an incalculable amount of math.
With wallet software, like electrum, where I don't have the Blockchain stored locally, I don't even see how it is possible.
Yet somehow, if I put my private key into wallet software it is able to recover all of my transactions.
How does it technically work? When I use a wallet like electrum, does it have to send my private key to some super computer somewhere?

There is only one public key per private key, and a few ways to turn a public key into an address. Many private keys can be generated from a seed or master key, though, but you never expand them all. Where does you number 2^96 come from?

Recovering a wallet by scanning the entire blockchain isn't all that problematic. It might take a few hours, but it only needs to be done once when importing a wallet from backup. Also, while the blockchain size is indeed over 500 GB, you just need to look at output scripts to see if a transaction sends funds to your wallet, and then check whether or not a subsequent transaction spends an output from your wallet.
If you don't care about your transaction history and only want to know your current balance, you can just scan the UTXO set (which is a few gigabytes in size), though depending on what kind of backup you have you need to take the gap limit into account (otherwise you might fail to detect some funds).
If you use a light wallet like Electrum, the process of detecting your funds is delegated to an external service (such as an Electrum server), in which case you send it your addresses or an extended public key, not a private key. The service usually indexes output scripts (addresses) for fast lookup, meaning your backup can be restored in seconds, though possibly with a trust and privacy trade-off.

Can you elaborate on the method it uses? It can't possibly generate every address, how does it know if a specific transaction is to your wallet?

Wallets typically derive keys (and subsequently addresses) from a master seed using BIP32. There are many resources on this topic, helpful search terms include "hierarchical deterministic wallet" and "extended public key".


text:
How do I find out who sent me Bitcoin?
I'm working on creating a service where it will accept Bitcoins from a certain address and be able to manage the Bitcoin for that user.
I'm using Coinbase APIs and I can't find a simple way to find out who sent me BTC. I had someone send me some recently and I had no record of the transaction except in my downloadable transaction history, and even then it doesn't say anything about the transaction or who sent it which seems odd.
Ive extensively searched every Coinbase API and I haven't seen anything that looks promising. It looks like Coinbase API mirrors the blockchain APIs so I don't think there's any additional information I can find there.
There must be some way to get information regarding the transaction?

In Bitcoin, it is generally not possible to attribute transactions to a single person without external knowledge of someone claiming that they made the transaction. There are no "from" addresses, and although you can inspect the inputs, there can be multiple inputs each associated with different addresses, and each of which may belong to a different person.
Generally, identifying who paid a service is done by giving each payer a different unique address. Following the philosophy of no address reuse, you would even given a new address for each payment which would also help to track what specific payments are for.

I'm assuming there are multiple "from" addresses due to the nature of how Bitcoin works through miners verifying and processing the transaction?
Suppose there are two users and one of them sends me Bitcoin, both claim they sent the same amount. Even if I assign a unique address to the payer, how do I know which user actually sent it?

You don't care who actually sent it. Bob and Joe want to buy a widget from you, you get your wallet to generate two new receiving addresses and give Bob the first, Joe the second. If you receive a payment to the first address you send a widget to Bob. If you receive a payment to the second address you send a widget to Joe. If Mary, Sue or Joe pay you to send a widget to Bob, you have no way to know and no reason to care.

@Riz No, multiple "from" addresses are because Bitcoin uses a UTXO model, not an accounts model. Bitcoin does not have accounts, rather transactions create new UTXOs and consume existing UTXOs (created by previous transactions). Each UTXO is independent of every other UTXO, and multiple can be spent at the same time in a single transaction. As such, a transaction could spend UTXOs that all belong to different people, but they could also just be multiple UTXOs owned by a single person. These two cannot be distinguished from just looking at the transaction itself.

In the context of Bitcoin transactions and Coinbase API, it's important to understand that Bitcoin transactions are designed to be pseudonymous. This means that while transactions are recorded on the blockchain, which is a public ledger, they typically don't include personal information about the sender or recipient.
Coinbase, like many other cryptocurrency exchanges and wallet services, prioritizes user privacy and security. As a result, they often don't provide detailed information about the sender of a transaction, especially if it's incoming to your wallet.
However, there are a few potential ways to work around this limitation:
Requesting Information from Senders: If you're receiving Bitcoin from users of your service, you could implement a system where users include a unique identifier or some form of metadata when sending Bitcoin to your address. This could be a reference number, username, or any other data that helps identify the sender. However, this relies on the cooperation of your users and may not always be feasible.
Using Unique Addresses for Each User: Instead of having a single address for receiving Bitcoin, you could generate unique addresses for each user of your service. Many wallet providers and exchanges offer this feature. When a transaction occurs, you can link the incoming funds to the respective user based on the unique address used.
Exploring Coinbase's API Features: While Coinbase's APIs may not directly provide sender information for incoming transactions, they might offer other features or data that could help you identify transactions. For example, you could look into their wallet notifications or webhooks to receive real-time updates about transactions and potentially extract useful information from the transaction metadata.
Consider Compliance Solutions: Depending on your jurisdiction and the nature of your service, you may have legal obligations regarding Know Your Customer (KYC) and Anti-Money Laundering (AML) regulations. In such cases, you might need to implement additional identity verification processes for your users.
Ultimately, handling Bitcoin transactions in a way that suits your service's needs while respecting user privacy can be challenging. It often requires a combination of technical solutions, user education, and compliance measures to strike the right balance.

Generating a new wallet address through Coinbase does not seem to work, I get an invalid signature or "Account creation has been disabled." I have all permissions enabled. Maybe I need to use a different service...


text:
Enabling Bitcoin Core Wallet during configuration? Getting "method not found"
The problem: I'm getting "Method not found" when running bitcoin-cli getwalletinfo on a new install.
I've compiled and installed Bitcoin Core 26.0 from source on a Ubuntu system, following the standard method:
./autogen.sh
./configure
make
make install

I had to install a few missing modules (including gcc) but once done everything seemed to work correctly, and bitcoind is now happily downloading the blockchain.  I didn't specify any additional commands to the configure script.  However when I run bitcoin-cli getwalletinfo I get 'Method not found'.
If I run bitcoin-cli help |grep -i wallet then no results are returned.
I've checked and the disablewallet line in my bitcoin.conf is commented out.  I tried flipping it to 0 just in case, no difference.
Looking in config.log in the build directory, I see this:
configure:34644: checking whether to build bitcoin-wallet
configure:34654: result: yes
...
configure:34826: checking if wallet should be enabled
configure:34837: result: no

Is this what's causing the problem, and if so, how do I fix it?  Or if not, what else should I be looking at?

./configure will autodetect which dependencies are available on your system and it will enable or disable optional features accordingly. The wallet is one such feature. As the wallet depends on sqlite, and optionally on bdb, if neither dependency is available on your system, configure will setup a build that does not include wallet functionality.
This problem can be resolved by installing sqlite, reconfiguring, and recompiling.

In my case I installed BerkelyDB and recompiled.
sudo apt-get install libdb++-dev libdb-dev
Wallet functionality now supported.

I installed sqlite3 libd++-dev libdb-dev and then ran
make clean
sudo make uninstall

Still not getting wallet options on re-running
bitcoin-cli help
on signet.
Not sure what the error is now.
Apparently I had to add sqlite3.pc in my PKG_CONFIG_PATH , got that from looking at logs at config.log


text:
bitcoin synchonization problem
this is shiva from india andiam invested 200 dollors on bitcoin and iam try to sychonize bitcoincore from past 7 months it is very slow i cant unerstand what should i do now

Hi shiva, what kind of system are you running this on? (CPU, RAM, disk etc.)

Are you able to let the computer run continuously (24/7) with Bitcoin core running all the time?

Hey shiva, 7 months sounds really odd. Could you please add more information to your question how often you are running Bitcoin Core and how long? Do you shut down Bitcoin Core cleanly when you turn off your computer? Is it possible that you have rescan in the configuration and you start over every time? Are you sure that you got a legit copy of Bitcoin Core? Where did you download it?


text:
Bitcoin password help,
i had a bitcoin qt wallet in 2013, ii have 2 backup wallet.dat files still, i believe 1 was backup off windows laptop and the other off apple Mac.i no longer have either of the computers or any other files other than the 2 backups.
i have just restored these backups into bitcoin core V26 and synced to the blockchain and it shows the curent balance and all transaction history.
i am not great with computers so even trying to follow the btcrecovery method confuses me.
i have read most of the similar questions on here and none really cover what i need, obviously if i could get the passphrase recovered that would be perfect but i understand why they have made it not possible to do that.
however i have a fairly good idea of what my password is to the point where if i knew how many characters it was i would know what it was and would only need to nut out which were capitals and lower case. the passphrase is between 26 and 34 characters long, can someone tell me is it possible to narrow down to an exact number of letters which would give me the phrase and then just brute force to work out capitals lower case and special character,

Oh I seem to have the wallet addresses also from the transaction list it shows me my account.

is it possible to narrow down to an exact number of letters

Modern systems of encryption are designed so that the encrypted data does not reveal key length - doing so would be regarded as a weakness making the scheme more vulnerable.

The thing is if you want to recover your passphrase/password you will have to check all of the possibilities. 26-34 characters is a pretty big number. To crack it successfully you will need to have good hints and a lot of time(like a lot! if you want to do it by yourself). There is no way to just narrow down the possibilities(the info about password being between 26-34 characters is very useful though), although some memory recalling would be helpful. You can use btcrecover or some other tools to try to recover it


text:
Example working bitcoin.conf file
I am unable to connect to my server despite trying for days.  I have asked posted questions and my .conf file and my python code and despite this no one has been able to give me a reason why it is not connecting.
I am able to connect to the port using telnet 127.0.0.1 [port_num]
And I am decently sure I have opened the ports correctly.  Nestats -a shows them open.  I have opened them both for incoming and outgoing, both for my router, and for my firewall. And when I remove the rules, I immediately get a different error stating the host refused connections.   But when i have those rules engaged I instead get the following error...
(.venv) D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101>python bitcoin104.py
<bitcoinrpc.authproxy.AuthServiceProxy object at 0x0000021E5BB11730>
Traceback (most recent call last):
  File "bitcoin104.py", line 10, in <module>
    best_block_hash = rpc_connection.getbestblockhash()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 139, in __call__
    response = self._get_response()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 179, in _get_response
    http_response = self.__conn.getresponse()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 1344, in getresponse
    response.begin()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

I am trying use use the user password using rpcauth.. so in my .conf file I have something like...
rpcuser=myname
rpcauth=myname:fef852a5c3e764a3a4e7fcaa283b2f1f$eadb370e8d7705d8c960570c13b49372d1a3780aa3e1ea5013908271035d4ee9

I am not sure if this is the proper usage.
I got the hash using...
python ./rpcauth.py myname mypassword
I previous tried a setup like....
rpcuser=myname
rpcpassword=mypassword

What is interesting it I also sometimes get a connection without response error as well without having changed anything...
For instance...
PS D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101> python .\bitcoin104.py
>>
<bitcoinrpc.authproxy.AuthServiceProxy object at 0x000002482E142730>
Traceback (most recent call last):
  File ".\bitcoin104.py", line 10, in <module>
    best_block_hash = rpc_connection.getbestblockhash()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 139, in __call__
    response = self._get_response()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 179, in _get_response
    http_response = self.__conn.getresponse()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 1344, in getresponse
    response.begin()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 276, in _read_status
    raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without response
PS D:\PROJECTS\python38_env_bitcoin\src\hellobitcoin101> python .\bitcoin104.py
>>
<bitcoinrpc.authproxy.AuthServiceProxy object at 0x000001F7602E2730>
Traceback (most recent call last):
  File ".\bitcoin104.py", line 10, in <module>
    best_block_hash = rpc_connection.getbestblockhash()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 139, in __call__
    response = self._get_response()
  File "D:\PROJECTS\python38_env_bitcoin\.venv\lib\site-packages\bitcoinrpc\authproxy.py", line 179, in _get_response
    http_response = self.__conn.getresponse()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 1344, in getresponse
    response.begin()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 307, in begin
    version, status, reason = self._read_status()
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\http\client.py", line 268, in _read_status
    line = str(self.fp.readline(_MAXLINE + 1), "iso-8859-1")
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

i have searched online and there is very little it seems in terms of examples of a properly setup .conf file and corresponding python rpc authority call...
Like so...
rpc_connection = AuthServiceProxy("http://%s:%s@127.0.0.1:8334"%("myname","mypassword"))
best_block_hash = rpc_connection.getbestblockhash()
best_block_hash

It fails on the second line above, ie best_block_hash = rpc_connection.getbestblockhash()
At this point I think i have tried everything I can possible think of.
My gut is saying it is something I might be doing wrong with the user password perhaps. But I have tried many different configurations, many different passwords. Restarting the node each time and loading in the changed .conf file, and running the python script again.
And all I get is the timed out, or no response no matter what i do now..
Then if I mess with the port it I get the connection refused by host error instead.
If I could maybe see an example online of a properly setup .conf file with the exact rpsuser and rpcpassword text, and the same in the python rpc socket setup.  I have no idea if maybe I shouldn't be putting "" around something, or should be and I am not, and that has been the issue.  Or perhaps I need to be using the rpcauth in a different way...?
Any help would be greatly greatly appreciated...
Thanks for reading this far regardless.

Minimal bitcoin.conf
You quoted
  File "c:\users\hanso\appdata\local\programs\python\python38\lib\socket.py", line 669, in readinto
    return self._sock.recv_into(b)
socket.timeout: timed out

Pay attention to that last line

With this bitcoin.conf
rpcuser=today
rpcpassword=temporary

This python script, in a file named GetBlockCount.py
from bitcoinrpc.authproxy import AuthServiceProxy

rpc_user ="today"
rpc_password="temporary"
rpc_port = "8332"

rpc_client = AuthServiceProxy("http://%s:%s@127.0.0.1:%s"%(rpc_user, rpc_password, rpc_port), timeout=120)

block_count = rpc_client.getblockcount()
print(block_count)

Produces this result
C> python GetBlockCount.py
827496

Take careful note of that timeout=120 in the script.

Notes
The above result was produced on an old and ordinary PC purchased in 2015 running Windows 10. It has an i7 processor, 8GB RAM and an ordinary HDD (not SSD).
The RPC service was provided by bitcoin-qt with RPC enabled in settings, options, main.
At the time I ran the script, Bitcoin core was about 1500 blocks behind. The script took nearly two minutes to return a result. It also produced a timeout before I increased the bitcoinrpc library default from 30 to 120.
After Bitcoin Core caught up, I find the python script returns a result in about three seconds. It is faster on subsequent invocations.
So when experiencing timeout error messages, I would either increase the timeout in the script or wait until Bitcoin core has fully synchronised.
The above is somewhat anecdotal. I wouldn't put too much weight on a single informal experiment.

Related

Error: Unable to start HTTP server. See debug log for details
Strange re-connection problem with python-bitcoinrpc

Thanks man. I tried this, exactly word for word.  Changed my conf to match the rpcuser etc you posted. And then ran your python code exactly it hung for while, I assume 120 seconds, then it kicked out with the same error. I tried a couple more times, and now the exact same code doesnt' even wait 120 seconds, it comes back instantly now... which might be a clue what is going on but I have no idea what that might mean.
At this point I am completely lost with what I could be doing wrong.

I am going to completely uninstall my bitcoin core node, and start from scratch. It will take a day or two to reload the blockchain data.  I doubt it will help, but at this point I feel like I have tried everything.
Just to confirm I don't need to do anything but run bitcoin-qt.exe in the bitcoin directory to launch the node correct. Ie I don't need to be messing with the bitcoind..exe daemon exe?  I assume that the bitcoin-qt.exe is running the node?

Thanks again for the help.  I do appreciate it. Was hoping it would work...  I am reinstalling the node.  I am curious do I have to wait until the entire node is caught up, or can i try to connect to the node before it is up to date with the latest transactions?

I have added some notes to the end of my answer.

By the way, thanks @RedGrittyBrick, i felt like I tried everything, i cranked up the time out to like 2000 just to be sure, it didn't help, i also tried 120, and others. Nothing seems to work. I have frankly stepped away from it for awhile now, as it is just too frustrating, nothign seems to work, and what seems easy for others, doesn't work for me... I literally tried everything I can think of, and that other people suggested about a 100 times each now.  I just needed to step away as it was unbelievable frustrating...


text:
can you find bitcoins on an old pc that you have not used in years
My Dad has an old Windows pc on which he should have like 200 bitcoins from when bitcoin was new somewhere on it and i am trying to help him to find them but we dont know where to look and my dad can't remember where they are is there a way to find them using a usb or anything

Does this answer your question? I have lost my wallet, what can I do?


text:
Why do I keep corrupting the chain state after many RPC calls?
I’m experimenting with the blockchain, writing a block indexer / local node monitor.
In my testing I wrote a small python script that uses AuthServiceProxy.batch() to get the hash of each block.
After several hundred thousand, maybe even pushing a million RPC calls I’m finding my chain state is corrupted.
Bitcoin Core will just crash on load and I have to reindex the whole blockchain, this has happened twice now.
Is there something I’m doing wrong?

From my experience, your hardware needs to be in perfect operating condition or this type of thing can happen. No overheating, memtest, and quality ssds or nvmes (wouldn't trust hdds). Even the Bitcoin Core download page says a node is so intense it can reveal bad hardware that nothing else will and I can confirm that as I just had to replace a memory dimm in one of my desktops that wouldn't sync a bitcoin wallet.


text:
How to get descriptors private key
When I trie to use the dumpprivkey and then my address.i get an error it says it is only available for legacy users only how can I fix tht problem


text:
Is there a way to block 100s of emails monthly asking $67-120. "Transfer" fee; & is it poss.. 2collect mining frm all apps/sites prior usd w/ my email
Question one; I get literally hundreds of emails about I need to pull my crypto in 24 hours then they take u to the same green dominated site with kaylee in comments stating new then add up a bunch more u recieved daily for a month or so and want money. now theyve gotten clever and it's from a sender must pay for "transfer" or going back to sender purple being the new dominating color scheme. HOW DO I GET RID OF THEM . UHG. I didn't know but spent hours trying to figure how to get paid w/out giving them money. Thank goodness I did not but the loss of time thing is really not cool.
Second I have installed several mining apps & thenphone broke..Several! I lost 2 number has changed 2 or 3 x . I am not experienced just starting crypto but I've been mining it for a couple years here and there.Is there someway to go collect all the little stuff in these sites or apps ........
Also is it right to buy crypto through a mining app and then be told I cannot withdraw till I reach the minimum mining withdraw and then I threatened legal and they sent a metamask link w/instructions that say how to connect wallet but then I need a dollar in it in "tokens" & they are only giving me 1 (one)( they aren't GIVING me anything I paid for the majority.) so they say type 1. My account says btm 2.000020298 & that I have 11 hours to do so but when trying to do that they want 20 bucks I can't even put $1. in the account. & its only a flash of instructions once every couple days . I downloaded the instructions but it wont open . Can someone help please.
.


text:
How to validate a bitcoin transaction
Sorry for the noob question, but I just installed bitcoin core last week and am running a full node.
I want to verify a transaction I sent to a new coldcard wallet.  How do I do this in core?

If you want to see whether a transaction sending money to a cold wallet is received. You should be able to use an application provided for use with the cold wallet or just check the transaction ID and receiving address in any blockchain explorer. You could also add the address to any wallet as a watch-only address.
If you have a draft transaction in raw hex and want to see if it looks OK you might try some of the RPC APIs, maybe testmempoolaccept

Returns result of mempool acceptance tests indicating if raw transaction (serialized, hex-encoded) would be accepted by mempool.
This checks if the transaction violates the consensus or policy rules.


text:
I have x number of BTC in Coinomi transferred to an account under my name. I was told that I need liquidity funds What do I need to withdraw BTC
I have x number of BTC in Coinomi transferred to an account under my name.  I was told that I need liquidity  funds to withdraw them to my bank. Do I need a different wallet other than Coinomi.What do I need to withdraw BTC as the coins are visible but how do I tell if they are real,  I am completely without knowledge.


text:
I send sats to the Bitcoin Core wallet I created some time ago without knowing what I was doing and now facing issues with withdrawal I am clueless
Some time ago, I set up a Bitcoin core wallet and sent funds to that wallet a few times thinking they'll be safely stored. Well, they are, and probably too safely. I have a hard time getting funds out. I can only partially sign PSBT but I have no idea how that works. When I paste the copied PSBT with another wallet I created with Bitcoin Core I don't get any results. Basically, I have no idea what I'm doing.
I hope someone with know-how knowledge will tell by the few screenshots if the sats are forever locked or could still be saved somehow.
I played around with one of the addresses holding a portion of the funds.
disclaimer: I am pretty comfortable posting these images since it's not life-changing amount :) yet

What is your reason for creating Partially SIgned Bitcoin Transactions (PSBT) - for example, do you have a hardware wallet or some kind of airgapped cold wallet?

PSBT is the only option I have with this wallet. I have no idea what I chose when I created it but it was created with Bitcoin core so, it was not imported and also the wallet generates addresses so I assumed it's all good until I recently tried to move sats. Whoopsy :)

I don't have the hardware wallet but I'm building one. Still waiting for some parts. I was searching if an old Android phone can act as a air gaped wallet and there is an option with a blue wallet as Ben showed https://youtu.be/f-8elm8xCLs I tried that too but got confused with which device is my Bitcoin core wallet in his case.

It would be nice feedback if someone could tell if the HW is necessary in my case to retrieve the sats. My mission to build myself a DIY Jade has been aborted due to a lack of experience and knowledge with espressif and I really don't want to throw sats for an electronic HW wallet just to find out later it was not needed for my retrieval mission. thank you


text:
Is this a possible fraud with bitcoin wallet
how do I find out if I have a bitcoin wallet. I have been contacted by a company who say I have a wallet but I did not buy bitcoin

Does one of these answer your question? https://bitcoin.stackexchange.com/q/103891/5406, https://bitcoin.stackexchange.com/q/88910/5406

This description matches a common scam. If you respond, the criminals behind it will gain your confidence and trick you into paying some seemingly plausible but fake fees.


text:
17 characters missing from the end of WIF(u)
I'm missing 17 characters from the end of my uncompressed WIF.
Is there any hope of bruteforcing my private key? perhaps within one or two months?


text:
Why CPUMiner does not mine in spite of showing good hash rate?
I tried cpuminer to mine some nominal crypto. But, even after 12+hours , not even one share has been obtained. What is the problem in my command. Like, I used the command
./cpuminer -a scrypt -o stratum+tcp://scrypt.mine.zergpool.com:6533 -u <wallet> -p c=<Payoutcurrency>
and the terminal then shows
 New Block 3457268, Tx 0, Netdiff 0.14933, Job 3a                Diff: Net 0.14933, Stratum 256, Target 0.0039062 TTF @ 24.36 kh/s: Block 7h18m, Share 11m28s Net hash rate (est) 53.45 Mh/s
But, even after a long time, no acceptance of jobs or submissions take place, and i do not get any crypto.
As regards the low hash rate, I was able to mine a few satoshis using cheaper algorithms like ghostrider and randomx on xmrig on even less hash rates. But, with cpuminer i do not get even a single satoshi. How to rectify this? Or, can we run xmrig using scrypt or sha512256d algorithms on some pool?
Any hints?

@StackExchangeSupportsIsrael yes. though the question is related to more general cryptocurrency, but bitcoin mining is also implied.

Does "In the ASIC-age, is it worth starting mining Bitcoin at home?" answer your question?

@StackExchangeSupportsIsrael i actually made a few satoshis using my CPU in aday. Well, the rate is like 40 Sat/day, very less, but I got an idea how mining works. Maybe using USB based ASIC, I could scale it to 2000 sat/day

@Murch No, that question describes the practical cons of cpu mining, I wanted to know how it actually is done, and how I could scale it. In this case, I reached a workable solution for my cpu using cpuminer / xmrig. Now, I should be able to scale it to large shares using multiple CPUs/usb based asic stick

I just tried with the algorithms yespower and yescrypt and they worked, although the speed in yespower is very less. By the way, the reason I guess that the scrypt algorithm did not work was, because in the pool, they were designated for either GPU/ASIC/FPGA, which I did not use.


text:
Recover my coin from 2009-2011
How do I recover my Bitcoin and wallet when the email address I use is no longer existing in my phone that I bought it on doesn't work. I don't remember my seed phrase and I don't know the security key


text:
Does the `blocksonly` setting prevent other nodes from sending my node unconfirmed transaction, or does it simply cause my node to ignore them?
I've seen this option discussed, but I don't have a clear understanding of what is going on.  Since this setting appears to reduce node bandwidth by as much as 88%, I assume it somehow communicates to other nodes that this traffic is unwelcome, but I don't understand the mechanism.  Can someone elaborate?

This allows the bitcoin node to operate similar to a SPV client.  These nodes advertise their capabilities to other nodes as they peer with them.  A node running in blocksonly mode will indicate that it does not want to receive inv messages from any other peers.  Nodes can supply a bloom filter if they are interested in messages for specific address(es), this is also using the same mechanisms that were designed for SPV nodes.

Blocks only is not "similar to SPV". It's more like the opposite of SPV.

@Jannes: it uses a flag that was introduced in BIP37, to tell the peer "Do not send me transactions until I have uploaded a filter and tell you I'm ready", and then never send a filter.

Aah... in that way similar. I was thinking at a higher levels. Get it. Thanks for correcting me.

I've just read the complete description of the messages in Bitcoin Core, and it seems to me that there is no special announcement the node performs to tell its peers that it doesn't wish to be informed about transactions. I thought that it might announce its disinterest in transactions in the version message, but the service announcements don't seem to include such a flag.
Therefore, it seems to me that the node would just not follow up on inv messages announcing transactions, but only on inv messages announcing blocks. Especially, it doesn't supply any data on receiving a mempool message, but it does seem to serve getblocks requests.


text:
Transaction is unconfirmed
This transaction is unconfirmed, is there any thing I can do to make it faster? Is the BTC recoverable if it never gets confirmed?
f7d89f931080642a718575e0d103e8bc755dde6bae362c3d6e1c674b0d396284