<commit_before># Toshi: A PostgreSQL Backed Full Bitcoin Node

Toshi is a full bitcoin node that is ideal for building scalable web applications or analyzing blockchain data.

It provides an API, simple blockchain explorer, and SQL datastore of blockchain data.  It can be used as a complete replacement for [bitcoind](https://github.com/bitcoin/bitcoin), and strives for 100% compatibility (block and transaction verification code is copied line for line from bitcoind).

Toshi is a spin out of http://coinbase.com and is actively maintained by the Coinbase [team](https://coinbase.com/careers).  Our goal is to migrate to using Toshi in production in the near future. Toshi is a Japanese word (トシ) which means bright and intelligent, and is a play on the name <NAME> (the creator of bitcoin).  It is pronounced "toe-shee".

## Features

 * Full bitcoin node implementation (including block and transaction verification rules)
 * Does not require bitcoind
 * Passes 100% of BlueMatt's bitcoin node [test suite](https://github.com/TheBlueMatt/test-scripts)
 * PostgeSQL backed (more convenient for web applications and research)
 * JSON, Hex, and Binary API
 * Simple web interface to monitor node status

## Comparison to bitcoind

Toshi is written in ruby and uses a PostgreSQL datastore. Bitcoind is written in C++ and uses LevelDB.  Bitcoind is much faster at syncing with the blockchain, but provides a limited interface to blockchain data through LevelDB.  Toshi is slower to sync but makes it easier to create web applications by using a SQL datastore (PostgreSQL) and may be more accessible to people familiar with Ruby.

## Docs TODO

 * double check if Heroku setup steps work
 * add heroku deploy button?
 * DONE comparison to bitcoind? (language, performance, etc)
 * check docker example - does this work?<commit_msg>readme updates based on Andy's comments<commit_after># Toshi: A PostgreSQL Backed Full Bitcoin Node

Toshi is a full bitcoin node that is ideal for building scalable web applications or analyzing blockchain data.

It provides an API, simple blockchain explorer, and SQL datastore of blockchain data.  It can be used as a complete replacement for [bitcoind](https://github.com/bitcoin/bitcoin), and strives for 100% compatibility with bitcoind (block and transaction verification code is as close as possible).

Toshi is a spin out of http://coinbase.com and is actively maintained by the Coinbase [team](https://coinbase.com/careers).  Our goal is to migrate to using Toshi in production in the near future. Toshi is a Japanese word (トシ) which means bright and intelligent, and is a play on the name <NAME> (the creator of bitcoin).  It is pronounced "toe-shee".

## Features

 * Full bitcoin node implementation (including block and transaction verification rules)
 * Does not require bitcoind
 * Passes 100% of BlueMatt's bitcoin node [test suite](https://github.com/TheBlueMatt/test-scripts)
 * PostgeSQL backed (more convenient for web applications and research)
 * JSON, Hex, and Binary API
 * Simple web interface to monitor node status

## Comparison to bitcoind

Toshi is written in Ruby and uses a PostgreSQL datastore. Bitcoind is written in C++ and uses LevelDB.  Bitcoind is much faster at syncing with the blockchain, but provides a limited interface to blockchain data through LevelDB.  Toshi is slower to sync but allows much more complex queries against the blockchain in SQL. This makes it easier to create web applications or do blockchain analysis.

## Docs TODO

 * double check if Heroku setup steps work
 * add heroku deploy button?
 * DONE comparison to bitcoind? (language, performance, etc)
 * check docker example - does this work?
{'fraction_non_alphanumeric': 0.055871982641714134, 'fraction_numerical': 0.0032546786004882017, 'mean_word_length': 4.554216867469879, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 5, 'https://': 6, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6140533', 'n_tokens_mistral': 970, 'n_tokens_neox': 905, 'n_words': 525}