Author

Topic: Does workers at a pool need to know the Tx set? (Read 772 times)

legendary
Activity: 3388
Merit: 4615
January 19, 2017, 12:11:07 PM
#7
Is it possible for the workers to re-create the Tx set from this or other provided info?

No.  While it might sometimes be possible for a worker to listen to the bitcoin network and terate through all the transactions they know about and generate a merkle root for each iteration until they find a matching merkle root if they wanted to. They won't reliably always have heard the necessary transactions, and won't typically be able to find a matching merkle root in a reasonable amount of time.

Moreover, when a block is found, does pool operator need to broadcast the Tx set

He can (the original, classic way), but he doesn't necessarily need to (modern full nodes).

or the hashMerkleRoot is enough?

The hashMerkleRoot is not enough.
legendary
Activity: 1260
Merit: 1019
What I understand, pool operators provide the Merkle root of the transactions (including the coinbase, with its nonce), instead of the Tx set.
Is it possible for the workers to re-create the Tx set from this or other provided info?
what for? nobody is interested in this information.
in fact the workers even are not connected to bitcoin-network itself

Quote
Moreover, when a block is found, does pool operator need to broadcast the Tx set or the hashMerkleRoot is enough?
there are several ways to broadcast new block
first, original, classic way is broadcasting the whole block - header and all transactions in it
there are also modern ways in last clients - compact broadcasting

in general the block header and merkle root is not enough.
full member
Activity: 214
Merit: 277
Simplifying that down, you don't need to actually need to link your block to the previous transactions. You just have to link your block to the previous block header, which builds on top of all the transactions.

A pool operator will usually generate the block header, and then broadcast it to all the miners. So no, they don't have to know the transactions because the pool operator has already done the respective part of the work.
What I understand, pool operators provide the Merkle root of the transactions (including the coinbase, with its nonce), instead of the Tx set. Is it possible for the workers to re-create the Tx set from this or other provided info?

Moreover, when a block is found, does pool operator need to broadcast the Tx set or the hashMerkleRoot is enough?
legendary
Activity: 1232
Merit: 1029
give me your cryptos
The block header, whose hash must be small for it to be valid, consists of the previous block hash (PBH), the Merkle root of the transactions (including the coinbase, with its nonce), some assorted metadata (difficulty, time, block hight), and the 32 bit nonce.
Pools can, in theory, only send the block header (without the nonce), but this would have to be updated so frequently it would put a strain on the network. Instead, they can send all the fields circumscribed in my (very poorly drawn) diagram:

Note that the bulk of the transaction data is omitted, but the miner can tweak part of the coinbase nonce to change the Merkle root (part of it is usually set by the pool to sign their blocks).

Simplifying that down, you don't need to actually need to link your block to the previous transactions. You just have to link your block to the previous block header, which builds on top of all the transactions.

A pool operator will usually generate the block header, and then broadcast it to all the miners. So no, they don't have to know the transactions because the pool operator has already done the respective part of the work.
full member
Activity: 224
Merit: 117
▲ Portable backup power source for mining.
The block header, whose hash must be small for it to be valid, consists of the previous block hash (PBH), the Merkle root of the transactions (including the coinbase, with its nonce), some assorted metadata (difficulty, time, block hight), and the 32 bit nonce.
Pools can, in theory, only send the block header (without the nonce), but this would have to be updated so frequently it would put a strain on the network. Instead, they can send all the fields circumscribed in my (very poorly drawn) diagram:

Note that the bulk of the transaction data is omitted, but the miner can tweak part of the coinbase nonce to change the Merkle root (part of it is usually set by the pool to sign their blocks).
legendary
Activity: 1260
Merit: 1019
no.
why should they?
full member
Activity: 214
Merit: 277
If not, why?
Jump to: