Etherchain Light is an Ethereum blockchain explorer built with NodeJS, Express and Parity. It does not require an external database and retrieves all information on the fly from a backend Ethereum node.
While there are several excellent Ethereum blockchain explorers available (etherscan, ether.camp and etherchain) they operate on a fixed subset of Ethereum networks, usually the mainnet and testnet. Currently there are no network agnostic blockchain explorers available. If you want to develop Dapps on a private testnet or would like to launch a private / consortium network, Etherchain Light will allow you to quickly explore such chains.
A demo instance connected to the Kovan Ethereum testnet is available at light.etherchain.org. An example of a verified contract source can be found at 0x0cf37d2d45427a1380db12c9b352d6f083143817. An example of a transaction where the corresponding Solidity function name and parameters have been identified can be found at 0x82da63f3d998415b748111e6f1d11051167fb995fdca990acd3cfd5a8b397c20
- Browse blocks, transactions, accounts and contracts
- View pending transactions
- Display contract internal calls (call, create, suicide)
- Upload & verify contract sources
- Show Solidity function calls & parameters (for contracts with available source code)
- Display the current state of verified contracts
- Named accounts
- Advanced transaction tracing (VM Traces & State Diff)
- View failed transactions
- Live Backend Node status display
- Submit signed Transactions to the Network
- Support for all Bootswatch skins
- Accounts enumeration
- Signature verification
- Supports IPC and HTTP backend connections
- Responsive layout
- ERC20 Token support
Missing a feature? Please request it by creating a new Issue.
This blockchain explorer is intended for private Ethereum chains. As it does not have a dedicated database all data will be retrived on demand from a backend Parity node. Some of those calls are ressource intensive (e.g. retrieval of the full tx list of an account) and do not scale well for acounts with a huge number of transactions. We currently develop the explorer using the Kovan testnet but it will work with every Parity compatible Ethereum network configuration. The explorer is still under heavy development, if you find any problems please create an issue or prepare a pull request.
Supported OS: Ubuntu 16.04
Supported Ethereum backend nodes: Parity (Geth is currently not supported as it does not allow account and received/sent tx enumeration)
- Setup a nodejs & npm environment
- Install the latest version of the Parity Ethereum client
- Start parity using the following options:
parity --chain=<yourchain> --tracing=on --fat-db=on --pruning=archive
- Clone this repository to your local machine:
git clone https://github.com/gobitfly/etherchain-light --recursive
(Make sure to include--recursive
in order to fetch the solc-bin git submodule) - Install all dependencies:
npm install
- Rename
config.js.example
intoconfig.js
and adjust the file to your local environment - Start the explorer:
npm start
- Browse to
http://localhost:3000
In the explorer's index page and /account/<ethereum_address>
there is a list
of recent transactions, these are the last transactions found in the last 128
blocks, this can be configured in config.js
, changing the value of
this.blockCount
.
By default etherchain
connects to the local rpc server localhost:8545
, you
can manually specify a remote rpc server using npm start -- --rpc=<remote_host>:<port>
.
Currently all links in etherchain has the prefix /explorer
, in order to make
all links work locally (including styles and javascript), the prefix has to be removed.
Build then run the container
docker build -t etherchain-light .
docker run -p 3000:3000 etherchain-light
Or directly bind the config.js file to avoid rebuilding the image
docker run -p "3000:3000" \
-v "$(pwd)/config.js":/usr/src/app/config.js \
etherchain-light
docker-compose up
etherchain
depends on a number of RPC namespaces. It should have access to web3
, net
, eth
, debug
and trace
.
For best results it also needs the debug_accountRangeAt
and debug_storageRangeAt
feature.
From trace
it needs trace_block
, trace_filter
and trace_replayTransaction
.