Pages:
Author

Topic: [Guide] Solo mine testnet bitcoins with cgminer, Bitcoin Core, and a Compac F - page 2. (Read 1896 times)

hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
There we go! Another block found, using the R909 actually. I like how it can quickly be set up without worrying about external fans and fine tuning any power settings. [Review coming... soonTM?]

Sadly the block reward is quickly dwindling in Testnet already.. +0.044tBTC this time.

Edit: Another one, an hour later! +‎0.02996310 tBTC
Edit 2: I got the immediately following block, too, at full difficulty. Shocked

With my previous calculations, that is very unlikely. I have 1.7TH/s, so:
Code:
Difficulty * 2^32 / Hashrate
67108864 * 2**32 / 1700e9
= 169547 seconds
= 47h
= almost 2 days

I'm basically expecting to need 2 days to mine a block at this difficulty, but did it in 3 minutes. Pretty neat.

Edit 3: I found another difficulty=1 block, as well as another at 67108864. How is that possible? I need to double-check my calculations...
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
Quote
Unfortunately, for now this means we won't have 20-minute block times in a while, i.e. no solo-mined tBTC.
You can always have some 20-minute block with the minimal difficulty.
Not at the current difficulty. People are mining blocks every 2 minutes; there is realistically no chance for a 20 min time period without blocks.

After 20 minutes, there are two options:
1. Some block with difficulty one will be accepted.
2. Some block with the real difficulty will be accepted.
I know, that's what this whole thread is about and I've been scooping up tons of 1-difficulty blocks months ago, myself! Cheesy

When it comes to weak blocks, everyone can produce them, by using CPU, GPU, FPGA, ASIC or whatever.
That is not true; LoyceV has shown it in an experiment and we've calculated it on paper, too. ASICs solve these blocks in a fraction of a second, meanwhile a (regular / not highest-end) CPU can need minutes or more; no advantage in internet speed will be enough to offset that.

In those cases, CPUs are more important than other hardware, because they are used to send blocks, so it is a competition between nodes, and not between miners.
That's incorrect.

This is where I was wrong:
The highest possible target (difficulty 1) is defined as 0x1d00ffff

The average time to find a block can be approximated by calculating:

Code:
time = difficulty * 2**32 / hashrate
The expected number of hashes we need to calculate to find a block with difficulty D is therefore

D * 2**256 / (0xffff * 2**208)
Actually, if we use this formula, it appears that with difficulty=1, you need on average 4295032833 or ~4.3GH to find a valid one. So on a 7MH/s machine, that's 613 seconds or 10 minutes. Impossible.. Grin

Code:
>>> 1 * 2**32 / 7000000
613.5667565714285

[...]



Code:
>>> 4.3e9 / 300e9 # hashes needed on average / hashrate of compac f
0.014333333333333333
With just 300GH/s and difficulty=1, it only takes it 0.0143s to go through those 7 million hashes.
This would also mean that the formula expecting @LoyceV's CPU to take on average 10 minutes, is correct.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
Quote
Note that there's not much left to mine on testnet: the block reward is now 0.024, about 300 times lower than Bitcoin mainnet.
For that reason, it is very unlikely that testnet3 will ever be killed. Because now, it is the only network that is quite close to mainnet, and where you can test, what will happen when the basic block reward will be very small. It is also probably the first network, that will reach zero block reward, and then a lot of people will carefully observe, what will happen next.

By the way, testnet coins are worthless by definition. So, if nothing else will happen, then testnet3 will finally reach a state, where the basic block reward will truly represent the real value of those coins. In general, testnet3 could have zero supply, but some coins are needed as a spam protection.
Despite being worthless, people are still mining testnet. So I expect at least some of them to continue mining when there's no block reward left. That also means total fees can be under the dust limit. And even if they don't, with low difficulty just one miner is enough to continue the chain. We may see 1000 block 99% attacks once in a while.

