An open API service indexing awesome lists of open source software.

https://github.com/0xb10c/bademeister-go

Implementation of Bademeister, a mempool watcher and recorder, in Golang.
https://github.com/0xb10c/bademeister-go

Last synced: 3 months ago
JSON representation

Implementation of Bademeister, a mempool watcher and recorder, in Golang.

Awesome Lists containing this project

README

        

# bademeister-go

Bademeister implementation in Golang.

## What is bademeister?

Bademeister records the mempool history of a Bitcoin Core node and provides access to the data over an API.

It stores the time when a transaction was first received by a bitcoin node, including
transactions that do not end up in the blockchain (double-spends).

### Motivation

While the bitcoin blockchain contains all transactions that get eventually confirmed,
the confirmation time (time between a transaction first appearing on the
network and being included into a block by a miner) is not recorded on-chain.

Having a record of confirmation time allows research and benchmark of fee estimation
algorithms and other applications.

### Design Goals

* Easy to run: requirement is a patched version of `bitcoind`
* Easy to interface with
* REST API, Golang API
* Support simple query types like
* `getFirstSeen(txid, nodeId): Date`
* `getMempool(Date, nodeId): Transaction[]`
* Easy to combine multiple sources of data to have a robust data collection network

## Development

### Git Hooks

Please set up git hooks to run `go fmt` and other linters:

```bash
git config core.hooksPath .git_hooks
```