zold 0.17.7 → 0.17.8

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: 1fe6c89e0f94aab5d15fc27cbd8cd8b25ae870341eb056e442a568430c97b1fa
4
- data.tar.gz: 55b3c18e4f6c223c521265b4ae1c7cb9c46b5e915df6dbe47f3c176ec0ad00d0
3
+ metadata.gz: b6e1c255573260dfc82b50fec8a41ae005471dbaec11a736983de5a609e41630
4
+ data.tar.gz: 99af27923788d3878f924d6f3b265e9a2d37ee49ca37b44ef30421901c73658b
5
5
  SHA512:
6
- metadata.gz: 66998849bf25873d1814fee29109744bffddc9c19f39c179388a605b55f6414ec6bb9df72455c3e83439c85475268d752731cf74f574c5aab6e1fdf3505d0aa3
7
- data.tar.gz: ecd1a71750d26762749ab24c931307713f7b8586ba09d865e324b209d441d3740ddb65df97c59d3409b19b88e22c6a8698881ccbe7d203c2ac9e91563f262edb
6
+ metadata.gz: e724f19149afaeeb61a4053052da0288339c8ea23235de66ed66baa5ad15c0b80fe912081f26096ba30101dc9e650c47257b1157c29ca9d751d137efcd3a5516
7
+ data.tar.gz: 72055148011cc61cf7a2828c0b0315127146f4ce22738ba7f956084ba658ad103a8f2df3e6d4ff7a9d8e8ce6318dba4e71d7b6451bdd98738965d3a84a9864bb
@@ -102,6 +102,9 @@ Available options:"
102
102
  o.bool '--skip-ping',
103
103
  'Don\'t ping back the node when adding it (not recommended)',
104
104
  default: false
105
+ o.bool '--ignore-ping',
106
+ 'Don\'t fail if ping fails, just report the problem in the log',
107
+ default: false
105
108
  o.integer '--depth',
106
109
  'The amount of update cycles to run, in order to fetch as many nodes as possible (default: 2)',
107
110
  default: 2
@@ -191,12 +194,13 @@ Available options:"
191
194
  @log.debug("#{host}:#{port} already exists, won't add because of --ignore-if-exists")
192
195
  return
193
196
  end
194
- unless opts['skip-ping']
195
- res = Http.new(uri: "http://#{host}:#{port}/version", network: opts['network']).get
196
- raise "The node #{host}:#{port} is not responding, #{res.status}:#{res.status_line}" unless res.status == 200
197
+ return unless ping(host, port, opts)
198
+ if @remotes.exists?(host, port)
199
+ @log.info("#{host}:#{port} already exists among #{@remotes.all.count} others")
200
+ else
201
+ @remotes.add(host, port)
202
+ @log.info("#{host}:#{port} added to the list, #{@remotes.all.count} total")
197
203
  end
198
- @remotes.add(host, port)
199
- @log.info("#{host}:#{port} added to the list, #{@remotes.all.count} total")
200
204
  end
201
205
 
202
206
  def remove(host, port, _)
@@ -258,22 +262,16 @@ Available options:"
258
262
  Semantic::Version.new(VERSION) < Semantic::Version.new(gem.last_version)
259
263
  if opts['reboot']
