Permalink
Fetching contributors…
Cannot retrieve contributors at this time
187 lines (135 sloc) 7.31 KB
* MerkleRootMismatch reported when a non-final blocks/blk*.dat ends in
a NUL span. Ignore the span.
* Block/tx blacklist.
* Consider allowing unlimited script length.
* UnicodeEncodeError on non-ASCII MySQLdb connect params.
* Bugs affecting bytea hashin?
File "Abe/DataStore.py", line 1539, in import_block
tx['tx_id'] = store.import_tx(tx, pos == 0)
File "Abe/DataStore.py", line 1875, in import_tx
store.intin(tx['lockTime']), len(tx['tx'])))
File "Abe/DataStore.py", line 418, in sql
store.cursor.execute(cached, params)
IntegrityError: duplicate key value violates unique constraint "tx_tx_hash_key"
Failed to catch up {'blkfile_number': 1, 'dirname': '/home/bitcoin/.bitcoin', 'c
hain_id': None, 'id': Decimal('1'), 'blkfile_offset': 434255480}
Traceback (most recent call last):
File "Abe/DataStore.py", line 2220, in catch_up
try:
File "Abe/DataStore.py", line 2243, in catch_up_dir
while (True):
File "Abe/DataStore.py", line 2359, in import_blkdat
chain_ids = frozenset([] if chain_id is None else [chain_id])
File "Abe/DataStore.py", line 1655, in import_block
(block_id, txin_id, oblock_id))
File "Abe/DataStore.py", line 418, in sql
store.cursor.execute(cached, params)
TransactionRollbackError: deadlock detected
DETAIL: Process 8102 waits for ShareLock on transaction 3744470; blocked by pro
cess 20041.
Process 20041 waits for ShareLock on transaction 3744468; blocked by process 8102.
HINT: See server log for query details.
CONTEXT: SQL statement "SELECT 1 FROM ONLY "public"."block" x WHERE "block_id" OPERATOR(pg_catalog.=) $1 FOR SHARE OF x"
* Compress standard txout scripts by representing them as a pubkey_id
and script type. Multi-signature outputs require thought; leave
pubkey_id null and retain the script for starters.
* Support new script types. Fix the firstbits table on upgrade.
Recent non-zero outputs showing as Unknown:
tx_hash=b728387a3cf1dfcff1eef13706816327907f79f9366a7098ee48fc0c00ad2726,
Bitcoin 140921, 64:f816...d335 CHECKSIG.
tx_hash=9740e7d646f5278603c04706a366716e5e87212c57395e0d24761c0ae784b2c6,
Bitcoin 141460, 76:4c55...652e CHECKSIG. Various in Bitcoin 150951:
DUP HASH160 0: EQUALVERIFY CHECKSIG.
tx_hash=9969603dca74d14d29d1d5f56b94c7872551607f8c2d6837ab9715c60721b50e,
Bitcoin 154012, 8:04678afd04678afd DROP SHA256 32:894e...e95c EQUAL,
redeemed with 7:04678afd0467.
tx_hash=b8fd633e7713a43d5ac87266adc78444669b987a56b3a65fb92d58c2c4b0e84d,
Bitcoin 163685, raw 142a9bc5447d664c1d0141392a842d23dba45c4f13b175.
tx_hash=60a20bd93aa49ab4b28d514ec10b06e1829ce6818ec06cd3aabd013ebcdc4bb1,
Bitcoin 164467, 1 65:04cc...8ac4 65:0461...42af 2 CHECKMULTISIG,
multisig script, redeemed with 0: 71:3044...2b01.
tx_hash=f003f0c1193019db2497a675fd05d9f2edddf9b67c59e677c48d3dbd4ed5f00b,
Bitcoin 165116, raw
76a91407e761706c63b36e5a328fab1d94e9397f40704d88b0.
tx_hash=fa735229f650a8a12bcf2f14cca5a8593513f0aabc52f8687ee148c9f9ab6665,
Bitcoin 166533, IFDUP IF 2SWAP VERIFY 2OVER DEPTH.
tx_hash=b38bb421d9a54c58ea331c4b4823dd498f1e42e25ac96d3db643308fcc70503e,
Bitcoin 168910, DUP DUP DUP.
tx_hash=9c08a4d78931342b37fd5f72900fb9983087e6f46c4a097d8a1f52c74e28eaf6,
Bitcoin 170052, HASH160 20:19a7...960e EQUAL, pay-to-script-hash,
redeemed with 37:5121...51ae.
tx_hash=c0b69d1e5ed13732dbd704604f7c08bc96549cc556c464aa42cc7525b3897987,
Bitcoin 170766, 3 DROP DROP 1, redeemed with 1.
tx_hash=aea682d68a3ea5e3583e088dcbd699a5d44d4b083f02ad0aaf2598fe1fa4dfd4,
Bitcoin 170877, MIN 3 EQUAL, redeemed with 1:03 1:03.
Cf. http://blockchain.info/strange-transactions
* Highlight any objects that are not in a main chain as such. In
particular, don't imply that an output was "redeemed" when the
redeeming transaction is not in the chain.
* Write a test suite. Include reorgs, duplicate coinbases, and upgrades.
* JSON/JSONP support in /q functions.
* Search by firstbits.
* Show firstbits on address history page.
* Consider adjusting statistics for duplicate coinbase transactions.
* Avoid duplicate in/out points on block pages by using DISTINCT or
equivalent. This affects blocks common to more than one chain.
* Consider fixing: /block/HASH returns "Block not found" for block not
in any chain.
* Defunct abe.fcgi processes not letting abe.py exit. Unseen in a while.
* Bitcoin 140176 failed to catch up: str(exception) == "1". Should
probably limit the kinds of exceptions that catch_up converts to
warnings.
* Test for a portable "begin transaction" and use it.
* Consider retesting SQL flavour every time on startup.
* Add search by date/time within chain.
* Show auxiliary proof-of-work data.
* Consider porting to libbitcoin.
* Use explicit constraint names.
* Speed up initial load by disabling unneeded constraints temporarily.
* Consider showing amount of time ago along with or instead of
absolute times.
* Separate HTML from data access.
* Consider denormalization for performance: prevout_hash in txin,
pubkey_hash in txout, etc.
* Factor the coin-days destroyed feature as an optional add-on. Work
begin in branch no-statistics.
* Slight variation in CoinDD et al. among sites indicates a bug.
Possibly fixed and due to corrupt data.
* Clean up and document limits on search result size.
* Admin interface to delete chains, etc.
* Add a tool to upload transactions if bitcoind supports it.
* Perhaps write a validation module to check db data. Begun as verify.py.
* Abstract SQL into the DataStore class.
* Report block size, raw blocks, average transactions per block, fees
per block, ...
* Report the Merkle branch of a particular transaction to support SPV.
* Test as multithreaded or forking server.
* Perhaps support searching by hash/address non-initial substring.
* /q functions:
latesthash hextarget
decimaltarget probability hashestowin
nextretarget estimate
avgtxsize avgtxvalue avgblocksize
interval eta avgtxnumber
addressfirstseen mytransactions
reorglog
* BTC-specific /q functions:
bcperblock changeparams
totalbc(future block numbers)
* Perhaps create a BlockExplorer.com compatibility mode.
* Perhaps show nethash interval statistics on the chain summary page.
* Perhaps create an "SQL script" DataStore subclass that outputs flat
SQL INSERTs.
* Context-sensitive help as on http://blockexplorer.com.
* Simplify the process of adding new chains.
* Present Namecoin name operations as an optional add-on.
* Extract info from MultiCoin config files.
* Perhaps add coin tracking features: allow the administrator to
specify "interesting" (e.g., suspected fraudulent) transactions and
addresses, then add a hyperlink from objects linked to them.
* Perhaps track and report coin difficulty as proposed by casascius:
http://forum.bitcoin.org/index.php?topic=10755.0
* Perhaps track and report collectible transaction bytes: size of
transactions whose outputs are all spent, minus Merkle shrubbery
needed to verify the rest.
* Perhaps support email notification about address activity.