Merge branch 'dev' into duke
This commit is contained in:
13
INSTALL.md
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
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)"
|
||||
|
||||
33
doc/i2p.md
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`).
|
||||
|
||||
@@ -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/>.
|
||||
|
||||
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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[] = {
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user