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):

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.