Browse Source

Merge branch 'dev' into duke

duke
Duke 3 months ago
parent
commit
81bd6e2f4e
  1. 13
      INSTALL.md
  2. 2
      contrib/seeds/README.md
  3. 8
      contrib/seeds/nodes_main.txt
  4. 16
      depends/packages/wolfssl.mk
  5. 33
      doc/i2p.md
  6. 8
      doc/man/hush-cli.1
  7. 8
      doc/man/hush-tx.1
  8. 32
      doc/man/hushd.1
  9. 9
      doc/relnotes/README.md
  10. 21
      src/chainparams.cpp
  11. 6
      src/chainparamsseeds.h
  12. 2
      util/checkpoints.pl

13
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

2
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.

8
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

16
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)_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
endif
$(package)_download_path=https://github.com/wolfSSL/wolfssl/archive
$(package)_download_file=v$($(package)_version)-stable.tar.gz
define $(package)_set_vars
$(package)_config_env=AR="$($(package)_ar)" RANLIB="$($(package)_ranlib)" CC="$($(package)_cc)"

33
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`).

8
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 <https://hush.is/security/>.

8
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] <hex\-tx> [commands]

32
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 <https://hush.is/security/>.
@ -78,7 +78,7 @@ applied)
.HP
\fB\-par=\fR<n>
.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<file>
@ -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

9
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

21
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

6
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[] = {

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

Loading…
Cancel
Save