osbc 0.1.8 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env_sample +14 -0
- data/CHANGELOG.md +19 -0
- data/Dockerfile +1 -1
- data/Gemfile +4 -1
- data/Gemfile.lock +173 -113
- data/README.md +38 -19
- data/app/models/chain.rb +2 -1
- data/app/views/layouts/application.html.erb +9 -0
- data/config/environments/development.rb +2 -0
- data/config/initializers/sidekiq.rb +1 -1
- data/db/seeds.rb +17 -10
- data/docker-compose.yml +9 -9
- data/lib/osbc/osbc.rb +1 -1
- data/mining_concept.ipynb +4 -4
- data/outerspace-blockchain.gemspec +1 -1
- metadata +8 -11
- data/.env +0 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7bef96e041cbf759e0560eaa3e443e1edd8a7544396f624de313200e01f886e
|
4
|
+
data.tar.gz: 3fdd7e3ea74bc82a962c4b52307a3ad5fd02b115ebf622b1b10acb2d56ded8cb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8e0c31360bb371cc43795e2364768aec7c281ebc9f430fcdb2cf1411600db60ae90d923ea0de66f60c346069b695b14d92ce09a280a6142b00b855c8ca59cbc5
|
7
|
+
data.tar.gz: ef6504c45af99faf0f1b1dcd5d13ee5763b75f952549cb7f72f65c1f564afac990eb340a901db93c056ddd97ca66e7dd0ee4a87cb5e887726c8f10d4a09bec62
|
data/.env_sample
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
FIRST_CHAIN_NAME=YOUR_CHAIN_NAME
|
2
|
+
FIRST_CHAIN_MAINTAINER=YOUR_NAME
|
3
|
+
FIRST_USER_NAME=YOUR_FIRST_USERNAME
|
4
|
+
FIRST_USER_EMAIL=firstuser@email.com
|
5
|
+
FIRST_USER_PASSWORD=YOUR_FIRST_USER_PASSWORD
|
6
|
+
CONTRACTS_LIMIT=2
|
7
|
+
SIGNATURES_LIMIT=5
|
8
|
+
REDIS_URL=redis://redis:6379
|
9
|
+
ENV_MACHINE=docker
|
10
|
+
GOOGLE_ANALYTICS_ID=G-XXXXXXXXXX
|
11
|
+
FIRESTORE_PROJECT_ID=YOUR_FIRESTORE_PROJECT_ID
|
12
|
+
FIRESTORE_KEY_FILE=YOUR_FIRESTORE_KEY_FILE
|
13
|
+
FIRESTORE_KEY_FILE_PATH=YOUR_FIRESTORE_KEY_FILE_PATH
|
14
|
+
|
data/CHANGELOG.md
CHANGED
@@ -9,3 +9,22 @@
|
|
9
9
|
- Refactored some tests
|
10
10
|
- Added lib tasks helper to created rake tasks for blockchain
|
11
11
|
## [0.1.7]
|
12
|
+
### Added
|
13
|
+
- Added Open Ticket Api Methods
|
14
|
+
- Refactored some methods and tests
|
15
|
+
- Removed coverage folder github repo
|
16
|
+
## [0.1.8]
|
17
|
+
### Added
|
18
|
+
- Edited gemspec
|
19
|
+
## [0.1.9]
|
20
|
+
### Added
|
21
|
+
- Edited gemspec
|
22
|
+
- Edited README.md
|
23
|
+
## [0.2.0]
|
24
|
+
### Added
|
25
|
+
- Defined development plan, corrected enviroments
|
26
|
+
- Added Domain with SSL to demonstration enviroments
|
27
|
+
- Edited README.md documentation
|
28
|
+
- Added tracking to Google Analytics
|
29
|
+
- Added Google Cloud Firestore gem to gemfile
|
30
|
+
- Added .env to gitignore and created .env_sample file
|
data/Dockerfile
CHANGED
data/Gemfile
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
source "https://rubygems.org"
|
2
2
|
git_source(:github) { |repo| "https://github.com/#{repo}.git" }
|
3
3
|
|
4
|
-
ruby "3.0
|
4
|
+
ruby "3.2.0"
|
5
5
|
|
6
6
|
# Bundle edge Rails instead: gem "rails", github: "rails/rails", branch: "main"
|
7
7
|
gem "rails", "~> 7.0"
|
@@ -66,6 +66,9 @@ gem "rails-controller-testing", "~> 1.0"
|
|
66
66
|
# Active Record Import
|
67
67
|
gem "activerecord-import"
|
68
68
|
|
69
|
+
# Google Firestore
|
70
|
+
gem "google-cloud-firestore", "~> 2.6"
|
71
|
+
|
69
72
|
|
70
73
|
# Use Sass to process CSS
|
71
74
|
# gem "sassc-rails"
|
data/Gemfile.lock
CHANGED
@@ -1,69 +1,69 @@
|
|
1
1
|
GEM
|
2
2
|
remote: https://rubygems.org/
|
3
3
|
specs:
|
4
|
-
actioncable (7.0.4)
|
5
|
-
actionpack (= 7.0.4)
|
6
|
-
activesupport (= 7.0.4)
|
4
|
+
actioncable (7.0.4.1)
|
5
|
+
actionpack (= 7.0.4.1)
|
6
|
+
activesupport (= 7.0.4.1)
|
7
7
|
nio4r (~> 2.0)
|
8
8
|
websocket-driver (>= 0.6.1)
|
9
|
-
actionmailbox (7.0.4)
|
10
|
-
actionpack (= 7.0.4)
|
11
|
-
activejob (= 7.0.4)
|
12
|
-
activerecord (= 7.0.4)
|
13
|
-
activestorage (= 7.0.4)
|
14
|
-
activesupport (= 7.0.4)
|
9
|
+
actionmailbox (7.0.4.1)
|
10
|
+
actionpack (= 7.0.4.1)
|
11
|
+
activejob (= 7.0.4.1)
|
12
|
+
activerecord (= 7.0.4.1)
|
13
|
+
activestorage (= 7.0.4.1)
|
14
|
+
activesupport (= 7.0.4.1)
|
15
15
|
mail (>= 2.7.1)
|
16
16
|
net-imap
|
17
17
|
net-pop
|
18
18
|
net-smtp
|
19
|
-
actionmailer (7.0.4)
|
20
|
-
actionpack (= 7.0.4)
|
21
|
-
actionview (= 7.0.4)
|
22
|
-
activejob (= 7.0.4)
|
23
|
-
activesupport (= 7.0.4)
|
19
|
+
actionmailer (7.0.4.1)
|
20
|
+
actionpack (= 7.0.4.1)
|
21
|
+
actionview (= 7.0.4.1)
|
22
|
+
activejob (= 7.0.4.1)
|
23
|
+
activesupport (= 7.0.4.1)
|
24
24
|
mail (~> 2.5, >= 2.5.4)
|
25
25
|
net-imap
|
26
26
|
net-pop
|
27
27
|
net-smtp
|
28
28
|
rails-dom-testing (~> 2.0)
|
29
|
-
actionpack (7.0.4)
|
30
|
-
actionview (= 7.0.4)
|
31
|
-
activesupport (= 7.0.4)
|
29
|
+
actionpack (7.0.4.1)
|
30
|
+
actionview (= 7.0.4.1)
|
31
|
+
activesupport (= 7.0.4.1)
|
32
32
|
rack (~> 2.0, >= 2.2.0)
|
33
33
|
rack-test (>= 0.6.3)
|
34
34
|
rails-dom-testing (~> 2.0)
|
35
35
|
rails-html-sanitizer (~> 1.0, >= 1.2.0)
|
36
|
-
actiontext (7.0.4)
|
37
|
-
actionpack (= 7.0.4)
|
38
|
-
activerecord (= 7.0.4)
|
39
|
-
activestorage (= 7.0.4)
|
40
|
-
activesupport (= 7.0.4)
|
36
|
+
actiontext (7.0.4.1)
|
37
|
+
actionpack (= 7.0.4.1)
|
38
|
+
activerecord (= 7.0.4.1)
|
39
|
+
activestorage (= 7.0.4.1)
|
40
|
+
activesupport (= 7.0.4.1)
|
41
41
|
globalid (>= 0.6.0)
|
42
42
|
nokogiri (>= 1.8.5)
|
43
|
-
actionview (7.0.4)
|
44
|
-
activesupport (= 7.0.4)
|
43
|
+
actionview (7.0.4.1)
|
44
|
+
activesupport (= 7.0.4.1)
|
45
45
|
builder (~> 3.1)
|
46
46
|
erubi (~> 1.4)
|
47
47
|
rails-dom-testing (~> 2.0)
|
48
48
|
rails-html-sanitizer (~> 1.1, >= 1.2.0)
|
49
|
-
activejob (7.0.4)
|
50
|
-
activesupport (= 7.0.4)
|
49
|
+
activejob (7.0.4.1)
|
50
|
+
activesupport (= 7.0.4.1)
|
51
51
|
globalid (>= 0.3.6)
|
52
|
-
activemodel (7.0.4)
|
53
|
-
activesupport (= 7.0.4)
|
54
|
-
activerecord (7.0.4)
|
55
|
-
activemodel (= 7.0.4)
|
56
|
-
activesupport (= 7.0.4)
|
52
|
+
activemodel (7.0.4.1)
|
53
|
+
activesupport (= 7.0.4.1)
|
54
|
+
activerecord (7.0.4.1)
|
55
|
+
activemodel (= 7.0.4.1)
|
56
|
+
activesupport (= 7.0.4.1)
|
57
57
|
activerecord-import (1.4.1)
|
58
58
|
activerecord (>= 4.2)
|
59
|
-
activestorage (7.0.4)
|
60
|
-
actionpack (= 7.0.4)
|
61
|
-
activejob (= 7.0.4)
|
62
|
-
activerecord (= 7.0.4)
|
63
|
-
activesupport (= 7.0.4)
|
59
|
+
activestorage (7.0.4.1)
|
60
|
+
actionpack (= 7.0.4.1)
|
61
|
+
activejob (= 7.0.4.1)
|
62
|
+
activerecord (= 7.0.4.1)
|
63
|
+
activesupport (= 7.0.4.1)
|
64
64
|
marcel (~> 1.0)
|
65
65
|
mini_mime (>= 1.1.0)
|
66
|
-
activesupport (7.0.4)
|
66
|
+
activesupport (7.0.4.1)
|
67
67
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
68
68
|
i18n (>= 1.6, < 2)
|
69
69
|
minitest (>= 5.1)
|
@@ -73,10 +73,10 @@ GEM
|
|
73
73
|
ast (2.4.2)
|
74
74
|
bcrypt (3.1.18)
|
75
75
|
bindex (0.8.1)
|
76
|
-
bootsnap (1.
|
76
|
+
bootsnap (1.15.0)
|
77
77
|
msgpack (~> 1.2)
|
78
78
|
builder (3.2.4)
|
79
|
-
capybara (3.
|
79
|
+
capybara (3.38.0)
|
80
80
|
addressable
|
81
81
|
matrix
|
82
82
|
mini_mime (>= 0.1.3)
|
@@ -85,7 +85,6 @@ GEM
|
|
85
85
|
rack-test (>= 0.6.3)
|
86
86
|
regexp_parser (>= 1.5, < 3.0)
|
87
87
|
xpath (~> 3.2)
|
88
|
-
childprocess (4.1.0)
|
89
88
|
concurrent-ruby (1.1.10)
|
90
89
|
connection_pool (2.3.0)
|
91
90
|
crass (1.0.6)
|
@@ -93,9 +92,8 @@ GEM
|
|
93
92
|
activerecord (>= 5.a)
|
94
93
|
database_cleaner-core (~> 2.0.0)
|
95
94
|
database_cleaner-core (2.0.1)
|
96
|
-
|
97
|
-
|
98
|
-
reline (>= 0.3.1)
|
95
|
+
date (3.3.3)
|
96
|
+
debug (1.7.1)
|
99
97
|
devise (4.8.1)
|
100
98
|
bcrypt (~> 3.0)
|
101
99
|
orm_adapter (~> 0.1)
|
@@ -104,7 +102,7 @@ GEM
|
|
104
102
|
warden (~> 1.2.3)
|
105
103
|
diff-lcs (1.5.0)
|
106
104
|
docile (1.4.0)
|
107
|
-
erubi (1.
|
105
|
+
erubi (1.12.0)
|
108
106
|
factory_bot (6.2.1)
|
109
107
|
activesupport (>= 5.0.0)
|
110
108
|
factory_bot_rails (6.2.0)
|
@@ -112,68 +110,122 @@ GEM
|
|
112
110
|
railties (>= 5.0.0)
|
113
111
|
faker (2.23.0)
|
114
112
|
i18n (>= 1.8.11, < 2)
|
115
|
-
|
113
|
+
faraday (2.7.4)
|
114
|
+
faraday-net_http (>= 2.0, < 3.1)
|
115
|
+
ruby2_keywords (>= 0.0.4)
|
116
|
+
faraday-net_http (3.0.2)
|
117
|
+
faraday-retry (2.0.0)
|
118
|
+
faraday (~> 2.0)
|
119
|
+
gapic-common (0.16.0)
|
120
|
+
faraday (>= 1.9, < 3.a)
|
121
|
+
faraday-retry (>= 1.0, < 3.a)
|
122
|
+
google-protobuf (~> 3.14)
|
123
|
+
googleapis-common-protos (>= 1.3.12, < 2.a)
|
124
|
+
googleapis-common-protos-types (>= 1.3.1, < 2.a)
|
125
|
+
googleauth (~> 1.0)
|
126
|
+
grpc (~> 1.36)
|
127
|
+
globalid (1.0.1)
|
116
128
|
activesupport (>= 5.0)
|
129
|
+
google-cloud-core (1.6.0)
|
130
|
+
google-cloud-env (~> 1.0)
|
131
|
+
google-cloud-errors (~> 1.0)
|
132
|
+
google-cloud-env (1.6.0)
|
133
|
+
faraday (>= 0.17.3, < 3.0)
|
134
|
+
google-cloud-errors (1.3.0)
|
135
|
+
google-cloud-firestore (2.8.0)
|
136
|
+
concurrent-ruby (~> 1.0)
|
137
|
+
google-cloud-core (~> 1.5)
|
138
|
+
google-cloud-firestore-v1 (~> 0.0)
|
139
|
+
rbtree (~> 0.4.2)
|
140
|
+
google-cloud-firestore-v1 (0.8.0)
|
141
|
+
gapic-common (>= 0.10, < 2.a)
|
142
|
+
google-cloud-errors (~> 1.0)
|
143
|
+
google-cloud-location (>= 0.0, < 2.a)
|
144
|
+
google-cloud-location (0.3.0)
|
145
|
+
gapic-common (>= 0.16.0, < 2.a)
|
146
|
+
google-cloud-errors (~> 1.0)
|
147
|
+
google-protobuf (3.21.12)
|
148
|
+
googleapis-common-protos (1.4.0)
|
149
|
+
google-protobuf (~> 3.14)
|
150
|
+
googleapis-common-protos-types (~> 1.2)
|
151
|
+
grpc (~> 1.27)
|
152
|
+
googleapis-common-protos-types (1.5.0)
|
153
|
+
google-protobuf (~> 3.14)
|
154
|
+
googleauth (1.3.0)
|
155
|
+
faraday (>= 0.17.3, < 3.a)
|
156
|
+
jwt (>= 1.4, < 3.0)
|
157
|
+
memoist (~> 0.16)
|
158
|
+
multi_json (~> 1.11)
|
159
|
+
os (>= 0.9, < 2.0)
|
160
|
+
signet (>= 0.16, < 2.a)
|
161
|
+
grpc (1.50.0)
|
162
|
+
google-protobuf (~> 3.21)
|
163
|
+
googleapis-common-protos-types (~> 1.0)
|
117
164
|
i18n (1.12.0)
|
118
165
|
concurrent-ruby (~> 1.0)
|
119
166
|
importmap-rails (1.1.5)
|
120
167
|
actionpack (>= 6.0.0)
|
121
168
|
railties (>= 6.0.0)
|
122
|
-
io-console (0.5.11)
|
123
|
-
irb (1.4.2)
|
124
|
-
reline (>= 0.3.0)
|
125
169
|
jbuilder (2.11.5)
|
126
170
|
actionview (>= 5.0.0)
|
127
171
|
activesupport (>= 5.0.0)
|
128
|
-
json (2.
|
129
|
-
|
172
|
+
json (2.6.3)
|
173
|
+
jwt (2.6.0)
|
174
|
+
loofah (2.19.1)
|
130
175
|
crass (~> 1.0.2)
|
131
176
|
nokogiri (>= 1.5.9)
|
132
|
-
mail (2.
|
177
|
+
mail (2.8.0.1)
|
133
178
|
mini_mime (>= 0.1.1)
|
179
|
+
net-imap
|
180
|
+
net-pop
|
181
|
+
net-smtp
|
134
182
|
marcel (1.0.2)
|
135
183
|
matrix (0.4.2)
|
184
|
+
memoist (0.16.2)
|
136
185
|
method_source (1.0.0)
|
137
186
|
mini_mime (1.1.2)
|
138
|
-
minitest (5.
|
187
|
+
minitest (5.17.0)
|
139
188
|
msgpack (1.6.0)
|
140
|
-
|
189
|
+
multi_json (1.15.0)
|
190
|
+
net-imap (0.3.4)
|
191
|
+
date
|
141
192
|
net-protocol
|
142
193
|
net-pop (0.1.2)
|
143
194
|
net-protocol
|
144
|
-
net-protocol (0.1
|
195
|
+
net-protocol (0.2.1)
|
145
196
|
timeout
|
146
|
-
net-smtp (0.3.
|
197
|
+
net-smtp (0.3.3)
|
147
198
|
net-protocol
|
148
199
|
nio4r (2.5.8)
|
149
|
-
nokogiri (1.
|
200
|
+
nokogiri (1.14.0-x86_64-linux)
|
150
201
|
racc (~> 1.4)
|
151
202
|
orm_adapter (0.5.0)
|
203
|
+
os (1.1.4)
|
152
204
|
parallel (1.22.1)
|
153
|
-
parser (3.
|
205
|
+
parser (3.2.0.0)
|
154
206
|
ast (~> 2.4.1)
|
155
|
-
pg (1.4.
|
156
|
-
public_suffix (5.0.
|
207
|
+
pg (1.4.5)
|
208
|
+
public_suffix (5.0.1)
|
157
209
|
puma (5.6.5)
|
158
210
|
nio4r (~> 2.0)
|
159
|
-
racc (1.6.
|
160
|
-
rack (2.2.
|
211
|
+
racc (1.6.2)
|
212
|
+
rack (2.2.6.2)
|
161
213
|
rack-test (2.0.2)
|
162
214
|
rack (>= 1.3)
|
163
|
-
rails (7.0.4)
|
164
|
-
actioncable (= 7.0.4)
|
165
|
-
actionmailbox (= 7.0.4)
|
166
|
-
actionmailer (= 7.0.4)
|
167
|
-
actionpack (= 7.0.4)
|
168
|
-
actiontext (= 7.0.4)
|
169
|
-
actionview (= 7.0.4)
|
170
|
-
activejob (= 7.0.4)
|
171
|
-
activemodel (= 7.0.4)
|
172
|
-
activerecord (= 7.0.4)
|
173
|
-
activestorage (= 7.0.4)
|
174
|
-
activesupport (= 7.0.4)
|
215
|
+
rails (7.0.4.1)
|
216
|
+
actioncable (= 7.0.4.1)
|
217
|
+
actionmailbox (= 7.0.4.1)
|
218
|
+
actionmailer (= 7.0.4.1)
|
219
|
+
actionpack (= 7.0.4.1)
|
220
|
+
actiontext (= 7.0.4.1)
|
221
|
+
actionview (= 7.0.4.1)
|
222
|
+
activejob (= 7.0.4.1)
|
223
|
+
activemodel (= 7.0.4.1)
|
224
|
+
activerecord (= 7.0.4.1)
|
225
|
+
activestorage (= 7.0.4.1)
|
226
|
+
activesupport (= 7.0.4.1)
|
175
227
|
bundler (>= 1.15.0)
|
176
|
-
railties (= 7.0.4)
|
228
|
+
railties (= 7.0.4.1)
|
177
229
|
rails-controller-testing (1.0.5)
|
178
230
|
actionpack (>= 5.0.1.rc1)
|
179
231
|
actionview (>= 5.0.1.rc1)
|
@@ -181,34 +233,33 @@ GEM
|
|
181
233
|
rails-dom-testing (2.0.3)
|
182
234
|
activesupport (>= 4.2.0)
|
183
235
|
nokogiri (>= 1.6)
|
184
|
-
rails-html-sanitizer (1.4.
|
185
|
-
loofah (~> 2.
|
186
|
-
railties (7.0.4)
|
187
|
-
actionpack (= 7.0.4)
|
188
|
-
activesupport (= 7.0.4)
|
236
|
+
rails-html-sanitizer (1.4.4)
|
237
|
+
loofah (~> 2.19, >= 2.19.1)
|
238
|
+
railties (7.0.4.1)
|
239
|
+
actionpack (= 7.0.4.1)
|
240
|
+
activesupport (= 7.0.4.1)
|
189
241
|
method_source
|
190
242
|
rake (>= 12.2)
|
191
243
|
thor (~> 1.0)
|
192
244
|
zeitwerk (~> 2.5)
|
193
245
|
rainbow (3.1.1)
|
194
246
|
rake (13.0.6)
|
247
|
+
rbtree (0.4.6)
|
195
248
|
redis (4.8.0)
|
196
|
-
regexp_parser (2.6.
|
197
|
-
reline (0.3.1)
|
198
|
-
io-console (~> 0.5)
|
249
|
+
regexp_parser (2.6.2)
|
199
250
|
responders (3.0.1)
|
200
251
|
actionpack (>= 5.0)
|
201
252
|
railties (>= 5.0)
|
202
253
|
rexml (3.2.5)
|
203
|
-
rspec-core (3.
|
204
|
-
rspec-support (~> 3.
|
205
|
-
rspec-expectations (3.
|
254
|
+
rspec-core (3.12.0)
|
255
|
+
rspec-support (~> 3.12.0)
|
256
|
+
rspec-expectations (3.12.2)
|
206
257
|
diff-lcs (>= 1.2.0, < 2.0)
|
207
|
-
rspec-support (~> 3.
|
208
|
-
rspec-mocks (3.
|
258
|
+
rspec-support (~> 3.12.0)
|
259
|
+
rspec-mocks (3.12.3)
|
209
260
|
diff-lcs (>= 1.2.0, < 2.0)
|
210
|
-
rspec-support (~> 3.
|
211
|
-
rspec-rails (6.0.
|
261
|
+
rspec-support (~> 3.12.0)
|
262
|
+
rspec-rails (6.0.1)
|
212
263
|
actionpack (>= 6.1)
|
213
264
|
activesupport (>= 6.1)
|
214
265
|
railties (>= 6.1)
|
@@ -216,39 +267,47 @@ GEM
|
|
216
267
|
rspec-expectations (~> 3.11)
|
217
268
|
rspec-mocks (~> 3.11)
|
218
269
|
rspec-support (~> 3.11)
|
219
|
-
rspec-support (3.
|
220
|
-
rubocop (1.
|
270
|
+
rspec-support (3.12.0)
|
271
|
+
rubocop (1.43.0)
|
221
272
|
json (~> 2.3)
|
222
273
|
parallel (~> 1.10)
|
223
|
-
parser (>= 3.
|
274
|
+
parser (>= 3.2.0.0)
|
224
275
|
rainbow (>= 2.2.2, < 4.0)
|
225
276
|
regexp_parser (>= 1.8, < 3.0)
|
226
277
|
rexml (>= 3.2.5, < 4.0)
|
227
|
-
rubocop-ast (>= 1.
|
278
|
+
rubocop-ast (>= 1.24.1, < 2.0)
|
228
279
|
ruby-progressbar (~> 1.7)
|
229
|
-
unicode-display_width (>=
|
230
|
-
rubocop-ast (1.
|
280
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
281
|
+
rubocop-ast (1.24.1)
|
231
282
|
parser (>= 3.1.1.0)
|
232
|
-
rubocop-
|
283
|
+
rubocop-capybara (2.17.0)
|
284
|
+
rubocop (~> 1.41)
|
285
|
+
rubocop-rails (2.17.4)
|
233
286
|
activesupport (>= 4.2.0)
|
234
287
|
rack (>= 1.1)
|
235
288
|
rubocop (>= 1.33.0, < 2.0)
|
236
|
-
rubocop-rspec (2.
|
289
|
+
rubocop-rspec (2.18.1)
|
237
290
|
rubocop (~> 1.33)
|
291
|
+
rubocop-capybara (~> 2.17)
|
238
292
|
ruby-progressbar (1.11.0)
|
293
|
+
ruby2_keywords (0.0.5)
|
239
294
|
rubyzip (2.3.2)
|
240
|
-
selenium-webdriver (4.
|
241
|
-
childprocess (>= 0.5, < 5.0)
|
295
|
+
selenium-webdriver (4.7.1)
|
242
296
|
rexml (~> 3.2, >= 3.2.5)
|
243
297
|
rubyzip (>= 1.2.2, < 3.0)
|
244
298
|
websocket (~> 1.0)
|
245
|
-
shoulda-matchers (5.
|
299
|
+
shoulda-matchers (5.3.0)
|
246
300
|
activesupport (>= 5.2.0)
|
247
|
-
sidekiq (6.5.
|
248
|
-
connection_pool (>= 2.2.5)
|
301
|
+
sidekiq (6.5.8)
|
302
|
+
connection_pool (>= 2.2.5, < 3)
|
249
303
|
rack (~> 2.0)
|
250
304
|
redis (>= 4.5.0, < 5)
|
251
|
-
|
305
|
+
signet (0.17.0)
|
306
|
+
addressable (~> 2.8)
|
307
|
+
faraday (>= 0.17.5, < 3.a)
|
308
|
+
jwt (>= 1.5, < 3.0)
|
309
|
+
multi_json (~> 1.10)
|
310
|
+
simplecov (0.22.0)
|
252
311
|
docile (~> 1.1)
|
253
312
|
simplecov-html (~> 0.11)
|
254
313
|
simplecov_json_formatter (~> 0.1)
|
@@ -261,28 +320,28 @@ GEM
|
|
261
320
|
actionpack (>= 3.1)
|
262
321
|
railties (>= 3.1)
|
263
322
|
slim (>= 3.0, < 5.0)
|
264
|
-
sprockets (4.
|
323
|
+
sprockets (4.2.0)
|
265
324
|
concurrent-ruby (~> 1.0)
|
266
|
-
rack (
|
325
|
+
rack (>= 2.2.4, < 4)
|
267
326
|
sprockets-rails (3.4.2)
|
268
327
|
actionpack (>= 5.2)
|
269
328
|
activesupport (>= 5.2)
|
270
329
|
sprockets (>= 3.0.0)
|
271
|
-
stimulus-rails (1.1
|
330
|
+
stimulus-rails (1.2.1)
|
272
331
|
railties (>= 6.0.0)
|
273
|
-
tailwindcss-rails (2.0.
|
332
|
+
tailwindcss-rails (2.0.21-x86_64-linux)
|
274
333
|
railties (>= 6.0.0)
|
275
334
|
temple (0.8.2)
|
276
335
|
thor (1.2.1)
|
277
336
|
tilt (2.0.11)
|
278
|
-
timeout (0.3.
|
279
|
-
turbo-rails (1.3.
|
337
|
+
timeout (0.3.1)
|
338
|
+
turbo-rails (1.3.2)
|
280
339
|
actionpack (>= 6.0.0)
|
281
340
|
activejob (>= 6.0.0)
|
282
341
|
railties (>= 6.0.0)
|
283
342
|
tzinfo (2.0.5)
|
284
343
|
concurrent-ruby (~> 1.0)
|
285
|
-
unicode-display_width (2.
|
344
|
+
unicode-display_width (2.4.2)
|
286
345
|
warden (1.2.9)
|
287
346
|
rack (>= 2.0.9)
|
288
347
|
web-console (4.2.0)
|
@@ -300,7 +359,7 @@ GEM
|
|
300
359
|
websocket-extensions (0.1.5)
|
301
360
|
xpath (3.2.0)
|
302
361
|
nokogiri (~> 1.8)
|
303
|
-
zeitwerk (2.6.
|
362
|
+
zeitwerk (2.6.6)
|
304
363
|
|
305
364
|
PLATFORMS
|
306
365
|
x86_64-linux
|
@@ -314,6 +373,7 @@ DEPENDENCIES
|
|
314
373
|
devise (~> 4.8)
|
315
374
|
factory_bot_rails (~> 6.2)
|
316
375
|
faker (~> 2.23)
|
376
|
+
google-cloud-firestore (~> 2.6)
|
317
377
|
importmap-rails (~> 1.1)
|
318
378
|
jbuilder (~> 2.11)
|
319
379
|
pg (~> 1.4)
|
@@ -337,7 +397,7 @@ DEPENDENCIES
|
|
337
397
|
webdrivers (~> 5.2)
|
338
398
|
|
339
399
|
RUBY VERSION
|
340
|
-
ruby 3.
|
400
|
+
ruby 3.2.0p0
|
341
401
|
|
342
402
|
BUNDLED WITH
|
343
|
-
2.
|
403
|
+
2.4.1
|
data/README.md
CHANGED
@@ -1,10 +1,13 @@
|
|
1
|
-
# <img src="https://
|
1
|
+
# <img src="https://osbc-blockchain.herokuapp.com/assets/logo-70825bc795d25668cf4f11b06b990ed0d1c2cae887acce0625e5059226a7946a.png" width="25" height="25"> Outerspace Blockchain
|
2
2
|
<!-- Outerspace Logo -->
|
3
|
+
|
4
|
+
### This application is instable and under development.
|
5
|
+
### Please, use it with caution and at your own risk.
|
3
6
|
### A Ruby implementation of web blockchain framework.
|
4
7
|
#### Developed using TDD (Test Driven Development).
|
5
8
|
#### Github Actions CI/CD pipeline.
|
6
|
-
####
|
7
|
-
|
9
|
+
#### Firestore is used to store the blockchain.
|
10
|
+
|
8
11
|
#### Simplecov is used to test code coverage.
|
9
12
|
|
10
13
|
#### Rails Engine is used to create the blockchain.
|
@@ -12,21 +15,29 @@
|
|
12
15
|
|
13
16
|
#### Rspec is used to test the blockchain.
|
14
17
|
|
15
|
-
## Build Version: 0.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
18
|
+
## Build Version: 0.2.0
|
19
|
+
|
20
|
+
## Todo
|
21
|
+
* [ ] Firebase integration (this will be use instead of Redis management)
|
22
|
+
* [ ] Add and correct tests
|
23
|
+
* [ ] Add and correct documentation
|
24
|
+
* [ ] Add user verification methods
|
25
|
+
* [ ] Better mobile layout
|
26
|
+
* [ ] Create the price visualization and the price history api
|
27
|
+
* [ ] Add more blockchain features
|
28
|
+
* [ ] Add more blockchain tests
|
29
|
+
* [ ] Add more blockchain documentation
|
30
|
+
* [ ] Add nft's classification class
|
31
|
+
* [ ] Add nft's modularization class
|
32
|
+
* [ ] Add nft's generator class
|
33
|
+
* [ ] Benchmark blockchain and mining
|
34
|
+
* [ ] Create a blockchain explorer
|
35
|
+
* [ ] Create a default blockchain wallet android app generator with flutter
|
36
|
+
* [ ] Create generators that will work with rails and flutter at the same time
|
37
|
+
* [ ] Create the user marketplace
|
38
|
+
* [ ] Integrate Blockchain Api in other projects
|
39
|
+
|
40
|
+
Kubernets integration will be worked on in the future.
|
30
41
|
|
31
42
|
## System dependencies
|
32
43
|
1. Docker
|
@@ -45,6 +56,14 @@
|
|
45
56
|
- [Postgres](#postgres) https://www.postgresql.org/download/
|
46
57
|
- [Rails](#rails) https://guides.rubyonrails.org/getting_started.html
|
47
58
|
|
59
|
+
### Install it from RubyGems (Ruby 3.0.3)
|
60
|
+
```bash
|
61
|
+
gem install osbc
|
62
|
+
```
|
63
|
+
## Run to generate new project
|
64
|
+
```bash
|
65
|
+
osbc PATH
|
66
|
+
```
|
48
67
|
### Compile OSBC from source
|
49
68
|
========================
|
50
69
|
<!-- Compile OSBC from source -->
|
@@ -196,4 +215,4 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/JesusG
|
|
196
215
|
|
197
216
|
## License
|
198
217
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
199
|
-
* [LICENSE](LICENSE) - MIT License
|
218
|
+
* [LICENSE](LICENSE) - MIT License
|
data/app/models/chain.rb
CHANGED
@@ -1,10 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
class Chain < ApplicationRecord
|
4
|
-
validates :name, presence: true, uniqueness: true, length: { maximum:
|
4
|
+
validates :name, presence: true, uniqueness: true, length: { maximum: 40 }
|
5
5
|
validates :maintainer, presence: true, length: { maximum: 50 }
|
6
6
|
validates :chain_version, presence: true, length: { maximum: 20 }
|
7
7
|
validates :description, presence: true, length: { maximum: 1000 }
|
8
8
|
|
9
9
|
has_many :blocks, dependent: :destroy
|
10
10
|
end
|
11
|
+
|
@@ -1,6 +1,15 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
+
<!-- Google tag (gtag.js) -->
|
5
|
+
<script async src="https://www.googletagmanager.com/gtag/js?id=<%= ENV['GOOGLE_ANALYTICS_ID'] %>"></script>
|
6
|
+
<script>
|
7
|
+
window.dataLayer = window.dataLayer || [];
|
8
|
+
function gtag(){dataLayer.push(arguments);}
|
9
|
+
gtag('js', new Date());
|
10
|
+
|
11
|
+
gtag('config', '<%= ENV['GOOGLE_ANALYTICS_ID'] %>');
|
12
|
+
</script>
|
4
13
|
<title>OuterspaceBlockchain</title>
|
5
14
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
6
15
|
<%= csrf_meta_tags %>
|
@@ -4,6 +4,8 @@ require "active_support/core_ext/integer/time"
|
|
4
4
|
|
5
5
|
Rails.application.configure do
|
6
6
|
config.hosts << "lvh.me"
|
7
|
+
config.hosts << "outerspacecoding.com"
|
8
|
+
config.hosts << "osbc.outerspacecoding.com"
|
7
9
|
# Settings specified here will take precedence over those in config/application.rb.
|
8
10
|
|
9
11
|
# In the development environment your application's code is reloaded any time
|
@@ -1 +1 @@
|
|
1
|
-
Sidekiq.strict_args!
|
1
|
+
# Sidekiq.strict_args!
|
data/db/seeds.rb
CHANGED
@@ -4,6 +4,7 @@ def seed_exec
|
|
4
4
|
create_first_chain
|
5
5
|
create_acceptable_word_lists
|
6
6
|
create_first_block
|
7
|
+
create_first_user
|
7
8
|
end
|
8
9
|
|
9
10
|
def dev_seed_exec
|
@@ -19,16 +20,13 @@ def dev_seed_exec
|
|
19
20
|
end
|
20
21
|
|
21
22
|
def create_first_chain
|
22
|
-
Chain.
|
23
|
+
chain = Chain.find_or_create_by(
|
23
24
|
name: ENV["FIRST_CHAIN_NAME"],
|
24
25
|
maintainer: ENV["FIRST_CHAIN_MAINTAINER"],
|
25
26
|
chain_version: "0.0.1",
|
26
27
|
description: "This is a blockchain project generated with outerspace-blockchain."
|
27
28
|
)
|
28
|
-
|
29
|
-
puts "Chain created"
|
30
|
-
puts "Chain name: #{ENV["FIRST_CHAIN_NAME"]}"
|
31
|
-
puts "Chain maintainer: #{ENV["FIRST_CHAIN_MAINTAINER"]}"
|
29
|
+
chain.present? ? puts("First chain OK") : puts("Chain seed error")
|
32
30
|
end
|
33
31
|
|
34
32
|
def create_acceptable_word_lists
|
@@ -36,7 +34,7 @@ def create_acceptable_word_lists
|
|
36
34
|
create_acceptable_symbol_sequences
|
37
35
|
create_acceptable_number_sequences
|
38
36
|
end
|
39
|
-
|
37
|
+
|
40
38
|
def create_acceptable_words
|
41
39
|
word_list = %w[the of and to a in
|
42
40
|
is you that it he
|
@@ -93,7 +91,7 @@ end
|
|
93
91
|
|
94
92
|
|
95
93
|
def create_first_block
|
96
|
-
Block.
|
94
|
+
block = Block.find_or_create_by(
|
97
95
|
chain: Chain.first,
|
98
96
|
previous_hash: "0000000000000000000000000000000000000000000000000000000000000000",
|
99
97
|
block_data: "This is the first block of the blockchain.",
|
@@ -101,10 +99,8 @@ def create_first_block
|
|
101
99
|
connections: 0,
|
102
100
|
contracts_count: 0,
|
103
101
|
contracts_limit: ENV["CONTRACTS_LIMIT"].to_i,
|
104
|
-
# timestamp: Time.now
|
105
102
|
)
|
106
|
-
|
107
|
-
puts "First block created"
|
103
|
+
block.present? ? puts("First block OK") : puts("Block seed error")
|
108
104
|
end
|
109
105
|
|
110
106
|
def create_test_users
|
@@ -127,6 +123,17 @@ def create_test_users
|
|
127
123
|
end
|
128
124
|
end
|
129
125
|
|
126
|
+
def create_first_user
|
127
|
+
if User.find_by(email: ENV["FIRST_USER_EMAIL"], username: ENV["FIRST_USER_USERNAME"])
|
128
|
+
puts "First user already exists"
|
129
|
+
else
|
130
|
+
User.create(
|
131
|
+
email: ENV["FIRST_USER_EMAIL"], username: ENV["FIRST_USER_USERNAME"], password: ENV["FIRST_USER_PASSWORD"], password_confirmation: ENV["FIRST_USER_PASSWORD"]
|
132
|
+
)
|
133
|
+
puts "First user created"
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
130
137
|
if Rails.env.development?
|
131
138
|
dev_seed_exec
|
132
139
|
else
|
data/docker-compose.yml
CHANGED
@@ -27,9 +27,9 @@ services:
|
|
27
27
|
- redis
|
28
28
|
- db
|
29
29
|
- sidekiq
|
30
|
-
- chrome
|
31
30
|
env_file:
|
32
31
|
- .env
|
32
|
+
tty: true
|
33
33
|
sidekiq:
|
34
34
|
build: .
|
35
35
|
command: bundle exec sidekiq -C config/sidekiq.yml
|
@@ -40,14 +40,14 @@ services:
|
|
40
40
|
- db
|
41
41
|
env_file:
|
42
42
|
- .env
|
43
|
-
chrome:
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
43
|
+
# chrome:
|
44
|
+
# image: selenium/standalone-chrome
|
45
|
+
# ports:
|
46
|
+
# - "4444:4444"
|
47
|
+
# depends_on:
|
48
|
+
# - sidekiq
|
49
|
+
# volumes:
|
50
|
+
# - /dev/shm:/dev/shm
|
51
51
|
volumes:
|
52
52
|
redis:
|
53
53
|
postgres:
|
data/lib/osbc/osbc.rb
CHANGED
data/mining_concept.ipynb
CHANGED
@@ -89,8 +89,8 @@
|
|
89
89
|
}
|
90
90
|
],
|
91
91
|
"source": [
|
92
|
-
"key =
|
93
|
-
"secret =
|
92
|
+
"key = \n",
|
93
|
+
"secret = \n",
|
94
94
|
"\n",
|
95
95
|
"headers = {\n",
|
96
96
|
" 'X-API-KEY': key,\n",
|
@@ -245,7 +245,7 @@
|
|
245
245
|
}
|
246
246
|
],
|
247
247
|
"source": [
|
248
|
-
"hash_to_send =
|
248
|
+
"hash_to_send = \n",
|
249
249
|
"\n",
|
250
250
|
"params = { 'user_confirmation_hash' : hash_to_send }\n",
|
251
251
|
"confirm_request = re.post('http://localhost/api/v1/confirm_block', headers=headers, params=params)\n",
|
@@ -270,7 +270,7 @@
|
|
270
270
|
"name": "python",
|
271
271
|
"nbconvert_exporter": "python",
|
272
272
|
"pygments_lexer": "ipython3",
|
273
|
-
"version": "3.9.2"
|
273
|
+
"version": "3.9.2 (default, Feb 28 2021, 17:03:44) \n[GCC 10.2.1 20210110]"
|
274
274
|
},
|
275
275
|
"orig_nbformat": 4,
|
276
276
|
"vscode": {
|
@@ -12,7 +12,7 @@ Gem::Specification.new do |spec|
|
|
12
12
|
spec.description = "Blockchain implementation in Ruby using Rails and Docker"
|
13
13
|
spec.homepage = "https://outerspace-blockchain.herokuapp.com/"
|
14
14
|
spec.license = "MIT"
|
15
|
-
spec.required_ruby_version = ">= 3.0
|
15
|
+
spec.required_ruby_version = ">= 3.2.0"
|
16
16
|
|
17
17
|
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
18
18
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: osbc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jesus_gautamah
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -291,11 +291,8 @@ dependencies:
|
|
291
291
|
- !ruby/object:Gem::Version
|
292
292
|
version: '2.11'
|
293
293
|
description: |-
|
294
|
-
Outerspace Web Blockchain Framework implementation in Ruby using Rails and
|
294
|
+
Outerspace Web Blockchain Framework implementation in Ruby using Rails, Docker and Firestore, instable and under development.
|
295
295
|
Please visit https://github.com/JesusGautamah/outerspace-blockchain for more information.
|
296
|
-
If you like the project or ideas, please consider donating to the project ou star it on GitHub.
|
297
|
-
It will be constructed for a long time and will be improved with the help of the community.
|
298
|
-
Thank you for your support.
|
299
296
|
email:
|
300
297
|
- lima.jesuscc@gmail.com
|
301
298
|
executables:
|
@@ -310,7 +307,7 @@ executables:
|
|
310
307
|
extensions: []
|
311
308
|
extra_rdoc_files: []
|
312
309
|
files:
|
313
|
-
- ".
|
310
|
+
- ".env_sample"
|
314
311
|
- ".rspec"
|
315
312
|
- ".rubocop.yml"
|
316
313
|
- ".ruby-version"
|
@@ -598,7 +595,7 @@ metadata:
|
|
598
595
|
homepage_uri: https://github.com/JesusGautamah/outerspace-blockchain
|
599
596
|
source_code_uri: https://github.com/JesusGautamah/outerspace-blockchain
|
600
597
|
changelog_uri: https://github.com/JesusGautamah/outerspace-blockchain/blob/main/CHANGELOG.md
|
601
|
-
post_install_message:
|
598
|
+
post_install_message:
|
602
599
|
rdoc_options: []
|
603
600
|
require_paths:
|
604
601
|
- lib
|
@@ -613,8 +610,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
613
610
|
- !ruby/object:Gem::Version
|
614
611
|
version: '0'
|
615
612
|
requirements: []
|
616
|
-
rubygems_version: 3.
|
617
|
-
signing_key:
|
613
|
+
rubygems_version: 3.4.1
|
614
|
+
signing_key:
|
618
615
|
specification_version: 4
|
619
616
|
summary: Outerspace Web Blockchain Framework implementation in Ruby
|
620
617
|
test_files: []
|