For the past six months, our team at UMass (in conjunction with the Bitcoin Unlimited team) has been working on various improvements to the Graphene protocol, which we're calling "Graphene v2". The project is broken into two phases. Phase 1 introduces various security and performance improvements, while phase 2 implements failure recovery and mempool synchronization.
As of last week, phase 1 is complete except for two documentation tasks, and will be rolled out with BU release 1.6.0. Accordingly, I thought that now would be a good time to summarize and quantify the impact of the work that will be included in the release. To that end, I've written an interim report (if this link fails to render, then please try this one instead). Here are some of the highlights from that report.
- Like Compact blocks, Graphene now encodes transaction IDs using SipHash with a unique key shared between sender and receiver, which greatly minimizes the risk of a transaction collision attack.
- Graphene block failure rates have been dramatically lowered; on average, fewer than 1 block per day fails to decode.
- Various compute optimizations have lowered the time to encode and decode a Graphene block by at least 30%.
- By leveraging CTOR, we have removed transaction ordering information to further improve Graphene compression rates.
The report includes a test that we ran on over 500 sequential blocks from mainnet. During that test, we experienced 2 decode failures and were forced to request missing transactions 4 times. The overall mean compression rate was 0.995. For blocks with more than 1000 transactions, the mean compression rate was 0.998. The largest block, containing 2545 transactions, had a compression rate of 0.999.
Written by: bissias
Source: http://bit.ly/2VRcTy1
No comments:
Post a Comment