zold 0.21.3 → 0.21.4

Sign up to get free protection for your applications and to get access to all the features.
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