Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/codingchili/bitcoin-explorer

Just another blockchain explorer in Python with asyncio/aiohttp and Web Components.
https://github.com/codingchili/bitcoin-explorer

aiohttp asyncio bitcoin blockchain bunny-components javascript python web-components

Last synced: 6 days ago
JSON representation

Just another blockchain explorer in Python with asyncio/aiohttp and Web Components.

Awesome Lists containing this project

README

        

# Tiny Bitcoin Explorer

Webserver -> json -> bitcoin rpc, the stuff.

Built with a preview version of bunny-components, my web components library 🐰

**Requires: Python 3.6.3+**

**Dependencise**
- aiohttp (rqeuired)
- ecdsa (optional; required for private key generation)
- base58 (optional, required for private key generation)

### Structure

Sources are in
- main.py - starts the event loop.
- server/btcrpc.py - bitcoin node rpc connector.
- web.py - serves the website and api endpoints.

Web resources
- web/script/bitcoin.js - server api integration.
- index.html & web/script/bitcoin-explorer.js - web ui

### Features

- create/import private keys (wif).
- key management in local storage.
- block/transaction explorer.
- spending of tx outputs.
- chain info/metadata.

:warning: **Security alert** :warning:

- No authentication to access the rpc node enabled (don't import keys into the wallet!)
- Private keys are stored in the browser using local-storage, NOT encrypted.
- For educational purposes only!

### Bitcoin configuration

Make sure to enable the bitcoin nodes rpc server, example configuration (`~/.bitcoin/bitcoinf.conf`)

```
server=1
rpcuser=
rpcpassword=
rpcthreads=128
rpcworkqueue=2048
txindex=1
reindex=1
```

### Installing

```bash
pip install requirements.txt
python main.py # enter rpc user/password
```

Starts a HTTP server on port 8080.

Block explorer

![screenshot](screenshot.png)

Transaction dialog

![sending transaction](screenshots/transaction_dialog.png)