radiator 0.3.12 → 0.3.13
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +6 -6
- data/README.md +18 -2
- data/lib/radiator/api.rb +20 -0
- data/lib/radiator/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8b2942acc286e86b0495674fdf08ef83cb8b9ba1
|
4
|
+
data.tar.gz: 9b4f8c9eee079e0c1d7b31aa977a7a322c908c15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 35d4b8aed21429194c6f1df3c4985daeef0163236011636b35cd17ffce48b4bc1cfec0c625bb62990bcb9a3b33c3ef7dfc4831de6921b6d17855c10f378e7b52
|
7
|
+
data.tar.gz: 1b2fed7d16822b22ac943c5f21454b9c6e843dc1519688bcc90b964b658824e27bab790e865d19775467fb39d6a9e6429dc5a03194cf7643c7f9ed452e73e3a1
|
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.13)
|
5
5
|
awesome_print (~> 1.7, >= 1.7.0)
|
6
6
|
bitcoin-ruby (~> 0.0, >= 0.0.11)
|
7
7
|
ffi (~> 1.9, >= 1.9.18)
|
@@ -16,7 +16,7 @@ GEM
|
|
16
16
|
addressable (2.5.2)
|
17
17
|
public_suffix (>= 2.0.2, < 4.0)
|
18
18
|
awesome_print (1.8.0)
|
19
|
-
bitcoin-ruby (0.0.
|
19
|
+
bitcoin-ruby (0.0.13)
|
20
20
|
connection_pool (2.2.1)
|
21
21
|
crack (0.4.3)
|
22
22
|
safe_yaml (~> 1.0.0)
|
@@ -37,8 +37,8 @@ GEM
|
|
37
37
|
multi_json (1.12.2)
|
38
38
|
net-http-persistent (3.0.0)
|
39
39
|
connection_pool (~> 2.2)
|
40
|
-
public_suffix (3.0.
|
41
|
-
rake (12.
|
40
|
+
public_suffix (3.0.1)
|
41
|
+
rake (12.3.0)
|
42
42
|
safe_yaml (1.0.4)
|
43
43
|
simplecov (0.15.1)
|
44
44
|
docile (~> 1.1.0)
|
@@ -46,11 +46,11 @@ GEM
|
|
46
46
|
simplecov-html (~> 0.10.0)
|
47
47
|
simplecov-html (0.10.2)
|
48
48
|
vcr (3.0.3)
|
49
|
-
webmock (3.1.
|
49
|
+
webmock (3.1.1)
|
50
50
|
addressable (>= 2.3.6)
|
51
51
|
crack (>= 0.3.2)
|
52
52
|
hashdiff
|
53
|
-
yard (0.9.
|
53
|
+
yard (0.9.12)
|
54
54
|
|
55
55
|
PLATFORMS
|
56
56
|
ruby
|
data/README.md
CHANGED
@@ -397,7 +397,7 @@ Radiator supports failover for situations where a node has, for example, become
|
|
397
397
|
|
398
398
|
```ruby
|
399
399
|
options = {
|
400
|
-
|
400
|
+
url: 'https://api.steemit.com',
|
401
401
|
failover_urls: [
|
402
402
|
'https://api.steemitstage.com',
|
403
403
|
'https://gtg.steem.house:8090'
|
@@ -421,6 +421,22 @@ There is another rare scenario involving `::Transaction` broadcasts that's handl
|
|
421
421
|
tx = Radiator::Transaction.new(wif: wif, recover_transactions_on_error: false)
|
422
422
|
```
|
423
423
|
|
424
|
+
### Golos Failover Examples
|
425
|
+
|
426
|
+
Typically, you only need to pass `chain: :golos` to enable Golos. Failover is enabled by default. If you want to provide your own full nodes, use this format:
|
427
|
+
|
428
|
+
```ruby
|
429
|
+
options = {
|
430
|
+
chain: :golos,
|
431
|
+
url: 'https://ws.golos.io',
|
432
|
+
failover_urls: [
|
433
|
+
'https://api.golos.cf'
|
434
|
+
]
|
435
|
+
}
|
436
|
+
|
437
|
+
api = Radiator::Api.new(options)
|
438
|
+
```
|
439
|
+
|
424
440
|
## Debugging
|
425
441
|
|
426
442
|
To enable debugging, set environment `LOG=DEBUG` before launching your app. E.g.:
|
@@ -485,7 +501,7 @@ Verify your code is not doing too much between blocks.
|
|
485
501
|
<img src="http://www.steemimg.com/images/2016/08/19/RadiatorCoolingFan-54in-Webfdcb1.png" />
|
486
502
|
</center>
|
487
503
|
|
488
|
-
See my previous Ruby How To posts in: [
|
504
|
+
See my previous Ruby How To posts in: [/f/ruby](https://chainbb.com/f/ruby)
|
489
505
|
|
490
506
|
## Get in touch!
|
491
507
|
|
data/lib/radiator/api.rb
CHANGED
@@ -423,6 +423,10 @@ module Radiator
|
|
423
423
|
loop do
|
424
424
|
tries += 1
|
425
425
|
|
426
|
+
if tries > 5 && flappy? && !check_file_open?
|
427
|
+
raise ApiError, 'PANIC: Out of file resources'
|
428
|
+
end
|
429
|
+
|
426
430
|
begin
|
427
431
|
if tries > 1 && @recover_transactions_on_error && api_name == :network_broadcast_api
|
428
432
|
signatures, exp = extract_signatures(options)
|
@@ -640,6 +644,16 @@ module Radiator
|
|
640
644
|
count += 1
|
641
645
|
raise ApiError, "Race condition detected on remote node at: #{block_num}" if block.nil?
|
642
646
|
|
647
|
+
# TODO Some blockchains (like Golos) do not have transaction_ids. In
|
648
|
+
# the future, it would be better to decode the operation and signature
|
649
|
+
# into the transaction id.
|
650
|
+
# See: https://github.com/steemit/steem/issues/187
|
651
|
+
# See: https://github.com/GolosChain/golos/issues/281
|
652
|
+
unless defined? block.transaction_ids
|
653
|
+
@recover_transactions_on_error = false
|
654
|
+
return
|
655
|
+
end
|
656
|
+
|
643
657
|
timestamp = Time.parse(block.timestamp + 'Z')
|
644
658
|
break if timestamp < after
|
645
659
|
|
@@ -767,6 +781,12 @@ module Radiator
|
|
767
781
|
end
|
768
782
|
end
|
769
783
|
|
784
|
+
def check_file_open?
|
785
|
+
File.exists?('.')
|
786
|
+
rescue
|
787
|
+
false
|
788
|
+
end
|
789
|
+
|
770
790
|
def backoff
|
771
791
|
shutdown
|
772
792
|
bump_failover if flappy? || !healthy?(uri)
|
data/lib/radiator/version.rb
CHANGED
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.13
|
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-11-
|
11
|
+
date: 2017-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|