zold 0.29.24 → 0.29.25

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: d9d73aef08fbd3c164e8e65f6724f5a4e1c4c0fe2c821e9638df11326d943f5d
4
- data.tar.gz: c6a1876c19f6905231e9758433b7743889302ae7527d20134165f6ece45dbd5f
3
+ metadata.gz: 3267a66b285dc8f08ffc218d6f29bc75aa5553f6240125aee76fd06d4b897cdb
4
+ data.tar.gz: f27a3f796b2e43945595b5c5c1f74e883e573ae98ed865e9dad4588f16626a7d
5
5
  SHA512:
6
- metadata.gz: b02b08e81d5b55735f05d3358451b820d5271c45ff0bbb83242b3ebd4a52e65f5ee9f2f05f9473e06ddf0503e89a467f9a5ec9712450a2ced8c4e9330081ef6e
7
- data.tar.gz: 2fed2a3e01d2554774d96e54bd1a240f439541bec8e58fe19fa5cb5a254f91a5f09b39026c1a088e5fa92b06f89e82e057c37cd65decf1efb4c5981301098a2d
6
+ metadata.gz: 2d045eb1fff2a665a0e019264e6a2450aee1fd10f4737477c0075809233d433990960e205a134a401758cefb3c1da1b57707b8ecef3a9bcfd5a3857a242db7d0
7
+ data.tar.gz: 228fe183795be02c6331f44e57855afb5659211576285999c8346f8ce395b76b29b9c91f2c828a0c56a691f037ad4d06871bcf2ff03844be0eb42639ec03be4d
@@ -72,6 +72,9 @@ Available options:"
72
72
  o.bool '--no-baseline',
73
73
  'Don\'t treat the highest score master copy as trustable baseline',
74
74
  default: false
75
+ o.bool '--edge-baseline',
76
+ 'Use any strongest group of nodes as baseline, even if there are no masters inside (dangerous!)',
77
+ default: false
75
78
  o.string '--ledger',
76
79
  'The name of the file where all new negative transactions will be recorded (default: /dev/null)',
77
80
  default: '/dev/null'
@@ -103,7 +106,7 @@ Available options:"
103
106
 
104
107
  def merge(id, cps, opts)
105
108
  start = Time.now
106
- cps = cps.all.sort_by { |c| c[:score] }.reverse
109
+ cps = cps.all(masters_first: !opts['edge-baseline'])
107
110
  patch = Patch.new(@wallets, log: @log)
108
111
  score = 0
109
112
  unless opts['skip-legacy']
@@ -119,7 +122,7 @@ Available options:"
119
122
  end
120
123
  cps.each_with_index do |c, idx|
121
124
  wallet = Wallet.new(c[:path])
122
- baseline = idx.zero? && c[:master] && !opts['no-baseline']
125
+ baseline = idx.zero? && (c[:master] || opts['edge-baseline']) && !opts['no-baseline']
123
126
  name = "#{c[:name]}/#{idx}/#{c[:score]}#{baseline ? '/baseline' : ''}"
124
127
  merge_one(opts, patch, wallet, name, baseline: baseline)
125
128
  score += c[:score]
@@ -166,6 +169,7 @@ into #{@wallets.acq(id, &:mnemo)} in #{Age.new(start, limit: 0.1 + cps.count * 0
166
169
  ['pull', txn.bnf.to_s, "--network=#{Shellwords.escape(opts['network'])}", '--quiet-if-absent'] +
167
170
  ["--depth=#{opts['depth'] - 1}"] +
168
171
  (opts['no-baseline'] ? ['--no-baseline'] : []) +
172
+ (opts['edge-baseline'] ? ['--edge-baseline'] : []) +
169
173
  ["--trusted=#{Shellwords.escape(opts['trusted'])}"]
170
174
  )
171
175
  end
data/lib/zold/copies.rb CHANGED
@@ -142,9 +142,9 @@ module Zold
142
142
  end
143
143
  end
144
144
 
145
- def all
145
+ def all(masters_first: true)
146
146
  Futex.new(file, log: @log).open(false) do
147
- load.group_by { |s| s[:name] }.map do |name, scores|
147
+ list = load.group_by { |s| s[:name] }.map do |name, scores|
148
148
  {
149
149
  name: name,
150
150
  path: File.join(@dir, "#{name}#{Copies::EXT}"),
@@ -154,7 +154,13 @@ module Zold
154
154
  .map { |s| s[:score] }
155
155
  .inject(&:+) || 0
156
156
  }
157
- end.select { |c| File.exist?(c[:path]) }.sort_by { |c| [c[:master] ? 1 : 0, c[:score].to_s] }.reverse
157
+ end.select { |c| File.exist?(c[:path]) }
158
+ if masters_first
159
+ list.sort_by! { |c| [c[:master] ? 1 : 0, c[:score].to_s.rjust(5, '0')] }
160
+ else
161
+ list.sort_by! { |c| c[:score] }
162
+ end
163
+ list.reverse
158
164
  end
159
165
  end
160
166
 
@@ -99,7 +99,7 @@ module Zold
99
99
  if !settings.opts['halt-code'].empty? && params[:halt] && params[:halt] == settings.opts['halt-code']
100
100
  settings.log.info('Halt signal received, shutting the front end down...')
101
101
  Thread.start do
102
- sleep 0.1
102
+ sleep 0.1 # to let the current request finish and close the socket
103
103
  Front.stop!
104
104
  end
105
105
  end
@@ -87,12 +87,13 @@ module Zold
87
87
  def merge(id, copies, wallets, log)
88
88
  Tempfile.open do |f|
89
89
  modified = Tempfile.open do |t|
90
- host, port = @address.split(':')
90
+ # host, port = @address.split(':')
91
91
  Merge.new(wallets: wallets, remotes: @remotes, copies: copies.root, log: log).run(
92
92
  ['merge', id.to_s, "--ledger=#{Shellwords.escape(f.path)}"] +
93
93
  ["--trusted=#{Shellwords.escape(t.path)}"] +
94
94
  ["--network=#{Shellwords.escape(@network)}"] +
95
- (@remotes.master?(host, port.to_i) ? ['--no-baseline', '--depth=4'] : [])
95
+ ['--edge-baseline']
96
+ # (@remotes.master?(host, port.to_i) ? ['--no-baseline', '--depth=4'] : [])
96
97
  )
97
98
  end
98
99
  @mutex.synchronize do
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.29.24'
28
+ VERSION = '0.29.25'
29
29
  PROTOCOL = 2
30
30
  REPO = 'zold-io/zold'
31
31
  end
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.29.24
4
+ version: 0.29.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
@@ -798,7 +798,7 @@ licenses:
798
798
  - MIT
799
799
  metadata: {}
800
800
  post_install_message: |-
801
- Thanks for installing Zold 0.29.24!
801
+ Thanks for installing Zold 0.29.25!
802
802
  Study our White Paper: https://papers.zold.io/wp.pdf
803
803
  Read our blog posts: https://blog.zold.io
804
804
  Try ZLD online wallet at: https://wts.zold.io