Testnet coins already seem to be quite scarce, my guess is many are lost. After all, there's not much of a reason to be careful with worthless coins. That means testing in the future will have to happen with smaller and smaller amounts.
copper member
Activity: 906
Merit: 2258
Quote
Note that there's not much left to mine on testnet: the block reward is now 0.024, about 300 times lower than Bitcoin mainnet.
For that reason, it is very unlikely that testnet3 will ever be killed. Because now, it is the only network that is quite close to mainnet, and where you can test, what will happen when the basic block reward will be very small. It is also probably the first network, that will reach zero block reward, and then a lot of people will carefully observe, what will happen next.

By the way, testnet coins are worthless by definition. So, if nothing else will happen, then testnet3 will finally reach a state, where the basic block reward will truly represent the real value of those coins. In general, testnet3 could have zero supply, but some coins are needed as a spam protection.

Quote
On the other hand, I feel like nobody really cares too much about Testnet.
Well, if you use other test networks, then you can easily get much more coins. But as far as I know, testnet3 is the only truly decentralized test network, that we currently have. Signet is centralized, because of signet challenge. Regtest is centralized, because you can create a blockstorm on CPU, so it cannot be used online. So, for better or worse, we are left with testnet3, because only in this network you can test everything, including mining. But of course, it could be improved, and some improvements were proposed, so we will see, how it will evolve.

Quote
Unfortunately, for now this means we won't have 20-minute block times in a while, i.e. no solo-mined tBTC.
You can always have some 20-minute block with the minimal difficulty. After 20 minutes, there are two options:
1. Some block with difficulty one will be accepted.
2. Some block with the real difficulty will be accepted.
And even if you cannot produce some strong block, there is always a chance to produce some weak block. It can be reorged or not, it depends if someone will try to attack, and if you will be well-connected or not. Because when it comes to weak blocks, everyone can produce them, by using CPU, GPU, FPGA, ASIC or whatever. So, in that case, the winner is the one who will spread it faster to the rest of the network, and who will not be reorged. In those cases, CPUs are more important than other hardware, because they are used to send blocks, so it is a competition between nodes, and not between miners.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
This caused it:
The issue here is that the block of difficulty 1 after a 20 minute period was the last block in difficulty epoch.
Oh wow, that makes total sense! I never thought about that. Very interesting. It doesn't sound intended; more like a bug that should be fixed. On the other hand, I feel like nobody really cares too much about Testnet.

Edit: Since this happened before, I guess there will be no changes made!

And this made it last:
There is cap on how much it can rise (or fall) in each adjustment because if the time is smaller (or bigger) than a quarter of (or bigger than 4x) 2 weeks in seconds, it will fall down to default 302,400 (or 4,838,400) sec.
In other words in this case, even though it takes them minutes to mine 2016 blocks, the protocol assumes it takes 84 hours and increases the target based on that.
I'm aware of this, yes. There were even discussions about it here on Bitcointalk a while back.. Wink



Unfortunately, for now this means we won't have 20-minute block times in a while, i.e. no solo-mined tBTC. As the base difficulty has already exceeded 16M a few days ago. I expect it to take about 2-3 more epochs to reach normal levels again.
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
We are getting blocks about every 2 minutes; difficulty is way too low.
It came from several blocks per second, see Interesting behaivor of TESTNET difficulty.

This caused it:
The issue here is that the block of difficulty 1 after a 20 minute period was the last block in difficulty epoch.

And this made it last:
There is cap on how much it can rise (or fall) in each adjustment because if the time is smaller (or bigger) than a quarter of (or bigger than 4x) 2 weeks in seconds, it will fall down to default 302,400 (or 4,838,400) sec.
In other words in this case, even though it takes them minutes to mine 2016 blocks, the protocol assumes it takes 84 hours and increases the target based on that.



Note that there's not much left to mine on testnet: the block reward is now 0.024, about 300 times lower than Bitcoin mainnet.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
Today I noticed something weird on the Testnet blockchain. We are getting blocks about every 2 minutes; difficulty is way too low. According to https://mempool.space/testnet, the difficulty was already raised in the last difficulty adjustment and it will be raised again today by 300%.

