99 lines
4.4 KiB
Markdown
99 lines
4.4 KiB
Markdown
# bal-server
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
$ git clone ....
|
|
$ cd bal-server
|
|
$ cargo build --release
|
|
$ sudo cp target/release/bal-server /usr/local/bin
|
|
$ bal-server
|
|
```
|
|
|
|
## Configuration
|
|
|
|
The `bal-server` application can be configured using environment variables. The following variables are available:
|
|
|
|
| Variable | Description | Default |
|
|
| --- | --- | --- |
|
|
| `BAL_SERVER_CONFIG_FILE` | Path to the configuration file. If the file does not exist, a new one will be created. | `$HOME/.config/bal-server/default-config.toml` |
|
|
| `BAL_SERVER_DB_FILE` | Path to the SQLite3 database file. If the file does not exist, a new one will be created. | `bal.db` |
|
|
| `BAL_SERVER_BIND_ADDRESS` | Public address for listening to requests. | `127.0.0.1` |
|
|
| `BAL_SERVER_BIND_PORT` | Default port for listening to requests. | `9137` |
|
|
| `BAL_SERVER_REGTEST_ADDRESS` | Bitcoin address for the regtest environment. | - |
|
|
| `BAL_SERVER_REGTEST_FIXED_FEE` | Fixed fee for the regtest environment. | 50000 |
|
|
| `BAL_SERVER_SIGNET_ADDRESS` | Bitcoin address for the signet environment. | - |
|
|
| `BAL_SERVER_SIGNET_FIXED_FEE` | Fixed fee for the signet environment. | 50000 |
|
|
| `BAL_SERVER_TESTNET_ADDRESS` | Bitcoin address for the testnet environment. | - |
|
|
| `BAL_SERVER_TESTNET_FIXED_FEE` | Fixed fee for the testnet environment. | 50000 |
|
|
| `BAL_SERVER_BITCOIN_ADDRESS` | Bitcoin address for the mainnet environment. | - |
|
|
| `BAL_SERVER_BITCOIN_FIXED_FEE` | Fixed fee for the mainnet environment. | 50000 |
|
|
# bal-pusher
|
|
|
|
`bal-pusher` is a tool that retrieves Bitcoin transactions from a database and pushes them to the Bitcoin network when their **locktime** exceeds the **median time past** (MTP). It listens for Bitcoin block updates via ZMQ.
|
|
|
|
## Installation
|
|
|
|
To use `bal-pusher`, you need to compile and install Bitcoin with ZMQ (ZeroMQ) support enabled. Then, configure your Bitcoin node and `bal-pusher` to push the transactions.
|
|
|
|
### Prerequisites
|
|
|
|
1. **Bitcoin with ZMQ Support**:
|
|
Ensure that Bitcoin is compiled with ZMQ support. Add the following line to your `bitcoin.conf` file:
|
|
|
|
```
|
|
zmqpubhashblock=tcp://127.0.0.1:28332
|
|
```
|
|
|
|
2. **Install Rust and Cargo**:
|
|
If you haven't already installed Rust and Cargo, you can follow the official instructions to do so: [Rust Installation](https://www.rust-lang.org/tools/install).
|
|
|
|
### Installation Steps
|
|
|
|
1. Clone the repository:
|
|
|
|
```bash
|
|
git clone <repo-url>
|
|
cd bal-pusher
|
|
```
|
|
|
|
2. Build the project:
|
|
|
|
```bash
|
|
cargo build --release
|
|
```
|
|
|
|
3. Install the binary:
|
|
|
|
```bash
|
|
sudo cp target/release/bal-pusher /usr/local/bin
|
|
```
|
|
|
|
## Configuration
|
|
|
|
`bal-pusher` can be configured using environment variables. If no configuration file is provided, a default configuration file will be created.
|
|
|
|
### Available Configuration Variables
|
|
|
|
| Variable | Description | Default |
|
|
|---------------------------------------|------------------------------------------|----------------------------------------------|
|
|
| `BAL_PUSHER_CONFIG_FILE` | Path to the configuration file. If the file does not exist, it will be created. | `$HOME/.config/bal-pusher/default-config.toml` |
|
|
| `BAL_PUSHER_DB_FILE` | Path to the SQLite3 database file. If the file does not exist, it will be created. | `bal.db` |
|
|
| `BAL_PUSHER_ZMQ_LISTENER` | ZMQ listener for Bitcoin updates. | `tcp://127.0.0.1:28332` |
|
|
| `BAL_PUSHER_BITCOIN_HOST` | Bitcoin server host for RPC connections. | `http://127.0.0.1` |
|
|
| `BAL_PUSHER_BITCOIN_PORT` | Bitcoin RPC server port. | `8332` |
|
|
| `BAL_PUSHER_BITCOIN_COOKIE_FILE` | Path to Bitcoin RPC cookie file. | `$HOME/.bitcoin/.cookie` |
|
|
| `BAL_PUSHER_BITCOIN_RPC_USER` | Bitcoin RPC username. | - |
|
|
| `BAL_PUSHER_BITCOIN_RPC_PASSWORD` | Bitcoin RPC password. | - |
|
|
|
|
|
|
## Running `bal-pusher`
|
|
|
|
Once the application is installed and configured, you can start `bal-pusher` by running the following command:
|
|
|
|
```bash
|
|
$ bal-pusher
|
|
```
|
|
|
|
This will start the service, which will listen for Bitcoin blocks via ZMQ and push transactions from the database when their locktime exceeds the median time past.
|