Self-Hosted Bitcoin explorer for anyone running Bitcoin Core.
This is a self-hosted explorer for the Bitcoin blockchain, driven by RPC calls to your own Bitcoin node. It is easy to run and can be connected to other tools (like Electrum servers) to achieve a full-featured explorer.
Whatever reasons you may have for running a full node (trustlessness, technical curiosity, supporting the network, etc) it's valuable to appreciate the fullness of your node. With this explorer, you can explore not just the blockchain database, but also explore all of the functional capabilities of your own node.
Live demos available at:
See CHANGELOG.md.
Bitcoin Core
- instructions. Ensure that Bitcoin Core
's' RPC server is enabled (server=1
).Bitcoin Core
to synchronize with the Bitcoin network (you can use this tool while sychronizing, but some pages may fail).This tool is designed to work best with full transaction indexing enabled (txindex=1
) and pruning disabled.However, if you're running Bitcoin Core v0.21+ you can run without txindex
enabled and/or with pruning
enabled and this tool will continue to function, but some data will be incomplete or missing. Also note that such Bitcoin Core configurations receive less thorough testing.
In particular, with pruning
enabled and/or txindex
disabled, the following functionality is altered:
If you're running on mainnet with the default datadir and port, the default configuration should Just Work. Otherwise, see the Configuration section below.
npm
:npm install -g btc-rpc-explorer
btc-rpc-explorer
git clone https://github.com/janoside/btc-rpc-explorer
cd btc-rpc-explorer
npm install
npm start
git clone https://aur.archlinux.org/btc-rpc-explorer.git
cd btc-rpc-explorer
makepkg -csi
systemctl enable --now btc-rpc-explorer
After a default installation+startup using any of the above methods, the app can be viewed at http://127.0.0.1:3002/
Configuration options may be set via environment variables or CLI arguments.
To configure with environment variables, you need to create one of the 2 following files and enter values in it:
~/.config/btc-rpc-explorer.env
.env
in the working directory for btc-rpc-explorerIn either case, refer to .env-sample for a list of the options and formatting details.
For configuring with CLI arguments, run btc-rpc-explorer --help
for the full list of options. An example execution is:
btc-rpc-explorer --port 8080 --bitcoind-port 18443 --bitcoind-cookie ~/.bitcoin/regtest/.cookie
To match the features visible on the demo site at BitcoinExplorer.org you'll need to set the following non-default configuration values:
BTCEXP_DEMO=true # enables some demo/informational aspects of the site
BTCEXP_NO_RATES=false # enables querying of exchange rate data
BTCEXP_SLOW_DEVICE_MODE=false # enables resource-intensive tasks (UTXO set query, 24hr volume querying) that are inappropriate for "slow" devices
BTCEXP_ADDRESS_API=electrum # use electrum-protocol servers for address lookups
BTCEXP_ELECTRUM_SERVERS=tcp://your-electrum-protocol-server-host:50001 # address(es) for my electrum-protocol server(s)
BTCEXP_IPSTACK_APIKEY=your-api-key # enable peer ip geo-location
BTCEXP_MAPBOX_APIKEY=your-api-key # enable map of peer locations
You can configure SSO authentication similar to what ThunderHub and RTL provide.To enable it, make sure BTCEXP_BASIC_AUTH_PASSWORD
is not set and set BTCEXP_SSO_TOKEN_FILE
to point to a file write-accessible by btc-rpc-explorer.Then to access btc-rpc-explorer, your SSO provider needs to read the token from this file and set it in URL parameter token
.For security reasons the token changes with each login, so the SSO provider needs to read it each time!
After successful access with the token, a cookie is set for authentication, so you don't need to worry about it anymore.To improve user experience you can set BTCEXP_SSO_LOGIN_REDIRECT_URL
to the URL of your SSO provider.This will cause users to be redirected to your login page if needed.
docker build -t btc-rpc-explorer .
docker run -it -p 3002:3002 -e BTCEXP_HOST=0.0.0.0 btc-rpc-explorer
See instructions here for using nginx+certbot (letsencrypt) for an HTTPS-accessible, reverse-proxied site.
If you get value from this project, please consider supporting my continued work with a donation. Any and all donations are truly appreciated.
Cashier-BTC v2 refactored and improved Tests: Self-hosted Node.js Bitcoin payment gateway. Provides REST API (microservice).Process Bitcoin payments on your end, securely, with no comission. Request p
Bitcoin & Monero Cross-chain Atomic Swap ia.cr/2020/1126 Abstract In blockchains where hashed timelock contracts are possible atomic swaps are already deployed, but when one blockchain doesn't have th
Flex提供RPC服务以向客户端提供服务器端数据。 Flex为服务器端数据提供了相当大的控制。 使用Flex RPC服务,我们可以定义要在服务器端执行的用户操作。 Flex RPC Sservices可以与任何服务器端技术集成。 其中一个Flex RPC服务提供内置支持,可以通过线路传输压缩二进制数据,速度非常快。 Flex提供以下三种类型的RPC服务 S.No RPC服务和描述 1 HttpSe
基于GWT的应用程序通常由客户端模块和服务器端模块组成。 客户端代码在浏览器中运行,服务器端代码在Web服务器中运行。 客户端代码必须在网络上发出HTTP请求才能访问服务器端数据。 RPC,远程过程调用是GWT使用的机制,其中客户端代码可以直接执行服务器端方法。 GWT RPC是基于servlet的。 GWT RPC是异步的,客户端在通信期间从不被阻止。 使用GWT RPC Java对象可以直接在
RPC文档托管在这里: https://tendermint.com/rpc/ 若要更新文档,可以在 rpc/core 目录 编辑相关的 godoc 注释。
JSON is a lightweight data-interchange format. It can represent numbers, strings, ordered sequences of values, and collections of name/value pairs. JSON-RPC is a stateless, light-weight remote procedu