Bitcoin Core Github
44 subscribers
121K links
Download Telegram
fanquake closed an issue: "Discussion: Upgrading to C++20"
(https://github.com/bitcoin/bitcoin/issues/23363)
💬 fanquake commented on issue "Discussion: Upgrading to C++20":
(https://github.com/bitcoin/bitcoin/issues/23363#issuecomment-1851893448)
Going to close this now that #28349 has been merged, and work is already underway to use C++20 code. I think further discussion about specific C++20 features, and their usage / compiler requirements, can continue in their own issues.
💬 maflcko commented on pull request "[WIP] C++20 std::views::reverse":
(https://github.com/bitcoin/bitcoin/pull/28687#issuecomment-1851904825)
Hmm, there's no clang-16 in the current LTS release of Ubuntu, so I guess this will have to wait for some time.

https://packages.ubuntu.com/jammy/clang-16


I wonder whether std::span will be usable, given that it internally assumes ranges?
💬 petertodd commented on pull request "datacarriersize: Match more datacarrying":
(https://github.com/bitcoin/bitcoin/pull/28408#issuecomment-1851916112)
> The original Satoshi client didn't allow embedding data onchain, this has always been an exploit.

Bitcoin was released with no standardness rules at all. You absolutely could embed data onchain. You could even publish arbitrary data to the UTXO set easily.
💬 maflcko commented on pull request "build: Enable -Wunreachable-code":
(https://github.com/bitcoin/bitcoin/pull/28999#issuecomment-1851949647)
> I don't think this works, because it will replace `__FILE__, __LINE__, __func__` with a meaningless string literal constant.

C++20 fixed that, see https://en.cppreference.com/w/cpp/utility/source_location
💬 furszy commented on pull request "wallet: Pass through transaction locktime and preset input sequences and scripts to CreateTransaction":
(https://github.com/bitcoin/bitcoin/pull/25273#discussion_r1423940397)
nit:
it seems that the version field is not sanitized. The user provided `tx.nVersion` is a int32_t while `coinControl.m_version` is a uint32_t.
👍 TheCharlatan approved a pull request: "Revert "ci: Only run functional tests on windows in master""
(https://github.com/bitcoin/bitcoin/pull/29059#pullrequestreview-1777427931)
ACK 7b22cd80e050b903b5765133b8116f4b17ce0296
💬 sdaftuar commented on pull request "Cluster size 2 package rbf":
(https://github.com/bitcoin/bitcoin/pull/28984#issuecomment-1852009874)
> size-2 package rbf can have 6 types of conflicts:
>
> 1. parent conflicts with solo
> 2. parent conflicts with child
> 3. parent conflicts with parent
> 4. child conflicts with parent
> 5. child conflicts with solo
> 6. child conflicts with child

I think if you state it this way, then there are more cases to write out (but they all simplify down to the same thing) -- the parent transaction in the incoming package can directly conflict with {solo tx, child tx, parent tx, both child t
...
📝 ismaelsadeeq opened a pull request: "Policy: Report reason inputs are non standard"
(https://github.com/bitcoin/bitcoin/pull/29060)
This PR is another attempt at #13525.

Transactions that fail `PreChecks` Validation due to non-standard inputs now returns invalid validation state`TxValidationResult::TX_INPUTS_NOT_STANDARD` along with a debug error message.

Previously, the debug error message for non-standard inputs do not specify why the inputs were considered non-standard.
Instead, the same error string, `bad-txns-nonstandard-inputs`, used for all types of non-standard input scriptSigs.

This PR updates the `AreI
...
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423981108)
taken
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423981481)
Added mention of no topological restrictions to the comment
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423981578)
added
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423982889)
Added a check for in-package + mempool ancestors, and both of your tests.
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423983165)
removed
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423983892)
I've changed the `RemovalReasonToString` to be "sizelimit or <=0 fee". Alternatively, we can add another reason?
💬 fanquake commented on pull request "build: Enable -Wunreachable-code":
(https://github.com/bitcoin/bitcoin/pull/28999#issuecomment-1852024695)
> C++20 fixed that, see https://en.cppreference.com/w/cpp/utility/source_location

Hopefully we'll be able to use this at some point, however Apple Clang does not support this at all yet, and it looks like it will also come with a LLVM 15, if not 16+ requirement as well.
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#issuecomment-1852028059)
> As a side effect, I think this will allow users to remove select entries from their non-full mempool by prioritizing to large negative values (so basically a poor man's https://github.com/bitcoin/bitcoin/pull/15873).

This was discussed as part of #27018, also see the discussion on irc that day: https://bitcoin-irc.chaincode.com/bitcoin-core-dev/2023-02-01. I think the general idea is "this is good, and will help avoid unspent ephemeral anchors."
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#discussion_r1423987772)
added this test
💬 glozow commented on pull request "v3 transaction policy for anti-pinning":
(https://github.com/bitcoin/bitcoin/pull/28948#issuecomment-1852030780)
Last push fixed issues and addressed most comments, I'm also working on adding more tests.
💬 maflcko commented on pull request "build: Enable -Wunreachable-code":
(https://github.com/bitcoin/bitcoin/pull/28999#issuecomment-1852031885)
Jup, it is GCC libstdc++11, or Clang libc++16, or later