Blockscout webgui display

#1

I ran through the blockscout-terraform setup no problem, but it looked like the web application wasn’t included. So i was following the step by step onpoanetwork/blockscout to install it manually on the ec2 instance provisioned, and noticed an error that said “File to import not found or unreadable: fa-brands”. I also noticed that the webpage looks malformed. I don’t have much front end developer experience, and I didn’t find anything of use to me when searching for that error.

Any idea why the page is displaying like this? Here is the log of my setup.

[ec2-user@ip-10-0-0-190 ~]$ cd blockscout/
[ec2-user@ip-10-0-0-190 blockscout]$ cp apps/explorer/config/dev.secret.exs.example apps/explorer/config/dev.secret.exs
[ec2-user@ip-10-0-0-190 blockscout]$ cp apps/block_scout_web/config/dev.secret.exs.example apps/block_scout_web/config/dev.secret.exs
[ec2-user@ip-10-0-0-190 blockscout]$ mix do deps.get, local.rebar --force, deps.compile, compile
warning: found quoted keyword “coveralls” but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them
/home/ec2-user/blockscout/deps/set_locale/mix.exs:15

Resolving Hex dependencies…
Dependency resolution completed:
Unchanged:
abnf2 0.1.2
bcrypt_elixir 1.0.6
benchee 0.13.1
benchee_csv 0.8.0
binary 0.0.5
bunt 0.2.0
bypass 0.8.1
certifi 2.3.1
combine 0.10.0
comeonin 4.1.1
connection 1.0.4
cowboy 1.1.2
cowlib 1.0.2
credo 0.9.2
crontab 1.1.2
csv 2.1.1
db_connection 1.1.3
decimal 1.5.0
deep_merge 0.1.1
dialyxir 0.5.1
earmark 1.2.5
ecto 2.2.8
elixir_make 0.4.1
ex_abi 0.1.16
ex_cldr 1.3.2
ex_cldr_numbers 1.2.0
ex_cldr_units 1.1.1
ex_doc 0.18.3
ex_machina 2.1.0
exactor 2.2.4
exjsx 4.0.0
exth_crypto 0.1.4
exvcr 0.10.0
file_system 0.2.4
floki 0.20.1
flow 0.12.0
gen_stage 0.12.2
gettext 0.14.1
hackney 1.13.0
html_entities 0.4.0
httpoison 1.1.0
idna 5.1.2
jason 1.0.0
jsx 2.8.3
junit_formatter 2.1.0
keccakf1600_orig 2.0.0
libsecp256k1 0.1.4
logger_file_backend 0.0.10
math 0.3.0
meck 0.8.9
metrics 1.0.1
mime 1.2.0
mimerl 1.0.2
mochiweb 2.15.0
mock 0.3.1
mox 0.4.0
parallel_stream 1.0.6
parse_trans 3.2.0
phoenix 1.3.0
phoenix_ecto 3.3.0
phoenix_html 2.10.5
phoenix_live_reload 1.1.3
phoenix_pubsub 1.0.2
plug 1.4.4
poison 3.1.0
poolboy 1.5.1
postgrex 0.13.5
qrcode 0.1.1
ranch 1.3.2
sobelow 0.7.0
ssl_verify_fun 1.1.1
timex 3.1.25 RETIRED!
(invalid) Incorrect Elixir version requirement
timex_ecto 3.2.1
tzdata 0.5.16
unicode_util_compat 0.3.1
wallaby 0.20.0
websocket_client 1.3.0

  • creating /home/ec2-user/.mix/rebar
  • creating /home/ec2-user/.mix/rebar3
    ===> Compiling parse_trans
    ===> Compiling websocket_client
    ===> Compiling mimerl
    ===> Compiling libsecp256k1
    warning: found quoted keyword “generate” but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them
    /home/ec2-user/blockscout/deps/abnf2/mix.exs:54

===> Compiling metrics
===> Compiling unicode_util_compat
===> Compiling idna
===> Compiling ranch
==> poolboy (compile)
warning: String.strip/1 is deprecated. Use String.trim/1 instead
/home/ec2-user/blockscout/deps/poison/mix.exs:4

==> ssl_verify_fun (compile)
===> Compiling keccakf1600
make: Entering directory /home/ec2-user/blockscout/deps/keccakf1600/c_src' make: Nothing to be done forall’.
make: Leaving directory /home/ec2-user/blockscout/deps/keccakf1600/c_src' ==> bcrypt_elixir make: Nothing to be done forall’.
warning: variable “description” does not exist and is being expanded to “description()”, please use parentheses to remove the ambiguity or change the variable name
/home/ec2-user/blockscout/deps/math/mix.exs:8

