zold 0.10.13 → 0.10.14

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: e6232c5057d899ff2c3600af61ca53b872a01c79
4
- data.tar.gz: 5ad79a8d968e3e03fa70c3955bfe813c1c493bec
3
+ metadata.gz: 7b6885918dc96ed832bc14a1a5cb493a0bc04ebf
4
+ data.tar.gz: 62a57a666504eb1d24d1d3ff0cfd25de6eb0796e
5
5
  SHA512:
6
- metadata.gz: '01845774b4f1783571f47097513d006cbb670da6e0ca040df72039092cdafabd2e588bc470932eb8ee4bb84f423d52f4eabaa5a9c0ab353937d7ccde37e89e48'
7
- data.tar.gz: 20cca37c6f77efdc6a150e73d574db3c92da458311197c639cc493c7b6f2297f956b90aeada211e44143ee2e7cc7d8ec16e62b870f910888e91406fd4708a1ff
6
+ metadata.gz: ca1e1cea8df3826156440ab23d501cb8f0c61e57c7b6233dd4047b01710aa7006a6530c5950d857490cfcfbde374a180411da02ab178a715e9519301c3a2da62
7
+ data.tar.gz: 5445ed69c2b06eff6dd6e4b5cb4ed6d59062d8937aab48e9226a18ca6db3d57a4cb057341292ae985cf01bc496e692763b4e0f5beb16a260879cf02f3b531f09
@@ -111,7 +111,7 @@ module Zold
111
111
  require_relative 'invoice'
112
112
  invoice = Invoice.new(wallets: wallets, log: @log).run(['invoice', invoice])
113
113
  end
114
- farm = Farm.new(invoice, log: @log)
114
+ farm = Farm.new(invoice, File.join(opts[:home], 'farm'), log: @log)
115
115
  farm.start(
116
116
  opts[:host],
117
117
  opts[:port],
@@ -38,8 +38,9 @@ module Zold
38
38
  end
39
39
 
40
40
  attr_reader :best
41
- def initialize(invoice, log: Log::Quiet.new)
41
+ def initialize(invoice, cache, log: Log::Quiet.new)
42
42
  @log = log
43
+ @cache = cache
43
44
  @invoice = invoice
44
45
  @scores = []
45
46
  @threads = []
@@ -59,9 +60,10 @@ module Zold
59
60
  def start(host, port, strength: 8, threads: 8)
60
61
  @log.debug('Zero-threads farm won\'t score anything!') if threads.zero?
61
62
  @scores = Queue.new
62
- first = Score.new(Time.now, host, port, @invoice, strength: strength)
63
- @best = [first]
64
- @scores << first
63
+ history(host, port, strength).each do |s|
64
+ @best << s
65
+ @scores << s
66
+ end
65
67
  @threads = (1..threads).map do |t|
66
68
  Thread.new do
67
69
  VerboseThread.new(@log).run do
@@ -74,6 +76,7 @@ module Zold
74
76
  @best << s
75
77
  after = @best.map(&:value).max
76
78
  @best.reject! { |b| b.value < after }
79
+ File.write(@cache, @best.map(&:to_s).join("\n"))
77
80
  @log.debug("#{Thread.current.name}: best is #{@best[0]}") if before != after
78
81
  end
79
82
  if @scores.length < 4
@@ -97,5 +100,15 @@ module Zold
97
100
  end
98
101
  @log.debug('Farm stopped')
99
102
  end
103
+
104
+ private
105
+
106
+ def history(host, port, strength)
107
+ if File.exist?(@cache)
108
+ File.readlines(@cache).map { |t| Score.parse(t) }
109
+ else
110
+ [Score.new(Time.now, host, port, @invoice, strength: strength)]
111
+ end
112
+ end
100
113
  end
101
114
  end
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.10.13'.freeze
26
+ VERSION = '0.10.14'.freeze
27
27
  end
@@ -26,10 +26,12 @@ require_relative '../../lib/zold/node/farm'
26
26
 
27
27
  class FarmTest < Minitest::Test
28
28
  def test_makes_best_score_in_background
29
- farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff')
30
- farm.start('localhost', 80, threads: 4, strength: 2)
31
- sleep 0.1 while farm.best.empty? || farm.best[0].value.zero?
32
- assert(farm.best[0].value > 0)
33
- farm.stop
29
+ Dir.mktmpdir 'test' do |dir|
30
+ farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff', File.join(dir, 'f'))
31
+ farm.start('localhost', 80, threads: 4, strength: 2)
32
+ sleep 0.1 while farm.best.empty? || farm.best[0].value.zero?
33
+ assert(farm.best[0].value > 0)
34
+ farm.stop
35
+ end
34
36
  end
35
37
  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.10.13
4
+ version: 0.10.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko