Pages:
Author

Topic: Requesting Testnet4 tBTC (Read 2542 times)

copper member
Activity: 821
Merit: 1992
December 29, 2024, 08:49:39 AM
Quote
I still don't understand how they get their difficulty, though.
I guess they just call "getblocktemplate".

1. If block_time > last_block_time+1200, then difficulty=1
2. Otherwise, difficulty=network_diff

Note that every miner can control "block_time", because it is just what is put in block header. By default, Bitcoin Core gives you the earliest time (based on the current time, the MTP rule, and the timewarp 600 seconds rule). But: you can put some later timestamp there, to trigger "difficulty=1" condition.

Quote
but how do they know which value to put in their blocks, beforehand?
There are only two options: the network difficulty, and the minimal difficulty. If you want to get the network difficulty, then just check the latest block, where it was adjusted.
Code:
block_number=60942
60942/2016=30+...
30*2016=60480 //latest adjustment
bits_in_block(60480)=0x1913e3b7
bits_to_target(0x1913e3b7)=0000000000000013e3b700000000000000000000000000000000000000000000
bits_to_target(0x1d00ffff)=00000000ffff0000000000000000000000000000000000000000000000000000
difficulty=00000000ffff0000000000000000000000000000000000000000000000000000/0000000000000013e3b700000000000000000000000000000000000000000000
difficulty=26959535291011309493156476344723991336010898738574164086137773096960/124848484694520496450254989037678616522135653265297473798144
difficulty=215938025+81833825167668903265531020299488556990381026556677309071360/124848484694520496450254989037678616522135653265297473798144
difficulty=215938025+(2^176*3*5*7*79*103/2^176*3^3*23*2099)
difficulty=215938025+284795/434493
difficulty=215938025.6554651053066447560720195722370671104022389313521736828901731443...
But, miners are not calculating "0x1913e3b7" for every block. They can do it just once per 2016 blocks.

https://github.com/bitcoin/bitcoin/blob/master/src/pow.cpp#L14
Code:
unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHeader *pblock, const Consensus::Params& params)
{
    assert(pindexLast != nullptr);
    unsigned int nProofOfWorkLimit = UintToArith256(params.powLimit).GetCompact();

    // Only change once per difficulty adjustment interval
    if ((pindexLast->nHeight+1) % params.DifficultyAdjustmentInterval() != 0)
    {
        if (params.fPowAllowMinDifficultyBlocks)
        {
            // Special difficulty rule for testnet:
            // If the new block's timestamp is more than 2* 10 minutes
            // then allow mining of a min-difficulty block.
            if (pblock->GetBlockTime() > pindexLast->GetBlockTime() + params.nPowTargetSpacing*2)
                return nProofOfWorkLimit;
            else
            {
                // Return the last non-special-min-difficulty-rules-block
                const CBlockIndex* pindex = pindexLast;
                while (pindex->pprev && pindex->nHeight % params.DifficultyAdjustmentInterval() != 0 && pindex->nBits == nProofOfWorkLimit)
                    pindex = pindex->pprev;
                return pindex->nBits;
            }
        }
        return pindexLast->nBits;
    }

    // Go back by what we want to be 14 days worth of blocks
    int nHeightFirst = pindexLast->nHeight - (params.DifficultyAdjustmentInterval()-1);
    assert(nHeightFirst >= 0);
    const CBlockIndex* pindexFirst = pindexLast->GetAncestor(nHeightFirst);
    assert(pindexFirst);

    return CalculateNextWorkRequired(pindexLast, pindexFirst->GetBlockTime(), params);
}
See? This "CalculateNextWorkRequired" function is called only every 2016 blocks. In all other cases, the code is just copy-pasting "nBits" from the nearest block header, which contained the real network difficulty.

Quote
Does that mean that if it's shown as 210M, it's 6 times easier to mine it?
Well, if you have for example 336 ASIC-mined blocks, and 1680 CPU-mined blocks, when you explore the latest 2016 blocks, then having 336 blocks with 216M gives you the same chainwork, as 2016 blocks, mined with 36M. Because during difficulty adjustments, all that is counted, is just "how fast the last 2016 blocks were mined", and not "how many hashes were needed to do that".

