• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

btcsuite / btcd
56%
master: 55%

Build:
Build:
LAST BUILD BRANCH: silent-payments
DEFAULT BRANCH: master
Repo Added 08 Jul 2020 04:54PM UTC
Token 65UIOKCVtiKf79lUbGhy4oTQ2nKiGIHv2 regen
Build 1303 Last
Files 288
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

LAST BUILD ON BRANCH truc-v2-impl
branch: truc-v2-impl
CHANGE BRANCH
x
Reset
Sync Branches
  • truc-v2-impl
  • #2106
  • 2020-10-06-wallet-rpcs
  • 2022-02-10-1587
  • 2022-04-30-decode-for-net
  • 2022-11-06-implement-getchaintips
  • 2023-05-16-run-gofmt
  • 2023-09-25-change-is-sync-candidate-behavior
  • 2023-10-12-add-integration-test-for-prune
  • 2023-12-update-pkt-dns-seed
  • 2024-01-03-add-last-flush-time-on-initconsistentstate
  • 2024-01-22-dont-update-mempool
  • 2024-02-15-dont-rely-on-height-fetching
  • 2024-02-15-no-utxocache-loading-on-reorgs
  • 2024-02-27-no-panic-for-subscription-callback-errors
  • 2024-03-05-fix-intermittent-addrmgr-bug
  • 2024-03-07-make-duplicate-entries-on-mapslice-impossible
  • 2024-04-01-parallel-ibd
  • 2024-04-02-add-is-ancestor
  • 2024-04-02-invalidate-block
  • 2024-04-23-add-darwin-arm
  • 2024-04-23-update-dnsseeds
  • 2024-04-30-add-reconsiderblock
  • 2024-05-01-fix-logs
  • 2024-05-05-add-rpccalls-for-invalidate-and-reconsiderblock
  • 2024-07-01-close-blockfiles
  • 2024-07-17-increase-flush-time
  • 2024-08-06-execution-trace-flag
  • 2024-08-fix-unmarshaljson
  • 2024-10-29-dont-accept-txs-when-were-not-current
  • 2024-11-29-fix-ibd-not-working
  • 2024-12-10-meet-peer-query-interface
  • 2024-12-26-add-checkpointed-blocks-query
  • 2024-12-26-add-connected-peers
  • 2024-12-26-add-peer-subscribers
  • 2024-12-26-refactor-handle-block-msg
  • 2024-12-30-add-prune-to-sample-btcd.conf
  • 2025-01-16-dont-ask-for-blocks-from-same-height-peers
  • 2025-02-17-exit-when-running-out-of-disk-space
  • 2025-07-remove-alert
  • 2025-09-16-new-parallel-block-downloads
  • 2025-09-20-add-treapnode-pool
  • 2025-11-12-fix-android-builds
  • 2181_eugene
  • 2183_eugene
  • 2372-fix-bip32-derivation-overflow-bug
  • DecodeNoLimitVersioned
  • Fix/typos/20251107111502
  • FixCoverallCoverage
  • LICENSE-btcsuite
  • TestGetBestBlockHashAsync
  • a-little-taproot
  • add-blockindex-parentskips
  • add-connections-in-out-field-to-getnetworkinforesult
  • add-gemini-style-guide
  • add-gettxspendingprevout
  • add-json-support
  • add-memory-profiling
  • add-msgtx-txid
  • add-nextavailableport
  • add-pruning
  • add-pubkey-serialized-type
  • add-signrawtransactionwithwallet
  • add-tests-witness-limits
  • add-tokenizer
  • addBIP0322SignedMessageTag
  • addGeminiCodeAssist
  • add_gettxfee
  • addr-rw-lock
  • base58-fix
  • bchd-retract
  • bg
  • bip-340-signing
  • bip-8-prep
  • bip-musig2-psbt
  • bip125-inherited-replacement
  • bip324-modules
  • bip340
  • bip340-schnorr-verification
  • bitcoind-v30-error
  • block-count
  • bloom-update
  • btc-client-correct-dialcontext
  • btc-client-respect-context
  • btcctl-config-error
  • btcd-24
  • btcd-24-0-2-rc1
  • btcd-calcsighash-optimizations
  • btcd_addrv2
  • btcec-fix
  • btcec-no-chainhash
  • btcec-v2-1-0
  • btcec-v2-no-circular-dep
  • btcec-v2.2-branch
  • btcec/v2.3.5
  • btcec/v2.3.6
  • btcutil
  • btcutil-move
  • btcutil-psbt-update-dec-2023
  • btcutil-tag-updates
  • bugfix/rpctest_ports_race
  • build-improvements
  • bulk
  • bump-btcutils-versions
  • bump-go-version
  • bumpWithnessItemPerInputMax
  • catch-shutdown
  • chainhash-v-1-1-0-btcutil
  • chainhash_json
  • chainhash_json_unmarshal
  • changes-0.22
  • check-signature
  • chore/update_psbt_deps
  • config-disable-stall-handler
  • converttopsbt
  • create-rawtransaction-replaceable
  • create-wallet-functional-opts
  • ctrl-block-error
  • dcr-ec
  • deepCopyPk
  • derive-addresses-rpcclient
  • doc-link
  • dockerbuild
  • docs-update-go-version-contrib-guidelines
  • docupdate
  • dont-serialize-tx-for-txhash
  • ebiiim-patch-1
  • ellswift
  • encrypt-decrypt
  • error-matching
  • exportCheckStandardnessFunc
  • exportMuSigSignOptions
  • exportNumFuncs
  • export_header_funcs
  • expose-newfutureerror
  • external-peer-testing
  • extreme-tests
  • fallback-to-GOPATH-bin-dir
  • feat/add-testnet4-support
  • feature/bump-go-version
  • feature/fix-ci
  • feature/pebble
  • feature/utxocache-swissmap
  • feeRate-BTCkvB
  • fix
  • fix-batch-mem-leak
  • fix-config-doc
  • fix-docs-rfc6979
  • fix-err-match
  • fix-err-str
  • fix-mempool-estimatefee-bug
  • fix-minimalif-comment
  • fix-non-root-hosts
  • fix-protocol
  • fix-psbtopts-feerate-type
  • fix-readme-min-version
  • fix-shutdown-itest
  • fix-test-peer-listeners
  • fix-typos
  • fix/batch-data-race
  • fix/dockerfile-go-version
  • fix/err
  • fix/link
  • fixInvalidRpc
  • fix_comment
  • flag-types
  • fundrawtx-bech32m
  • fuzz-FuzzParsePubKey
  • getaddressinfo
  • getblocktemplate-server-update
  • getnetworkhashps-float64
  • getnetworkinfo-warnings
  • getnewaddress-rpcclient-revert
  • getnodeaddresses
  • getwalletinfo
  • gh-1651
  • go-1-18
  • go-mod-pain-relief
  • go1.15
  • go11modules
  • gogc
  • gogc-maxprocs-config
  • guiand888-Docker-doc-update
  • hash-unmarshal
  • hashcache-flake
  • http-retries
  • ignore_unknown_messages
  • implement-pool
  • improve-gc-isunspendable
  • improved-der-signature-validation
  • indexinfo
  • integration-harness-fixes
  • isDust_export_08022021
  • itest-fixes
  • jakesyl-patch-1
  • jcv_irc
  • jcv_nomsi
  • jcv_typo
  • jcv_version
  • jsonrpcerr
  • label_and_account_apis_for_wallet
  • log_compress_zstd
  • marco/wtxidrelay
  • martin/externalip-by-file
  • master
  • memory-efficient-txhash
  • mempool/check-p2wsh-standard
  • mempool_dust_threshold_08162021
  • merkle-calc-fast
  • miniscript
  • musig2
  • musig2-1-0
  • musig2-benchmark-fix
  • musig2Adaptor
  • musig2_0.3.0
  • musig2_fix_early_nonce_gen
  • musig2_sign_with_agg_nonce
  • musig2_update
  • naveen/feat/fix-github-action-permissions
  • naveen/feat/upgrade-docker
  • nb/include-unsafe
  • nested-witness-sign
  • neutrino-opt
  • notls4all
  • op_cat
  • op_txhash
  • opt_SignCompact
  • optimize_buffer
  • over-2-hours
  • p2a
  • patch-1
  • patch-2
  • pkg-update-checkmarx-cve
  • pledge
  • post-taproot-module-updates
  • pow-no-retargeting
  • pr/845
  • priority-queue
  • psbt-empty-deriv-path
  • psbt-export
  • psbt-global-xpub
  • psbt-nil-pointer-bug
  • psbt-serialization-fix
  • psbt-size-check
  • public-sendcmd
  • receive-tests
  • refactor
  • refactor/make-help
  • refactor/obyte-great-than-zero
  • refactor/parsefloat
  • refs/tags/btcec/v2.0.0
  • refs/tags/btcec/v2.1.0
  • refs/tags/btcec/v2.1.2
  • refs/tags/btcec/v2.1.3
  • refs/tags/btcec/v2.2.0
  • refs/tags/btcec/v2.2.1
  • refs/tags/btcec/v2.2.2
  • refs/tags/btcec/v2.3.0
  • refs/tags/btcec/v2.3.1
  • refs/tags/btcec/v2.3.2
  • refs/tags/btcec/v2.3.3
  • refs/tags/btcec/v2.3.4
  • refs/tags/btcutil/psbt/v1.0.0
  • refs/tags/btcutil/psbt/v1.1.0
  • refs/tags/btcutil/psbt/v1.1.1
  • refs/tags/btcutil/psbt/v1.1.10
  • refs/tags/btcutil/psbt/v1.1.2
  • refs/tags/btcutil/psbt/v1.1.3
  • refs/tags/btcutil/psbt/v1.1.4
  • refs/tags/btcutil/psbt/v1.1.5
  • refs/tags/btcutil/psbt/v1.1.6
  • refs/tags/btcutil/psbt/v1.1.7
  • refs/tags/btcutil/psbt/v1.1.8
  • refs/tags/btcutil/psbt/v1.1.9
  • refs/tags/btcutil/v1.1.0
  • refs/tags/btcutil/v1.1.1
  • refs/tags/btcutil/v1.1.2
  • refs/tags/btcutil/v1.1.3
  • refs/tags/btcutil/v1.1.4
  • refs/tags/btcutil/v1.1.5
  • refs/tags/btcutil/v1.1.6
  • refs/tags/chaincfg/chainhash/v1.0.1
  • refs/tags/chaincfg/chainhash/v1.0.2
  • refs/tags/chaincfg/chainhash/v1.0.3
  • refs/tags/chaincfg/chainhash/v1.1.0
  • refs/tags/v0.22.0-beta
  • refs/tags/v0.22.1
  • refs/tags/v0.23.0
  • refs/tags/v0.23.1
  • refs/tags/v0.23.2
  • refs/tags/v0.23.3
  • refs/tags/v0.23.4
  • refs/tags/v0.24.0
  • refs/tags/v0.24.2
  • refs/tags/v0.24.2-beta.rc1
  • remove-bip9-stray-logs
  • remove-err-match
  • reorg
  • replace-imports
  • replaceioutil
  • revive-1294
  • rm_trailing_continue
  • roylee/remove-deprecated-rpcs
  • roylee/update-gbt-to-return-witness-script
  • rpc-address-align
  • rpc-getblockstats
  • rpc-gettxoutsetinfo
  • rpc-jsonerror-msg
  • rpcbulk
  • rpcclient-GetChainTxStatsAsync-tests
  • rpcclient-fix
  • rpcclient-signet
  • rpccliet-fix2
  • run-the-numbers
  • safe-addr-accessors
  • safe-ka-accessors
  • santa5
  • schnorr
  • schnorrSig-simplify-r-bytes
  • script-builder-alloc
  • script-callback
  • script-template
  • scriptpubkeyresult-address
  • searchrawtransactionsverbose-null-test
  • segwit-rpc
  • sendaddrv2
  • sig_hash_type
  • sighash-taproot-keyspend-bug-fix
  • sighash-typos
  • sign-mutate
  • signet
  • signet-deployment
  • signet-forward-port
  • silent-payments
  • size_on_disk
  • standardness-cleanup
  • statusbytes_08062024
  • submitpackage
  • taproot-dev-net-activation
  • taproot-impl
  • taproot-psbt
  • taptweak-mutation
  • testmempoolaccept
  • testnet4-bip9
  • timeout-https-client
  • tor_ipv6
  • tor_resolver_fix
  • trailing-zeroes
  • truc-graph
  • truc-mempool-v2-base
  • truc-mempool-v2-flag-flip
  • truc-mempool-v2-new
  • truc-mempool-v2-new-2
  • tx-not-found-error-bug
  • tx-version-type
  • txid_string_check
  • txscript_alloc_cb_change
  • txscript_zero_alloc_optimization_refactor
  • txwithkey
  • unix
  • unmarshal-networkhashps
  • update-btcecv2-no-dep
  • update-btcutil
  • update-changes
  • update-checkpoints
  • update-ci
  • update-getmempoolentry-cmd
  • update-goleveldb
  • update-goleveldb-0
  • update-gomod-btcec
  • update-guides
  • update-isMainChain-according-to-orphan
  • uptime-fix
  • use-fqdn
  • utxocache-original
  • utxoview-use-slices
  • v-0-24-2
  • v-0-25-0-rc1
  • v-25-branch
  • v0-23-2-branch
  • v0-23-3-branch
  • v0.22
  • v0.25.0
  • v0.25.0-beta.rc1
  • v0_22_use_chainhash_module
  • v2-module-fix
  • v2-transport-module
  • v2_transport
  • v2transport/v0.0.1-alpha
  • v2transport/v1.0.0
  • v2transport/v1.0.1
  • v3-tx-standard
  • version-bump-23
  • version-bump-23-1
  • version_0_23_0
  • vinayakb/fix_empty_tx_in_GetBlockVerboseTx
  • wire-opts
  • wire-signet
  • wire/outpoint-parse-string
  • witness-commitment-rpctest
  • witness-wire-hot-fix

