zold 0.29.24 → 0.29.25

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: 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