<p>You can’t. Nodes don’t respond to messages about stale blocks because this would be a fingerprinting vector. </p>

CC BY-SA 4.0
2020-04-03T21:41:32.333Z
Forgive my ignorance, but in what ways could this fingerprint be abused? Mapping the connectivity of other nodes in the network? Mapping the network's distribution of competing chain tips? I can understand this for tor-only nodes, but for nodes with public IPs its not as obvious to me what the attack vector would be.
chytrik
CC BY-SA 4.0
2020-04-03T21:42:38.463Z
Giving nodes a persistent identity is clearly a bad idea for privacy. Being able to specifically link them to transmission broadcasts would be possible for example.
Claris
CC BY-SA 4.0
2020-04-03T21:45:03.133Z
Right, I was sort of on the right track then. That makes sense, thanks.
chytrik
CC BY-SA 4.0
2020-04-04T14:34:52.953Z
@Anonymous I understand that.  However, the Stifter et al 2018 paper states that "a limit of thirty days is imposed on how far back stale blocks will be served to peers."  They reference the Bitcoin source code on GitHub, but I haven't found the exact line yet.  So there must be a way to ask for stale blocks less than 30 days old, right?
fillup07
CC BY-SA 4.0
2020-04-04T15:24:08.680Z
https://github.com/bitcoin/bitcoin/blob/c8971547d9c9460fcbec6f54888df83f002c3dfd/src/net_processing.cpp#L63
Claris
CC BY-SA 4.0
2020-04-04T15:25:33.077Z
This only really applies to getdata. So you have to know the hash you’re asking for.
Claris
CC BY-SA 4.0
2020-04-04T16:24:01.070Z
Okay got it.  Thanks a lot!  The question is still open for someone to suggest an alternative method of gathering this data.  My hope now is that someone could post their "getchaintips" results, such as in [this post](https://bitcoin.stackexchange.com/questions/81173/obtaining-historical-orphaned-blocks-chaintips-without-old-node), despite the protocol that you pointed out.
fillup07
CC BY-SA 4.0
2020-04-02T21:38:00.040Z
2020-04-02T21:38:00.040Z
Claris
<p>I want data on as many stale blocks as possible. Is there a way to ask peer nodes to run "getchaintips" and get their results?</p>

<p>Previously, I used Blockchain.info's API call for this, but it seems like they deleted their data on stale blocks (even when I directly search for a known stale block's hash, no results are found).</p>

<p>I've also heard of using merged mining data to find extra stale blocks, per <a href="https://fc19.ifca.ai/preproceedings/41-preproceedings.pdf" rel="nofollow noreferrer">Stifter et al 2019</a>. This method was used to find many stale blocks that weren't propagated to nodes run by certain websites; the paper looks at stale blocks from <a href="https://tik-old.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf" rel="nofollow noreferrer">Decker and Wattenhoffer 2013</a>, Blockchain.info, Bitcoin.com, and ChainQuery.com. However, this method misses many stale blocks that those websites picked up.</p>

<p>My current best idea is to ask as many peers as possible for their "getchaintips", but I don't know how to do this. Can someone help, suggest an alternative method, and/or provide some of their own data?</p>

<json-rpc><blockchain.info><api><network><stale-block>
How do I ask other nodes for their stale blocks?
fillup07
# How do I ask other nodes for their stale blocks?

(Asked by: username_0 on 2020-04-02)

I want data on as many stale blocks as possible. Is there a way to ask peer nodes to run "getchaintips" and get their results?

Previously, I used Blockchain.info's API call for this, but it seems like they deleted their data on stale blocks (even when I directly search for a known stale block's hash, no results are found).

I've also heard of using merged mining data to find extra stale blocks, per [Stifter et al 2019](https://fc19.ifca.ai/preproceedings/41-preproceedings.pdf). This method was used to find many stale blocks that weren't propagated to nodes run by certain websites; the paper looks at stale blocks from [Decker and Wattenhoffer 2013](https://tik-old.ee.ethz.ch/file/49318d3f56c1d525aabf7fda78b23fc0/P2P2013_041.pdf), Blockchain.info, Bitcoin.com, and ChainQuery.com. However, this method misses many stale blocks that those websites picked up.

My current best idea is to ask as many peers as possible for their "getchaintips", but I don't know how to do this. Can someone help, suggest an alternative method, and/or provide some of their own data?

**Tags:** json-rpc, blockchain.info, api, network, stale-block


---

## 1 answers

### Answer by username_1 on 2020-04-02. Score: 1

You can’t. Nodes don’t respond to messages about stale blocks because this would be a fingerprinting vector.

> **Comments:**
> **username_2**: Forgive my ignorance, but in what ways could this fingerprint be abused? Mapping the connectivity of other nodes in the network? Mapping the network's distribution of competing chain tips? I can understand this for tor-only nodes, but for nodes with public IPs its not as obvious to me what the attack vector would be.  
> **username_1**: Giving nodes a persistent identity is clearly a bad idea for privacy. Being able to specifically link them to transmission broadcasts would be possible for example.  
> **username_2**: Right, I was sort of on the right track then. That makes sense, thanks.  
> **username_0**: @Anonymous I understand that.  However, the Stifter et al 2018 paper states that "a limit of thirty days is imposed on how far back stale blocks will be served to peers."  They reference the Bitcoin source code on GitHub, but I haven't found the exact line yet.  So there must be a way to ask for stale blocks less than 30 days old, right?  
> **username_1**: https://github.com/bitcoin/bitcoin/blob/c8971547d9c9460fcbec6f54888df83f002c3dfd/src/net_processing.cpp#L63  
> **username_1**: This only really applies to getdata. So you have to know the hash you’re asking for.  
> **username_0**: Okay got it.  Thanks a lot!  The question is still open for someone to suggest an alternative method of gathering this data.  My hope now is that someone could post their "getchaintips" results, such as in [this post](https://bitcoin.stackexchange.com/questions/81173/obtaining-historical-orphaned-blocks-chaintips-without-old-node), despite the protocol that you pointed out.  

---