Was there a huge dip of hashpower a few weeks or months ago that tanked the difficulty or did someone point an enormous amount of miners to Testnet recently?
hero member
Activity: 504
Merit: 1065
Crypto Swap Exchange
so you have a block with only coinbase transaction. what can make it stalled after 5 seconds? and what means stalled? yeah for educational purpose it would be not bad to make it splitted from broadcast unit. It can be done like in openssl ( openssl.exe ) where you can make stand-alone utils instead

When a stale block is mined, it is not included in the longest version of the blockchain, and is therefore not valid.

Basically this can be due to network problems, by the time you distribute your block and it is spread among enough nodes, it may have been overtaken by another block or become invalid in the meantime. That's why when you mine solo it's very important to have the lowest possible network latency (we often say less than 100ms with the solo pool to be ok)

Please note that even if you see a reward for a stale block, you will never be able to spend it because the coins will be invalid. If I'm not mistaken, the coins are returned to the mempool
Fortunately most of the pools have a low rate of orphan and stale blocks, another problem is that the big pools accept to mine empty blocks without transaction, which is anything but good for the BTC network...
member
Activity: 351
Merit: 37
so you have a block with only coinbase transaction. what can make it stalled after 5 seconds? and what means stalled? yeah for educational purpose it would be not bad to make it splitted from broadcast unit. It can be done like in openssl ( openssl.exe ) where you can make stand-alone utils instead
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
i think you'd overcomplicated it really. it could be 400 lines cpp single file( with 50 lines go to simd switch/case) where you broadcast tx later yourself with a wallet.
What transaction? You want to write a miner which doesn't automatically submit a new block to the blockchain, but requires you to do it manually? Cheesy That would be hilarious. You would mine so many stale blocks. I mean, a correct block at difficulty 1 will be stale in a matter of seconds, if not less. My ASIC alone, generates around 100 valid blocks per second as soon as the difficulty drops.

Furthermore, while you can submit raw transactions with some wallets, you cannot submit blocks without running Bitcoin Core.
jr. member
Activity: 50
Merit: 11
Thanks all for your kind help and support.
I tried cmmodtools and got the same errors, then I tried phaenomenon. Same errors. Then finally I tried vthoang and it compiled perfectly. I couldn't figure what was causing the error.
member
Activity: 351
Merit: 37
Hi,

I cannot install the cgminer on my Ubuntu 20.04.5 LTS. I keep on getting this error message:

make[2]: *** [Makefile:999: cgminer-cgminer.o] Error 1
make[2]: Leaving directory '/home/user/bitcoin_testnet/cgminer_phaenomenon'
make[1]: *** [Makefile:1894: all-recursive] Error 1
make[1]: Leaving directory '/home/user/bitcoin_testnet/cgminer_phaenomenon'
make: *** [Makefile:808: all] Error 2

I have installed and updated all the libraries and tried to do the whole process over and over but I get the same end result.

Any thoughts on this issue?

As mentioned earlier, you're not sharing here the full log of errors, so it's hard to help with what you posted only.

And based on what you did post, it looks like you're not following the instructions exactly, as it seems like you're using a different repository (cgminer_phaenomenon instead of cmmodtools).

So, first, try following the guide correctly(instead of doing it wrong multiple times), and then if that doesn't work for you, post detailed logs.
i think you'd overcomplicated it really. it could be 400 lines cpp single file( with 50 lines go to simd switch/case) where you broadcast tx later yourself with a wallet.
hero member
Activity: 1008
Merit: 960
Hi,

I cannot install the cgminer on my Ubuntu 20.04.5 LTS. I keep on getting this error message:

make[2]: *** [Makefile:999: cgminer-cgminer.o] Error 1
make[2]: Leaving directory '/home/user/bitcoin_testnet/cgminer_phaenomenon'
make[1]: *** [Makefile:1894: all-recursive] Error 1
make[1]: Leaving directory '/home/user/bitcoin_testnet/cgminer_phaenomenon'
make: *** [Makefile:808: all] Error 2

