I know that white peers are active peers on the latest version and gray peers are either on an unsupported version or inactive.

In my understanding, my computer connected to all of these peers directly at some point (there is not a shared list of gray peers). Will I always have a copy of these peers? Where are they stored?

Until I2P is implemented, is a possible privacy concern that every person running a node will have their IP recorded by the other peers? Could a malicious individual attempt to correlate spending patterns with the times a node is online?

2 Answers 2


There is a limit of 5000 entries (P2P_LOCAL_GRAY_PEER_LIST_LIMIT), and they are stored in p2pstate.bin, which is in your daemon's data directory (typically $HOME/.bitmonero).

It is a privacy leak if you connected via clearnet. If that is a problem to you, you can run your node through Tor (see the instructions near the end of README.md in the monero tree).

Note that there being a limit for the gray peerlist does not have (much) privacy implications since you can assume a network adversary will not keep a limit.


Your p2pstate.bin file will keep a record of IP address from your peers. These peers will know that certain IP's are running Monero nodes but will not be able to tell who is creating Monero transactions.

Since there are many nodes online 24/7 a correlation analysis could not prove that a specific node was involved in a given transaction. If a DDoS attack took out a large percentage of the network simultaneously such an analysis would be easier, however plausible deniability for remaining nodes would remain.

Users that do not want to reveal their IP (prior to Kovri) are already able to run Monero in a VM through a Tor Whonix Gateway

Running the Monero node through tor does not take much bandwidth nor is slow, as it is done in real-time as blocks are coming. The only slow thing is the initial synchronization as it requires downloading ~8GB or more of data. Also, it wont be full node, as other nodes will not be able to connect to you.

  • 1
    What about a hypothetical situation where a user makes 10 transactions over a year, starting the node for just enough time to make the transaction before closing the program?
    – sgp
    Commented Aug 6, 2016 at 0:52
  • 2
    Assuming an adversary can always see your IP when your node is online (I'm not sure they will, it depends on propagation of seen IPs by other nodes), then the adversary can infer you were online because you sent a tx, and thus can infer you sent one of the txes that were mined during or shortly after your online time. While the "start being online" time may propagate quickly over the network, "stop being online" does not, and the adversary would need to try to connect to you to see when your node goes offline.
    – user36303
    Commented Aug 6, 2016 at 19:22
  • 2
    If the adversary does all this, then it still has to work out which txes are yours, if assuming one per online time period is fine (there might be none, or more than one). Since those txes aren't linked to a standard address, and since amounts are obscured (and soon totally invisible with ringct), it's guesswork which are which.
    – user36303
    Commented Aug 6, 2016 at 19:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.