<p>You can either do a sanity check as also suggested in Anonymous' answer: The age of the last block shouldn't be more than a few minutes old (depending on the coin protocol), usually not more than twice the aimed .</p>

<p>The other option is to compare the id of the last block against one or several well connected websites which respectively would be your coin's blockexplorer.com or blockchain.info. If that website's latest block has the same block id as yours, it is reasonable to assume that you are up to date.</p>

CC BY-SA 3.0
2013-10-03T13:34:37.027Z
2013-10-03T13:34:37.027Z
Murch
<blockquote>
  <p>Is it true, that nothing embedded into default bitcoind for that task?</p>
</blockquote>

<p>There's not really any way of knowing if you have the most recent block, or the network is just being unlucky. You as a user can make some discrimination though, and it's fairly easy. Just look at the most recent block you have, and decide if the timestamp is sane. </p>

<pre><code>$ bitcoind getinfo 
{ ... "blocks" : 260984, ... }

$ bitcoind getblock 260984
{ ... "time":1380583774, ... }
</code></pre>

<p>Seems reasonable enough, so I can assume my bitcoind is up to date. </p>

CC BY-SA 3.0
2013-10-01T03:21:21.880Z
May be its time to open ticket in bitcoind's development system, is there any ticket system?
apex_predator
CC BY-SA 3.0
2013-10-01T04:08:53.817Z
https://github.com/bitcoin/bitcoin/issues
Anonymous
CC BY-SA 3.0
2013-10-01T05:47:14.027Z
Thank you. Submit: https://github.com/bitcoin/bitcoin/issues/3044
apex_predator
CC BY-SA 3.0
2013-09-30T23:31:16.107Z
2013-09-30T23:31:16.107Z
Anonymous
<p>You can't. That is what confirmations are for. The "latest" block is largely irrelevant due to the possibility of an honest <a href="https://en.bitcoin.it/wiki/Chain_Reorganization" rel="nofollow">reorganization</a> or the rare case of a 51% attack.</p>

<p>Each confirm essentially brings up the confidence in all previous blocks towards  99.9999...%. The blockchain is one of the major innovations that Bitcoin has over other distributed signed contract systems. </p>

<p>This process is explained in detail on pages 6-8 of the <a href="http://bitcoin.org/bitcoin.pdf" rel="nofollow">bitcoin.pdf whitepaper</a>.</p>

<p>Edit: If you can't check your client against a trusted peer's client, you can look at the timestamp on the last block, but it doesn't paint the whole picture. Examining the network hashrate and current difficulty to get an idea of the mining environment at the time is necessary to estimate how long, in human time, it will take for the computers to mine the next block. </p>

<p>There are cycles of high and low difficulty that come about due to fluctuating network hashrate that cause large changes in the amount of time it takes to find a block. Since your question involves references to an alt coin chain, which are known to have network hashrate changes in the range of +/- 1000%, it would be helpful for you to take into account when the last difficulty retarget was, the average time of the last few blocks compared to the "expected" block timer, and the estimated network hashrate.</p>

<p>In general, checking the timestamps of the previous 6 blocks against your local clock is good enough for Bitcoin. Coins with lower expected block timers will require more confirmations to be 99.9% sure those blocks aren't going to be orphan branches or attempted 51% attacks.</p>

CC BY-SA 3.0
2013-10-03T21:07:58.987Z
2013-10-03T21:25:23.140Z
2013-10-03T21:25:23.140Z
bvpx
<p>I catch myself on the thought, that I don't know how to verify that block chain downloaded or not yet.</p>

<p>How exactly I can be sure that all is ok with bitcoind or altcoins?</p>

<p>E.g. "<strong>terracoind getinfo</strong>" brings: </p>

<pre><code>terracoind getinfo

{   
    "version" : 80002,
    "protocolversion" : 70001,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 142718,
    "timeoffset" : -6,
    "connections" : 8,
    "proxy" : "",
    "difficulty" : 13505.04606600,
    "testnet" : false,
    "keypoololdest" : 1380559952,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "errors" : ""
}
</code></pre>

<p>Or <strong>novacoind</strong>:</p>

<pre><code>novacoind getinfo             

{   
    "version" : "v0.4.4.5-2-gde717f9-dirty-beta",
    "protocolversion" : 60010,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "newmint" : 0.00000000,
    "stake" : 0.00000000,
    "blocks" : 19043,
    "timeoffset" : -15,
    "moneysupply" : 384762.67195300,
    "connections" : 16,
    "proxy" : "",
    "ip" : "128.73.179.81",
    "difficulty" : 97.09844140,
    "testnet" : false,
    "keypoololdest" : 1380559917,
    "keypoolsize" : 101,
    "paytxfee" : 0.01000000,
    "errors" : ""
}
</code></pre>

<p>Here are 3 answers about bitcoind:</p>