I have installed and updated all the libraries and tried to do the whole process over and over but I get the same end result.

Any thoughts on this issue?

As mentioned earlier, you're not sharing here the full log of errors, so it's hard to help with what you posted only.

And based on what you did post, it looks like you're not following the instructions exactly, as it seems like you're using a different repository (cgminer_phaenomenon instead of cmmodtools).

So, first, try following the guide correctly(instead of doing it wrong multiple times), and then if that doesn't work for you, post detailed logs.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
Any thoughts on this issue?
The part of the log output showing the actual issue is missing. You can post the whole log in a code block here or if you feel unsure if there is any PII in it, send it to me via DM.
jr. member
Activity: 50
Merit: 11
Hi,

I cannot install the cgminer on my Ubuntu 20.04.5 LTS. I keep on getting this error message:

make[2]: *** [Makefile:999: cgminer-cgminer.o] Error 1
make[2]: Leaving directory '/home/user/bitcoin_testnet/cgminer_phaenomenon'
make[1]: *** [Makefile:1894: all-recursive] Error 1
make[1]: Leaving directory '/home/user/bitcoin_testnet/cgminer_phaenomenon'
make: *** [Makefile:808: all] Error 2

I have installed and updated all the libraries and tried to do the whole process over and over but I get the same end result.

Any thoughts on this issue?
legendary
Activity: 3290
Merit: 16489
Thick-Skinned Gang Leader and Golden Feather 2021
If you use bitcoind or CLI environment, did you check whether you actually mine block but become stale?
As far as I could see, I never mined a block.

If you have all the cores screaming running the SHA did you have enough CPU power left over to do the rest and get it out to the world.
I assume that's not a problem, Linux multitasking should be able to handle this. And I used nice for the miner.

Sure, let's do it. Sorry, only just revisited this thread again.
Thanks! I'll PM you the details (and let's switch back to the correct thread).
legendary
Activity: 3472
Merit: 10611
If you have all the cores screaming running the SHA did you have enough CPU power left over to do the rest and get it out to the world.
Usually in parallel programming (multi-thread) when one thread finds the answer it breaks out of it and sends a "signal" to other threads to break too. Which means after finding the new block at least part of CPU has to be freed to be used for the broadcasting process.
hero member
Activity: 882
Merit: 5834
not your keys, not your coins!
Glad to see people now solo mining testnet bitcoins with this guide  Grin






You found my messages! Nice! Cheesy I've got to plant some more (on a new address) then.. Tongue

In fact, I managed to grab almost 30 blocks in 24h. Shocked Sitting at roughly 0.9tBTC right now.
Even consecutive blocks a few times... I must have very good network latency or something. Only a single Compac F hashing at just under 300GH/s.
That's 50,000 times faster than my CPU mining! Would you be interested to try? I still have a synced testnet blockchain running, and could give you access. At low difficulty, I wonder if I made a mistake for not getting anything in days.
Sure, let's do it. Sorry, only just revisited this thread again.
legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
Stale has less to do with mining and more to do with propagation. If you have all the cores screaming running the SHA did you have enough CPU power left over to do the rest and get it out to the world. It's not a lot of computing power, but if you don't have any to spare it could cause issues. The other half of stale is networking. How many nodes is your node talking to? If there is a lag there and more nodes see the other block then you loose.

Also, it could be other miners deliberately causing reorgs. I don't see the point on testnet, but if I have enough power I can just ignore some blocks figuring I will get 2 or 3 while the rest of the network gets 1. That would just be a waste, but I can see people messing around to see if they can do it.

-Dave
hero member
Activity: 1659
Merit: 687
LoyceV on the road. Or couch.
How old/slow is your CPU? My old GPU manage to mine 4 blocks within 4 days, although 2 of them become stale block.
It's a quad core Xeon E3-1270 V2 @ 3.50GHz. That's why I'm wondering if I did something wrong somewhere.
Pages:
Jump to: