Skip to content

Commit a2ab2fa

Browse files
committed
Merge bitcoin/bitcoin#31982: scripted-diff: rename libmultiprocess repository
18749ef scripted-diff: rename libmultiprocess repository (fanquake) Pull request description: For when we shift `libmultiprocess` into the `bitcoin-core` organisation. ACKs for top commit: Sjors: tACK 18749ef hebasto: ACK 18749ef. Tree-SHA512: df361e239da072dba2574e90231bbf8c4daf906786a838fe63761d38d5624510dbeeb6308567dc32321bd3bc76f1117606c8eb2c22e299aa164786ec342bd4b3
2 parents c2341eb + 18749ef commit a2ab2fa

File tree

3 files changed

+7
-7
lines changed

3 files changed

+7
-7
lines changed

depends/packages/native_libmultiprocess.mk

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package=native_libmultiprocess
22
$(package)_version=1954f7f65661d49e700c344eae0fc8092decf975
3-
$(package)_download_path=https://github.com/chaincodelabs/libmultiprocess/archive
3+
$(package)_download_path=https://github.com/bitcoin-core/libmultiprocess/archive
44
$(package)_file_name=$($(package)_version).tar.gz
55
$(package)_sha256_hash=fc014bd74727c1d5d30b396813685012c965d079244dd07b53bc1c75c610a2cb
66
$(package)_dependencies=native_capnp

