Author

Topic: Block Lifecycle (Solo vs. Pooled vs. Private pool type question) (Read 1521 times)

member
Activity: 67
Merit: 10
Great, thanks.... Hopefully this thread will help demystify block creation for other newbies (both miners and consumers).

~Hands
legendary
Activity: 1204
Merit: 1015
Ok I think I am getting it..

My bitcoind takes a random group of unlocked transactions that its received off the networks bundles them all up and starts trying to create a hash that is complex enough.. if it finds one before another block is created then it can submit the block it was creating for confirmation, if someone else makes a block before I get done then I remove the transactions from my block that were locked by the "new block" and start over with a few new transactions and re calculated "winners" transaction of 50 BTC + fees..

This process of try to solve or lock my group of transactions before any other new blocks gets created keeps happening over and over again until I finally get a good hash of "recent" transactions before anyone else.. That becomes a block and gets submitted to the network for confirmation..

So the lifecycle is
* Transactions float in the cloud
* Bitcoind picks some transactions and bundles them
* Bitcoind adds 50btc + fees as a transaction to itself (bitcoind's wallet)
* try to create a hash of attiquit difficulty for the group of transaction (given the current difficulty at the current point in time).
* If I succeed before another block is created submit the new block to the cloud for confimation
* If I fail, bundle a new set of transactions and try again.
Just about. It'll rebundle transactions periodically as well (whenever your miner asks for more work).

Ok so if that is accurate, then the next question is why does it take a few days for a change in difficulty to result in a slowdown in blocks? Or is that random happen stance?  BTCMine was solving 20ish blocks a day until the recent difficulty increase.. It kept the same pace for about 5 more days then it slowed down.. Now with more GHs of bandwith its solving fewer blocks...  Does it take time for blocks to "wash" through the system when the difficulty changes?

Thanks again, this has been quite enlightening.
~Hands
Most likely, that's just the result of bad statistics being reported. If not, they were either lucky or they received more miners right after the increase that dropped out again. The difficulty goes into effect immediately.
member
Activity: 67
Merit: 10
Ok I think I am getting it..

My bitcoind takes a random group of unlocked transactions that its received off the networks bundles them all up and starts trying to create a hash that is complex enough.. if it finds one before another block is created then it can submit the block it was creating for confirmation, if someone else makes a block before I get done then I remove the transactions from my block that were locked by the "new block" and start over with a few new transactions and re calculated "winners" transaction of 50 BTC + fees..

This process of try to solve or lock my group of transactions before any other new blocks gets created keeps happening over and over again until I finally get a good hash of "recent" transactions before anyone else.. That becomes a block and gets submitted to the network for confirmation..

So the lifecycle is
* Transactions float in the cloud
* Bitcoind picks some transactions and bundles them
* Bitcoind adds 50btc + fees as a transaction to itself (bitcoind's wallet)
* try to create a hash of attiquit difficulty for the group of transaction (given the current difficulty at the current point in time).
* If I succeed before another block is created submit the new block to the cloud for confimation
* If I fail, bundle a new set of transactions and try again.

Ok so if that is accurate, then the next question is why does it take a few days for a change in difficulty to result in a slowdown in blocks? Or is that random happen stance?  BTCMine was solving 20ish blocks a day until the recent difficulty increase.. It kept the same pace for about 5 more days then it slowed down.. Now with more GHs of bandwith its solving fewer blocks...  Does it take time for blocks to "wash" through the system when the difficulty changes?

Thanks again, this has been quite enlightening.
~Hands

legendary
Activity: 1204
Merit: 1015
So lets say I am CPU mining, each share I solve has just as much a chance to find a block as anyone else.. So if I leave my CPU miner running for 6 years when it does finally solve a block its not like it solved a 6 year old block that is no longer valid.. It means it solved the current block and finally (after 6 years) got lucky...

Is that correct?
Yes. However, keep in mind that difficulty is adjusted roughly every 2 weeks, so if it take longer then one difficulty adjustment to solve a block, you'd be better off being in a pool.

By the way, I have read that wiki page.. I read it a few weeks ago, but the lifecycle is still kinda murky... I understand a group of transactions are bundled into a block, then the block has to get hashed into the chain.. And somewhere in there a block is solved and someone (after 120 confirmations) wins 50 BTC.... What I don't understand is the path from bundle of transactions to 50 BTC, and the queing the network uses to apportion work..
You bundle whatever transactions you want along with a 50 + fees BTC transaction to yourself. The transactions change as some are put into blocks by other nodes and new ones are received. They aren't locked until you find a block hash that meets the required difficultly and submit the block to the network.

I am trying to understand so that I can decide if I want to spin up a private pool (of about 10GHs between me and some friends) or stick with my current pool. I am less concerned with variance as I am winning a block but it becoming invalid due to how long we went before solving a block. (after all variance levels out over the long term)

Thanks
~Hands
The network doesn't assign you work, you make your own. The network only cares about the result. A block can only be made invalid if someone else finds one around the same time as you, and your node didn't know about that block (the blocks link together in a chain).
member
Activity: 67
Merit: 10
So lets say I am CPU mining, each share I solve has just as much a chance to find a block as anyone else.. So if I leave my CPU miner running for 6 years when it does finally solve a block its not like it solved a 6 year old block that is no longer valid.. It means it solved the current block and finally (after 6 years) got lucky...

Is that correct?

By the way, I have read that wiki page.. I read it a few weeks ago, but the lifecycle is still kinda murky... I understand a group of transactions are bundled into a block, then the block has to get hashed into the chain.. And somewhere in there a block is solved and someone (after 120 confirmations) wins 50 BTC.... What I don't understand is the path from bundle of transactions to 50 BTC, and the queing the network uses to apportion work..

I am trying to understand so that I can decide if I want to spin up a private pool (of about 10GHs between me and some friends) or stick with my current pool. I am less concerned with variance as I am winning a block but it becoming invalid due to how long we went before solving a block. (after all variance levels out over the long term)

Thanks
~Hands
legendary
Activity: 1204
Merit: 1015
The FAQ answers many questions:
https://en.bitcoin.it/wiki/FAQ#Mining

Also, there is no true next block. Stop thinking in terms of people trying to solve the same thing.
I'd like to know the answer to this as well. It seems that a bigger pool has a better chance somehow which is why deepbit is so large but I'm not making any money on Deepbit right now and was thinking of joining a diff pool - not if I'm going to make less there tho.
Yes, a bigger pool has a higher chance of finding a block, but all that does is decrease the variance in your income. If you flip a coin 10 times, there may be 6 heads and 4 tails; if you flip a coin 10,000 times, it'll be closer to 50-50. Any pool that solves at least a few blocks per week should have a low enough variance to beat the difficulty increases.
newbie
Activity: 21
Merit: 0
I'd like to know the answer to this as well. It seems that a bigger pool has a better chance somehow which is why deepbit is so large but I'm not making any money on Deepbit right now and was thinking of joining a diff pool - not if I'm going to make less there tho.

hero member
Activity: 560
Merit: 500
I think what Hands is asking is:
Is the whole bitcoin community (solo/group) working on 1 block at a time, or does each community (solo/group) have it's own block they are working on?
newbie
Activity: 22
Merit: 0
There is no life cycle. Solving a block is like hashrate lottery. The fastest or luckiest person usually gets it.
member
Activity: 67
Merit: 10
ok so is an accurate description that all miners across the entire BitCoin cloud is working on the same block at the same time?

So my miners on BTCMine are in actuality trying to solve the same Block as those miners at Deepbit.. And when that block gets solved the entire Bitcoin Network moves on to the next block?

Thanks for the reply :-)
~Hands
(here is the ubiquitous "donate" wallet ID 13d46unynPiuspsND1fC3kuPeb8szgWv4T)
kjj
legendary
Activity: 1302
Merit: 1026
There is no progress, just a repeated number of tiny chances.

Each mining client asks a network node for a piece of work to do.  That work is unique to the miner, to the node, and across the entire network.
member
Activity: 67
Merit: 10
Howdy all,
   I've been mining in pools for about a month now and will be at about 3.5 GHash by the end of the week.. But one thing I don't quite understand is the lifecycle of a block... We all talk about "working on a block" and "shares for a block" but what I don't understand is the actual lifecycle? Does a block get "checked out" by a miner or pool? or is the entire network working on the same block at any given point in time and 1 miner solves that block (by chance) and the entire pool moves on to another block?

I guess what I am trying to understand is if I go solo with a predicted "solve" rate of ~1 block per week am I really working on my own block for a week (so no one else is touching that block) or am I really still part of the whole network and we are all working on the same block?

If I understood that, it would help me make a more informed decision on how I want to handle my mining op.

Thanks!
~Hands
(here is the ubiquitous "donate" wallet ID 13d46unynPiuspsND1fC3kuPeb8szgWv4T)
Jump to: