I wanted to avoid cluttering CKsolo's main thread, so I figured I'd start a separate discussion on this topic.
I'll share more responses below to maintain the context.
Discussion about Testnet4 Mining
19 replies 229 views
There is no "might", he certainly hash more hashrate.
It's not specifically designed to be mined with CPU, it can only be he case if it uses another algo, which isn't the case, so it's subject to face the same faith Testnet3 had, just the same misery caused by stupid people hammering it with high-end ASIC gears.
Furthermore, Difficulty on Testnet4 (even Testnet3) does not reset to 1 every 20 minutes, on Testnet3 it would reset if no blocks were found for 20 minutes, that was done mainly for the reason that mining follows Poisson Distribution, and even if hashrate stayed constant block intervals would be 20 mins or more like 10% of the time, which isn't ideal for testing and building on Testnet.
This adjustment rule was abused by miners who set their blocks 2 hours into the future, and because Testnet3 would adjust the entire epoch difficulty based on the last block of the previous epoch, when the last difficulty was 1, the next 2016 blocks will be mined at a difficulty of 1, obviously that broke too many nodes because when your node gets hammered by dozen blocks it would need to perform thousands of blockchain reorgs, it would run out of memory, and it would crash, many of the above things were fixed in Testnet4 which I can talk about further if you'd like.
Block propagation depends mainly on your bandwidth and your geo-location in respect to the other nodes, nearly all mining pools and mining hardware use Bitcoin Core, it's the mining/pool software that differs.
Anyway, I don't think what you think is happening is actually happening, Testnet4 difficulty is 120m> right now, the last it was at 1 was back in May which only last for a few days during the first epoch (correct me if I am wrong) so with a difficulty of 120M using a CPU isn't going to cut it, looking at the last a few difficulty adjustments on Testnet4, hashrate seems to be above 200TH, what is your CPU's hashrate? 20M? That means you would on average hit a block every 70 days or so.
paul.stakeHero Member
Posts: 651 · Reputation: 3798
#3May 5, 2024, 04:06 AM
If he "certainly" has more hashrate, how would you know? He's mining with difficulty=1.
Yes, this is what I mean. If no blocks have been found since the last block's timestamp and 20 minutes into the future, then the next block can be mined with difficulty=1.
Do you happen to know a page where I can easily see the differences between testnet3 and testnet4? For example, I didn't know about that. I think it has to do with the block storm attack, which is fixed in testnet4.
Could he be connected to a lot more nodes than I do? I just leave Bitcoin Core empty, and broadcast the block to the 8-11 nodes that I'm connected to.
Testnet4 difficulty is 1, otherwise this miner could not be mining with difficulty=1. Seriously, just check the block hashes, and you can tell he's not mining in 120 million difficulty: https://mempool.space/testnet4. Also, check his blocks' timestamps. They always have a difference of 20 minutes + 1 second, which implies he's waiting until difficulty goes back to 1, and then immediately broadcasts his new block.
Testnet difficulty is indeed 121M as I type check here, and here in other words for your block to be valid it must meet that difficulty requirement, however, there is an exception to this which the guy/s in question seem to be utilizing while you and the rest are not.
Testnet4 has a rule whereby if 20 mins have passed since the last block, you can submit a block with difficulty = 1 (the difficulty is still 121M but you are allowed to do so) which is what he does, and you would notice that he would do that for 6 blocks and then stops, because he would be restricted by the rule that states blocks can't be 2 hours into the future (although sometimes you can manage to fit in more blocks)
Now when those 6 blocks are done, the next block MUST have a minimum difficulty of 121M, obviously, given that he certainly uses a heavy ASIC, he is always more likely to find that block before everyone else, so he would solve that block in no time, and won't propagate it, he would mine another 6 blocks with difficulty of 1 each 20 mins into the future and then propagate the entire 7 blocks at the same time, his chain would be the longest, yours and everybody else's would be replaced.
So basically, whoever finds every 7th block with the current difficulty of 121M gets to collect the next 6-7 blocks
As I type, we are at block 53631, with timestamp of 2024-11-04 15:25:41, he won't be able to mine a block with diff = 1 (unless 20 mins pass), but am sure he already solved a block with 121M diff, he would wait for a while then burst a streak of blocks, obviously, if someone else uses an ASIC and finds the block, as soon as that asshole sense it, he would propagate his entire chain, so the only way to beat him would be to propagate the 121M diff block + 6 blocks into the future -- he won't be able to beat that, but is anybody else doing that? probably no.
Will try to find a link for you, but basically, in testnet3, the difficulty of the next epoch is determined by the difficulty of the last block, so if I mine block 2016 of this epoch 20 mins into the future with difficulty of 1, the entire next epoch would have a difficulty of 1, this has changed in testnet4, it now uses the first block of the current epoch to determine the difficulty of the next epoch, and the first block is exempt from the 20-minute rule -- it means you can't fake it to difficulty of 1, and it must have the actual difficulty, this means it would be almost impossible for testenet4 difficulty to drop to 1, yes blocks would have difficulty of 1 due to the 20 mins rules(except the first block of every epoch), but not for entire epochs which is why I said testnet4 difficulty has only been 1 in the first epoch and then it started climbing, you can check mempool.space chart to confirm it.
paul.stakeHero Member
Posts: 651 · Reputation: 3798
#5May 5, 2024, 12:58 PM
This is what I mean when I say that difficulty is 1. It's 1, in the assumption that there has not been a block mined and broadcasted for 20 minutes. Therefore, it is designed to be CPU-mined every 20 minutes of inactivity.
Yes, but as you can notice yourself, there's this Portland guy who mines with difficulty=121M, and once he does mine a block, the next 6-7 are taken by him. For example, check this one: https://mempool.space/testnet4/block/0000000000000007d4d38b3756d7f6a8841daa601df9f1335966a0da718a11a5.
It is mined with normal difficulty with timestamp "2024-11-04 09:25:21". The next one has a timestamp of "2024-11-04 09:45:22", and it is mined with difficulty 1, immediately after the previous block, by the ckpool guy. To me, this means that ckpool miner has enough hashrate to mine multiple blocks with difficulty=1 immediately, the moment he notices another miner mines with normal difficulty.
Again, that is block difficulty not testnet difficultly, testnet4 difficulty is now over 100M
i doubt that, with diff = 1 you should be finding blocks fairly easy,
Difficulty×2 ^ 32/ hashrate gives you time in seconds for finding a block.
My guess is, the same guy runs a few nodes with different miners, he propagates the high diff block to his other node, build on it, the propagates the entire set.
You can confirm this by logging the various blocks your node receives, you would always find that many blocks are being prodcated, accepted by your node then it does a block reorg when that asshole sends his.
So basically, testnet4 has gone to shit, just like testnet3, all these measurements are useless, there are better solutions to testnet that have been ignored.
As for you and the rest, sadly, your only option is to play dirty to win blocks, or wait till he gets tired or his mom discovers the ASIC bill.
If you want to play by his standard, download CK repo, run the stratum, expose it to the WAN, rent somehashrate on nicehash and compete with him.
When people started doing this shit on testnet3 I always wanted to reck the entire shit by making testnet useless to everyone including those assholes, I can basicaly point a few petahashes to testnet4 now and make that guy waste his money, but then I would raise the difficulty to some crazy numbers making it impossible for anybody else to use it.
Hello,
Can anyone tell me if it is feasible to use my M4 macbookPro to mine during the night in testnet4? I would like to get some coins for dev purposes without relaying on faucets. Is there any testnet4 mining pool I could join? Thanks.
paul.stakeHero Member
Posts: 651 · Reputation: 3798
#8May 7, 2024, 01:34 PM
It might be possible to mine a block, but this will be by the tiny chance that you have to propagate it at the right time.
If you read the discussion above, you'll see that there's a miner (tb1q2dsc94zq40nwnz27w5rxljwllutnwjtlxk44fz) that monopolizes the minting of tBTC. While it seems like he's using just a CPU, it's likely that when a few other miners join, he turns on his ASIC and reorgs their blocks.
the_wizardMember
Posts: 1 · Reputation: 40
#9May 8, 2024, 10:08 AM
I've been mining on testnet4 (Privat local Mining Pool) for 3-4 days and have found 3 blocks so far with 3Ths, but I'm not able to get the blocks with Diff1, I only find some when my share is high enough, currently 140M.
but the blocks are completely confimed.
miner_2011Member
Posts: 15 · Reputation: 202
#10May 8, 2024, 01:07 PM
I just don't understand why people spam the TestNet with hashrate for no reason. If you're testing software, mine a couple blocks and stop. I recently tried to mine with 1Th/s testing some software and even after three days i was no where close to a block. This was on TestNet4. TestNet3 is just a spam net more than anything.
There needs to be a pool that splits shares to small miners like you. That would fix this instantly, and you would have access to Testnet dust basically instantly with 1TH.
We are going to work on a P2Pool tomorrow. (If that is even a thing anymore... I owned a pool during the Dogecoin rush, but that's been 10+ years ago.)
Any other pool that is already established would be great.
I'm worried VKPool doesn't hit the 1 difficulty as hard as these other optimized miner bastards.
There is a reason and it's OK not to understand.
I'd rather see people testing and learning crypto in Bitcoin Testnet with Core downloaded than on TRUMP coin or DOGE. DOGE shouldn't do it better than Testnet.
paul.stakeHero Member
Posts: 651 · Reputation: 3798
#12May 8, 2024, 07:04 PM
Probably the reason they do it is because it's profitable, and that's because testnet coins have an actual monetary value in this exchange: https://altquick.com/exchange/market/BitcoinTestnet4.
To earn dust with 1 TH/s, the pool is required to find a block. You need significant hashrate to solve a block with the current difficulty, so that you can split share afterwards.
I'm solo mining now and finding blocks. https://mempool.space/testnet4/address/tb1qmjxfre4m6w99yp7wq50kqrsskymrdxj3m7hqu9
I hit the chain with 1-1.7 PH from Mining Rig Rentals using VKPool. Not a huge bit of coins, but it's not to shabby... kinda fun hitting whole blocks. I'd love to be able to share some of these blocks with the 1MH people who get shares accepted.
I do think the person with a powerful machine plowing the low difficulties is what is jamming us up.
I'm a mining noob and I can't understand why I can't throw off these stupid 20 minute block times.
Surely my shitty little exchange isn't the reason people are being such dickweeds. I think there is something else going on.
We supported Bitcoin Testnet v3 for years helping people get coins and what happened there felt really organic as well. Weird, but organic. The Asian market is just a different beast.
Our faucet still gives out v3 and v4 (v3 when it can) and that's because of a sustainable business model based around POW and free markets with Bitcoin.
Well, you can, but it is not done by default. In general, if you can see N CPU-mined blocks in a row, and no ASIC blocks in-between, then you can simply use a timestamp, which is not further than 20 minutes away from the last ASIC-mined block, and then your block will reorg the chain.
Also, some forks are discussed, to remove CPU-mined blocks entirely in testnet4 in the future: https://groups.google.com/g/bitcoindev/c/iVLHJ1HWhoU
humbleledgerLegendary
Posts: 1027 · Reputation: 6554
#15May 9, 2024, 02:24 AM
I found this topic while wondering why testnet4 is mining empty blocks: there are thousands of transactions waiting, and the last 14 blocks were empty. Before that, 2.5 full blocks, before that, 30+ empty blocks.
I don't want to post on Google groups for this, so I'll post it here: how about cutting the difficulty in half instead of dropping it to 1 after 20 minutes? That will quickly solve the problem if the difficulty is too high, and a large miner stops. But it also disables CPU mining: if the difficulty drops by a factor 8 in an hour without blocks, it takes many hours to reach 1.
Update:
I've spoke with the guy that is mining like this.
I asked him why and he said:
I then let him know that he's about to have a Customer Support job letting people know why their Testnet 4 hasn't confirmed and he said:
Basically, if the code allows for any mining fuckery, someone is going to hit it. If you divide it by 1/2 then you can multiple the fuckery by at least 2 or more.
A friendly quote for people upset about testnet being tested from the miner:
Difficulty doesn't just drop to 1 if no block is found for 20 minutes, someone has to find that block (20 minutes later) or otherwise find it sooner and (lie about it), Difficulty in the last few days was 500M, this means a few years for a high-end CPU to solve it, heck, it's actually even difficult for your average ASIC gear to solve a 500M block, an S19 pro would need about 6 hours to solve it, there must have been close to a petahash hammering testnet4 for that 500m to be sustained.
So, back to your proposal, It would take roughly 9 hours until the difficulty drops to 1, and mind you, there must be a single honest ASIC who would not abuse the 20 mins rule and won't mine his own blockchain, that honest guy would mine the 1/2 difficulty block and disappear for 20 mins, come back, hit a block, go offline, do this for 29 times just so that the broke folks can mine on testnet4, we all know nothing like that is going to happen.
And then again, the same guy that can hit a block of high diff, will be able to do the same for a 1/2 diff block; it would only make his life a little bit more difficult, but as I told you, a 1 PH worth of hashrate has been hitting testnet4, so whoever is doing that shit doesn't seem to give a flying fudge about cost.
Furthermore, your solutions lines perfectly with the proposed fixes of elimination the difficulty 1 all together, because here is the unsolvable issue related to testnet.
If difficulty doesn't reset = CPU will never hit a block.
If difficulty is always 1 during the entire epoch = thousands of blockchains will be created and constant block reorgs, all nodes will be rekt.
If difficulty keeps growing forever = even small ASICs won't be able to hit a block.
It's like a race where you would assume that everyone would be running on their own feet, then somebody bought a horse and started beating everyone else, you adjust the rules so that if the horse leaves, the benchmark now drops, the same horse leaves then comes back to break his "own" benchmark even more easily, you say you want to keep a high benchmark, you now just forced the horse to run faster and made sure not a single runner would beat him and that now everybody must buy a horse.
The next thing you know is, people start racing using cars, when that is fixed, they use faster cars, and the story is never going to finish.
There is really one possible fix to testnet and that would be a consensus of resting the entire blockchain at block x, x should not be anything more than 1,000, with a "currency" that resets every 2 hours, nobody would want to hoard it.
humbleledgerLegendary
Posts: 1027 · Reputation: 6554
#18May 11, 2024, 04:35 PM
So breaking transactions to prove a point?
It's currently divided by 500 million, so I'd say dividing by 2 would make it better, not worse.
In my proposal, the difficulty would go back to normal after each block. So if an ASIC mines the 1/2 difficulty block, he can indeed do that again 20 minutes later, but it won't keep dropping (unless no block was mined). So if a large ASIC would disappear and the difficulty is too high for the remaining miners, the next block may take 20, 40, 60 or more minutes. After that, the difficulty goes up again.
I'm not very up to date on mining costs, so I'll ask you: how much would that cost per day (in missed main chain revenue)?
And the latest gig: mine empty blocks.
That means there would never be any halvings and it pushes testnet functionality even further away from real Bitcoin.
First of all, make sure, that transactions are really propagated, and not just sent to mempool.space. Some block explorers were spammed in the past, and the rest of the network was unaffected: https://bitcointalk.org/index.php?topic=5528236.msg65010417#msg65010417
If you change the difficulty in the block header from 0x1d00ffff to anything else, then it will be some kind of hard-fork. Which means, that in 2026, we will probably see testnet5 with new rules. And then, if the chain won't be resetted, and will just continue for example testnet4 chain, then it will be the same, as making a new network with N blocks of premine (because the current testnet4 chain doesn't meet new, hard-forked rules, so to build on top of this chain, the new rule must ignore all blocks below N).
If you disable CPU mining, then why changing the difficulty adjustment algorithm is necessary? In that case, it can be left, as it is in mainnet. And it can be easily proven, that half of the difficulty is not enough, because current ASICs cannot get their blocks mined in 20 minutes (and the difficulty is based on 10 minutes per block).
And what is the message? "Stop making new testnets?".
Sounds like signet, where network creators can censor transactions, without any restrictions, because they sign all blocks.
Well, it is, but it is also becoming an altcoin, because the current consensus cannot enforce "coins are worthless" rule.
not 60 mins, it would take about 2 years for cpu miners to hit the next block.
$50 a day before the powe bill.
The areshole who is abusing testnet4 is better with mining empty blocks to avoid any block being invalidated if any transaction was not right, although if done right he can avoid that scnerio but i don't think he cares.
There could be halvings every 10 blocks or so, regadless, the current testnet is way far from mainnet, halvings happen way sooner, most miners don't even know about it, they just keep on getting hit by a burst of blocks that some asshole mined in secret, you are wasting time solving block 100 when someone else is already solving block 113, all you learn from it is how your blocks get rejected by the network.
?Reply
Sign in to reply to this topic
Related topics
- Questions about mining safety and using your crypto wallet 5
- Check Out Our Unique VR Tour of a Bitcoin Mine | Meet Verakari Mining 0
- Have you thought about getting compensation from your miner hosting service? 3
- mining info on bitcoin.org needs an update 3
- Eco-Friendly Mining: Exploring Solar-Powered Bitcoin Opportunities 9
- Need some guidance for my thesis on Bitcoin mining 14