zold 0.11.4 → 0.11.5

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
  SHA1:
3
- metadata.gz: 73513e03f0456f1f174a5fbda8880d05ad26b4e6
4
- data.tar.gz: 0c5fa14573661f65ddba4dbfa65afdc1e010c60d
3
+ metadata.gz: 6c22d25b0575aa403b58457dc738b232a14e40c8
4
+ data.tar.gz: 40726c037b816bd370b41b2cd46c1dfd23d834d7
5
5
  SHA512:
6
- metadata.gz: 181d60dd63b4fdc24d88f5af921f76dcd8e0b39f9f8b49103dc36d10d7f7c0da4d44ac52ac19206b5811ebb77e6eddae88509be19c62cd781928532f68c981bc
7
- data.tar.gz: 1e06c4d01f5dc12a52b6ebe9c475de20555ee376aa9395d991b57f17b8f466553dab66142b99b38128cf04d33cb27514deaadb25faf771af9604437dbc84b40c
6
+ metadata.gz: cdbfb12a088dbfc45ea613d5274c7bf1baf64d1864f939264bdd832cceb0c41988ba003fd27b3819a55a71ed4a599c847f65b676cc8e1052a6e27431cd053aa7
7
+ data.tar.gz: 2ea2de44216e0ef5f69f27b1c065fd2ec4570c0488a76d567572403cb284a72e72a872cccc4906e2528fc211e400143c9e04e94d973882be4d7c30a4223c3c67
@@ -21,6 +21,7 @@
21
21
  require 'uri'
22
22
  require 'json'
23
23
  require 'time'
24
+ require 'tempfile'
24
25
  require 'slop'
25
26
  require 'rainbow'
26
27
  require_relative 'args'
@@ -86,9 +87,14 @@ Available options:"
86
87
  score = Score.parse_json(json['score'])
87
88
  r.assert_valid_score(score)
88
89
  raise "Score is too weak #{score.strength}" if score.strength < Score::STRENGTH && !opts['ignore-score-weakness']
89
- cps.add(json['body'], score.host, score.port, score.value)
90
- @log.info("#{r} returned #{json['body'].length}b/#{Rainbow(score.value).green} \
91
- of #{id} (#{json['version']}) in #{(Time.now - start).round(2)}s")
90
+ Tempfile.open do |f|
91
+ body = json['body']
92
+ File.write(f, body)
93
+ wallet = Wallet.new(f.path)
94
+ cps.add(body, score.host, score.port, score.value)
95
+ @log.info("#{r} returned #{body.length}b/#{wallet.txns.count} \
96
+ of #{id} in #{(Time.now - start).round(2)}s: #{Rainbow(score.value).green} (#{json['version']})")
97
+ end
92
98
  end
93
99
  end
94
100
  end
@@ -77,9 +77,8 @@ Available options:"
77
77
  return 0
78
78
  end
79
79
  start = Time.now
80
- response = r.http(
81
- "/wallet/#{wallet.id}#{opts['sync'] ? '?sync=true' : ''}"
82
- ).put(File.read(wallet.path))
80
+ content = File.read(wallet.path)
81
+ response = r.http("/wallet/#{wallet.id}#{opts['sync'] ? '?sync=true' : ''}").put(content)
83
82
  if response.code == '304'
84
83
  @log.info("#{r}: same version of #{wallet.id} there")
85
84
  return 0
@@ -89,7 +88,8 @@ Available options:"
89
88
  score = Score.parse_json(json)
90
89
  r.assert_valid_score(score)
91
90
  raise "Score is too weak #{score}" if score.strength < Score::STRENGTH
92
- @log.info("#{r} accepted #{wallet.id} in #{(Time.now - start).round(2)}s: #{Rainbow(score.value).green}")
91
+ @log.info("#{r} accepted #{content.length}b/#{wallet.txns.count}txns of #{wallet.id} \
92
+ in #{(Time.now - start).round(2)}s: #{Rainbow(score.value).green} (#{json['version']})")
93
93
  score.value
94
94
  end
95
95
  end
@@ -108,6 +108,7 @@ module Zold
108
108
  pid: Process.pid,
109
109
  cpus: Concurrent.processor_count,
110
110
  uptime: `uptime`.strip,
111
+ threads: Thread.list.select { |t| t.status == 'run' }.count,
111
112
  wallets: settings.wallets.all.count,
112
113
  remotes: settings.remotes.all.count,
113
114
  farm: settings.farm.to_json,
data/lib/zold/remotes.rb CHANGED
@@ -47,10 +47,11 @@ module Zold
47
47
  # One remote.
48
48
  class Remote
49
49
  attr_reader :host, :port
50
- def initialize(host, port, score)
50
+ def initialize(host, port, score, log: Log::Quiet.new)
51
51
  @host = host
52
52
  @port = port
53
53
  @score = score
54
+ @log = log
54
55
  end
55
56
 
56
57
  def http(path = '/')
@@ -63,7 +64,11 @@ module Zold
63
64
  end
64
65
 
65
66
  def assert_code(code, response)
66
- raise "#{response.code} \"#{response.message}\" at \"#{response.body}\"" unless response.code.to_i == code
67
+ @log.debug("#{response.code} \"#{response.message}\" at \"#{response.body}\"")
68
+ msg = response.message
69
+ return if response.code.to_i == code
70
+ raise "Unexpected HTTP code #{response.code}, instead of #{code}" if msg.empty?
71
+ raise "#{msg} (HTTP code #{response.code}, instead of #{code})"
67
72
  end
68
73
 
69
74
  def assert_valid_score(score)
@@ -129,7 +134,7 @@ module Zold
129
134
  score = best.nil? ? Score::ZERO : best
130
135
  all.each do |r|
131
136
  begin
132
- yield Remotes::Remote.new(r[:host], r[:port], score)
137
+ yield Remotes::Remote.new(r[:host], r[:port], score, log: log)
133
138
  rescue StandardError => e
134
139
  error(r[:host], r[:port])
135
140
  log.info("#{Rainbow("#{r[:host]}:#{r[:port]}").red}: #{e.message}")
data/lib/zold/version.rb CHANGED
@@ -23,5 +23,5 @@
23
23
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
24
24
  # License:: MIT
25
25
  module Zold
26
- VERSION = '0.11.4'.freeze
26
+ VERSION = '0.11.5'.freeze
27
27
  end
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.11.4
4
+ version: 0.11.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko