zold 0.14.40 → 0.14.41

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: d7b45f4c26031db16e0648325a3bb697fd815f30
4
- data.tar.gz: 4ef739093a92027005789d04be4b70e2607eed47
3
+ metadata.gz: 6b4683993fc4c2115b2cf6cf69ea4bc157eb05c2
4
+ data.tar.gz: 83a3040d404d3b71c2af331bf4085950bfa17fd3
5
5
  SHA512:
6
- metadata.gz: aee52e4cd446e7c235f3edf8fbd4a0116772c02e0983e33f010424f286daa7fe6cfeae243d7d7d8cbef471c7a734bfb58464e9dc1a1a1d60196279885e891056
7
- data.tar.gz: ad64f721708ac64e46ab64c3e3276cce4e429f6d98cf52b6d9d213f30f916060af9af49f85ffb000ec8c91797c34d731f4e78d8f29c23461c2ae7ba102ed3b6d
6
+ metadata.gz: d28d9c5c4170478c60793e1f7bcab3a50af9cc5fd06b33f78500bd0c8c862010c738a2ca2c00bcf42a20a35512a8955f0e99c8ecb6b55cc6d2016f091ee5997b
7
+ data.tar.gz: d078e2ec1833d55e2087926e5eac1ac50fc2c199e93f8326a3e8b410f1ba969381d89416d5ca2b09cfd46d2a99ffe527a628e1aa0e1a985aa0702ffb8cba3de1
data/bin/zold CHANGED
@@ -31,8 +31,6 @@ end
31
31
 
32
32
  require 'slop'
33
33
  require 'rainbow'
34
- require 'cachy'
35
- require 'moneta'
36
34
  require_relative '../lib/zold'
37
35
  require_relative '../lib/zold/version'
38
36
  require_relative '../lib/zold/wallet'
@@ -49,8 +47,6 @@ require_relative '../lib/zold/version_file'
49
47
 
50
48
  Thread.current.name = 'main'
51
49
 
52
- Cachy.cache_store = Moneta.new(:Memory)
53
-
54
50
  Encoding.default_external = Encoding::UTF_8
55
51
  Encoding.default_internal = Encoding::UTF_8
56
52
 
@@ -127,6 +127,9 @@ module Zold
127
127
  'Maximum amount of nohup re-starts (-1 by default, which means forever)',
128
128
  require: true,
129
129
  default: -1
130
+ o.string '--home',
131
+ "Home directory (default: #{Dir.pwd})",
132
+ default: Dir.pwd
130
133
  o.bool '--no-metronome',
131
134
  'Don\'t run the metronome',
132
135
  required: true,
@@ -156,9 +159,9 @@ module Zold
156
159
  Front.set(:protocol, Zold::PROTOCOL)
157
160
  Front.set(:logging, @log.debug?)
158
161
  Front.set(:halt, opts['halt-code'])
159
- Front.set(:home, Dir.pwd)
162
+ Front.set(:home, opts['home'])
160
163
  @log.info("Time: #{Time.now.utc.iso8601}")
161
- @log.info("Home directory: #{Dir.pwd}")
164
+ @log.info("Home directory: #{opts['home']}")
162
165
  @log.info("Ruby version: #{RUBY_VERSION}")
163
166
  @log.info("Zold gem version: #{Zold::VERSION}")
164
167
  @log.info("Zold protocol version: #{Zold::PROTOCOL}")
@@ -189,7 +192,7 @@ module Zold
189
192
  Front.set(:remotes, @remotes)
190
193
  Front.set(:copies, @copies)
191
194
  Front.set(:address, address)
192
- Front.set(:root, Dir.pwd)
195
+ Front.set(:root, opts['home'])
193
196
  Front.set(:dump_errors, opts['dump-errors'])
194
197
  Front.set(:port, opts['bind-port'])
195
198
  Front.set(:reboot, !opts['never-reboot'])
@@ -215,21 +218,21 @@ module Zold
215
218
  @remotes, @copies, address,
216
219
  log: @log, network: opts['network']
217
220
  ),
218
- File.join(Dir.pwd, '.zoldata/entrance'),
221
+ File.join(opts['home'], '.zoldata/entrance'),
219
222
  log: @log
220
223
  ),
221
224
  @wallets, @remotes, address,
222
225
  log: @log,
223
226
  ignore_score_weakeness: opts['ignore-score-weakness']
224
227
  ),
225
- File.join(Dir.pwd, '.zoldata/entrance'), log: @log
228
+ File.join(opts['home'], '.zoldata/entrance'), log: @log
226
229
  ),
227
230
  @wallets
228
231
  ),
229
232
  network: opts['network']
230
233
  ).start do |entrance|
231
234
  Front.set(:entrance, entrance)
232
- Farm.new(invoice, File.join(Dir.pwd, 'farm'), log: @log)
235
+ Farm.new(invoice, File.join(opts['home'], 'farm'), log: @log)
233
236
  .start(host, opts[:port], threads: opts[:threads], strength: opts[:strength]) do |farm|
234
237
  Front.set(:farm, farm)
235
238
  metronome(farm, opts).start do |metronome|
@@ -38,10 +38,6 @@ module Zold
38
38
  # Queue length
39
39
  MAX_QUEUE = Concurrent.processor_count * 64
40
40
 
41
- # Max items in the queue. If there will be more, push() requests
42
- # will be rejected.
43
- MAX_QUEUE = 128
44
-
45
41
  def initialize(entrance, dir, log: Log::Quiet.new)
46
42
  raise 'Entrance can\'t be nil' if entrance.nil?
47
43
  @entrance = entrance
@@ -26,6 +26,7 @@ require 'json'
26
26
  require 'sinatra/base'
27
27
  require 'webrick'
28
28
  require 'cachy'
29
+ require 'moneta'
29
30
  require 'get_process_mem'
30
31
  require 'diffy'
31
32
  require 'usagewatch_ext'
@@ -48,6 +49,7 @@ module Zold
48
49
  class Front < Sinatra::Base
49
50
  configure do
50
51
  Thread.current.name = 'sinatra'
52
+ Cachy.cache_store = Moneta.new(:Memory)
51
53
  set :bind, '0.0.0.0'
52
54
  set :suppress_messages, true
53
55
  set :start, Time.now
@@ -25,6 +25,6 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.14.40'
28
+ VERSION = '0.14.41'
29
29
  PROTOCOL = 2
30
30
  end
@@ -22,6 +22,7 @@
22
22
 
23
23
  require 'tmpdir'
24
24
  require 'webmock/minitest'
25
+ require 'random-port'
25
26
  require_relative '../fake_home'
26
27
  require_relative '../../lib/zold/log'
27
28
  require_relative '../../lib/zold/http'
@@ -33,27 +34,21 @@ require_relative '../../lib/zold/node/front'
33
34
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
34
35
  # License:: MIT
35
36
  class FakeNode
36
- # rubocop:disable Style/ClassVars
37
- @@ports = Set.new
38
- # rubocop:enable Style/ClassVars
39
-
40
37
  def initialize(log: Zold::Log::Quiet.new)
41
38
  @log = log
42
39
  end
43
40
 
44
41
  def run(args = ['--standalone'])
45
42
  WebMock.allow_net_connect!
46
- start = Dir.pwd
47
- begin
48
- FakeHome.new.run do |home|
49
- port = FakeNode.random_port
43
+ FakeHome.new.run do |home|
44
+ RandomPort::Pool::SINGLETON.acquire do |port|
50
45
  node = Thread.new do
51
46
  Zold::VerboseThread.new(@log).run do
52
47
  Thread.current.abort_on_exception = true
53
- Dir.chdir(home.dir)
54
48
  require_relative '../../lib/zold/commands/node'
55
49
  Zold::Node.new(wallets: home.wallets, remotes: home.remotes, copies: home.copies.root, log: @log).run(
56
50
  [
51
+ '--home', home.dir,
57
52
  '--network=test',
58
53
  '--port', port.to_s,
59
54
  '--host=localhost',
@@ -82,19 +77,6 @@ class FakeNode
82
77
  node.join
83
78
  end
84
79
  end
85
- ensure
86
- Dir.chdir(start)
87
- end
88
- end
89
-
90
- def self.random_port
91
- loop do
92
- server = TCPServer.new('127.0.0.1', 0)
93
- port = server.addr[1]
94
- server.close
95
- next if @@ports.include?(port)
96
- @@ports << port
97
- return port
98
80
  end
99
81
  end
100
82
  end
@@ -24,7 +24,6 @@ gem 'openssl'
24
24
  require 'openssl'
25
25
  require 'minitest/autorun'
26
26
  require 'concurrent'
27
- require 'cachy'
28
27
  require 'moneta'
29
28
 
30
29
  STDOUT.sync = true
@@ -38,8 +37,6 @@ if ENV['CI'] == 'true'
38
37
  SimpleCov.formatter = SimpleCov::Formatter::Codecov
39
38
  end
40
39
 
41
- Cachy.cache_store = Moneta.new(:Memory)
42
-
43
40
  module Minitest
44
41
  class Test
45
42
  def assert_wait(max: 30)
@@ -77,6 +77,7 @@ and suggests a different architecture for digital wallet maintenance.'
77
77
  s.add_runtime_dependency 'xcop', '~>0.5'
78
78
  s.add_development_dependency 'codecov', '0.1.10'
79
79
  s.add_development_dependency 'minitest', '5.11.3'
80
+ s.add_development_dependency 'random-port', '~>0.1'
80
81
  s.add_development_dependency 'rdoc', '4.2.0'
81
82
  s.add_development_dependency 'rspec-rails', '3.1.0'
82
83
  s.add_development_dependency 'webmock', '3.4.2'
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.14.40
4
+ version: 0.14.41
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-10-03 00:00:00.000000000 Z
11
+ date: 2018-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cachy
@@ -332,6 +332,20 @@ dependencies:
332
332
  - - '='
333
333
  - !ruby/object:Gem::Version
334
334
  version: 5.11.3
335
+ - !ruby/object:Gem::Dependency
336
+ name: random-port
337
+ requirement: !ruby/object:Gem::Requirement
338
+ requirements:
339
+ - - "~>"
340
+ - !ruby/object:Gem::Version
341
+ version: '0.1'
342
+ type: :development
343
+ prerelease: false
344
+ version_requirements: !ruby/object:Gem::Requirement
345
+ requirements:
346
+ - - "~>"
347
+ - !ruby/object:Gem::Version
348
+ version: '0.1'
335
349
  - !ruby/object:Gem::Dependency
336
350
  name: rdoc
337
351
  requirement: !ruby/object:Gem::Requirement