diff --git a/INSTALL.md b/INSTALL.md
index ee7ead5c1..51edd9fdb 100644
--- a/INSTALL.md
+++ b/INSTALL.md
@@ -28,6 +28,19 @@ cd hush3
./build.sh -j3
```
+## Build on Arch:
+
+```sh
+# install build dependencies
+sudo pacman -S gcc libsodium lib32-zlib unzip wget git python rust curl autoconf cmake
+# clone git repo
+git clone https://git.hush.is/hush/hush3
+cd hush3
+# Build
+# This uses 3 build processes, you need 2GB of RAM for each.
+./build.sh -j3
+```
+
## Build on Fedora:
```sh
diff --git a/contrib/seeds/README.md b/contrib/seeds/README.md
index 06035bb72..10948e1b4 100644
--- a/contrib/seeds/README.md
+++ b/contrib/seeds/README.md
@@ -5,6 +5,6 @@ Utility to generate the seeds.txt list that is compiled into the client
## Updating seeds
-Update [contrib/seeds/nodes_main.txt](hush/hush3/src/branch/master/contrib/seeds/nodes_main.txt) and run `make seeds` in the root directory of this repo to update [src/chainparamsseeds.h](hush/hush3/src/branch/master/src/chainparamsseeds.h) then commit the result.
+Update [contrib/seeds/nodes_main.txt](hush/hush3/src/branch/master/contrib/seeds/nodes_main.txt) and run `make seeds` in the hush root directory of this repo (not the directory of this README) to update [src/chainparamsseeds.h](hush/hush3/src/branch/master/src/chainparamsseeds.h) then commit the result.
diff --git a/contrib/seeds/nodes_main.txt b/contrib/seeds/nodes_main.txt
index 0d5e68fd4..2fc59ec5e 100644
--- a/contrib/seeds/nodes_main.txt
+++ b/contrib/seeds/nodes_main.txt
@@ -1,5 +1,5 @@
# node1.hush.land
-185.241.61.43
+91.208.127.81
# node2.hush.land
87.251.76.166
@@ -10,8 +10,8 @@
# node4.hush.land
87.251.76.33
-# node2.hush.is
-137.74.4.198
+# node5.hush.land
+178.250.189.141
# lite.hushpool.is
149.28.102.219
@@ -32,4 +32,4 @@ hushv3xvheqh42ms3ld2nh555muscietkib7gycb7s4psbrjsysfywqd.onion
2a0c:b641:6f1:c::2
# i2p
-iljqq7nnmw2ij2ezl334cerwwmgzmmbmoc3n4saditd2xhi3xohq.b32.i2p
+7oumuppuzgbzlkahavx7qrtjnvbhkixjqdmeg7f6fhndgfhz7mlq.b32.i2p
diff --git a/depends/packages/wolfssl.mk b/depends/packages/wolfssl.mk
index 1f5b36a64..44cdec866 100644
--- a/depends/packages/wolfssl.mk
+++ b/depends/packages/wolfssl.mk
@@ -1,13 +1,17 @@
package=wolfssl
+
+ifeq ($(host_os),mingw32)
+$(package)_version=4.8.1
+$(package)_file_name=wolfssl-$($(package)_version).tar.gz
+$(package)_sha256_hash=50db45f348f47e00c93dd244c24108220120cb3cc9d01434789229c32937c444
+else
$(package)_version=5.2.0
+$(package)_file_name=wolfssl-$($(package)_version).tar.gz
+$(package)_sha256_hash=409b4646c5f54f642de0e9f3544c3b83de7238134f5b1ff93fb44527bf119d05
+endif
+
$(package)_download_path=https://github.com/wolfSSL/wolfssl/archive
$(package)_download_file=v$($(package)_version)-stable.tar.gz
-$(package)_file_name=wolfssl-$($(package)_version).tar.gz
-#$(package)_sha256_hash=b0e740b31d4d877d540ad50cc539a8873fc41af02bd3091c4357b403f7106e31
-#$(package)_sha256_hash=72c22efcdab0f18f9b0bb45621c213144f88b4a9e9b9cc06878b47744e058885
-#$(package)_sha256_hash=c34b74b5f689fac7becb05583b044e84d3b10d39f38709f0095dd5d423ded67f
-#$(package)_sha256_hash=908390282cc613a3943533f3d922b3c18dee3289f498b6f944cb86a19a5eeb56
-$(package)_sha256_hash=409b4646c5f54f642de0e9f3544c3b83de7238134f5b1ff93fb44527bf119d05
define $(package)_set_vars
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"
diff --git a/doc/i2p.md b/doc/i2p.md
index 583f9ddb2..8cc3a6557 100644
--- a/doc/i2p.md
+++ b/doc/i2p.md
@@ -96,38 +96,6 @@ random, one-time, transient I2P addresses for itself for outbound connections
to make it harder to discriminate, fingerprint or analyze it based on its I2P
address.
-## Additional configuration options related to I2P
-
-```
--debug=i2p
-```
-
-Set the `debug=i2p` config logging option to see additional information in the
-debug log about your I2P configuration and connections. Run `hush-cli help
-logging` for more information.
-
-```
--onlynet=i2p
-```
-
-Make automatic outbound connections only to I2P addresses. Inbound and manual
-connections are not affected by this option. It can be specified multiple times
-to allow multiple networks, e.g. onlynet=onion, onlynet=i2p.
-
-I2P support was added to Hush in version 3.9.3 and there may be fewer I2P
-peers than Tor or IP ones. Therefore, using I2P alone without other networks may
-make a node more susceptible to [Sybil
-attacks](https://en.bitcoin.it/wiki/Weaknesses#Sybil_attack). You can use
-`hush-cli -addrinfo` to see the number of I2P addresses known to your node.
-
-Another consideration with `onlynet=i2p` is that the initial blocks download
-phase when syncing up a new node can be very slow. This phase can be sped up by
-using other networks, for instance `onlynet=onion`, at the same time.
-
-In general, a node can be run with both onion and I2P hidden services (or
-any/all of IPv4/IPv6/onion/I2P/CJDNS), which can provide a potential fallback if
-one of the networks has issues.
-
## I2P-related information
There are several ways to see your I2P address if accepting
@@ -135,6 +103,7 @@ incoming I2P connections (`-i2pacceptincoming`):
- in the "Local addresses" output of CLI `-netinfo`
- in the "localaddresses" output of RPC `getnetworkinfo`
- in the debug log (grep for `AddLocal`; the I2P address ends in `.b32.i2p`)
+- in the i2p/i2pd web console under "SAM Sessions"
To see which I2P peers your node is connected to, use `hush-cli -netinfo 4`
or the `getpeerinfo` RPC (e.g. `hush-cli getpeerinfo`).
diff --git a/doc/man/hush-cli.1 b/doc/man/hush-cli.1
index c2e81580b..bab9652d0 100644
--- a/doc/man/hush-cli.1
+++ b/doc/man/hush-cli.1
@@ -1,9 +1,9 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
-.TH HUSH-CLI "1" "January 2024" "hush-cli v3.10.1" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
+.TH HUSH-CLI "1" "February 2024" "hush-cli v3.10.2" "User Commands"
.SH NAME
-hush-cli \- manual page for hush-cli v3.10.1
+hush-cli \- manual page for hush-cli v3.10.2
.SH DESCRIPTION
-Hush RPC client version v3.10.1\-05ee31891\-dirty
+Hush RPC client version v3.10.2\-138cd7ab6
.PP
In order to ensure you are adequately protecting your privacy when using Hush,
please see .
diff --git a/doc/man/hush-tx.1 b/doc/man/hush-tx.1
index 5c1867b46..69b6f9477 100644
--- a/doc/man/hush-tx.1
+++ b/doc/man/hush-tx.1
@@ -1,9 +1,9 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
-.TH HUSH-TX "1" "January 2024" "hush-tx v3.10.1" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
+.TH HUSH-TX "1" "February 2024" "hush-tx v3.10.2" "User Commands"
.SH NAME
-hush-tx \- manual page for hush-tx v3.10.1
+hush-tx \- manual page for hush-tx v3.10.2
.SH DESCRIPTION
-hush\-tx utility version v3.10.1\-05ee31891\-dirty
+hush\-tx utility version v3.10.2\-138cd7ab6
.SS "Usage:"
.TP
hush\-tx [options] [commands]
diff --git a/doc/man/hushd.1 b/doc/man/hushd.1
index 2f6fe2d2a..4164550cc 100644
--- a/doc/man/hushd.1
+++ b/doc/man/hushd.1
@@ -1,9 +1,9 @@
-.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.47.13.
-.TH HUSHD "1" "January 2024" "hushd v3.10.1" "User Commands"
+.\" DO NOT MODIFY THIS FILE! It was generated by help2man 1.49.3.
+.TH HUSHD "1" "February 2024" "hushd v3.10.2" "User Commands"
.SH NAME
-hushd \- manual page for hushd v3.10.1
+hushd \- manual page for hushd v3.10.2
.SH DESCRIPTION
-Hush Daemon version v3.10.1\-05ee31891\-dirty
+Hush Daemon version v3.10.2\-138cd7ab6
.PP
In order to ensure you are adequately protecting your privacy when using Hush,
please see .
@@ -78,7 +78,7 @@ applied)
.HP
\fB\-par=\fR
.IP
-Set the number of script verification threads (\fB\-8\fR to 16, 0 = auto, <0 =
+Set the number of script verification threads (\fB\-12\fR to 16, 0 = auto, <0 =
leave that many cores free, default: 0)
.HP
\fB\-pid=\fR
@@ -659,7 +659,7 @@ single IP (e.g. 1.2.3.4), a network/netmask (e.g.
1.2.3.4/255.255.255.0) or a network/CIDR (e.g. 1.2.3.4/24). This
option can be specified multiple times
.PP
-Hush Smart Chain options:
+Hush Arrakis Chain options:
.HP
\fB\-ac_algo\fR
.IP
@@ -670,10 +670,6 @@ Equihash (200,9)
.IP
Block time in seconds, default is 60
.HP
-\fB\-ac_cc\fR
-.IP
-Cryptoconditions, default 0
-.HP
\fB\-ac_beam\fR
.IP
BEAM integration
@@ -682,18 +678,6 @@ BEAM integration
.IP
CODA integration
.HP
-\fB\-ac_cclib\fR
-.IP
-Cryptoconditions dynamicly loadable library
-.HP
-\fB\-ac_ccenable\fR
-.IP
-Cryptoconditions to enable
-.HP
-\fB\-ac_ccactivate\fR
-.IP
-Block height to enable Cryptoconditions
-.HP
\fB\-ac_decay\fR
.IP
Percentage of block reward decrease at each halving
@@ -751,10 +735,6 @@ default is 64
.IP
Block reward in satoshis, default is 0
.HP
-\fB\-ac_sapling\fR
-.IP
-Sapling activation block height
-.HP
\fB\-ac_script\fR
.IP
P2SH/multisig address to receive founders rewards
diff --git a/doc/relnotes/README.md b/doc/relnotes/README.md
index bd01b8ed1..89d526429 100644
--- a/doc/relnotes/README.md
+++ b/doc/relnotes/README.md
@@ -18,7 +18,7 @@ evil organizations.
* Various small optimizations such as making some variables static or const
and removing unnecessary conditionals
* Mining now starts faster because instead of only using 2 threads to prepare
- data needed to mine, now it uses all physical cores
+ data needed to mine, now it uses all physical cores https://git.hush.is/hush/hush3/commit/1b5422eb2ddcedd9aabdf4f039144f9eef5c6f95
* RandomX mining takes slightly less memory
* `ac_sapling` is no longer an option for Arrakis Chains
* All chains enable Sapling at height 1 like Hush + DragonX
@@ -28,14 +28,17 @@ evil organizations.
* This means Hush+DragonX full nodes take up a lot less memory and binaries are smaller
* It also means syncing, rescanning and compiling is faster
* CLI options related to CryptoConditions ( `-ac_cc -ac_cclib -ac_ccenable -ac_ccactivate) have been removed
- * Update to wolfssl 5.2.0: https://git.hush.is/hush/hush3/issues/380
- * Only Hush + DragonX will automatically connec to various seed nodes https://git.hush.is/hush/hush3/issues/379
+ * Upgraded WolfSSL to 5.2.0 on Linux+Mac : https://git.hush.is/hush/hush3/issues/380
+ * Upgraded to 4.8.1 on Windows because newer versions do not compile on Windows: https://git.hush.is/hush/hush3/commit/5e5a15018d0e55f094c89282a1983104f4d4387a
+ * Only Hush + DragonX will automatically connect to various seed nodes https://git.hush.is/hush/hush3/issues/379
* Other Arrakis Chains must opt-in via -connect or -addnode
+ * Updated i2p seed node: https://git.hush.is/hush/hush3/commit/8c8b6e88f0c076c86c713e7e22e2d826202cc64d
* Better error message: https://git.hush.is/hush/hush3/commit/f64c10baa9ae6940f434f6ff6750b299c1da548e, https://git.hush.is/hush/hush3/commit/f71f8124c3ffb8df6d83f6fd00201cb11aa0f239
* Improve `hush_scanner` and seed node contrib file: https://git.hush.is/hush/hush3/commit/16dd3aef74ac312bc8953af34a3d9a297b03d9f4
* Remove unused Makefile: https://git.hush.is/hush/hush3/issues/291
* Add script for scanning DragonX nodes: https://git.hush.is/hush/hush3/commit/0679468f609215a0958a95edc70643108ee6530a
* Add Fedora install process: https://git.hush.is/hush/hush3/pulls/384
+ * Add Arch install process: https://git.hush.is/hush/hush3/pulls/393
* More details about p2p encryption: https://git.hush.is/hush/hush3/commit/ccc86839b9774934882fec4cbf3428003cf75fd5, https://git.hush.is/hush/hush3/commit/a358acab0b1a589cebc45846ab54f7fa751c4820, https://git.hush.is/hush/hush3/commit/4ed576a7e256abb46e15d8f3606dc30ac276d461
* Fix boost download link: https://git.hush.is/hush/hush3/commit/323d2134a1fcc119a4da82f9fc37e912b67e58c6
* Remove unused code
diff --git a/src/chainparams.cpp b/src/chainparams.cpp
index ddc3638fe..3242316ef 100644
--- a/src/chainparams.cpp
+++ b/src/chainparams.cpp
@@ -1921,7 +1921,7 @@ void *chainparams_commandline() {
(1620000, uint256S("0x000000048c6667a8724512cbd999bc491ec8522b1f3817001c7ba485dec46d10"))
(1621000, uint256S("0x00000005d981cd3473f8815d18965c0e0035993117390e9659fe8d3b9562c8dc"))
(1622000, uint256S("0x0000000371a1663973c7b19a0b4dd8673f1ddb14a0438c89de3908712437f688"))
- // Generated at 1709073559 via hush3 util/checkpoints.pl by onryo
+ // Generated at 1709141140 via hush3 util/checkpoints.pl by onryo
(1623000, uint256S("0x000000038ed359f4cdcfb54a0ba36a8ac89e4f697836920c28dd038d643064d1"))
(1624000, uint256S("0x00000000ca915eb30164ac2aad328ae5d9d4531bf8ef30c7bdf3c18c0abcdae4"))
(1625000, uint256S("0x0000000303957deb36dc6a3b6597984ca9585172a198342eb102a9d3b9455596"))
@@ -1988,10 +1988,11 @@ void *chainparams_commandline() {
(1686000, uint256S("0x000000047a42b4eabe3ffab8d95e3cb1a2d923afcbda4e335374e728777fc474"))
(1687000, uint256S("0x00000003eda47c88b7d313cc525f0511934dacc364d045057eefc2148934cfbb"))
(1688000, uint256S("0x000000040d7bda41689357c29aedb77b016f3cd2ce2bc3ba04c4bdd95d455286"))
- (1689000, uint256S("0x0000000128027ca8f7b2dccb44d26946b9df6533f05e63da9d475867c4b251fa"))
- ,(int64_t) 1709047548, // time of last checkpointed block
- (int64_t) 2532221, // total txs
- (double) 2900 // txs in the last day before block 1689336
+ (1689000, uint256S("0x0000000128027ca8f7b2dccb44d26946b9df6533f05e63da9d475867c4b251fa"))
+ (1690000, uint256S("0x00000002dbbef67d168a562e36ba850e15acfad1172d1134df4f1f4288c9d865"))
+ ,(int64_t) 1709123120, // time of last checkpointed block
+ (int64_t) 2533194, // total txs
+ (double) 1555 // txs in the last day before block 1690236
};
// END HUSH mainnet checkpoint data
} else if (strcmp(SMART_CHAIN_SYMBOL,"DRAGONX") == 0) {
@@ -2988,7 +2989,7 @@ void *chainparams_commandline() {
(987000, uint256S("0x00002723abb80e9ece84055c113e0caa507177ddc88cb6b8011ecba39b490dd8"))
(988000, uint256S("0x00001938e724c8033d1f60ddd27512f6f358847e96c63def28e85bd40616117c"))
(989000, uint256S("0x00003071ff9188d27f744395aefb1d406cccc15f61b7f79bba0ea9d100475a63"))
- // Generated at 1709073764 via hush3 util/checkpoints.pl by onryo
+ // Generated at 1709141373 via hush3 util/checkpoints.pl by onryo
(990000, uint256S("0x00005340e6855081dd3fade7baa8db18b660ffd272373e67c812c5cf69006300"))
(991000, uint256S("0x000027d07656cbdbd3746495e091388f35c9e2a11a2389174490a9433a9e0da4"))
(992000, uint256S("0x00001413d8eb317a69e45bf44aba0af79c724b45272043307480213bd4e7d653"))
@@ -3129,9 +3130,11 @@ void *chainparams_commandline() {
(1127000, uint256S("0x000062ad6d9175ffa331b96444ad6b8b9842d564d359b68ac6b325b80f874f86"))
(1128000, uint256S("0x000030af1516b3d81082bbbf43054f723ea8090c31939f8335e2548861f585b0"))
(1129000, uint256S("0x00004691aec7b3d82d064a112e4a480e48ec3d7fa678862df12ae146265f5482"))
- ,(int64_t) 1709063880, // time of last checkpointed block
- (int64_t) 0, // total txs
- (double) 2304 // txs in the last day before block 1129274
+ (1130000, uint256S("0x000082de552f3b0dbd1a805e08db29f9f60fe020ee88944b0266e55cda2f7e78"))
+ (1131000, uint256S("0x0000061cc63ed366899e9d4d7c748ac75ae3ef9a32ef60e92cf7c0c306ee9711"))
+ ,(int64_t) 1709135822, // time of last checkpointed block
+ (int64_t) 1158597, // total txs
+ (double) 2480 // txs in the last day before block 1131156
};
} else {
// all other HSC's with no checkpoints
diff --git a/src/chainparamsseeds.h b/src/chainparamsseeds.h
index 31fff7378..dc2b4948c 100644
--- a/src/chainparamsseeds.h
+++ b/src/chainparamsseeds.h
@@ -11,11 +11,11 @@
// Each line contains a BIP155 serialized address.
//
static const uint8_t chainparams_seed_main[] = {
- 0x01,0x04,0xb9,0xf1,0x3d,0x2b,0x00,0x00, // 185.241.61.43
+ 0x01,0x04,0x5b,0xd0,0x7f,0x51,0x00,0x00, // 91.208.127.81
0x01,0x04,0x57,0xfb,0x4c,0xa6,0x00,0x00, // 87.251.76.166
0x01,0x04,0x2d,0x52,0x44,0xe9,0x00,0x00, // 45.82.68.233
0x01,0x04,0x57,0xfb,0x4c,0x21,0x00,0x00, // 87.251.76.33
- 0x01,0x04,0x89,0x4a,0x04,0xc6,0x00,0x00, // 137.74.4.198
+ 0x01,0x04,0xb2,0xfa,0xbd,0x8d,0x00,0x00, // 178.250.189.141
0x01,0x04,0x95,0x1c,0x66,0xdb,0x00,0x00, // 149.28.102.219
0x01,0x04,0x9b,0x8a,0xe4,0x44,0x00,0x00, // 155.138.228.68
0x01,0x04,0x6b,0xae,0x46,0xfb,0x00,0x00, // 107.174.70.251
@@ -24,7 +24,7 @@ static const uint8_t chainparams_seed_main[] = {
0x04,0x20,0x3d,0x24,0x7a,0xee,0xf5,0x39,0x20,0x7e,0x69,0x92,0xda,0xc7,0xa6,0x9f,0xbd,0xeb,0x29,0x21,0x20,0x93,0x52,0x03,0xf3,0x60,0x41,0xfc,0xb8,0xf9,0x06,0x29,0x96,0x24,0x00,0x00, // hushv3xvheqh42ms3ld2nh555muscietkib7gycb7s4psbrjsysfywqd.onion
0x02,0x10,0x2a,0x0c,0xb6,0x41,0x06,0xf1,0x00,0x34,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00, // 2a0c:b641:6f1:34::2
0x02,0x10,0x2a,0x0c,0xb6,0x41,0x06,0xf1,0x00,0x0c,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00, // 2a0c:b641:6f1:c::2
- 0x05,0x20,0x42,0xd3,0x08,0x7d,0xad,0x65,0xb4,0x84,0xe8,0x99,0x5e,0xf7,0xc1,0x12,0x36,0xb3,0x0d,0x96,0x30,0x2c,0x70,0xb6,0xde,0x48,0x03,0x44,0xc7,0xab,0x9d,0x1b,0xbb,0x8f,0x00,0x00, // iljqq7nnmw2ij2ezl334cerwwmgzmmbmoc3n4saditd2xhi3xohq.b32.i2p
+ 0x05,0x20,0xfb,0xa8,0xca,0x3d,0xf4,0xc9,0x83,0x95,0xa8,0x07,0x05,0x6f,0xf8,0x46,0x69,0x6d,0x42,0x75,0x22,0xe9,0x80,0xd8,0x43,0x7c,0xbe,0x29,0xda,0x33,0x14,0xf9,0xfb,0x17,0x00,0x00, // 7oumuppuzgbzlkahavx7qrtjnvbhkixjqdmeg7f6fhndgfhz7mlq.b32.i2p
};
static const uint8_t chainparams_seed_test[] = {
diff --git a/util/checkpoints.pl b/util/checkpoints.pl
index 486002c75..a0a4e1273 100755
--- a/util/checkpoints.pl
+++ b/util/checkpoints.pl
@@ -7,7 +7,7 @@ use strict;
# Generate checkpoint data for use in src/chainparams.cpp
my $perday = 1152;
-my $cli = "./src/hush-cli -ac_name=DRAGONX";
+my $cli = "./src/hush-cli";
my $stride = shift || 1000;
if ($stride =~ m/help/) {
print "To generate checkpoint data every 1000 blocks: $0 &> checkpoints.txt\n";