Quote
if we took these ASIC miners and started a new Bitcoin network, with mainnet rules, would difficulty reach 210M / 6 =  35M?
Exactly. Initially, you have a network with all ASICs, where 100% blocks are honestly mined. Then, when CPU miners abuse 20 minutes rule, it means 2016 blocks are produced faster, than they would be in 100% ASIC world. So, the difficulty is increased, and in the next two weeks, ASICs can produce even less blocks. And that situation keeps repeating, as long as other limits are not reached. And then, the difficulty put in ASIC blocks no longer reflect, what they can mine during 10 minutes.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
December 29, 2024, 05:23:54 AM
Just use "getblocktemplate", and check, which value is displayed there. Now, I don't use "getdifficulty", in the same way, as I don't use Bitcoin Core's fee estimations.
I still don't understand how they get their difficulty, though. Right now, I can see the value of the difficulty by viewing what they put in their blocks, but how do they know which value to put in their blocks, beforehand?

Quote
So, if you see "testnet4_diff=6000", then you should read it as something like "testnet4_diff_per_10_minutes=1000" instead.
Still, I'm having a hard time understanding. Alright, so testnet difficulty, when CPU mining is 80%, no longer determines the difficulty to mine every once per 10 minutes, but 60 minutes. Does that mean that if it's shown as 210M, it's 6 times easier to mine it?

Or to put it this way, if we took these ASIC miners and started a new Bitcoin network, with mainnet rules, would difficulty reach 210M / 6 =  35M?
copper member
Activity: 821
Merit: 1992
December 28, 2024, 06:42:35 PM
Quote
How can I configure it such that I mine on ASIC difficulty?
Just use "getblocktemplate", and check, which value is displayed there. Now, I don't use "getdifficulty", in the same way, as I don't use Bitcoin Core's fee estimations.

Quote
Is the displayed difficulty determined only by the frequency of the ASIC mined blocks?
Well, the network difficulty was supposed to change once per 2016 blocks (two weeks). Test networks broke that assumption, so if some website assumed that, then it can treat "difficulty=1" incorrectly. The best way is to check "chainwork" instead.

Quote
the difficulty seems way higher than that
If you have more than 80% blocks, mined with the minimal difficulty, then the consequence is that the difficulty, declared in block headers, is measured not as "the difficulty per 10 minutes", but rather "the difficulty per hour" instead. So, if you see "testnet4_diff=6000", then you should read it as something like "testnet4_diff_per_10_minutes=1000" instead.

Think about it in that way: you start from some honest network, where 100% blocks are mined by ASICs. You can see 2016 blocks with real difficulty, per two weeks. If CPU miners can join it, and mine half of the blocks, then you have 1008 CPU blocks and 1008 ASIC blocks per week. Then, the difficulty is doubled. And then, you have 504 ASIC blocks (because of unfairly raised difficulty) and 1008 CPU blocks in the next week, so the next time, the difficulty is raised again. And so on, and so on. Until reaching an equilibrium, which seems to be something around 1/6th of blocks, mined by ASICs. So, instead of having "the difficulty per 10 minutes", you have "the difficulty per hour" instead. And the main rules, which are stopping the difficulty from raising infinitely, are just Median Time Past on the last 11 blocks (strong consensus rule), and 2 hours rule (de-facto standard, non-consensus rule).

Quote
Or are those hashrates displayed not accurate at all?
If you want to get accurate values, then look at chainwork. It can tell you, how many hashes were needed, to make the chain.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
December 28, 2024, 05:00:48 PM
And if you use an unmodified client, then you will get the current time here, which will almost always mean, that you will be mining with ASIC difficulty.
I downloaded Bitcoin Core v28 from bitcoincore.org without your modifications on node/miner.cpp and chain.h, and I cannot verify what you're claiming in here. Command getdifficulty returns 1, while mempool.space says that ASIC miners mine on 215938025.6554651. How can I configure it such that I mine on ASIC difficulty?

Followup question. Is the displayed difficulty determined only by the frequency of the ASIC mined blocks? Because in here it says that the two ASIC miners have a combined hashrate of around 50 TH/s, while the difficulty seems way higher than that. Or are those hashrates displayed not accurate at all?
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
November 23, 2024, 05:19:25 AM
Because each ASIC block, which will confirm all previous blocks, basically sets the attack in stone, so the chain will not be reorged in the future.
That was kinda my point: since there are so few ASIC blocks, reorging some of them shouldn't take long for an ASIC.
My earlier estimate:
their "cost" is about $0.63 per block
Since then, Bitcoin's price went up. Let's say an ASIC miner misses out on $1 on Bitcoin earnings if he switches to Testnet4 (per block). That means it costs $7 to replace the last 500 CPU blocks and while doing so, set a precedent for the future.
Unless my math is wrong. Anyone with an ASIC who wants to give this a shot?
copper member
Activity: 909
Merit: 2301
November 23, 2024, 03:55:46 AM
Quote
Shower thought: I'm not sure how "chain work" competes against "chain length": can 1 difficult ASIC block wipe out thousands of easy CPU blocks?
Yes. The main limitation is difficulty adjustment: you cannot make "stronger" block, than your difficulty says (because then, everyone would just work on top of the Genesis Block, all the time, and would be guaranteed to throw away the whole chain in the future, with constantly increasing probability).

For example: the mainnet Genesis Block has the "real" difficulty of 2536, but it is declared as "1d00ffff", so it is only counted as 1. And the chainwork is then counted as 0x100010001, not 0x9e8770a5c23.

Quote
Does this mean an ASIC miner can reorg the last ~600 blocks if he ignored those blocks and mines 7+ blocks on top of block 54502?
Yes. But they don't do that, because most miners just run the default settings, without thinking about profitability, and without coding their own implementations. I guess most people would not even enable CPU mining, if Garlo Nicon would not share those changes publicly. It is not that easy to come up with a better algorithm, and most people are not programmers, and they simply stick to what they can find, instead of writing their own code.

However, if ASIC miners would want to maximize their profits (and lower the network difficulty), then they would ignore hundreds of CPU-mined blocks, and only consider ASIC-mined blocks as "real", and reorg all CPU-mined blocks, just by mining on top of the latest ASIC-mined block.

But of course, as long as this change is not implemented, then this miner can happily rule testnet4, and make it de-facto signet for a while. Because each ASIC block, which will confirm all previous blocks, basically sets the attack in stone, so the chain will not be reorged in the future.

