profile
viewpoint
Matt Corallo TheBlueMatt https://git.bitcoin.ninja Many repos moved, see https://git.bitcoin.ninja.

lightningnetwork/lightning-rfc 1180

Lightning Network Specifications

rust-bitcoin/rust-bitcoin 657

Rust Bitcoin library

rust-bitcoin/rust-lightning 347

A highly modular Bitcoin Lightning library written in Rust. Its Rust-Lightning, not Rusty's Lightning!

TheBlueMatt/bips 42

Bitcoin Improvement Proposals

rust-bitcoin/bitcoin_hashes 38

Simple library which implements a few hashes and does nothing else

TheBlueMatt/bitcoin 18

Bitcoin (dont fork from here, fork from bitcoin/bitcoin)

sipa/bitcoin-net-simul 17

Bitcoin network simulator

rust-bitcoin/rust-bitcoinconsensus 14

Bitcoin's libbitcoinconsenus.a with Rust binding. Built from Bitcoin sources with cargo.

sipa/asmap 6

Compact encoding of approximate prefix->AS table

TheBlueMatt/bitcointools 3

Python-based tools for the Bitcoin cryptocurrency system

pull request commentbitcoin/bitcoin

CI msvc: only build vcpkg dependencies for release (not debug) to reduce build times

You mean the partial change reversing, right?

