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";