Files
bitcoin/src
W. J. van der Laan 14ba286556 Merge bitcoin/bitcoin#23695: p2p: Always serialize local timestamp for version msg
fa1dc9b36a p2p: Always serialize local timestamp for version msg (MarcoFalke)

Pull request description:

  Currently we serialize the local time when connecting to outbound connections and the "adjusted network" time when someone connects to us.

  I presume the reason is to avoid a fingerprint in case the local time is misconfigured. However, the fingerprint still exits when:
  * The local time goes out-of-sync after timedata is filled up, in which case the adjusted time is *not* adjusted. See comment in `src/timedata.cpp`. (In practise I expect no adjustment to happen after timedata is filled up by one entry more than half its size).
  * The local time is off by more than 70 minutes. See `DEFAULT_MAX_TIME_ADJUSTMENT`. While there is a warning in this case, the warning might be missed by the node operator.
  * The adjusted time is poisoned by an attacker. This is only a theoretical concern after commit e457513eb1.

  Using the adjusted time does help in a the case where the local time is off by a constant less than 70 minutes and the node quickly connects to 5 outbound peers to retrieve the adjusted time.

  Still, I think using `GetAdjustedTime` here gives a false sense of security. It will be better for node operators to instead set the correct time.

ACKs for top commit:
  naumenkogs:
    ACK fa1dc9b36a
  laanwj:
    Code review ACK fa1dc9b36a
  w0xlt:
    crACK fa1dc9b

Tree-SHA512: 70a0f4ab3500e6ddcde291620e35273018cefd1d9e94b91ad333e360139ed18862718bb1a9854af2bf79990bf74b05d95492f77d0747c7b9bdd276c020116dcb
2021-12-17 21:44:59 +01:00
..
2021-11-26 11:17:43 +01:00
2021-12-07 14:48:49 -05:00
2021-12-02 13:16:18 +07:00
2021-11-29 17:59:44 -05:00
2021-12-11 18:32:17 +01:00
2021-12-11 18:32:17 +01:00
2021-12-10 08:29:24 -05:00
2021-11-29 17:59:44 -05:00
2021-11-18 18:13:21 +01:00
2021-12-02 14:49:19 +00:00
2021-12-02 14:49:19 +00:00