28 Oct 2025 11:47PM UTC coverage: 56.243%. First build
19090331563

push

github

Roasbeef
integration: add comprehensive BIP 431 TRUC policy tests

This commit adds end-to-end integration tests for BIP 431 (TRUC) policy
enforcement using the rpctest harness. The tests verify all six TRUC rules
plus security properties using real btcd nodes and transaction submission.

The test infrastructure enhancements to rpctest include v3 transaction
creation helpers (CreateV3Transaction, CreateV3Child) that properly handle
transaction version selection through functional options. The AddUnconfirmedTx
method on MemWallet now tracks outputs by keyIndex to enable proper UTXO
management for test scenarios involving multiple children spending different
outputs from the same parent.

The TRUC policy test suite covers:

Rule 1 (replaceability): Verifies v3 transactions signal RBF even without
BIP 125 sequence numbers, enabling reliable replacement for fee-bumping.

Rule 2 (all-or-none): Tests that v3 transactions correctly reject unconfirmed
v2 parents while accepting confirmed v2 parents, enforcing the all-or-none
TRUC requirement.

Rule 3 (topology): Validates the 1-parent-1-child constraint by testing both
valid 1P1C acceptance and rejection of long v3 chains (grandparent→parent→
child) that violate the ancestor limit.

Rules 4-5 (size limits): Confirms transactions within the size limits are
accepted. Precise size testing is deferred to unit tests where exact byte
control is easier.

