Bitcoin Forum
April 27, 2024, 06:30:18 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: do miners zip blocks when trying to propagate them?  (Read 1792 times)
adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 02:01:04 AM
 #1

anyone know?

what kind of compression do they get on a 1MB block?

1714242618
Hero Member
*
Offline Offline

Posts: 1714242618

View Profile Personal Message (Offline)

Ignore
1714242618
Reply with quote  #2

1714242618
Report to moderator
"This isn't the kind of software where we can leave so many unresolved bugs that we need a tracker for them." -- Satoshi
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
monthlyemployee1
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
September 10, 2015, 02:12:15 AM
 #2

I don't think this would be very effective. It would only cause extra steps to need to be taken to verify them
DannyHamilton
Legendary
*
Offline Offline

Activity: 3374
Merit: 4610



View Profile
September 10, 2015, 02:17:32 AM
 #3

Seems like a bad idea.

Some other miner could finish solving and broadcast a block during the time a miner wastes compressing the block.  Then the miner is sitting on a worthless compressed orphan block.

Seems it would be better to have a protocol that allows the miner to just broadcast the 80 byte header, then the merkle tree.

Since most peers will already have most transactions, there's no need to re-broadcast the entire megabyte worth of them (compressed or otherwise).  Then peers can just request any transactions they are missing from their immediate peers.
adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 02:29:39 AM
 #4

Seems like a bad idea.

Some other miner could finish solving and broadcast a block during the time a miner wastes compressing the block.  Then the miner is sitting on a worthless compressed orphan block.

Seems it would be better to have a protocol that allows the miner to just broadcast the 80 byte header, then the merkle tree.

Since most peers will already have most transactions, there's no need to re-broadcast the entire megabyte worth of them (compressed or otherwise).  Then peers can just request any transactions they are missing from their immediate peers.

zipping a few MBs has got to be a less then 1 second operation no?

but just sending the header, and merkle tree, would require even less bandwidth than sending the the hole block zipped.

so there you go, bitcoin can have GB blocks without requiring miners to use a huge amount of bandwidth propagate these huge blocks

miners would simply be required to keep up with the TPS.


Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
September 10, 2015, 02:41:47 AM
 #5

The p2p protocol presently only supports propagation of solved blocks in full; i.e., blocks are not compressed.  

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block). Greg Maxwell claims that the Corallo Relay Network attains a coding gain of about 250 (1 MB is compressed to about 4 kilobytes); however, I believe it is less in practice.  

Techniques like invertible bloom lookup tables (IBLTs) could also be used to compress solved blocks in the future; Rusty Russell is presently researching this possibility.    

Compression of solved blocks has the effect of reducing the network propagation impedance.  It results in lower fees to users (positive) but also lower fees to spammers (negative).  This chart shows how fees decline with improvements to network propagation impedance (x-axis in the chart):



Source: https://dl.dropboxusercontent.com/u/43331625/feemarket.pdf


Run Bitcoin Unlimited (www.bitcoinunlimited.info)
achow101
Staff
Legendary
*
Offline Offline

Activity: 3374
Merit: 6541


Just writing some code


View Profile WWW
September 10, 2015, 02:50:06 AM
 #6

I don't think blocks are easily compressed. The data is rather random since hashes are random and in order to preserve all of the data so it can be verified, it must be losslessly compressed. However, since there isn't that much of a pattern to the data, it becomes rather difficult to losslessly compress blocks with a good compression ratio.

adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 02:57:00 AM
 #7

I don't think blocks are easily compressed. The data is rather random since hashes are random and in order to preserve all of the data so it can be verified, it must be losslessly compressed. However, since there isn't that much of a pattern to the data, it becomes rather difficult to losslessly compress blocks with a good compression ratio.
your probably right.

The p2p protocol presently only supports propagation of solved blocks in full; i.e., blocks are not compressed. 

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block). Greg Maxwell claims that the Corallo Relay Network attains a coding gain of about 250 (1 MB is compressed to about 4 kilobytes); however, I believe it is less in practice. 

Techniques like invertible bloom lookup tables (IBLTs) could also be used to compress solved blocks in the future; Rusty Russell is presently researching this possibility.   

Compression of solved blocks has the effect of reducing the network propagation impedance.  It results in lower fees to users (positive) but also lower fees to spammers (negative).  This chart shows how fees decline with improvements to network propagation impedance (x-axis in the chart):



Source: https://dl.dropboxusercontent.com/u/43331625/feemarket.pdf


this "Corallo Relay Network" sounds like what bitcoin needs to scale properly. 250 coding gain, that's great!

Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
September 10, 2015, 02:57:37 AM
 #8

