Efficient and reliable block propagation on the Bitcoin network is vital for ensuring the scalability of this peer-to-peer network. To this end, several schemes have been proposed over the last few years to speed up the block propagation, most notably the compact block protocol (BIP 152). Despite this, we show experimental evidence that nodes that have recently joined the network may need about ten days until this protocol becomes 90 effective. This problem is endemic for nodes that do not have persistent network connectivity. We propose to mitigate this ineffectiveness by maintaining mempool synchronization among Bitcoin nodes. For this purpose, we design and implement into Bitcoin a new prioritized data synchronization protocol, called FalafelSync. Our experiments show that FalafelSync helps intermittently connected nodes to maintain better consistency with more stable nodes, thereby showing promise for improving block propagation in the broader network. In the process, we have also developed an effective logging mechanism for bitcoin nodes we release for public use.
As the network grows, communication complexity plans an increasingly significant role. In an effort to minimize communication, Ozisik have developed the Graphene protocol @cite_19 , a new block protocol that couples an Invertible Bloom Lookup Table (IBLT) @cite_15 with a Bloom filter in order to send transaction hashes in a smaller package. Rather than sending each transaction's hash individually, as is done in compact blocks, the Graphene protocol inserts all the transactions hashes into a Bloom filter and an IBLT which are then sent to peers. When a Graphene block is received, it is subtracted from the mempool's IBLT and the rest of the transactions hashes are decoded from the remaining IBLT. According to the authors in @cite_19 , a Graphene block is capable of being around a fifth of the size of a compact block, and they provide simulations (but not an actual implementation) demonstrating their system.
@cite_19 @cite_15
2756159815 2952154472
We devise a novel method of interactive set reconciliation for efficient block distribution. Our approach, called Graphene, couples a Bloom filter with an IBLT. We evaluate performance analytically and show that Graphene blocks are always smaller. For example, while a 17.5 KB Xtreme Thinblock can be encoded in 10 KB with Compact Blocks, the same information can be encoded in 2.6 KB with Graphene. We show in simulation that Graphene reduces traffic overhead by reducing block overhead. We present a version of the Bloom filter data structure that supports not only the insertion, deletion, and lookup of key-value pairs, but also allows a complete listing of its contents with high probability, as long the number of key-value pairs is below a designed threshold. Our structure allows the number of key-value pairs to greatly exceed this threshold during normal operation. Exceeding the threshold simply temporarily prevents content listing and reduces the probability of a successful lookup. If later entries are deleted to return the structure below the threshold, everything again functions appropriately. We also show that simple variations of our structure are robust to certain standard errors, such as the deletion of a key without a corresponding insertion or the insertion of two distinct values for a key. The properties of our structure make it suitable for several applications, including database and networking applications that we highlight.