And also, because testnet4 coins got some value anyway, and are actively traded, then another network should be used for real testing. And of course, testnet5 should have completely different rules, because in other case, Bitcoin Core developers would participate just in altcoin pump and dump, if they will keep making test networks, without preventing those coins from being traded.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
November 23, 2024, 03:11:56 AM
I rather rent an ASIC miner for a few dollars than having to spend days playing with the code and running a few nodes to perform selfish mining
~
a person with an ASIC miner would still be able to fork the network with his longer chain
Shower thought: I'm not sure how "chain work" competes against "chain length": can 1 difficult ASIC block wipe out thousands of easy CPU blocks?
I checked my logs:
Code:
grep 'new best=00000000000000' debug.log # I manually removed duplicate block hashes from this list
2024-11-15T13:27:30Z UpdateTip: new best=000000000000000fa5e90d59206958c807e084c9988b4ee6c2738a1f4dd53014 height=54502 version=0x26c06000 log2_work=71.560382 tx=944754 date='2024-11-15T13:28:04Z' progress=1.000000 cache=0.3MiB(280txo)
2024-11-15T22:40:32Z UpdateTip: new best=00000000000000042c5b525b1f097ed366f790be3eeef9d157267644417fb6db height=54536 version=0x21472000 log2_work=71.560728 tx=945201 date='2024-11-15T22:48:33Z' progress=1.000000 cache=0.3MiB(1110txo)
2024-11-16T20:56:21Z UpdateTip: new best=00000000000000146be121b6ecdf28f5d415c010b6969851a031ebcdb016049b height=54609 version=0x22b74000 log2_work=71.561074 tx=948063 date='2024-11-16T21:09:41Z' progress=1.000000 cache=0.7MiB(4155txo)
2024-11-18T22:23:33Z UpdateTip: new best=00000000000000079cf95417ef8a090c76d9f87f90ff79b28e5725a42daa95a8 height=54763 version=0x25eec000 log2_work=71.561420 tx=951402 date='2024-11-18T22:32:10Z' progress=1.000000 cache=1.4MiB(7993txo)
2024-11-19T02:00:07Z UpdateTip: new best=000000000000000167286a4bea3bca60d6c3ab2cbbef79537bdf07b6420a2d2d height=54780 version=0x21e70000 log2_work=71.561766 tx=951770 date='2024-11-19T02:12:22Z' progress=1.000000 cache=1.7MiB(8858txo)
2024-11-22T20:06:45Z UpdateTip: new best=0000000000000000123a9df4e2b399ac26492922dfc6ec2081045d0cacc17100 height=55056 version=0x20638000 log2_work=71.562112 tx=960307 date='2024-11-22T20:16:53Z' progress=1.000000 cache=2.7MiB(16356txo)
That's only 6 ASIC blocks on testnet4 in 8 days.
Does this mean an ASIC miner can reorg the last ~600 blocks if he ignored those blocks and mines 7+ blocks on top of block 54502?
copper member
Activity: 821
Merit: 1992
November 05, 2024, 07:09:21 AM
Quote
Can CPU miners mine testnet4 now?
1. Yes. Their blocks can be reorged, but they can mine them.
2. There are addresses, where you can move coins, if you grind a small enough signature. More details: https://github.com/adambor/btc-pow-locked-outputs

And I am currently focused on the second point, because it works without any forks, on all networks, including mainnet.

I think it is technically possible to make a Proof of Work based sidechain out of that, just by applying OP_SIZE on DER signatures. And then, it could allow activating something like BIP-300 or BIP-301, without a soft-fork.
legendary
Activity: 2464
Merit: 6687
be constructive or S.T.F.U
November 05, 2024, 06:20:09 AM
I hardly doubt this has anything to do with scarcity. People just need tBTC sometimes to test things, and out of this need, speculation arises. And, empirically, people speculate without taking into account scarcity.

I believe it would help, some people have this illusion that anything that is limited holds some value in it, if you could press a button and make an unlimited supply of seashells, it would likely result in less people at the beach looking for them, I am not just speculating here, I had several discussions with folks who were hammering tesetnet3 with S9s back in the day, they generally don't intent to screw CPU miners, they just think testnet coins are fun to have, and obviously, some of them, would want them so they can re-sell them to devs who can't mine them, so by making the total supply = infinity, it would most likely drive many of these miners away.

Quote
Then only ASIC miners will mine. The goal should be to allow CPU miners to test mining blocks.

Can CPU miners mine testnet4 now? they can not, so at least, if this isn't going to be solved, someone with an ASIC can still find blocks, because as it stands right now, you need and ASIC + selfish mining which requires some programming skills + the time to do so, so it's only a tiny set of people who can mine it, if I am developing a wallet or something, I rather rent an ASIC miner for a few dollars than having to spend days playing with the code and running a few nodes to perform selfish mining, so while it's not an optimal solution, it certainly is better than the current situation.

Quote
Once per two weeks, there is a difficulty adjustment, and then, only ASICs can mine a single block. Recently, it took one hour. And before that, there was a time, when it took around 4 hours. And ASIC miners could simply block all CPU miners, once per two weeks, if they would just stop mining.

The guys who control testnet4 have been maintaining the difficulty at almost flat for almost a month, they can do so because it's only them finding the majority of the blocks basically at the time they want.

Quote
If no CPU solves the block for 20 minutes, then the difficulty drops to the minimum for everyone. Then, even if you have some ASIC, you have no other choice, than to mine at the minimum difficulty

