2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# Mempool Backend
  
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-11 11:05:53 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								These instructions are mostly intended for developers. 
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								If you choose to use these instructions for a production setup, be aware that you will still probably need to do additional configuration for your specific OS, environment, use-case, etc. We do our best here to provide a good starting point, but only proceed if you know what you're doing. Mempool does not provide support for custom setups.
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								See other ways to set up Mempool on [the main README ](/../../#installation-methods ).
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Jump to a section in this doc:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Set Up the Backend ](#setup ) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  [Development Tips ](#development-tips ) 
						 
					
						
							
								
									
										
										
										
											2022-01-19 13:03:43 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								## Setup
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### 1. Clone Mempool Repository
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Get the latest Mempool code:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git clone https://github.com/mempool/mempool
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd mempool
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Check out the latest release:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								latestrelease=$(curl -s https://api.github.com/repos/mempool/mempool/releases/latest|grep tag_name|head -1|cut -d '"' -f4)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								git checkout $latestrelease
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### 2. Configure Bitcoin Core
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Turn on `txindex` , enable RPC, and set RPC credentials in `bitcoin.conf` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								txindex=1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								server=1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								rpcuser=mempool
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								rpcpassword=mempool
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### 3. Configure Electrum Server
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[Pick an Electrum Server implementation ](https://mempool.space/docs/faq#address-lookup-issues ), configure it, and make sure it's synced.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								**This step is optional.** You can run Mempool without configuring an Electrum Server for it, but address lookups will be disabled.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-26 17:57:48 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### 4. Configure MariaDB
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								_Mempool needs MariaDB v10.5 or later. If you already have MySQL installed, make sure to migrate any existing databases **before**  installing MariaDB._
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Get MariaDB from your operating system's package manager:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# Debian, Ubuntu, etc.
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								apt-get install mariadb-server mariadb-client
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# macOS
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								brew install mariadb
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								mysql.server start
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Create a 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)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### 5. Prepare Mempool Backend
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#### Build
  
						 
					
						
							
								
									
										
										
										
											2022-01-19 13:03:43 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-09 17:39:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								_Make sure to use Node.js 16.10 and npm 7._
							 
						 
					
						
							
								
									
										
										
										
											2022-05-26 18:19:58 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Install dependencies with `npm`  and build the backend:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd backend
							 
						 
					
						
							
								
									
										
										
										
											2022-06-09 17:39:07 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								npm install
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								npm run build
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								#### Configure
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In the backend folder, make a copy of the sample config file:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cp mempool-config.sample.json mempool-config.json
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Edit `mempool-config.json`  as needed. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								In particular, make sure:
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								-  the correct Bitcoin Core RPC credentials are specified in `CORE_RPC`  
						 
					
						
							
								
									
										
										
										
											2022-05-26 22:13:37 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								-  the correct `BACKEND`  is specified in `MEMPOOL` : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  "electrum" if you're using [romanz/electrs ](https://github.com/romanz/electrs ) or [cculianu/Fulcrum ](https://github.com/cculianu/Fulcrum )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  "esplora" if you're using [Blockstream/electrs ](https://github.com/Blockstream/electrs )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  -  "none" if you're not using any Electrum Server
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### 6. Run Mempool Backend
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								Run the Mempool 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
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### 7. Set Up Mempool Frontend
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								With the backend configured and running, proceed to set up the [Mempool frontend ](../frontend#manual-setup ).
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								## Development Tips
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								### Set Up Backend Watchers
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								The Mempool backend is static. TypeScript scripts are compiled into the `dist`  folder and served through a Node.js web server. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								As a result, for development purposes, you may find it helpful to set up backend watchers to avoid the manual shutdown/recompile/restart command-line cycle.
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								First, install `nodemon`  and `ts-node` :
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								npm install -g ts-node nodemon
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2022-01-19 13:03:43 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Then, run the watcher:
							 
						 
					
						
							
								
									
										
										
										
											2022-01-19 13:03:43 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
									
										
										
										
											2022-01-20 17:20:02 +09:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								nodemon src/index.ts --ignore cache/ --ignore pools.json
							 
						 
					
						
							
								
									
										
										
										
											2022-01-03 11:47:04 +09:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-05-23 14:03:50 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								`nodemon`  should be in npm's global binary folder. If needed, you can determine where that is with `npm -g bin` . 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								### Useful Regtest Commands
  
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Helpful link: https://gist.github.com/System-Glitch/cb4e87bf1ae3fec9925725bb3ebe223a
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Run bitcoind on regtest:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bitcoind -regtest -rpcport=8332
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Create a new wallet, if needed:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bitcoin-cli -regtest -rpcport=8332 createwallet test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Load wallet (this command may take a while if you have lot of UTXOs):
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bitcoin-cli -regtest -rpcport=8332 loadwallet test
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Get a new address:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   address=$(./src/bitcoin-cli -regtest -rpcport=8332 getnewaddress)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Mine blocks to the previously generated address. You need at least 101 blocks before you can spend. This will take some time to execute (~1 min):
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   bitcoin-cli -regtest -rpcport=8332 generatetoaddress 101 $address
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Send 0.1 BTC at 5 sat/vB to another address:
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ./src/bitcoin-cli -named -regtest -rpcport=8332 sendtoaddress address=$(./src/bitcoin-cli -regtest -rpcport=8332 getnewaddress) amount=0.1 fee_rate=5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								See more example of `sendtoaddress` :
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ./src/bitcoin-cli sendtoaddress # will print the help
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Mini script to generate transactions with random TX fee-rate (between 1 to 100 sat/vB). It's slow so don't expect to use this to test mempool spam, except if you let it run for a long time, or maybe with multiple regtest nodes connected to each other.
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   #!/bin/bash
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   address=$(./src/bitcoin-cli -regtest -rpcport=8332 getnewaddress)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   for i in {1..1000000}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   do
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								     ./src/bitcoin-cli -regtest -rpcport=8332 -named sendtoaddress address=$address amount=0.01 fee_rate=$(jot -r 1  1 100)
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   done
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-06-15 13:11:59 -04:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								Generate block at regular interval (every 10 seconds in this example):
							 
						 
					
						
							
								
									
										
										
										
											2022-06-13 11:28:34 +02:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								   ```
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   watch -n 10 "./src/bitcoin-cli -regtest -rpcport=8332 generatetoaddress 1 $address"
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								   ```