zold 0.31.9 → 0.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.0pdd.yml +2 -19
- data/.github/typos.toml +11 -0
- data/.github/workflows/actionlint.yml +5 -21
- data/.github/workflows/bashate.yml +25 -0
- data/.github/workflows/codecov.yml +11 -24
- data/.github/workflows/copyrights.yml +6 -21
- data/.github/workflows/hadolint.yml +14 -0
- data/.github/workflows/markdown-lint.yml +19 -0
- data/.github/workflows/pdd.yml +5 -20
- data/.github/workflows/rake.yml +8 -22
- data/.github/workflows/reuse.yml +19 -0
- data/.github/workflows/shellcheck.yml +19 -0
- data/.github/workflows/typos.yml +21 -0
- data/.github/workflows/xcop.yml +5 -20
- data/.github/workflows/yamllint.yml +5 -20
- data/.gitignore +9 -6
- data/.rubocop.yml +16 -20
- data/.ruby-version +1 -1
- data/.rultor.yml +6 -22
- data/Dockerfile +11 -27
- data/Gemfile +21 -33
- data/Gemfile.lock +185 -130
- data/Guardfile +0 -0
- data/INSTALL.md +80 -59
- data/LICENSE.txt +1 -1
- data/LICENSES/MIT.txt +21 -0
- data/README.md +183 -154
- data/REUSE.toml +40 -0
- data/Rakefile +4 -38
- data/bin/zold +7 -37
- data/cucumber.yml +2 -19
- data/deploy.sh +4 -22
- data/features/cli.feature +2 -0
- data/features/gem_package.feature +2 -0
- data/features/step_definitions/steps.rb +2 -19
- data/features/support/env.rb +2 -19
- data/fixtures/merge/asserts.rb +3 -19
- data/fixtures/merge/into_no_wallet/assert.rb +2 -19
- data/fixtures/merge/legacy_negatives_stay/assert.rb +2 -19
- data/fixtures/merge/legacy_negatives_stay/copies/0123456789abcdef/scores.zc +1 -1
- data/fixtures/merge/missed_wallets/0123456789abcdef.z +0 -2
- data/fixtures/merge/missed_wallets/assert.rb +2 -19
- data/fixtures/merge/missed_wallets/copies/0123456789abcdef/scores.zc +1 -1
- data/fixtures/merge/negative_overwriting/assert.rb +2 -19
- data/fixtures/merge/negatives_in_between/0123456789abcdef.z +0 -1
- data/fixtures/merge/negatives_in_between/assert.rb +2 -19
- data/fixtures/merge/negatives_in_between/copies/0123456789abcdef/2.zc +0 -1
- data/fixtures/merge/negatives_in_between/opts +1 -1
- data/fixtures/merge/random_expenses/assert.rb +2 -19
- data/fixtures/merge/random_expenses/opts +1 -1
- data/fixtures/merge/simple_case/assert.rb +2 -19
- data/fixtures/merge/simple_case/opts +1 -1
- data/fixtures/merge/unconfirmed_income/assert.rb +2 -19
- data/fixtures/scripts/_head.sh +16 -33
- data/fixtures/scripts/calculate-scores.sh +3 -20
- data/fixtures/scripts/distribute-wallet.sh +26 -43
- data/fixtures/scripts/print-helps.sh +5 -23
- data/fixtures/scripts/pull-on-start.sh +12 -29
- data/fixtures/scripts/push-and-pull.sh +10 -27
- data/fixtures/scripts/redeploy-on-upgrade.sh +18 -34
- data/fixtures/scripts/spread-wallets.sh +24 -40
- data/lib/zold/age.rb +3 -20
- data/lib/zold/amount.rb +3 -20
- data/lib/zold/cached_wallets.rb +3 -20
- data/lib/zold/commands/alias.rb +4 -21
- data/lib/zold/commands/args.rb +4 -21
- data/lib/zold/commands/calculate.rb +5 -22
- data/lib/zold/commands/clean.rb +6 -23
- data/lib/zold/commands/create.rb +5 -22
- data/lib/zold/commands/diff.rb +5 -22
- data/lib/zold/commands/fetch.rb +6 -23
- data/lib/zold/commands/invoice.rb +5 -22
- data/lib/zold/commands/list.rb +5 -22
- data/lib/zold/commands/merge.rb +7 -24
- data/lib/zold/commands/next.rb +5 -22
- data/lib/zold/commands/node.rb +4 -21
- data/lib/zold/commands/pay.rb +6 -23
- data/lib/zold/commands/propagate.rb +5 -22
- data/lib/zold/commands/pull.rb +5 -22
- data/lib/zold/commands/push.rb +5 -22
- data/lib/zold/commands/remote.rb +7 -24
- data/lib/zold/commands/remove.rb +5 -22
- data/lib/zold/commands/routines/audit.rb +4 -21
- data/lib/zold/commands/routines/gc.rb +6 -23
- data/lib/zold/commands/routines/reconcile.rb +5 -22
- data/lib/zold/commands/routines/reconnect.rb +4 -21
- data/lib/zold/commands/routines/retire.rb +4 -21
- data/lib/zold/commands/routines/spread.rb +5 -22
- data/lib/zold/commands/routines.rb +3 -20
- data/lib/zold/commands/show.rb +5 -22
- data/lib/zold/commands/taxes.rb +5 -22
- data/lib/zold/commands/thread_badge.rb +3 -20
- data/lib/zold/copies.rb +6 -25
- data/lib/zold/dir_items.rb +3 -20
- data/lib/zold/endless.rb +5 -22
- data/lib/zold/gem.rb +3 -20
- data/lib/zold/hands.rb +6 -23
- data/lib/zold/head.rb +4 -21
- data/lib/zold/hexnum.rb +3 -20
- data/lib/zold/http.rb +3 -20
- data/lib/zold/hungry_wallets.rb +6 -23
- data/lib/zold/id.rb +3 -20
- data/lib/zold/json_page.rb +5 -22
- data/lib/zold/key.rb +3 -20
- data/lib/zold/metronome.rb +5 -22
- data/lib/zold/node/async_entrance.rb +6 -23
- data/lib/zold/node/entrance.rb +7 -24
- data/lib/zold/node/farm.rb +5 -22
- data/lib/zold/node/farmers.rb +15 -32
- data/lib/zold/node/front.rb +6 -23
- data/lib/zold/node/journaled_pipeline.rb +8 -25
- data/lib/zold/node/nodup_entrance.rb +6 -23
- data/lib/zold/node/nospam_entrance.rb +6 -23
- data/lib/zold/node/pipeline.rb +6 -23
- data/lib/zold/node/safe_entrance.rb +4 -22
- data/lib/zold/node/soft_error.rb +3 -20
- data/lib/zold/node/spread_entrance.rb +5 -22
- data/lib/zold/node/sync_entrance.rb +5 -22
- data/lib/zold/node/trace.rb +3 -20
- data/lib/zold/patch.rb +6 -23
- data/lib/zold/prefixes.rb +3 -20
- data/lib/zold/remotes.rb +5 -22
- data/lib/zold/signature.rb +3 -20
- data/lib/zold/size.rb +3 -20
- data/lib/zold/sync_wallets.rb +5 -22
- data/lib/zold/tax.rb +4 -21
- data/lib/zold/thread_pool.rb +4 -21
- data/lib/zold/tree_wallets.rb +3 -20
- data/lib/zold/txn.rb +4 -21
- data/lib/zold/txns.rb +4 -21
- data/lib/zold/upgrades.rb +4 -21
- data/lib/zold/verbose_thread.rb +5 -22
- data/lib/zold/version.rb +4 -21
- data/lib/zold/version_file.rb +4 -21
- data/lib/zold/wallet.rb +6 -23
- data/lib/zold/wallets.rb +5 -23
- data/lib/zold.rb +3 -21
- data/resources/banned-wallets.log +6 -6
- data/test/commands/routines/test_audit.rb +3 -21
- data/test/commands/routines/test_gc.rb +3 -21
- data/test/commands/routines/test_reconcile.rb +3 -21
- data/test/commands/routines/test_reconnect.rb +3 -21
- data/test/commands/routines/test_retire.rb +3 -21
- data/test/commands/test_alias.rb +2 -20
- data/test/commands/test_calculate.rb +5 -23
- data/test/commands/test_clean.rb +5 -23
- data/test/commands/test_create.rb +6 -24
- data/test/commands/test_diff.rb +4 -22
- data/test/commands/test_fetch.rb +3 -21
- data/test/commands/test_invoice.rb +3 -21
- data/test/commands/test_list.rb +3 -21
- data/test/commands/test_merge.rb +12 -35
- data/test/commands/test_node.rb +3 -21
- data/test/commands/test_pay.rb +5 -23
- data/test/commands/test_propagate.rb +6 -24
- data/test/commands/test_pull.rb +4 -22
- data/test/commands/test_push.rb +3 -21
- data/test/commands/test_remote.rb +10 -28
- data/test/commands/test_remove.rb +7 -25
- data/test/commands/test_show.rb +3 -21
- data/test/commands/test_taxes.rb +5 -23
- data/test/fake_home.rb +5 -22
- data/test/node/fake_entrance.rb +3 -20
- data/test/node/fake_node.rb +5 -22
- data/test/node/test_async_entrance.rb +3 -21
- data/test/node/test_entrance.rb +7 -25
- data/test/node/test_farm.rb +15 -33
- data/test/node/test_farmers.rb +3 -21
- data/test/node/test_front.rb +22 -42
- data/test/node/test_nodup_entrance.rb +4 -22
- data/test/node/test_nospam_entrance.rb +6 -24
- data/test/node/test_safe_entrance.rb +3 -21
- data/test/node/test_spread_entrance.rb +4 -22
- data/test/node/test_sync_entrance.rb +4 -22
- data/test/node/test_trace.rb +4 -22
- data/test/test__helper.rb +32 -31
- data/test/test_age.rb +5 -23
- data/test/test_amount.rb +15 -34
- data/test/test_cached_wallets.rb +3 -21
- data/test/test_copies.rb +10 -28
- data/test/test_dir_items.rb +4 -22
- data/test/test_gem.rb +3 -21
- data/test/test_hands.rb +3 -21
- data/test/test_hexnum.rb +3 -21
- data/test/test_http.rb +9 -27
- data/test/test_hungry_wallets.rb +6 -24
- data/test/test_id.rb +10 -28
- data/test/test_json_page.rb +3 -21
- data/test/test_key.rb +5 -23
- data/test/test_metronome.rb +6 -24
- data/test/test_patch.rb +10 -28
- data/test/test_prefixes.rb +3 -21
- data/test/test_remotes.rb +17 -35
- data/test/test_signature.rb +3 -21
- data/test/test_size.rb +3 -21
- data/test/test_sync_wallets.rb +3 -21
- data/test/test_tax.rb +6 -24
- data/test/test_thread_pool.rb +6 -24
- data/test/test_tree_wallets.rb +4 -22
- data/test/test_txn.rb +3 -21
- data/test/test_upgrades.rb +3 -21
- data/test/test_verbose_thread.rb +6 -24
- data/test/test_version.rb +2 -20
- data/test/test_wallet.rb +15 -33
- data/test/test_wallets.rb +4 -22
- data/test/test_zold.rb +7 -25
- data/test/upgrades/test_delete_banned_wallets.rb +4 -22
- data/test/upgrades/test_protocol_up.rb +3 -21
- data/upgrades/2.rb +3 -20
- data/upgrades/delete_banned_wallets.rb +3 -20
- data/upgrades/move_wallets_into_tree.rb +3 -20
- data/upgrades/protocol_up.rb +3 -20
- data/upgrades/rename_foreign_wallets.rb +3 -20
- data/views/journal.haml +25 -0
- data/views/layout.haml +25 -0
- data/views/wallet.haml +25 -0
- data/zold.gemspec +5 -21
- metadata +33 -15
- data/.simplecov +0 -36
- data/lib/zold/log.rb +0 -139
- data/test/test_log.rb +0 -49
data/INSTALL.md
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
# Installation Guide
|
|
2
|
+
|
|
3
|
+

|
|
2
4
|
|
|
3
5
|
This is how you install `zold` Ruby gem on different platform.
|
|
4
6
|
|
|
@@ -21,13 +23,16 @@ It is recommended to have at least 2 CPUs and 2 Gb RAM.
|
|
|
21
23
|
As a `root` user:
|
|
22
24
|
|
|
23
25
|
```bash
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
sudo apt update -y
|
|
27
|
+
sudo apt install -y ruby-dev rubygems zlib1g-dev libssl-dev make \
|
|
28
|
+
build-essential libcurl4-openssl-dev
|
|
29
|
+
gpg --keyserver hkp://keys.gnupg.net \
|
|
30
|
+
--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
|
|
31
|
+
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
|
32
|
+
curl -sSL https://get.rvm.io | bash -s stable
|
|
33
|
+
source /etc/profile.d/rvm.sh
|
|
34
|
+
rvm install --default 2.6.0
|
|
35
|
+
gem install --no-ri --no-rdoc zold
|
|
31
36
|
```
|
|
32
37
|
|
|
33
38
|
## Ubuntu 16.04
|
|
@@ -35,13 +40,16 @@ $ gem install --no-ri --no-rdoc zold
|
|
|
35
40
|
As a `root` user:
|
|
36
41
|
|
|
37
42
|
```bash
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
sudo apt-get update -y
|
|
44
|
+
sudo apt-get install -y curl ruby-dev rubygems zlib1g-dev libssl-dev \
|
|
45
|
+
build-essential libcurl4-openssl-dev
|
|
46
|
+
gpg --keyserver hkp://keys.gnupg.net \
|
|
47
|
+
--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
|
|
48
|
+
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
|
49
|
+
curl -sSL https://get.rvm.io | bash -s stable
|
|
50
|
+
source /etc/profile.d/rvm.sh
|
|
51
|
+
rvm install --default 2.6.0
|
|
52
|
+
gem install --no-ri --no-rdoc zold
|
|
45
53
|
```
|
|
46
54
|
|
|
47
55
|
## OSX
|
|
@@ -49,33 +57,36 @@ $ gem install --no-ri --no-rdoc zold
|
|
|
49
57
|
With [Homebrew](https://brew.sh/) (recommended):
|
|
50
58
|
|
|
51
59
|
```bash
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
60
|
+
brew install rbenv ruby-build
|
|
61
|
+
rbenv install 2.6.0
|
|
62
|
+
rbenv global 2.6.0
|
|
63
|
+
ruby -v
|
|
64
|
+
gem install --no-ri --no-rdoc zold
|
|
57
65
|
```
|
|
58
66
|
|
|
59
67
|
Without homebrew:
|
|
60
68
|
|
|
61
69
|
```bash
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
70
|
+
curl -sSL https://get.rvm.io | bash -s stable
|
|
71
|
+
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
|
|
72
|
+
rvm install 2.6.0
|
|
73
|
+
rvm use 2.6.0
|
|
74
|
+
gem install --no-ri --no-rdoc zold
|
|
67
75
|
```
|
|
68
76
|
|
|
69
77
|
## Windows
|
|
70
78
|
|
|
71
|
-
Download and install
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
79
|
+
Download and install
|
|
80
|
+
[RubyInstaller (with Devkit)](https://rubyinstaller.org/downloads/).
|
|
81
|
+
If Windows Defender (or antivirus software) throws an error, ignore it and
|
|
82
|
+
allow the file.
|
|
83
|
+
This file is known to trigger [false positives][rubyinstaller-issue].
|
|
84
|
+
Download and install [RubyGems](https://rubygems.org/pages/download).
|
|
85
|
+
Manual install `ruby setup.rb` works.
|
|
75
86
|
|
|
76
87
|
Install [Zold gem](https://rubygems.org/gems/zold):
|
|
77
88
|
|
|
78
|
-
```
|
|
89
|
+
```bash
|
|
79
90
|
gem install zold
|
|
80
91
|
```
|
|
81
92
|
|
|
@@ -84,39 +95,49 @@ gem install zold
|
|
|
84
95
|
As a `root` user:
|
|
85
96
|
|
|
86
97
|
```bash
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
98
|
+
sudo yum install zlib-devel gcc gcc-c++ ruby-devel rubygems ruby curl-devel
|
|
99
|
+
gpg --keyserver hkp://keys.gnupg.net \
|
|
100
|
+
--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
|
|
101
|
+
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
|
102
|
+
curl -sSL https://get.rvm.io | bash -s stable
|
|
103
|
+
source /etc/profile.d/rvm.sh
|
|
104
|
+
rvm install --default 2.6.0
|
|
105
|
+
gem install --no-ri --no-rdoc zold
|
|
93
106
|
```
|
|
94
107
|
|
|
95
108
|
## Amazon Linux (AWS EC2 default image)
|
|
96
109
|
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
110
|
+
```bash
|
|
111
|
+
sudo yum install zlib-devel gcc gcc-c++ ruby-devel rubygems ruby \
|
|
112
|
+
libcurl4-openssl-dev
|
|
113
|
+
gpg --keyserver hkp://keys.gnupg.net \
|
|
114
|
+
--recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 \
|
|
115
|
+
7D2BAF1CF37B13E2069D6956105BD0E739499BDB
|
|
116
|
+
curl -sSL https://get.rvm.io | bash -s stable
|
|
117
|
+
source $HOME/.rvm/scripts/rvm
|
|
118
|
+
rvm install --default 2.6.0
|
|
119
|
+
gem install --no-ri --no-rdoc zold
|
|
104
120
|
```
|
|
105
121
|
|
|
106
122
|
## PFSense Firewall Configuration
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
|
|
124
|
+
If your node is behind a pfsense firewall, you will need to make some special
|
|
125
|
+
configurations in order to allow traffic to properly reach your node.
|
|
126
|
+
|
|
127
|
+
1. Open the PFSense Web GUI Administration console and navigate to
|
|
128
|
+
Firewall > NAT > Port Forward, followed by clicking "Add"
|
|
129
|
+
2. Configure the NAT rules with the following:
|
|
130
|
+
- Interface: WAN
|
|
131
|
+
- Protocol: TCP
|
|
132
|
+
- Source Port: defaults
|
|
133
|
+
- Destination Port: 4096
|
|
134
|
+
- Redirect Target IP: the interface on which your node is listening
|
|
135
|
+
- Redirect Target Port: 4096
|
|
136
|
+
- Description: Port Forwarding Rule for ZOLD
|
|
137
|
+
- Filter rule association: pass
|
|
138
|
+
3. Verify configuration using either of these two methods. If you see a JSON
|
|
139
|
+
document you have properly setup your node:
|
|
140
|
+
- CLI: `curl <ip>:4096`
|
|
141
|
+
- Browser: `http://<ip>:4096`
|
|
142
|
+
|
|
143
|
+
[rubyinstaller-issue]: https://groups.google.com/forum/#!topic/rubyinstaller/LCR-CbBoGOI
|
data/LICENSE.txt
CHANGED
data/LICENSES/MIT.txt
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
(The MIT License)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2018-2025 Zerocracy
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the 'Software'), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|