260
264
  @log.info("#{r}: their version #{json['version']} is higher than mine #{VERSION}, reboot! \
261
- (use --never-reboot to avoid this from happening)")
265
+ (use --never-reboot to avoid this from happening)")
262
266
  terminate
263
267
  end
264
268
  @log.debug("#{r}: their version #{json['version']} is higher than mine #{VERSION}, \
265
- it's recommended to reboot, but I don't do it because of --never-reboot")
269
+ it's recommended to reboot, but I don't do it because of --never-reboot")
266
270
  end
267
271
  if cycle.positive?
268
272
  json['all'].each do |s|
269
- if opts['ignore-node'].include?("#{s['host']}:#{s['port']}")
270
- @log.debug("#{s['host']}:#{s['port']}, which is found at #{r} \
271
- won't be added since it's in the --ignore-node list")
272
- next
273
- end
274
273
  next if @remotes.exists?(s['host'], s['port'])
275
- @remotes.add(s['host'], s['port'])
276
- @log.info("#{s['host']}:#{s['port']} found at #{r} and added to the list of #{@remotes.all.count}")
274
+ add(s['host'], s['port'], opts)
277
275
  end
278
276
  end
279
277
  capacity << { host: score.host, port: score.port, count: json['all'].count }
@@ -304,5 +302,14 @@ Available options:"
304
302
  require_relative '../node/front'
305
303
  Front.stop!
306
304
  end
305
+
306
+ def ping(host, port, opts)
307
+ return true if opts['skip-ping']
308
+ res = Http.new(uri: "http://#{host}:#{port}/version", network: opts['network']).get
309
+ return true if res.status == 200
310
+ raise "The node #{host}:#{port} is not responding, #{res.status}:#{res.status_line}" unless opts['ignore-ping']
311
+ @log.error("The node #{host}:#{port} is not responding, #{res.status}:#{res.status_line}")
312
+ false
313
+ end
307
314
  end
308
315
  end
@@ -43,7 +43,7 @@ module Zold
43
43
  def exec(_ = 0)
44
44
  sleep(60) unless @opts['routine-immediately']
45
45
  cmd = Remote.new(remotes: @remotes, log: @log, farm: @farm)
46
- args = ['remote', "--network=#{@opts['network']}"]
46
+ args = ['remote', "--network=#{@opts['network']}", '--ignore-ping']
47
47
  score = @farm.best[0]
48
48
  args << "--ignore-node=#{score.host}:#{score.port}" if score
49
49
  cmd.run(args + ['defaults']) unless @opts['routine-immediately']
@@ -99,7 +99,8 @@ module Zold
99
99
  "#{t.name}/#{t.status}/#{t.alive? ? 'alive' : 'dead'}"
100
100
  end.join(', '),
101
101
  pipeline: @pipeline.size,
102
- best: best.map(&:to_mnemo).join(', ')
102
+ best: best.map(&:to_mnemo).join(', '),
103
+ farmer: @farmer.class.name
103
104
  }
104
105
  end
105
106
 
@@ -206,7 +206,7 @@ in #{Age.new(@start, limit: 1)}")
206
206
  memory: settings.zache.get(:memory, lifetime: 5 * 60) do
207
207
  require 'get_process_mem'
208
208
  mem = GetProcessMem.new.bytes.to_i
209
- if mem > 256 * 1024 * 1024 && !settings.opts['skip-oom']
209
+ if mem > 1024 * 1024 * 1024 && !settings.opts['skip-oom']
210
210
  settings.log.error("We are too big in memory (#{Size.new(mem)}), quitting; use --skip-oom to never quit")
211
211
  Front.stop!
212
212
  end
data/lib/zold/version.rb CHANGED
@@ -25,6 +25,6 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.17.7'
28
+ VERSION = '0.17.8'
29
29
  PROTOCOL = 2
30
30
  end
@@ -286,8 +286,8 @@ class FrontTest < Zold::Test
286
286
  FakeNode.new(log: test_log).run(['--threads=1', '--strength=1', '--no-metronome', '--farmer=plain']) do |port|
287
287
  res = Zold::Http.new(uri: URI("http://localhost:#{port}/")).get
288
288
  assert_wait { Zold::Score.parse(res.headers[Zold::Http::SCORE_HEADER]).value > Zold::Front::MIN_SCORE - 1 }
289
- sleep(1)
290
- assert_equal_wait(Zold::Front::MIN_SCORE) do
289
+ sleep(3)
290
+ assert_equal_wait(Zold::Front::MIN_SCORE, max: 60) do
291
291
  Zold::Score.parse(res.headers[Zold::Http::SCORE_HEADER]).value
292
292
  end
293
293
  end
@@ -311,18 +311,13 @@ class FrontTest < Zold::Test
311
311
  def test_alias_parameter
312
312
  name = SecureRandom.hex(4)
313
313
  FakeNode.new(log: test_log).run(['--ignore-score-weakness', "--alias=#{name}"]) do |port|
314
- [
315
- '/',
316
- '/remotes'
317
- ].each do |path|
318
- uri = URI("http://localhost:#{port}#{path}")
319
- response = Zold::Http.new(uri: uri).get
320
- assert_match(
321
- name,
322
- Zold::JsonPage.new(response.body).to_hash['alias'].to_s,
323
- response.body
324
- )
325
- end
314
+ uri = URI("http://localhost:#{port}/")
315
+ response = Zold::Http.new(uri: uri).get
316
+ assert_match(
317
+ name,
318
+ Zold::JsonPage.new(response.body).to_hash['alias'].to_s,
319
+ response.body
320
+ )
326
321
  end
327
322
  end
328
323
 
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.17.7
4
+ version: 0.17.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -700,7 +700,7 @@ licenses:
700
700
  - MIT
701
701
  metadata: {}
702
702
  post_install_message: |-
703
- Thanks for installing Zold 0.17.7!
703
+ Thanks for installing Zold 0.17.8!
704
704
  Study our White Paper: https://papers.zold.io/wp.pdf
705
705
  Read our blog posts: https://blog.zold.io
706
706
  Try online wallet at: https://wts.zold.io