Bitcoin Forum
January 21, 2026, 07:08:12 PM *
News: Latest Bitcoin Core release: 30.2 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Fixing Testnet4: proposal  (Read 614 times)
BayAreaCoins
Legendary
*
Offline Offline

Activity: 4410
Merit: 1374


AltQuick.com Secretary/PR/Janitor


View Profile WWW
December 27, 2025, 06:21:19 PM
Last edit: January 09, 2026, 07:45:57 PM by BayAreaCoins
 #21

Edit:
Could someone just ask on the mailing list on the "Unbreaking testnet" email if the proposed date is still going to happen or if it is being pushed back(?)
Yes, I may send the message.

Stwenhao got an email in the list inquiring.  https://groups.google.com/g/bitcoindev/c/iVLHJ1HWhoU/m/XalE9M6TAgAJ

Thank you very much Saint.



Update

It also should be noted, that Testnet isn't broken... people just don't care for the game how the rules are set up.  Which everyone totally agrees isn't great, but if a play works... you can't expect a professional team not to run it.

That being said, the price of Testnet is very low due to this.  If that is the goal of Testnet, to keep it "free" or at least the prices low (because zero is basically impossible)... then perhaps letting these folks take that profit isn't terrible.

Technically, the Testnet coins are flowing into an active market at least with them.  The other miner is just stocking 1.2 million coins without a single txid... that's crazy bad, regardless if they are including transactions or not.  All the ASIC blocks confirm folks for now and it's just part of wait it out... welcome to crypto.

https://AltQuick.com/exchange/ - A Bitcoin based exchange for Altcoins & Testnet (no fiat or KYC) - Free Coins - Privacy Coins - Real Testnet Trading with Bitcoin!!! (o my!) -  A very strong 50% share affiliate program.
BayAreaCoins
Legendary
*
Offline Offline

Activity: 4410
Merit: 1374


AltQuick.com Secretary/PR/Janitor


View Profile WWW
January 16, 2026, 01:53:02 AM
Last edit: January 16, 2026, 03:24:38 AM by BayAreaCoins
Merited by BlackHatCoiner (4), stwenhao (1)
 #22

For those who don't know, testnet4 is pretty much broken. CPU miners are taking advantage of the 20-min rule and there's very intense competition on who gets to broadcast the block faster. So intense, that some miners send empty blocks to gain that little advantage over bandwidth and verification time. A discussion started in the Bitcoin Development Mailing list, but it hasn't got anywhere: https://groups.google.com/g/bitcoindev/c/iVLHJ1HWhoU.

My proposal to fix testnet4 is to simply remove the 20-min limit after a certain epoch, months into the future, so that everyone has time to upgrade. Also, difficulty should also be decreased significantly after the epoch of that block (by around 5/6th) because around 5 in 6 blocks are CPU blocks, and by disabling CPU blocks, we should expect the block interval to increase significantly.

One good justification for this proposal is that the purpose of testnet is to mimic mainnet as closely as possible. It'd be good for devs to be able to mine testnet "for free", but this mindset has lead to these unintended consequences where you can't have the cake and eat it too. Having the illusion of "free mining" without the usability of a test network is far worse than having a usable test network where coins are just not free to mine.

What do you think?

Feedback please: https://github.com/bitcoin/bitcoin/compare/master...l0rdicon:bitcoin:testnet_4_fork

This should fork Testnet4 as described in the OP. 

https://AltQuick.com/exchange/ - A Bitcoin based exchange for Altcoins & Testnet (no fiat or KYC) - Free Coins - Privacy Coins - Real Testnet Trading with Bitcoin!!! (o my!) -  A very strong 50% share affiliate program.
stwenhao
Hero Member
*****
Offline Offline

Activity: 590
Merit: 1479


View Profile
January 16, 2026, 08:29:03 AM
Last edit: January 16, 2026, 01:39:41 PM by stwenhao
Merited by BlackHatCoiner (16), LoyceV (12), ABCbits (11), BayAreaCoins (1)
 #23

https://github.com/l0rdicon/bitcoin/blob/testnet_4_fork/src/kernel/chainparams.cpp#L121
Code:
/**
 * Main network on which people trade goods and services.
 */
