mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-03-24 22:45:41 +01:00
Merge bitcoin/bitcoin#33074: [29.x] Backports
b9e637bd0edoc: update release notes for 29.x (fanquake)2b9738a083test: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify 'spend_vin' is the correct field (Chris Stewart)4e8abca445rpc: fix getpeerinfo ping duration unit docs (0xb10c)a08886d564doc: move `cmake -B build -LH` up in Unix build docs (Bufo)264418f80cdoc: Add rel note for breaking change in dumptxoutset RPC (Chris Stewart)a18b53f99eguix: warn SOURCE_DATE_EPOCH set in guix-codesign (will)9437415024tracing: fix pointer argument handling in mempool_monitor.py (deadmanoz)3cd8612cd7doc/zmq: fix unix socket path example (Roman Zeyde) Pull request description: Backports: * #33070 * #33073 * #33086 * #33088 * #33103 * #33119 * #33133 ACKs for top commit: glozow: ACKb9e637bd0eTree-SHA512: bf2a700ec4d730548cf5abf10930b41e26742ea23582149b0eddcaaa48c1db05ab657ef9ffc7dcba2d1af2e265d0ea866d7b484a321a9c9ac662a6dc2263d102
This commit is contained in:
@@ -73,19 +73,7 @@ mkdir -p "$VERSION_BASE"
|
||||
# SOURCE_DATE_EPOCH should not unintentionally be set
|
||||
################
|
||||
|
||||
if [ -n "$SOURCE_DATE_EPOCH" ] && [ -z "$FORCE_SOURCE_DATE_EPOCH" ]; then
|
||||
cat << EOF
|
||||
ERR: Environment variable SOURCE_DATE_EPOCH is set which may break reproducibility.
|
||||
|
||||
Aborting...
|
||||
|
||||
Hint: You may want to:
|
||||
1. Unset this variable: \`unset SOURCE_DATE_EPOCH\` before rebuilding
|
||||
2. Set the 'FORCE_SOURCE_DATE_EPOCH' environment variable if you insist on
|
||||
using your own epoch
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
check_source_date_epoch
|
||||
|
||||
################
|
||||
# Build directories should not exist
|
||||
|
||||
@@ -67,6 +67,12 @@ EOF
|
||||
exit 1
|
||||
fi
|
||||
|
||||
################
|
||||
# SOURCE_DATE_EPOCH should not unintentionally be set
|
||||
################
|
||||
|
||||
check_source_date_epoch
|
||||
|
||||
################
|
||||
# The codesignature git worktree should not be dirty
|
||||
################
|
||||
|
||||
@@ -21,6 +21,26 @@ check_tools() {
|
||||
done
|
||||
}
|
||||
|
||||
################
|
||||
# SOURCE_DATE_EPOCH should not unintentionally be set
|
||||
################
|
||||
|
||||
check_source_date_epoch() {
|
||||
if [ -n "$SOURCE_DATE_EPOCH" ] && [ -z "$FORCE_SOURCE_DATE_EPOCH" ]; then
|
||||
cat << EOF
|
||||
ERR: Environment variable SOURCE_DATE_EPOCH is set which may break reproducibility.
|
||||
|
||||
Aborting...
|
||||
|
||||
Hint: You may want to:
|
||||
1. Unset this variable: \`unset SOURCE_DATE_EPOCH\` before rebuilding
|
||||
2. Set the 'FORCE_SOURCE_DATE_EPOCH' environment variable if you insist on
|
||||
using your own epoch
|
||||
EOF
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
check_tools cat env readlink dirname basename git
|
||||
|
||||
################
|
||||
|
||||
@@ -66,7 +66,7 @@ BPF_PERF_OUTPUT(replaced_events);
|
||||
int trace_added(struct pt_regs *ctx) {
|
||||
struct added_event added = {};
|
||||
void *phash = NULL;
|
||||
bpf_usdt_readarg(1, ctx, phash);
|
||||
bpf_usdt_readarg(1, ctx, &phash);
|
||||
bpf_probe_read_user(&added.hash, sizeof(added.hash), phash);
|
||||
bpf_usdt_readarg(2, ctx, &added.vsize);
|
||||
bpf_usdt_readarg(3, ctx, &added.fee);
|
||||
@@ -78,9 +78,9 @@ int trace_added(struct pt_regs *ctx) {
|
||||
int trace_removed(struct pt_regs *ctx) {
|
||||
struct removed_event removed = {};
|
||||
void *phash = NULL, *preason = NULL;
|
||||
bpf_usdt_readarg(1, ctx, phash);
|
||||
bpf_usdt_readarg(1, ctx, &phash);
|
||||
bpf_probe_read_user(&removed.hash, sizeof(removed.hash), phash);
|
||||
bpf_usdt_readarg(2, ctx, preason);
|
||||
bpf_usdt_readarg(2, ctx, &preason);
|
||||
bpf_probe_read_user_str(&removed.reason, sizeof(removed.reason), preason);
|
||||
bpf_usdt_readarg(3, ctx, &removed.vsize);
|
||||
bpf_usdt_readarg(4, ctx, &removed.fee);
|
||||
@@ -93,9 +93,9 @@ int trace_removed(struct pt_regs *ctx) {
|
||||
int trace_rejected(struct pt_regs *ctx) {
|
||||
struct rejected_event rejected = {};
|
||||
void *phash = NULL, *preason = NULL;
|
||||
bpf_usdt_readarg(1, ctx, phash);
|
||||
bpf_usdt_readarg(1, ctx, &phash);
|
||||
bpf_probe_read_user(&rejected.hash, sizeof(rejected.hash), phash);
|
||||
bpf_usdt_readarg(2, ctx, preason);
|
||||
bpf_usdt_readarg(2, ctx, &preason);
|
||||
bpf_probe_read_user_str(&rejected.reason, sizeof(rejected.reason), preason);
|
||||
rejected_events.perf_submit(ctx, &rejected, sizeof(rejected));
|
||||
return 0;
|
||||
@@ -104,12 +104,12 @@ int trace_rejected(struct pt_regs *ctx) {
|
||||
int trace_replaced(struct pt_regs *ctx) {
|
||||
struct replaced_event replaced = {};
|
||||
void *phash_replaced = NULL, *phash_replacement = NULL;
|
||||
bpf_usdt_readarg(1, ctx, phash_replaced);
|
||||
bpf_usdt_readarg(1, ctx, &phash_replaced);
|
||||
bpf_probe_read_user(&replaced.replaced_hash, sizeof(replaced.replaced_hash), phash_replaced);
|
||||
bpf_usdt_readarg(2, ctx, &replaced.replaced_vsize);
|
||||
bpf_usdt_readarg(3, ctx, &replaced.replaced_fee);
|
||||
bpf_usdt_readarg(4, ctx, &replaced.replaced_entry_time);
|
||||
bpf_usdt_readarg(5, ctx, phash_replacement);
|
||||
bpf_usdt_readarg(5, ctx, &phash_replacement);
|
||||
bpf_probe_read_user(&replaced.replacement_hash, sizeof(replaced.replacement_hash), phash_replacement);
|
||||
bpf_usdt_readarg(6, ctx, &replaced.replacement_vsize);
|
||||
bpf_usdt_readarg(7, ctx, &replaced.replacement_fee);
|
||||
|
||||
@@ -9,6 +9,10 @@ To Build
|
||||
|
||||
```bash
|
||||
cmake -B build
|
||||
```
|
||||
Run `cmake -B build -LH` to see the full list of available options.
|
||||
|
||||
```bash
|
||||
cmake --build build # Append "-j N" for N parallel jobs
|
||||
cmake --install build # Optional
|
||||
```
|
||||
@@ -171,13 +175,6 @@ In this case there is no dependency on SQLite or Berkeley DB.
|
||||
|
||||
Mining is also possible in disable-wallet mode using the `getblocktemplate` RPC call.
|
||||
|
||||
Additional Configure Flags
|
||||
--------------------------
|
||||
A list of additional configure flags can be displayed with:
|
||||
|
||||
cmake -B build -LH
|
||||
|
||||
|
||||
Setup and Build Example: Arch Linux
|
||||
-----------------------------------
|
||||
This example lists the steps necessary to setup and build a command line only distribution of the latest changes on Arch Linux:
|
||||
|
||||
@@ -48,6 +48,12 @@ Notable changes
|
||||
|
||||
- #32521 policy: make pathological transactions packed with legacy sigops non-standard
|
||||
|
||||
### RPC
|
||||
|
||||
- The `dumptxoutset` RPC now requires a `type` parameter to be specified. To maintain pre
|
||||
v29.0 behavior, use the `latest` parameter. Documenting this change was missed in the v29.0
|
||||
release notes. (#30808)
|
||||
|
||||
### Updated Settings
|
||||
|
||||
- The `-maxmempool` and `-dbcache` startup parameters are now capped on
|
||||
@@ -104,6 +110,7 @@ Notable changes
|
||||
- #32837 depends: fix libevent _WIN32_WINNT usage
|
||||
- #32943 depends: Force CMAKE_EXPORT_NO_PACKAGE_REGISTRY=TRUE
|
||||
- #32954 cmake: Drop no longer necessary "cmakeMinimumRequired" object
|
||||
- #33073 guix: warn SOURCE_DATE_EPOCH set in guix-codesign
|
||||
|
||||
### Gui
|
||||
|
||||
@@ -126,6 +133,10 @@ Notable changes
|
||||
- #32777 doc: fix Transifex 404s
|
||||
- #32846 doc: clarify that the "-j N" goes after the "--build build" part
|
||||
- #32858 doc: Add workaround for vcpkg issue with paths with embedded spaces
|
||||
- #33070 doc/zmq: fix unix socket path example
|
||||
- #33088 doc: move cmake -B build -LH up in Unix build docs
|
||||
- #33133 rpc: fix getpeerinfo ping duration unit docs
|
||||
- #33119 rpc: Fix 'getdescriptoractivity' RPCHelpMan, add test to verify fix
|
||||
|
||||
### CI
|
||||
|
||||
@@ -136,19 +147,24 @@ Notable changes
|
||||
- #32187 refactor: Remove spurious virtual from final ~CZMQNotificationInterface
|
||||
- #32454 tracing: fix invalid argument in mempool_monitor
|
||||
- #32771 contrib: tracing: Fix read of pmsg_type in p2p_monitor.py
|
||||
- #33086 contrib: [tracing] fix pointer argument handling in mempool_monitor.py
|
||||
|
||||
Credits
|
||||
=======
|
||||
|
||||
Thanks to everyone who directly contributed to this release:
|
||||
|
||||
- 0xB10C
|
||||
- achow101
|
||||
- Antoine Poinsot
|
||||
- benthecarman
|
||||
- bigspider
|
||||
- Brandon Odiwuor
|
||||
- brunoerg
|
||||
- Bufo
|
||||
- Christewart
|
||||
- davidgumberg
|
||||
- deadmanoz
|
||||
- dergoegge
|
||||
- enirox001
|
||||
- fanquake
|
||||
@@ -168,6 +184,7 @@ Thanks to everyone who directly contributed to this release:
|
||||
- nervana21
|
||||
- pablomartin4btc
|
||||
- rkrux
|
||||
- romanz
|
||||
- ryanofsky
|
||||
- Sjors
|
||||
- theStack
|
||||
|
||||
@@ -84,7 +84,7 @@ For instance:
|
||||
$ bitcoind -zmqpubhashtx=tcp://127.0.0.1:28332 \
|
||||
-zmqpubhashtx=tcp://192.168.1.2:28332 \
|
||||
-zmqpubhashblock="tcp://[::1]:28333" \
|
||||
-zmqpubrawtx=ipc:///tmp/bitcoind.tx.raw \
|
||||
-zmqpubrawtx=unix:/tmp/bitcoind.tx.raw \
|
||||
-zmqpubhashtxhwm=10000
|
||||
|
||||
Each PUB notification has a topic and body, where the header
|
||||
|
||||
@@ -2625,7 +2625,7 @@ static RPCHelpMan getdescriptoractivity()
|
||||
{RPCResult::Type::STR_HEX, "blockhash", /*optional=*/true, "The blockhash this spend appears in (omitted if unconfirmed)"},
|
||||
{RPCResult::Type::NUM, "height", /*optional=*/true, "Height of the spend (omitted if unconfirmed)"},
|
||||
{RPCResult::Type::STR_HEX, "spend_txid", "The txid of the spending transaction"},
|
||||
{RPCResult::Type::NUM, "spend_vout", "The vout of the spend"},
|
||||
{RPCResult::Type::NUM, "spend_vin", "The input index of the spend"},
|
||||
{RPCResult::Type::STR_HEX, "prevout_txid", "The txid of the prevout"},
|
||||
{RPCResult::Type::NUM, "prevout_vout", "The vout of the prevout"},
|
||||
{RPCResult::Type::OBJ, "prevout_spk", "", ScriptPubKeyDoc()},
|
||||
|
||||
@@ -80,7 +80,7 @@ static RPCHelpMan ping()
|
||||
{
|
||||
return RPCHelpMan{"ping",
|
||||
"\nRequests that a ping be sent to all other nodes, to measure ping time.\n"
|
||||
"Results provided in getpeerinfo, pingtime and pingwait fields are decimal seconds.\n"
|
||||
"Results are provided in getpeerinfo.\n"
|
||||
"Ping command is handled in queue with all other commands, so it measures processing backlog, not just network ping.\n",
|
||||
{},
|
||||
RPCResult{RPCResult::Type::NONE, "", ""},
|
||||
@@ -145,9 +145,9 @@ static RPCHelpMan getpeerinfo()
|
||||
{RPCResult::Type::NUM, "bytesrecv", "The total bytes received"},
|
||||
{RPCResult::Type::NUM_TIME, "conntime", "The " + UNIX_EPOCH_TIME + " of the connection"},
|
||||
{RPCResult::Type::NUM, "timeoffset", "The time offset in seconds"},
|
||||
{RPCResult::Type::NUM, "pingtime", /*optional=*/true, "The last ping time in milliseconds (ms), if any"},
|
||||
{RPCResult::Type::NUM, "minping", /*optional=*/true, "The minimum observed ping time in milliseconds (ms), if any"},
|
||||
{RPCResult::Type::NUM, "pingwait", /*optional=*/true, "The duration in milliseconds (ms) of an outstanding ping (if non-zero)"},
|
||||
{RPCResult::Type::NUM, "pingtime", /*optional=*/true, "The last ping time in seconds, if any"},
|
||||
{RPCResult::Type::NUM, "minping", /*optional=*/true, "The minimum observed ping time in seconds, if any"},
|
||||
{RPCResult::Type::NUM, "pingwait", /*optional=*/true, "The duration in seconds of an outstanding ping (if non-zero)"},
|
||||
{RPCResult::Type::NUM, "version", "The peer version, such as 70001"},
|
||||
{RPCResult::Type::STR, "subver", "The string version"},
|
||||
{RPCResult::Type::BOOL, "inbound", "Inbound (true) or Outbound (false)"},
|
||||
|
||||
@@ -182,6 +182,7 @@ class GetBlocksActivityTest(BitcoinTestFramework):
|
||||
|
||||
assert result['activity'][2]['type'] == 'spend'
|
||||
assert result['activity'][2]['spend_txid'] == sent2['txid']
|
||||
assert result['activity'][2]['spend_vin'] == 0
|
||||
assert result['activity'][2]['prevout_txid'] == sent1['txid']
|
||||
assert result['activity'][2]['blockhash'] == blockhash_2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user