Commit graph

173 commits

Author SHA1 Message Date
Byron Hambly
b4405ba453 Merge e9262ea32a into merged_master (Bitcoin PR bitcoin/bitcoin#26750) 2025-03-31 16:37:52 +02:00
Byron Hambly
6274a3e6a7 Merge bcee94d107 into merged_master (Bitcoin PR bitcoin/bitcoin#26359) 2025-03-04 11:18:33 +02:00
Byron Hambly
ca0a68b350
Merge UP TO 551c8e9526 into merged_master (UP TO bitcoin/bitcoin#26349)
Includes FIXMEs for a few functional tests
2025-02-05 09:50:17 +02:00
Byron Hambly
da5b3cf786 Merge 9ba73758c9 into merged_master (Bitcoin PR bitcoin/bitcoin#24697)
Also removes the redundant redeclaration of CheckMinimalPush from
interpreter.h that was moved to script.h in f4e289f384
2024-10-20 20:19:04 +02:00
James Dorfman
1586451cf8 Merge d8ae504448 into merged_master (Bitcoin PR bitcoin/bitcoin#25245) 2024-09-09 19:19:40 +00:00
Byron Hambly
47626b5a64 Merge 623745ca74 into merged_master (Bitcoin PR bitcoin/bitcoin#23912) 2023-06-14 15:44:11 +00:00
Byron Hambly
7f13f4f8c4 Merge e08770bed1 into merged_master (Bitcoin PR bitcoin/bitcoin#22780) 2023-04-11 05:50:26 +00:00
James Dorfman
cdbedba214 Merge dbcb5742c4 into merged_master (Bitcoin PR bitcoin/bitcoin#20541) 2023-04-11 01:40:34 +00:00
Hennadii Stepanov
306ccd4927
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
- 2021: f47dda2c58
- 2020: fa0074e2d8
- 2019: aaaaad6ac9
2022-12-24 23:49:50 +00:00
Gleb Naumenko
a60f729e29 p2p: Drop roles from sendtxrcncl
This feature was currently redundant (although could have provided
more flexibility in the future), and already been causing confusion.
2022-11-10 09:21:57 +02:00
Gleb Naumenko
3fcf78ee6a p2p: Announce reconciliation support
If we're connecting to the peer which might support
transaction reconciliation, we announce we want to reconcile
with them.

We store the reconciliation salt so that when the peer
responds with their salt, we are able to compute the
full reconciliation salt.

This behavior is enabled with a CLI flag.
2022-10-17 12:35:43 +03:00
MarcoFalke
fa64dd6673
refactor: Use type-safe std::chrono for addrman time 2022-07-26 11:06:10 +02:00
MarcoFalke
fa243e9313
Remove no-op TIME_INIT on deser
Assigning TIME_INIT to nTime was needed to fully re-initialize a dirty
object where the deserialization might skip nTime.
See https://github.com/bitcoin/bitcoin/pull/19020/files#r427620111

Now that the without-nTime logic is removed in commit
dbcb5742c4 and commit
e08770bed1, the logic here can be removed
as well.

Also, remove confusing and redundant preprocessor code.

Also, remove no longer needed version.h include, which was needed for
INIT_PROTO_VERSION.
2022-05-30 13:55:39 +02:00
Hennadii Stepanov
f47dda2c58
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-

Commits of previous years:
* 2020: fa0074e2d8
* 2019: aaaaad6ac9
2021-12-30 19:36:57 +02:00
MarcoFalke
fa9c075f72
doc: Remove incorrect INIT_PROTO_VERSION from nTime comment 2021-08-23 18:53:34 +02:00
Pieter Wuille
5d47860334 refactor: move CAddress-without-nTime logic to net_processing
Historically, the VERSION message contains an "addrMe" and an "addrYou". As
these are sent before version negotiation is complete, the protocol version is
INIT_PROTO_VERSION (209), and in that protocol, CAddress is serialized without
nTime.

This is in fact the only situation left where a CAddress is (de)serialized
without nTime. As it's such a simple structure (CService for ip/port + uint64_t
for nServices), just inline that structure in the few places where it occurs,
and remove the logic for dealing with missing nTime from CAddress.
2021-08-21 19:16:47 -04:00
Andrew Poelstra
3bef51bb0d Merge 7b45c5e875 into merged_master (Bitcoin PR bitcoin/bitcoin#20516) 2021-07-27 04:38:45 +00:00
Andrew Poelstra
e8f85e9062 Merge b34bf2b42c into merged_master (Bitcoin PR bitcoin/bitcoin#21939) 2021-07-10 05:28:53 +00:00
Andrew Poelstra
a7702d6ab5 Merge 6b49d88a5d into merged_master (Bitcoin PR bitcoin/bitcoin#21905) 2021-07-09 18:45:07 +00:00
Andrew Poelstra
27930edc9c Merge 4a540683ec into merged_master (Bitcoin PR #20813) 2021-06-16 14:11:07 +00:00
Andrew Poelstra
a9503e8d53 Merge 42ed7f51fa into merged_master (Bitcoin PR #20606) 2021-06-13 17:11:52 +00:00
Pieter Wuille
f8866e8c32 Add roundtrip fuzz tests for CAddress serialization 2021-05-24 18:06:35 -07:00
Pieter Wuille
8cd8f37dfe Introduce well-defined CAddress disk serialization
Before this commit, CAddress disk serialization was messy. It stored
CLIENT_VERSION in the first 4 bytes, optionally OR'ed with ADDRV2_FORMAT.
 - All bits except ADDRV2_FORMAT were ignored, making it hard to use for actual
   future format changes.
 - ADDRV2_FORMAT determines whether or not nServices is serialized in LE64
   format or in CompactSize format.
 - Whether or not the embedded CService is serialized in V1 or V2 format is
   determined by the stream's version having ADDRV2_FORMAT (as opposed to the
   nServices encoding, which is determined by the disk version).

To improve the situation, this commit introduces the following disk
serialization format, compatible with earlier versions, but better defined for
future changes:
 - The first 4 bytes store a format version number. Its low 19 bits are ignored
   (as it historically stored the CLIENT_VERSION), but its high 13 bits specify
   the serialization exactly:
   - 0x00000000: LE64 encoding for nServices, V1 encoding for CService
   - 0x20000000: CompactSize encoding for nServices, V2 encoding for CService
   - Any other value triggers an unsupported format error on deserialization,
     and can be used for future format changes.
 - The ADDRV2_FORMAT flag in the stream's version does not impact the actual
   serialization format; it only determines whether V2 encoding is permitted;
   whether it's actually enabled depends solely on the disk version number.

Operationally the changes to the deserializer are:
 - Failure when the stored format version number is unexpected.
 - The embedded CService's format is determined by the stored format version
   number rather than the stream's version number.

These do no introduce incompatibilities, as no code versions exist that write
any value other than 0 or 0x20000000 in the top 13 bits, and no code paths
where the stream's version differs from the stored version.
2021-05-24 18:06:31 -07:00
João Barbosa
1c9255c7dd refactor: Replace memset calls with array initialization 2021-05-13 12:42:21 +01:00
eugene
9c891b64ff net: initialize nMessageSize to max uint32_t instead of -1
nMessageSize is uint32_t and is set to -1. This will warn with
-fsanitize=implicit-integer-sign-change.
2021-05-11 11:21:29 -04:00
MarcoFalke
fa0074e2d8
scripted-diff: Bump copyright headers
-BEGIN VERIFY SCRIPT-
./contrib/devtools/copyright_header.py update ./
-END VERIFY SCRIPT-
2020-12-31 09:45:41 +01:00
MarcoFalke
fa40168ab3
Remove unused bits from service flags enum 2020-12-08 18:36:51 +01:00
Andrew Poelstra
4cb66aae97 Merge 0b2abaa666 into merged_master (Bitcoin PR #19954) 2020-11-30 17:12:23 +00:00
Andrew Poelstra
7c68cb4fb0 Merge 6af9b31bfc into merged_master (Bitcoin PR #19107) 2020-11-29 23:52:21 +00:00
Andrew Poelstra
897f8be4ef Merge bd60a9a8ed into merged_master (Bitcoin PR #19818) 2020-11-28 22:14:15 +00:00
Andrew Poelstra
9a200a587e Merge 505b39e72b into merged_master (Bitcoin PR #19610) 2020-11-28 20:35:13 +00:00
Andrew Poelstra
bd81f212c6 Merge f2d1b9881f into merged_master (Bitcoin PR #19721) 2020-11-27 23:54:01 +00:00
Andrew Poelstra
4dd913a1b2 Merge ffad348167 into merged_master (Bitcoin PR #19705) 2020-11-27 21:54:47 +00:00
Andrew Poelstra
1aea27d291 Merge b4d0366b47 into merged_master (Bitcoin PR #19070) 2020-11-27 17:48:36 +00:00
Andrew Poelstra
97722173e4 Merge a78742830a into merged_master (Bitcoin PR #19639) 2020-11-26 23:42:52 +00:00
Andrew Poelstra
0ddf4fafae Merge f7c73b03d9 into merged_master (Bitcoin PR #19569) 2020-11-26 23:15:28 +00:00
Andrew Poelstra
68756cc75b Merge 17de75b028 into merged_master (Bitcoin PR #19590) 2020-11-26 21:49:46 +00:00
Andrew Poelstra
e547a98b54 Merge ccef10261e into merged_master (Bitcoin PR #18044) 2020-11-26 17:01:52 +00:00
Andrew Poelstra
efaef30fdb Merge 631284f09a into merged_master (Bitcoin PR #19486) 2020-11-26 01:51:47 +00:00
Andrew Poelstra
927a580a42 Merge 07d0e0d59f into merged_master (Bitcoin PR #19044) 2020-11-26 01:08:55 +00:00
Andrew Poelstra
ea6e25d012 Merge 8ad5f1c376 into merged_master (Bitcoin PR #19106) 2020-11-26 01:08:54 +00:00
Andrew Poelstra
e00f039d47 Merge de369c7ea5 into merged_master (Bitcoin PR #18165) 2020-11-26 01:08:53 +00:00
Andrew Poelstra
62a9d9569c Merge 7d32cce3e7 into merged_master (Bitcoin PR #19010) 2020-11-26 01:08:50 +00:00
Andrew Poelstra
354446d0af Merge fed1a9043f into merged_master (Bitcoin PR #19020) 2020-11-26 01:08:48 +00:00
Andrew Poelstra
f89b990b78 Merge 448bdff263 into merged_master (Bitcoin PR #18317) 2020-11-26 01:08:46 +00:00
Andrew Poelstra
9ca0c6e9ed Merge e20e964cb1 into merged_master (Bitcoin PR #18996) 2020-11-26 01:08:46 +00:00
Andrew Poelstra
9ac62395d7 Merge e45fb7e0d2 into merged_master (Bitcoin PR #18877) 2020-11-26 01:08:42 +00:00
Andrew Poelstra
3175c6b6f4 Merge f2c416bcf5 into merged_master (Bitcoin PR #16995) 2020-11-26 01:08:04 +00:00
Andrew Poelstra
1ceb281f8f Merge 5948398b18 into merged_master (Bitcoin PR #17474) 2020-11-14 16:51:57 +00:00
Andrew Poelstra
821f5256a5 Merge 46d6930f8c into merged_master (Bitcoin PR #16659) 2020-11-09 21:20:41 +00:00