fanquake e457513eb1
Merge bitcoin/bitcoin#23631: p2p: Don't use timestamps from inbound peers for Adjusted Time
0c85dc30e6b628f7538a67776c7eefcb84ef4f82 p2p: Don't use timestamps from inbound peers (Martin Zumsande)

Pull request description:

  `GetAdjustedTime()` (used e.g. in validation and addrman) returns a time with an offset that is influenced by timestamps that our peers have sent us in their version message.

  Currently, timestamps from all peers are used for this.
  However, I think that it would make sense to ignore the timedata samples from inbound peers, making it much harder for others to influence the Adjusted Time in a targeted way.
  With the extra feeler connections (every 2 minutes on average) and extra block-relay-only connections (every 5 minutes on average) there are also now plenty of opportunities to gather a meaningful number of timedata samples from outbound peers.

  There are some measures in place to prevent abuse: the `-maxtimeadjustment` parameter with a default of 70 minutes, warnings in cases of large deviations, only using the first 200 samples ([explanation](383d350bd5/src/timedata.cpp (L57-L72))), but I think that only using samples from outbound connections in the first place would be an additional safety measure that would make sense.

  See also issue #4521 for further context and links: There have been several discussions in the past about replacing or abolishing the existing timedata system.

ACKs for top commit:
  jnewbery:
    Concept and code review ACK 0c85dc30e6b628f7538a67776c7eefcb84ef4f82
  naumenkogs:
    ACK 0c85dc30e6b628f7538a67776c7eefcb84ef4f82
  vasild:
    ACK 0c85dc30e6b628f7538a67776c7eefcb84ef4f82

Tree-SHA512: 2d6375305bcae034d68b58b7a07777b40ac430dfed554c88e681a048c527536691e1b7d08c0ef995247d356f8e81aa0a4b983bf2674faf6a416264e5f1af0a96
2021-12-07 17:36:53 +08:00
..
2021-09-10 11:18:58 +08:00
2021-09-29 14:10:29 +02:00
2021-11-29 17:59:44 -05:00
2021-11-12 11:46:34 +01:00
2021-11-09 17:09:50 +00:00
2021-07-30 11:21:51 +02:00
2021-11-26 11:17:43 +01:00
2021-11-15 12:08:49 -05:00
2021-11-16 09:56:45 +01:00
2021-11-30 17:19:49 +01:00
2021-10-12 12:03:14 +13:00
2021-10-11 21:45:49 +10:00
2021-10-05 11:11:18 +02:00
2021-11-29 17:59:44 -05:00
2021-11-29 17:59:44 -05:00
2021-11-29 17:59:44 -05:00
2021-09-29 18:46:30 +02:00
2021-11-18 18:13:21 +01:00
2021-08-20 16:59:41 +02:00
2021-12-02 14:49:19 +00:00
2021-12-02 14:49:19 +00:00