Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

backport: Merge bitcoin#24237, 23631, 24609 #6309

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from

Commits on Nov 27, 2024

  1. Merge bitcoin#24237: test: Avoid testing negative block heights

    fad8154 test: Avoid testing negative block heights (MarcoFalke)
    
    Pull request description:
    
      A negative chain height is only used to denote an empty chain, not the height of any block.
    
      So stop testing that and remove a suppression.
    
    ACKs for top commit:
      brunoerg:
        crACK fad8154
    
    Tree-SHA512: 0f9e91617dfb6ceda99831e6cf4b4bf0d951054957c159b1a05a178ab6090798fae7368edefe12800da24585bcdf7299ec3534f4d3bbf5ce6a6eca74dd3bb766
    MarcoFalke authored and vijaydasmp committed Nov 27, 2024
    Configuration menu
    Copy the full SHA
    abfa8c0 View commit details
    Browse the repository at this point in the history
  2. Merge bitcoin#23631: p2p: Don't use timestamps from inbound peers for…

    … Adjusted Time
    
    0c85dc3 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](https://github.com/bitcoin/bitcoin/blob/383d350bd5107bfe00e3b90a00cab9a3c1397c72/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 dashpay#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 0c85dc3
      naumenkogs:
        ACK 0c85dc3
      vasild:
        ACK 0c85dc3
    
    Tree-SHA512: 2d6375305bcae034d68b58b7a07777b40ac430dfed554c88e681a048c527536691e1b7d08c0ef995247d356f8e81aa0a4b983bf2674faf6a416264e5f1af0a96
    vijaydasmp committed Nov 27, 2024
    Configuration menu
    Copy the full SHA
    e101fd8 View commit details
    Browse the repository at this point in the history
  3. Merge bitcoin#24609: Clarify -maxtimeadjustment that only outbound pe…

    …ers influence timedata
    
    1bba72d Clarify in -maxtimeadjustment that only outbound peers influence time data (Jon Atack)
    
    Pull request description:
    
      bitcoin#23631 changed our adjusted time to only take into account time from outbound peers.
    
      Update `-maxtimeadjustment` to clarify this for users.
    
    ACKs for top commit:
      MarcoFalke:
        cr ACK 1bba72d
      mzumsande:
        code Review ACK 1bba72d
      brunoerg:
        crACK 1bba72d
    
    Tree-SHA512: ad610ab3038fb83134e21d31cca952ef9ac926e88992ff93023b7010f2499f9a4d952e8e98a0ec56f8949872d966e5ffdd01a81e6b6115768f1992bd81be7a56
    MarcoFalke authored and vijaydasmp committed Nov 27, 2024
    Configuration menu
    Copy the full SHA
    e237301 View commit details
    Browse the repository at this point in the history