Block Delivery Network
block-dn
is a simple web server that connects to your
existing Bitcoin full node to serve data from the time chain to fetch
over HTTP(S).
The goal is to serve the following data to Light Clients (e.g. mobile
wallets):
- Block headers
- Blocks
- Compact Filter headers
- Compact Filters
There are two ways to use block-dn
:
Connect to your own node
Install and run block-dn
on your own device and configure
that HTTP endpoint in your compatible wallet. Your own node's chain
information is then used to sync the wallet state.
Use the Cloud Flare CDN cached instance
If you have a way to find out the current most recent block hash from
your peers or your own node, the rest of the chain data (e.g. block
headers, blocks, compact filters) can be downloaded from an untrusted
source. Such an untrusted source can be found at
bdn.world and
block-dn.org respectively. Both these
sites run an instance of block-dn
and are behind Cloud
Flare's caching proxy service, effectively caching the data in
geographically distributed sites around the world for maximum access
speed and very low latency.
Available REST endpoints
Endpoint | Description | Example |
---|---|---|
/status |
Returns a JSON file with the latest block height and hash. | bdn.world/status |
/block/<block_hash> |
Returns a single block, identified by its block hash. | bdn.world/block/000000000000000000030ee5.... |
/headers/<start_block> |
Returns a binary file containing 100'000 block headers, serialized as 80 bytes per header (8 MB per file). | bdn.world/headers/0 |
/filter-headers/<start_block> |
Returns a binary file containing 100'000 compact filter headers, serialized as 32 bytes per filter header hash (3.2 MB per file). | bdn.world/filter-headers/100000 |
/filters/<start_block> |
Returns a binary file containing 2'000 compact filters,
serialized as variable length byte arrays:
Each filter starting with a VarInt specifying
the length of a filter, followed by that many bytes for the
actual filter (up to 58 MiB per file as per block 817'995).
|
bdn.world/filters/802000 |
Source code on GitHub
Check out the source code and installation instructions for this project at github.com/guggero/block-dn.