Bitcoin Forum
November 19, 2024, 12:34:25 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Empty blocks  (Read 288 times)
o_e_l_e_o
In memoriam
Legendary
*
Offline Offline

Activity: 2268
Merit: 18748


View Profile
May 16, 2022, 06:59:22 PM
Merited by pooya87 (2)
 #21

so in the first few rounds. they start with empty block.. and start adding more transactions per round.
(much more efficient this way to start with 0tx and add a few every extranonce round)
I'm not sure that's correct.

If they added a few transactions every time they incremented the extraNonce, then we would expect not just to see the occasional empty block, but to also see a not insignificant number of blocks which could have been 100% full but were only 5%, 10%, 15%, 20%, etc., full. Instead, what we actually see (when the mempool is full enough to support it) is blocks which are consistently 100% full, and then the occasional empty block. Surely this suggests that miners just attempt to mine an empty block until they have built their full candidate block, and then switch to trying to mine their candidate block. They can obviously update their candidate block over the coming minutes as new transactions come in to their mempool, but it doesn't look like they create multiple candidate blocks on the way to creating their first full candidate block.

..i remember some time ago someone looked at all the blocks that appeared to be solved quickly after a previous block, and seen not only were there empty blocks but also partially filed blocks.
Are there? I don't remember seeing many such blocks, but I could well be wrong. Can you provide a link?

For example, scroll back through the pages here: https://mempool.space/mining/blocks
You see pages and pages of full blocks, with empty blocks at 736,452 and 736,128, but no partially filled blocks.
franky1
Legendary
*
Online Online

Activity: 4410
Merit: 4772



View Profile
May 17, 2022, 05:52:20 AM
Last edit: May 17, 2022, 06:48:01 AM by franky1
 #22

so in the first few rounds. they start with empty block.. and start adding more transactions per round.
(much more efficient this way to start with 0tx and add a few every extranonce round)
I'm not sure that's correct.

If they added a few transactions every time they incremented the extraNonce, then we would expect not just to see the occasional empty block, but to also see a not insignificant number of blocks which could have been 100% full but were only 5%, 10%, 15%, 20%, etc., full.

firstly. i was dismissing the fud that pools like viabtc do not own a full node and only have a litewallet to their name'(SPV).. as that FUD is completely factually incorrect.. the myth that pools only own litewallets(SPV) was done so to create some propagandist FUD that pools are dirty, nasty, dangerous to the network (a rhetoric being passed around for the last 7years)

viabtc do have a full node.
what you need to realise is about the timing.
it was much more observable in the past due to slower asics and slower propagation and lack of things like compact blocks and such.. meaning the timing between rounds was more noticeable


its only no longer now the case seeing how pools function behind the scenes because asics have got faster and propagating blocks and transactions has got faster.
(but still happens. as noted this month in example at bottom of this post)

once a pool purges confirmed transactions from its mempool. adding new transactions is a millisecond event. it was never a case of after 2.5mins =35% after 5mins=50%
which you are presuming...
years ago. it was more noticeable that pools start empty. then would add their own few transactions they knew were not in the previous block because because they knew when they received the transactions and validated them to add them to mempool after a certain time
so would add a few transactions before the confirm purge.
(this was especially the case in the days of 'pushtx' services where certain miners collaborated with certain exchanges to get data direct, rather then through the relay network. EG i remember btc china had an exchange and a pool and would give privilege to transactions coming from their exchange)

then in later rounds added more transactions(from the mempool of of transactions stemming from the relay network) after the purge of confirmed transactions found in the recently solved block, which is when they would finally have got to the point of 'full block'

as i already said. it was never a scientific thing of oh 25% full that must mean 2.5minutes. 50%full must mean 5minutes.. (your presumption)

it was more of a 0 full = x seconds. under 100% = x seconds to x minute.. full= x minute+


lets take an example
viabtc
https://www.blockchain.com/btc/block/734379- not full
precedeing this was
https://www.blockchain.com/btc/block/734378 - not full
https://www.blockchain.com/btc/block/734377 - 'full'

as you can see XX78 and xx79 are both solved quickly after previous, but not empty nor full(yep. it happens)

as for the timing. ..from memory of what i was reading ages ago. it was more about the transactions that were included that alluded to when the pool must have added the transactions, due to when they received them would have been similar time to when everyone else received them(at relay before block was collated)
thus guessing that the pool could not have seen certain transactions before X time meaning they could not have started that round before X time.

it was not as you presume X tx count=time
it was more of
time of tx relayed= earliest time the transaction could have been added to a round

..
main emphasis is
1. pools do have full nodes. they dont stupidly have litewallets(spv)
2. empty blocks are due to very very quick solves =  VERY GOOD LUCK
3. pools dont just empty block they also partial fill due to efficiency tactics
4. partial and empty blocks are due to efficiency tactics of:
     a. trying to hash a  new block whilst validating previous
     b. adding fresh tx unavailable when previous block was hashing (done before purge)
     c.validating, purging and then adding the other transactions.

take the xx79 block
it is presumed to have started at 12 minutes passed the hour and solved at 16 minutes passed the hour
then when you look at the transactions. and where other 'explorers' have tagged the times when they received those transactions. the times of those transactions are not before the 12th minute. and some are also at the 15th and 16th minute. meaning its not like the pool collated all the transactions at the 12 minute and decided it only wanted to put in 715tx at the 12th minute and just churned through many rounds with just that one merkle tree of transactions of 715 from the 12th minute.. but instead in later rounds added more transactions it knew were fresh and not going to be in previous block. because yea, the had transactions of the 15th and 16th minute right up to the point the other explorers got a block solve from that pool at the 16th minute including the transactions of the 15th and 16th minute.

