zold 0.21.3 → 0.21.4

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b76d686809ed0f518c099bd7afbf901a6e4c8f8d4e23cd8950924a724396a082
4
- data.tar.gz: 32f523eacb60a2a2c367fccf7ea1e732b1ed4c58ee763cc5effa654c770a5812
3
+ metadata.gz: 97e75811a1329436f6840794104457cfcc6cf123144fd5a248db333fec67e8f7
4
+ data.tar.gz: a7ffabc0edb17a8e59c588ed390c9efbd4f34483631178f995e33dd35c6a2539
5
5
  SHA512:
6
- metadata.gz: 34659e7ff4e6e4718dc3832da26e93244c1665acd682c85b369e8c1f9239b44917077fa45f45b03971ea69c2dd2ea06ba7bbaf5a65817f0d5ff03ac72ba4bfa0
7
- data.tar.gz: aac7c961982d024da032366651a5fd557980d3aa0074628941589b0969e670c78d6ac1a4cb710e56f900c75b351e017d9043083f913af1a9ebae10c4759afff7
6
+ metadata.gz: 12541b87e91a1597365b86e65a9eafe192c5362b492f54d16c24e244cf667a86168e63991f397cc3af791596e5ebaadf35aea64cb54cf042803768bdec5a5854
7
+ data.tar.gz: 9eb0728e374ff5c74e3db2992bf8d3bbcf3644deaa626df556f7a6fe1bcfdce9012d86e1f6a4280ee36b3ad6a4ff84e2ad2d922887b999dacb05a74d9d78cc13
@@ -25,6 +25,7 @@ require 'json'
25
25
  require 'time'
26
26
  require 'tempfile'
27
27
  require 'slop'
28
+ require 'openssl'
28
29
  require 'rainbow'
29
30
  require 'concurrent/atomics'
30
31
  require 'zold/score'
@@ -145,23 +146,33 @@ run 'zold remote update' or use --tolerate-quorum=1"
145
146
  r.assert_valid_score(score)
146
147
  r.assert_score_ownership(score)
147
148
  r.assert_score_strength(score) unless opts['ignore-score-weakness']
