bitcoind – Why couldn't a transaction be found with bitcoin-cli after 11 confirmations?

I have made a new address bitcoin-cli getnewaddress::

39WqU8NJJasFjmaS2J4424UGVJn8Tqvh82

Then I initiated a transfer from an online service.
The transaction is displayed with 11 confirmations:
https://www.blockchain.com/btc/tx/cc09117205515389ed618acd31b6e691e363446c5ce5cce94b24cc74701fbd74

Now I'm trying to check this with bitcoin-cli:

$ bitcoin-cli listreceivedbyaddress 0 true true 39WqU8NJJasFjmaS2J4424UGVJn8Tqvh82
[
  {
    "address": "39WqU8NJJasFjmaS2J4424UGVJn8Tqvh82",
    "amount": 0.00000000,
    "confirmations": 0,
    "label": "",
    "txids": [
    ]
  }
]

$ bitcoin-cli gettransaction cc09117205515389ed618acd31b6e691e363446c5ce5cce94b24cc74701fbd74
error code: -5
error message:
Invalid or non-wallet transaction id

$ bitcoin-cli -getinfo
{
  "version": 190100,
  "protocolversion": 70015,
  "blocks": 481192,
  "timeoffset": -1,
  "connections": 10,
  "proxy": "",
  "difficulty": 923233068448.9053,
  "chain": "main",
  "walletversion": 169900,
  "balance": 0.00000000,
  "keypoololdest": 1584106964,
  "keypoolsize": 997,
  "unlocked_until": 0,
  "paytxfee": 0.00000000,
  "relayfee": 0.00001000,
  "warnings": ""
}

What can I do to check the local success of the transaction?

Why hasn't the balance increased?

The node is configured with prune=4096.

How can I determine the number of confirmations for a Bitcoin transaction as JSON data?

According to blockchain.info, 4,198 confirmations for the following Bitcoin transaction had been received at the time of this writing. Then specify the following Bitcoin transaction as JSON (Ref: transaction on blockhain.info as JSON). How can I determine the number of confirmations?

Enter the image description here

Transaction as JSON

{
   "ver":1,
   "inputs":(
      {
         "sequence":4294967295,
         "witness":"",
         "prev_out":{
            "spent":true,
            "spending_outpoints":(
               {
                  "tx_index":0,
                  "n":0
               }
            ),
            "tx_index":0,
            "type":0,
            "addr":"1BiYTVfoAWpEf5vTCVyWgWzsbdTbi3X4Lb",
            "value":4371338,
            "n":1,
            "script":"76a914758c92328cb8f0d5a9e2bc6a1b27b6fdf83fa86588ac"
         },
         "script":"483045022100f6d8e0e386079721dc286d25c88c5cddd8733ee3d93247f3ff0127e8aa7dcb9a02206ce2b7e524e4796e93688442dcc95bb7c8e2bcf3a46ac660633fac3e0becfd5e012102a9dba5ef4653f48190bf6b12130f001fe14cda8b8e2e06bf2e96b9cf3c442503"
      }
   ),
   "weight":760,
   "block_height":615893,
   "relayed_by":"0.0.0.0",
   "out":(
      {
         "spent":true,
         "spending_outpoints":(
            {
               "tx_index":0,
               "n":0
            }
         ),
         "tx_index":0,
         "type":0,
         "addr":"3BMEXDcDGPjGGR6MHiFiHRPfz6LeGeYYM3",
         "value":4366812,
         "n":0,
         "script":"a91469f3746a2b4246695de6ae4fd0d2c27221b1cd9d87"
      }
   ),
   "lock_time":0,
   "size":190,
   "block_index":0,
   "time":1580790109,
   "tx_index":0,
   "vin_sz":1,
   "hash":"406fe52a8cb99cfdc3ed6cc3e2ef461608e369943a9c1f4132421d3de425e66c",
   "vout_sz":1
}

Confirmations – Shortest and longest block interval time ever recorded in Bitcoin

(This data is current via block 535276.)

Based on Block timestamp (which need not be exact) the longest difference between successive blocks is 463,160 seconds (5 days, 8 hours, 39 minutes, 20 seconds) between blocks 0 and 1. The second longest is 90532 seconds (1 day 1 hour 8) minutes 52 Seconds) between blocks 15323 and 15324.

For "shortest", since timestamps are not strictly enforced and can be accidentally or deliberately falsified, a block can have an earlier timestamp than its predecessor, by up to 2 hours (7200 seconds). In this case the time difference is negative. This has happened 13828 times. The most negative difference is -7125 seconds (1 hour 58 minutes 45 seconds) between blocks 156113 and 156114.

There were 222 blocks with the same timestamp as their predecessor, making a difference of 0.

The script that I used to collect this data is located at https://github.com/neldredge/bitcoin-blocks.

The actual block intervals are difficult to determine precisely because we are not sure when the individual blocks were actually dismantled. Some sites like blockchain.info record the first time their node received the block, but there is an unknown propagation delay between when a block is actually dismantled and when another node receives it (though for a well-connected knot) it's probably not much longer than 1 second) It is also possible to receive blocks out of order, so the difference in reception times can also be negative. In addition, such data is obviously not available for early blocks prior to the existence of the site in question.

