mirror of https://github.com/bitcoin/bitcoin
master
27.x
28.x
26.x
25.x
24.x
v27.2
v27.2rc1
v28.0
v28.0rc2
v28.0rc1
v26.2
v26.2rc1
v27.1
v27.1rc1
v23-final
v27.0
v25.2
v26.1
v25.2rc2
v26.1rc2
v27.0rc1
v25.2rc1
v26.1rc1
v26.0
v26.0rc3
v26.0rc2
v26.0rc1
v24.2
v25.1
v24.2rc1
v25.1rc1
v22-final
v25.0
v23.2
v24.1
v23.2rc1
v25.0rc2
v24.1rc3
v25.0rc1
v24.1rc2
v0.21-final
v24.1rc1
v0.20-final
v0.19-final
v0.18-final
v23.1
v24.0.1
v22.1
v22.1rc2
v23.1rc2
v24.0
v24.0rc4
v23.1rc1
v22.1rc1
v24.0rc3
v24.0rc2
v24.0rc1
v23.0
v23.0rc5
v23.0rc4
v23.0rc3
v23.0rc2
v23.0rc1
v0.20.2
v0.17-final
v0.16-final
v0.21.2
v22.0
v0.20.2rc3
v0.21.2rc2
v22.0rc3
v0.21.2rc1
v22.0rc2
v22.0rc1
v0.20.2rc2
v21.99-guixtest1
v0.21.1
v0.21.1rc1
v0.21.0
v0.19.2
v0.21.0rc5
v0.21.0rc4
v0.20.2rc1
v0.19.2rc1
v0.21.0rc3
v0.21.0rc2
v0.21.0rc1
v0.20.1
v0.20.1rc1
v0.20.0
v0.20.0rc2
v0.20.0rc1
v0.19.1
v0.19.1rc2
v0.19.1rc1
v0.19.0.1
v0.19.0
v0.19.0rc3
v0.19.0rc2
v0.19.0rc1
v0.17.2
v0.17.2rc2
v0.17.2rc1
v0.18.1
v0.18.1rc1
v0.18.0
v0.18.0rc4
v0.18.0rc3
v0.18.0rc2
v0.18.0rc1
v0.17.1
v0.17.1rc1
v0.17.0.1
v0.17.0
v0.14.3
v0.15.2
v0.16.3
v0.17.0rc4
v0.17.0rc3
v0.17.0rc2
v0.17.0rc1
v0.16.2
v0.16.2rc2
v0.16.2rc1
v0.16.1
v0.16.1rc2
v0.16.1rc1
noversion
v0.16.0
v0.16.0rc4
v0.16.0rc3
v0.16.0rc2
v0.16.0rc1
v0.15.1
v0.15.1rc1
v0.15.0.1
v0.15.0
v0.15.0rc3
v0.15.0rc2
v0.15.0rc1
v0.14.2
v0.14.2rc2
v0.14.2rc1
v0.14.1
v0.14.1rc2
v0.14.1rc1
v0.10.5
v0.11.3
v0.14.0
v0.14.0rc3
v0.14.0rc2
v0.14.0rc1
v0.13.2
v0.13.2rc1
v0.13.1
v0.13.1rc3
v0.13.1rc2
v0.13.1rc1
v0.13.0
v0.13.0rc3
v0.13.0rc2
v0.13.0rc1
v0.12.1
v0.12.1rc2
v0.12.1rc1
v0.12.0
v0.12.0rc5
v0.12.0rc4
v0.12.0rc3
v0.12.0rc2
v0.12.0rc1
v0.10.4
v0.11.2
v0.10.4rc1
v0.11.2rc1
v0.11.1
v0.10.3
v0.10.3rc2
v0.11.1rc2
v0.11.1rc1
v0.10.3rc1
v0.11.0
v0.11.0rc3
v0.11.0rc2
v0.11.0rc1
v0.9.5
v0.9.5rc2
v0.9.5rc1
v0.10.2
v0.10.2rc1
v0.10.1
v0.10.1rc3
v0.10.1rc2
v0.10.1rc1
v0.10.0
v0.10.0rc4
v0.10.0rc3
v0.10.0rc2
v0.9.4
v0.10.0rc1
v0.9.3
v0.9.3rc2
v0.9.3rc1
v0.9.2.1
v0.9.2
v0.9.2rc2
v0.9.2rc1
v0.9.1
v0.9.0
v0.9.0rc3
v0.9.0rc2
v0.9.0rc1
v0.8.6
v0.8.6rc1
v0.8.5
v0.8.4
v0.8.4rc2
v0.8.3
v0.8.2
v0.8.2rc3
v0.8.2rc2
v0.8.2rc1
v0.8.1
v0.8.0
v0.8.0rc1
v0.7.2
v0.7.2rc2
v0.7.1
v0.7.1rc1
v0.7.0
v0.7.0rc3
v0.7.0rc2
v0.7.0rc1
v0.6.3
v0.6.3rc1
v0.6.2.2
v0.6.2.1
v0.6.2
v0.6.1
v0.6.1rc2
v0.6.1rc1
v0.6.0
v0.6.0rc6
v0.6.0rc5
v0.6.0rc4
v0.5.3
v0.6.0rc3
v0.5.3rc4
v0.6.0rc2
v0.6.0rc1
v0.5.2
v0.5.1
v0.5.1rc2
v0.5.1rc1
v0.5.0
v0.5.0rc7
v0.5.0rc6
v0.5.0rc5
v0.5.0rc4
v0.5.0rc3
v0.5.0rc2
v0.5.0rc1
v0.4.0
v0.4.00rc2
v0.4.00rc1
v0.3.24
v0.3.24rc3
v0.3.24rc2
v0.3.24rc1
v0.3.23
v0.3.23rc1
v0.3.22
v0.3.22rc6
v0.3.22rc5
v0.3.22rc4
v0.3.22rc3
v0.3.22rc2
v0.3.22rc1
v0.3.21
v0.3.21rc
v0.3.20.2
v0.3.20
v0.1.5
v0.1.6test1
v0.12-final
v0.13-final
v0.2.0
v0.2.10
v0.2.11
v0.2.12
v0.2.13
v0.2.2
v0.2.4
v0.2.5
v0.2.6
v0.2.7
v0.2.8
v0.2.9
v0.2rc2
v0.3.0
v0.3.1
v0.3.10
v0.3.11_notexact
v0.3.12
v0.3.13
v0.3.14
v0.3.15
v0.3.17
v0.3.18
v0.3.19
v0.3.1rc1
v0.3.2
v0.3.20.01_closest
v0.3.20.2_closest
v0.3.3
v0.3.6
v0.3.7
v0.3.8
v0.3rc1
v0.3rc2
v0.3rc4
v0.8-final
v0.9-final
${ noResults }
8 Commits (f1d807e383942ae20e080174d33ac17afd649351)
Author | SHA1 | Message | Date |
---|---|---|---|
MarcoFalke |
fac23c2114
|
scripted-diff: Bump copyright headers
The previous diff touched most files in ./test/, so bump the headers to avoid having to touch them again for a bump later. -BEGIN VERIFY SCRIPT- ./contrib/devtools/copyright_header.py update ./test/ -END VERIFY SCRIPT- |
3 years ago |
John Newbery | 2095df7b7b |
[addrman] Add Add_() inner function, fix Add() return semantics
Previously, Add() would return true if the function created a new AddressInfo object, even if that object could not be successfully entered into the new table and was deleted. That would happen if the new table position was already taken and the existing entry could not be removed. Instead, return true if the new AddressInfo object is successfully entered into the new table. This fixes a bug in the "Added %i addresses" log, which would not always accurately log how many addresses had been added. p2p_addrv2_relay.py and p2p_addr_relay.py need to be updated since they were incorrectly asserting on the buggy log (assuming that addresses are added to addrman, when there could in fact be new table position collisions that prevent some of those address records from being added). |
3 years ago |
Jon Atack |
b69a106bcd
|
test: use test_framework.p2p P2P_SERVICES in functional tests
|
3 years ago |
Pieter Wuille | 5648138f59 |
Randomize the order of addr processing
|
3 years ago |
Pieter Wuille | 0d64b8f709 |
Rate limit the processing of incoming addr messages
While limitations on the influence of attackers on addrman already exist (affected buckets are restricted to a subset based on incoming IP / network group), there is no reason to permit them to let them feed us addresses at more than a multiple of the normal network rate. This commit introduces a "token bucket" rate limiter for the processing of addresses in incoming ADDR and ADDRV2 messages. Every connection gets an associated token bucket. Processing an address in an ADDR or ADDRV2 message from non-whitelisted peers consumes a token from the bucket. If the bucket is empty, the address is ignored (it is not forwarded or processed). The token counter increases at a rate of 0.1 tokens per second, and will accrue up to a maximum of 1000 tokens (the maximum we accept in a single ADDR or ADDRV2). When a GETADDR is sent to a peer, it immediately gets 1000 additional tokens, as we actively desire many addresses from such peers (this may temporarily cause the token count to exceed 1000). The rate limit of 0.1 addr/s was chosen based on observation of honest nodes on the network. Activity in general from most nodes is either 0, or up to a maximum around 0.025 addr/s for recent Bitcoin Core nodes. A few (self-identified, through subver) crawler nodes occasionally exceed 0.1 addr/s. |
3 years ago |
Vasil Dimov |
7593b06bd1
|
test: ensure I2P addresses are relayed
This test would fail if `CNetAddr::IsRelayable()` returns `false` for I2P addresses, given that this test node does not have I2P connectivity. |
3 years ago |
Vasil Dimov |
86742811ce
|
test: use NODE_* constants instead of magic numbers
We just assigned `NODE_NETWORK | NODE_WITNESS` to `nServices` a few lines above. Use that for verifying correctness instead of `9`. |
3 years ago |
Vasil Dimov |
353a3fdaad
|
net: advertise support for ADDRv2 via new message
Introduce a new message `sendaddrv2` to signal support for ADDRv2. Send the new message immediately after sending the `VERACK` message. Add support for receiving and parsing ADDRv2 messages. Send ADDRv2 messages (instead of ADDR) to a peer if he has advertised support for it. Co-authored-by: Carl Dong <contact@carldong.me> |
4 years ago |