I don't think blocks are easily compressed. The data is rather random since hashes are random and in order to preserve all of the data so it can be verified, it must be losslessly compressed. However, since there isn't that much of a pattern to the data, it becomes rather difficult to losslessly compress blocks with a good compression ratio.

This would be true if the receiver (another node or miner) didn't already know a lot about the contents of the block already.  However, since most nodes have fairly similar mempools, and since block are built from transactions held in a miners mempool, this redundancy can be exploited to achieve compression.  Examples of this type of compression include the Relay Network, the IBLT proposal, or Danny's Merkle Tree idea (which I like, BTW).

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
brg444
Hero Member
*****
Offline Offline

Activity: 644
Merit: 504

Bitcoin replaces central, not commercial, banks


View Profile
September 10, 2015, 03:08:24 AM
 #9

I mean.. we're really trying to have rational discussions about scaling and security yet some of you are ignorant of some of the most basic innerworkings of Bitcoin.

Then you wonder why no one cares or value your opinion...

"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 03:17:28 AM
 #10

I mean.. we're really trying to have rational discussions about scaling and security yet some of you are ignorant of some of the most basic innerworkings of Bitcoin.

Then you wonder why no one cares or value your opinion...

bitcoin does not currently compress blocks for propagation in anyway.

do you think we should explore this idea, or should we stick to 1MB limit because fees?


"most basic innerworkings"

is that an oxymoron?

Peter R
Legendary
*
Offline Offline

Activity: 1162
Merit: 1007



View Profile
September 10, 2015, 03:46:01 AM
 #11

I mean.. we're really trying to have rational discussions about scaling and security yet some of you are ignorant of some of the most basic innerworkings of Bitcoin.

Then you wonder why no one cares or value your opinion...

What is wrong with people asking questions and trying to learn?

Run Bitcoin Unlimited (www.bitcoinunlimited.info)
Soros Shorts
Donator
Legendary
*
Offline Offline

Activity: 1616
Merit: 1003



View Profile
September 10, 2015, 09:04:09 AM
 #12

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block).

I think a more appropriate term for this would be encoding - using codes to represent larger blocks of information that is already known by all parties. This is usually way more effective than blind data compression.
Klestin
Hero Member
*****
Offline Offline

Activity: 493
Merit: 500


View Profile
September 10, 2015, 01:48:43 PM
 #13

I don't think blocks are easily compressed. The data is rather random since hashes are random and in order to preserve all of the data so it can be verified, it must be losslessly compressed. However, since there isn't that much of a pattern to the data, it becomes rather difficult to losslessly compress blocks with a good compression ratio.

Speaking generally, random data reliably compresses to 50% of original size.
brg444
Hero Member
*****
Offline Offline

Activity: 644
Merit: 504

Bitcoin replaces central, not commercial, banks


View Profile
September 10, 2015, 01:57:27 PM
 #14

I mean.. we're really trying to have rational discussions about scaling and security yet some of you are ignorant of some of the most basic innerworkings of Bitcoin.

Then you wonder why no one cares or value your opinion...

bitcoin does not currently compress blocks for propagation in anyway.

do you think we should explore this idea, or should we stick to 1MB limit because fees?


"most basic innerworkings"

is that an oxymoron?

Bitcoin does not currently propagate blocks in their full size, only the tx hashes so your idea is not in touch with how Bitcoin network currently works.

"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 02:01:50 PM
 #15

I mean.. we're really trying to have rational discussions about scaling and security yet some of you are ignorant of some of the most basic innerworkings of Bitcoin.

Then you wonder why no one cares or value your opinion...

bitcoin does not currently compress blocks for propagation in anyway.

do you think we should explore this idea, or should we stick to 1MB limit because fees?


"most basic innerworkings"

is that an oxymoron?

Bitcoin does not currently propagate blocks in their full size, only the tx hashes so your idea is not in touch with how Bitcoin network currently works.

The p2p protocol presently only supports propagation of solved blocks in full; i.e., blocks are not compressed.  

so which is it?

OnkelPaul
Legendary
*
Offline Offline

Activity: 1039
Merit: 1003



View Profile
September 10, 2015, 02:06:43 PM
 #16

Speaking generally, random data reliably compresses to 50% of original size.

Definitely not.
Random data does not compress. Any compressibility is a sure sign of non-randomness.

Onkel Paul

adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 02:09:09 PM
 #17

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block).

I think a more appropriate term for this would be encoding - using codes to represent larger blocks of information that is already known by all parties. This is usually way more effective than blind data compression.

if minner could communicate 100MB blocks with 250KB of encoded data, this is what will allow bitcoin to scale don't you think.

my guess is they wouldn't even need to send the full 64byte TX IDs only a 4 byte hash of the TX ID should be enoght for other minner to identify the TX's included in the new blocks.

using this method a miner could communicate a block with 250000 TX's!!! ( >400TPS ) with only 1MB of data

brg444
Hero Member
*****
Offline Offline

Activity: 644
Merit: 504

Bitcoin replaces central, not commercial, banks


View Profile
September 10, 2015, 02:19:57 PM
 #18

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block).

I think a more appropriate term for this would be encoding - using codes to represent larger blocks of information that is already known by all parties. This is usually way more effective than blind data compression.

if minner could communicate 100MB blocks with 250KB of encoded data, this is what will allow bitcoin to scale don't you think.

my guess is they wouldn't even need to send the full 64byte TX IDs only a 4 byte hash of the TX ID should be enoght for other minner to identify the TX's included in the new blocks.

using this method a miner could communicate a block with 250000 TX's!!! ( >400TPS ) with only 1MB of data

 Roll Eyes

What novel idea, maybe you should apply to become a core developer?

Here:

Quote
The relay network includes an optimized transmission protocol which enables sending the "entire" block typically in just a smal number of bytes (much smaller than the summaries you suggest, which still leave the participants needing to send the block).

E.g. block 000ce90846 was 999950 bytes and the relay network protocol sent it using at most 4906 bytes.
http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/009942.html

"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
adamstgBit (OP)
Legendary
*
Offline Offline

Activity: 1904
Merit: 1037


Trusted Bitcoiner


View Profile WWW
September 10, 2015, 02:25:47 PM
 #19

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block).

I think a more appropriate term for this would be encoding - using codes to represent larger blocks of information that is already known by all parties. This is usually way more effective than blind data compression.

if minner could communicate 100MB blocks with 250KB of encoded data, this is what will allow bitcoin to scale don't you think.

my guess is they wouldn't even need to send the full 64byte TX IDs only a 4 byte hash of the TX ID should be enoght for other minner to identify the TX's included in the new blocks.

using this method a miner could communicate a block with 250000 TX's!!! ( >400TPS ) with only 1MB of data

 Roll Eyes

What novel idea, maybe you should apply to become a core developer?

Here:

Quote
The relay network includes an optimized transmission protocol which enables sending the "entire" block typically in just a smal number of bytes (much smaller than the summaries you suggest, which still leave the participants needing to send the block).

E.g. block 000ce90846 was 999950 bytes and the relay network protocol sent it using at most 4906 bytes.
http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/009942.html

right this method is already being used by some miners, but this isn't standard way to propagate blocks.
should it be?
is this the key to scaling bitcoin?
I think yes on both counts.
right now this method is netting miners >200X coding gain!


brg444
Hero Member
*****
Offline Offline

Activity: 644
Merit: 504

Bitcoin replaces central, not commercial, banks


View Profile
September 10, 2015, 02:29:36 PM
 #20

However, the Corallo Relay Network does support a sort of compression.  Rather than transmitting all the transactions in a solved blocks, since most the other miners know about them already, it just transmits indices that refer to each transaction (sort of like a map for how the TXs fit in the block).

I think a more appropriate term for this would be encoding - using codes to represent larger blocks of information that is already known by all parties. This is usually way more effective than blind data compression.

if minner could communicate 100MB blocks with 250KB of encoded data, this is what will allow bitcoin to scale don't you think.

my guess is they wouldn't even need to send the full 64byte TX IDs only a 4 byte hash of the TX ID should be enoght for other minner to identify the TX's included in the new blocks.

using this method a miner could communicate a block with 250000 TX's!!! ( >400TPS ) with only 1MB of data

 Roll Eyes

What novel idea, maybe you should apply to become a core developer?

Here:

Quote
The relay network includes an optimized transmission protocol which enables sending the "entire" block typically in just a smal number of bytes (much smaller than the summaries you suggest, which still leave the participants needing to send the block).

E.g. block 000ce90846 was 999950 bytes and the relay network protocol sent it using at most 4906 bytes.
http://lists.linuxfoundation.org/pipermail/bitcoin-dev/2015-August/009942.html

right this method is already being used by some most miners, but this isn't standard way to propagate blocks.
should it be?
is this the key to scaling bitcoin?
I think yes on both counts.
right now this method is netting miners >200X coding gain!

Corrected.

This doesn't solve any of the centralization or attack vectors concerns btw

"I believe this will be the ultimate fate of Bitcoin, to be the "high-powered money" that serves as a reserve currency for banks that issue their own digital cash." Hal Finney, Dec. 2010
Pages: [1] 2 3 »  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!