All Projects → mempool → Mempool

mempool / Mempool

Licence: other
An open-source explorer developed for the Bitcoin community, focusing on the emerging transaction fee market to help our transition into a multi-layer ecosystem.

Programming Languages

typescript
32286 projects

Labels

Projects that are alternatives of or similar to Mempool

My Wallet V3
Blockchain Web Wallet Library - https://support.blockchain.com
Stars: ✭ 342 (-8.56%)
Mutual labels:  bitcoin
Ta4j Origins
A Java library for technical analysis ***Not maintained anymore, kept for archival purposes, see #192***
Stars: ✭ 354 (-5.35%)
Mutual labels:  bitcoin
Python Mnemonic
🐍 Mnemonic code for generating deterministic keys, BIP39
Stars: ✭ 369 (-1.34%)
Mutual labels:  bitcoin
Tribeca
A high frequency, market making cryptocurrency trading platform in node.js
Stars: ✭ 3,646 (+874.87%)
Mutual labels:  bitcoin
React Native Redux Crypto Tracker
💎 Learn how to build a Redux + React Native cryptocurrency app
Stars: ✭ 351 (-6.15%)
Mutual labels:  bitcoin
Awesome Decentralized
🕶 Awesome list of distributed, decentralized, p2p apps and tools 👍
Stars: ✭ 358 (-4.28%)
Mutual labels:  bitcoin
Minera
Minera is a web interface to monitor and manage mining devices
Stars: ✭ 337 (-9.89%)
Mutual labels:  bitcoin
Crypto Bar
📈 A menu bar app that updates cryptocurrencies prices in real-time
Stars: ✭ 379 (+1.34%)
Mutual labels:  bitcoin
Mixin
🚀 the Mixin TEE-BFT-DAG network reference implementation
Stars: ✭ 351 (-6.15%)
Mutual labels:  bitcoin
Crypto Arbitrage
Automatic Cryptocurrency Trading Bot using Triangular or Exchange Arbitrages
Stars: ✭ 369 (-1.34%)
Mutual labels:  bitcoin
Bisq
A decentralized bitcoin exchange network
Stars: ✭ 3,800 (+916.04%)
Mutual labels:  bitcoin
Rtl
Ride The Lightning - A full function web browser app for LND, C-Lightning and Eclair
Stars: ✭ 349 (-6.68%)
Mutual labels:  bitcoin
Algo Coin
Python library for algorithmic trading cryptocurrencies across multiple exchanges
Stars: ✭ 365 (-2.41%)
Mutual labels:  bitcoin
Wagyu
A Rust library for generating cryptocurrency wallets
Stars: ✭ 342 (-8.56%)
Mutual labels:  bitcoin
Forex Python
Foreign exchange rates, Bitcoin price index and currency conversion using ratesapi.io
Stars: ✭ 378 (+1.07%)
Mutual labels:  bitcoin
Ethlist
The Comprehensive Ethereum Reading List
Stars: ✭ 3,576 (+856.15%)
Mutual labels:  bitcoin
My Wallet V3 Android
Blockchain Android Wallet
Stars: ✭ 356 (-4.81%)
Mutual labels:  bitcoin
Miningcore
Miningcore is a high-performance Mining-Pool Engine that runs on Linux and Windows and supports a variety of crypto-currencies.
Stars: ✭ 378 (+1.07%)
Mutual labels:  bitcoin
Unchained
My personal study of blockchain related technology.
Stars: ✭ 379 (+1.34%)
Mutual labels:  bitcoin
Donut
🏹 Dead-simple cross-platform cryptocurrency tracker.
Stars: ✭ 367 (-1.87%)
Mutual labels:  bitcoin

The Mempool Open Source Project

Mempool is the fully featured visualizer, explorer, and API service running on mempool.space, an open source project developed and operated for the benefit of the Bitcoin community, with a focus on the emerging transaction fee market to help our transition into a multi-layer ecosystem.

mempool

Installation Methods

Mempool can be self-hosted on a wide variety of your own hardware, ranging from a simple one-click installation on a Raspberry Pi distro, all the way to an advanced high availability cluster of powerful servers for a production instance. We support the following installation methods, ranked in order from simple to advanced:

  1. One-click installation on: Umbrel, RaspiBlitz, RoninDojo, or MyNode.
  2. Docker installation on Linux using docker-compose
  3. Manual installation on Linux or FreeBSD
  4. Production installation on a powerful FreeBSD server
  5. High Availability cluster using powerful FreeBSD servers

