BlockScout为用户提供了一个全面的、易于使用的界面,以查看、确认和检查EVM(Ethereum虚拟机)区块链上的交易。BlockScout目前承载着POA网络、xDai Chain、Ethereum Classic、Sokol & Kovan测试网以及许多其他测试网、私有链和侧链。
BlockScout是一个Elixir应用程序,允许用户搜索交易,查看账户和余额,并验证Ethereum上的智能合约,包括分叉和侧链。
BlockScout为用户提供了一个全面的、易于使用的界面,以查看、确认和检查EVM(Ethereum虚拟机)区块链上的交易。BlockScout目前承载着POA网络、xDai Chain、Ethereum Classic、Sokol & Kovan测试网以及许多其他测试网、私有链和侧链。
准备环境 环境 Mac Linux Erlang/OTP 24 brew install erlang Erlang Install Example Elixir 1.12.x brew install elixir Elixir Install Example Postgres 10.3+,11,12, 13 brew install postgresql Postgres Install Example Node.js 14.x.x brew install node Node.js Install Example Automake brew install automake Automake Install Example Libtool brew install libtool Libtool Install Example Inotify-tools Not Required Ubuntu - apt-get install inotify-tools GCC Compiler brew install gcc GCC Compiler Example GMP brew install gmp Install GMP Devel Make - sudo apt install makeif Debian 9 G++ Compiler - sudo apt install g++if Debian 9 Rust - Install Rust Cargo - Ubuntu - apt-get install cargo 安装环境 Ubuntu
wget https://packages.erlang-solutions.com/erlang-solutions_2.0_all.deb && sudo dpkg -i erlang-solutions_2.0_all.deb sudo apt-get update sudo apt-get install esl-erlang sudo apt-get install elixir
automake
sudo apt-get install automake autoconf
make
sudo apt-get install make
inotify-tools
sudo apt-get install inotify-tools
gmp
sudo apt-get install libgmp-dev
libtool
sudo apt-get install libtool
gcc
sudo apt-get install gcc
g++
sudo apt-get install g++
rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh 定义变量 以下是部署客户端时不可或缺的环境变量
环境变量 默认 BLOCKSCOUT_VERSION unknown COIN POA DB_HOST - DB_PASSWORD - DB_PORT - DB_USERNAME - ETHEREUM_JSONRPC_HTTP_URL http://localhost:8545 ETHEREUM_JSONRPC_TRACE_URL http://localhost:8545 ETHEREUM_JSONRPC_WS_URL ws://localhost:8546 ETHEREUM_JSONRPC_VARIANT parity HEART_BEAT_TIMEOUT 30 HEART_COMMAND sudo systemctl restart explorer.service LOGO /images/blockscout_logo.svg NETWORK POA Network SUBNETWORK Sokol Testnet NETWORK_ICON _test_network_icon.html LINK_TO_OTHER_EXPLORERS true 部署步骤 手动部署 克隆源码 git clone https://github.com/blockscout/blockscout 进入根目录 cd blockscout 3设置数据库连接环境变量
注意
您的账户必须有创建数据库的权限
export DATABASE_URL=postgresql://user:password@localhost:5432/block
export DB_HOST=127.0.0.1 export DB_PASSWORD=123456 export DB_PORT=5432 export DB_USERNAME=postgres 设置 secret_key_base 环境变量 export SECRET_KEY_BASE=VTIB3uHDNbvrY0+60ZWgUoUBKDn9p 或者你也可以运行以下命令生成一个新的secret_key_base
mix phx.gen.secret 如果您以前已经部署过,请从先前的版本中删除静态资源 mix phx.digest.clean 设置其他环境变量 配置客户端连接
BlockScout 目前支持 Parity, OpenEthereum, Geth, Nethermind, Hyperledger 客户端。
export COIN=MHXW export ETHEREUM_JSONRPC_VARIANT=geth export ETHEREUM_JSONRPC_HTTP_URL="http://localhost:8545" export ETHEREUM_JSONRPC_WS_URL="ws://localhost:8545" export ETHEREUM_JSONRPC_TRACE_URL="http://localhost:8545" export BLOCK_TRANSFORMER=clique export NETWORK="testnet" export MIX_ENV=prod 安装Mix依赖,并对其进行编译 mix do deps.get, local.rebar --force, deps.compile, compile
mix do deps.get mix do local.rebar --force mix do deps.compile mix do compile 提示
在获取该依赖时候可能因地域网络原因存在超时现象,需使用境外网络代理。如果仍超时,可将获取依赖时间延长。
创建和迁移数据库 mix do ecto.create, ecto.migrate 提示
如果在开发环境中采用不同的区块链运行过该程序,请执行以下命令删除以前的数据库
注意
ecto.drop将从数据库中删除所有数据。如果您不想丢失所有数据,请不要在生产中执行它!
mix do ecto.drop, ecto.create, ecto.migrate 安装 Node.js 依赖 cd apps/block_scout_web/assets npm install && node_modules/webpack/bin/webpack.js --mode production cd -
cd apps/explorer && npm install cd - 建立用于部署的静态资产,执行命令 cd apps/block_scout_web/ mix phx.digest 启用HTTPS cd apps/block_scout_web/ mix phx.gen.cert blockscout blockscout.local cd - 然后将 blockscout 和 blockscout.local 配置到 /etc/hosts
127.0.0.1 localhost blockscout blockscout.local
255.255.255.255 broadcasthost
::1 localhost blockscout blockscout.local 返回到源码根目录并启动Phoenix Server 在浏览器输入ip:4000查看是否部署成功。
Docker 方式部署 克隆并进入源码目录 git clone https://github.com/blockscout/blockscout cd blockscout 设置环境变量 vim ~/.bashrc export DATABASE_URL=postgresql://user:password@localhost:5432/explorer export COIN=MHXW export ETHEREUM_JSONRPC_VARIANT=geth export ETHEREUM_JSONRPC_HTTP_URL="http://localhost:8545" export ETHEREUM_JSONRPC_WS_URL="ws://localhost:8545" export ETHEREUM_JSONRPC_TRACE_URL="http://localhost:8545" export BLOCK_TRANSFORMER=clique export NETWORK="testnet" export MIX_ENV=prod 运行服务 make start 常见问题 https://docs.blockscout.com/for-developers/ansible-deployment/common-errors-and-questions
参考文档 https://github.com/blockscout/docs/tree/master/for-developers/information-and-settings https://docs.blockscout.com/for-developers/information-and-settings/requirements
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!