zold 0.13.16 → 0.13.17
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 +4 -4
- data/README.md +0 -1
- data/lib/zold/commands/node.rb +8 -5
- data/lib/zold/node/farm.rb +9 -10
- data/lib/zold/remotes.rb +1 -1
- data/lib/zold/version.rb +1 -1
- data/test/node/test_farm.rb +20 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7eec03fc76e3770883b2f0febeb6ff7d565cc0a0
|
4
|
+
data.tar.gz: 121dd3d167f8a894c6c7a6a222f67bcb67356621
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a34855ba55d40556a011ab566962db6e072b6b97cf4eeef28491a9eb66d23db54fd64511e43ff69fec78324efcd75002dc6061ec5eb1c0773013eab2e26ea66
|
7
|
+
data.tar.gz: d04f55a00d7578f0ba7dca6b7ed1c9a351c5da22a0376e44fce9363ddb39c2484ec8f2194c0f4a65df82b605882af91d9a41d64d3681ca55d50840f12e22cec8
|
data/README.md
CHANGED
@@ -11,7 +11,6 @@
|
|
11
11
|
[](http://badge.fury.io/rb/zold)
|
12
12
|
[](https://codecov.io/github/zold-io/zold?branch=master)
|
13
13
|
|
14
|
-
[](https://gemnasium.com/zold-io/zold)
|
15
14
|
[](https://codeclimate.com/github/zold-io/zold/maintainability)
|
16
15
|
|
17
16
|
**NOTICE**: It's an experiment and a very early draft! Please, feel free to
|
data/lib/zold/commands/node.rb
CHANGED
@@ -59,8 +59,8 @@ module Zold
|
|
59
59
|
o.integer '--bind-port',
|
60
60
|
"TCP port to listen on (default: #{Remotes::PORT})",
|
61
61
|
default: Remotes::PORT
|
62
|
-
o.string '--host',
|
63
|
-
|
62
|
+
o.string '--host',
|
63
|
+
'Host name (will attempt to auto-detect it, if not specified)'
|
64
64
|
o.integer '--strength',
|
65
65
|
"The strength of the score (default: #{Score::STRENGTH})",
|
66
66
|
default: Score::STRENGTH
|
@@ -125,6 +125,9 @@ module Zold
|
|
125
125
|
@log.info("Home directory: #{Dir.pwd}")
|
126
126
|
@log.info("Ruby version: #{RUBY_VERSION}")
|
127
127
|
@log.info("Zold gem version: #{Zold::VERSION}")
|
128
|
+
host = opts[:host] || ip
|
129
|
+
address = "#{host}:#{opts[:port]}".downcase
|
130
|
+
@log.info("Node location: #{address}")
|
128
131
|
Front.set(
|
129
132
|
:server_settings,
|
130
133
|
Logger: WebrickLog.new(@log),
|
@@ -138,7 +141,6 @@ module Zold
|
|
138
141
|
Front.set(:wallets, @wallets)
|
139
142
|
Front.set(:remotes, @remotes)
|
140
143
|
Front.set(:copies, @copies)
|
141
|
-
address = "#{opts[:host]}:#{opts[:port]}".downcase
|
142
144
|
Front.set(:address, address)
|
143
145
|
entrance = Entrance.new(@wallets, @remotes, @copies, address, log: @log)
|
144
146
|
Front.set(:entrance, entrance)
|
@@ -160,7 +162,7 @@ module Zold
|
|
160
162
|
Front.set(:farm, farm)
|
161
163
|
metronome = metronome(farm, entrance, opts)
|
162
164
|
begin
|
163
|
-
@log.info("Starting up the web front at http://#{
|
165
|
+
@log.info("Starting up the web front at http://#{host}:#{opts[:port]}...")
|
164
166
|
Front.run!
|
165
167
|
ensure
|
166
168
|
farm.stop
|
@@ -242,7 +244,8 @@ module Zold
|
|
242
244
|
addr = Socket.ip_address_list.detect do |i|
|
243
245
|
i.ipv4? && !i.ipv4_loopback? && !i.ipv4_multicast? && !i.ipv4_private?
|
244
246
|
end
|
245
|
-
|
247
|
+
raise 'Can\'t detect your IP address, you have to specify it in --host' if addr.nil?
|
248
|
+
addr.ip_address
|
246
249
|
end
|
247
250
|
|
248
251
|
# Log facility for nohup
|
data/lib/zold/node/farm.rb
CHANGED
@@ -69,7 +69,7 @@ module Zold
|
|
69
69
|
VerboseThread.new(@log).run do
|
70
70
|
Thread.current.name = "farm-#{t}"
|
71
71
|
loop do
|
72
|
-
if @scores.length <
|
72
|
+
if @scores.length < threads
|
73
73
|
@scores << Score.new(
|
74
74
|
Time.now, host, port, @invoice,
|
75
75
|
strength: strength
|
@@ -79,22 +79,22 @@ module Zold
|
|
79
79
|
next unless s.valid?
|
80
80
|
next unless s.host == host
|
81
81
|
next unless s.port == port
|
82
|
-
next
|
83
|
-
|
82
|
+
next unless s.strength >= strength
|
83
|
+
n = s.next
|
84
84
|
@semaphore.synchronize do
|
85
|
-
save(s)
|
86
85
|
before = @best.map(&:value).max
|
87
|
-
|
86
|
+
save(n)
|
87
|
+
@best << n
|
88
88
|
after = @best.map(&:value).max
|
89
|
-
@best
|
90
|
-
@log.debug("#{Thread.current.name}: best score is #{@best[0]}") if before != after
|
89
|
+
@best = @best.reject(&:expired?).sort_by(&:value).reverse.take(threads)
|
90
|
+
@log.debug("#{Thread.current.name}: best score is #{@best[0]}") if before != after && !after.zero?
|
91
91
|
end
|
92
|
-
@scores <<
|
92
|
+
@scores << n
|
93
93
|
end
|
94
94
|
end
|
95
95
|
end
|
96
96
|
end
|
97
|
-
@log.info("Farm started with #{threads} threads at #{host}:#{port}")
|
97
|
+
@log.info("Farm started with #{threads} threads at #{host}:#{port}, strength is #{strength}")
|
98
98
|
end
|
99
99
|
|
100
100
|
def stop
|
@@ -119,7 +119,6 @@ module Zold
|
|
119
119
|
AtomicFile.new(@cache).read
|
120
120
|
.split(/\n/)
|
121
121
|
.map { |t| Score.parse(t) }
|
122
|
-
.reject(&:expired?)
|
123
122
|
.select(&:valid?)
|
124
123
|
.sort_by(&:value)
|
125
124
|
.reverse
|
data/lib/zold/remotes.rb
CHANGED
data/lib/zold/version.rb
CHANGED
data/test/node/test_farm.rb
CHANGED
@@ -60,4 +60,24 @@ class FarmTest < Minitest::Test
|
|
60
60
|
farm.stop
|
61
61
|
end
|
62
62
|
end
|
63
|
+
|
64
|
+
def test_drops_expired_scores_from_history
|
65
|
+
Dir.mktmpdir 'test' do |dir|
|
66
|
+
cache = File.join(dir, 'cache')
|
67
|
+
score = Zold::Score.new(
|
68
|
+
Time.parse('2017-07-19T21:24:51Z'),
|
69
|
+
'some-host', 9999, 'NOPREFIX@ffffffffffffffff', ['13f7f01'],
|
70
|
+
strength: 6
|
71
|
+
)
|
72
|
+
File.write(cache, score.to_s)
|
73
|
+
farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff', cache, log: test_log)
|
74
|
+
farm.start(score.host, score.port, threads: 1, strength: score.strength)
|
75
|
+
10.times do
|
76
|
+
break if farm.best[0].value.zero?
|
77
|
+
sleep(1)
|
78
|
+
end
|
79
|
+
assert_equal(0, farm.best[0].value)
|
80
|
+
farm.stop
|
81
|
+
end
|
82
|
+
end
|
63
83
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.13.
|
4
|
+
version: 0.13.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yegor Bugayenko
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-06-
|
11
|
+
date: 2018-06-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|