From 42236b2c49ca933499e18fc6f9c829fe4267e766 Mon Sep 17 00:00:00 2001 From: Duke Date: Sun, 23 Apr 2023 09:41:03 -0700 Subject: [PATCH] Hush dev update 1 --- memos/5/index.html | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/memos/5/index.html b/memos/5/index.html index feb5987..596c3aa 100644 --- a/memos/5/index.html +++ b/memos/5/index.html @@ -21,14 +21,21 @@

Hush Dev Update #1

+

+It is time for another Hush development update! +

+

One exciting new bit of code for Hush is Reduce memory usage of CBlockIndex which is being ported from upstream Zcash. When it is ready it will reduce the memory needed to run a Hush full node by at least 1.6 GB and potentially much more. The more "indexes" that are enabled, the more memory savings. Since SilentDragon enables some indexes by default, which are not enabled in the CLI hushd, GUI wallet users will see even more memory savings. This means you can do more things with the same -hardware without running out of memory or using much slower swap. This change will also help DragonX full nodes use less memory, but since +hardware without running out of memory or using much slower swap. This change will also help DragonX full nodes use less memory, but since RandomX block headers are much smaller, it will be on the order of tens of megabytes less RAM used.

+

+The above code seems to work on a fresh sync or if `-reindex` is used but Hush devs are currently working on a bug that causes it to crash in other scenarios. onryo and fekt contributed lots of testing to figure out exactly when this bug causes a crash. +

@@ -36,18 +43,23 @@ RandomX block headers are much smaller, it will be on the order of tens of megab

+Another exciting improvement is that Hush will now compile on Ubuntu 22 and the latest Arch Linux! jahway603 finally got things working (with a little help from Hush developer Emeritus miodrag), which came down to making recent versions of g++ happy. This also means that Hush will likely compile on many other newer Linux distributions which use g++ 11 or 12 by default.

+Some work was done to improve support for Hush on FreeBSD but it is currently on hold, since it will require very large changes to the build system. What we need is a developer who really loves FreeBSD and wants to "own" this effort. If that sounds like you or somebody you know, please get in touch.

+Recently a memory exhaustion vulnerability was publicly disclosed by Zcash. It is actually a very old vulnerability in Bitcoin that was never fixed in various codebases that forked from Bitcoin long ago. Potentially hundreds of blockchains are vulnerable. This issue has been fixed in the Hush source code and many nodes have upgraded to this code already. Hush also has another layer of defense against this bug in that we require TLS 1.3 between all nodes. This means that code to attack Zcash or other blockchains would not work against the Hush or DragonX blockchains.

+The p2p "mempool" message was recently removed which is not used in the normal activity of a full node and has potentially bad privacy implications.

+Now for some updates related to DragonX. It was recently discovered that our lightwalletd code is compatible with RandomX block headers. This means that DragonX is much closer to having a lite wallet! The backend server exists and works. The next step is to make the GUI code of SDL understand how to talk to a DragonX lightwalletd server, instead of a Hush lightwalletd server. This will also likely require updating some "plumbing" in silentdragonlite-cli . fekt and dan_s helped extensively with testing this.