..
and again this is not scientific, because there is another efficiency gain/competition game at play.
using the xxxx79 block for instance. some of the tx's are tagged by many explorers(other nodes on the network) as being relayed at 16th minute. and the block with those transactions included also relayed at the 16th minute. this does not mean the block was solved on a round with a new hash of the header data(merkle tree containing the 16th minute transaction) within seconds of adding it.

instead its probably more likely that the pool got some transactions from itself or other sources at the 12/14th minute. added them to a round in the 12th/15th. but these transactions were not relayed to the rest of the network. and then when the block was solved.. only then released the transactions to the network.
this game is done so that competitors wanting to validate everything. dont have the transactions already validated in their mempool pre block receipt, so the competitors have to request certain transactions they are missing from their mempool from their peers. which then delays the competitor from fully validating and purging to then add a 'full block' because the block solver pool has held them up by not pre-supplying the transactions

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
o_e_l_e_o
In memoriam
Legendary
*
Offline Offline

Activity: 2268
Merit: 18748


View Profile
May 17, 2022, 07:45:14 AM
Merited by pooya87 (2)
 #23

as you can see XX78 and xx79 are both solved quickly after previous, but not empty nor full(yep. it happens)
But if you use a site like https://jochen-hoenicke.de/queue/ to look at the mempool when those blocks were mined - 09:12 and 09:16 on May 1st - then both blocks were as full as they could be. They both emptied the mempool of all available unconfirmed transactions. So they were not partially full because the miners were gradually updating their candidate blocks, but because there were no other transactions to mine.

So while miners do indeed attempt to mine empty blocks in the few seconds it takes them to validate the previous block, update their mempool, and construct a new candidate block, it does not appear that they construct a half filled candidate block and attempt to mine that for a few seconds while they then construct a completely full candidate block. They go from empty to full in one movement.

pooya87
Legendary
*
Offline Offline

Activity: 3640
Merit: 11041


Crypto Swap Exchange


View Profile
May 17, 2022, 08:19:23 AM
 #24

firstly. i was dismissing the fud that pools like viabtc do not own a full node and only have a litewallet to their name'(SPV).. as that FUD is completely factually incorrect.. the myth that pools only own litewallets(SPV) was done so to create some propagandist FUD that pools are dirty, nasty, dangerous to the network (a rhetoric being passed around for the last 7years)
I hope you are not confusing SPV mining with running a SPV client.

Doing SPV mining doesn't mean the pool is running a SPV client. That just means that they run a full node but they have modified it to postpone full verification of the blocks or the headers they receive and only verify the header just like a SPV client would and then build on that.

They could also do "spy mining" where they spy on other pools to be able to get the new header even faster and build on top of that without receiving the block or the header through the P2P network.

█▀▀▀











█▄▄▄
▀▀▀▀▀▀▀▀▀▀▀
e
▄▄▄▄▄▄▄▄▄▄▄
█████████████
████████████▄███
██▐███████▄█████▀
█████████▄████▀
███▐████▄███▀
████▐██████▀
█████▀█████
███████████▄
████████████▄
██▄█████▀█████▄
▄█████████▀█████▀
███████████▀██▀
████▀█████████
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
c.h.
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
▀▀▀█











▄▄▄█
▄██████▄▄▄
█████████████▄▄
███████████████
███████████████
███████████████
███████████████
███░░█████████
███▌▐█████████
█████████████
███████████▀
██████████▀
████████▀
▀██▀▀
franky1
Legendary
*
Online Online

Activity: 4410
Merit: 4772



View Profile
May 17, 2022, 03:25:28 PM
Last edit: May 17, 2022, 04:12:25 PM by franky1
 #25

firstly. i was dismissing the fud that pools like viabtc do not own a full node and only have a litewallet to their name'(SPV).. as that FUD is completely factually incorrect.. the myth that pools only own litewallets(SPV) was done so to create some propagandist FUD that pools are dirty, nasty, dangerous to the network (a rhetoric being passed around for the last 7years)
I hope you are not confusing SPV mining with running a SPV client.

Doing SPV mining doesn't mean the pool is running a SPV client. That just means that they run a full node but they have modified it to postpone full verification of the blocks or the headers they receive and only verify the header just like a SPV client would and then build on that.

They could also do "spy mining" where they spy on other pools to be able to get the new header even faster and build on top of that without receiving the block or the header through the P2P network.

actually they do not postpone verification..
they actually do do full verification..
they just do not postpone working on a new block(you presume other pools stop asic mining while verifying)

sorry to burst your bubble but pools dont  just turn off their asic miners for a few seconds while the pool does some checks..

your premiss is still trying to suggest that viabtc pool(this topics exampled pool) doesnt even bother validating when it works on a next block.
as is your buddies premiss to presume the pool is doing something bad/fatal/dangerous

or your now trying to suggest that all pools just switch off their asics and get/do no work for X seconds until all verification is complete, apart from viabtc pool..
.. where you think viapool empty block. and then at a certain round of nonce churn. suddenly throw in all transactions.
not realising its a 3-4 step process not a 2 step process

but hey. lets get back to the point

topic.
its not an accident nor a fault. its part of the competition to have a 4 step process of efficiently working on the next block whilst also verifying and then adding transactions as they permit.. the reason for an empty block even with a full mempool.. is simple.. LUCK.. lucky to find a block quickly

I DO NOT TRADE OR ACT AS ESCROW ON THIS FORUM EVER.
Please do your own research & respect what is written here as both opinion & information gleaned from experience. many people replying with insults but no on-topic content substance, automatically are 'facepalmed' and yawned at
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!