<p><a href="https://bitcoin.stackexchange.com/questions/10859/how-to-check-bitcoind-block-chain-download-progress-level">How to check Bitcoind block chain download progress level</a></p>

<p>And only about downloading side part block-chain info. <strong>Is it true, that nothing embedded into default bitcoind for that task?</strong></p>

<alternatives>
How to be sure that whole of block chain downloaded?
apex_predator
# How to be sure that whole of block chain downloaded?

(Asked by: username_0 on 2013-09-30)

I catch myself on the thought, that I don't know how to verify that block chain downloaded or not yet.

How exactly I can be sure that all is ok with bitcoind or altcoins?

E.g. "**terracoind getinfo**" brings:

```
terracoind getinfo

{   
    "version" : 80002,
    "protocolversion" : 70001,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "blocks" : 142718,
    "timeoffset" : -6,
    "connections" : 8,
    "proxy" : "",
    "difficulty" : 13505.04606600,
    "testnet" : false,
    "keypoololdest" : 1380559952,
    "keypoolsize" : 101,
    "paytxfee" : 0.00000000,
    "errors" : ""
}

```

Or **novacoind**:

```
novacoind getinfo             

{   
    "version" : "v0.4.4.5-2-gde717f9-dirty-beta",
    "protocolversion" : 60010,
    "walletversion" : 60000,
    "balance" : 0.00000000,
    "newmint" : 0.00000000,
    "stake" : 0.00000000,
    "blocks" : 19043,
    "timeoffset" : -15,
    "moneysupply" : 384762.67195300,
    "connections" : 16,
    "proxy" : "",
    "ip" : "128.73.179.81",
    "difficulty" : 97.09844140,
    "testnet" : false,
    "keypoololdest" : 1380559917,
    "keypoolsize" : 101,
    "paytxfee" : 0.01000000,
    "errors" : ""
}

```

Here are 3 answers about bitcoind:

[How to check Bitcoind block chain download progress level](https://bitcoin.stackexchange.com/questions/10859/how-to-check-bitcoind-block-chain-download-progress-level)

And only about downloading side part block-chain info. **Is it true, that nothing embedded into default bitcoind for that task?**

**Tags:** alternatives


---

## 3 answers

### Answer by username_1 on 2013-10-03. Score: 1

You can either do a sanity check as also suggested in username_2' answer: The age of the last block shouldn't be more than a few minutes old (depending on the coin protocol), usually not more than twice the aimed .

The other option is to compare the id of the last block against one or several well connected websites which respectively would be your coin's blockexplorer.com or blockchain.info. If that website's latest block has the same block id as yours, it is reasonable to assume that you are up to date.


---

### Answer by username_2 on 2013-09-30. Score: 0

> Is it true, that nothing embedded into default bitcoind for that task?

There's not really any way of knowing if you have the most recent block, or the network is just being unlucky. You as a user can make some discrimination though, and it's fairly easy. Just look at the most recent block you have, and decide if the timestamp is sane.

```
$ bitcoind getinfo 
{ ... "blocks" : 260984, ... }

$ bitcoind getblock 260984
{ ... "time":1380583774, ... }

```

Seems reasonable enough, so I can assume my bitcoind is up to date.

> **Comments:**
> **username_0**: May be its time to open ticket in bitcoind's development system, is there any ticket system?  
> **username_2**: https://github.com/bitcoin/bitcoin/issues  
> **username_0**: Thank you. Submit: https://github.com/bitcoin/bitcoin/issues/3044  

---

### Answer by username_3 on 2013-10-03. Score: 0

You can't. That is what confirmations are for. The "latest" block is largely irrelevant due to the possibility of an honest [reorganization](https://en.bitcoin.it/wiki/Chain_Reorganization) or the rare case of a 51% attack.

Each confirm essentially brings up the confidence in all previous blocks towards 99.9999...%. The blockchain is one of the major innovations that Bitcoin has over other distributed signed contract systems.

This process is explained in detail on pages 6-8 of the [bitcoin.pdf whitepaper](http://bitcoin.org/bitcoin.pdf).

Edit: If you can't check your client against a trusted peer's client, you can look at the timestamp on the last block, but it doesn't paint the whole picture. Examining the network hashrate and current difficulty to get an idea of the mining environment at the time is necessary to estimate how long, in human time, it will take for the computers to mine the next block.

There are cycles of high and low difficulty that come about due to fluctuating network hashrate that cause large changes in the amount of time it takes to find a block. Since your question involves references to an alt coin chain, which are known to have network hashrate changes in the range of +/- 1000%, it would be helpful for you to take into account when the last difficulty retarget was, the average time of the last few blocks compared to the "expected" block timer, and the estimated network hashrate.

In general, checking the timestamps of the previous 6 blocks against your local clock is good enough for Bitcoin. Coins with lower expected block timers will require more confirmations to be 99.9% sure those blocks aren't going to be orphan branches or attempted 51% attacks.


---

