zold 0.23.7 → 0.23.8

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
  SHA256:
3
- metadata.gz: c510a03d5a3e6a7b5d4df8f7cf1cd90be5bb9ec44cfa8a31215f148d864edcbb
4
- data.tar.gz: 42b34d4d44e8d25c67daa9eeb6053fba49bd9bb3bfd811b7686e76a266aefc55
3
+ metadata.gz: dd1a70efe61838a0cd3e0e4e17ef464d8c6d7791a98d24b5ecbc4ce4a43ef933
4
+ data.tar.gz: a00d4af1fee0f35b6e32ee8e1f2b0496cc480b61257185a6ac7ff8db5b022207
5
5
  SHA512:
6
- metadata.gz: 82667cd425fec0f1fd029da8a9c418cb740da96f997a99c99a1ed02863ec995cb279636d3c62370e621ced477a3bca6f73a7407498391a4ffc6940a1dd37498b
7
- data.tar.gz: '047049f8723e534ed026eb6a7701b66b6491aa9e7937954d4d49f4fc1788c553131bb5acc70ac68078b59baa8f6f53dffc03fe1e9efe51e1a4d8fda1d5a0ff06'
6
+ metadata.gz: df4eed8f2f359d92b071bc379189b64461fce53f61f77030da4b19fedfe0cd0fdbf6eebbce84919dc8ba0d55eeb22514da0f6494a94baf919de7dbb10653451b
7
+ data.tar.gz: 7a95d2dd6f095e221776acb5f249f00d4e8864fba49dc1918e893b9a6bb9545930673bda1f52316d1c0cdb55b5549078777e8534c9f3fc9b2d0db82a96eeb665
@@ -96,6 +96,9 @@ Available options:"
96
96
  o.bool '--ignore-masters',
97
97
  'Don\'t elect master nodes, only edges',
98
98
  default: false
99
+ o.bool '--masters-too',
100
+ 'Give no priviledges to masters, treat them as other nodes',
101
+ default: false
99
102
  o.integer '--min-score',
100
103
  "The minimum score required for winning the election (default: #{Tax::EXACT_SCORE})",
101
104
  default: Tax::EXACT_SCORE
@@ -252,7 +255,7 @@ Available options:"
252
255
  all = @remotes.all
253
256
  all.each do |r|
254
257
  next if r[:errors] <= opts['tolerate']
255
- @remotes.remove(r[:host], r[:port])
258
+ @remotes.remove(r[:host], r[:port]) if !opts['masters-too'] || !r[:master]
256
259
  @log.info("#{r[:host]}:#{r[:port]} removed because of #{r[:errors]} errors (over #{opts['tolerate']})")
257
260
  end
258
261
  @log.info("The list of #{all.count} remotes trimmed, #{@remotes.all.count} nodes left there")
@@ -344,7 +347,7 @@ it's recommended to reboot, but I don't do it because of --never-reboot")
344
347
  def select(opts)
345
348
  selected = @remotes.all.sort_by { |r| r[:score] }.reverse.first(opts['max-nodes'])
346
349
  (@remotes.all - selected).each do |r|
347
- @remotes.remove(r[:host], r[:port])
350
+ @remotes.remove(r[:host], r[:port]) if !opts['masters-too'] || !r[:master]
348
351
  @log.info("Remote #{r[:host]}:#{r[:port]}/#{r[:score]} removed from the list, #{@remotes.all.count} left")
349
352
  end
350
353
  @log.info("#{opts['max-nodes']} remote nodes left in the list")
@@ -153,7 +153,7 @@ at #{host}:#{port}, strength is #{@strength}")
153
153
  def cleanup(host, port, threads)
154
154
  scores = load
155
155
  before = scores.map(&:value).max.to_i
156
- save(threads, [Score.new(host: host, port: port, invoice: @invoice, strength: @strength)])
156
+ save(host, port, threads, [Score.new(host: host, port: port, invoice: @invoice, strength: @strength)])
157
157
  scores = load
158
158
  free = scores.reject { |s| @threads.exists?(s.to_mnemo) }
159
159
  @pipeline << free[0] if @pipeline.size.zero? && !free.empty?
@@ -182,16 +182,19 @@ at #{host}:#{port}, strength is #{@strength}")
182
182
  Thread.current.thread_variable_set(:start, Time.now.utc.iso8601)
183
183
  score = @farmer.up(s)
184
184
  @log.debug("New score discovered: #{score}") if @strength > 4
185
- save(threads, [score])
185
+ save(host, port, threads, [score])
186
186
  cleanup(host, port, threads)
187
187
  end
188
188
 
189
- def save(threads, list = [])
189
+ def save(host, port, threads, list = [])
190
190
  scores = load + list
191
191
  period = @lifetime / [threads, 1].max
192
192
  body = scores.select(&:valid?)
193
193
  .reject(&:expired?)
194
194
  .reject { |s| s.strength < @strength }
195
+ .select { |s| s.host == host }
196
+ .select { |s| s.port == port }
197
+ .select { |s| s.invoice == @invoice }
195
198
  .sort_by(&:value)
196
199
  .reverse
197
200
  .uniq(&:time)
data/lib/zold/version.rb CHANGED
@@ -25,7 +25,7 @@
25
25
  # Copyright:: Copyright (c) 2018 Yegor Bugayenko
26
26
  # License:: MIT
27
27
  module Zold
28
- VERSION = '0.23.7'
28
+ VERSION = '0.23.8'
29
29
  PROTOCOL = 2
30
30
  REPO = 'zold-io/zold'
31
31
  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.23.7
4
+ version: 0.23.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-02-16 00:00:00.000000000 Z
11
+ date: 2019-02-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: backtrace
@@ -753,7 +753,7 @@ licenses:
753
753
  - MIT
754
754
  metadata: {}
755
755
  post_install_message: |-
756
- Thanks for installing Zold 0.23.7!
756
+ Thanks for installing Zold 0.23.8!
757
757
  Study our White Paper: https://papers.zold.io/wp.pdf
758
758
  Read our blog posts: https://blog.zold.io
759
759
  Try ZLD online wallet at: https://wts.zold.io