zold 0.17.2 → 0.17.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4c96f2da02ec8f5ab59403d7a0031158209698f74f275a42a8bfd92f2db1f6bd
4
- data.tar.gz: c6f63597c3da3dc66ca4e38875dddfab3027b0529b434561883f142dee4fe92c
3
+ metadata.gz: 7b180bc5d7ff240eafaa73f624652f2842cd576f3c43b87642e77d37716249a1
4
+ data.tar.gz: '0279c65c274f3725bf91ab3ba0b93ed60aca6b9db2edf7ab2a4f546818104acb'
5
5
  SHA512:
6
- metadata.gz: 05e38a1a02503288a738da6517f3111a2ca53cebfdb27945b2855c12f87d8bf7201e13516a17bc458668b34bb7283a71700941a28c2f3ae1ed60bfc9a1077c0c
7
- data.tar.gz: 4c544d8e6c64aab98bdb12e9a80428144e722316087b0f3d9bd63471fd40853c5c5d66f6aa45ae5e5547f0eaeaf8e65a6e807798d6bdb94b4f1b226a4f0269a1
6
+ metadata.gz: d840735668e54a0d8c88f7161c273631de34c06a938f7232cecbe61e11fe74ebac60fd0f810fcb832ff3b26b73ceb37e4d45a7d9529d6e7f0dda18bce433ad69
7
+ data.tar.gz: 9ebec3e75b50640543bf569f0957e1808af5f7bb5d82316bf21b58c7f98cec23961a40ed4297a73a52693c9054923c719a34b68bdf2f6e8cf586cad2256c013f
data/bin/zold CHANGED
@@ -161,20 +161,7 @@ log.debug("Home directory: #{home}")
161
161
  zoldata = File.join(home, '.zoldata')
162
162
 
163
163
  unless opts['skip-upgrades']
164
- Zold::Upgrades.new(Zold::VersionFile.new(File.join(zoldata, 'version')), 'upgrades').run
165
- # @todo #384:30min This is a workaround, move this code into Upgrades, somehow.
166
- # We should find a way to run these arbitrary scripts and pass arguments
167
- # to them. Each of them may need its own set of arguments.
168
- require_relative '../upgrades/2'
169
- Zold::UpgradeTo2.new(Dir.pwd, log).exec
170
- require_relative '../upgrades/protocol_up'
171
- Zold::ProtocolUp.new(Dir.pwd, log).exec
172
- require_relative '../upgrades/rename_foreign_wallets'
173
- Zold::RenameForeignWallets.new(Dir.pwd, opts['network'], log).exec
174
- if command == 'node'
175
- require_relative '../upgrades/move_wallets_into_tree'
176
- Zold::MoveWalletsIntoTree.new(Dir.pwd, log).exec
177
- end
164
+ Zold::Upgrades.new(Zold::VersionFile.new(File.join(zoldata, 'version')), 'upgrades', { command: command, network: opts['network']}).run
178
165
  end
179
166
 