Yes. The vcpkg manifest mechanism stays (from what I can tell it's the way of the future for vcpkg) but a previous tweak to adjust the vcpkg settings is being put back.

sipsorcery

comment created time in a few seconds

pull request commentbitcoin/bitcoin

CI msvc: only build vcpkg dependencies for release (not debug) to reduce build times

This change to the appveyor CI config for msvc builds reverses a change introduced in #19960.

You mean the partial change reversing, right?

sipsorcery

comment created time in 6 minutes

pull request commentbitcoin/bitcoin

build: use C++17 in depends

Concept ACK.

fanquake

comment created time in 11 minutes

PR opened bitcoin/bitcoin

CI msvc: only build vcpkg dependencies for release (not debug) to reduce build times

This change to the appveyor CI config for msvc builds reverses a change introduced in #19960. It re-applies a setting to inform vcpkg to only build release versions of the dependencies rather than the default of debug and release.

It had been expected that the vcpkg manifest mechanism introduced in #19960 would do this automatically but it turns out not to be the case.

+1 -0

0 comment

1 changed file

pr created time in 14 minutes

pull request commentbitcoin/bitcoin

[WIP DONOTMERGE] Replace boost with C++17

A green CI doesn't mean there are no bugs. No one knows if the shared_mutex can be replaced at all: https://github.com/bitcoin/bitcoin/pull/19183#discussion_r436395676 https://github.com/bitcoin/bitcoin/issues/16684#issuecomment-726214696

Also, commit 8b173d4f143c4db4cfe5f88d4fd07e10c146525a introduces a bug in the gui, which isn't covered by tests.

Finally, optional can't be replaced with mechanical changes because the standard library doesn't have a non-throwing accessor by pointer. So the imo confusing use of the non-throwing accessor should be removed first. See #19426

MarcoFalke

comment created time in 39 minutes

issue commentsignalapp/Signal-Desktop

Setuid chrome-sandbox binary installed in .deb

Hi team, I get the following error every time after there was an Signal-Desktop update:

[2701:1124/080956.553776:FATAL:setuid_sandbox_host.cc(157)] The SUID sandbox helper binary was found, but is not configured correctly. Rather than run without sandboxing I'm aborting now. You need to make sure that /opt/Signal/chrome-sandbox is owned by root and has mode 4755.

System: Debian 10 (Buster) + Xfce

After changing the mode to 4755 everything works fine again.

PS: This problem happened before but vanish then, but since the last a couple of updates it's back. Where is this coded; in which file?

jagerman

comment created time in 40 minutes

pull request commentbitcoin/bitcoin

[WIP DONOTMERGE] Replace boost with C++17

@MarcoFalke CI is happily green now. Do you want to make any further changes before removing the draft status, or do you plan to submit these changes as individual PRs?

I'm particularly looking forward to the std::optional change. I'm a bit afraid that mixing boost::optional and std::optional might lead to some unnecessary confusion.

MarcoFalke

comment created time in an hour

pull request commentbitcoin/bitcoin

build: The vcpkg tool has introduced a proper way to use manifests

Finally got around to running the build tests to compare the build durations using the original vcpkg install mechanism and the new vcpkg manifest mechanism.

The original way seems to be a few minutes faster but not a smoking gun for a 10 minute increase. Perhaps the manifest + the removal of the set(VCPKG_BUILD_TYPE release) could account for it. The VCPKG_BUILD_TYPE setting should be put back and I'll create a PR for that.

Build runs with vcpkg installed from command line: Average duration approx. 25 minutes.

Run 1:
c:\Tools\vcpkg>vcpkg install --triplet x64-windows-static berkeleydb boost-filesystem boost-multi-index boost-process boost-signals2 boost-test boost-thread libevent[thread] zeromq double-conversion sqlite3 -> 14:12
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 10:37

Run 2:
c:\Tools\vcpkg>vcpkg install --triplet x64-windows-static berkeleydb boost-filesystem boost-multi-index boost-process boost-signals2 boost-test boost-thread libevent[thread] zeromq double-conversion sqlite3 -> 16:10
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 09:40

Run 3:
c:\Tools\vcpkg>vcpkg install --triplet x64-windows-static berkeleydb boost-filesystem boost-multi-index boost-process boost-signals2 boost-test boost-thread libevent[thread] zeromq double-conversion sqlite3 -> 15:29
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 09:36

Run 4:
c:\Tools\vcpkg>vcpkg install --triplet x64-windows-static berkeleydb boost-filesystem boost-multi-index boost-process boost-signals2 boost-test boost-thread libevent[thread] zeromq double-conversion sqlite3 -> 15:12
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 09:39

Build runs with vcpkg installed using manifest mechanism: Average duration approx. 28 minutes.

Run 1:
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 26:58

Run 2:
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 27:00

Run 3:
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 27:15

Run 4:
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 30:31

Run 5:
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 30:31

Run 6:
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msvc-autogen.py
c:\Dev\github\sipsorcery_bitcoin\build_msvc>msbuild /m bitcoin.sln /p:Configuration=Release /p:Platform=x64 /t:clean,build -> 24:51
sipsorcery

comment created time in an hour

issue commentbitcoin/bitcoin

Question: How to debug using docker & CI shell script?

Or you could write a Dockerfile with the desired environment and mount the source there.

kiminuo

comment created time in an hour

PR merged bitcoin/bitcoin

[backport] wallet: Do not treat default constructed types as None-type Backport

Github-Pull: #20410 Rebased-From: fac4e136fa3d0fab7fde900a6be921313e16e7a6

Github-Pull: #20410 Rebased-From: fa69c2c78455fd0dc436018fece9ff7fc83a180d

+21 -26

0 comment

3 changed files

MarcoFalke

pr closed time in an hour

push eventbitcoin/bitcoin

MarcoFalke

commit sha fac4e136fa3d0fab7fde900a6be921313e16e7a6

refactor: Change pointer to reference because it can not be null

view details

MarcoFalke

commit sha fa69c2c78455fd0dc436018fece9ff7fc83a180d

wallet: Do not treat default constructed types as None-type

view details

MarcoFalke

commit sha d47d16025e21d6e59da102f8ee965965fd9bbb34

Merge #20485: [backport] wallet: Do not treat default constructed types as None-type fa69c2c78455fd0dc436018fece9ff7fc83a180d wallet: Do not treat default constructed types as None-type (MarcoFalke) fac4e136fa3d0fab7fde900a6be921313e16e7a6 refactor: Change pointer to reference because it can not be null (MarcoFalke) Pull request description: Github-Pull: #20410 Rebased-From: fac4e136fa3d0fab7fde900a6be921313e16e7a6 Github-Pull: #20410 Rebased-From: fa69c2c78455fd0dc436018fece9ff7fc83a180d Top commit has no ACKs. Tree-SHA512: 05c3fe29677710b57dcc482fd529b0ab79475519f60f9cfde19f956c4e2212d09b042af458ec4f1272c581360ce841b735dca4df144e0798b3ccf16547de9cd0

view details

push time in an hour

PR merged bitcoin/bitcoin

[backport] test: Fix intermittent issue in mempool_compatibility Backport

Github-Pull: #20456 Rebased-From: fa05d19bd6ba619bb3f9aabc05c439cd18d34544

+2 -1

0 comment

1 changed file

MarcoFalke

pr closed time in an hour

push eventbitcoin/bitcoin

MarcoFalke

commit sha fa05d19bd6ba619bb3f9aabc05c439cd18d34544

test: Fix intermittent issue in mempool_compatibility

view details

MarcoFalke

commit sha 4e964094dbcbbbf8e587663a3ef3a85c075f4599

Merge #20486: [backport] test: Fix intermittent issue in mempool_compatibility fa05d19bd6ba619bb3f9aabc05c439cd18d34544 test: Fix intermittent issue in mempool_compatibility (MarcoFalke) Pull request description: Github-Pull: #20456 Rebased-From: fa05d19bd6ba619bb3f9aabc05c439cd18d34544 Top commit has no ACKs. Tree-SHA512: c07ed3ffab315da2bf70427882e2da8216964fef97dd538d7c46c5d5b3563b0732626ffbe4b0e19537ad49a8542eedb3c08850cccacdef466f24582defe99d22

view details

push time in an hour

issue commentbitcoin/bitcoin

Question: How to debug using docker & CI shell script?

The CIs compile from a make dist tarball, so if you want to modify the code, you'll need to modify the one in ./ci/scratch/... inside the docker

kiminuo

comment created time in an hour

issue openedbitcoin/bitcoin

Question: How to debug using CI shell script?

Hi,

my PR #19245 fails on several platforms so I have attempted to run on my Ubuntu 20.04:

FILE_ENV="./ci/test/00_setup_env_native_tsan.sh" ./ci/test_run_all.sh

as per instructions in https://github.com/bitcoin/bitcoin/tree/master/ci.

I can reproduce issue on CI which is great news. However, I would love to modify source code and re-run the FILE_ENV="./ci/test/00_setup_env_native_tsan.sh" ./ci/test_run_all.sh script or attach to docker to run a failing functional test again so that I can debug it easier.

Does anybody have a workflow for this?

Notes:

  • I've tried docker attach <container ID> but it's not possible to simply execute test/functional/wallet_hd.py as it fails in that docker instance because it is supposed to be run somehow differently (that's as much as I gather from studying ci/test_run_all.sh).

created time in 2 hours

push eventbitcoin-core/gitian.sigs

Hennadii Stepanov

commit sha ef9671b039304e749e73308604c8d033bfa88d79

hebasto 0.21.0rc2 unsigned

view details

Michael Ford

commit sha 8cc2a4a99713cd12afd5adee20b829a2c3ddab24

Merge pull request #1317 from hebasto/0.21.0rc2-unsigned hebasto 0.21.0rc2 unsigned (LXC 4.0.2)

view details

push time in 2 hours

pull request commentbitcoin/bitcoin

rpc: Validate -rpcauth arguments

Additional fields is not necessarily an error.

@luke-jr what do you suggest? Ignore the whole argument? Just use the the first 3 fields? Not sure about the debug log since it's a sensitive value.

promag

comment created time in 2 hours

issue commentrust-bitcoin/rust-bitcoin

Exposing serialized data for transaction signatures

This is already done and released. The issue can be closed in my opinion.

ipaljak-tbtl

comment created time in 2 hours

Pull request review commentbitcoin/bitcoin

[WIP DONOTMERGE] Replace boost with C++17

 class DescribeWalletAddressVisitor : public boost::static_visitor<UniValue>             UniValue subobj(UniValue::VOBJ);             UniValue detail = DescribeAddress(embedded);             subobj.pushKVs(detail);-            UniValue wallet_detail = boost::apply_visitor(*this, embedded);+            UniValue wallet_detail = std::visit(*this, embedded);

resolved, now that a52ecc9 is merged

MarcoFalke

comment created time in 2 hours

Pull request review commentbitcoin/bitcoin

[WIP DONOTMERGE] Replace boost with C++17

 static UniValue listunspent(const JSONRPCRequest& request)             std::unique_ptr<SigningProvider> provider = pwallet->GetSolvingProvider(scriptPubKey);             if (provider) {                 if (scriptPubKey.IsPayToScriptHash()) {-                    const CScriptID& hash = CScriptID(boost::get<ScriptHash>(address));+                    const CScriptID& hash = CScriptID(std::get<ScriptHash>(address));

resolved, now that a52ecc9 is merged

MarcoFalke

comment created time in 2 hours

pull request commentbitcoin/bitcoin

draft: Add syscall sandboxing using seccomp-bpf (Linux secure computing mode)

Concept ACK, nice work!

practicalswift

comment created time in 2 hours

PR opened bitcoin/bitcoin

draft: Add syscall sandboxing using seccomp-bpf (Linux secure computing mode)

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. It is disabled by default.

The feature is enabled via the configure-flag --enable-syscall-sandbox.

In this implementation the allowed syscalls are defined on a per thread basis.

This feature has two modes of operation:

  • Debug mode (default): If a non-allowlisted syscall is called a debug handler will be invoked. Debug info will be printed (ERROR: The syscall "execve" (syscall number 59) is not allowed by the syscall sandbox in thread "msghand". Please report. Exiting.) and std::terminate is called.
  • Kill mode: If a non-allowlisted syscall is called the kernel will immediately kill the offending thread. This is an experimental mode and is currently enabled via setting the environment variable EXPERIMENTAL_SYSCALL_SANDBOX_MODE_KILL_THREAD.

I've used this feature for roughly six months now (in the debug mode) and I find it to be a helpful testing/debugging addition which makes it much easier to do reason about the actual capabilities required of each thread in Bitcoin Core.

About seccomp and seccomp-bpf:

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.)

+683 -7

0 comment

30 changed files

pr created time in 2 hours

issue commentbitcoin/bitcoin

build error with secp256k1 on OSX

Fixed in #20469.

Yihen

comment created time in 2 hours

pull request commentbitcoin/bitcoin

refactor: Treat CDataStream bytes as uint8_t

Concept ACK

MarcoFalke

comment created time in 2 hours

pull request commentbitcoin/bitcoin

Erlay: bandwidth-efficient transaction relay protocol

<!--cf906140f33d8803c4a75a2196329ecb--> 🐙 This pull request conflicts with the target branch and needs rebase.

<sub>Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".</sub>

naumenkogs

comment created time in 3 hours

pull request commentbitcoin/bitcoin

util: use stronger-guarantee rename method

@luke-jr that's right, but #20460 is just an issue/idea, without a patch (yet)...

vasild

comment created time in 3 hours

pull request commentbitcoin/bitcoin

test: Implicitly sync after generate* to preempt races and intermittent test failures

<!--cf906140f33d8803c4a75a2196329ecb--> 🐙 This pull request conflicts with the target branch and needs rebase.

<sub>Want to unsubscribe from rebase notifications on this pull request? Just convert this pull request to a "draft".</sub>

MarcoFalke

comment created time in 3 hours

pull request commentbitcoin/bitcoin

build: use C++17 in depends

I suppose for that version we can also just use c++17 in not need the 1z temporary name.

Yep, we will be able to. 5.15.x understands -c++std c++17.

fanquake

comment created time in 3 hours

more