radiator 0.3.0dev5 → 0.3.0dev6
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 +4 -4
- data/Gemfile.lock +14 -16
- data/README.md +2 -0
- data/lib/radiator.rb +2 -0
- data/lib/radiator/api.rb +17 -6
- data/lib/radiator/block_api.rb +14 -0
- data/lib/radiator/condenser_api.rb +25 -0
- data/lib/radiator/stream.rb +29 -13
- data/lib/radiator/tag_api.rb +23 -1
- data/lib/radiator/version.rb +1 -1
- data/radiator.gemspec +4 -4
- metadata +16 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8803f44d2a11ce39405501770a010b630293b59d
|
4
|
+
data.tar.gz: 0a6b77288fe61ba6f3f0fb876c3e2fb87ae62043
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8f425356209ba6b4fffc261b01959bce1d10130b5fec58ba76b126409bda7e6fa55065c09212acab5a65208a02974ae6a7d8d11e4f740554e6e7ce59780d155c
|
7
|
+
data.tar.gz: e547e2ec25f5b756748becabb856bdfb72e64ccb04389ca868b21a4c65dd322bcef90d97562ccca237f8c6fa37fe08755cfac18843d3af0fbdcfa9607f813c37
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
radiator (0.3.
|
4
|
+
radiator (0.3.0dev6)
|
5
5
|
bitcoin-ruby (= 0.0.11)
|
6
6
|
ffi (= 1.9.18)
|
7
7
|
hashie (~> 3.5, >= 3.5.5)
|
@@ -29,39 +29,37 @@ GEM
|
|
29
29
|
ffi (1.9.18)
|
30
30
|
hashdiff (0.3.6)
|
31
31
|
hashie (3.5.6)
|
32
|
-
json (2.0
|
32
|
+
json (2.1.0)
|
33
33
|
little-plugger (1.1.4)
|
34
34
|
logging (2.2.2)
|
35
35
|
little-plugger (~> 1.1)
|
36
36
|
multi_json (~> 1.10)
|
37
|
-
method_source (0.
|
37
|
+
method_source (0.9.0)
|
38
38
|
minitest (5.10.3)
|
39
39
|
minitest-line (0.6.4)
|
40
40
|
minitest (~> 5.0)
|
41
41
|
multi_json (1.12.2)
|
42
42
|
multipart-post (2.0.0)
|
43
43
|
net-http-persistent (2.9.4)
|
44
|
-
pry (0.
|
44
|
+
pry (0.11.1)
|
45
45
|
coderay (~> 1.1.0)
|
46
|
-
method_source (~> 0.
|
47
|
-
|
48
|
-
|
49
|
-
rake (11.3.0)
|
46
|
+
method_source (~> 0.9.0)
|
47
|
+
public_suffix (2.0.5)
|
48
|
+
rake (12.1.0)
|
50
49
|
safe_yaml (1.0.4)
|
51
50
|
simplecov (0.15.1)
|
52
51
|
docile (~> 1.1.0)
|
53
52
|
json (>= 1.8, < 3)
|
54
53
|
simplecov-html (~> 0.10.0)
|
55
54
|
simplecov-html (0.10.2)
|
56
|
-
slop (3.6.0)
|
57
55
|
typhoeus (1.3.0)
|
58
56
|
ethon (>= 0.9.0)
|
59
|
-
vcr (
|
60
|
-
webmock (2.
|
57
|
+
vcr (3.0.3)
|
58
|
+
webmock (2.1.0)
|
61
59
|
addressable (>= 2.3.6)
|
62
60
|
crack (>= 0.3.2)
|
63
61
|
hashdiff
|
64
|
-
yard (0.
|
62
|
+
yard (0.9.9)
|
65
63
|
|
66
64
|
PLATFORMS
|
67
65
|
ruby
|
@@ -73,14 +71,14 @@ DEPENDENCIES
|
|
73
71
|
faraday (~> 0.9.2)
|
74
72
|
minitest (~> 5.9, >= 5.9.0)
|
75
73
|
minitest-line (~> 0.6.3)
|
76
|
-
pry (~> 0.
|
74
|
+
pry (~> 0.11.1)
|
77
75
|
radiator!
|
78
|
-
rake (~>
|
76
|
+
rake (~> 12.1, >= 12.1.0)
|
79
77
|
simplecov (~> 0.15.1)
|
80
78
|
typhoeus (~> 1.0, >= 1.0.2)
|
81
|
-
vcr (~>
|
79
|
+
vcr (~> 3.0, >= 3.0.3)
|
82
80
|
webmock (~> 2.1, >= 2.1.0)
|
83
|
-
yard (~> 0.
|
81
|
+
yard (~> 0.9.9)
|
84
82
|
|
85
83
|
BUNDLED WITH
|
86
84
|
1.15.4
|
data/README.md
CHANGED
data/lib/radiator.rb
CHANGED
@@ -23,6 +23,8 @@ module Radiator
|
|
23
23
|
require 'radiator/network_broadcast_api'
|
24
24
|
require 'radiator/chain_stats_api'
|
25
25
|
require 'radiator/account_by_key_api'
|
26
|
+
require 'radiator/condenser_api'
|
27
|
+
require 'radiator/block_api'
|
26
28
|
require 'radiator/stream'
|
27
29
|
require 'radiator/operation_ids'
|
28
30
|
require 'radiator/operation_types'
|
data/lib/radiator/api.rb
CHANGED
@@ -135,7 +135,6 @@ module Radiator
|
|
135
135
|
|
136
136
|
DEFAULT_FAILOVER_URLS = [
|
137
137
|
DEFAULT_URL,
|
138
|
-
'https://steemd.steemitdev.com',
|
139
138
|
'https://steemd-int.steemit.com',
|
140
139
|
'https://steemd.steemitstage.com',
|
141
140
|
'https://gtg.steem.house:8090',
|
@@ -167,13 +166,19 @@ module Radiator
|
|
167
166
|
@password = options[:password]
|
168
167
|
@url = options[:url] || DEFAULT_URL
|
169
168
|
@preferred_url = @url.dup
|
170
|
-
@failover_urls = options[:failover_urls]
|
171
|
-
@preferred_failover_urls = @failover_urls.dup
|
169
|
+
@failover_urls = options[:failover_urls]
|
172
170
|
@debug = !!options[:debug]
|
173
171
|
@logger = options[:logger] || Radiator.logger
|
174
172
|
@hashie_logger = options[:hashie_logger] || Logger.new(nil)
|
175
173
|
@max_requests = options[:max_requests] || 30
|
176
174
|
|
175
|
+
if @failover_urls.nil?
|
176
|
+
@failover_urls = DEFAULT_FAILOVER_URLS - [@url]
|
177
|
+
end
|
178
|
+
|
179
|
+
@failover_urls = [@failover_urls].flatten.compact
|
180
|
+
@preferred_failover_urls = @failover_urls.dup
|
181
|
+
|
177
182
|
unless @hashie_logger.respond_to? :warn
|
178
183
|
@hashie_logger = Logger.new(@hashie_logger)
|
179
184
|
end
|
@@ -213,11 +218,11 @@ module Radiator
|
|
213
218
|
|
214
219
|
if !!block
|
215
220
|
block_number.each do |i|
|
216
|
-
yield
|
221
|
+
yield block_api.get_block(i).result, i
|
217
222
|
end
|
218
223
|
else
|
219
224
|
block_number.map do |i|
|
220
|
-
|
225
|
+
block_api.get_block(i).result
|
221
226
|
end
|
222
227
|
end
|
223
228
|
end
|
@@ -311,6 +316,8 @@ module Radiator
|
|
311
316
|
@http = nil
|
312
317
|
@api.shutdown if !!@api && @api != self
|
313
318
|
@api = nil
|
319
|
+
@block_api.shutdown if !!@block_api && @block_api != self
|
320
|
+
@block_api = nil
|
314
321
|
end
|
315
322
|
|
316
323
|
# @private
|
@@ -450,7 +457,11 @@ module Radiator
|
|
450
457
|
def api
|
451
458
|
@api ||= self.class == Api ? self : Api.new(@api_options)
|
452
459
|
end
|
453
|
-
|
460
|
+
|
461
|
+
def block_api
|
462
|
+
@block_api ||= self.class == BlockApi ? self : BlockApi.new(@api_options)
|
463
|
+
end
|
464
|
+
|
454
465
|
def rpc_id
|
455
466
|
@rpc_id ||= 0
|
456
467
|
@rpc_id = @rpc_id + 1
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module Radiator
|
2
|
+
class CondenserApi < Api
|
3
|
+
def method_names
|
4
|
+
@method_names ||= [
|
5
|
+
:get_state,
|
6
|
+
:get_next_scheduled_hardfork,
|
7
|
+
:get_reward_fund,
|
8
|
+
:get_accounts,
|
9
|
+
:lookup_account_names,
|
10
|
+
:lookup_accounts,
|
11
|
+
:get_account_count,
|
12
|
+
:get_savings_withdraw_to,
|
13
|
+
:get_witnesses,
|
14
|
+
:get_witness_count,
|
15
|
+
:get_open_orders,
|
16
|
+
:get_account_votes,
|
17
|
+
:lookup_witness_accounts
|
18
|
+
].freeze
|
19
|
+
end
|
20
|
+
|
21
|
+
def api_name
|
22
|
+
:condenser_api
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/radiator/stream.rb
CHANGED
@@ -225,8 +225,9 @@ module Radiator
|
|
225
225
|
head_block = api.get_dynamic_global_properties do |properties|
|
226
226
|
if properties.head_block_number.nil?
|
227
227
|
# This can happen if a reverse proxy is acting up.
|
228
|
-
|
229
|
-
|
228
|
+
standby "Bad block sequence after height: #{latest_block_number}", {
|
229
|
+
and: {throw: :sequence}
|
230
|
+
}
|
230
231
|
end
|
231
232
|
|
232
233
|
case mode.to_sym
|
@@ -242,9 +243,9 @@ module Radiator
|
|
242
243
|
throw :sequence
|
243
244
|
elsif head_block < latest_block_number
|
244
245
|
# This can happen if a reverse proxy is acting up.
|
245
|
-
|
246
|
-
|
247
|
-
|
246
|
+
standby "Invalid block sequence at height: #{head_block}", {
|
247
|
+
and: {backoff: api, throw: :sequence}
|
248
|
+
}
|
248
249
|
end
|
249
250
|
|
250
251
|
start ||= head_block
|
@@ -253,7 +254,7 @@ module Radiator
|
|
253
254
|
if range.size > 400
|
254
255
|
# When the range is 400 blocks, the stream will be behind by about
|
255
256
|
# 20 minutes. Time to warn.
|
256
|
-
|
257
|
+
standby "Stream behind by #{range.size} blocks (about #{(range.size * 3) / 60.0} minutes)."
|
257
258
|
end
|
258
259
|
|
259
260
|
[*range].each do |n|
|
@@ -262,14 +263,16 @@ module Radiator
|
|
262
263
|
counter = 0
|
263
264
|
end
|
264
265
|
|
265
|
-
|
266
|
+
block_api.get_block(n) do |current_block, error|
|
266
267
|
if current_block.nil?
|
267
|
-
|
268
|
-
|
268
|
+
standby "Node responded with: empty block, retrying ...", {
|
269
|
+
and: {throw: :sequence}
|
270
|
+
}
|
269
271
|
elsif !!error
|
270
|
-
|
271
|
-
|
272
|
-
|
272
|
+
standby "Node responded with: #{error.message || 'unknown error'}, retrying ...", {
|
273
|
+
error: error,
|
274
|
+
and: {throw: :sequence}
|
275
|
+
}
|
273
276
|
end
|
274
277
|
|
275
278
|
latest_block_number = n
|
@@ -397,5 +400,18 @@ module Radiator
|
|
397
400
|
|
398
401
|
(Radiator::OperationTypes::TYPES.keys && type).any?
|
399
402
|
end
|
403
|
+
|
404
|
+
def standby(message, options = {})
|
405
|
+
error = options[:error]
|
406
|
+
secondary = options[:and] || {}
|
407
|
+
backoff_api = secondary[:backoff]
|
408
|
+
throwable = secondary[:throw]
|
409
|
+
|
410
|
+
warning message
|
411
|
+
|
412
|
+
ap error if !!error
|
413
|
+
backoff_api.send :backoff if !!backoff_api
|
414
|
+
throw throwable if !!throwable
|
415
|
+
end
|
400
416
|
end
|
401
|
-
end
|
417
|
+
end
|
data/lib/radiator/tag_api.rb
CHANGED
@@ -1,7 +1,29 @@
|
|
1
1
|
module Radiator
|
2
2
|
class TagApi < Api
|
3
3
|
def method_names
|
4
|
-
@method_names ||= [
|
4
|
+
@method_names ||= [
|
5
|
+
:get_tags, # deprecated
|
6
|
+
:get_trending_tags,
|
7
|
+
:get_tags_used_by_author,
|
8
|
+
:get_discussion,
|
9
|
+
:get_content_replies,
|
10
|
+
:get_post_discussions_by_payout,
|
11
|
+
:get_comment_discussions_by_payout,
|
12
|
+
:get_discussions_by_trending,
|
13
|
+
:get_discussions_by_created,
|
14
|
+
:get_discussions_by_active,
|
15
|
+
:get_discussions_by_cashout,
|
16
|
+
:get_discussions_by_votes,
|
17
|
+
:get_discussions_by_children,
|
18
|
+
:get_discussions_by_hot,
|
19
|
+
:get_discussions_by_feed,
|
20
|
+
:get_discussions_by_blog,
|
21
|
+
:get_discussions_by_comments,
|
22
|
+
:get_discussions_by_promoted,
|
23
|
+
:get_replies_by_last_update,
|
24
|
+
:get_discussions_by_author_before_date,
|
25
|
+
:get_active_votes
|
26
|
+
].freeze
|
5
27
|
end
|
6
28
|
|
7
29
|
def api_name
|
data/lib/radiator/version.rb
CHANGED
data/radiator.gemspec
CHANGED
@@ -18,17 +18,17 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.require_paths = ['lib']
|
19
19
|
|
20
20
|
spec.add_development_dependency 'bundler', '~> 1.15', '>= 1.15.4'
|
21
|
-
spec.add_development_dependency 'rake', '~>
|
21
|
+
spec.add_development_dependency 'rake', '~> 12.1', '>= 12.1.0'
|
22
22
|
spec.add_development_dependency 'minitest', '~> 5.9', '>= 5.9.0'
|
23
23
|
spec.add_development_dependency 'minitest-line', '~> 0.6.3'
|
24
24
|
spec.add_development_dependency 'webmock', '~> 2.1', '>= 2.1.0'
|
25
25
|
spec.add_development_dependency 'simplecov', '~> 0.15.1'
|
26
26
|
spec.add_development_dependency 'codeclimate-test-reporter', '~> 0.5.2'
|
27
|
-
spec.add_development_dependency 'vcr', '~>
|
27
|
+
spec.add_development_dependency 'vcr', '~> 3.0', '>= 3.0.3'
|
28
28
|
spec.add_development_dependency 'faraday', '~> 0.9.2'
|
29
29
|
spec.add_development_dependency 'typhoeus', '~> 1.0', '>= 1.0.2'
|
30
|
-
spec.add_development_dependency 'yard', '~> 0.
|
31
|
-
spec.add_development_dependency 'pry', '~> 0.
|
30
|
+
spec.add_development_dependency 'yard', '~> 0.9.9'
|
31
|
+
spec.add_development_dependency 'pry', '~> 0.11.1'
|
32
32
|
spec.add_development_dependency 'awesome_print', '~> 1.7', '>= 1.7.0'
|
33
33
|
|
34
34
|
# Maximum for net-http-persistent is 2.9.4, required by ruby-2.0.0-p645, which
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radiator
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.0dev6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anthony Martin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-10-
|
11
|
+
date: 2017-10-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -36,20 +36,20 @@ dependencies:
|
|
36
36
|
requirements:
|
37
37
|
- - "~>"
|
38
38
|
- !ruby/object:Gem::Version
|
39
|
-
version: '
|
39
|
+
version: '12.1'
|
40
40
|
- - ">="
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
42
|
+
version: 12.1.0
|
43
43
|
type: :development
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - "~>"
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: '
|
49
|
+
version: '12.1'
|
50
50
|
- - ">="
|
51
51
|
- !ruby/object:Gem::Version
|
52
|
-
version:
|
52
|
+
version: 12.1.0
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: minitest
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -138,20 +138,20 @@ dependencies:
|
|
138
138
|
requirements:
|
139
139
|
- - "~>"
|
140
140
|
- !ruby/object:Gem::Version
|
141
|
-
version: '
|
141
|
+
version: '3.0'
|
142
142
|
- - ">="
|
143
143
|
- !ruby/object:Gem::Version
|
144
|
-
version:
|
144
|
+
version: 3.0.3
|
145
145
|
type: :development
|
146
146
|
prerelease: false
|
147
147
|
version_requirements: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
149
|
- - "~>"
|
150
150
|
- !ruby/object:Gem::Version
|
151
|
-
version: '
|
151
|
+
version: '3.0'
|
152
152
|
- - ">="
|
153
153
|
- !ruby/object:Gem::Version
|
154
|
-
version:
|
154
|
+
version: 3.0.3
|
155
155
|
- !ruby/object:Gem::Dependency
|
156
156
|
name: faraday
|
157
157
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,28 +192,28 @@ dependencies:
|
|
192
192
|
requirements:
|
193
193
|
- - "~>"
|
194
194
|
- !ruby/object:Gem::Version
|
195
|
-
version: 0.
|
195
|
+
version: 0.9.9
|
196
196
|
type: :development
|
197
197
|
prerelease: false
|
198
198
|
version_requirements: !ruby/object:Gem::Requirement
|
199
199
|
requirements:
|
200
200
|
- - "~>"
|
201
201
|
- !ruby/object:Gem::Version
|
202
|
-
version: 0.
|
202
|
+
version: 0.9.9
|
203
203
|
- !ruby/object:Gem::Dependency
|
204
204
|
name: pry
|
205
205
|
requirement: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
207
|
- - "~>"
|
208
208
|
- !ruby/object:Gem::Version
|
209
|
-
version: 0.
|
209
|
+
version: 0.11.1
|
210
210
|
type: :development
|
211
211
|
prerelease: false
|
212
212
|
version_requirements: !ruby/object:Gem::Requirement
|
213
213
|
requirements:
|
214
214
|
- - "~>"
|
215
215
|
- !ruby/object:Gem::Version
|
216
|
-
version: 0.
|
216
|
+
version: 0.11.1
|
217
217
|
- !ruby/object:Gem::Dependency
|
218
218
|
name: awesome_print
|
219
219
|
requirement: !ruby/object:Gem::Requirement
|
@@ -362,9 +362,11 @@ files:
|
|
362
362
|
- lib/radiator/account_by_key_api.rb
|
363
363
|
- lib/radiator/api.rb
|
364
364
|
- lib/radiator/base_error.rb
|
365
|
+
- lib/radiator/block_api.rb
|
365
366
|
- lib/radiator/broadcast_operations.json
|
366
367
|
- lib/radiator/chain_config.rb
|
367
368
|
- lib/radiator/chain_stats_api.rb
|
369
|
+
- lib/radiator/condenser_api.rb
|
368
370
|
- lib/radiator/database_api.rb
|
369
371
|
- lib/radiator/follow_api.rb
|
370
372
|
- lib/radiator/logger.rb
|
@@ -415,4 +417,3 @@ signing_key:
|
|
415
417
|
specification_version: 4
|
416
418
|
summary: STEEM RPC Ruby Client
|
417
419
|
test_files: []
|
418
|
-
has_rdoc:
|