zold 0.10.19 → 0.10.20
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +0 -7
- data/.rultor.yml +1 -1
- data/lib/zold.rb +0 -1
- data/lib/zold/http.rb +1 -1
- data/lib/zold/node/farm.rb +3 -2
- data/lib/zold/node/front.rb +8 -10
- data/lib/zold/version.rb +1 -1
- data/test/commands/test_calculate.rb +1 -1
- data/test/commands/test_clean.rb +1 -1
- data/test/commands/test_create.rb +1 -1
- data/test/commands/test_diff.rb +2 -2
- data/test/commands/test_fetch.rb +2 -2
- data/test/commands/test_invoice.rb +1 -1
- data/test/commands/test_list.rb +1 -1
- data/test/commands/test_merge.rb +4 -4
- data/test/commands/test_node.rb +3 -3
- data/test/commands/test_pay.rb +3 -3
- data/test/commands/test_push.rb +1 -1
- data/test/commands/test_remote.rb +1 -1
- data/test/commands/test_show.rb +1 -1
- data/test/commands/test_taxes.rb +1 -1
- data/test/node/test_emission.rb +1 -1
- data/test/node/test_entrance.rb +2 -2
- data/test/node/test_farm.rb +2 -2
- data/test/node/test_front.rb +36 -2
- data/test/support/logs.rb +6 -0
- data/test/test__helper.rb +8 -2
- data/test/test_remotes.rb +1 -0
- data/test/test_zold.rb +1 -1
- data/zold.gemspec +11 -10
- metadata +81 -66
- data/html/map.html +0 -139
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c87fbfc264dd92de42cde13930a908289aacf563
|
4
|
+
data.tar.gz: 8e6f525f6b0018704d1e716aa5e47bb3c8914862
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c4b2c011d7a787548881a49e89178fd03615eaaddeb50caf682ea66cf9e561c826a13610a40cc2af14568d989a56ce63e14b9a07abcb91db54dfc9cca65eaeec
|
7
|
+
data.tar.gz: 47b372309318e42bef1dbc69ad53ce7d8a33e1166c433e11e06c1a99fef524e97e3e1c008a9e4a0f9557a8eb14b5032392b22164e23b30b3b5076c9f71c55e1d
|
data/.rubocop.yml
CHANGED
@@ -31,10 +31,3 @@ Style/MultilineBlockChain:
|
|
31
31
|
Enabled: false
|
32
32
|
Layout/MultilineOperationIndentation:
|
33
33
|
Enabled: false
|
34
|
-
|
35
|
-
# @todo #64:30min Let's get rid of this and find a way to pass that
|
36
|
-
# $log global variable to all tests. Now it's defined inside test__helper.rb,
|
37
|
-
# but there should be a better solution. I posted a question about it:
|
38
|
-
# https://stackoverflow.com/questions/50418822
|
39
|
-
Style/GlobalVars:
|
40
|
-
Enabled: false
|
data/.rultor.yml
CHANGED
data/lib/zold.rb
CHANGED
data/lib/zold/http.rb
CHANGED
@@ -98,7 +98,7 @@ module Zold
|
|
98
98
|
'Connection': 'close'
|
99
99
|
}
|
100
100
|
headers[Http::VERSION_HEADER] = VERSION
|
101
|
-
headers[Http::SCORE_HEADER] = @score.reduced(4).to_text if @score.valid? && !@score.expired?
|
101
|
+
headers[Http::SCORE_HEADER] = @score.reduced(4).to_text if @score.valid? && !@score.expired? && @score.value > 3
|
102
102
|
headers
|
103
103
|
end
|
104
104
|
end
|
data/lib/zold/node/farm.rb
CHANGED
@@ -61,6 +61,7 @@ module Zold
|
|
61
61
|
@best << Score.new(Time.now, host, port, @invoice, strength: strength)
|
62
62
|
@scores = Queue.new
|
63
63
|
history.each { |s| @scores << s }
|
64
|
+
@log.debug("#{@scores.size} scores pre-loaded") unless @scores.size.zero?
|
64
65
|
@threads = (1..threads).map do |t|
|
65
66
|
Thread.new do
|
66
67
|
VerboseThread.new(@log).run do
|
@@ -103,12 +104,12 @@ module Zold
|
|
103
104
|
private
|
104
105
|
|
105
106
|
def save(score)
|
106
|
-
File.write(@cache, (history
|
107
|
+
File.write(@cache, (history + [score]).map(&:to_s).join("\n"))
|
107
108
|
end
|
108
109
|
|
109
110
|
def history
|
110
111
|
if File.exist?(@cache)
|
111
|
-
File.readlines(@cache).map { |t| Score.parse(t) }
|
112
|
+
File.readlines(@cache).map { |t| Score.parse(t) }.reject(&:expired?)
|
112
113
|
else
|
113
114
|
[]
|
114
115
|
end
|
data/lib/zold/node/front.rb
CHANGED
@@ -61,10 +61,7 @@ module Zold
|
|
61
61
|
before do
|
62
62
|
name = "HTTP-#{Http::SCORE_HEADER}".upcase.tr('-', '_')
|
63
63
|
header = request.env[name]
|
64
|
-
unless header
|
65
|
-
settings.log.debug("#{request.url}: HTTP header #{Http::SCORE_HEADER} is absent (#{name})")
|
66
|
-
return
|
67
|
-
end
|
64
|
+
return unless header
|
68
65
|
if settings.remotes.all.empty?
|
69
66
|
settings.log.debug("#{request.url}: we are in standalone mode, won't update remotes")
|
70
67
|
end
|
@@ -94,7 +91,13 @@ module Zold
|
|
94
91
|
end
|
95
92
|
|
96
93
|
get '/favicon.ico' do
|
97
|
-
|
94
|
+
if score.value >= 16
|
95
|
+
redirect 'https://www.zold.io/images/logo-green.png'
|
96
|
+
elsif score.value >= 4
|
97
|
+
redirect 'https://www.zold.io/images/logo-orange.png'
|
98
|
+
else
|
99
|
+
redirect 'https://www.zold.io/images/logo-red.png'
|
100
|
+
end
|
98
101
|
end
|
99
102
|
|
100
103
|
get '/' do
|
@@ -151,11 +154,6 @@ module Zold
|
|
151
154
|
)
|
152
155
|
end
|
153
156
|
|
154
|
-
get %r{/(?<page>.+\.html)} do
|
155
|
-
content_type 'text/html'
|
156
|
-
File.read(File.join(settings.root, "html/#{params[:page]}"))
|
157
|
-
end
|
158
|
-
|
159
157
|
not_found do
|
160
158
|
status 404
|
161
159
|
content_type 'text/plain'
|
data/lib/zold/version.rb
CHANGED
@@ -29,7 +29,7 @@ require_relative '../../lib/zold/commands/calculate'
|
|
29
29
|
# License:: MIT
|
30
30
|
class TestCalculate < Minitest::Test
|
31
31
|
def test_calculates_score
|
32
|
-
score = Zold::Calculate.new(log:
|
32
|
+
score = Zold::Calculate.new(log: log).run(
|
33
33
|
['score', '--strength=2', '--max=8', '--invoice=NOSUFFIX@ffffffffffffffff']
|
34
34
|
)
|
35
35
|
assert(score.valid?)
|
data/test/commands/test_clean.rb
CHANGED
@@ -36,7 +36,7 @@ class TestClean < Minitest::Test
|
|
36
36
|
copies = home.copies(wallet)
|
37
37
|
copies.add('a1', 'host-1', 80, 1, Time.now - 26 * 60 * 60)
|
38
38
|
copies.add('a2', 'host-2', 80, 2, Time.now - 26 * 60 * 60)
|
39
|
-
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log:
|
39
|
+
Zold::Clean.new(wallets: home.wallets, copies: copies.root, log: log).run(['clean', wallet.id.to_s])
|
40
40
|
assert(copies.all.empty?)
|
41
41
|
end
|
42
42
|
end
|
@@ -32,7 +32,7 @@ require_relative '../../lib/zold/commands/create'
|
|
32
32
|
class TestCreate < Minitest::Test
|
33
33
|
def test_creates_wallet
|
34
34
|
Dir.mktmpdir 'test' do |dir|
|
35
|
-
wallet = Zold::Create.new(wallets: Zold::Wallets.new(dir), log:
|
35
|
+
wallet = Zold::Create.new(wallets: Zold::Wallets.new(dir), log: log).run(
|
36
36
|
['create', '--public-key=fixtures/id_rsa.pub']
|
37
37
|
)
|
38
38
|
assert wallet.balance.zero?
|
data/test/commands/test_diff.rb
CHANGED
@@ -44,13 +44,13 @@ class TestDiff < Minitest::Test
|
|
44
44
|
File.write(first.path, File.read(wallet.path))
|
45
45
|
second = home.create_wallet
|
46
46
|
File.write(second.path, File.read(wallet.path))
|
47
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
47
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
48
48
|
['pay', wallet.id.to_s, second.id.to_s, '14.95', '--force', '--private-key=fixtures/id_rsa']
|
49
49
|
)
|
50
50
|
copies = home.copies(wallet)
|
51
51
|
copies.add(File.read(first.path), 'host-1', 80, 5)
|
52
52
|
copies.add(File.read(second.path), 'host-2', 80, 5)
|
53
|
-
diff = Zold::Diff.new(wallets: home.wallets, copies: copies.root, log:
|
53
|
+
diff = Zold::Diff.new(wallets: home.wallets, copies: copies.root, log: log).run(
|
54
54
|
['diff', wallet.id.to_s]
|
55
55
|
)
|
56
56
|
assert(diff.include?('-0001;'))
|
data/test/commands/test_fetch.rb
CHANGED
@@ -59,7 +59,7 @@ class TestFetch < Minitest::Test
|
|
59
59
|
remotes.add('fake-1', 80)
|
60
60
|
remotes.add('fake-2', 80)
|
61
61
|
copies = Zold::Copies.new(File.join(dir, "copies/#{id}"))
|
62
|
-
Zold::Fetch.new(wallets: wallets, copies: copies.root, remotes: remotes, log:
|
62
|
+
Zold::Fetch.new(wallets: wallets, copies: copies.root, remotes: remotes, log: log).run(
|
63
63
|
['fetch', '--ignore-score-weakness', id.to_s]
|
64
64
|
)
|
65
65
|
assert_equal(copies.all[0][:name], '1')
|
@@ -83,7 +83,7 @@ class TestFetch < Minitest::Test
|
|
83
83
|
remotes.add('fake-1', 80)
|
84
84
|
copies = Zold::Copies.new(File.join(dir, "copies/#{id}"))
|
85
85
|
Zold::Fetch.new(
|
86
|
-
wallets: wallets, copies: copies.root, remotes: remotes, log:
|
86
|
+
wallets: wallets, copies: copies.root, remotes: remotes, log: log
|
87
87
|
).run(['fetch', id.to_s])
|
88
88
|
assert_equal(copies.all[0][:name], '1')
|
89
89
|
assert_equal(copies.all[0][:score], 0)
|
@@ -38,7 +38,7 @@ class TestInvoice < Minitest::Test
|
|
38
38
|
wallets = Zold::Wallets.new(dir)
|
39
39
|
source = wallets.find(id)
|
40
40
|
source.init(id, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
|
41
|
-
invoice = Zold::Invoice.new(wallets: wallets, log:
|
41
|
+
invoice = Zold::Invoice.new(wallets: wallets, log: log).run(
|
42
42
|
['invoice', id.to_s, '--length=16']
|
43
43
|
)
|
44
44
|
assert_equal(33, invoice.length)
|
data/test/commands/test_list.rb
CHANGED
@@ -37,7 +37,7 @@ class TestList < Minitest::Test
|
|
37
37
|
wallets = Zold::Wallets.new(dir)
|
38
38
|
wallet = wallets.find(id)
|
39
39
|
wallet.init(Zold::Id.new, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
|
40
|
-
Zold::List.new(wallets: wallets, log:
|
40
|
+
Zold::List.new(wallets: wallets, log: log).run
|
41
41
|
end
|
42
42
|
end
|
43
43
|
end
|
data/test/commands/test_merge.rb
CHANGED
@@ -45,13 +45,13 @@ class TestMerge < Minitest::Test
|
|
45
45
|
File.write(first.path, File.read(wallet.path))
|
46
46
|
second = home.create_wallet
|
47
47
|
File.write(second.path, File.read(wallet.path))
|
48
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
48
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
49
49
|
['pay', wallet.id.to_s, second.id.to_s, '14.95', '--force', '--private-key=fixtures/id_rsa']
|
50
50
|
)
|
51
51
|
copies = home.copies(wallet)
|
52
52
|
copies.add(File.read(first.path), 'host-1', 80, 5)
|
53
53
|
copies.add(File.read(second.path), 'host-2', 80, 5)
|
54
|
-
modified = Zold::Merge.new(wallets: home.wallets, copies: copies.root, log:
|
54
|
+
modified = Zold::Merge.new(wallets: home.wallets, copies: copies.root, log: log).run(
|
55
55
|
['merge', wallet.id.to_s]
|
56
56
|
)
|
57
57
|
assert(1, modified.count)
|
@@ -66,13 +66,13 @@ class TestMerge < Minitest::Test
|
|
66
66
|
File.write(first.path, File.read(wallet.path))
|
67
67
|
second = home.create_wallet
|
68
68
|
File.write(second.path, File.read(wallet.path))
|
69
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
69
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
70
70
|
['pay', wallet.id.to_s, second.id.to_s, '14.95', '--force', '--private-key=fixtures/id_rsa']
|
71
71
|
)
|
72
72
|
copies = home.copies(wallet)
|
73
73
|
copies.add(File.read(first.path), 'host-1', 80, 5)
|
74
74
|
copies.add(File.read(second.path), 'host-2', 80, 5)
|
75
|
-
modified = Zold::Merge.new(wallets: home.wallets, copies: copies.root, log:
|
75
|
+
modified = Zold::Merge.new(wallets: home.wallets, copies: copies.root, log: log).run(
|
76
76
|
['merge', wallet.id.to_s]
|
77
77
|
)
|
78
78
|
assert(1, modified.count)
|
data/test/commands/test_node.rb
CHANGED
@@ -38,7 +38,7 @@ require_relative '../node/fake_node'
|
|
38
38
|
# License:: MIT
|
39
39
|
class TestNode < Minitest::Test
|
40
40
|
def test_push_and_fetch
|
41
|
-
FakeNode.new(log:
|
41
|
+
FakeNode.new(log: log).run do |port|
|
42
42
|
Dir.mktmpdir 'test' do |dir|
|
43
43
|
id = Zold::Id.new
|
44
44
|
wallets = Zold::Wallets.new(dir)
|
@@ -47,10 +47,10 @@ class TestNode < Minitest::Test
|
|
47
47
|
remotes = Zold::Remotes.new(File.join(dir, 'remotes.csv'))
|
48
48
|
remotes.clean
|
49
49
|
remotes.add('localhost', port)
|
50
|
-
Zold::Push.new(wallets: wallets, remotes: remotes, log:
|
50
|
+
Zold::Push.new(wallets: wallets, remotes: remotes, log: log).run(['push', '--sync'])
|
51
51
|
Zold::Fetch.new(
|
52
52
|
wallets: wallets, copies: File.join(dir, 'copies'),
|
53
|
-
remotes: remotes, log:
|
53
|
+
remotes: remotes, log: log
|
54
54
|
).run(['fetch'])
|
55
55
|
copies = Zold::Copies.new(File.join(dir, "copies/#{id}"))
|
56
56
|
assert_equal(1, copies.all.count)
|
data/test/commands/test_pay.rb
CHANGED
@@ -37,7 +37,7 @@ class TestPay < Minitest::Test
|
|
37
37
|
source = home.create_wallet
|
38
38
|
target = home.create_wallet
|
39
39
|
amount = Zold::Amount.new(zld: 14.95)
|
40
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
40
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
41
41
|
[
|
42
42
|
'pay', '--force', '--private-key=fixtures/id_rsa',
|
43
43
|
source.id.to_s, target.id.to_s, amount.to_zld, 'For the car'
|
@@ -52,7 +52,7 @@ class TestPay < Minitest::Test
|
|
52
52
|
source = home.create_wallet(Zold::Id::ROOT)
|
53
53
|
target = home.create_wallet
|
54
54
|
amount = Zold::Amount.new(zld: 14.95)
|
55
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
55
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
56
56
|
[
|
57
57
|
'pay', '--private-key=fixtures/id_rsa',
|
58
58
|
source.id.to_s, target.id.to_s, amount.to_zld, 'For the car'
|
@@ -73,7 +73,7 @@ class TestPay < Minitest::Test
|
|
73
73
|
'NOPREFIX', Zold::Id.new, '-'
|
74
74
|
)
|
75
75
|
)
|
76
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
76
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
77
77
|
[
|
78
78
|
'pay', '--private-key=fixtures/id_rsa',
|
79
79
|
source.id.to_s, target.id.to_s, amount.to_zld, 'here is the refund'
|
data/test/commands/test_push.rb
CHANGED
@@ -38,7 +38,7 @@ class TestPush < Minitest::Test
|
|
38
38
|
FakeHome.new.run do |home|
|
39
39
|
wallet = home.create_wallet
|
40
40
|
stub_request(:put, "http://fake-1/wallet/#{wallet.id}").to_return(status: 304)
|
41
|
-
Zold::Push.new(wallets: home.wallets, remotes: home.remotes, log:
|
41
|
+
Zold::Push.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
42
42
|
['--ignore-this-stupid-option', 'push', wallet.id.to_s]
|
43
43
|
)
|
44
44
|
end
|
@@ -59,7 +59,7 @@ class TestRemote < Minitest::Test
|
|
59
59
|
stub_request(:get, 'http://localhost:999/remotes').to_return(
|
60
60
|
status: 404
|
61
61
|
)
|
62
|
-
cmd = Zold::Remote.new(remotes: remotes, log:
|
62
|
+
cmd = Zold::Remote.new(remotes: remotes, log: log)
|
63
63
|
cmd.run(%w[remote clean])
|
64
64
|
cmd.run(['remote', 'add', zero.host, zero.port.to_s])
|
65
65
|
cmd.run(%w[remote add localhost 2])
|
data/test/commands/test_show.rb
CHANGED
@@ -38,7 +38,7 @@ class TestShow < Minitest::Test
|
|
38
38
|
wallets = Zold::Wallets.new(dir)
|
39
39
|
wallet = wallets.find(id)
|
40
40
|
wallet.init(Zold::Id.new, Zold::Key.new(file: 'fixtures/id_rsa.pub'))
|
41
|
-
balance = Zold::Show.new(wallets: wallets, log:
|
41
|
+
balance = Zold::Show.new(wallets: wallets, log: log).run(['show', id.to_s])
|
42
42
|
assert_equal(Zold::Amount::ZERO, balance)
|
43
43
|
end
|
44
44
|
end
|
data/test/commands/test_taxes.rb
CHANGED
@@ -59,7 +59,7 @@ class TestTaxes < Minitest::Test
|
|
59
59
|
}.to_json
|
60
60
|
)
|
61
61
|
Zold::Taxes.new(
|
62
|
-
wallets: wallets, remotes: remotes, log:
|
62
|
+
wallets: wallets, remotes: remotes, log: log
|
63
63
|
).run(['taxes', '--private-key=fixtures/id_rsa', id.to_s])
|
64
64
|
assert_equal(Zold::Amount.new(coins: 85_856_396_247), wallet.balance)
|
65
65
|
end
|
data/test/node/test_emission.rb
CHANGED
@@ -36,7 +36,7 @@ class EmissionTest < Minitest::Test
|
|
36
36
|
'NOPREFIX', Zold::Id::ROOT, '-'
|
37
37
|
)
|
38
38
|
)
|
39
|
-
|
39
|
+
log.info("Year: #{year}, Quota: #{(Zold::Emission.new(wallet).quota * 100).round(2)}%, \
|
40
40
|
Limit: #{Zold::Emission.new(wallet).limit}")
|
41
41
|
end
|
42
42
|
end
|
data/test/node/test_entrance.rb
CHANGED
@@ -40,7 +40,7 @@ class TestEntrance < Minitest::Test
|
|
40
40
|
body = FakeHome.new.run do |home|
|
41
41
|
source = home.create_wallet(sid)
|
42
42
|
target = home.create_wallet(tid)
|
43
|
-
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log:
|
43
|
+
Zold::Pay.new(wallets: home.wallets, remotes: home.remotes, log: log).run(
|
44
44
|
[
|
45
45
|
'pay', '--force', '--private-key=fixtures/id_rsa',
|
46
46
|
source.id.to_s, target.id.to_s, '19.99', 'testing'
|
@@ -51,7 +51,7 @@ class TestEntrance < Minitest::Test
|
|
51
51
|
FakeHome.new.run do |home|
|
52
52
|
source = home.create_wallet(sid)
|
53
53
|
home.create_wallet(tid)
|
54
|
-
modified = Zold::Entrance.new(home.wallets, home.remotes, home.copies(source).root, 'x', log:
|
54
|
+
modified = Zold::Entrance.new(home.wallets, home.remotes, home.copies(source).root, 'x', log: log).push(
|
55
55
|
source.id, body
|
56
56
|
)
|
57
57
|
assert_equal(2, modified.count)
|
data/test/node/test_farm.rb
CHANGED
@@ -28,7 +28,7 @@ require_relative '../../lib/zold/node/farm'
|
|
28
28
|
class FarmTest < Minitest::Test
|
29
29
|
def test_makes_best_score_in_background
|
30
30
|
Dir.mktmpdir 'test' do |dir|
|
31
|
-
farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff', File.join(dir, 'f'), log:
|
31
|
+
farm = Zold::Farm.new('NOPREFIX@ffffffffffffffff', File.join(dir, 'f'), log: log)
|
32
32
|
farm.start('localhost', 80, threads: 4, strength: 2)
|
33
33
|
sleep 0.1 while farm.best.empty? || farm.best[0].value.zero?
|
34
34
|
assert(farm.best[0].value > 0)
|
@@ -38,7 +38,7 @@ class FarmTest < Minitest::Test
|
|
38
38
|
|
39
39
|
def test_correct_score_from_empty_farm
|
40
40
|
Dir.mktmpdir 'test' do |dir|
|
41
|
-
farm = Zold::Farm.new('NOPREFIX@cccccccccccccccc', File.join(dir, 'f'), log:
|
41
|
+
farm = Zold::Farm.new('NOPREFIX@cccccccccccccccc', File.join(dir, 'f'), log: log)
|
42
42
|
farm.start('example.com', 8080, threads: 0, strength: 1)
|
43
43
|
score = farm.best[0]
|
44
44
|
assert_equal(0, score.value)
|
data/test/node/test_front.rb
CHANGED
@@ -27,12 +27,11 @@ require_relative '../../lib/zold/score'
|
|
27
27
|
|
28
28
|
class FrontTest < Minitest::Test
|
29
29
|
def test_renders_public_pages
|
30
|
-
FakeNode.new(log:
|
30
|
+
FakeNode.new(log: log).run(['--ignore-score-weakness']) do |port|
|
31
31
|
{
|
32
32
|
'200' => [
|
33
33
|
'/robots.txt',
|
34
34
|
'/',
|
35
|
-
'/map.html',
|
36
35
|
'/remotes'
|
37
36
|
],
|
38
37
|
'404' => [
|
@@ -59,4 +58,39 @@ class FrontTest < Minitest::Test
|
|
59
58
|
assert(json['all'].find { |r| r['host'] == 'localhost' })
|
60
59
|
end
|
61
60
|
end
|
61
|
+
|
62
|
+
def test_different_logos
|
63
|
+
{
|
64
|
+
'0' => 'https://www.zold.io/images/logo-red.png',
|
65
|
+
'4' => 'https://www.zold.io/images/logo-orange.png',
|
66
|
+
'16' => 'https://www.zold.io/images/logo-green.png'
|
67
|
+
}.each do |num, path|
|
68
|
+
log.info("Calculating score #{num}...")
|
69
|
+
score = Zold::Score.new(
|
70
|
+
Time.now, 'localhost', 999,
|
71
|
+
'NOPREFIX@ffffffffffffffff',
|
72
|
+
strength: 1
|
73
|
+
)
|
74
|
+
num.to_i.times do
|
75
|
+
score = score.next
|
76
|
+
end
|
77
|
+
log.info("Score #{num} calculated.")
|
78
|
+
if score.value >= 16
|
79
|
+
assert_equal(
|
80
|
+
path, 'https://www.zold.io/images/logo-green.png',
|
81
|
+
"Expected #{path} for score #{score.value}"
|
82
|
+
)
|
83
|
+
elsif score.value >= 4
|
84
|
+
assert_equal(
|
85
|
+
path, 'https://www.zold.io/images/logo-orange.png',
|
86
|
+
"Expected #{path} for score #{score.value}"
|
87
|
+
)
|
88
|
+
else
|
89
|
+
assert_equal(
|
90
|
+
path, 'https://www.zold.io/images/logo-red.png',
|
91
|
+
"Expected #{path} for score #{score.value}"
|
92
|
+
)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
62
96
|
end
|
data/test/test__helper.rb
CHANGED
@@ -30,11 +30,17 @@ if ENV['CI'] == 'true'
|
|
30
30
|
end
|
31
31
|
|
32
32
|
require_relative '../lib/zold/log'
|
33
|
-
# $log = Zold::Log::Quiet.new
|
34
|
-
$log = Zold::Log::Verbose.new
|
35
33
|
|
36
34
|
require 'minitest/autorun'
|
37
35
|
require_relative '../lib/zold'
|
38
36
|
|
39
37
|
gem 'openssl'
|
40
38
|
require 'openssl'
|
39
|
+
|
40
|
+
require_relative 'support/logs'
|
41
|
+
|
42
|
+
module Minitest
|
43
|
+
class Test
|
44
|
+
include Logs
|
45
|
+
end
|
46
|
+
end
|
data/test/test_remotes.rb
CHANGED
data/test/test_zold.rb
CHANGED
data/zold.gemspec
CHANGED
@@ -42,21 +42,22 @@ Gem::Specification.new do |s|
|
|
42
42
|
s.test_files = s.files.grep(%r{^(test|spec|features|wp)/})
|
43
43
|
s.rdoc_options = ['--charset=UTF-8']
|
44
44
|
s.extra_rdoc_files = ['README.md', 'LICENSE.txt']
|
45
|
-
s.add_runtime_dependency 'concurrent-ruby', '1.0.5'
|
46
|
-
s.add_runtime_dependency '
|
47
|
-
s.add_runtime_dependency '
|
48
|
-
s.add_runtime_dependency 'openssl', '2.
|
45
|
+
s.add_runtime_dependency 'concurrent-ruby', '~>1.0.5'
|
46
|
+
s.add_runtime_dependency 'diffy', '~>3.2.0'
|
47
|
+
s.add_runtime_dependency 'json', '~>1.8.6'
|
48
|
+
s.add_runtime_dependency 'openssl', '~>2.1.1'
|
49
49
|
s.add_runtime_dependency 'rainbow', '~>3.0'
|
50
|
-
s.add_runtime_dependency '
|
51
|
-
s.add_runtime_dependency 'rubocop', '~>0.52.0'
|
52
|
-
s.add_runtime_dependency 'rubocop-rspec', '1.5.1'
|
53
|
-
s.add_runtime_dependency 'semantic', '~>1.5.0'
|
50
|
+
s.add_runtime_dependency 'semantic', '~>1.6.1'
|
54
51
|
s.add_runtime_dependency 'sinatra', '~>2.0.1'
|
55
52
|
s.add_runtime_dependency 'slop', '~>4.4'
|
56
53
|
s.add_runtime_dependency 'xcop', '~>0.5'
|
57
54
|
s.add_development_dependency 'codecov', '0.1.10'
|
58
|
-
s.add_development_dependency '
|
55
|
+
s.add_development_dependency 'cucumber', '3.1.1'
|
56
|
+
s.add_development_dependency 'minitest', '5.11.3'
|
57
|
+
s.add_development_dependency 'rake', '12.3.1'
|
59
58
|
s.add_development_dependency 'rdoc', '4.2.0'
|
60
59
|
s.add_development_dependency 'rspec-rails', '3.1.0'
|
61
|
-
s.add_development_dependency '
|
60
|
+
s.add_development_dependency 'rubocop', '0.52.0'
|
61
|
+
s.add_development_dependency 'rubocop-rspec'
|
62
|
+
s.add_development_dependency 'webmock', '3.4.2'
|
62
63
|
end
|
metadata
CHANGED
@@ -1,141 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zold
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.20
|
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-06-
|
11
|
+
date: 2018-06-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: concurrent-ruby
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.0.5
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 1.0.5
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: cucumber
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - '='
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: 1.3.17
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - '='
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: 1.3.17
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: diffy
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
44
30
|
requirements:
|
45
|
-
- -
|
31
|
+
- - "~>"
|
46
32
|
- !ruby/object:Gem::Version
|
47
33
|
version: 3.2.0
|
48
34
|
type: :runtime
|
49
35
|
prerelease: false
|
50
36
|
version_requirements: !ruby/object:Gem::Requirement
|
51
37
|
requirements:
|
52
|
-
- -
|
38
|
+
- - "~>"
|
53
39
|
- !ruby/object:Gem::Version
|
54
40
|
version: 3.2.0
|
55
41
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
57
|
-
requirement: !ruby/object:Gem::Requirement
|
58
|
-
requirements:
|
59
|
-
- - '='
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
version: 2.0.1
|
62
|
-
type: :runtime
|
63
|
-
prerelease: false
|
64
|
-
version_requirements: !ruby/object:Gem::Requirement
|
65
|
-
requirements:
|
66
|
-
- - '='
|
67
|
-
- !ruby/object:Gem::Version
|
68
|
-
version: 2.0.1
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: rainbow
|
42
|
+
name: json
|
71
43
|
requirement: !ruby/object:Gem::Requirement
|
72
44
|
requirements:
|
73
45
|
- - "~>"
|
74
46
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
47
|
+
version: 1.8.6
|
76
48
|
type: :runtime
|
77
49
|
prerelease: false
|
78
50
|
version_requirements: !ruby/object:Gem::Requirement
|
79
51
|
requirements:
|
80
52
|
- - "~>"
|
81
53
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
54
|
+
version: 1.8.6
|
83
55
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
85
|
-
requirement: !ruby/object:Gem::Requirement
|
86
|
-
requirements:
|
87
|
-
- - '='
|
88
|
-
- !ruby/object:Gem::Version
|
89
|
-
version: 12.0.0
|
90
|
-
type: :runtime
|
91
|
-
prerelease: false
|
92
|
-
version_requirements: !ruby/object:Gem::Requirement
|
93
|
-
requirements:
|
94
|
-
- - '='
|
95
|
-
- !ruby/object:Gem::Version
|
96
|
-
version: 12.0.0
|
97
|
-
- !ruby/object:Gem::Dependency
|
98
|
-
name: rubocop
|
56
|
+
name: openssl
|
99
57
|
requirement: !ruby/object:Gem::Requirement
|
100
58
|
requirements:
|
101
59
|
- - "~>"
|
102
60
|
- !ruby/object:Gem::Version
|
103
|
-
version:
|
61
|
+
version: 2.1.1
|
104
62
|
type: :runtime
|
105
63
|
prerelease: false
|
106
64
|
version_requirements: !ruby/object:Gem::Requirement
|
107
65
|
requirements:
|
108
66
|
- - "~>"
|
109
67
|
- !ruby/object:Gem::Version
|
110
|
-
version:
|
68
|
+
version: 2.1.1
|
111
69
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
70
|
+
name: rainbow
|
113
71
|
requirement: !ruby/object:Gem::Requirement
|
114
72
|
requirements:
|
115
|
-
- -
|
73
|
+
- - "~>"
|
116
74
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
75
|
+
version: '3.0'
|
118
76
|
type: :runtime
|
119
77
|
prerelease: false
|
120
78
|
version_requirements: !ruby/object:Gem::Requirement
|
121
79
|
requirements:
|
122
|
-
- -
|
80
|
+
- - "~>"
|
123
81
|
- !ruby/object:Gem::Version
|
124
|
-
version:
|
82
|
+
version: '3.0'
|
125
83
|
- !ruby/object:Gem::Dependency
|
126
84
|
name: semantic
|
127
85
|
requirement: !ruby/object:Gem::Requirement
|
128
86
|
requirements:
|
129
87
|
- - "~>"
|
130
88
|
- !ruby/object:Gem::Version
|
131
|
-
version: 1.
|
89
|
+
version: 1.6.1
|
132
90
|
type: :runtime
|
133
91
|
prerelease: false
|
134
92
|
version_requirements: !ruby/object:Gem::Requirement
|
135
93
|
requirements:
|
136
94
|
- - "~>"
|
137
95
|
- !ruby/object:Gem::Version
|
138
|
-
version: 1.
|
96
|
+
version: 1.6.1
|
139
97
|
- !ruby/object:Gem::Dependency
|
140
98
|
name: sinatra
|
141
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,20 +150,48 @@ dependencies:
|
|
192
150
|
- - '='
|
193
151
|
- !ruby/object:Gem::Version
|
194
152
|
version: 0.1.10
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: cucumber
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - '='
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: 3.1.1
|
160
|
+
type: :development
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - '='
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: 3.1.1
|
195
167
|
- !ruby/object:Gem::Dependency
|
196
168
|
name: minitest
|
197
169
|
requirement: !ruby/object:Gem::Requirement
|
198
170
|
requirements:
|
199
171
|
- - '='
|
200
172
|
- !ruby/object:Gem::Version
|
201
|
-
version: 5.
|
173
|
+
version: 5.11.3
|
174
|
+
type: :development
|
175
|
+
prerelease: false
|
176
|
+
version_requirements: !ruby/object:Gem::Requirement
|
177
|
+
requirements:
|
178
|
+
- - '='
|
179
|
+
- !ruby/object:Gem::Version
|
180
|
+
version: 5.11.3
|
181
|
+
- !ruby/object:Gem::Dependency
|
182
|
+
name: rake
|
183
|
+
requirement: !ruby/object:Gem::Requirement
|
184
|
+
requirements:
|
185
|
+
- - '='
|
186
|
+
- !ruby/object:Gem::Version
|
187
|
+
version: 12.3.1
|
202
188
|
type: :development
|
203
189
|
prerelease: false
|
204
190
|
version_requirements: !ruby/object:Gem::Requirement
|
205
191
|
requirements:
|
206
192
|
- - '='
|
207
193
|
- !ruby/object:Gem::Version
|
208
|
-
version:
|
194
|
+
version: 12.3.1
|
209
195
|
- !ruby/object:Gem::Dependency
|
210
196
|
name: rdoc
|
211
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -234,20 +220,48 @@ dependencies:
|
|
234
220
|
- - '='
|
235
221
|
- !ruby/object:Gem::Version
|
236
222
|
version: 3.1.0
|
223
|
+
- !ruby/object:Gem::Dependency
|
224
|
+
name: rubocop
|
225
|
+
requirement: !ruby/object:Gem::Requirement
|
226
|
+
requirements:
|
227
|
+
- - '='
|
228
|
+
- !ruby/object:Gem::Version
|
229
|
+
version: 0.52.0
|
230
|
+
type: :development
|
231
|
+
prerelease: false
|
232
|
+
version_requirements: !ruby/object:Gem::Requirement
|
233
|
+
requirements:
|
234
|
+
- - '='
|
235
|
+
- !ruby/object:Gem::Version
|
236
|
+
version: 0.52.0
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: rubocop-rspec
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - ">="
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - ">="
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
237
251
|
- !ruby/object:Gem::Dependency
|
238
252
|
name: webmock
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
240
254
|
requirements:
|
241
255
|
- - '='
|
242
256
|
- !ruby/object:Gem::Version
|
243
|
-
version: 3.4.
|
257
|
+
version: 3.4.2
|
244
258
|
type: :development
|
245
259
|
prerelease: false
|
246
260
|
version_requirements: !ruby/object:Gem::Requirement
|
247
261
|
requirements:
|
248
262
|
- - '='
|
249
263
|
- !ruby/object:Gem::Version
|
250
|
-
version: 3.4.
|
264
|
+
version: 3.4.2
|
251
265
|
description: Non-blockchain cryptocurrency
|
252
266
|
email: yegor256@gmail.com
|
253
267
|
executables:
|
@@ -291,7 +305,6 @@ files:
|
|
291
305
|
- fixtures/scripts/calculate-scores.sh
|
292
306
|
- fixtures/scripts/print-helps.sh
|
293
307
|
- fixtures/scripts/push-and-pull.sh
|
294
|
-
- html/map.html
|
295
308
|
- lib/zold.rb
|
296
309
|
- lib/zold/amount.rb
|
297
310
|
- lib/zold/commands/args.rb
|
@@ -353,6 +366,7 @@ files:
|
|
353
366
|
- test/node/test_entrance.rb
|
354
367
|
- test/node/test_farm.rb
|
355
368
|
- test/node/test_front.rb
|
369
|
+
- test/support/logs.rb
|
356
370
|
- test/test__helper.rb
|
357
371
|
- test/test_amount.rb
|
358
372
|
- test/test_copies.rb
|
@@ -422,6 +436,7 @@ test_files:
|
|
422
436
|
- test/node/test_entrance.rb
|
423
437
|
- test/node/test_farm.rb
|
424
438
|
- test/node/test_front.rb
|
439
|
+
- test/support/logs.rb
|
425
440
|
- test/test__helper.rb
|
426
441
|
- test/test_amount.rb
|
427
442
|
- test/test_copies.rb
|
data/html/map.html
DELETED
@@ -1,139 +0,0 @@
|
|
1
|
-
<?xml version="1.0"?>
|
2
|
-
<!--
|
3
|
-
(The MIT License)
|
4
|
-
|
5
|
-
Copyright (c) 2018 Yegor Bugayenko
|
6
|
-
|
7
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
|
-
of this software and associated documentation files (the 'Software'), to deal
|
9
|
-
in the Software without restriction, including without limitation the rights
|
10
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
11
|
-
copies of the Software, and to permit persons to whom the Software is
|
12
|
-
furnished to do so, subject to the following conditions:
|
13
|
-
|
14
|
-
The above copyright notice and this permission notice shall be included in all
|
15
|
-
copies or substantial portions of the Software.
|
16
|
-
|
17
|
-
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
18
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
19
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
20
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
21
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
22
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
23
|
-
SOFTWARE.
|
24
|
-
-->
|
25
|
-
<!DOCTYPE html>
|
26
|
-
<html>
|
27
|
-
<head>
|
28
|
-
<meta charset="utf-8"/>
|
29
|
-
<title>Zold nodes map</title>
|
30
|
-
<meta name="description" content="Full map of visible Zold nodes"/>
|
31
|
-
<meta name="keywords" content="zerocracy, management, robotocracy, meritocracy"/>
|
32
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
33
|
-
<link rel="shortcut icon" href="https://www.zold.io/logo.png"/>
|
34
|
-
<script src="https://maps.google.com/maps/api/js?key=AIzaSyArj6RePmR3DAAF7Tx9nK9UvO5exPStHu8">
|
35
|
-
// Should be empty
|
36
|
-
</script>
|
37
|
-
<script src="https://code.jquery.com/jquery-3.3.1.min.js">
|
38
|
-
// Should be empty
|
39
|
-
</script>
|
40
|
-
<style>
|
41
|
-
* { box-sizing: border-box; margin: 0; padding: 0; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; }
|
42
|
-
html { height: 100% }
|
43
|
-
body { height: 100%; }
|
44
|
-
#container { width: 100%; height: 100% }
|
45
|
-
#map { width: 80%; height: 100%; display: inline-block; }
|
46
|
-
#nodes { width: 20%; height: 100%; background-color: #f5f5f5; float: right; padding: 1em; }
|
47
|
-
#logo { position: absolute; bottom: 1em; right: 1em; width: 48px; height: 48px; }
|
48
|
-
#remotes { margin-top: 1em; }
|
49
|
-
#remotes li { list-style: none; }
|
50
|
-
</style>
|
51
|
-
<script>
|
52
|
-
function put_marker_by_ip(map, coords, ip, port) {
|
53
|
-
$.getJSON('http://www.geoplugin.net/json.gp?ip=' + ip, function(json) {
|
54
|
-
var lat = parseFloat(json['geoplugin_latitude']), lon = parseFloat(json['geoplugin_longitude']);
|
55
|
-
console.log(ip + ' located at ' + lat + '/' + lon);
|
56
|
-
new google.maps.Marker({
|
57
|
-
position: { lat: lat, lng: lon },
|
58
|
-
map: map,
|
59
|
-
title: coords
|
60
|
-
});
|
61
|
-
console.log('Marker set for ' + coords + ' at ' + lat + '/' + lon);
|
62
|
-
}).fail(function() { console.log('Failed to find geo-location for ' + ip) });
|
63
|
-
}
|
64
|
-
function put_marker_by_host(map, coords, host, port) {
|
65
|
-
$.getJSON('https://api.exana.io/dns/' + host + '/a', function(json) {
|
66
|
-
ip = $.grep(json['answer'], function (a, i) { return a['type'] == 'A'; })[0]['rdata'];
|
67
|
-
console.log('Host ' + host + ' resolved to ' + ip);
|
68
|
-
put_marker_by_ip(map, coords, ip, port);
|
69
|
-
}).fail(function() { console.log('Failed to find IP for ' + host) });
|
70
|
-
}
|
71
|
-
function put_markers(map, remotes) {
|
72
|
-
$.each(remotes, function (i, r) {
|
73
|
-
var host = r['host'], port = r['port'];
|
74
|
-
var coords = host + ':' + port;
|
75
|
-
var items = $('#remotes li[data-coords="' + coords + '"]');
|
76
|
-
if (items.length) {
|
77
|
-
var li = items.first();
|
78
|
-
$.getJSON('http://' + coords + '/', function(json) {
|
79
|
-
li.html(coords + ': ' + json['score']['value'] + '/' + json['wallets'] + ' (' + json['version'] + ')');
|
80
|
-
if (host.match(/^[0-9\.]+$/)) {
|
81
|
-
put_marker_by_ip(map, host + ':' + port, host, port);
|
82
|
-
} else {
|
83
|
-
put_marker_by_host(map, host + ':' + port, host, port);
|
84
|
-
}
|
85
|
-
}).done(function() { li.css('color', 'darkgreen'); }).fail(function() { li.css('color', 'red'); });
|
86
|
-
} else {
|
87
|
-
$('#remotes').append('<li data-coords="' + coords + '">' + coords + '</li>')
|
88
|
-
}
|
89
|
-
});
|
90
|
-
}
|
91
|
-
function refresh_list(map) {
|
92
|
-
$.getJSON('http://b1.zold.io/remotes', function(data) {
|
93
|
-
var remotes = data['all'];
|
94
|
-
console.log(remotes.length + ' remote nodes found');
|
95
|
-
put_markers(map, remotes);
|
96
|
-
});
|
97
|
-
}
|
98
|
-
function refresh(map) {
|
99
|
-
$.getJSON('http://b1.zold.io/', function(data) {
|
100
|
-
$('#header').html(
|
101
|
-
'Version: ' + data['version'] + '<br/>' +
|
102
|
-
'Host: ' + data['score']['host'] + ':' + data['score']['port'] + '<br/>' +
|
103
|
-
'Score: ' + data['score']['value'] + '<br/>' +
|
104
|
-
'Wallets: ' + data['wallets']
|
105
|
-
);
|
106
|
-
refresh_list(map);
|
107
|
-
window.setTimeout(refresh, 10000);
|
108
|
-
});
|
109
|
-
}
|
110
|
-
function init() {
|
111
|
-
var map = new google.maps.Map(
|
112
|
-
document.getElementById("map"),
|
113
|
-
{
|
114
|
-
center: new google.maps.LatLng(55.751244, 37.618423),
|
115
|
-
mapTypeId: google.maps.MapTypeId.ROADMAP,
|
116
|
-
zoom: 3
|
117
|
-
}
|
118
|
-
);
|
119
|
-
refresh(map);
|
120
|
-
};
|
121
|
-
</script>
|
122
|
-
</head>
|
123
|
-
<body onload="init();">
|
124
|
-
<div id="container">
|
125
|
-
<div id="map">
|
126
|
-
<!-- Empty on start -->
|
127
|
-
</div>
|
128
|
-
<div id="nodes">
|
129
|
-
<div id="header">
|
130
|
-
<!-- Empty on start -->
|
131
|
-
</div>
|
132
|
-
<ul id="remotes">
|
133
|
-
<!-- Empty on start -->
|
134
|
-
</ul>
|
135
|
-
</div>
|
136
|
-
<img id="logo" src="https://www.zold.io/logo.svg"/>
|
137
|
-
</div>
|
138
|
-
</body>
|
139
|
-
</html>
|