From 29c6127b6ff781e6db5aca3547d146e3fe0ad840 Mon Sep 17 00:00:00 2001 From: SamsungGalaxyPlayer Date: Tue, 29 Jan 2019 04:27:13 +0000 Subject: [PATCH 1/2] Add Monero pruning blog post (cherry picked from commit fe3cc0e1f9e2e1d850792dc46c347157b893212c) --- _posts/2019-02-01-pruning.md | 33 ++++++++++++++++++++++++++++++++ blog/assets/pruning/pruning.JPG | Bin 0 -> 75321 bytes 2 files changed, 33 insertions(+) create mode 100644 _posts/2019-02-01-pruning.md create mode 100644 blog/assets/pruning/pruning.JPG diff --git a/_posts/2019-02-01-pruning.md b/_posts/2019-02-01-pruning.md new file mode 100644 index 00000000..a2380047 --- /dev/null +++ b/_posts/2019-02-01-pruning.md @@ -0,0 +1,33 @@ +--- +layout: post +title: Monero Adds Blockchain Pruning and Improves Transaction Efficiency +summary: +tags: [dev, core, crypto] +author: [Justin Ehrenhofer](https://twitter.com/JEhrenhofer) +--- + +To facilitate scalability, Monero recently added blockchain pruning to its daemon software. This feature allows users to optionally "prune" about 2/3 of the blockchain data, while still contributing to the network. There are several other efficiency upgrades in the upcoming 0.13 release. + +### What is Pruning? + +Pruning is the process of removing non-critical blockchain information from local storage. Full nodes keep an entire copy of everything that is stored on the blockchain, including data that is not very useful anymore. Pruned nodes remove much of this less relevant information to have a lighter footprint. Of course, running a full node is always better; however, pruned nodes have most of the important information and can still support the network. + +For Bitcoin, many people discuss pruning in the context of intermediary transactions. For example, suppose Alice sends Bob 1 BTC, and then Bob sends this to Charlie. The blockchain would record records of transactions A -> B and B -> C. However, since Alice can no longer spend her funds, it's less important to retain this information. Therefore, nodes can prune this information with a relatively high level of safety. Other nodes on the network would step in if something malicious occurs. + +This above example does not apply to Monero, since we do not know when money is spent. However, Monero nodes can prune a lot of other unnecessary information. This includes ring signature data that isn't essential to prevent double-spends. While the Monero blockchain can theoretically be pruned far further than this release enables, more testing is needed to test these limits. + +### Pruning Savings + +Monero nodes can prune significant amounts of information while still contributing to the network. Pruned nodes successfully remove approximately 2/3 of the total blockchain. Monero's current blockchain is about 65GB. With this update, pruned nodes only need to store about 25GB of data. + +Monero pruned nodes will only prune 7/8 of the pruneable transaction data. A random 1/8 of the data is maintained. This 1/8 will be used to sync with other nodes. Pruned nodes will also hold and share the most recent blocks. + +Even though pruned nodes contribute to Monero's security and decentralization, they are still less comprehensive than full nodes. Users should still run full nodes whenever possible. However, pruned nodes are better than connecting to someone else's remote node. Pruned nodes therefore have the potential to run on devices that would otherwise be unable to handle the requirements, reducing the need to use remote nodes. + +### Transaction Size and Verification Decrease + +Monero developers have found new ways to further decrease transaction size and verification time since the 0.13 release. Transaction size will decrease by 56 bytes per output (about 5% for normal transactions). Fees will also drop by ~5%. Range proof verification time takes a massive 60% cut, mostly by folding multiexponentiation operations. Range proofs are a large component of Monero transactions. The below image shows the relative changes compared to other Monero versions. + + + +Of course, these improvements are only small parts of the full 0.13 release notes. Follow Monero's development and stay tuned for future upgrades! \ No newline at end of file diff --git a/blog/assets/pruning/pruning.JPG b/blog/assets/pruning/pruning.JPG new file mode 100644 index 0000000000000000000000000000000000000000..3f75db1b2e1c23efd77c8c3c0f05abf01e6f76eb GIT binary patch literal 75321 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 Date: Thu, 31 Jan 2019 21:04:45 +0100 Subject: [PATCH 2/2] Update 2019-02-01-pruning.md --- _posts/2019-02-01-pruning.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_posts/2019-02-01-pruning.md b/_posts/2019-02-01-pruning.md index a2380047..49881a54 100644 --- a/_posts/2019-02-01-pruning.md +++ b/_posts/2019-02-01-pruning.md @@ -14,7 +14,7 @@ Pruning is the process of removing non-critical blockchain information from loca For Bitcoin, many people discuss pruning in the context of intermediary transactions. For example, suppose Alice sends Bob 1 BTC, and then Bob sends this to Charlie. The blockchain would record records of transactions A -> B and B -> C. However, since Alice can no longer spend her funds, it's less important to retain this information. Therefore, nodes can prune this information with a relatively high level of safety. Other nodes on the network would step in if something malicious occurs. -This above example does not apply to Monero, since we do not know when money is spent. However, Monero nodes can prune a lot of other unnecessary information. This includes ring signature data that isn't essential to prevent double-spends. While the Monero blockchain can theoretically be pruned far further than this release enables, more testing is needed to test these limits. +This above example does not apply to Monero, since we do not know when money is spent. However, Monero nodes can prune a lot of other unnecessary information. This includes ring signature data that isn't essential to prevent double-spends. While the Monero blockchain can theoretically be pruned far further than this release enables, more testing is needed to push these limits. ### Pruning Savings