osbc 0.1.6 → 0.1.8
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/CHANGELOG.md +9 -3
- data/Gemfile.lock +1 -1
- data/README.md +24 -10
- data/app/controllers/api/v1/application_controller.rb +67 -0
- data/app/controllers/api/v1/block_confirmations_controller.rb +19 -38
- data/app/controllers/api/v1/ticket_manager_controller.rb +65 -0
- data/app/workers/create_ticket_worker.rb +1 -0
- data/config/initializers/sidekiq.rb +1 -0
- data/config/routes/api.rb +1 -1
- data/lib/osbc/osbc.rb +1 -1
- data/mining_concept.ipynb +2 -2
- metadata +15 -40
- data/coverage/.last_run.json +0 -5
- data/coverage/.resultset.json +0 -1746
- data/coverage/.resultset.json.lock +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png +0 -0
- data/coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png +0 -0
- data/coverage/assets/0.12.3/application.css +0 -1
- data/coverage/assets/0.12.3/application.js +0 -7
- data/coverage/assets/0.12.3/colorbox/border.png +0 -0
- data/coverage/assets/0.12.3/colorbox/controls.png +0 -0
- data/coverage/assets/0.12.3/colorbox/loading.gif +0 -0
- data/coverage/assets/0.12.3/colorbox/loading_background.png +0 -0
- data/coverage/assets/0.12.3/favicon_green.png +0 -0
- data/coverage/assets/0.12.3/favicon_red.png +0 -0
- data/coverage/assets/0.12.3/favicon_yellow.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_222222_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_454545_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_888888_256x240.png +0 -0
- data/coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/coverage/assets/0.12.3/loading.gif +0 -0
- data/coverage/assets/0.12.3/magnify.png +0 -0
- data/coverage/index.html +0 -20466
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: da66396b86c21e9d866ef9e4746f7564a13a11c47284e1e10e6dcacca653a22b
|
|
4
|
+
data.tar.gz: 2b0a20d56263176ccc5ed33031c28711515c34984e2f23b8b5f98336d85eca0b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ab8de79dae15c91100bbb0bc6af6ddbfcff1e19f9fe8fcbb2f3dfedbd4f28e254785e96ec0659a3cfd9ddc3db025ab33ff71809935f42ff7486b11008825c982
|
|
7
|
+
data.tar.gz: bdd757b8a908c0499dbdac4d352c421c625dd281c6c365661a285e14acff36f9553b614e2ceeb5502b579e36a9ba2cf5823e6f7919915a23662588fce85b2b34
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
## [Unreleased]
|
|
2
2
|
|
|
3
|
-
## [0.1.
|
|
4
|
-
|
|
5
|
-
- Initial
|
|
3
|
+
## [0.1.5]
|
|
4
|
+
### Added
|
|
5
|
+
- Initial Version
|
|
6
|
+
## [0.1.6]
|
|
7
|
+
### Added
|
|
8
|
+
- Docker Compose Installation Recognition
|
|
9
|
+
- Refactored some tests
|
|
10
|
+
- Added lib tasks helper to created rake tasks for blockchain
|
|
11
|
+
## [0.1.7]
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
|
@@ -12,6 +12,22 @@
|
|
|
12
12
|
|
|
13
13
|
#### Rspec is used to test the blockchain.
|
|
14
14
|
|
|
15
|
+
## Build Version: 0.1.7
|
|
16
|
+
### Last Update:
|
|
17
|
+
#### Added Open Ticket Api Methods
|
|
18
|
+
#### Refactored some methods and tests
|
|
19
|
+
#### Removed coverage folder github repo
|
|
20
|
+
##### TODO
|
|
21
|
+
###### Add more tests
|
|
22
|
+
###### Add more features
|
|
23
|
+
###### Include pagination
|
|
24
|
+
###### Create Queries Folder
|
|
25
|
+
###### Test in kubernetes
|
|
26
|
+
###### Add more documentation
|
|
27
|
+
###### Add NFT Generator
|
|
28
|
+
###### Increase the environment variables for autoconfig
|
|
29
|
+
###### Add features to autogeneration of blockchain for better configuration
|
|
30
|
+
|
|
15
31
|
## System dependencies
|
|
16
32
|
1. Docker
|
|
17
33
|
2. Postgresql
|
|
@@ -159,18 +175,16 @@ The mine will depend of the contract signatures that will be formed by the serve
|
|
|
159
175
|
2. The server will send a message to the user to start mining if the POOL is open
|
|
160
176
|
3. The users will load the RANDOM WORD LIST provided by the server API
|
|
161
177
|
4. The user have to use 1 common word, 1 symbol sequence and 1 number sequence, randomize the characters
|
|
162
|
-
5. Transform the chartacters in a SHA256 hash
|
|
163
|
-
6.
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
8. If the hash is valid, check if the same transactions have the same block state confirmation
|
|
168
|
-
9. If this transactions was not confirmed at this point at block history the server will add the user signature to the transaction contract
|
|
178
|
+
5. Transform the shuffled chartacters in a SHA256 hash
|
|
179
|
+
6. The user will send the hash to the server
|
|
180
|
+
7. The server will validate the hash and will send a message to the user if the hash is valid
|
|
181
|
+
8. If the hash is valid, check if the same transactions have the same block state confirmation, if yes, the user will have to mine again in a new state of the transactions timeline
|
|
182
|
+
9. If this transactions was not confirmed at this point at block history the server will add the user signature to the transactions contracts included in the users ticket timeline range
|
|
169
183
|
10. The block only can be hashed when the minimum number of contracts valids with minimum number of signatures is reached
|
|
170
184
|
11. The server will use the signature timeline to determine what transactions will be added to the block
|
|
171
185
|
12. The server will calculate the master hash after confirm all valid contracts signatures
|
|
172
|
-
13.
|
|
173
|
-
13. The server will start a open/closed pool cycle
|
|
186
|
+
13. Assignmaster hash to the block, create new block and add to the blockchain with previous block hash
|
|
187
|
+
13. The server will start a open/closed pool cycle ( pool is open only if has a minimun of transactions to mine )
|
|
174
188
|
14. The server will send a message to the user to start mining when the POOL is open and user has a ticket
|
|
175
189
|
<p>
|
|
176
190
|
The timestamps of the signatures will be usefull to version the block, checking it as a timeline
|
|
@@ -178,7 +192,7 @@ The timestamps of the signatures will be usefull to version the block, checking
|
|
|
178
192
|
|
|
179
193
|
**The miners will be rewarded with the block reward distributed by the number of signatures**
|
|
180
194
|
## Contributing
|
|
181
|
-
Bug reports and pull requests are welcome on GitHub at https://github.com/
|
|
195
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/JesusGautamah/outerspace-blockchain
|
|
182
196
|
|
|
183
197
|
## License
|
|
184
198
|
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Api::V1::ApplicationController < ActionController::API
|
|
4
|
+
def unauthorized?
|
|
5
|
+
return unauthorized_response unless find_user_by_header
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
def ticket_founded?
|
|
9
|
+
@ticket = Ticket.find_by(user_id: @user.id, status: :active)
|
|
10
|
+
return ticket_not_found_response unless @ticket.present?
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
private
|
|
14
|
+
attr_accessor :user
|
|
15
|
+
|
|
16
|
+
def find_user_by_header
|
|
17
|
+
return unless request.headers["X-API-KEY"].present?
|
|
18
|
+
api_key = request.headers["X-API-KEY"]
|
|
19
|
+
@user = User.find_by(api_key: api_key)
|
|
20
|
+
return unless @user.present?
|
|
21
|
+
@user.api_secret == request.headers["X-API-SECRET"]
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def confirmation_hash_founded?
|
|
25
|
+
return confirmation_hash_not_found_response unless confirmation_hash.present?
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
def confirmation_hash
|
|
29
|
+
@confirmation_hash ||= block_confirmation_params[:user_confirmation_hash]
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def confirmation_hash_not_found_response
|
|
33
|
+
render json: { error: "Confirmation hash not found" }, status: :not_found
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def ticket_not_found_response
|
|
37
|
+
render json: { error: "Ticket not found" }, status: :not_found
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def unauthorized_response
|
|
41
|
+
render json: { error: "Unauthorized" }, status: :unauthorized
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def current_block
|
|
45
|
+
@current_block = Block.find_by(master_hash: nil)
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
def current_pool
|
|
49
|
+
@current_pool = Pool.find_by(block_id: current_block.id)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def ticket
|
|
53
|
+
@ticket = Ticket.find_by(user_id: user.id, status: :active)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
def block_transactions
|
|
57
|
+
@block_transactions = Transaction.where(block_id: current_block.id)
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
def block_transactions_empty?
|
|
61
|
+
return no_transactions_response unless block_transactions.present?
|
|
62
|
+
end
|
|
63
|
+
|
|
64
|
+
def no_transactions_response
|
|
65
|
+
render json: { error: "No transactions in the block" }, status: :not_found
|
|
66
|
+
end
|
|
67
|
+
end
|
|
@@ -1,62 +1,43 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
class Api::V1::BlockConfirmationsController <
|
|
3
|
+
class Api::V1::BlockConfirmationsController < Api::V1::ApplicationController
|
|
4
|
+
before_action :unauthorized?
|
|
5
|
+
before_action :ticket_founded?, only: [:confirm_block]
|
|
6
|
+
before_action :confirmation_hash_founded?, only: [:confirm_block]
|
|
7
|
+
|
|
4
8
|
def confirm_block
|
|
5
|
-
return
|
|
6
|
-
@ticket = Ticket.find_by(user_id: @user.id, status: :active)
|
|
7
|
-
return ticket_not_found_response unless @ticket.present?
|
|
8
|
-
confirmation_hash = block_confirmation_params[:user_confirmation_hash]
|
|
9
|
-
return confirmation_hash_not_found_response unless confirmation_hash.present?
|
|
10
|
-
return not_valid_confirmation_hash_response unless @ticket.user_acceptable_hash == confirmation_hash
|
|
9
|
+
return not_valid_confirmation_hash_response unless hash_confirmed?
|
|
11
10
|
assign_contract
|
|
12
11
|
end
|
|
13
12
|
|
|
14
|
-
# def transactions_to_mine
|
|
15
|
-
# return unauthorized_response unless find_user_by_header
|
|
16
|
-
# ticket = Ticket.find_by(user_id: @user.id)
|
|
17
|
-
# return ticket_not_found_response unless ticket.present?
|
|
18
|
-
# transactions_ids = ticket.transaction_id_list
|
|
19
|
-
# transactions = Transaction.where(id: transactions_ids)
|
|
20
|
-
# transactions_json = transactions.to_json
|
|
21
|
-
# render json: transactions_json, status: :ok
|
|
22
|
-
# end
|
|
23
|
-
|
|
24
13
|
def info_to_mine
|
|
25
|
-
return unauthorized_response unless find_user_by_header
|
|
26
|
-
words = @user.acceptable_words
|
|
27
|
-
number_sequences = @user.acceptable_number_sequences
|
|
28
|
-
symbol_sequences = @user.acceptable_symbol_sequences
|
|
29
14
|
render json: { words: words, number_sequences: number_sequences, symbol_sequences: symbol_sequences }, status: :ok
|
|
30
15
|
end
|
|
31
16
|
|
|
32
17
|
private
|
|
33
|
-
def
|
|
34
|
-
|
|
35
|
-
api_key = request.headers["X-API-KEY"]
|
|
36
|
-
@user = User.find_by(api_key: api_key)
|
|
37
|
-
return unless @user.present?
|
|
38
|
-
@user.api_secret == request.headers["X-API-SECRET"]
|
|
18
|
+
def hash_confirmed?
|
|
19
|
+
@ticket.user_acceptable_hash == confirmation_hash
|
|
39
20
|
end
|
|
40
21
|
|
|
41
|
-
def
|
|
42
|
-
|
|
22
|
+
def assign_contract
|
|
23
|
+
AssignContractWorker.perform_async(@ticket.id)
|
|
24
|
+
render json: { message: "Contract assigned" }, status: :ok
|
|
43
25
|
end
|
|
44
26
|
|
|
45
|
-
def
|
|
46
|
-
render json: { error: "
|
|
27
|
+
def not_valid_confirmation_hash_response
|
|
28
|
+
render json: { error: "Not valid confirmation hash" }, status: :not_found
|
|
47
29
|
end
|
|
48
30
|
|
|
49
|
-
def
|
|
50
|
-
|
|
31
|
+
def words
|
|
32
|
+
@words = @user.acceptable_words
|
|
51
33
|
end
|
|
52
34
|
|
|
53
|
-
def
|
|
54
|
-
|
|
55
|
-
render json: { message: "Contract assigned" }, status: :ok
|
|
35
|
+
def number_sequences
|
|
36
|
+
@number_sequences = @user.acceptable_number_sequences
|
|
56
37
|
end
|
|
57
38
|
|
|
58
|
-
def
|
|
59
|
-
|
|
39
|
+
def symbol_sequences
|
|
40
|
+
@symbol_sequences = @user.acceptable_symbol_sequences
|
|
60
41
|
end
|
|
61
42
|
|
|
62
43
|
def block_confirmation_params
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
class Api::V1::TicketManagerController < Api::V1::ApplicationController
|
|
4
|
+
before_action :unauthorized?
|
|
5
|
+
before_action :block_transactions_empty?, only: [:open_ticket]
|
|
6
|
+
|
|
7
|
+
def open_ticket
|
|
8
|
+
return ticket_already_opened_response unless ticket_nil?
|
|
9
|
+
return ticket_already_opened_response if ticket_active?
|
|
10
|
+
return terms_not_confirmed_response unless ticket_params_confirmed?
|
|
11
|
+
create_ticket if acceptable_create?
|
|
12
|
+
ticket_opened_response
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
def ticket_nil?
|
|
18
|
+
ticket.nil?
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def ticket_active?
|
|
22
|
+
return false if ticket_nil?
|
|
23
|
+
ticket.status == "active"
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
def acceptable_create?
|
|
27
|
+
ticket_nil? && ticket_params_confirmed? || ticket_params_confirmed? && ticket_active? == false
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def ticket_params_confirmed?
|
|
31
|
+
open_ticket_params[:ticket_terms] == "confirmed"
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def ticket_already_opened_response
|
|
35
|
+
render json: { error: "Ticket already opened" }, status: :not_found
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def ticket_opened_response
|
|
39
|
+
render json: { message: "Ticket opened" }, status: :ok
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
def terms_not_confirmed_response
|
|
43
|
+
render json: { error: "Ticket terms not confirmed" }, status: :not_found
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
def open_ticket_params
|
|
47
|
+
params.permit(:ticket_terms)
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def time_ref
|
|
51
|
+
@time_ref = block_transactions.first.created_at.to_s
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
def user_id
|
|
55
|
+
@user_id = user.id.to_s
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def current_pool_id
|
|
59
|
+
@current_pool_id = current_pool.id.to_s
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
def create_ticket
|
|
63
|
+
CreateTicketWorker.perform_async(user_id, current_pool_id, time_ref)
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
Sidekiq.strict_args!
|
data/config/routes/api.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
namespace :api do
|
|
4
4
|
namespace :v1 do
|
|
5
5
|
post "confirm_block", to: "block_confirmations#confirm_block"
|
|
6
|
-
|
|
6
|
+
post "open_ticket", to: "ticket_manager#open_ticket"
|
|
7
7
|
get "info_to_mine", to: "block_confirmations#info_to_mine"
|
|
8
8
|
end
|
|
9
9
|
end
|
data/lib/osbc/osbc.rb
CHANGED
data/mining_concept.ipynb
CHANGED
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
"secret = 'a239c12ecc42911ecbc3b23a9539976caaa60f7d40028dea17cb67cc538c21bd'\n",
|
|
94
94
|
"\n",
|
|
95
95
|
"headers = {\n",
|
|
96
|
-
" 'X-
|
|
97
|
-
" 'X-
|
|
96
|
+
" 'X-API-KEY': key,\n",
|
|
97
|
+
" 'X-API-SECRET': secret,\n",
|
|
98
98
|
"}\n",
|
|
99
99
|
"\n",
|
|
100
100
|
"\n",
|
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.1.
|
|
4
|
+
version: 0.1.8
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- jesus_gautamah
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2022-11-
|
|
11
|
+
date: 2022-11-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -290,7 +290,12 @@ dependencies:
|
|
|
290
290
|
- - "~>"
|
|
291
291
|
- !ruby/object:Gem::Version
|
|
292
292
|
version: '2.11'
|
|
293
|
-
description:
|
|
293
|
+
description: |-
|
|
294
|
+
Outerspace Web Blockchain Framework implementation in Ruby using Rails and Docker.
|
|
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.
|
|
294
299
|
email:
|
|
295
300
|
- lima.jesuscc@gmail.com
|
|
296
301
|
executables:
|
|
@@ -340,7 +345,9 @@ files:
|
|
|
340
345
|
- app/assets/stylesheets/home.css
|
|
341
346
|
- app/channels/application_cable/channel.rb
|
|
342
347
|
- app/channels/application_cable/connection.rb
|
|
348
|
+
- app/controllers/api/v1/application_controller.rb
|
|
343
349
|
- app/controllers/api/v1/block_confirmations_controller.rb
|
|
350
|
+
- app/controllers/api/v1/ticket_manager_controller.rb
|
|
344
351
|
- app/controllers/application_controller.rb
|
|
345
352
|
- app/controllers/blocks_controller.rb
|
|
346
353
|
- app/controllers/chains_controller.rb
|
|
@@ -520,6 +527,7 @@ files:
|
|
|
520
527
|
- config/initializers/filter_parameter_logging.rb
|
|
521
528
|
- config/initializers/inflections.rb
|
|
522
529
|
- config/initializers/permissions_policy.rb
|
|
530
|
+
- config/initializers/sidekiq.rb
|
|
523
531
|
- config/locales/devise.en.yml
|
|
524
532
|
- config/locales/en.yml
|
|
525
533
|
- config/puma.rb
|
|
@@ -528,39 +536,6 @@ files:
|
|
|
528
536
|
- config/sidekiq.yml
|
|
529
537
|
- config/storage.yml
|
|
530
538
|
- config/tailwind.config.js
|
|
531
|
-
- coverage/.last_run.json
|
|
532
|
-
- coverage/.resultset.json
|
|
533
|
-
- coverage/.resultset.json.lock
|
|
534
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc.png
|
|
535
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_asc_disabled.png
|
|
536
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_both.png
|
|
537
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc.png
|
|
538
|
-
- coverage/assets/0.12.3/DataTables-1.10.20/images/sort_desc_disabled.png
|
|
539
|
-
- coverage/assets/0.12.3/application.css
|
|
540
|
-
- coverage/assets/0.12.3/application.js
|
|
541
|
-
- coverage/assets/0.12.3/colorbox/border.png
|
|
542
|
-
- coverage/assets/0.12.3/colorbox/controls.png
|
|
543
|
-
- coverage/assets/0.12.3/colorbox/loading.gif
|
|
544
|
-
- coverage/assets/0.12.3/colorbox/loading_background.png
|
|
545
|
-
- coverage/assets/0.12.3/favicon_green.png
|
|
546
|
-
- coverage/assets/0.12.3/favicon_red.png
|
|
547
|
-
- coverage/assets/0.12.3/favicon_yellow.png
|
|
548
|
-
- coverage/assets/0.12.3/images/ui-bg_flat_0_aaaaaa_40x100.png
|
|
549
|
-
- coverage/assets/0.12.3/images/ui-bg_flat_75_ffffff_40x100.png
|
|
550
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_55_fbf9ee_1x400.png
|
|
551
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_65_ffffff_1x400.png
|
|
552
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_75_dadada_1x400.png
|
|
553
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_75_e6e6e6_1x400.png
|
|
554
|
-
- coverage/assets/0.12.3/images/ui-bg_glass_95_fef1ec_1x400.png
|
|
555
|
-
- coverage/assets/0.12.3/images/ui-bg_highlight-soft_75_cccccc_1x100.png
|
|
556
|
-
- coverage/assets/0.12.3/images/ui-icons_222222_256x240.png
|
|
557
|
-
- coverage/assets/0.12.3/images/ui-icons_2e83ff_256x240.png
|
|
558
|
-
- coverage/assets/0.12.3/images/ui-icons_454545_256x240.png
|
|
559
|
-
- coverage/assets/0.12.3/images/ui-icons_888888_256x240.png
|
|
560
|
-
- coverage/assets/0.12.3/images/ui-icons_cd0a0a_256x240.png
|
|
561
|
-
- coverage/assets/0.12.3/loading.gif
|
|
562
|
-
- coverage/assets/0.12.3/magnify.png
|
|
563
|
-
- coverage/index.html
|
|
564
539
|
- db/migrate/20221018053949_devise_create_users.rb
|
|
565
540
|
- db/migrate/20221019002956_create_chains.rb
|
|
566
541
|
- db/migrate/20221020112137_create_blocks.rb
|
|
@@ -615,14 +590,14 @@ files:
|
|
|
615
590
|
- tmp/storage/.keep
|
|
616
591
|
- vendor/.keep
|
|
617
592
|
- vendor/javascript/.keep
|
|
618
|
-
homepage: https://outerspace-blockchain
|
|
593
|
+
homepage: https://github.com/JesusGautamah/outerspace-blockchain
|
|
619
594
|
licenses:
|
|
620
595
|
- MIT
|
|
621
596
|
metadata:
|
|
622
597
|
allowed_push_host: https://rubygems.org
|
|
623
|
-
homepage_uri: https://outerspace-blockchain
|
|
598
|
+
homepage_uri: https://github.com/JesusGautamah/outerspace-blockchain
|
|
624
599
|
source_code_uri: https://github.com/JesusGautamah/outerspace-blockchain
|
|
625
|
-
changelog_uri: https://github.com/
|
|
600
|
+
changelog_uri: https://github.com/JesusGautamah/outerspace-blockchain/blob/main/CHANGELOG.md
|
|
626
601
|
post_install_message:
|
|
627
602
|
rdoc_options: []
|
|
628
603
|
require_paths:
|
|
@@ -641,5 +616,5 @@ requirements: []
|
|
|
641
616
|
rubygems_version: 3.2.32
|
|
642
617
|
signing_key:
|
|
643
618
|
specification_version: 4
|
|
644
|
-
summary: Blockchain implementation in Ruby
|
|
619
|
+
summary: Outerspace Web Blockchain Framework implementation in Ruby
|
|
645
620
|
test_files: []
|