<commit_before>* Support substring search.

* Create "short links" as on http://blockexplorer.com.

* Use explicit constraint names.

* Test on Oracle.

* Speed up SQL using materialized views or, where not available, other
  denormalization techniques.

* Test on MySQL.

* Use SEQUENCEs where available for synthetic identifiers.

* Write a validation module to check db data.

* Provide a fast load mode with constraints disabled.

* Test on Apache/FastCGI.

* Abstract inline SQL into the DataStore class.

* Break abe.py into modules.

* Highlight any objects that are not in the main chain as such.

* Store and report block size, address type, raw objects, etc.

* Perhaps create an "SQL script" DataStore subclass that outputs flat
  SQL INSERTs.

* Perhaps provide a postgresql-bytea binary type.

* Perhaps compress scriptPubKey by representing as a pubkey_id and
  address type.

* Tools/API like http://blockexplorer.com/q.

* Context-sensitive help as on http://blockexplorer.com.

* Simplify the process of adding new chains.

* Defend against corrupt or differently formatted block files, though
  yet unseen.

* Present Namecoin name operations.

* Import transactions from the pool.

* Perhaps add coin tracking features: allow the administrator to
  specify "interesting" transactions and addresses, then add a
  hyperlink from objects linked to them.

* Perhaps track and report coin difficulty as proposed by casascius:<commit_msg>Updated TO DOs.<commit_after>* Create "short links" as on http://blockexplorer.com.

* Use explicit constraint names.

* Test on Oracle.

* Speed up queries using denormalization and perhaps materialized
  views, where available.

* Test on MySQL.

* Use SEQUENCEs where available for synthetic identifiers.

* Write a validation module to check db data.

* Provide a fast load mode with constraints disabled.

* Test on Apache/FastCGI.

* Read options from a config file.

* Abstract inline SQL into the DataStore class.

* Break abe.py into modules: Explorer, DataStore, and DataInit.

* Highlight any objects that are not in the main chain as such.

* Store and report block size, address type, raw objects, etc.

* Perhaps support searching by hash/address substring.

* Tools/API like http://blockexplorer.com/q.

* Perhaps create a BlockExplorer.com compatibility mode.

* Perhaps create an "SQL script" DataStore subclass that outputs flat
  SQL INSERTs.

* Perhaps provide a postgresql-bytea binary type.

* Perhaps compress scriptPubKey by representing as a pubkey_id and
  address type.

* Context-sensitive help as on http://blockexplorer.com.

* Simplify the process of adding new chains.

* Defend against corrupt or differently formatted block files, though
  yet unseen.

* Present Namecoin name operations.

* Import transactions from the pool.

* Perhaps add coin tracking features: allow the administrator to
  specify "interesting" transactions and addresses, then add a
  hyperlink from objects linked to them.

* Perhaps track and report coin difficulty as proposed by casascius:
{'fraction_non_alphanumeric': 0.058669288757784335, 'fraction_numerical': 0.0, 'mean_word_length': 4.061359867330016, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, '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': '6995085', 'n_tokens_mistral': 841, 'n_tokens_neox': 816, 'n_words': 396}