It drops for everyone but that's just on paper, a person with an ASIC miner would still be able to fork the network with his longer chain, even at a difficulty of 1, the average (more so the high-end) CPU would need a few minutes to solve a block, whereby with an ASIC it could be less than a second, again, even if your CPU was lucky enough to solve a block right at that 20 mins mark, once he receives it, he would still be able to mine 6 consecutive blocks and make you lose your block.
copper member
Activity: 909
Merit: 2301
November 05, 2024, 05:45:08 AM
Quote
Lifting the 21M cap
It wouldn't change anything now, because we are still before the first halving. And I don't know, if testnet4 will live long enough, to even approach the first halving.

Quote
Removing the 20mins exception rule all together
It will only increase the price on centralized exchanges, and make testnets even more similar to the mainnet. Then, a different Genesis Block, would be the only major difference.

Quote
Reset the blockchain every X block
Yes, I guess X=1 should work quite well.

Quote
I need 866TH to solve a block every 10 mins on average
The real difficulty is around 6x bigger, than it should be, because of CPU miners.

Quote
I don't need to keep it mining 24/7
Once per two weeks, there is a difficulty adjustment, and then, only ASICs can mine a single block. Recently, it took one hour. And before that, there was a time, when it took around 4 hours. And ASIC miners could simply block all CPU miners, once per two weeks, if they would just stop mining.

Quote
you can always see their blocktimestamp is 20m+1 second of the previous block
If no CPU solves the block for 20 minutes, then the difficulty drops to the minimum for everyone. Then, even if you have some ASIC, you have no other choice, than to mine at the minimum difficulty. Of course, you can mine in the past, but Median Time Past rule forces timestamps to move forward, so it is quite limited by the timestamps of the previous blocks (which is why sometimes you have no other option, than to put a timestamp from the future, when MTP rule forces you to do so).