Rule 6 (zero-fee): Marked as pending future package relay RPC support.

Security tests verify the topology restrictions prevent common pinning
vectors, specifically that multiple children and long chains are both
rejected.

These integration tests complement the unit tests by exercising the full
mempool acceptance pipeline with real transactions, RPC submission, and
multi-node scenarios. All tests pass, confirming the TRUC implementation is
correct and ready for production use.

12 of 70 new or added lines in 3 files covered. (17.14%)

33779 of 60059 relevant lines covered (56.24%)

396900.99 hits per line

Relevant lines Covered
Build:
Build:
60059 RELEVANT LINES 33779 COVERED LINES
396900.99 HITS PER LINE
Source Files on truc-v2-impl
  • Tree
  • List 293
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
19090331563 truc-v2-impl integration: add comprehensive BIP 431 TRUC policy tests This commit adds end-to-end integration tests for BIP 431 (TRUC) policy enforcement using the rpctest harness. The tests verify all six TRUC rules plus security properties using real btcd n... push 05 Nov 2025 03:31AM UTC Roasbeef github
56.24
18892483286 truc-v2-impl Merge 90bf88486 into d2819c8f2 Pull #2449 28 Oct 2025 11:49PM UTC web-flow github
56.21
See All Builds (1053)
  • Settings
  • Repo on GitHub
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc