HomeTECHNICALExplaining How Compact Blocks Can Make Bitcoin More Efficient

Explaining How Compact Blocks Can Make Bitcoin More Efficient

/* Show "Prefer us on Google" only on desktop and tablets */ @media (min-width: 769px) { .prefer-google-btn { display: inline-block !important; } } /* Hover effect for all buttons */ a > div:hover { transform: translateY(-3px); box-shadow: 0 6px 12px rgba(0,0,0,0.15) !important; }

Watch This Episode On YouTube

Listen To This Episode:

“Bitcoin Explained” hosts Aaron van Wirdum and Sjors Provoost are back from their travel break for a brand new episode of “Bitcoin, Explained”! In this episode, they explained how Bitcoin’s peer-to-peer network is made more efficient and fast with Compact Blocks.

Compact Blocks are — as the name suggests — compact versions of Bitcoin blocks, that have been used by Bitcoin Core nodes since version 0.13. Compact Blocks contain the minimal amount of data required for Bitcoin nodes to reconstruct entire blocks. Most notably, Compact Blocks exclude most transaction data, to instead include short transaction identifiers. Bitcoin nodes can use these short identifiers to figure out which transactions from their mempools should be included in the blocks.

Van Wirdum and Provoost explained how and why Compact Blocks benefit the Bitcoin network, and specifically how they help counter mining centralization. The hosts also covered some edge cases that can result from the use of Compact Blocks — like the possibility that different valid transactions can have an identical identifier — and how Bitcoin nodes handle such occurrences.

Finally, Provoost briefly touched on some of the ongoing improvements that have been added to the Compact Blocks protocol since it was first introduced.

.td-module-meta-info .molongui-meta-contributor { display: none; }
Bitcoin Magazine
Bitcoin Magazine
Established in 2012, Bitcoin Magazine is the oldest and most established source of trustworthy news, information and thought leadership on Bitcoin.
RELATED ARTICLES
.bitcoin-widget { background-color: #111; color: white; padding: 20px; border-radius: 10px; max-width: 325px; width: 100%; font-family: Arial, sans-serif; box-sizing: border-box; margin: 0 auto; } .bitcoin-header { display: flex; align-items: center; margin-bottom: 15px; flex-wrap: wrap; } .bitcoin-icon { width: 24px; height: 24px; margin-right: 10px; } .price { font-size: 24px; margin: 0; margin-bottom: 10px; } .stats-container { display: flex; flex-wrap: wrap; justify-content: space-around; gap: 10px; margin-top: 10px; } .stat-column { text-align: center; flex: 1 1 30%; } .stat-label { font-size: 12px; color: #999; margin-bottom: 5px; } .stat-value { font-size: 14px; } .positive { color: #00ff00; } .negative { color: #ff0000; } .error-message { color: #ff0000; font-size: 12px; display: none; margin-top: 10px; }
Bitcoin Bitcoin BTC/USD
$0.00
24hr %:
0.0%
24hr High:
$0.00
24hr Low:
$0.00
Error loading data. Check console for details.
async function updateBitcoinPrice() { try { const response = await fetch('https://api.coingecko.com/api/v3/coins/bitcoin?localization=false&tickers=false&market_data=true'); if (!response.ok) { throw new Error(`HTTP error! status: ${response.status}`); } const data = await response.json(); // Update price const price = data.market_data.current_price.usd; const change = data.market_data.price_change_percentage_24h; const high = data.market_data.high_24h.usd; const low = data.market_data.low_24h.usd; // Update price display document.getElementById('bitcoin-price').textContent = `$${price.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`; // Update price change with color const changeElement = document.getElementById('price-change'); changeElement.textContent = `${change.toFixed(1)}%`; changeElement.className = 'stat-value ' + (change >= 0 ? 'positive' : 'negative'); // Update high and low prices document.getElementById('high-price').textContent = `$${high.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`; document.getElementById('low-price').textContent = `$${low.toLocaleString(undefined, { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`; hideError(); } catch (error) { console.error('Error fetching Bitcoin price:', error); showError('Failed to fetch Bitcoin price'); } } function showError(message) { const errorElement = document.getElementById('error-message'); errorElement.textContent = message; errorElement.style.display = 'block'; } function hideError() { const errorElement = document.getElementById('error-message'); errorElement.style.display = 'none'; } // Initialize and start updates document.addEventListener('DOMContentLoaded', () => { try { updateBitcoinPrice(); setInterval(updateBitcoinPrice, 60000); } catch (error) { console.error('Initialization error:', error); showError('Initialization failed'); } });

LATEST NEWS