zold 0.22.4 → 0.22.5
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/lib/zold/commands/merge.rb +4 -4
- data/lib/zold/commands/push.rb +4 -2
- data/lib/zold/commands/remote.rb +25 -18
- data/lib/zold/node/front.rb +1 -0
- data/lib/zold/node/spread_entrance.rb +1 -1
- data/lib/zold/patch.rb +6 -0
- data/lib/zold/version.rb +1 -1
- data/test/commands/test_merge.rb +2 -1
- data/test/commands/test_remote.rb +2 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03bad0932b6c80df634b1a0dd7149220767feb14818e8b22e310dad000630c24
|
4
|
+
data.tar.gz: eede3cc1a49152385f4ed01067343523719aaccb774e294a3f9b32987c53b155
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3ff2d16edc4fa1319d41622c3362e38c2e586701670e71883e6a31cc7a4d42a1dbede754009de98b7f2386e212a6d501ca7f4a8abeb6a4d1317a61e7211ab1b8
|
7
|
+
data.tar.gz: 492ddd34efe4982713b3db909d8a260dac6ca18021474a26fd60200860e2bfb02d6d1d5d0a0a5da822728ad59b49c63a8bb950a93eb84e9bf399f6e37d623269
|
data/lib/zold/commands/merge.rb
CHANGED
@@ -94,7 +94,7 @@ Available options:"
|
|
94
94
|
@wallets.acq(id) do |w|
|
95
95
|
if w.exists?
|
96
96
|
s = Time.now
|
97
|
-
merge_one(opts, patch, w, 'localhost', legacy: true)
|
97
|
+
merge_one(opts, patch, w, 'localhost', baseline: false, legacy: true)
|
98
98
|
@log.debug("Local legacy copy of #{id} merged in #{Age.new(s)}: #{patch}")
|
99
99
|
end
|
100
100
|
end
|
@@ -102,7 +102,7 @@ Available options:"
|
|
102
102
|
cps.each_with_index do |c, idx|
|
103
103
|
wallet = Wallet.new(c[:path])
|
104
104
|
name = "#{c[:name]}/#{idx}/#{c[:score]}"
|
105
|
-
merge_one(opts, patch, wallet, name)
|
105
|
+
merge_one(opts, patch, wallet, name, baseline: !opts['no-baseline'])
|
106
106
|
score += c[:score]
|
107
107
|
end
|
108
108
|
@wallets.acq(id) do |w|
|
@@ -125,10 +125,10 @@ into #{@wallets.acq(id, &:mnemo)} in #{Age.new(start, limit: 0.1 + cps.count * 0
|
|
125
125
|
modified
|
126
126
|
end
|
127
127
|
|
128
|
-
def merge_one(opts, patch, wallet, name, legacy: false)
|
128
|
+
def merge_one(opts, patch, wallet, name, baseline: false, legacy: false)
|
129
129
|
start = Time.now
|
130
130
|
@log.debug("Building a patch for #{wallet.id} from remote copy ##{name} with #{wallet.mnemo}...")
|
131
|
-
patch.join(wallet, baseline:
|
131
|
+
patch.join(wallet, baseline: baseline, legacy: legacy) do |id|
|
132
132
|
unless opts['shallow']
|
133
133
|
Pull.new(wallets: @wallets, remotes: @remotes, copies: @copies, log: @log).run(
|
134
134
|
['pull', id.to_s, "--network=#{opts['network']}", '--shallow']
|
data/lib/zold/commands/push.rb
CHANGED
@@ -137,7 +137,7 @@ out of #{nodes.value} in #{Age.new(start)}, total score for #{id} is #{total.val
|
|
137
137
|
r.assert_score_strength(score) unless opts['ignore-score-weakness']
|
138
138
|
if @log.info?
|
139
139
|
@log.info("#{r} accepted #{@wallets.acq(id, &:mnemo)} in #{Age.new(start, limit: 4)}: \
|
140
|
-
|
140
|
+
#{Rainbow(score.value).green} (#{json['version']})")
|
141
141
|
end
|
142
142
|
score.value
|
143
143
|
end
|
@@ -146,13 +146,15 @@ out of #{nodes.value} in #{Age.new(start)}, total score for #{id} is #{total.val
|
|
146
146
|
def read_one(id, r, opts)
|
147
147
|
start = Time.now
|
148
148
|
uri = "/wallet/#{id}"
|
149
|
+
attempt = 0
|
149
150
|
begin
|
150
151
|
response = Tempfile.open do |f|
|
151
152
|
@wallets.acq(id) { |w| FileUtils.copy_file(w.path, f.path) }
|
152
153
|
r.http(uri).put(f)
|
153
154
|
end
|
154
155
|
if response.status == 304
|
155
|
-
@log.info("#{r}: same version of #{@wallets.acq(id, &:mnemo)} there,
|
156
|
+
@log.info("#{r}: same version of #{@wallets.acq(id, &:mnemo)} there, didn't push
|
157
|
+
in #{Age.new(start, limit: 0.5)}")
|
156
158
|
return 0
|
157
159
|
end
|
158
160
|
r.assert_code(200, response)
|
data/lib/zold/commands/remote.rb
CHANGED
@@ -269,24 +269,7 @@ Available options:"
|
|
269
269
|
r.assert_score_ownership(score)
|
270
270
|
r.assert_score_strength(score) unless opts['ignore-score-weakness']
|
271
271
|
@remotes.rescore(score.host, score.port, score.value)
|
272
|
-
|
273
|
-
if opts['reboot']
|
274
|
-
@log.info("#{r}: their version #{json['version']} is higher than mine #{VERSION}, reboot! \
|
275
|
-
(use --never-reboot to avoid this from happening)")
|
276
|
-
terminate
|
277
|
-
end
|
278
|
-
@log.debug("#{r}: their version #{json['version']} is higher than mine #{VERSION}, \
|
279
|
-
it's recommended to reboot, but I don't do it because of --never-reboot")
|
280
|
-
end
|
281
|
-
if Semantic::Version.new(VERSION) < Semantic::Version.new(Zold::Gem.new.last_version)
|
282
|
-
if opts['reboot']
|
283
|
-
@log.info("#{r}: the version of the gem is higher than mine #{VERSION}, reboot! \
|
284
|
-
(use --never-reboot to avoid this from happening)")
|
285
|
-
terminate
|
286
|
-
end
|
287
|
-
@log.debug("#{r}: gem version is higher than mine #{VERSION}, \
|
288
|
-
it's recommended to reboot, but I don't do it because of --never-reboot")
|
289
|
-
end
|
272
|
+
reboot(r, json, opts)
|
290
273
|
if cycle.positive?
|
291
274
|
json['all'].each do |s|
|
292
275
|
next if @remotes.exists?(s['host'], s['port'])
|
@@ -330,6 +313,30 @@ Available options:"
|
|
330
313
|
end
|
331
314
|
end
|
332
315
|
|
316
|
+
def reboot(r, json, opts)
|
317
|
+
return unless json['repo'] == Zold::REPO
|
318
|
+
mine = Semantic::Version.new(VERSION)
|
319
|
+
if mine < Semantic::Version.new(json['version'])
|
320
|
+
if opts['reboot']
|
321
|
+
@log.info("#{r}: their version #{json['version']} is higher than mine #{VERSION}, reboot! \
|
322
|
+
(use --never-reboot to avoid this from happening)")
|
323
|
+
terminate
|
324
|
+
end
|
325
|
+
@log.debug("#{r}: their version #{json['version']} is higher than mine #{VERSION}, \
|
326
|
+
it's recommended to reboot, but I don't do it because of --never-reboot")
|
327
|
+
end
|
328
|
+
if mine < Semantic::Version.new(Zold::Gem.new.last_version)
|
329
|
+
if opts['reboot']
|
330
|
+
@log.info("#{r}: the version of the gem is higher than mine #{VERSION}, reboot! \
|
331
|
+
(use --never-reboot to avoid this from happening)")
|
332
|
+
terminate
|
333
|
+
end
|
334
|
+
@log.debug("#{r}: gem version is higher than mine #{VERSION}, \
|
335
|
+
it's recommended to reboot, but I don't do it because of --never-reboot")
|
336
|
+
end
|
337
|
+
@log.debug("#{r}: gem version is lower or equal to mine #{VERSION}, no need to reboot")
|
338
|
+
end
|
339
|
+
|
333
340
|
def select(opts)
|
334
341
|
selected = @remotes.all.sort_by { |r| r[:score] }.reverse.first(opts['max-nodes'])
|
335
342
|
(@remotes.all - selected).each do |r|
|
data/lib/zold/node/front.rb
CHANGED
@@ -376,6 +376,7 @@ this is not a normal behavior, you may want to report a bug to our GitHub reposi
|
|
376
376
|
content_type('application/json')
|
377
377
|
pretty(
|
378
378
|
version: settings.opts['expose-version'],
|
379
|
+
repo: Zold::REPO,
|
379
380
|
alias: settings.node_alias,
|
380
381
|
score: score.to_h,
|
381
382
|
all: all_remotes,
|
data/lib/zold/patch.rb
CHANGED
@@ -44,6 +44,12 @@ module Zold
|
|
44
44
|
"#{@txns.count} txns"
|
45
45
|
end
|
46
46
|
|
47
|
+
# Joins a new wallet on top of existing patch. An attempt is made to
|
48
|
+
# copy as many transactions from the newcoming wallet to the existing
|
49
|
+
# set of transactions, avoiding mistakes and duplicates.
|
50
|
+
#
|
51
|
+
# If +baseline+ is set to TRUE the provided wallet is considered to be
|
52
|
+
# the baseline and all transactions will be blindly trusted.
|
47
53
|
def join(wallet, baseline: true, legacy: false)
|
48
54
|
if @id.nil?
|
49
55
|
@id = wallet.id
|
data/lib/zold/version.rb
CHANGED
data/test/commands/test_merge.rb
CHANGED
@@ -149,9 +149,10 @@ class TestMerge < Zold::Test
|
|
149
149
|
copies = File.join(dir, 'copies')
|
150
150
|
remotes = Zold::Remotes.new(file: File.join(dir, 'remotes'))
|
151
151
|
Zold::Merge.new(wallets: wallets, remotes: remotes, copies: copies, log: test_log).run(
|
152
|
-
%w[merge 0123456789abcdef]
|
152
|
+
%w[merge 0123456789abcdef --shallow]
|
153
153
|
)
|
154
154
|
Dir.chdir(dir) do
|
155
|
+
test_log.info("Testing #{f}...")
|
155
156
|
require File.join(dir, 'assert.rb')
|
156
157
|
end
|
157
158
|
end
|
@@ -87,6 +87,7 @@ class TestRemote < Zold::Test
|
|
87
87
|
body: {
|
88
88
|
version: Zold::VERSION,
|
89
89
|
score: zero.to_h,
|
90
|
+
repo: Zold::REPO,
|
90
91
|
all: [
|
91
92
|
{ host: zero.host, port: zero.port }
|
92
93
|
]
|
@@ -94,7 +95,7 @@ class TestRemote < Zold::Test
|
|
94
95
|
)
|
95
96
|
stub_request(:get, 'https://rubygems.org/api/v1/versions/zold/latest.json').to_return(
|
96
97
|
status: 200,
|
97
|
-
body: '{"version": "9.9.9"}'
|
98
|
+
body: '{"version": "9.9.9", "repo": "' + Zold::REPO + '"}'
|
98
99
|
)
|
99
100
|
log = TestLogger.new
|
100
101
|
cmd = Zold::Remote.new(remotes: remotes, log: log)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.22.
|
4
|
+
version: 0.22.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-01-
|
11
|
+
date: 2019-01-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: backtrace
|
@@ -747,7 +747,7 @@ licenses:
|
|
747
747
|
- MIT
|
748
748
|
metadata: {}
|
749
749
|
post_install_message: |-
|
750
|
-
Thanks for installing Zold 0.22.
|
750
|
+
Thanks for installing Zold 0.22.5!
|
751
751
|
Study our White Paper: https://papers.zold.io/wp.pdf
|
752
752
|
Read our blog posts: https://blog.zold.io
|
753
753
|
Try ZLD online wallet at: https://wts.zold.io
|