zold 0.11.4 → 0.11.5

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