doc/design/multiprocess.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ This section describes the major components of the Inter-Process Communication (
7474
- These Cap’n Proto files ([learn more about Cap'n Proto RPC](https://capnproto.org/rpc.html)) define the structure and format of messages that are exchanged over IPC. They serve as blueprints for generating C++ code that bridges the gap between high-level C++ interfaces and low-level socket communication.
7575

7676
### The `mpgen` Code Generation Tool
77-
- A central component of the IPC framework is the `mpgen` tool which is part the [`libmultiprocess` project](https://github.com/chaincodelabs/libmultiprocess). This tool takes the `.capnp` files as input and generates C++ code.
77+
- A central component of the IPC framework is the `mpgen` tool which is part the [`libmultiprocess` project](https://github.com/bitcoin-core/libmultiprocess). This tool takes the `.capnp` files as input and generates C++ code.
7878
- The generated code handles IPC communication, translating interface calls into socket reads and writes.
7979

8080
### C++ Client Subclasses in Generated Code
@@ -150,7 +150,7 @@ The currently defined IPC interfaces are unstable, and can change freely with no
150150

151151
## Security Considerations
152152

153-
The integration of [Cap’n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) into the Bitcoin Core architecture increases its potential attack surface. Cap’n Proto, being a complex and substantial new dependency, introduces potential sources of vulnerability, particularly through the creation of new UNIX sockets. The inclusion of libmultiprocess, while a smaller external dependency, also contributes to this risk. However, plans are underway to incorporate libmultiprocess as a git subtree, aligning it more closely with the project's well-reviewed internal libraries. While adopting these multiprocess features does introduce some risk, it's worth noting that they can be disabled, allowing builds without these new dependencies. This flexibility ensures that users can balance functionality with security considerations as needed.
153+
The integration of [Cap’n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/bitcoin-core/libmultiprocess) into the Bitcoin Core architecture increases its potential attack surface. Cap’n Proto, being a complex and substantial new dependency, introduces potential sources of vulnerability, particularly through the creation of new UNIX sockets. The inclusion of libmultiprocess, while a smaller external dependency, also contributes to this risk. However, plans are underway to incorporate libmultiprocess as a git subtree, aligning it more closely with the project's well-reviewed internal libraries. While adopting these multiprocess features does introduce some risk, it's worth noting that they can be disabled, allowing builds without these new dependencies. This flexibility ensures that users can balance functionality with security considerations as needed.
154154

155155
## Example Use Cases and Flows
156156

@@ -212,7 +212,7 @@ Further improvements are possible such as:
212212
- Automatically generating `.capnp` files from C++ interface definitions (see [Interface Definition Maintenance](#interface-definition-maintenance)).
213213
- Simplifying and stabilizing interfaces (see [Interface Stability](#interface-stability)).
214214
- Adding sandbox features, restricting subprocess access to resources and data (see [https://eklitzke.org/multiprocess-bitcoin](https://eklitzke.org/multiprocess-bitcoin)).
215-
- Using Cap'n Proto's support for [other languages](https://capnproto.org/otherlang.html), such as [Rust](https://github.com/capnproto/capnproto-rust), to allow code written in other languages to call Bitcoin Core C++ code, and vice versa (see [How to rustify libmultiprocess? #56](https://github.com/chaincodelabs/libmultiprocess/issues/56)).
215+
- Using Cap'n Proto's support for [other languages](https://capnproto.org/otherlang.html), such as [Rust](https://github.com/capnproto/capnproto-rust), to allow code written in other languages to call Bitcoin Core C++ code, and vice versa (see [How to rustify libmultiprocess? #56](https://github.com/bitcoin-core/libmultiprocess/issues/56)).
216216

217217
## Conclusion
218218

@@ -257,7 +257,7 @@ This modularization represents an advancement in Bitcoin Core's architecture, of
257257
## References
258258

259259
- **Cap’n Proto RPC protocol description**: https://capnproto.org/rpc.html
260-
- **libmultiprocess project page**: https://github.com/chaincodelabs/libmultiprocess
260+
- **libmultiprocess project page**: https://github.com/bitcoin-core/libmultiprocess
261261

262262
## Acknowledgements
263263

doc/multiprocess.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ The `-debug=ipc` command line option can be used to see requests and responses b
1212

1313
## Installation
1414

15-
The multiprocess feature requires [Cap'n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) as dependencies. A simple way to get started using it without installing these dependencies manually is to use the [depends system](../depends) with the `MULTIPROCESS=1` [dependency option](../depends#dependency-options) passed to make:
15+
The multiprocess feature requires [Cap'n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/bitcoin-core/libmultiprocess) as dependencies. A simple way to get started using it without installing these dependencies manually is to use the [depends system](../depends) with the `MULTIPROCESS=1` [dependency option](../depends#dependency-options) passed to make:
1616

1717
```
1818
cd <BITCOIN_SOURCE_DIRECTORY>
@@ -27,7 +27,7 @@ BITCOIND=$(pwd)/build/src/bitcoin-node build/test/functional/test_runner.py
2727

2828
The `cmake` build will pick up settings and library locations from the depends directory, so there is no need to pass `-DWITH_MULTIPROCESS=ON` as a separate flag when using the depends system (it's controlled by the `MULTIPROCESS=1` option).
2929

30-
Alternately, you can install [Cap'n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/chaincodelabs/libmultiprocess) packages on your system, and just run `cmake -B build -DWITH_MULTIPROCESS=ON` without using the depends system. The `cmake` build will be able to locate the installed packages via [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/). See [Installation](https://github.com/chaincodelabs/libmultiprocess/blob/master/doc/install.md) section of the libmultiprocess readme for install steps. See [build-unix.md](build-unix.md) and [build-osx.md](build-osx.md) for information about installing dependencies in general.
30+
Alternately, you can install [Cap'n Proto](https://capnproto.org/) and [libmultiprocess](https://github.com/bitcoin-core/libmultiprocess) packages on your system, and just run `cmake -B build -DWITH_MULTIPROCESS=ON` without using the depends system. The `cmake` build will be able to locate the installed packages via [pkg-config](https://www.freedesktop.org/wiki/Software/pkg-config/). See [Installation](https://github.com/bitcoin-core/libmultiprocess/blob/master/doc/install.md) section of the libmultiprocess readme for install steps. See [build-unix.md](build-unix.md) and [build-osx.md](build-osx.md) for information about installing dependencies in general.
3131

3232
## Usage
3333

0 commit comments

Comments
 (0)