BlockScout详细部署流程

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

Erlang/OTP23 Elixir 1.10.x

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

点赞 0
收藏 1
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
QuinnLee1020
QuinnLee1020
作为一个充满激情的区块链爱好者,主要在加密空间中行走超过 4 年。在 Solidity、Rust、Web3、React/Typescript、Next.js、Node.js、Nest.js、Subgraph 方面拥有丰富的知识和宝贵的经验。