zold 0.17.7 → 0.17.8

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: 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