Quote
It explains how none of other miners can compete at 121M difficulty.
Well, it just makes much more sense to mine mainnet blocks, or pick some other altcoin in that case. Many people expected to sell testnet4 coins at 7000 satoshis per unit, and they were quite surprised, when CPU miners dumped 100k coins, and dumped the price into 20 satoshis (which is now slowly recovering, but testnet3 is worth much more than testnet4, so many people just don't have any reason to switch; also because testnet3 is much faster chain, and allows much more bloat).
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
November 05, 2024, 05:02:52 AM
1- Lifting the 21M cap:

Unlimited supply of testnet coins would make these assholes give less value to testnet coins.
I hardly doubt this has anything to do with scarcity. People just need tBTC sometimes to test things, and out of this need, speculation arises. And, empirically, people speculate without taking into account scarcity.

Quote
2- Removing the 20mins exception rule all together and let the difficulty climb exponentially to the point where everyone has the same the same chance of hitting a block based only on their hashrate and not how dirty they are willing to play.
Then only ASIC miners will mine. The goal should be to allow CPU miners to test mining blocks.

Quote
3- Reset the blockchain every X block so that holding testnet coins becomes useless
This sounds like the best approach.

Quote
I am pretty certain the Portland guy/s are the same operators of the other miner that solves the 1 diff blocks, you can always see their blocktimestamp is 20m+1 second of the previous block.
Yes, that's I think as well. It explains how none of other miners can compete at 121M difficulty.
legendary
Activity: 2464
Merit: 6687
be constructive or S.T.F.U
November 05, 2024, 04:45:22 AM
If the ASIC miners also do it for profit, garlonicon's Fork idea isn't going to solve the value problem.

They do it because they are some smart assholes who know how to make use of the not-so-smart censuses related to testnet.

Quote
They waste all this ASIC power on testnet, only to lose ~80% to CPU miners. If I'd be an ASIC miner, I'd wipe the floor with them

Believe it or not, even having more hashpower than those guys isn't going to cut it, you will need some coding skills to do selfish mining, all you need is one large ASIC miner and the rest could be done on another node that runs a smaller miner or a CPU.

So testnet4 as is, not only that a CPU miner has no chance in it, even a regular person with ASIC has no chance, you need an ASIC miner + coding skills + the ability of ruining the testnet4 without feeling bad, you basically need to steal the blocks from those assholes, but again, is that even ethical?

Here are a few solution to this never ending problem of testnet.

1- Lifting the 21M cap:

Unlimited supply of testnet coins would make these assholes give less value to testnet coins.

2- Removing the 20mins exception rule all together and let the difficulty climb exponentially to the point where everyone has the same the same chance of hitting a block based only on their hashrate and not how dirty they are willing to play.

3- Reset the blockchain every X block so that holding testnet coins becomes useless



Quote
So ASIC miners are "spending" (or "wasting") about $13 worth of computing power per day on Testnet 4

Maybe less, it all depends on who else is competing against them.

As of right now, at the current difficulty of 121M let's say I want to mine all blocks alone.

I need 866TH to solve a block every 10 mins on average, I don't need to keep it mining 24/7, I would mine for 10 mins, find a block, stop there or point the ASIC to a mining pool, start selfish mining on a much smaller ASIC or even a small CPU that can do 70MH per second, that way, I can find a block every 60 seconds, while doing that, everybody else is stuck at the 121M block, if nobody finds a block, I just go on with solving the 1 diff blocks on my CPU or a small miner, if someone finally manages to solve the 121M block I would propagate the chain I have, fork the network, force every node to reject that block and accepts mine being the longest chain.

I am pretty certain the Portland guy/s are the same operators of the other miner that solves the 1 diff blocks, you can always see their blocktimestamp is 20m+1 second of the previous block.






copper member
Activity: 821
Merit: 1992
November 01, 2024, 09:14:54 AM
Quote
garlonicon's Fork idea isn't going to solve the value problem
The linked topic on GitHub is not my idea. This is what Core developers are planning to do. And of course, it won't solve the problem of testnets becoming valuable.

My idea was to make all testnet blocks stale, then they would always be worthless, because they would never be part of the heaviest chain, and they will always get reorged.
?
Activity: -
Merit: -
November 01, 2024, 08:48:38 AM
Interesting theories you're presenting. Indeed, the combination of different mining methods can significantly affect block distribution. It will be intriguing to see how this develops in the future.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
November 01, 2024, 07:47:22 AM
If that's the case, why not call it Portland instead of ckpool?
If he calls it Portland, then it'd be clear that Portland takes advantage of his ASIC power, but combines it with CPU mined blocks, and therefore, it'd signal to other ASIC miners that he does not use as much hashrate as it seems, and they could take a big portion of the pie as well.

Another theory: ckpool miner is not a CPU miner. He's an ASIC miner, but mines with difficulty=1, and so, when Portland broadcasts his block, he possesses enough power to solve 5-6 blocks in a row. (That'd explain "ckpool" in the name.)

Quote
If the ASIC miners also do it for profit, garlonicon's Fork idea isn't going to solve the value problem.
Certainly not. Reorging would clearly indicate that ASIC miners do, in fact, gain some benefit beyond the mere satisfaction of testing.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
November 01, 2024, 06:45:56 AM
Here's a conspiracy theory: The Portland and ckpool are the same guy, and therefore, with that much power, he can outpace any other CPU miners, while enjoying the benefit of mining most of his coins with a CPU instead. That would explain how ckpool can mine multiple blocks within a second difference the moment Portland broadcasts the block.
If that's the case, why not call it Portland instead of ckpool?

Quote
They're worth real money. I didn't know this before, I thought they'd be extremely cheap if any fool bought them, but right now you can sell 1 tBTC for  $0.01-0.02. I had completely overlooked on humans' desire to speculate, even with the most worthless coins. Now it makes sense why ASICs dominated in testnet3. It's extremely profitable right now in testnet4.
If the ASIC miners also do it for profit, garlonicon's Fork idea isn't going to solve the value problem.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
November 01, 2024, 06:09:21 AM
So ASIC miners are "spending" (or "wasting") about $13 worth of computing power per day on Testnet 4. If that gets them 1/6th of the blocks, their "cost" is about $0.63 per block, or just over a cent per Testnet 4 coin.
Here's a conspiracy theory: The Portland and ckpool are the same guy, and therefore, with that much power, he can outpace any other CPU miners, while enjoying the benefit of mining most of his coins with a CPU instead. That would explain how ckpool can mine multiple blocks within a second difference the moment Portland broadcasts the block.