180
167
  wallets = Zold::SyncWallets.new(
File without changes
@@ -123,6 +123,9 @@ module Zold
123
123
  o.bool '--no-cache',
124
124
  'Skip caching of front JSON pages (will seriously slow down, mostly useful for testing)',
125
125
  default: false
126
+ o.bool '--skip-oom',
127
+ 'Skip Out Of Memory check and never exit, no matter how much RAM is consumed',
128
+ default: false
126
129
  o.integer '--queue-limit',
127
130
  'The maximum number of wallets to be accepted via PUSH and stored in the queue (default: 4096)',
128
131
  default: 4096
File without changes
File without changes
data/lib/zold/copies.rb CHANGED
@@ -129,7 +129,7 @@ module Zold
129
129
  end
130
130
 
131
131
  def all
132
- Futex.new(file, log: @log).open do
132
+ Futex.new(file, log: @log).open(false) do
133
133
  load.group_by { |s| s[:name] }.map do |name, scores|
134
134
  {
135
135
  name: name,
data/lib/zold/gem.rb CHANGED
File without changes
data/lib/zold/http.rb CHANGED
File without changes
@@ -213,7 +213,7 @@ at #{host}:#{port}, strength is #{strength}")
213
213
 
214
214
  def load
215
215
  return [] unless File.exist?(@cache)
216
- Futex.new(@cache).open do |f|
216
+ Futex.new(@cache).open(false) do |f|
217
217
  IO.read(f).split(/\n/).map do |t|
218
218
  Score.parse(t)
219
219
  rescue StandardError => e
File without changes
@@ -198,7 +198,12 @@ in #{Age.new(@start, limit: 1)}")
198
198
  end,
199
199
  memory: settings.zache.get(:memory, lifetime: 5 * 60) do
200
200
  require 'get_process_mem'
201
- GetProcessMem.new.bytes.to_i
201
+ mem = GetProcessMem.new.bytes.to_i
202
+ if mem > 256 * 1024 * 1024 && !settings.opts['skip-oom']
203
+ settings.log.error('We are too big in memory, quitting; use --skip-oom to never quit')
204
+ Front.stop!
205
+ end
206
+ mem
202
207
  end,
203
208
  platform: RUBY_PLATFORM,
204
209
  load: settings.zache.get(:load, lifetime: 5 * 60) do
@@ -453,7 +458,10 @@ in #{Age.new(@start, limit: 1)}")
453
458
  end
454
459
 
455
460
  def processes
456
- POSIX::Spawn::Child.new('ps', 'ax').out.split("\n").select { |t| t.include?('zold') }
461
+ []
462
+ # This is temporarily disabled. We suspect that this line causes
463
+ # memory leakage.
464
+ # POSIX::Spawn::Child.new('ps', 'ax').out.split("\n").select { |t| t.include?('zold') }
457
465
  end
458
466
 
459
467
  def pretty(json)
data/lib/zold/remotes.rb CHANGED
@@ -245,7 +245,7 @@ module Zold
245
245
 
246
246
  def modify
247
247
  FileUtils.mkdir_p(File.dirname(@file))
248
- Futex.new(@file).open(true) do
248
+ Futex.new(@file).open do
249
249
  list = yield(load)
250
250
  IO.write(
251
251
  @file,
data/lib/zold/tax.rb CHANGED
@@ -57,10 +57,11 @@ module Zold
57
57
  PREFIX = 'TAXES'
58
58
  private_constant :PREFIX
59
59
 
60
- def initialize(wallet, ignore_score_weakness: false)
60
+ def initialize(wallet, ignore_score_weakness: false, strength: Score::STRENGTH)
61
61
  raise "The wallet must be of type Wallet: #{wallet.class.name}" unless wallet.is_a?(Wallet)
62
62
  @wallet = wallet
63
63
  @ignore_score_weakness = ignore_score_weakness
64
+ @strength = strength
64
65
  end
65
66
 
66
67
  # Check whether this tax payment already exists in the wallet.
@@ -95,7 +96,7 @@ module Zold
95
96
  next if pfx != PREFIX || body.nil?
96
97
  score = Score.parse_text(body)
97
98
  next if !score.valid? || score.value != EXACT_SCORE
98
- next if score.strength < Score::STRENGTH && !@ignore_score_weakness
99
+ next if score.strength < @strength && !@ignore_score_weakness
99
100
  next if t.amount > MAX_PAYMENT
100
101
  t
101
102
  end.compact.uniq(&:details)
data/lib/zold/upgrades.rb CHANGED
@@ -25,16 +25,29 @@ require_relative 'log'
25
25
  module Zold
26
26
  # Class to manage data upgrades (when zold itself upgrades).
27
27
  class Upgrades
28
- def initialize(version, directory, log: Log::VERBOSE)
28
+ def initialize(version, directory, opts, log: Log::VERBOSE)
29
+ raise 'network can\'t be nil' if opts[:network].nil?
29
30
  @version = version
30
31
  @directory = directory
31
32
  @log = log
33
+ @opts = opts
32
34
  end
33
35
 
34
36
  def run
35
37
  Dir.glob("#{@directory}/*.rb").select { |f| f =~ /^(\d+)\.rb$/ }.sort.each do |script|
36
38
  @version.apply(script)
37
39
  end
40
+
41
+ command = @opts[:command]
42
+ require_relative '../../upgrades/2'
43
+ Zold::UpgradeTo2.new(Dir.pwd, @log).exec
44
+ require_relative '../../upgrades/protocol_up'
45
+ Zold::ProtocolUp.new(Dir.pwd, @log).exec
46
+ require_relative '../../upgrades/rename_foreign_wallets'
47
+ Zold::RenameForeignWallets.new(Dir.pwd, @opts[:network], @log).exec
48
+ return unless command == 'node'
49
+ require_relative '../../upgrades/move_wallets_into_tree'
50
+ Zold::MoveWalletsIntoTree.new(Dir.pwd, @log).exec
38
51
  end
39
52
  end
40
53
  end
data/lib/zold/version.rb CHANGED
@@ -25,6 +25,6 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.17.2'
28
+ VERSION = '0.17.3'
29
29
  PROTOCOL = 2
30
30
  end
data/resources/remotes CHANGED
File without changes
data/test/test_tax.rb CHANGED
@@ -105,7 +105,7 @@ class TestTax < Zold::Test
105
105
  386d4a ec9eae 306e3d 119d073 1c00dba 1376703 203589 5b55f7"
106
106
  )
107
107
  )
108
- tax = Zold::Tax.new(wallet)
108
+ tax = Zold::Tax.new(wallet, strength: 6)
109
109
  assert_equal(amount, tax.paid)
110
110
  assert(tax.debt < Zold::Amount::ZERO, tax.debt)
111
111
  end
@@ -75,7 +75,7 @@ class TestUpgrades < Zold::Test
75
75
  private
76
76
 
77
77
  def run_upgrades(dir)
78
- Zold::Upgrades.new(version_file(dir), dir).run
78
+ Zold::Upgrades.new(version_file(dir), dir, network: 'test').run
79
79
  end
80
80
 
81
81
  def version_file(dir)
data/zold.gemspec CHANGED
@@ -86,7 +86,7 @@ and suggests a different architecture for digital wallet maintenance.'
86
86
  s.add_runtime_dependency 'usagewatch_ext', '0.2.1'
87
87
  s.add_runtime_dependency 'xcop', '0.6'
88
88
  s.add_runtime_dependency 'zache', '0.3.1'
89
- s.add_runtime_dependency 'zold-score', '0.3.3'
89
+ s.add_runtime_dependency 'zold-score', '0.3.4'
90
90
  s.add_development_dependency 'codecov', '0.1.13'
91
91
  s.add_development_dependency 'minitest', '5.11.3'
92
92
  s.add_development_dependency 'minitest-fail-fast', '0.1.0'
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.17.2
4
+ version: 0.17.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -366,14 +366,14 @@ dependencies:
366
366
  requirements:
367
367
  - - '='
368
368
  - !ruby/object:Gem::Version
369
- version: 0.3.3
369
+ version: 0.3.4
370
370
  type: :runtime
371
371
  prerelease: false
372
372
  version_requirements: !ruby/object:Gem::Requirement
373
373
  requirements:
374
374
  - - '='
375
375
  - !ruby/object:Gem::Version
376
- version: 0.3.3
376
+ version: 0.3.4
377
377
  - !ruby/object:Gem::Dependency
378
378
  name: codecov
379
379
  requirement: !ruby/object:Gem::Requirement
@@ -711,7 +711,7 @@ licenses:
711
711
  - MIT
712
712
  metadata: {}
713
713
  post_install_message: |-
714
- Thanks for installing Zold 0.17.2!
714
+ Thanks for installing Zold 0.17.3!
715
715
  Study our White Paper: https://papers.zold.io/wp.pdf
716
716
  Read our blog posts: https://blog.zold.io
717
717
  Try online wallet at: https://wts.zold.io