zold 0.10.13 → 0.10.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/zold/commands/node.rb +1 -1
- data/lib/zold/node/farm.rb +17 -4
- data/lib/zold/version.rb +1 -1
- data/test/node/test_farm.rb +7 -5
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7b6885918dc96ed832bc14a1a5cb493a0bc04ebf
|
4
|
+
data.tar.gz: 62a57a666504eb1d24d1d3ff0cfd25de6eb0796e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca1e1cea8df3826156440ab23d501cb8f0c61e57c7b6233dd4047b01710aa7006a6530c5950d857490cfcfbde374a180411da02ab178a715e9519301c3a2da62
|
7
|
+
data.tar.gz: 5445ed69c2b06eff6dd6e4b5cb4ed6d59062d8937aab48e9226a18ca6db3d57a4cb057341292ae985cf01bc496e692763b4e0f5beb16a260879cf02f3b531f09
|
data/lib/zold/commands/node.rb
CHANGED
@@ -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],
|
data/lib/zold/node/farm.rb
CHANGED
@@ -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
|
-
|
63
|
-
|
64
|
-
|
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
data/test/node/test_farm.rb
CHANGED
@@ -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
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
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
|