warning: variable “package” does not exist and is being expanded to “package()”, please use parentheses to remove the ambiguity or change the variable name
/home/ec2-user/blockscout/deps/math/mix.exs:9

warning: variable “deps” does not exist and is being expanded to “deps()”, please use parentheses to remove the ambiguity or change the variable name
/home/ec2-user/blockscout/deps/math/mix.exs:10

===> Compiling certifi
===> Compiling hackney
===> Compiling cowlib
===> Compiling cowboy
warning: found quoted keyword “docs” but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them
/home/ec2-user/blockscout/deps/phoenix/mix.exs:138

[ec2-user@ip-10-0-0-190 blockscout]$ mix do ecto.drop, ecto.create, ecto.migrate
warning: found quoted keyword “coveralls” but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them
/home/ec2-user/blockscout/deps/set_locale/mix.exs:15

The database for Explorer.Repo has been dropped
The database for Explorer.Repo has been created
18:35:16.535 application=ecto [info] == Running Explorer.Repo.Migrations.CreateAddress.change/0 forward
18:35:16.535 application=ecto [info] create table addresses
18:35:16.545 application=ecto [info] == Migrated in 0.0s
18:35:16.581 application=ecto [info] == Running Explorer.Repo.Migrations.CreateBlocks.change/0 forward
18:35:16.581 application=ecto [info] create table blocks
18:35:16.590 application=ecto [info] create index blocks_timestamp_index
18:35:16.594 application=ecto [info] create index blocks_parent_hash_index
18:35:16.599 application=ecto [info] create index blocks_number_index
18:35:16.603 application=ecto [info] == Migrated in 0.0s
18:35:16.625 application=ecto [info] == Running Explorer.Repo.Migrations.CreateTransactions.change/0 forward
18:35:16.625 application=ecto [info] create table transactions
18:35:16.635 application=ecto [info] create check constraint collated_block_number on table transactions
18:35:16.636 application=ecto [info] create check constraint collated_cumalative_gas_used on table transactions
18:35:16.638 application=ecto [info] create check constraint collated_gas_used on table transactions
18:35:16.640 application=ecto [info] create check constraint collated_index on table transactions
18:35:16.641 application=ecto [info] create check constraint collated_status on table transactions
18:35:16.643 application=ecto [info] create check constraint pending_block_number on table transactions
18:35:16.645 application=ecto [info] create check constraint pending_cumalative_gas_used on table transactions
18:35:16.646 application=ecto [info] create check constraint pending_gas_used on table transactions
18:35:16.648 application=ecto [info] create check constraint pending_index on table transactions
18:35:16.650 application=ecto [info] create check constraint pending_status on table transactions
18:35:16.651 application=ecto [info] create index transactions_block_hash_index
18:35:16.656 application=ecto [info] create index transactions_from_address_hash_index
18:35:16.659 application=ecto [info] create index transactions_to_address_hash_index
18:35:16.664 application=ecto [info] create index transactions_created_contract_address_hash_index
18:35:16.667 application=ecto [info] create index transactions_inserted_at_index
18:35:16.671 application=ecto [info] create index transactions_updated_at_index
18:35:16.676 application=ecto [info] create index transactions_status_index
18:35:16.680 application=ecto [info] create index transactions_recent_collated_index
18:35:16.684 application=ecto [info] create index transactions_block_hash_index_index
18:35:16.689 application=ecto [info] == Migrated in 0.0s
18:35:16.707 application=ecto [info] == Running Explorer.Repo.Migrations.CreateLogs.change/0 forward
18:35:16.707 application=ecto [info] create table logs
18:35:16.717 application=ecto [info] create index logs_address_hash_index
18:35:16.721 application=ecto [info] create index logs_transaction_hash_index
18:35:16.725 application=ecto [info] create index logs_index_index
18:35:16.729 application=ecto [info] create index logs_type_index
18:35:16.733 application=ecto [info] create index logs_first_topic_index
18:35:16.738 application=ecto [info] create index logs_second_topic_index
18:35:16.742 application=ecto [info] create index logs_third_topic_index
18:35:16.746 application=ecto [info] create index logs_fourth_topic_index
18:35:16.750 application=ecto [info] create index logs_transaction_hash_index_index
18:35:16.754 application=ecto [info] == Migrated in 0.0s
18:35:16.775 application=ecto [info] == Running Explorer.Repo.Migrations.CreateInternalTransactions.change/0 forward
18:35:16.776 application=ecto [info] create table internal_transactions
18:35:16.785 application=ecto [info] create check constraint call_has_error_or_result on table internal_transactions
18:35:16.787 application=ecto [info] create check constraint create_has_error_or_result on table internal_transactions
18:35:16.789 application=ecto [info] create check constraint suicide_has_from_and_to_address_hashes on table internal_transactions
18:35:16.790 application=ecto [info] create index internal_transactions_created_contract_address_hash_index
18:35:16.794 application=ecto [info] create index internal_transactions_from_address_hash_index
18:35:16.799 application=ecto [info] create index internal_transactions_to_address_hash_index
18:35:16.803 application=ecto [info] create index internal_transactions_transaction_hash_index
18:35:16.807 application=ecto [info] create index internal_transactions_transaction_hash_index_index
18:35:16.811 application=ecto [info] == Migrated in 0.0s
18:35:16.829 application=ecto [info] == Running Explorer.Repo.Migrations.CreateMarketHistory.change/0 forward
18:35:16.829 application=ecto [info] create table market_history
18:35:16.837 application=ecto [info] create index market_history_date_index
18:35:16.841 application=ecto [info] == Migrated in 0.0s
18:35:16.857 application=ecto [info] == Running Explorer.Repo.Migrations.CreateUsers.change/0 forward
18:35:16.858 application=ecto [info] create table users
18:35:16.866 application=ecto [info] create index unique_username
18:35:16.870 application=ecto [info] == Migrated in 0.0s
18:35:16.888 application=ecto [info] == Running Explorer.Repo.Migrations.CreateUserContacts.change/0 forward
18:35:16.888 application=ecto [info] create table user_contacts
18:35:16.893 application=ecto [info] create index user_contacts_user_id_index
18:35:16.898 application=ecto [info] create index email_unique_for_user
18:35:16.902 application=ecto [info] create index one_primary_per_user
18:35:16.907 application=ecto [info] == Migrated in 0.0s
18:35:16.927 application=ecto [info] == Running Explorer.Repo.Migrations.CreateSmartContractVerified.change/0 forward
18:35:16.928 application=ecto [info] create table smart_contracts
18:35:16.936 application=ecto [info] create index smart_contracts_address_hash_index
18:35:16.941 application=ecto [info] == Migrated in 0.0s
18:35:16.955 application=ecto [info] == Running Explorer.Repo.Migrations.CreateBtreeGistExtension.change/0 forward
18:35:16.957 application=ecto [info] execute “CREATE EXTENSION IF NOT EXISTS btree_gist”
18:35:16.987 application=ecto [info] == Migrated in 0.0s
18:35:17.008 application=ecto [info] == Running Explorer.Repo.Migrations.CreateBlockRewards.change/0 forward
18:35:17.009 application=ecto [info] create table block_rewards
18:35:17.015 application=ecto [info] create exclude constraint no_overlapping_ranges on table block_rewards
18:35:17.017 application=ecto [info] == Migrated in 0.0s
18:35:17.035 application=ecto [info] == Running Explorer.Repo.Migrations.CreateTokens.change/0 forward
18:35:17.035 application=ecto [info] create table tokens
18:35:17.041 application=ecto [info] create index tokens_contract_address_hash_index
18:35:17.045 application=ecto [info] == Migrated in 0.0s
18:35:17.065 application=ecto [info] == Running Explorer.Repo.Migrations.CreateTokenTransfers.change/0 forward
18:35:17.065 application=ecto [info] create table token_transfers
18:35:17.074 application=ecto [info] create index token_transfers_transaction_hash_index
18:35:17.078 application=ecto [info] create index token_transfers_to_address_hash_index
18:35:17.082 application=ecto [info] create index token_transfers_from_address_hash_index
18:35:17.087 application=ecto [info] create index token_transfers_token_contract_address_hash_index
18:35:17.091 application=ecto [info] create index token_transfers_transaction_hash_log_index_index
18:35:17.095 application=ecto [info] == Migrated in 0.0s
18:35:17.110 application=ecto [info] == Running Explorer.Repo.Migrations.AddInsertedAtIndexToBlocks.change/0 forward
18:35:17.111 application=ecto [info] create index blocks_inserted_at_index
18:35:17.115 application=ecto [info] == Migrated in 0.0s
18:35:17.131 application=ecto [info] == Running Explorer.Repo.Migrations.CreateBalances.change/0 forward
18:35:17.131 application=ecto [info] create table balances
18:35:17.137 application=ecto [info] create index balances_address_hash_block_number_index
18:35:17.142 application=ecto [info] create index unfetched_balances
18:35:17.146 application=ecto [info] == Migrated in 0.0s
18:35:17.165 application=ecto [info] == Running Explorer.Repo.Migrations.CreateAddressTokenBalances.change/0 forward
18:35:17.165 application=ecto [info] create table address_token_balances
18:35:17.174 application=ecto [info] create index address_token_balances_address_hash_token_contract_address_hash_block_number_index
18:35:17.178 application=ecto [info] create index unfetched_token_balances
18:35:17.183 application=ecto [info] == Migrated in 0.0s
18:35:17.201 application=ecto [info] == Running Explorer.Repo.Migrations.CreateAddressNames.change/0 forward
18:35:17.201 application=ecto [info] create table address_names
18:35:17.206 application=ecto [info] create index address_names_address_hash_index
18:35:17.210 application=ecto [info] create index unique_address_names
18:35:17.215 application=ecto [info] execute “INSERT INTO address_names (address_hash, name, “primary”, inserted_at, updated_at)\n (\n SELECT address_hash, name, true, NOW(), NOW()\n FROM smart_contracts WHERE name IS NOT NULL\n\n UNION\n\n SELECT contract_address_hash, name, false, NOW(), NOW()\n FROM tokens WHERE name IS NOT NULL\n );\n”
18:35:17.217 application=ecto [info] == Migrated in 0.0s
[ec2-user@ip-10-0-0-190 blockscout]$ cd apps/block_scout_web/assets && npm install; cd -
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.3 (node_modules/sane/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@^1.2.2 (node_modules/chokidar/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {“os”:“darwin”,“arch”:“any”} (current: {“os”:“linux”,“arch”:“x64”})
/home/ec2-user/blockscout
[ec2-user@ip-10-0-0-190 blockscout]$ cd apps/explorer && npm install; cd -
/home/ec2-user/blockscout
[ec2-user@ip-10-0-0-190 blockscout]$ mix phx.server
warning: found quoted keyword “coveralls” but the quotes are not required. Note that keywords are always atoms, even when quoted, and quotes should only be used to introduce keywords with foreign characters in them
/home/ec2-user/blockscout/deps/set_locale/mix.exs:15

18:35:50.236 application=file_system [error] inotify-tools is needed to run file_system for your system, check https://github.com/rvoicilas/inotify-tools/wiki for more information about how to install it. If it’s already installed but not be found, appoint executable file with config.exs or FILESYSTEM_FSINOTIFY_EXECUTABLE_FILE env.
18:35:50.236 application=phoenix_live_reload [warn] Could not start Phoenix live-reload because we cannot listen to the file system.
You don’t need to worry! This is an optional feature used during development to
refresh your browser when you save files and it does not affect production.

18:35:50.298 application=phoenix [info] Running BlockScoutWeb.Endpoint with Cowboy using http://0.0.0.0:4000

webpack is watching the files…

18:35:53.032 application=plug request_id=v4v6hr172nd4f9ebke12v6nlj5e1jh70 [info] GET /en/blocks
18:35:53.142 application=plug request_id=v4v6hr172nd4f9ebke12v6nlj5e1jh70 [info] Sent 200 in 109ms
Hash: 2a7fbd84b41d973d4228
Version: webpack 4.17.1
Time: 3246ms
Built at: 08/30/2018 6:35:54 PM
Asset Size Chunks Chunk Names
…/images/kovan_logo.svg 33.5 KiB [emitted]
app.js 2.78 MiB main [emitted] main
…/images/average_time.svg 1.78 KiB [emitted]
…/images/blocks.svg 2.61 KiB [emitted]
…/images/eth.png 3.66 KiB [emitted]
…/images/ethereum_logo.svg 3.46 KiB [emitted]
…/images/ethereum.png 13.7 KiB [emitted]
…/images/block.svg 1.53 KiB [emitted]
…/images/last_block.svg 1.6 KiB [emitted]
…/images/logo.svg 935 bytes [emitted]
…/favicon.ico 1.23 KiB [emitted]
…/images/poa_logo.svg 1.05 KiB [emitted]
…/images/purple-block.svg 1.53 KiB [emitted]
…/images/rinkeby_logo.svg 33.7 KiB [emitted]
…/images/smart_contract.svg 2.08 KiB [emitted]
…/images/ropsten_logo.svg 4.13 KiB [emitted]
…/images/token.svg 2.41 KiB [emitted]
…/images/sokol_logo.svg 1.54 KiB [emitted]
…/images/transaction.svg 494 bytes [emitted]
…/images/transactions.svg 983 bytes [emitted]
…/robots.txt 202 bytes [emitted]
Entrypoint main = app.js
[./js/app.js] 612 bytes {main} [built]
[./js/lib/clipboard_buttons.js] 668 bytes {main} [built]
[./js/lib/from_now.js] 1.14 KiB {main} [built]
[./js/lib/loading_element.js] 340 bytes {main} [built]
[./js/lib/market_history_chart.js] 4.97 KiB {main} [built]
[./js/lib/pretty_json.js] 475 bytes {main} [built]
[./js/lib/reload_button.js] 310 bytes {main} [built]
[./js/lib/smart_contract/read_only_functions.js] 1.55 KiB {main} [built]
[./js/lib/token_balance_dropdown.js] 794 bytes {main} [built]
[./js/lib/tooltip.js] 296 bytes {main} [built]
[./js/locale.js] 496 bytes {main} [built]
[./js/pages/address.js] 5.79 KiB {main} [built]
[./js/pages/block.js] 2.58 KiB {main} [built]
[./js/pages/chain.js] 7.39 KiB {main} [built]
[./js/pages/transaction.js] 6.14 KiB {main} [built]
+ 489 hidden modules

ERROR in ./css/app.scss
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/lib/loader.js):

@import “fa-brands”;
^
File to import not found or unreadable: fa-brands.
in /home/ec2-user/blockscout/apps/block_scout_web/assets/css/app.scss (line 10, column 1)
at runLoaders (/home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/webpack/lib/NormalModule.js:286:20)
at /home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/loader-runner/lib/LoaderRunner.js:364:11
at /home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/loader-runner/lib/LoaderRunner.js:230:18
at context.callback (/home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/loader-runner/lib/LoaderRunner.js:111:13)
at Object.render [as callback] (/home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/sass-loader/lib/loader.js:52:13)
at Object.done [as callback] (/home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/neo-async/async.js:7974:18)
at options.error (/home/ec2-user/blockscout/apps/block_scout_web/assets/node_modules/node-sass/lib/index.js:294:32)
@ ./css/app.scss

ERROR in ./css/app.scss (./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js??ref–5-4!./css/app.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):

@import “fa-brands”;
^
File to import not found or unreadable: fa-brands.
in /home/ec2-user/blockscout/apps/block_scout_web/assets/css/app.scss (line 10, column 1)
@ ./css/app.scss 2:14-169
Child extract-text-webpack-plugin node_modules/extract-text-webpack-plugin/dist node_modules/css-loader/index.js!node_modules/postcss-loader/lib/index.js!node_modules/sass-loader/lib/loader.js??ref–5-4!css/app.scss:
Entrypoint undefined = extract-text-webpack-plugin-output-filename
[./node_modules/css-loader/index.js!./node_modules/postcss-loader/lib/index.js!./node_modules/sass-loader/lib/loader.js?!./css/app.scss] ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js??ref–5-4!./css/app.scss 272 bytes {0} [built] [failed] [1 error]

ERROR in ./css/app.scss (./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js??ref--5-4!./css/app.scss)
Module build failed (from ./node_modules/sass-loader/lib/loader.js):

@import "fa-brands";
^
      File to import not found or unreadable: fa-brands.
      in /home/ec2-user/blockscout/apps/block_scout_web/assets/css/app.scss (line 10, column 1)

18:36:00.583 application=plug request_id=ssge7br8t8fseqgmsp9gq06ll50qe4vo [info] GET /en
18:36:00.636 application=plug request_id=ssge7br8t8fseqgmsp9gq06ll50qe4vo [info] Sent 200 in 53ms
18:36:00.698 application=plug request_id=rea1hqk7uoe6cmag2agiau53ei1fb2t8 [info] GET /css/app.css
18:36:02.731 application=plug request_id=r12a05b4pf8k3d9b3al93bg0t3fsvi2m [info] GET /en/blocks
18:36:02.735 application=plug request_id=r12a05b4pf8k3d9b3al93bg0t3fsvi2m [info] Sent 200 in 4ms

#2

Hi, please create an issue here https://github.com/poanetwork/blockscout/issues

#3

Thanks, I have sent the details here.