29.0 RC Testing Guide Feedback #32026

issue janb84 opened this issue on March 10, 2025
  1. janb84 commented at 3:44 PM on March 10, 2025: contributor

    This issue is to discuss the 29.0 Release Candidate Testing Guide. If you have any feedback on the document, please leave a comment here.

    Note: This is for feedback on the document, not on Bitcoin Core or on the 29.0 changes.

    Thank you for taking a look at the guide and leaving your feedback.

    ps. The initial page was co-authored-by: @arejula27 @musaHaruna @Prabhat1308 As part of the 2025 Chaincode labs BOSS program

  2. darosior commented at 3:34 PM on March 11, 2025: member

    For pinholing could you encourage people to test against their router at home and share the result along with the model of their router at #31663?

  3. janb84 commented at 4:20 PM on March 11, 2025: contributor

    For pinholing could you encourage people to test against their router at home and share the result along with the model of their router at #31663? @darosior Thank you for your feedback! I've made several improvements:

    • Added text with a link to the issue mentioned with a request to test and report.
    • Implemented the missing successful PCP logging that was mentioned in the issue
    • Added a clarifying statement to enable PCP if an attempt fails
  4. hodlinator commented at 2:43 PM on March 12, 2025: contributor

    Thanks for working on this!

    ... After running through the steps in this guide, you are encouraged to do your own testing.

    This can be as simple as testing the same features in this guide but trying it a different way. ...

    These seem like they belong in the same paragraph? Either replace "This" with "Your own testing" or bring them together.

    introduces ephemeral dust to improve transaction packaging

    Ephemeral dust transactions should be combined with a transaction that spends from the dust and pays fees, but we don't yet even have package relay (instead currently relying on orphan-logic). To me ephemeral dust enables exogenous fees, avoiding the need to commit to a fee-rate. Would say "introduces ephemeral dust in order to defer committing to fees".

    Libnatpmp was replaced with a built-in implementation of PCP and NAT-PMP.

    "custom" or "bespoke" rather than "built-in"?

    wil result that Bitcoin core wil fail to start.

    will

    getmininginfo

    Might be cool if one could provoke a case where next had different values from current. regtest has a nMinerConfirmationWindow of 144 blocks instead of the regular 2016, but I don't know how/if difficulty adjustments work there.

    getblock, getblockheader, getblockchaininfo, getchainstates

    Feels a bit verbose how the guide currently goes through all the added target/bits fields, maybe one could just list the RPCs and what new fields to expect, then list one example output?

  5. fanquake added this to the milestone 29.0 on Mar 13, 2025
  6. janb84 commented at 1:05 PM on March 15, 2025: contributor

    Thanks for working on this!

    ... After running through the steps in this guide, you are encouraged to do your own testing. This can be as simple as testing the same features in this guide but trying it a different way. ...

    These seem like they belong in the same paragraph? Either replace "This" with "Your own testing" or bring them together.

    Changed ✅

    introduces ephemeral dust to improve transaction packaging

    Ephemeral dust transactions should be combined with a transaction that spends from the dust and pays fees, but we don't yet even have package relay (instead currently relying on orphan-logic). To me ephemeral dust enables exogenous fees, avoiding the need to commit to a fee-rate. Would say "introduces ephemeral dust in order to defer committing to fees".

    Changed ✅

    Libnatpmp was replaced with a built-in implementation of PCP and NAT-PMP.

    "custom" or "bespoke" rather than "built-in"?

    Changed ✅

    wil result that Bitcoin core wil fail to start.

    will

    Changed ✅

    getmininginfo

    Might be cool if one could provoke a case where next had different values from current. regtest has a nMinerConfirmationWindow of 144 blocks instead of the regular 2016, but I don't know how/if difficulty adjustments work there.

    Open 🤔

    getblock, getblockheader, getblockchaininfo, getchainstates

    Feels a bit verbose how the guide currently goes through all the added target/bits fields, maybe one could just list the RPCs and what new fields to expect, then list one example output?

    Changed ✅

    Thanks for the feedback. We made changes accordingly

  7. fanquake pinned this on Mar 17, 2025
  8. Emzy commented at 6:09 PM on March 19, 2025: contributor

    I tested the PCP functionality with v29.0rc2.

    Started it like this on my m3 mac /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -signet -natpmp=1 -debug=net

    Router is a FRITZ!Box 7530 AX with up to date firmware version 8.02.

    First I got this for ipv4:

    2025-03-19T17:13:52Z [net] pcp: Requesting port mapping for addr 0.0.0.0 port 38333 from gateway 192.168.99.1
    2025-03-19T17:13:52Z [net] pcp: Internal address after connect: 192.168.99.114
    2025-03-19T17:13:52Z [net] pcp: Received response of 60 bytes:[xxx]
    2025-03-19T17:13:52Z [net:warning] pcp: Mapping failed with result NOT_AUTHORIZED (code 2)
    

    I needed to allow PCP in my router via: Internet > Permit Access > Port Sharing > Add Device for Sharing > Permit independent port sharing for this device After this it worked:

    2025-03-19T17:24:28Z [net] pcp: Requesting port mapping for addr 0.0.0.0 port 38333 from gateway 192.168.99.1
    2025-03-19T17:24:28Z [net] pcp: Internal address after connect: 192.168.99.114
    2025-03-19T17:24:28Z [net] pcp: Received response of 60 bytes: [xxx]
    2025-03-19T17:24:28Z [net:info] portmap: Added mapping pcp:87.x.x.x:38333 -> 192.168.99.114:38333 (for 13s)
    

    I also checked from a public node to connect to this node on my LAN. And it worked fine.

    I have native ipv6 at home. But the ipv6 pinholing seems not to work. Maybe I router has no support for it. Also I can't find a special setting apart from the Permit independent port sharing for this device.

    I see this in the log:

    2025-03-19T17:24:28Z [net] pcp: Requesting port mapping for addr 2001:x:x:x:x:x:x:x port 38333 from gateway fe80:x:x:x:x:x:x:x%14
    2025-03-19T17:24:28Z [net] pcp: Internal address after connect: 2001:x:x:x:x:x:x:x
    2025-03-19T17:24:28Z [net] pcp: Received response of 60 bytes: [xxx]
    2025-03-19T17:24:28Z [net:warning] pcp: Mapping failed with result NOT_AUTHORIZED (code 2)
    2025-03-19T17:24:28Z [net] pcp: Requesting port mapping for addr 2001:x:x:x:x:x:x:x port 38333 from gateway fe80:e:
    :3e37:12ff:fe12:ce12%14
    2025-03-19T17:24:28Z [net] pcp: Internal address after connect: 2001:x:x:x:x:x:x:x
    2025-03-19T17:24:28Z [net] pcp: Received response of 60 bytes: [xxx]
    2025-03-19T17:24:28Z [net:warning] pcp: Mapping failed with result NOT_AUTHORIZED (code 2)
    
  9. janb84 commented at 6:13 PM on March 19, 2025: contributor

    I tested the PCP functionality with v29.0rc2.

    Started it like this on my m3 mac /Applications/Bitcoin-Qt.app/Contents/MacOS/Bitcoin-Qt -signet -natpmp=1 -debug=net

    Router is a FRITZ!Box 7530 AX with up to date firmware version 8.02.

    First I got this for ipv4:

    2025-03-19T17:13:52Z [net] pcp: Requesting port mapping for addr 0.0.0.0 port 38333 from gateway 192.168.99.1
    2025-03-19T17:13:52Z [net] pcp: Internal address after connect: 192.168.99.114
    2025-03-19T17:13:52Z [net] pcp: Received response of 60 bytes:[xxx]
    2025-03-19T17:13:52Z [net:warning] pcp: Mapping failed with result NOT_AUTHORIZED (code 2)
    

    I needed to allow PCP in my router via: Internet > Permit Access > Port Sharing > Add Device for Sharing > Permit independent port sharing for this device After this it worked:

    2025-03-19T17:24:28Z [net] pcp: Requesting port mapping for addr 0.0.0.0 port 38333 from gateway 192.168.99.1
    2025-03-19T17:24:28Z [net] pcp: Internal address after connect: 192.168.99.114
    2025-03-19T17:24:28Z [net] pcp: Received response of 60 bytes: [xxx]
    2025-03-19T17:24:28Z [net:info] portmap: Added mapping pcp:87.x.x.x:38333 -> 192.168.99.114:38333 (for 13s)
    

    I also checked from a public node to connect to this node on my LAN. And it worked fine.

    I have native ipv6 at home. But the ipv6 pinholing seems not to work. Maybe I router has no support for it. Also I can't find a special setting apart from the Permit independent port sharing for this device.

    I see this in the log:

    2025-03-19T17:24:28Z [net] pcp: Requesting port mapping for addr 2001:x:x:x:x:x:x:x port 38333 from gateway fe80:x:x:x:x:x:x:x%14
    2025-03-19T17:24:28Z [net] pcp: Internal address after connect: 2001:x:x:x:x:x:x:x
    2025-03-19T17:24:28Z [net] pcp: Received response of 60 bytes: [xxx]
    2025-03-19T17:24:28Z [net:warning] pcp: Mapping failed with result NOT_AUTHORIZED (code 2)
    2025-03-19T17:24:28Z [net] pcp: Requesting port mapping for addr 2001:x:x:x:x:x:x:x port 38333 from gateway fe80:e:
    :3e37:12ff:fe12:ce12%14
    2025-03-19T17:24:28Z [net] pcp: Internal address after connect: 2001:x:x:x:x:x:x:x
    2025-03-19T17:24:28Z [net] pcp: Received response of 60 bytes: [xxx]
    2025-03-19T17:24:28Z [net:warning] pcp: Mapping failed with result NOT_AUTHORIZED (code 2)
    

    Thanks for the feedback, would you be so kind to copy this comment and also make a comment here

  10. frankomosh commented at 5:55 AM on March 24, 2025: none

    This issue is to discuss the 29.0 Release Candidate Testing Guide. If you have any feedback on the document, please leave a comment here.

    Note: This is for feedback on the document, not on Bitcoin Core or on the 29.0 changes.

    Thank you for taking a look at the guide and leaving your feedback.

    ps. The initial page was co-authored-by: @arejula27 @musaHaruna @Prabhat1308 As part of the 2025 Chaincode labs BOSS program

    Thanks for the comprehensive guide.

  11. pinheadmz commented at 5:33 PM on March 27, 2025: member
  12. Prabhat1308 commented at 5:45 PM on March 27, 2025: contributor
  13. i-am-yuvi commented at 10:39 AM on March 28, 2025: contributor

    I have tested on my local machine and here are some of my observation https://github.com/i-am-yuvi/bitcoin-core-issues-prs-notes/blob/master/29.0rc_testing.md

  14. janb84 commented at 10:50 AM on March 28, 2025: contributor

    I have tested on my local machine and here are some of my observation https://github.com/i-am-yuvi/bitcoin-core-issues-prs-notes/blob/master/29.0rc_testing.md

    Thanks for the report ! Would you be so kind to make an extract from the PCP / NAT-PMP part your findings to a comment here. Would be so helpful !

    Thanks again

  15. Prabhat1308 commented at 10:52 AM on March 28, 2025: contributor

    I have tested on my local machine and here are some of my observation https://github.com/i-am-yuvi/bitcoin-core-issues-prs-notes/blob/master/29.0rc_testing.md

    You might have missed building with 29.0 . I Don't see a reject-detail field in the last response you have tested.

  16. i-am-yuvi commented at 11:10 AM on March 28, 2025: contributor

    I have tested on my local machine and here are some of my observation https://github.com/i-am-yuvi/bitcoin-core-issues-prs-notes/blob/master/29.0rc_testing.md

    You might have missed building with 29.0 . I Don't see a reject-detail field in the last response you have tested.

    Thanks for this @Prabhat1308, for some reason, while testing the updated rpc I checked out v28.1rc. I have updated the report!

  17. monlovesmango commented at 6:44 PM on April 1, 2025: contributor

    Thanks for putting this guide together!! Some feedback below.

    In section 2.2, "Start the bitcoind session" command is missing a dash. Should be bitcoind29 -daemon but currently is bitcoind29 daemon.

    In section 3.1, why not make the commands use placeholders so reviewers can use the commands straight from the guide (like in section 2.2)? Makes reviewing much easier and more auditable. Here are the commands that would do this:

    coinbase_txid=$(bcli29 -regtest listunspent | jq -r ".[0].txid")
    echo $coinbase_txid
    
    satoshi_address=$(bcli29 -regtest getnewaddress)
    echo $satoshi_address
    
    tx_highfee=$(bcli29 -regtest createrawtransaction "[{\"txid\":\"$coinbase_txid\",\"vout\":0}]" \
        "[{\"$satoshi_address\":49.99990000},{\"data\":\"6a0001\"}]")
    echo $tx_highfee
    
    tx_highfee_signed=$(bcli29 -regtest signrawtransactionwithwallet $tx_highfee | jq -r .hex)
    echo $tx_highfee_signed
    
    bcli29 -regtest sendrawtransaction $tx_highfee_signed
    
    tx_lowfee=$(bcli29 -regtest createrawtransaction "[{\"txid\":\"$coinbase_txid\",\"vout\":0}]" \
        "[{\"$satoshi_address\":49.99995000},{\"data\":\"6a0001\"}]")
    echo $tx_lowfee
    
    tx_lowfee_signed=$(bcli29 -regtest signrawtransactionwithwallet $tx_lowfee | jq -r .hex)
    echo $tx_lowfee_signed
    
    bcli29 -regtest testmempoolaccept "[\"$tx_lowfee_signed\"]"
    

    In section 3.2, why does it say FIXME?

    In section 3.4, for getblockchaininfo and getchainstates commands remove the -regtest argument (or modify the rest of this section to actually use regtest).

    In section 3.5, why does it say FIXME?

    In section 4.1, "Start the bitcoind session" command is missing a dash. Should be bitcoind29 -daemon but currently is bitcoind29 daemon.

    Also, again, why not make the commands use placeholders so reviewers can use the commands straight from the guide (like in section 2.2)? Here are the commands that would do this:

    satoshi_address=$(bcli29 -regtest getnewaddress)
    echo $satoshi_address
    
    bcli29 generatetoaddress 420 $satoshi_address
    
    coinbase_txid=$(bcli29 -regtest listunspent 350 | jq -r ".[0].txid")
    echo $coinbase_txid
    
    tx=$(bcli29 -regtest createrawtransaction "[{\"txid\":\"$coinbase_txid\",\"vout\":0}]" \
        "[{\"$satoshi_address\":49.99995000}]")
    echo $tx
    
    tx_signed=$(bcli29 -regtest signrawtransactionwithwallet $tx | jq -r .hex)
    echo $tx_signed
    
    bcli29 -regtest sendrawtransaction $tx_signed
    
    bcli29 generatetoaddress 1 $satoshi_address
    
    relevant_blocks=$(bcli29 scanblocks start "[\"addr($satoshi_address)\"]" 420 | jq -c .relevant_blocks)
    echo $relevant_blocks
    
    bcli29 getdescriptoractivity "$relevant_blocks" "[\"addr($satoshi_address)\"]"
    
  18. arejula27 commented at 7:32 PM on April 1, 2025: none

    really appreciated your feedback @monlovesmango , working on it 🫡

  19. janb84 commented at 9:33 AM on April 2, 2025: contributor

    @monlovesmango Thanks for the extensive feedback, fixed (so far):

    • FIXME warnings are removed and replaced for requests for tests.
    • missing hyphens in starting commands are added. EDIT:
    • changed section 3.1
    • changed section 4.1
  20. nervana21 commented at 11:27 AM on April 5, 2025: none

    This minor typo:

    We now want to spend this transaction outputs.
    

    Should read:

    We now want to spend these transaction outputs.
    
  21. janb84 commented at 7:44 PM on April 5, 2025: contributor

    @nervana21 Thanks for the feedback, its changed now.

  22. fanquake commented at 4:10 PM on April 14, 2025: member
  23. fanquake closed this on Apr 14, 2025

  24. fanquake unpinned this on Apr 14, 2025

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2026-04-19 09:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me