Quote
It's still baffles me people spend that much computing power on testnet.
They're worth real money. I didn't know this before, I thought they'd be extremely cheap if any fool bought them, but right now you can sell 1 tBTC for  $0.01-0.02. I had completely overlooked on humans' desire to speculate, even with the most worthless coins. Now it makes sense why ASICs dominated in testnet3. It's extremely profitable right now in testnet4.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
November 01, 2024, 05:31:20 AM
These 167k tBTC he has mined can be sold for 0.05 BTC as we speak.
I got curious: vjudeu's post shows that about 1/6th of the blocks are mined by ASICs, and the difficulty is 245290781. If I understand this correctly, it means that only a sixth of the difficulty is "caused" by ASICs, so their work is equal to difficulty 40881797. Bitcoin's difficulty is 97.67T. That's 2,389,082 times more difficult. In the past days, transaction fees were (give or take) 0.03 BTC per block. Add the block reward, and it's 3.155 BTC. At 6 blocks per hour, that's close to $32 million per day. So ASIC miners are "spending" (or "wasting") about $13 worth of computing power per day on Testnet 4. If that gets them 1/6th of the blocks, their "cost" is about $0.63 per block, or just over a cent per Testnet 4 coin.
The 167k coins for 0.05 BTC you mentioned equals 2 cent per coin.

Ending CPU mining would give ASIC miners 6 times more blocks for the same amount of computing power (after the difficulty adjusts). It's still baffles me people spend that much computing power on testnet.
legendary
Activity: 1512
Merit: 7340
Farewell, Leo
October 30, 2024, 01:48:08 PM
It's now a Speedy Gonzales blockchain
Traitors 1, Byzantine generals 0.  Tongue

Quote
They waste all this ASIC power on testnet, only to lose ~80% to CPU miners. If I'd be an ASIC miner, I'd wipe the floor with them
Justice to Portland!

Quote
What hashrate do you have? I assume that minute is an average, it can be a second if you're lucky.
What hashrate do I have? How about 12 cores on an i5 10400?  Cheesy

The average is 20 minutes + 1 sec, so it's much less than 1/60th possibility.

Quote
What do you mean by "manually"?
I mine on paper.  Tongue

I mine the block with cpuminer-opt, export it in text, and submit it with "submitblock . But to reach to that, I firstly find the previous block's timestamp with:
Code:
./bitcoin-cli getblock "$(./bitcoin-cli getbestblockhash)" | grep '"time":' | awk '{print $2}' | tr -d ','

Edit: Technology improved since then, and I have written code to do things more automatically now, but it must had been as I described when your server logged it.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
October 30, 2024, 01:05:54 PM
So basically, it's practically no longer a proof-of-work blockchain.
It's now a Speedy Gonzales blockchain Cheesy

Quote
unless of course ASICs join and dictate the truth.
They waste all this ASIC power on testnet, only to lose ~80% to CPU miners. If I'd be an ASIC miner, I'd wipe the floor with them Tongue

Quote
What I don't understand from your logs is how your node heard of my block 12 seconds after the previous block, when the previous block could not have been broadcasted only 12 seconds before, because for me to have broadcasted my block manually (with submitblock), it'd take around a minute to mine it and prepare it manually for submitblock.
What hashrate do you have? I assume that minute is an average, it can be a second if you're lucky.

Quote
The only reasonable explanation is that my block wasn't done manually, I just left cpuminer-opt running in the background, and it just found a block and broadcasted it.
What do you mean by "manually"? Is it a script, or you really have to manually do that? Check your own logs, compare times with my logs. Mine are probably on Amsterdam time, so ignore the hours.
Pages:
Jump to: