Commit graph

1189 commits

Author SHA1 Message Date
Byron Hambly
a27835cb7d Merge 548ad5ef7f into merged_master (Bitcoin PR bitcoin/bitcoin#23281) 2023-05-14 09:12:26 +00:00
James Dorfman
677e269c5c Merge 1435161f64 into merged_master (Bitcoin PR bitcoin/bitcoin#23316) 2023-05-14 01:36:16 +00:00
Byron Hambly
f80332fee5 Merge 2e82af46e2 into merged_master (Bitcoin PR bitcoin/bitcoin#23207) 2023-05-12 09:55:10 +00:00
Byron Hambly
ee8f77f5b2 Merge 991753e4d5 into merged_master (Bitcoin PR bitcoin/bitcoin#23118) 2023-05-10 11:36:56 +00:00
Byron Hambly
1c0f4948ec Merge b4437d7dfe into merged_master (Bitcoin PR bitcoin/bitcoin#23210) 2023-05-10 11:04:50 +00:00
Byron Hambly
15ada59eac Merge bb8550b788 into merged_master (Bitcoin PR bitcoin/bitcoin#23209) 2023-05-09 13:33:24 +00:00
Byron Hambly
cca3f919f8 Merge 9e530c6352 into merged_master (Bitcoin PR bitcoin/bitcoin#20487) 2023-05-09 11:22:04 +00:00
Byron Hambly
cc16227789 Merge 35a31d5f7e into merged_master (Bitcoin PR bitcoin/bitcoin#23136) 2023-04-28 14:14:21 +00:00
Byron Hambly
ceeb3783ee Merge 1cf7fb9fd6 into merged_master (Bitcoin PR bitcoin/bitcoin#23104) 2023-04-28 12:33:54 +00:00
James Dorfman
b582aaadb4 Merge 33e31f8df9 into merged_master (Bitcoin PR bitcoin/bitcoin#23079) 2023-04-28 10:07:15 +00:00
James Dorfman
203ee3f248 Merge 7d4ea7c7ef into merged_master (Bitcoin PR bitcoin/bitcoin#23120) 2023-04-27 20:08:05 +00:00
Byron Hambly
10b5206170 Merge 58c25bdcea into merged_master (Bitcoin PR bitcoin/bitcoin#23092) 2023-04-24 10:32:18 +00:00
Byron Hambly
ae797e1b5a Merge 442e32e117 into merged_master (Bitcoin PR bitcoin/bitcoin#22817) 2023-04-24 09:07:43 +00:00
Byron Hambly
04a9784dae Merge 01b5cfb951 into merged_master (Bitcoin PR bitcoin/bitcoin#23047) 2023-04-24 08:39:22 +00:00
Byron Hambly
7856df2733 test: elements fixes for Bitcoin PR bitcoin/bitcoin#22818 2023-04-24 08:30:36 +00:00
Byron Hambly
13fb374543 Merge 8e9801bfc4 into merged_master (Bitcoin PR bitcoin/bitcoin#22818) 2023-04-24 07:13:42 +00:00
Byron Hambly
3d243eab9e Merge 86c3b84388 into merged_master (Bitcoin PR bitcoin/bitcoin#23036) 2023-04-23 09:38:53 +00:00
Byron Hambly
8b51bd1072 Merge ae674a0198 into merged_master (Bitcoin PR bitcoin/bitcoin#22998) 2023-04-22 08:12:34 +00:00
Byron Hambly
787dbf524e Merge 89447a63b9 into merged_master (Bitcoin PR bitcoin/bitcoin#23017) 2023-04-22 07:35:38 +00:00
James Dorfman
e55a95a3a8 Merge de2af19dc8 into merged_master (Bitcoin PR bitcoin/bitcoin#22987) 2023-04-21 15:39:51 +00:00
Byron Hambly
965ac7c53b Merge 58e02395ba into merged_master (Bitcoin PR bitcoin/bitcoin#22955) 2023-04-21 11:43:16 +00:00
Byron Hambly
56c954f2c0 Merge 6d76b57ca0 into merged_master (Bitcoin PR bitcoin/bitcoin#22960) 2023-04-21 11:35:05 +00:00
Byron Hambly
1acda7580c Merge adccbb380b into merged_master (Bitcoin PR bitcoin/bitcoin#21862) 2023-04-11 08:09:30 +00:00
James Dorfman
c8c66f0dc3 Merge eb09c26724 into merged_master (Bitcoin PR bitcoin/bitcoin#22741) 2023-04-11 05:41:32 +00:00
Byron Hambly
639d71f0d1 Merge f5a406f003 into merged_master (Bitcoin PR bitcoin/bitcoin#22633) 2023-04-10 12:59:14 +00:00
Byron Hambly
4cc48afd88 Merge 0b5344b0d1 into merged_master (Bitcoin PR bitcoin/bitcoin#22632) 2023-04-09 06:06:34 +00:00
Byron Hambly
8599606ab3 Merge 21438d55d5 into merged_master (Bitcoin PR bitcoin/bitcoin#21800) 2023-04-09 05:08:13 +00:00
James Dorfman
62076b5b7e Merge f4328ebef5 into merged_master (Bitcoin PR bitcoin/bitcoin#22619) 2023-04-07 04:34:13 +00:00
Byron Hambly
570683e6ac Merge ad0fc453cc into merged_master (Bitcoin PR bitcoin/bitcoin#16333) 2023-04-06 11:43:11 +00:00
Byron Hambly
05f9a1a7c2 Merge 06788c6705 into merged_master (Bitcoin PR bitcoin/bitcoin#21528) 2023-04-04 11:04:30 +02:00
Byron Hambly
884d58e0e1 Merge b620b2d58a into merged_master (Bitcoin PR bitcoin/bitcoin#22378) 2023-04-04 11:00:11 +02:00
James Dorfman
ebc6e3967f Merge bb60960750 into merged_master (Bitcoin PR bitcoin/bitcoin#22593) 2023-04-03 20:34:45 +00:00
Byron Hambly
e17125c41b Merge f2e41d1109 into merged_master (Bitcoin PR bitcoin/bitcoin#22429) 2023-04-03 15:12:22 +02:00
James Dorfman
4a1391ccb8 Merge 78f040a6b3 into merged_master (Bitcoin PR bitcoin/bitcoin#22490) 2023-04-03 03:29:18 +00:00
James Dorfman
91c9659306 Merge 24fb69dca4 into merged_master (Bitcoin PR bitcoin/bitcoin#22139) 2023-03-31 19:25:06 +00:00
Glenn Willen
55a5e2f921 Merge 548ca1d3a5 into merged_master (Bitcoin PR bitcoin/bitcoin#22550) 2023-03-28 00:44:23 +00:00
Glenn Willen
5889a844db Merge 2dda79cf61 into merged_master (Elements PR ElementsProject/elements#1094) 2022-04-21 15:54:34 -07:00
Glenn Willen
f035196ceb Merge 586e5c7dd7 into merged_master (Elements PR ElementsProject/elements#1062) 2022-04-20 21:51:53 -07:00
Glenn Willen
bf7f050aeb Raise max P2P message size to account for larger elements dynafed header size 2022-03-01 14:21:52 -08:00
Pablo Greco
85c3c2b819 Deprecate con_dyna_deploy_start in favor of evbparams 2021-11-23 14:36:03 +00:00
lsilva01
7b3c9e4ee8 Make explicit the node param in init_wallet() 2021-10-20 00:30:28 -03:00
MarcoFalke
2e82af46e2
Merge bitcoin/bitcoin#23207: test: Delete generate* calls from TestNode
fac62e6ff5 test: Delete generate* calls from TestNode (MarcoFalke)
fac7f6102f test: Use generate* node RPC, not wallet RPC (MarcoFalke)
faac1cda6e test: Use generate* from TestFramework, not TestNode (MarcoFalke)

Pull request description:

  Deleting the methods is needed for #22567 to pave the way to make it easier to implicitly call the `sync_all` member function.

  Without the methods being deleted, nothing prevents developers from adding calls to it. As history showed, developers *will* add calls to it. For example, see commit eb02dbba3c from today or the first commit in this pull request.

ACKs for top commit:
  stratospher:
    Tested ACK fac62e6.
  brunoerg:
    tACK fac62e6ff5
  promag:
    Code review ACK fac62e6ff5.

Tree-SHA512: 6d4dea8f95ead954acfef2e6a5d98897ce0c2d02265c5b137bb149d0265543bd51d7e8403e1945b9af75df5524ca50064fe1d2a432b25c8abc71bbb28ed6ed53
2021-10-18 13:06:03 +02:00
W. J. van der Laan
991753e4d5
Merge bitcoin/bitcoin#23118: test: refactor: introduce script_util helper for creating P2PK scripts
429b49378e test: introduce script_util helper for creating P2PK scripts (Sebastian Falbesoner)

Pull request description:

  This PR is a follow-up to #22363, which took use of already existing `script_util` helpers to get rid of manual CScript for the P2{PKH,SH,WPKH,WSH} output types, in order to increase readability and maintainability of the test code. Here the same is done for P2PK scripts by introducing a helper `key_to_p2pk_script` and using it. Note that the helper only accepts ECDSA pubkeys (i.e. ones with a size of 33 or 65 bytes), hence it can't be used for scripts in the form of [x-only-pubkey, OP_CHECKSIG].

ACKs for top commit:
  brunoerg:
    Code review ACK 429b49378e
  laanwj:
    Code review ACK 429b49378e
  rajarshimaitra:
    Concept + tACK https://github.com/bitcoin/bitcoin/pull/23118/commits/429b49378ee3a3d73abe276cfd176c1ca08bf9b9

Tree-SHA512: 984aea01eba5f38a328d69905d90a3a36f0a02419ca3e5baf3c8095895fb094e3780c7da16fad5851db3847bdb05ce8cda244ab09b79b8aa9602dfb3c5e0414c
2021-10-07 15:41:57 +02:00
MarcoFalke
b4437d7dfe
Merge bitcoin/bitcoin#23210: test: Replace satoshi_round with int() or Decimal()
fa2ac5881e test: Replace satoshi_round with int() or Decimal() (MarcoFalke)

Pull request description:

  satoshi_round will round down. To make the code easier to parse use
  Decimal() where possible, which does not round. Or use int(), which
  explicitly rounds down.

ACKs for top commit:
  lsilva01:
    Tested ACK https://github.com/bitcoin/bitcoin/pull/23210/commits/fa2ac5881edf8d0d3f15c43f089f1831348dfae2 on Ubuntu 20.04.

Tree-SHA512: 17795d906aa7652933d43e510e993cdd9cf8926da1febf1c42d463048cb38c92dc518ec08736efe29c0189ffd532b108bc7a715f32b4c2ee58b215df65352eb9
2021-10-07 09:09:11 +02:00
MarcoFalke
fa2ac5881e
test: Replace satoshi_round with int() or Decimal()
satoshi_round will round down. To make the code easier to parse use
Decimal() where possible, which does not round. Or use int(), which
explicitly rounds down.
2021-10-06 15:16:59 +02:00
MarcoFalke
fa3ab7b5b1
test: Avoid RPC roundtrip in MiniWallet get_descriptor() 2021-10-06 14:54:26 +02:00
MarcoFalke
fac62e6ff5
test: Delete generate* calls from TestNode 2021-10-06 13:41:08 +02:00
W. J. van der Laan
9e530c6352
Merge bitcoin/bitcoin#20487: Add syscall sandboxing using seccomp-bpf (Linux secure computing mode)
4747da3a5b Add syscall sandboxing (seccomp-bpf) (practicalswift)

Pull request description:

  Add experimental syscall sandboxing using seccomp-bpf (Linux secure computing mode).

  Enable filtering of system calls using seccomp-bpf: allow only explicitly allowlisted (expected) syscalls to be called.

  The syscall sandboxing implemented in this PR is an experimental feature currently available only under Linux x86-64.

  To enable the experimental syscall sandbox the `-sandbox=<mode>` option must be passed to `bitcoind`:

  ```
    -sandbox=<mode>
         Use the experimental syscall sandbox in the specified mode
         (-sandbox=log-and-abort or -sandbox=abort). Allow only expected
         syscalls to be used by bitcoind. Note that this is an
         experimental new feature that may cause bitcoind to exit or crash
         unexpectedly: use with caution. In the "log-and-abort" mode the
         invocation of an unexpected syscall results in a debug handler
         being invoked which will log the incident and terminate the
         program (without executing the unexpected syscall). In the
         "abort" mode the invocation of an unexpected syscall results in
         the entire process being killed immediately by the kernel without
         executing the unexpected syscall.
  ```

  The allowed syscalls are defined on a per thread basis.

  I've used this feature since summer 2020 and I find it to be a helpful testing/debugging addition which makes it much easier to reason about the actual capabilities required of each type of thread in Bitcoin Core.

  ---

  Quick start guide:

  ```
  $ ./configure
  $ src/bitcoind -regtest -debug=util -sandbox=log-and-abort
  …
  2021-06-09T12:34:56Z Experimental syscall sandbox enabled (-sandbox=log-and-abort): bitcoind will terminate if an unexpected (not allowlisted) syscall is invoked.
  …
  2021-06-09T12:34:56Z Syscall filter installed for thread "addcon"
  2021-06-09T12:34:56Z Syscall filter installed for thread "dnsseed"
  2021-06-09T12:34:56Z Syscall filter installed for thread "net"
  2021-06-09T12:34:56Z Syscall filter installed for thread "msghand"
  2021-06-09T12:34:56Z Syscall filter installed for thread "opencon"
  2021-06-09T12:34:56Z Syscall filter installed for thread "init"
  …
  # A simulated execve call to show the sandbox in action:
  2021-06-09T12:34:56Z ERROR: The syscall "execve" (syscall number 59) is not allowed by the syscall sandbox in thread "msghand". Please report.
  …
  Aborted (core dumped)
  $
  ```

  ---

  [About seccomp and seccomp-bpf](https://en.wikipedia.org/wiki/Seccomp):

  > In computer security, seccomp (short for secure computing mode) is a facility in the Linux kernel. seccomp allows a process to make a one-way transition into a "secure" state where it cannot make any system calls except exit(), sigreturn(), and read() and write() to already-open file descriptors. Should it attempt any other system calls, the kernel will terminate the process with SIGKILL or SIGSYS. In this sense, it does not virtualize the system's resources but isolates the process from them entirely.
  >
  > […]
  >
  > seccomp-bpf is an extension to seccomp that allows filtering of system calls using a configurable policy implemented using Berkeley Packet Filter rules. It is used by OpenSSH and vsftpd as well as the Google Chrome/Chromium web browsers on Chrome OS and Linux. (In this regard seccomp-bpf achieves similar functionality, but with more flexibility and higher performance, to the older systrace—which seems to be no longer supported for Linux.)

ACKs for top commit:
  laanwj:
    Code review and lightly tested ACK 4747da3a5b

Tree-SHA512: e1c28e323eb4409a46157b7cc0fc29a057ba58d1ee2de268962e2ade28ebd4421b5c2536c64a3af6e9bd3f54016600fec88d016adb49864b63edea51ad838e17
2021-10-04 22:45:43 +02:00
practicalswift
4747da3a5b Add syscall sandboxing (seccomp-bpf) 2021-10-01 13:51:10 +00:00
MarcoFalke
35a31d5f7e
Merge bitcoin/bitcoin#23136: test: update fee rate assertion helper in the functional test framework
b658d7d5c5 test: update assert_fee_amount() in test_framework/util.py (Jon Atack)

Pull request description:

  Follow-up to 42e1b5d979 (#12486).
  - update call to `round()` with our utility function `satoshi_round()` to avoid intermittent test failures
  - rename `fee_per_kB` to `feerate_BTC_kvB` for precision
  - store division result in `feerate_BTC_vB`

  Possibly resolves #19418.

ACKs for top commit:
  meshcollider:
    utACK b658d7d5c5

Tree-SHA512: f124ded98c913f98782dc047a85a05d3fdf5f0585041fa81129be562138f6261ec1bd9ee2af89729028277e75b591b0a7ad50244016c2b2fa935c6e400523183
2021-10-01 10:54:23 +02:00