Skip to content

Drop testnet3#31974

Closed
Sjors wants to merge 11 commits into
bitcoin:masterfrom
Sjors:2025/03/testnet3
Closed

Drop testnet3#31974
Sjors wants to merge 11 commits into
bitcoin:masterfrom
Sjors:2025/03/testnet3

Conversation

@Sjors

@Sjors Sjors commented Mar 3, 2025

Copy link
Copy Markdown
Member

Testnet3 was deprecated in v28 with the introduction of testnet4. It will be dropped in v30 or later, please discuss in #31975.

There is no more [test] network section. The user is expected to set testnet4 explicitly, which should make future rotation of testnets easier.

If a [test] or [testnet3] section is present in bitcoin.conf a warning is issued:

Warning: .../bitcoin.conf:18 Section [test] is not recognized.

Starting with -testnet3 will be greeted with an error message:

Error: Testnet3 was dropped in version 30.0. Consider using '-testnet4' instead.

This also prevents a fallback to mainnet.

Starting with -test was already not possible with testnet3.

Review hints:

  • make a (Windows) Guix build and test the (un)installer

Guix hashes:

(todo)

@DrahtBot

DrahtBot commented Mar 3, 2025

Copy link
Copy Markdown
Contributor

The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

Code Coverage & Benchmarks

For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/31974.

Reviews

See the guideline for information on the review process.

Type Reviewers
Concept ACK fjahr

If your review is incorrectly listed, please copy-paste <!--meta-tag:bot-skip--> into the comment that the bot should ignore.

Conflicts

Reviewers, this pull request conflicts with the following ones:

  • #35302 (Silent Payments: Sending (take 2) by Eunovo)
  • #35301 (Silent Payments: Implement bip352 (take 2) by Eunovo)
  • #35027 (net: use -bind address for outgoing connections by 8144225309)
  • #34839 (doc: remove unshipped doc references from help and warning text by AgusR7)
  • #32966 (Silent Payments: Receiving by Eunovo)
  • #32387 (ipc: add windows support by ryanofsky)
  • #32317 (kernel: Separate UTXO set access from validation functions by sedited)
  • #27260 (Enhanced error messages for invalid network prefix during address parsing. by portlandhodl)
  • #17783 (common: Disallow calling IsArgSet() on ALLOW_LIST options by ryanofsky)
  • #17581 (refactor: Remove settings merge reverse precedence code by ryanofsky)
  • #17580 (refactor: Add ALLOW_LIST flags and enforce usage in CheckArgFlags by ryanofsky)
  • #17493 (util: Forbid ambiguous multiple assignments in config file by ryanofsky)

If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.

@instagibbs

Copy link
Copy Markdown
Member

I've said it elsewhere, but I think it deserves a quite long deprecation cycle, along with some data gathering.

We don't want services not upgrading for fixes because their test environment would break.

e.g., what exchanges with testnet environments have adopted testnet4 (or signet), much less would be ok with removing testnet3?

Does btcd support it? LND? Eclaire? CLN? etc.

Lots of work to be done here imo.

@Sjors

Sjors commented Mar 3, 2025

Copy link
Copy Markdown
Member Author

I opened a separate RFC to discuss when to drop testnet3: #31975

I can rebase this for a while if we decide v30 is too early.

@fjahr

fjahr commented Mar 3, 2025

Copy link
Copy Markdown
Contributor

Concept ACK

@Sjors Sjors force-pushed the 2025/03/testnet3 branch from 5d6aa13 to b221f0c Compare March 3, 2025 21:30
@Sjors

Sjors commented Mar 3, 2025

Copy link
Copy Markdown
Member Author

I split 5d6aa13cf047e31005afca919ca9cf181e30905b into smaller commits. If we decide to punt this until after v30 then I'll PR some of these separately. E.g. there's some tests that can use testnet4 instead of testnet3 and perhaps we can drop GUI support earlier.

@Sjors

Sjors commented Mar 4, 2025

Copy link
Copy Markdown
Member Author

Will rebase after #31649 is rebased.

@Sjors

Sjors commented Mar 20, 2026

Copy link
Copy Markdown
Member Author

Just a fresh rebase after #34673 which updated the testnet3 seed nodes that we're dropping, and the v31 chainparams update in #34677.

Sjors added 11 commits March 23, 2026 11:09
Except for the deprecation warning in feature_config_args.py.
This test now writes its own config file, which was previously done by
test_acceptstalefeeestimates_arg_support.

The deprecation warning test will be removed in a later commit.
Abort node startup and inform user they should use -testnet4.
Modify the deprecation message test to cover this.

Remove testnet3 references from bitcoin-cli documentation
and bash helper.
Also use "test network" instead of "testnet" where appropriate (e.g.
because it also applies to signet).
This drops the chain parameters and ChainType::TESTNET.
@Sjors

Sjors commented Mar 23, 2026

Copy link
Copy Markdown
Member Author

Rebased after #26201 removed the taproot BIP9 deployment.

@fanquake

Copy link
Copy Markdown
Member

I'm going to close this for now. It's been open for > a year, and is basically just rebasing mechanical change. There doesn't seem to be any consensus on dropping Testnet 3, Testnet 4 is still broken, and various proposals to fix it don't seem to be getting traction (yet?), and there's discussion of a Testnet 5. I think discussion about when to drop Testnet 3 can continue in #31975 (and this PR is linked if someone wants to look at the changes), and these changes can be revived if that happens.

@fanquake fanquake closed this May 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

10 participants