class CMainParams : public CChainParams {
public:
    CMainParams() {
        // ...

        // Deployment to disable minimum difficulty blocks (testnet4 only)
        consensus.vDeployments[Consensus::DEPLOYMENT_NOMINDIFFICULTY].bit = 1;
        consensus.vDeployments[Consensus::DEPLOYMENT_NOMINDIFFICULTY].nStartTime = Consensus::BIP9Deployment::NEVER_ACTIVE;
        consensus.vDeployments[Consensus::DEPLOYMENT_NOMINDIFFICULTY].nTimeout = Consensus::BIP9Deployment::NO_TIMEOUT;
        consensus.vDeployments[Consensus::DEPLOYMENT_NOMINDIFFICULTY].min_activation_height = 0;
        consensus.vDeployments[Consensus::DEPLOYMENT_NOMINDIFFICULTY].threshold = 1916; // 95% for mainnet
        consensus.vDeployments[Consensus::DEPLOYMENT_NOMINDIFFICULTY].period = 2016;
Only changes in "class CTestNet4Params" are needed. Things from "CMainParams", "CTestNetParams", "SigNetParams", and "CRegTestParams" should be removed. Because you want to make changes only to testnet4, not to everything else.

https://github.com/l0rdicon/bitcoin/blob/testnet_4_fork/src/test/pow_tests.cpp#L213
Code:
/* Test that GetNextWorkRequired respects deploymentActiveDisablesMinDiff parameter */
BOOST_AUTO_TEST_CASE(get_next_work_deployment_disables_min_difficulty)
{
    //...
}
This is only "happy day scenario" test. You should also check, if all other networks still behave in the same way. Because you don't want to do the same changes on mainnet, or other networks. You want them only on testnet4.

https://github.com/l0rdicon/bitcoin/blob/testnet_4_fork/test/functional/feature_testnet4_nomindifficulty.py#L37
Code:
        # Note: Full testing of the hardfork activation requires:
        # 1. Mining blocks until the deployment activates (height 150000)
        # 2. Verifying that min-difficulty blocks are rejected after activation
        # 3. Verifying that difficulty can increase above minimum after activation
        # This is left as a future enhancement as it requires significant test infrastructure
It should be tested, before changes like that will be deployed. Also, there are some edge cases, that needs to be tested, for example: blocks with 0x1d00ffff difficulty should not be rejected, if the real network difficulty will ever naturally drop to that level.

Quote
Stwenhao got an email in the list inquiring.
Yes, but as you can see, it didn't change anything.

Quote
Testnet isn't broken... people just don't care for the game how the rules are set up
Exactly. People don't care, so I am quite surprised, that any changes are proposed to testnet4 at all. But good luck, maybe your code changes will be accepted, if some things will be improved (for example: testing edge cases, and making sure, that other networks, like mainnet, are left unchanged).

Quote
This should fork Testnet4 as described in the OP.
Maybe it will. Now I am trying to build it from the source code, and see, how it works. But judging by the code, it does more than that, for example it is trying to fork all other networks as well. And bugs like that should be fixed, before going further.

Quote
Feedback please
It would be easier, if there would be any Pull Request on GitHub. You don't have to submit it into Bitcoin Core instantly (also because it is not ready, and will be closed in the current, unfinished state), but you can start with creating a Pull Request from your own testnet_4_fork branch to your own master branch. That should be enough, to create a room on GitHub, where it could be commented, instead of doing that on bitcointalk.

Edit:
Quote
if a play works... you can't expect a professional team not to run it
It is interesting to know, what is the current overproduction of blocks in testnet4:
Code:
genesis_time=1714777860
current_time=1768560000
time_difference=current_time-genesis_time=53782140
blocks=time_difference/600=89636.9
It means, that the current testnet4 should now have around 90k blocks. But instead, it has around 120k blocks. Which means, that there are around 30k more blocks, than there should be, if we assume 10 minutes between blocks. Which also means, that the chain overproduced around 1.5 million tBTC4, because of dropping difficulty.

Edit: Checking testnet4 blocks with 20 minutes and 1 second delay:
Code:
$ cat testnet4.sh 
nonce=$(./bitcoin-cli -testnet4 getblockcount)
while [ 1 ]
do
  ./bitcoin-cli -testnet4 setmocktime $((1714777860 + nonce * 1201))
  ./bitcoin-cli -testnet4 generatetoaddress 1 tb1pfees9rn5nz 100000000
  echo nonce: $nonce
  ((nonce=nonce+1))
done
Of course, it requires enabling "setmocktime", and hacking Proof of Work, but it is doable:
Code:
[*] 2026-01-16T10:55:49Z (mocktime: 2026-08-15T23:30:59Z) UpdateTip: new best=398f2d2983be0e0706d7eccd42f1db241ff9a554dd2757e3f0aee2de447eb27f height=60000 version=0x20000002 log2_work=47.872721 tx=60001 date='2026-08-15T23:30:59Z' progress=0.002832 cache=8.2MiB(60000txo)
[*] 2026-01-16T10:55:49Z (mocktime: 2026-08-15T23:51:00Z) UpdateTip: new best=1b048e50a581aa10f41a6865cecdcdac8bcd16fffaf4b30266f2d49798ef975c height=60001 version=0x20000002 log2_work=47.872745 tx=60002 date='2026-08-15T23:51:00Z' progress=0.002832 cache=8.2MiB(60001txo)
[*] 2026-01-16T10:55:49Z (mocktime: 2026-08-16T00:11:01Z) UpdateTip: new best=919622182ed1e5e072205993ecbc7029d8bea7a2402538f126dec111825445e2 height=60002 version=0x20000002 log2_work=47.872769 tx=60003 date='2026-08-16T00:11:01Z' progress=0.002832 cache=8.2MiB(60002txo)
[*] 2026-01-16T10:55:49Z (mocktime: 2026-08-16T00:31:02Z) UpdateTip: new best=f8eb451f12f2e7a3b1609dde5ab59569d4b6ba4c8a7bf7efa0a192e5c5a32e21 height=60003 version=0x20000002 log2_work=47.872793 tx=60004 date='2026-08-16T00:31:02Z' progress=0.002832 cache=8.2MiB(60003txo)
[*] 2026-01-16T10:55:49Z (mocktime: 2026-08-16T00:51:03Z) UpdateTip: new best=9f10a9cc6b8b10bac1d880696a274d89e95ee2d4ff94269dc8fc8b801e63bbe9 height=60004 version=0x20000002 log2_work=47.872817 tx=60005 date='2026-08-16T00:51:03Z' progress=0.002832 cache=8.2MiB(60004txo)

Edit: Script for testing ASICs:
Code:
$ cat mining_asic.sh
#SHA-256("ASIC")=36e3041f1c69dc35d7e2d9de4dd0d5b85fd8d324edbdd9860c25b0c7395b9283
#pubkeyASIC=02AEBBD0364EB984A03BEF1F58C516B1D671657CA50E50E069E77823ED3FD833AF
#addressASIC=tb1qxulcd7nf9t94xr0v3sncjjwmfs7pu75vwr8wpa
nonce=0
while [ 1 ]
do
  blocks=$(./bitcoin-cli -testnet4 getblockcount)
  blockhash=$(./bitcoin-cli -testnet4 getblockhash $blocks)
  mediantime=$(./bitcoin-cli -testnet4 getblock $blockhash | grep "\"mediantime\"" | grep -oE "[0-9]+")
  ./bitcoin-cli -testnet4 setmocktime $mediantime
  ./bitcoin-cli -testnet4 generatetoaddress 1 tb1qxulcd7nf9t94xr0v3sncjjwmfs7pu75vwr8wpa 100000000
  echo nonce: $nonce
  ((nonce=nonce+1))
done
And CPUs:
Code:
$ cat mining_cpu.sh 
#SHA-256("CPU")=db9a4c7d4c195ebf80068dd04120accce1cbfbef342bb43a53cbd651eb96e37b
#pubkeyCPU=03EC894061108F01125A523BD4899F08019F0F88EE31853B03666DCE5878522916
#addressCPU=tb1qcc4ym9vgdu8ux0md2eqg5m4zctacpcexywrkzf
nonce=0
while [ 1 ]
do
  blocks=$(./bitcoin-cli -testnet4 getblockcount)
  blockhash=$(./bitcoin-cli -testnet4 getblockhash $blocks)
  blocktime=$(./bitcoin-cli -testnet4 getblock $blockhash | grep "\"time\"" | grep -oE "[0-9]+")
  ./bitcoin-cli -testnet4 setmocktime $((blocktime + 1201))
  ./bitcoin-cli -testnet4 generatetoaddress 1 tb1qcc4ym9vgdu8ux0md2eqg5m4zctacpcexywrkzf 100000000
  echo nonce: $nonce
  ((nonce=nonce+1))
done
Also, it can be nice to visually identify blocks with different target than 0x1d00ffff: https://github.com/stwenhao/bitcoin/pull/1/commits/09ed76f857623e0507e7ade3411416d93a8297e8

Then, ASIC blocks can be easily spotted in logs, if mining them will require for example five leading hex zeroes:
Code:
2026-01-16T12:23:55Z (mocktime: 2024-06-18T12:50:12Z) CreateNewBlock(): block weight: 892 txs: 0 fees: 0 sigops 400
2026-01-16T12:23:55Z (mocktime: 2024-06-18T12:50:12Z) UpdateTip: new best=4f0d85e37d12d6093acee67f9d2ad79fedb925a6b6922303455be00088fac64e height=5060 version=0x20000002 log2_work=44.323883 tx=5061 date='2024-06-18T12:50:12Z' progress=0.002782 cache=0.8MiB(5068txo)
2026-01-16T12:23:55Z (mocktime: 2024-06-18T13:10:13Z) CreateNewBlock(): block weight: 892 txs: 0 fees: 0 sigops 400
2026-01-16T12:23:55Z (mocktime: 2024-06-18T13:10:13Z) UpdateTip: new best=f7fcd73979cb49be701a02ab190548dcf041cc9c9411ff1fe9ebb960f56e8139 height=5061 version=0x20000002 log2_work=44.324165 tx=5062 date='2024-06-18T13:10:13Z' progress=0.002782 cache=0.8MiB(5069txo)
2026-01-16T12:23:55Z (mocktime: 2024-06-18T13:30:14Z) CreateNewBlock(): block weight: 892 txs: 0 fees: 0 sigops 400
2026-01-16T12:23:55Z (mocktime: 2024-06-18T13:30:14Z) UpdateTip: new best=211b50dc1e288a8d6c199fa8f6c673f9a322c9b7d85f38a12603a8ca27a15f48 height=5062 version=0x20000002 log2_work=44.324446 tx=5063 date='2024-06-18T13:30:14Z' progress=0.002782 cache=0.8MiB(5070txo)
2026-01-16T12:23:55Z (mocktime: 2024-06-18T13:30:14Z) CreateNewBlock(): block weight: 892 txs: 0 fees: 0 sigops 400
2026-01-16T12:23:55Z (mocktime: 2024-06-18T11:50:09Z) CreateNewBlock(): block weight: 892 txs: 0 fees: 0 sigops 400
2026-01-16T12:23:55Z (mocktime: 2024-06-18T11:50:09Z) UpdateTip: new best=000009a9704a27f6455a62d260c12dc154bead1aded33f93f7ec3a6e4db5815f height=5063 version=0x20000002 log2_work=44.324760 tx=5064 date='2024-06-18T11:50:10Z' progress=0.002786 cache=0.8MiB(5071txo)
2026-01-16T12:23:55Z (mocktime: 2024-06-18T11:50:10Z) CreateNewBlock(): block weight: 892 txs: 0 fees: 0 sigops 400
2026-01-16T12:23:55Z (mocktime: 2024-06-18T11:50:10Z) UpdateTip: new best=00000a054939f531212cb881540d84b669e401d464682241d89678da170cc97f height=5064 version=0x20000002 log2_work=44.325073 tx=5065 date='2024-06-18T11:50:11Z' progress=0.002786 cache=0.8MiB(5072txo)

Edit: Deployment after block 150,000 seems to work:
Code:
[*] 2026-01-16T12:59:53Z (mocktime: 2028-03-12T00:54:56Z) UpdateTip: new best=0000036b5c6a5141dbb88999060cf6186d49c3471ed6a8e6325b1c5bb17af574 height=153500 version=0x20000000 log2_work=49.260734 tx=153501 date='2028-03-12T00:54:57Z' progress=0.004351 cache=20.1MiB(153500txo)
[*] 2026-01-16T12:59:53Z (mocktime: 2028-03-12T00:54:56Z) UpdateTip: new best=00000a620a71c04dd45ef7cca86cf252edde48d9f01b46525261d4b2beec47ed height=153501 version=0x20000000 log2_work=49.260751 tx=153502 date='2028-03-12T00:54:57Z' progress=0.004351 cache=20.1MiB(153501txo)
[*] 2026-01-16T12:59:53Z (mocktime: 2028-03-12T00:54:56Z) UpdateTip: new best=00000ff9c4089baf25c12054bbfe97c6663909967a182c5b96755c4146d1f9c7 height=153502 version=0x20000000 log2_work=49.260767 tx=153503 date='2028-03-12T00:54:57Z' progress=0.004351 cache=20.1MiB(153502txo)
[*] 2026-01-16T12:59:53Z (mocktime: 2028-03-12T00:54:56Z) UpdateTip: new best=0000052806339b70b094dca8d884b4ae623b320c0fb78ae705b5527469e8e5fd height=153503 version=0x20000000 log2_work=49.260783 tx=153504 date='2028-03-12T00:54:57Z' progress=0.004351 cache=20.1MiB(153503txo)
[*] 2026-01-16T12:59:54Z (mocktime: 2028-03-12T00:54:56Z) UpdateTip: new best=00000ce9283cd8966cb1fc583c392d2e76a355124ae3edc63d7d0b92e7501efe height=153504 version=0x20000000 log2_work=49.260799 tx=153505 date='2028-03-12T00:54:57Z' progress=0.004351 cache=20.1MiB(153504txo)
ASIC miner can continue mining, while CPU miner returns an error:
Code:
nonce: 50
error code: -1
error message:
TestBlockValidity failed: bad-diffbits, incorrect proof of work
nonce: 51
error code: -1
error message:
TestBlockValidity failed: bad-diffbits, incorrect proof of work
nonce: 52
error code: -1
error message:
TestBlockValidity failed: bad-diffbits, incorrect proof of work
nonce: 53
error code: -1
error message:
TestBlockValidity failed: bad-diffbits, incorrect proof of work
nonce: 54
error code: -1
error message:
TestBlockValidity failed: bad-diffbits, incorrect proof of work
However, if you want to make it a soft-fork, instead of a hard-fork, then maybe it is a better idea to just ban block times, which are bigger than 20 minutes (except difficulty adjustments, where the real network difficulty is always enforced). Because then, if you will have hashrate majority on your side, making a soft-fork, instead of a hard-fork, will keep you in the same network (which means, that then, there will be no split between testnet4 and testnet5, if done correctly).

Proof of Work puzzle in mainnet, testnet4 and signet.
BlackHatCoiner (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 9294


Bitcoin is ontological repair


View Profile
January 16, 2026, 03:45:29 PM
 #24

Only changes in "class CTestNet4Params" are needed. Things from "CMainParams", "CTestNetParams", "SigNetParams", and "CRegTestParams" should be removed. Because you want to make changes only to testnet4, not to everything else.
I agree. Also, I don't think it will ever be merged if it contains a lot of code. I have forked Bitcoin Core latest version and pushed some changes that should do the work by modifying only testnet4, with simple code changes: https://github.com/bitcoin/bitcoin/compare/master...batmanbytes:bitcoin:testnet4-fix

I have introduced int nMinDifficultyBlocksForkHeight which is 0 by default in consensus/params.h, only ever used by the CTestNet4Params class. GetNextWorkRequired and PermittedDifficultyTransition are also modified to check whether min difficulty blocks are enabled, and if yes, whether nMinDifficultyBlocksForkHeight is 0 (which would indicate it is not testnet4). Tell me what you think.

██████████████████████████████████████████████████████████████████████
████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████████▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄████████████████████
███████▄██▀▀▀▀▀▀▀▀▀▀▀██▄▄▄▄▄▄▄▄███████▄▄▄██▀▀▀▀▀██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████
███████
█▄▄▄▄▄▄▄▄▄▄████▀▀▀▀██▀▀▄▄██▀██▀▀▀███████▀▀▀█▀▀▀▀▀▀▀▀▀▀████
███████
▀█
█████▀▀▀▀█████████████████▀█████████▀██▄██▄▄▄▄▄█████████
███████
▄█
███▄▄▄▄▄▄▄██████████████████████▀▀██▄███████▀████▀████
██████
▄█
██████████████████████████▄██████████████████▀████▀██████
█████
▄█
██████▀▀▀████████████████████████████████▀█████████████
████
▄█
██████▀█████████████████████████████████▀███▀▀▀▀▀█▄██████
████
▄████▀████▀███████████████████████████▀██████████████████████
████
▀█
███▀▀▀██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█████████████▀██████
█████
▀▀▀▀█████████████████████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀
███████
██████████████████████████████████████████████████████████████████████
.
.. SPORTSBOOK..NEW..
.
..100% WELCOME BONUS │ NO KYC │ UP TO 15% CASHBACK....PLAY NOW...
BayAreaCoins
Legendary
*
Offline Offline

Activity: 4410
Merit: 1374


AltQuick.com Secretary/PR/Janitor


View Profile WWW
January 17, 2026, 10:33:59 PM
Last edit: January 17, 2026, 11:14:43 PM by BayAreaCoins
Merited by stwenhao (1)
 #25

Only changes in "class CTestNet4Params" are needed. Things from "CMainParams", "CTestNetParams", "SigNetParams", and "CRegTestParams" should be removed. Because you want to make changes only to testnet4, not to everything else.
I agree. Also, I don't think it will ever be merged if it contains a lot of code. I have forked Bitcoin Core latest version and pushed some changes that should do the work by modifying only testnet4, with simple code changes: https://github.com/bitcoin/bitcoin/compare/master...batmanbytes:bitcoin:testnet4-fix

I have introduced int nMinDifficultyBlocksForkHeight which is 0 by default in consensus/params.h, only ever used by the CTestNet4Params class. GetNextWorkRequired and PermittedDifficultyTransition are also modified to check whether min difficulty blocks are enabled, and if yes, whether nMinDifficultyBlocksForkHeight is 0 (which would indicate it is not testnet4). Tell me what you think.

I agree with both.  Less code is better, and it definitely shouldn't mess with anything else except the desired target (Testnet4).

Saint, thanks for taking the time to make your post.  I've forwarded this on to Xploited (l0rdicon).

Thanks fellas.  We will get there.



Saint, Blackhat, or whoever, I don't figure you'd be interested in making a pull request, would you?  I'd tip.  (I don't code)

I figure no, but it's for sure no if I don't ask.  I definitely don't belong in that arena and barely squeeze in on Bitcointalk IMO. Tongue



Also,  with POW "we" (people that agree on a rule change) don't actually have to have Core merge anything, do we?  We just need 80% of 2016 blocks to pass a new rule... as I understand(?)

Feels rude, obviously, but an option nevertheless(?)

It's an interesting test.

https://AltQuick.com/exchange/ - A Bitcoin based exchange for Altcoins & Testnet (no fiat or KYC) - Free Coins - Privacy Coins - Real Testnet Trading with Bitcoin!!! (o my!) -  A very strong 50% share affiliate program.
BayAreaCoins
Legendary
*
Offline Offline

Activity: 4410
Merit: 1374


AltQuick.com Secretary/PR/Janitor


View Profile WWW
January 18, 2026, 05:20:07 PM
Merited by stwenhao (1)
 #26

It would be easier, if there would be any Pull Request on GitHub.

A person said, ">> I attempted to open a PR, but forking appears to be disabled on the repository, so I can’t submit it directly."

https://AltQuick.com/exchange/ - A Bitcoin based exchange for Altcoins & Testnet (no fiat or KYC) - Free Coins - Privacy Coins - Real Testnet Trading with Bitcoin!!! (o my!) -  A very strong 50% share affiliate program.
BlackHatCoiner (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 9294


Bitcoin is ontological repair


View Profile
January 18, 2026, 05:48:34 PM
Merited by stwenhao (1)
 #27

Saint, Blackhat, or whoever, I don't figure you'd be interested in making a pull request, would you?  I'd tip.  (I don't code)
No need to make a pull request until there's some discussion in the mailing list, in my opinion. Changing Bitcoin Core is a very slow process, and you don't want to rush and end up being ignored. I sent an email at the bitcoindev mailing list (the testnet4 broken thread) and I'm waiting moderators to approve my mail.

The good thing with this proposal is that we're "removing features" and making it less complicated, so it should require less effort than otherwise.

Also,  with POW "we" (people that agree on a rule change) don't actually have to have Core merge anything, do we?  We just need 80% of 2016 blocks to pass a new rule... as I understand(?)
You need Core permission to add things to Core, but you don't need Core to just make a change. If you convince 51%+ of the hashrate to run your own modified version, then you're good. But, I think this is not the right approach, as it'd render the non-updated Core clients vulnerable to reorg attacks. Imagine that you run a client that constantly receives difficulty=1 blocks and validates them, and a couple of hours after, your chain is reorged due to the 51% hashrate ignoring your blocks. It'd be a lot less painful to just modify Core.

██████████████████████████████████████████████████████████████████████
████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████████▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄████████████████████
███████▄██▀▀▀▀▀▀▀▀▀▀▀██▄▄▄▄▄▄▄▄███████▄▄▄██▀▀▀▀▀██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████
███████
█▄▄▄▄▄▄▄▄▄▄████▀▀▀▀██▀▀▄▄██▀██▀▀▀███████▀▀▀█▀▀▀▀▀▀▀▀▀▀████
███████
▀█
█████▀▀▀▀█████████████████▀█████████▀██▄██▄▄▄▄▄█████████
███████
▄█
███▄▄▄▄▄▄▄██████████████████████▀▀██▄███████▀████▀████
██████
▄█
██████████████████████████▄██████████████████▀████▀██████
█████
▄█
██████▀▀▀████████████████████████████████▀█████████████
████
▄█
██████▀█████████████████████████████████▀███▀▀▀▀▀█▄██████
████
▄████▀████▀███████████████████████████▀██████████████████████
████
▀█
███▀▀▀██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█████████████▀██████
█████
▀▀▀▀█████████████████████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀
███████
██████████████████████████████████████████████████████████████████████
.
.. SPORTSBOOK..NEW..
.
..100% WELCOME BONUS │ NO KYC │ UP TO 15% CASHBACK....PLAY NOW...
LoyceV
Legendary
*
Offline Offline

Activity: 3920
Merit: 21000


Thick-Skinned Gang Leader and Golden Feather 2021


View Profile WWW
January 18, 2026, 07:51:59 PM
 #28

Imagine that you run a client that constantly receives difficulty=1 blocks and validates them, and a couple of hours after, your chain is reorged due to the 51% hashrate ignoring your blocks. It'd be a lot less painful to just modify Core.
That's quite literally happening all the time on testnet4. See fork.observer for a (great!) visualization.

¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
BlackHatCoiner (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 9294


Bitcoin is ontological repair


View Profile
January 18, 2026, 09:09:38 PM
Merited by stwenhao (1)
 #29

Imagine that you run a client that constantly receives difficulty=1 blocks and validates them, and a couple of hours after, your chain is reorged due to the 51% hashrate ignoring your blocks. It'd be a lot less painful to just modify Core.
That's quite literally happening all the time on testnet4. See fork.observer for a (great!) visualization.
The chain is not reverted into a lower block height, though. But, yes, it is true that even now, you get an empty-blocks chain which is occasionally replaced by a non-empty-blocks chain (which is mined by the tb1q2dsc94zq40nwnz27w5rxljwllutnwjtlxk44fz miner), or the other way around. Whether it is the current broken network or a semi-broken network with 51% of the hashrate ignoring the consensus rules of the other clients, I think it remains a problem that should be fixed in a test network.

██████████████████████████████████████████████████████████████████████
████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████████▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄████████████████████
███████▄██▀▀▀▀▀▀▀▀▀▀▀██▄▄▄▄▄▄▄▄███████▄▄▄██▀▀▀▀▀██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████
███████
█▄▄▄▄▄▄▄▄▄▄████▀▀▀▀██▀▀▄▄██▀██▀▀▀███████▀▀▀█▀▀▀▀▀▀▀▀▀▀████
███████
▀█
█████▀▀▀▀█████████████████▀█████████▀██▄██▄▄▄▄▄█████████
███████
▄█
███▄▄▄▄▄▄▄██████████████████████▀▀██▄███████▀████▀████
██████
▄█
██████████████████████████▄██████████████████▀████▀██████
█████
▄█
██████▀▀▀████████████████████████████████▀█████████████
████
▄█
██████▀█████████████████████████████████▀███▀▀▀▀▀█▄██████
████
▄████▀████▀███████████████████████████▀██████████████████████
████
▀█
███▀▀▀██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█████████████▀██████
█████
▀▀▀▀█████████████████████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀
███████
██████████████████████████████████████████████████████████████████████
.
.. SPORTSBOOK..NEW..
.
..100% WELCOME BONUS │ NO KYC │ UP TO 15% CASHBACK....PLAY NOW...
stwenhao
Hero Member
*****
Offline Offline

Activity: 590
Merit: 1479


View Profile
January 19, 2026, 08:24:09 AM
Merited by LoyceV (8)
 #30

Quote
you'd be interested in making a pull request, would you?
Not really, because now I can mine whole coins in signet, and it already has all things, which testnet5 would have.

But good luck, maybe someone else will do that.

Quote
with POW "we" (people that agree on a rule change) don't actually have to have Core merge anything, do we?
Only if it will be compatible with what we have now. Which means, that you can for example reject all blocks with timestamps bigger than 20 minutes from the last block, except difficulty adjustments. Then, blocks could have just "max +20 minutes", and the last block, which adjusts the difficulty, can use the real time, because it will have ASIC difficulty anyway.

In general, it looks like that:

Hard-fork: You need 99.99% network support, quite difficult to get it right. This is what your code does now. The chain is splitted into testnet4 and testnet5.
Soft-fork: Something like 80% or 90% network support, old nodes will follow your chain. Everyone uses the same chain, called testnet4, and testnet5 is not created, as long as miners are on your side.
No-fork: Just 51% hashrate on your side, and you are good to go. No user will need to update any software, only major miners have to do that. All CPU blocks will finally disappear, even if they could be visible for a while by some old nodes.

Quote
We just need 80% of 2016 blocks to pass a new rule... as I understand(?)
The more support you have, the easier it will be. But for the safest no-fork option, you need just 51%. And then, nobody else needs to change anything, and users could use the old version, it will work for making transactions. Also, old users could still produce blocks with 20 minutes and one second, but they will disappear, when the next ASIC block will come.

Quote
I attempted to open a PR, but forking appears to be disabled on the repository, so I can’t submit it directly.
You can open a Pull Request to your own repository, not to Bitcoin Core. It is all about having a space to put comments.

For example: https://github.com/stwenhao/bitcoin/pull/1

See? I don't have any special rights, to touch Core repository. But, as you can see, I can create Pull Requests inside my own repository. And you can do the same thing:



Just pick "l0rdicon/bitcoin" in your source and destination, and pick your own branch.

Quote
No need to make a pull request until there's some discussion in the mailing list, in my opinion.
If you pick a no-fork route, then you won't have to ask Bitcoin Core about anything.

Quote
Changing Bitcoin Core is a very slow process, and you don't want to rush and end up being ignored.
You won't be ignored, if your ASIC block will keep reorging all recent CPU blocks, and if it will lead to lowering the difficulty back to the real levels. And if other ASIC miners will do the same, when you will have 51% hashrate on your side, then all old nodes will follow your chain.

Quote
No need to make a pull request until there's some discussion in the mailing list, in my opinion.
There was a discussion: https://groups.google.com/g/bitcoindev/c/iVLHJ1HWhoU

There is no need to create yet another topic for the same thing: https://groups.google.com/g/bitcoindev/c/Jsv1VYpewuU

The main reason, why nothing happened, is that nobody cares. If someone wants stable mining, then signet Proof of Work faucets can be used. And if someone wants unstable network, that cannot be centrally controlled, then buggy testnet3 and buggy testnet4 are there, so they can be used, as they are.

So, why anyone should care about fixing testnet4, if signet already can do the same things, without any fixes? Also, for many people, blockstorm is not a bug, but a feature, because they can get things confirmed faster, or they can make more coins than usually, or even they can put more data into the blocks, than normally (up to 24 MB per second).

Quote
The good thing with this proposal is that we're "removing features" and making it less complicated, so it should require less effort than otherwise.
If the new chain would be started from scratch, then yes, it would be "less complicated". But if the code is "use old rules for 150k blocks, and then use new rules", then it is more complex, than before.

Quote
But, I think this is not the right approach, as it'd render the non-updated Core clients vulnerable to reorg attacks.
It is testnet. And existing Core clients are vulnerable anyway, because a single ASIC block can reorg a lot of CPU blocks. The only reason, why it is not happening here and now, is because ASIC owners don't have a working binary, which would do that by default. And if they use the Bitcoin Core implementation, then they are accepting CPU blocks, and setting them in stone, which makes the attack worse and worse.

If someone mines a block with CPU difficulty, then it is million times easier to produce, and it is unsafe to bet on it anyway, until the next ASIC block will set it in stone. So, it won't make the situation worse, than it is, because the current CPU miners are vulnerable anyway.

Not to mention, that you can still fork some nodes out of the network, if they don't enforce BIP94 rules properly.

Quote
Imagine that you run a client that constantly receives difficulty=1 blocks and validates them, and a couple of hours after, your chain is reorged due to the 51% hashrate ignoring your blocks.
This is exactly what you need, to make it a no-fork, and don't care, what Bitcoin Core will do. Also, there are benefits in that approach, because then, old versions could be still used to test, if your block is valid or not. And if you can spend 2^32 hashes, to fully validate any block, then many CPU users will be willing to pay that price.

Quote
It'd be a lot less painful to just modify Core.
No, because there is no consensus, how testnet5 should look like. The latest proposal with premine was rejected: https://bitcointalk.org/index.php?topic=5543921

See? In May 2025, people thought, that it is "coming soon". And now we have January 2026, and nothing happened.

Also, think about it: signet already is beyond the first halving. Which means, that at least 10.5 million coins, if not more, are already taken by signet developers. So, why should they create a new testnet5, which will be as centralized, as the current signet?

Not to mention, that you can mine whole coins from signet on a CPU, just like I do. So, what else do you need?

Quote
I think it remains a problem that should be fixed in a test network.
There is no reason to make a new testnet5, which will be similar to signet.

But good luck. I wanted to fix it many months ago, and I figured out, why fixing it is not needed, or why it can bring more problems, instead of solving them. So I decided to focus on other things. But good luck, you can try to improve things, if you know how.

Proof of Work puzzle in mainnet, testnet4 and signet.
BlackHatCoiner (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 9294


Bitcoin is ontological repair


View Profile
January 19, 2026, 09:25:56 AM
Merited by LoyceV (6), stwenhao (1)
 #31

There was a discussion: https://groups.google.com/g/bitcoindev/c/iVLHJ1HWhoU

There is no need to create yet another topic for the same thing: https://groups.google.com/g/bitcoindev/c/Jsv1VYpewuU
I accidentally created that second topic, because I sent a mail at the mailing list via protonmail for the first time, with subject "Re: [bitcoin-dev] Unbreaking testnet4". Not sure how you reply to the existent one. One a second thought, it is not a bad idea to refresh the topic with a new one.

Quote
And if someone wants unstable network, that cannot be centrally controlled, then buggy testnet3 and buggy testnet4 are there, so they can be used, as they are.
Which is why I'm proposing for fixing buggy testnet4. Why having two buggy test networks and not one fixed and one buggy?

Quote
So, why anyone should care about fixing testnet4, if signet already can do the same things, without any fixes?
Using a test network, I want to get the feeling that it's a decentralized network. Signet is not. Testnet4 could be if min difficulty rule was removed. To counter-argue you with another question: why did people create testnet4 when signet could already do the same things?

Quote
If the new chain would be started from scratch, then yes, it would be "less complicated". But if the code is "use old rules for 150k blocks, and then use new rules", then it is more complex, than before.
Assuming we're passed block 150,000, I feel it is less complicated, but yes, assuming someone reads it outside the current block height, it is more complex.

Quote
If you pick a no-fork route, then you won't have to ask Bitcoin Core about anything.
The problem with no-fork is that the hashrate majority is not owned by one single entity, it is often owned by new entities that join testnet4 to test their ASIC, and who probably just download Bitcoin Core to do that. You may convince the current hashrate majority to switch to your rules, but over the long term, this hashrate will be gone, and the network will be back producing CPU difficulty blocks.

██████████████████████████████████████████████████████████████████████
████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████████▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄████████████████████
███████▄██▀▀▀▀▀▀▀▀▀▀▀██▄▄▄▄▄▄▄▄███████▄▄▄██▀▀▀▀▀██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████
███████
█▄▄▄▄▄▄▄▄▄▄████▀▀▀▀██▀▀▄▄██▀██▀▀▀███████▀▀▀█▀▀▀▀▀▀▀▀▀▀████
███████
▀█
█████▀▀▀▀█████████████████▀█████████▀██▄██▄▄▄▄▄█████████
███████
▄█
███▄▄▄▄▄▄▄██████████████████████▀▀██▄███████▀████▀████
██████
▄█
██████████████████████████▄██████████████████▀████▀██████
█████
▄█
██████▀▀▀████████████████████████████████▀█████████████
████
▄█
██████▀█████████████████████████████████▀███▀▀▀▀▀█▄██████
████
▄████▀████▀███████████████████████████▀██████████████████████
████
▀█
███▀▀▀██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█████████████▀██████
█████
▀▀▀▀█████████████████████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀
███████
██████████████████████████████████████████████████████████████████████
.
.. SPORTSBOOK..NEW..
.
..100% WELCOME BONUS │ NO KYC │ UP TO 15% CASHBACK....PLAY NOW...
stwenhao
Hero Member
*****
Offline Offline

Activity: 590
Merit: 1479


View Profile
January 19, 2026, 12:16:54 PM
 #32

Quote
Not sure how you reply to the existent one.
By replying to the existing e-mail (which you can get, if you are a subscriber). If you don't have one, then you can go into the topic, and reply directly below. The drawback is, that your e-mail won't be saved in any "Sent" folder in this case, but after any message will be accepted, you will have a thing to reply to.

But anyway, it got accepted, and even my reply is accepted, so everyone can see it.

Quote
Why having two buggy test networks and not one fixed and one buggy?
In this case, you will still have buggy testnet3, buggy testnet4, and new testnet5, with its own, new problems. Because it won't be "fixed", if all CPU blocks will be rejected. There was a reason, why this 20 minute rule was introduced: to prevent the network from being stuck, if ASICs will come, raise the difficulty, and go away.

Signet is protected from that kind of attack, because the faucet difficulty is gradually lowered over time, and signet miners make sure, to never raise the difficulty in the block headers by too much.

Upgraded testnet4 will have one fixed problem, because CPU miners will no longer be there, but will have another problem of hashrate spikes, which will be left unsolved.

Not to mention, that there will still be a lot of users of the old version, which will constantly try to send you some blocks with CPU difficulty. Of course you can ignore them, but well, you can do that locally here and now. And you don't need any commits, accepted by Bitcoin Core, or anyone else. Just ignore all blocks from the tip, until getting to the one with ASIC difficulty, and there you are, welcome to testnet5!

Quote
I want to get the feeling that it's a decentralized network. Signet is not.
Which also prevents the coins from getting any real-world value. If anyone will try to trade signet coins, then it can be easily stopped, by invalidating coins by signet miners.

If you want to join a truly decentralized network, then it will get some real-world value over time. And then, a new reset will be needed again. And again. And again. And then, there is a question: in which testnet you want to be? If a hard-fork is proposed for 150k, then it means, that testnet4 didn't pass the test of even one halving.

Quote
Testnet4 could be if min difficulty rule was removed.
It will solve one kind of problems, and will create another kind of problems. But good luck.

Quote
why did people create testnet4 when signet could already do the same things?
Because signet didn't have Proof of Work faucets at that time.

May 2024: https://mempool.space/testnet4/block/00000000da84f2bafbbc53dee25a72ae507ff4914b867c565be350b0da8bf043
June 2024: https://delvingbitcoin.org/t/proof-of-work-based-signet-faucet/937

If people would know, how to allow CPU miners to get some test coins in a decentralized way, then testnet4 would start without the 20 minute rule. That was the only justification for the rule.

There was even some older discussion about The Future of Bitcoin Testnet.

Also, people didn't know back then, how to prevent the test network from being stuck. And nobody knows even today, because if all CPU blocks will be removed, then problems like that may come back. And then, you may see a few hours or days per block, because why not.

Quote
Assuming we're passed block 150,000, I feel it is less complicated
You will need to check the first 150k blocks anyway. And use old rules for all of them. Unless you decide, that the history should be set in stone. But in that case, it will be equivalent to starting a new testnet5 with 150k blocks of premine, sent to the old testnet4 users, with the full history of what happened, which would be just accepted as-is, without any validation.

Quote
assuming someone reads it outside the current block height, it is more complex
Every node doing Initial Blockchain Download for testnet5 will have to read the first 150k blocks. Unless you force all of them to use "assumevalid", which is now optional.

Quote
but over the long term, this hashrate will be gone, and the network will be back producing CPU difficulty blocks
That's one of the reasons, why I think, that testnet3 and testnet4 are fundamentally broken. And even if you will hard-code it to be active from 150k blocks forward, then still: there may be enough incentive, to reorg the chain, and never activate the new rules.

Also, no matter what you will do, your client may always keep receiving blocks with CPU difficulty anyway.

Proof of Work puzzle in mainnet, testnet4 and signet.
LoyceV
Legendary
*
Offline Offline

Activity: 3920
Merit: 21000


Thick-Skinned Gang Leader and Golden Feather 2021


View Profile WWW
January 19, 2026, 12:28:09 PM
Merited by stwenhao (1)
 #33

~ Because it won't be "fixed", if all CPU blocks will be rejected. There was a reason, why this 20 minute rule was introduced: to prevent the network from being stuck, if ASICs will come, raise the difficulty, and go away.
Then turn the 20 minute rule into a 180 minute rule, as I suggested in post #2. Or drop the difficulty to 1M instead of 1. Or drop it to 1M after 180 minutes and 1k after 240 minutes. That should ensure testnet will never get stuck. I'd say even 240 minutes (in a rare scenario) isn't worse than the current situation: in the past 6 hours, only 1 block included a few transactions.

¡uʍop ǝpᴉsdn pɐǝɥ ɹnoʎ ɥʇᴉʍ ʎuunɟ ʞool no⅄
stwenhao
Hero Member
*****
Offline Offline

Activity: 590
Merit: 1479


View Profile
January 19, 2026, 12:43:07 PM
 #34

Quote
Then turn the 20 minute rule into a 180 minute rule
Quote
Or drop the difficulty to 1M instead of 1.
People proposed things like that, but it simply didn't happen. Maybe even the initial testnet4 difficulty should not be set to "1", causing a massive premine for the early creators, who tested it with ASICs.

Quote
You may convince the current hashrate majority to switch to your rules, but over the long term, this hashrate will be gone, and the network will be back producing CPU difficulty blocks.
Guess what: that's how it should work. And how it was supposed to work, from the very beginning.

Because now, after 20 minutes, any CPU miner can submit a valid block, and if it will be propagated fast enough, then it will be accepted. Only propagation speed matters in that case.

And later, when some ASIC will join the network, then it should just automatically smash all of these CPU blocks. It is a bug, that ASICs set these blocks with CPU difficulty in stone. They shouldn't.

To do that, only one change is needed: to "allow" the difficulty 0x1d00ffff, instead of "require" it.

And of course, the code for ASIC miners should ignore all blocks with CPU difficulty from the tip, and mine a new block with ASIC difficulty, which will reorg everything, what CPU miners did.

Quote
in the past 6 hours, only 1 block included a few transactions
Which also means, that people are not interested that much in making custom block templates, or confirming non-standard transactions, but rather in just getting coins.

In this case, rules could be set to the same thing, as they are in mainnet, but just some scripts with Proof of Work may be used, to distribute coins to people with CPUs. Then, it is much less disruptive, if people are making double-spends, and sending different versions of the same transaction, than if they produce different blocks, and disrupt everyone.

Also, it is already possible to use Proof of Work scripts on mainnet, so if someone is interested in getting single satoshis, by providing some Proof of Work, then it can already be done there, in a trustless way.

Proof of Work puzzle in mainnet, testnet4 and signet.
BlackHatCoiner (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 9294


Bitcoin is ontological repair


View Profile
January 19, 2026, 02:26:10 PM
 #35

By replying to the existing e-mail (which you can get, if you are a subscriber).
I wasn't a subscriber, and wanted to reply using my protonmail, not my gmail.

Quote
Because it won't be "fixed", if all CPU blocks will be rejected. There was a reason, why this 20 minute rule was introduced: to prevent the network from being stuck, if ASICs will come, raise the difficulty, and go away.
The network is stuck, because of empty blocks that have an advantage to propagate faster. The difference is that now the network is stuck for many hours, whereas if there wasn't a min difficulty rule, it'd rarely stuck for that many.

Quote
If you want to join a truly decentralized network, then it will get some real-world value over time.
Again, I don't see this as a counter-argument. Many people trade useless things all the time, I'm not the sole arbitrator of truth of what people can trade. As long as testnet coins are available to get for free, the test network is working. Also, it already has real-world value, even in broken network. So at least fix the network.

Quote
Because signet didn't have Proof of Work faucets at that time.
Why do people use testnet3 and testnet4 even after the creation of those faucets? There's real demand for test networks beyond signet.

And later, when some ASIC will join the network, then it should just automatically smash all of these CPU blocks.
The thing is: it won't. It will simply mine on top of them, because no miner will put in the effort to install unofficial bitcoin software for the sake of destroying CPU miners. They don't care, they just want to mine some coins to test the network. You just presume miners will meddle with third-party software, outside of Bitcoin Core, whereas miners just stick with the official software, because they want to make their tests to something as close to being maintained by Core as possible.

██████████████████████████████████████████████████████████████████████
████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████████▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄████████████████████
███████▄██▀▀▀▀▀▀▀▀▀▀▀██▄▄▄▄▄▄▄▄███████▄▄▄██▀▀▀▀▀██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████
███████
█▄▄▄▄▄▄▄▄▄▄████▀▀▀▀██▀▀▄▄██▀██▀▀▀███████▀▀▀█▀▀▀▀▀▀▀▀▀▀████
███████
▀█
█████▀▀▀▀█████████████████▀█████████▀██▄██▄▄▄▄▄█████████
███████
▄█
███▄▄▄▄▄▄▄██████████████████████▀▀██▄███████▀████▀████
██████
▄█
██████████████████████████▄██████████████████▀████▀██████
█████
▄█
██████▀▀▀████████████████████████████████▀█████████████
████
▄█
██████▀█████████████████████████████████▀███▀▀▀▀▀█▄██████
████
▄████▀████▀███████████████████████████▀██████████████████████
████
▀█
███▀▀▀██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█████████████▀██████
█████
▀▀▀▀█████████████████████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀
███████
██████████████████████████████████████████████████████████████████████
.
.. SPORTSBOOK..NEW..
.
..100% WELCOME BONUS │ NO KYC │ UP TO 15% CASHBACK....PLAY NOW...
BayAreaCoins
Legendary
*
Offline Offline

Activity: 4410
Merit: 1374


AltQuick.com Secretary/PR/Janitor


View Profile WWW
January 20, 2026, 05:06:18 AM
Last edit: January 20, 2026, 07:27:41 AM by BayAreaCoins
Merited by stwenhao (1)
 #36

Good job Blackhat... meh who cares it created a new subject. Though I'm shocked they accepted that.

Sad to see it followed by such a low-quality speculative email post from Saint.

There was a reason, why this 20 minute rule was introduced: to prevent the network from being stuck, if ASICs will come, raise the difficulty, and go away.

You should know how outdated that propaganda is in the year 2026.

The only person turning their miner off Testnet is... ironically, you and you still defend it?  I'm just confused...

Even Testnet4 as it is would be stuck if all the ASICS clicked off right now. Why keep this CPU stuff around to mess up normal miners testing?  Testing mining is pretty much the main purpose of Testnet vs Signet and others.

If someone clicks on with a next-gen miner and drops off... that's just tough and to be expected.  People will notice it if their little Test transactions aren't moving and can plan accordingly.  It's almost a bad thing if something like that goes unseen IMO.  If people aren't getting confirmations, I can assure you as a testnet business owner... I'll hear about it.

https://AltQuick.com/exchange/ - A Bitcoin based exchange for Altcoins & Testnet (no fiat or KYC) - Free Coins - Privacy Coins - Real Testnet Trading with Bitcoin!!! (o my!) -  A very strong 50% share affiliate program.
BlackHatCoiner (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 9294


Bitcoin is ontological repair


View Profile
January 20, 2026, 04:13:04 PM
Merited by stwenhao (1)
 #37

You should know how outdated that propaganda is in the year 2026.
The main counter argument to this is that the network is already vulnerable to the so-called "halt state." Since empty blocks dominate due to propagation advantage, testnet4 is just a network where ASIC blocks confirm transactions while intermediary CPU blocks just raise the difficulty without confirming any transaction. As explained in my last mail in the mailing list, assuming big miners disappear, then the network will already result in a halt state, until the next ASIC miner mines a block. In fact, in the current model, the ASIC miner needs to work six times more, to solve a block and get us out of the halt state, while by disabling the min difficulty rule, the miner would have to work six times less.

And big miners rarely come and go. My python script showed that in each epoch, there always were enough ASIC miners to take the chain forward. There never were a case where 60%+ of the real hashrate disappeared.

██████████████████████████████████████████████████████████████████████
████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████████▄▄▄▄▄▄▄███▄▄▄▄▄▄▄▄▄████████████████████
███████▄██▀▀▀▀▀▀▀▀▀▀▀██▄▄▄▄▄▄▄▄███████▄▄▄██▀▀▀▀▀██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄████
███████
█▄▄▄▄▄▄▄▄▄▄████▀▀▀▀██▀▀▄▄██▀██▀▀▀███████▀▀▀█▀▀▀▀▀▀▀▀▀▀████
███████
▀█
█████▀▀▀▀█████████████████▀█████████▀██▄██▄▄▄▄▄█████████
███████
▄█
███▄▄▄▄▄▄▄██████████████████████▀▀██▄███████▀████▀████
██████
▄█
██████████████████████████▄██████████████████▀████▀██████
█████
▄█
██████▀▀▀████████████████████████████████▀█████████████
████
▄█
██████▀█████████████████████████████████▀███▀▀▀▀▀█▄██████
████
▄████▀████▀███████████████████████████▀██████████████████████
████
▀█
███▀▀▀██████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█████████████▀██████
█████
▀▀▀▀█████████████████████████████████████████▀▀▀▀▀▀▀▀▀▀▀▀▀
███████
██████████████████████████████████████████████████████████████████████
.
.. SPORTSBOOK..NEW..
.
..100% WELCOME BONUS │ NO KYC │ UP TO 15% CASHBACK....PLAY NOW...
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!