Manual Installation

The following instructions are for a manual installation on Linux or FreeBSD. The file and directory paths may need to be changed to match your OS.

Dependencies

  • Bitcoin Core (no pruning, txindex=1)
  • Electrum Server (romanz/electrs)
  • NodeJS (official stable LTS)
  • MariaDB (default config)
  • Nginx (use supplied nginx.conf and nginx-mempool.conf)

Mempool

Clone the mempool repo, and checkout the latest release tag:

  git clone https://github.com/mempool/mempool
  cd mempool
  latestrelease=$(curl -s https://api.github.com/repos/mempool/mempool/releases/latest|grep tag_name|head -1|cut -d '"' -f4)
  git checkout $latestrelease

Bitcoin Core (bitcoind)

Enable RPC and txindex in bitcoin.conf:

  rpcuser=mempool
  rpcpassword=71b61986da5b03a5694d7c7d5165ece5
  txindex=1

MySQL

Install MariaDB from OS package manager:

  # Linux
  apt-get install mariadb-server mariadb-client

  # macOS
  brew install mariadb
  brew services start mariadb

Create database and grant privileges:

  MariaDB [(none)]> drop database mempool;
  Query OK, 0 rows affected (0.00 sec)

  MariaDB [(none)]> create database mempool;
  Query OK, 1 row affected (0.00 sec)

  MariaDB [(none)]> grant all privileges on mempool.* to 'mempool'@'%' identified by 'mempool';
  Query OK, 0 rows affected (0.00 sec)

From the mempool repo's top-level folder, import the database structure:

  mysql -u mempool -p mempool < mariadb-structure.sql

Mempool Backend

Install mempool dependencies from npm and build the backend:

  # backend
  cd backend
  npm install
  npm run build

In the backend folder, make a copy of the sample config and modify it to fit your settings.

  cp mempool-config.sample.json mempool-config.json

Edit mempool-config.json to add your Bitcoin Core node RPC credentials:

{
  "MEMPOOL": {
    "NETWORK": "mainnet",
    "BACKEND": "electrum",
    "HTTP_PORT": 8999,
    "API_URL_PREFIX": "/api/v1/",
    "POLL_RATE_MS": 2000
  },
  "CORE_RPC": {
    "USERNAME": "mempool",
    "PASSWORD": "71b61986da5b03a5694d7c7d5165ece5"
  },
  "ELECTRUM": {
    "HOST": "127.0.0.1",
    "PORT": 50002,
    "TLS_ENABLED": true,
  },
  "DATABASE": {
    "ENABLED": true,
    "HOST": "127.0.0.1",
    "PORT": 3306,
    "USERNAME": "mempool",
    "PASSWORD": "mempool",
    "DATABASE": "mempool"
  },
  "STATISTICS": {
    "ENABLED": true,
    "TX_PER_SECOND_SAMPLE_PERIOD": 150
  }
}

Start the backend:

  npm run start

When it's running you should see output like this:

  Mempool updated in 0.189 seconds
  Updating mempool
  Mempool updated in 0.096 seconds
  Updating mempool
  Mempool updated in 0.099 seconds
  Updating mempool
  Calculated fee for transaction 1 / 10
  Calculated fee for transaction 2 / 10
  Calculated fee for transaction 3 / 10
  Calculated fee for transaction 4 / 10
  Calculated fee for transaction 5 / 10
  Calculated fee for transaction 6 / 10
  Calculated fee for transaction 7 / 10
  Calculated fee for transaction 8 / 10
  Calculated fee for transaction 9 / 10
  Calculated fee for transaction 10 / 10
  Mempool updated in 0.243 seconds
  Updating mempool

Mempool Frontend

Install mempool dependencies from npm and build the frontend static HTML/CSS/JS:

  # frontend
  cd frontend
  npm install
  npm run build

Install the output into nginx webroot folder:

  sudo rsync -av --delete dist/mempool/ /var/www/html/

nginx + certbot

Install the supplied nginx.conf and nginx-mempool.conf in /etc/nginx

  # install nginx and certbot
  apt-get install -y nginx python-certbot-nginx

  # install the mempool configuration for nginx
  cp nginx.conf nginx-mempool.conf /etc/nginx/nginx.conf

  # replace example.com with your domain name
  certbot --nginx -d example.com

If everything went okay you should see the beautiful mempool 😁

If you get stuck on "loading blocks", this means the websocket can't connect. Check your nginx proxy setup, firewalls, etc. and open an issue if you need help.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].