In principle, it might be possible to search for the longest and shortest difference between the reception times, but I don't know how to get this data in bulk.

bitcoin core – calculate transaction confirmations

I'm writing an API for one of my systems that can check if a monitored address is receiving Bitcoin. I can already check if the address is on the newly received block. Store them in a database for future use as UTXO. It is managed fairly well.

I just ran into a problem. How can I calculate the transaction confirmations stored in my database (without using an external API) since raw blocks do not contain height information? It doesn't make sense in my architecture that RPC requires it.

Confirmations – What happens if your transaction is never confirmed?

The status of a transaction is binary in relation to the current chain tip. Either it has been confirmed and the money has changed hands, or it has not been confirmed and the money is still in the sender's wallet.

So if a transaction is never confirmed, the money stays with the sender. Since this question has been asked, the demand for block storage space has increased towards the block size limit, and most wallets offer additional help to resolve such a situation. For example, Bitcoin Core added the calls -abandontransaction and -zapwallettxes, and will now activate Opt-in RBF with the upcoming version 0.14.0. Electrum added Opt-in RBF some time ago. With the Bitcoin Wallet app you can scan the chain again and forget about unconfirmed transactions etc.

However, please note that each signed transaction is valid until at least one of the inputs used is used for another transaction. If the fees drop too much later, your transaction may still be confirmed when it is resent. Therefore, after a failed transaction, you should make sure that you move all coins involved once.

See also this related question: Why is my transaction not confirmed and what can I do about it?

Transactions – How Bitcoin Mining Contributes to Confirmations?

When miners create valid blocks of transactions, they must spend a significant amount of computation to generate a hash of the block header that meets the difficulty requirements. Blockchain is a chain of blocks in which each block header points to the hash of the header of the previous block. The hash of the block header is calculated using all elements of the block, including the transactions contained therein. If a component of the block is changed in any way, a completely different hash is generated.

The confirmation is a direct indication of the difficulty of removing a transaction from the blockchain. If a transaction is contained in a block behind which 5 blocks are purged, an attacker wishing to exclude that particular transaction must perform "work" (calculate hashes that match the difficulty request) to clear the block that killed the transaction and contains all subsequent blocks afterwards. This is a total of 6 blocks, so this particular transaction should have 6 acknowledgments.

If the transaction is cleared in a block with sufficient acknowledgments, the cost of excluding this transaction is very high because the attacker would have to do the arithmetic. During the mining process, the miners contribute to the finality of the transactions through their extensive computing work.

Email confirmations send high volume

At 5000 a day, you're more looking for a VPS to have your own mail queue, send IP, and so on. And I have not seen many providers with VPS broadcast restrictions. This number can lead to spam complaints. I had times when a complaint was filed in which it was intended to delete the email, and there were also inadvertent complaints. They are also throttled by the receiving e-mail server after a certain number of recipients receive the same e-mail.

With that in mind, I'd recommend a service like mailgun or sendgrid for sending high-volume forms-based messaging. This has the advantage that the service does not depend on a host, that multiple outbound IP addresses are used, so throttling is not such a big problem and sending is done through API or SMTP. Disadvantages would be an additional service that you would have to pay.

Are non-permitted banners for purchase confirmations allowed?

Here is a context:

A user with a free account edits a draft in our text editor. In order to publish the draft (they are automatically saved), they must acquire a plan.

If you click on the "Upgrade" button, they will be forwarded to the checkout process. What is the best way to confirm the purchase after completing the checkout?

  1. A screen with the message "Buy was successful" and a CTA that brings you back to the editor?

  2. Or bring it back to the text editor, but add a banner notification at the top stating that the purchase was successful?

I would think Option 1 would be the best way to do that. IMO, a purchase is a big deal / big decision, therefore guarantees your own single page instead of just a banner?

Confirmations – Bitcoin has been successfully debited from the sender's wallet, but has not reached the beneficiary's wallet

It is not clear what the situation looks like, but in my estimation you are the sender and the recipient does not confirm a payment you have made.

I assume that you have checked the credited address 1Gouzjo9Jav1k4AmRoUJJMzidVfnMoSieS agrees with the one you should pay to, and the amount is the same as the amount invoiced.

The address 1Gouzjo9Jav1k4AmRoUJJMzidVfnMoSieS obtained in transaction b36157a7ca9630a88d98125fca91de81f488ef7d9a60f9e57af055d4d91f7a50 0.02661900 BTC. This transaction was written and confirmed in the blockchain more than a day ago. Since this is the right address, The recipient was paidWhatever they claim. Second, the money has already been spent again, which means that You have to be fully aware that the money has arrived,

Assuming you have paid the right address, the problem lies with the recipient:
Either they gave you the wrong address that you paid correctly, and someone else received the money (unlikely), they do not understand that it was already paid, or that their payment was incorrectly posted (unlikely, as you have already tried to pursue them), or They lie to you,

You should contact them and strongly confirm that the requested address has been paid (after verifying that it is the right address) and ask them to verify that their systems are working properly. Maybe they will then be asked to "suddenly find your payment".

In no case send them more money unless they confirm that your payment was successful and deliver their page of agreement. Often, scammers will find nonsensical excuses to get you to pay even more. If they do not confirm your payment, you may have to decide to write off the money or sue them.