Commit graph

20758 commits

Author SHA1 Message Date
Steven Roose
d670076f92
Bump version to v0.18.1.13 2022-03-08 16:09:22 +00:00
Steven Roose
66f9a9bd5b
Merge ElementsProject/elements#1100: [BACKPORT 0.18] Make dynafed signaling opt-out instead of opt-in
72207242a1 Make dynafed signaling opt-out instead of opt-in (Pablo Greco)

Pull request description:

  (cherry picked from commit a06aac152a)

  Back in 0.18.1.12, dynafed signaling was disabled to simplify some deployments. This was reverted in the 0.21 branch, for consistency, let's revert it here too.

Top commit has no ACKs.

Tree-SHA512: 21cdb1c2366400849f8bff3cdb502c8193bbc47a35eae984cd3b28faf7b2c9e6e3195258dae0ec9b0225bedfee6a3fd10989e6e983d71714c6d62851657b5ef4
2022-03-08 15:19:53 +00:00
Pablo Greco
72207242a1 Make dynafed signaling opt-out instead of opt-in
(cherry picked from commit a06aac152a)
2022-03-08 11:32:57 +00:00
Steven Roose
395e57ae5e
Merge ElementsProject/elements#1098: [BACKPORT 0.18] Fix elements multiple-header-download issue.
f5d33d8676 Fix elements multiple-header-download issue. (Glenn Willen)

Pull request description:

  This fixes an issue which causes Elements to download the blockchain headers
  multiple times during initial block download.

  In particular: each time we receive an INV P2P message with a new block
  (about once a minute), we start downloading the headers, again, in parallel
  with any existing download(s) in progress.

  With this change, after we receive each batch of headers, we check whether
  any of the headers in it were new to us. If not (they were all duplicates),
  we stop there, and do not ask the peer for another batch. This reduces the
  maximum amount of duplication to about 2x, which is not ideal, but a HUGE
  improvement.

  <!--
  *** Please remove the following help text before submitting: ***

  Pull requests without a rationale and clear improvement may be closed
  immediately.

  GUI-related pull requests should be opened against
  https://github.com/bitcoin-core/gui
  first. See CONTRIBUTING.md
  -->

  <!--
  Please provide clear motivation for your patch and explain how it improves
  Bitcoin Core user experience or Bitcoin Core developer experience
  significantly:

  * Any test improvements or new tests that improve coverage are always welcome.
  * All other changes should have accompanying unit tests (see `src/test/`) or
    functional tests (see `test/`). Contributors should note which tests cover
    modified code. If no tests exist for a region of modified code, new tests
    should accompany the change.
  * Bug fixes are most welcome when they come with steps to reproduce or an
    explanation of the potential issue as well as reasoning for the way the bug
    was fixed.
  * Features are welcome, but might be rejected due to design or scope issues.
    If a feature is based on a lot of dependencies, contributors should first
    consider building the system outside of Bitcoin Core, if possible.
  * Refactoring changes are only accepted if they are required for a feature or
    bug fix or otherwise improve developer experience significantly. For example,
    most "code style" refactoring changes require a thorough explanation why they
    are useful, what downsides they have and why they *significantly* improve
    developer experience or avoid serious programming bugs. Note that code style
    is often a subjective matter. Unless they are explicitly mentioned to be
    preferred in the [developer notes](/doc/developer-notes.md), stylistic code
    changes are usually rejected.
  -->

  <!--
  Bitcoin Core has a thorough review process and even the most trivial change
  needs to pass a lot of eyes and requires non-zero or even substantial time
  effort to review. There is a huge lack of active reviewers on the project, so
  patches often sit for a long time.
  -->

ACKs for top commit:
  psgreco:
    ACK f5d33d8676

Tree-SHA512: f4e85d1d8b0954654b711806a9a955c9b2246a38fb8c841fd74d87d151e7fb2955c2c1b09c559785b453704f87362ea9af0eb8d1ec3fa6c28f129d777c19f05b
2022-03-07 17:52:34 +00:00
Glenn Willen
f5d33d8676 Fix elements multiple-header-download issue.
This fixes an issue which causes Elements to download the blockchain headers
multiple times during initial block download.

In particular: each time we receive an INV P2P message with a new block
(about once a minute), we start downloading the headers, again, in parallel
with any existing download(s) in progress.

With this change, after we receive each batch of headers, we check whether
any of the headers in it were new to us. If not (they were all duplicates),
we stop there, and do not ask the peer for another batch. This reduces the
maximum amount of duplication to about 2x, which is not ideal, but a HUGE
improvement.
2022-03-03 14:28:21 -08:00
Steven Roose
3f9477a984
Merge ElementsProject/elements#1095: [BACKPORT 0.18] Raise max P2P message size to account for larger elements dynafed header size
f472126622 Raise max P2P message size to account for larger elements dynafed header size (Glenn Willen)

Pull request description:

  <!--
  *** Please remove the following help text before submitting: ***

  Pull requests without a rationale and clear improvement may be closed
  immediately.

  GUI-related pull requests should be opened against
  https://github.com/bitcoin-core/gui
  first. See CONTRIBUTING.md
  -->

  <!--
  Please provide clear motivation for your patch and explain how it improves
  Bitcoin Core user experience or Bitcoin Core developer experience
  significantly:

  * Any test improvements or new tests that improve coverage are always welcome.
  * All other changes should have accompanying unit tests (see `src/test/`) or
    functional tests (see `test/`). Contributors should note which tests cover
    modified code. If no tests exist for a region of modified code, new tests
    should accompany the change.
  * Bug fixes are most welcome when they come with steps to reproduce or an
    explanation of the potential issue as well as reasoning for the way the bug
    was fixed.
  * Features are welcome, but might be rejected due to design or scope issues.
    If a feature is based on a lot of dependencies, contributors should first
    consider building the system outside of Bitcoin Core, if possible.
  * Refactoring changes are only accepted if they are required for a feature or
    bug fix or otherwise improve developer experience significantly. For example,
    most "code style" refactoring changes require a thorough explanation why they
    are useful, what downsides they have and why they *significantly* improve
    developer experience or avoid serious programming bugs. Note that code style
    is often a subjective matter. Unless they are explicitly mentioned to be
    preferred in the [developer notes](/doc/developer-notes.md), stylistic code
    changes are usually rejected.
  -->

  <!--
  Bitcoin Core has a thorough review process and even the most trivial change
  needs to pass a lot of eyes and requires non-zero or even substantial time
  effort to review. There is a huge lack of active reviewers on the project, so
  patches often sit for a long time.
  -->

ACKs for top commit:
  stevenroose:
    ACK [f472126](https://github.com/ElementsProject/elements/pull/1095/commits/f472126622c9995f75bf56f2108ae7b33bee1b74)

Tree-SHA512: 09b0b7e2a9b7eeed7fda03255f89bac216e14f655aab4d19ac8f415ea6aaa89fc8f5ea9d13e7563047de268d41114e75445f49483d5a7e98305442e2b3a1f75b
2022-03-02 13:17:14 +00:00
Glenn Willen
f472126622 Raise max P2P message size to account for larger elements dynafed header size 2022-03-01 15:04:34 -08:00
Andrew Poelstra
07239d100b
Merge ElementsProject/elements#1009: Fix dynafed logging to not duplicate messages
b5424e9987 Fix dynafed logging to not duplicate messages (Steven Roose)

Pull request description:

  This brings it up to date with the fixed forward port in https://github.com/ElementsProject/elements/pull/996.

Top commit has no ACKs.

Tree-SHA512: 9606ea46973bb5eceadf133b2c75e6ca98c4eb70fa821429ed3e3a06bc94d2c22f6e119b73cc458e5e040df775b64580767d7fe0234081ffcedacf51be4ac97f
2021-09-10 16:27:47 +00:00
Andrew Poelstra
28ba02e737
Merge ElementsProject/elements#1022: When validation is waiting for parent chain daemon, "stall".
e5ba4e819e Regression test for pegin validation issues during sync (Glenn Willen)
7f79f72ae9 Finish removing 'recheckpeginblockinterval'; move MainchainRPCCheck (Glenn Willen)
4ba4e0716d When validation is waiting for parent chain daemon, "stall". (Glenn Willen)

Pull request description:

  Currently, if -validatepegin is given, and block validation can't proceed
  because the parent chain is not synced, we mark the block invalid and put
  it in a queue to be "revalidated" later. Unfortunately, marking a block
  invalid has downstream consequences, in particular causing descendant blocks
  to be marked invalid, which are not currently fixed by the queue.

  Instead, we'll use a different strategy: if the mainchain daemon isn't
  sufficiently synced to validate a block, we will "stall" connecting that
  block to the chain, and have ActivateBestChain simply keep the tip at the
  previous block until we're ready.

  We can still download and validate (partly) blocks past this point while
  we're waiting. They will be connected once the parent chain daemon catches
  up.

Top commit has no ACKs.

Tree-SHA512: 0aa8d22460af062509f431e0f742297733d0e20b3fc1babca35f25a07c5243c7665dd0ba5fb439e3782c842a264dacd14cee6da49f8df3d1a26f5391c4742538
2021-09-09 13:06:45 +00:00
Glenn Willen
e5ba4e819e Regression test for pegin validation issues during sync
Add a regression test for https://github.com/ElementsProject/elements/issues/891 .

This checks that we can sync successfully when making a bunch of new blocks
just as we have transient loss of parent daemon connectivity. This reliably
fails without the fix, and reliably succeeds with it. (It stands in for the
situation, more common in production, where we sync faster than the parent
daemon can keep up after a long outage.)
2021-09-07 15:51:46 +00:00
Glenn Willen
7f79f72ae9 Finish removing 'recheckpeginblockinterval'; move MainchainRPCCheck
- Finish removing all references to 'recheckpeginblockinterval', including
  documentation and tests.
- Remove periodic calls to MainchainRPCCheck; use it only at startup (and
  refactor accordingly to simplify logic.)
- Move MainchainRPCCheck from validation.h/cpp (public) to an internal
  helper function of init.cpp.
- Comment out definition of 'revalidation queue' type in txdb, to suppress
  "unused variable" warning. (Leave it visible to avoid future reuse.)
2021-09-07 15:51:34 +00:00
Glenn Willen
4ba4e0716d When validation is waiting for parent chain daemon, "stall".
Currently, if -validatepegin is given, and block validation can't proceed
because the parent chain is not synced, we mark the block invalid and put
it in a queue to be "revalidated" later. Unfortunately, marking a block
invalid has downstream consequences, in particular causing descendant blocks
to be marked invalid, which are not currently fixed by the queue.

Instead, we'll use a different strategy: if the mainchain daemon isn't
sufficiently synced to validate a block, we will "stall" connecting that
block to the chain, and have ActivateBestChain simply keep the tip at the
previous block until we're ready.

We can still download and validate (partly) blocks past this point while
we're waiting. They will be connected once the parent chain daemon catches
up.
2021-09-07 15:47:25 +00:00
Steven Roose
b5424e9987
Fix dynafed logging to not duplicate messages 2021-08-24 16:43:06 +01:00
Steven Roose
5b1f3cc00b
Merge ElementsProject/elements#997: Bump version to v0.18.1.12
59ca369d60 Bump version to v0.18.1.12 (Steven Roose)

Pull request description:

Top commit has no ACKs.

Tree-SHA512: 7c711cca14a3f9cfa6fe2863b90c90c9ebcdde14133efc9a61a6415a21743fc36769457e44240ff8dfb577073cd54f15bddbe6d09aecc9686d302886b920cacc
2021-05-11 13:38:44 +02:00
Steven Roose
99c8e18b07
Merge ElementsProject/elements#995: [elements 0.18] Update URL to download old QT SDK
32b3328d40 Update URL to download old QT SDK (Glenn Willen)

Pull request description:

  Backport of #992.

Top commit has no ACKs.

Tree-SHA512: 370c5b8c2f5453cda11cc8408289c75599928e4647d68e226794f53904be9474a8ebe00e4ca729fe2c7009d88b3e5062341e1f3e39534b375ed944532f2c4f86
2021-05-10 19:15:08 +02:00
Steven Roose
59ca369d60
Bump version to v0.18.1.12 2021-05-10 18:37:14 +02:00
Steven Roose
73cf2f5e6f
Merge ElementsProject/elements#993: [elements-0.18] Support supplying contract hash to issueasset RPC
8b9791fa0e Support supplying contract hash to issueasset RPC (Steven Roose)

Pull request description:

  Relating https://github.com/ElementsProject/elements/issues/985.

  Needs forward port.

Top commit has no ACKs.

Tree-SHA512: e30ce7f590a5d9e8aa37b4cccb4e69fa2c62adbc28a7e67e9a91b9cff081c54bb2e300ccb6e3c692719a8ec858bd32e32445d4040e19d1affd32dae5cc0462fc
2021-05-10 18:36:19 +02:00
Steven Roose
b181708ef3
Merge ElementsProject/elements#994: [elements-0.18] Add logging for dynafed activation and transitions
ca827fcd75 Add logging for dynafed activation and transitions (Steven Roose)

Pull request description:

  Relating https://github.com/ElementsProject/elements/issues/981.

  Needs forward port.

Top commit has no ACKs.

Tree-SHA512: 0c22b7e7d149fa4664f4fc0d37b644e2fc1995f2c7764c8f444a331d04216da1a9b7914d54df8ab15b20aa899eddd9834bd4cbe605c1ca3fd360521c9f5f0c1d
2021-05-10 16:44:53 +02:00
Steven Roose
1f900e2248
Merge ElementsProject/elements#989: [elements-0.18] Undo default signalling behavior for dynafed unless enabled
b104f95651 Undo default signalling behavior for dynafed unless enabled (Steven Roose)

Pull request description:

  Backport of #986.

ACKs for top commit:
  gwillen:
    utACK b104f95 for the backport, after #986 is merged, assuming that b7a116d is the final version that goes in for #986 .

Tree-SHA512: 58eb99a21fcd6f853255fc09053955c5ac0a9e991ce5b65a01ced4d67352e9d9d6a52d84742cf5e62e3068a7bf3584a195fc284cf3959cc008d786dfaaf0d143
2021-05-10 12:06:43 +02:00
Glenn Willen
32b3328d40
Update URL to download old QT SDK 2021-05-07 16:21:27 +02:00
Steven Roose
ca827fcd75
Add logging for dynafed activation and transitions 2021-05-07 15:45:00 +02:00
Steven Roose
8b9791fa0e
Support supplying contract hash to issueasset RPC 2021-05-07 14:56:22 +02:00
Steven Roose
b104f95651
Undo default signalling behavior for dynafed unless enabled 2021-05-07 13:45:54 +02:00
Steven Roose
b1a40781c6
Merge ElementsProject/elements#988: [elements-0.18] Add liquidv1test chainparams
f01651b676 Add liquidv1test chainparams. (Glenn Willen)
e3ece812bb Fix description of -chain parameter (Glenn Willen)
6317e584a2 Change stray uses of global gArgs to args in CCustomParams (Glenn Willen)

Pull request description:

  Backport of #982.

Top commit has no ACKs.

Tree-SHA512: e83ae76dd1a34a09962e905ae8083931209d346ed679f62393adec63dc7e22a5a2eee8d23887c4be6d547c3d0e75570e7d21045fec136af9c9006c26983f6bf4
2021-05-06 15:00:20 +01:00
Glenn Willen
f01651b676
Add liquidv1test chainparams. 2021-04-30 14:43:06 +01:00
Glenn Willen
e3ece812bb
Fix description of -chain parameter 2021-04-30 14:43:00 +01:00
Glenn Willen
6317e584a2
Change stray uses of global gArgs to args in CCustomParams 2021-04-30 14:42:54 +01:00
Steven Roose
2665406602
Merge #973: [elements-0.18] Bump version to 0.18.1.11
1c5086bd83 Bump version to 0.18.1.11 (Steven Roose)

Pull request description:

  Pending on inclusion of https://github.com/ElementsProject/elements/pull/972 and https://github.com/ElementsProject/elements/pull/971.

Tree-SHA512: 34a2c14b4e540b420ddb6d0149713068472011ba8c090502843afc20cb36429245fb3bc3de57a41bee28bdaedb3da6c67f2fd01a3db9c5a5ef1351a086ac423d
2021-03-16 17:12:16 +00:00
Steven Roose
e804229e3f
Merge #972: [elements-0.18] Update the copyright year to 2021
52cc9b507f Update the copyright year to 2021 (Philippe McLean)

Pull request description:

  Backport of #966.

Tree-SHA512: 9e343c9c16efd221560e9ad6a32491df8642e19cc67dab4bf4fa383d4f6bec1f238e16c0467934018d4237f5990ed69d53f37986d8338b099a4deb7914d34fb8
2021-03-16 17:11:09 +00:00
Steven Roose
67358f80a7
Merge #971: [elements-0.18] Specify the dynafed epoch length for liquidv1
92ae1f17b6 Specify the dynafed epoch length for liquidv1 (Steven Roose)

Pull request description:

  Backport of #970.

Tree-SHA512: 59769d0b57aa42d3333e38758307a08531560f524b7ebd75797e4b56def6aacf1fd51e97ac08877100a41cfa1724bde424a4342bff5086d7395f5947c745ae20
2021-03-16 17:10:33 +00:00
Steven Roose
1c5086bd83
Bump version to 0.18.1.11 2021-03-15 17:34:53 +00:00
Philippe McLean
52cc9b507f
Update the copyright year to 2021 2021-03-15 17:32:38 +00:00
Steven Roose
92ae1f17b6
Specify the dynafed epoch length for liquidv1 2021-03-15 17:30:46 +00:00
Steven Roose
3b5961d513
Merge #965: [elements-0.18] Bump version to 0.18.1.10
89dce1b4e Bump version to 0.18.1.10 (Steven Roose)

Pull request description:

Tree-SHA512: 4a1b60fd0e9e4da63a1721e8bdfc4d2e34bda0490b5ec6b7f2b8a5038363a96e1a26341ae2d77b2918309830630513e0bcfe4ed4b1fd39dd90baa53be23fcc47
2021-03-04 13:28:47 +00:00
Steven Roose
89dce1b4ec
Bump version to 0.18.1.10 2021-03-03 11:35:38 +00:00
Steven Roose
e163fd06ce
Merge #963: [elements-0.18] Add SIGHASH_RANGEPROOF support
4ace925c5 tests: Add test feature_sighash_rangeproof.py (Steven Roose)
559f1d15a Add SIGHASH_RANGEPROOF support (Steven Roose)
cb2d10341 Add set_wif to test frameworks's ECKey (Steven Roose)

Pull request description:

  Backport of #960.

Tree-SHA512: fb97696429c2b7ad101fafcce22d1e9f0bb6450f5c3252dc3cf0ca929b9ac8f63978c9b7115e2f37445b3fff6cae0878f076580256b4333086b020bfb5c99e7a
2021-03-03 11:31:35 +00:00
Steven Roose
da80f52359
Merge #962: [elements-0.18] Some minor dynafed improvements
868e92f78 Add two missing dynafed fields to getblockchaininfo (Steven Roose)
ae54a1bad dynafed: Support changing mainnet dynafed activation (Steven Roose)
0f9b1a2ed dynafed: Only verify proposed parameters if they differ from current (Steven Roose)

Pull request description:

  Backport of #958.

Tree-SHA512: d3f809e466b98f48ba76b8deacc1fc7516440089cd9146a94e9b53ef0dc20f9e53af88cc9edc507de6ccb2da74bf83ef3722f1ab81bb385e2b9a567a4d1f7e99
2021-03-03 10:51:56 +00:00
Steven Roose
4ace925c55
tests: Add test feature_sighash_rangeproof.py 2021-03-02 16:19:54 +00:00
Steven Roose
559f1d15a3
Add SIGHASH_RANGEPROOF support 2021-03-02 16:19:53 +00:00
Steven Roose
cb2d10341a
Add set_wif to test frameworks's ECKey 2021-03-02 16:19:51 +00:00
Steven Roose
868e92f78c
Add two missing dynafed fields to getblockchaininfo 2021-03-02 15:34:01 +00:00
Steven Roose
ae54a1bad4
dynafed: Support changing mainnet dynafed activation
This should obviously only be done by blocksigners. The flag used is not
documented.
2021-03-02 15:34:00 +00:00
Steven Roose
0f9b1a2ed1
dynafed: Only verify proposed parameters if they differ from current
This allows the initial relaxed restriction on non-segwit fedpeg
programs to be extended as long as the fedpeg program is not changed
while the block signing parameters can be changed.
2021-03-02 15:33:58 +00:00
Steven Roose
af1bef5c01
Merge #920: [0.18] Bump version to 0.18.1.9
8be8610e1 Bump version to 0.18.1.9 (Steven Roose)

Pull request description:

Tree-SHA512: 3c931edeb9a0726b9a3627163c04f99cc6d4024774531c3fcbd2827b2834d520a0139796ebe7a0cc24f7abba53c7e62560e6f0a5cae6e30f949b574b1d482132
2020-10-07 12:26:18 +02:00
Steven Roose
8be8610e1d
Bump version to 0.18.1.9 2020-10-06 20:10:16 +02:00
Steven Roose
2fd40d5481
Merge #918: [0.18 backport] Backport #912: Specify BIP9 deployment for DynaFed
47bc28aa8 Speficy dynafed deployment for Liquidv1 (Steven Roose)
385b670a9 Add comment to BIP9 time fields (Steven Roose)
6f70350d0 Move dynafed bit into the ELEMENTS fields (Steven Roose)

Pull request description:

Tree-SHA512: 12710e8fd04a3753d1afc26a81f62cdef66449071da00ca39854b1cd66c4002669c26e4db0a64636f3458206d451055ddbaeb66e4fc847166b57968cd2ce59e2
2020-10-06 20:07:31 +02:00
Steven Roose
a0bd8870d6
Merge #917: [0.18 backport] Backport #911: When decoding or signing a PSBT, check blinded values.
6d557b9a3 When decoding or signing a PSBT, check blinded values. (Glenn Willen)

Pull request description:

Tree-SHA512: 0604ae37e42d0f83487d3370c64ac3968cbb813580138a32280bb147bbe8378a4306a4f6fd194cc58024b5288a551627d17c162cc110a60032fa9c69c9d51c4b
2020-10-06 20:06:48 +02:00
Steven Roose
a882ef65b7
Merge #916: [0.18 backport] Backport #910: Fix mainchain RPC warmup message
c0e7cf64e Fix mainchain RPC warmup message (Steven Roose)

Pull request description:

Tree-SHA512: 671b91baff3281ec0ff32fa76ee402d23325e8554b33f2fbf36302299d1bf70e4008f32ce4042cfccaab92279200c3bfac6afb1406226dcbff2637e028f3b39f
2020-10-06 20:04:33 +02:00
Steven Roose
e77d754b88
Merge #915: [0.18 backport] Backport #904: Fix parsing of amount commitments from prevtxs in signrawtransactionw…
4e3161620 Fix parsing of amount commitments from prevtxs in signrawtransactionwithkey (Glenn Willen)

Pull request description:

Tree-SHA512: ead69e32fb14ee85f776f786f8510df1b71432e2f3fa02588913c94566219d7b951987162be205269a67acc8b1f1cca84e78278b4bb28fb129b9ca339cda1672
2020-10-06 20:03:47 +02:00
Steven Roose
ba357760c0
Merge #914: [0.18 backport] Backport #899: Use gitian infrastructure to install librsvg2-2 (in lieu of hard-code…
94a49e814 Use gitian infrastructure to install librsvg2-2 (in lieu of hard-coded wget) (Jeff Frontz)

Pull request description:

Tree-SHA512: e472ffa1d955e88767648cee99d337f9cedd181f5ae09ccdb5ec005873871087e0beec68f6405fd8b69b061e86c6599211067e9ca26a9827f896fac1f24d9cd4
2020-10-06 20:03:11 +02:00