148
- Tempfile.open(['', Wallet::EXT]) do |f|
149
- r.http(uri + '.bin').get_file(f)
150
- wallet = Wallet.new(f.path)
151
- wallet.refurbish
152
- if wallet.protocol != Zold::PROTOCOL
153
- raise "Protocol #{wallet.protocol} doesn't match #{Zold::PROTOCOL} in #{id}"
154
- end
155
- if wallet.network != opts['network']
156
- raise "The wallet #{id} is in network '#{wallet.network}', while we are in '#{opts['network']}'"
157
- end
158
- if wallet.balance.negative? && !wallet.root?
159
- raise "The balance of #{id} is #{wallet.balance} and it's not a root wallet"
160
- end
161
- copy = cps.add(IO.read(f), score.host, score.port, score.value, master: r.master?)
162
- @log.info("#{r} returned #{wallet.mnemo} #{Age.new(json['mtime'])}/#{json['copies']}c \
149
+ copy = nil
150
+ cps.all.each do |c|
151
+ next unless json['digest'] == OpenSSL::Digest::SHA256.file(c[:path]).hexdigest &&
152
+ json['size'] == File.size(c[:path])
153
+ copy = cps.add(IO.read(c[:path]), score.host, score.port, score.value, master: r.master?)
154
+ @log.debug("No need to fetch #{id} from #{r}, it's the same content as copy ##{copy}")
155
+ break
156
+ end
157
+ if copy.nil?
158
+ Tempfile.open(['', Wallet::EXT]) do |f|
159
+ r.http(uri + '.bin').get_file(f)
160
+ wallet = Wallet.new(f.path)
161
+ wallet.refurbish
162
+ if wallet.protocol != Zold::PROTOCOL
163
+ raise "Protocol #{wallet.protocol} doesn't match #{Zold::PROTOCOL} in #{id}"
164
+ end
165
+ if wallet.network != opts['network']
166
+ raise "The wallet #{id} is in network '#{wallet.network}', while we are in '#{opts['network']}'"
167
+ end
168
+ if wallet.balance.negative? && !wallet.root?
169
+ raise "The balance of #{id} is #{wallet.balance} and it's not a root wallet"
170
+ end
171
+ copy = cps.add(IO.read(f), score.host, score.port, score.value, master: r.master?)
172
+ @log.info("#{r} returned #{wallet.mnemo} #{Age.new(json['mtime'])}/#{json['copies']}c \
163
173
  as copy ##{copy}/#{cps.all.count} in #{Age.new(start, limit: 4)}: \
164
174
  #{Rainbow(score.value).green} (#{json['version']})")
175
+ end
165
176
  end
166
177
  score.value
167
178
  end
@@ -22,7 +22,6 @@
22
22
 
23
23
  STDOUT.sync = true
24
24
 
25
- require 'eventmachine'
26
25
  require 'get_process_mem'
27
26
  require 'thin'
28
27
  require 'json'
data/lib/zold/version.rb CHANGED
@@ -25,7 +25,7 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.21.3'
28
+ VERSION = '0.21.4'
29
29
  PROTOCOL = 2
30
30
  REPO = 'zold-io/zold'
31
31
  end
@@ -20,7 +20,6 @@
20
20
  # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
21
  # SOFTWARE.
22
22
 
23
- require 'eventmachine'
24
23
  require 'minitest/autorun'
25
24
  require 'json'
26
25
  require 'time'
data/test/test__helper.rb CHANGED
@@ -21,7 +21,6 @@
21
21
  # SOFTWARE.
22
22
 
23
23
  gem 'openssl'
24
- require 'eventmachine'
25
24
  require 'openssl'
26
25
  require 'minitest/autorun'
27
26
  require 'minitest/hooks/test'
data/zold.gemspec CHANGED
@@ -64,7 +64,7 @@ and suggests a different architecture for digital wallet maintenance.'
64
64
  s.add_runtime_dependency 'backtrace', '>=0.3'
65
65
  s.add_runtime_dependency 'concurrent-ruby', '1.1.3'
66
66
  s.add_runtime_dependency 'diffy', '3.2.1'
67
- s.add_runtime_dependency 'futex', '0.8.5'
67
+ s.add_runtime_dependency 'futex', '>=0.8.5'
68
68
  s.add_runtime_dependency 'get_process_mem', '~>0.2'
69
69
  s.add_runtime_dependency 'json', '2.1.0'
70
70
  s.add_runtime_dependency 'memory_profiler', '0.9.12'
@@ -77,10 +77,10 @@ and suggests a different architecture for digital wallet maintenance.'
77
77
  s.add_runtime_dependency 'sys-proctable', '1.2.1'
78
78
  s.add_runtime_dependency 'thin', '1.7.2'
79
79
  s.add_runtime_dependency 'threads', '>=0.3'
80
- s.add_runtime_dependency 'total', '>=0.2.0'
80
+ s.add_runtime_dependency 'total', '>=0.2'
81
81
  s.add_runtime_dependency 'typhoeus', '1.3.1'
82
82
  s.add_runtime_dependency 'usagewatch_ext', '0.2.1'
83
- s.add_runtime_dependency 'zache', '>=0.7.0'
83
+ s.add_runtime_dependency 'zache', '>=0.7'
84
84
  s.add_runtime_dependency 'zold-score', '0.4.5'
85
85
  s.add_development_dependency 'codecov', '0.1.13'
86
86
  s.add_development_dependency 'cucumber', '3.1.2'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zold
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.3
4
+ version: 0.21.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -56,14 +56,14 @@ dependencies:
56
56
  name: futex
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - '='
59
+ - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 0.8.5
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - '='
66
+ - - ">="
67
67
  - !ruby/object:Gem::Version
68
68
  version: 0.8.5
69
69
  - !ruby/object:Gem::Dependency
@@ -240,14 +240,14 @@ dependencies:
240
240
  requirements:
241
241
  - - ">="
242
242
  - !ruby/object:Gem::Version
243
- version: 0.2.0
243
+ version: '0.2'
244
244
  type: :runtime
245
245
  prerelease: false
246
246
  version_requirements: !ruby/object:Gem::Requirement
247
247
  requirements:
248
248
  - - ">="
249
249
  - !ruby/object:Gem::Version
250
- version: 0.2.0
250
+ version: '0.2'
251
251
  - !ruby/object:Gem::Dependency
252
252
  name: typhoeus
253
253
  requirement: !ruby/object:Gem::Requirement
@@ -282,14 +282,14 @@ dependencies:
282
282
  requirements:
283
283
  - - ">="
284
284
  - !ruby/object:Gem::Version
285
- version: 0.7.0
285
+ version: '0.7'
286
286
  type: :runtime
287
287
  prerelease: false
288
288
  version_requirements: !ruby/object:Gem::Requirement
289
289
  requirements:
290
290
  - - ">="
291
291
  - !ruby/object:Gem::Version
292
- version: 0.7.0
292
+ version: '0.7'
293
293
  - !ruby/object:Gem::Dependency
294
294
  name: zold-score
295
295
  requirement: !ruby/object:Gem::Requirement
@@ -744,7 +744,7 @@ licenses:
744
744
  - MIT
745
745
  metadata: {}
746
746
  post_install_message: |-
747
- Thanks for installing Zold 0.21.3!
747
+ Thanks for installing Zold 0.21.4!
748
748
  Study our White Paper: https://papers.zold.io/wp.pdf
749
749
  Read our blog posts: https://blog.zold.io
750
750
  Try ZLD online wallet at: https://wts.zold.io