This is a decidedly newbie question- but how can I safely turn off ABE? I have installed it to install Electrum, but once it's running, how do I turn it off? So as to not have any conflicts?
thanks!
Ctrl-C it from the command line or use "kill" in Linux. Don't worry about the stack trace that it prints. One of Abe's strongest (IMHO) features is its ability to recover automatically from interruption.
|
|
|
A maintenance release to address "TypeError: int() argument must be a string or a number, not 'NoneType'": 0.7.2* Fixed bug affecting chains containing duplicate coinbase transactions.
|
|
|
Traceback (most recent call last): File "/usr/lib/python2.6/wsgiref/handlers.py", line 93, in run self.result = application(self.environ, self.start_response) File "/usr/local/lib/python2.6/dist-packages/Abe/abe.py", line 205, in __call__ handler(page) File "/usr/local/lib/python2.6/dist-packages/Abe/abe.py", line 459, in handle_chain ss = int(ss) TypeError: int() argument must be a string or a number, not 'NoneType'
Thanks for the report. I've replied on GitHub. Unfortunately, I don't think it will be easy to debug, since it appears to depend on the order the blocks were loaded, and that in turn depends on network timings. I will post when I have time to address this. Meanwhile, I suggest using an older version of Abe, either v0.6 or the Sept. 15 commit ( fc10484). I think this is fixed. It turned out to depend not on block order, but on duplicate coinbase transactions. If this works out, I'll call it 0.7.2.
|
|
|
When designing the query I wanted to see the resulting sql string. How can I set the loglevel of store.sqllogger without modifying the python code in Datastore.py?
--log-sql shows all queries' SQL and parameters. This is currently just a boolean switch. To set the level to something other than DEBUG, you would use log-sql and a custom logging config with (for example) "loggers":{"Abe.DataStore.sql": {"level": "INFO"}}.
|
|
|
Traceback (most recent call last): File "/usr/lib/python2.6/wsgiref/handlers.py", line 93, in run self.result = application(self.environ, self.start_response) File "/usr/local/lib/python2.6/dist-packages/Abe/abe.py", line 205, in __call__ handler(page) File "/usr/local/lib/python2.6/dist-packages/Abe/abe.py", line 459, in handle_chain ss = int(ss) TypeError: int() argument must be a string or a number, not 'NoneType'
Thanks for the report. I've replied on GitHub. Unfortunately, I don't think it will be easy to debug, since it appears to depend on the order the blocks were loaded, and that in turn depends on network timings. I will post when I have time to address this. Meanwhile, I suggest using an older version of Abe, either v0.6 or the Sept. 15 commit ( fc10484).
|
|
|
A maintenance release for upgraders: 0.7.1* Fixed bug affecting database upgrade. Credit: bitfoo
|
|
|
I've released 0.7 to PyPI and GitHub. Changes since 0.6: - Tell search engines not to crawl the whole chain.
- Raw transaction output in JSON format.
- Prevent denial of service via huge address history.
- Optional short addresses resembling Firstbits.
- Option to omit signature scripts for 20% space reduction.
- HTTP API function: getdifficulty.
- Work around failure to quit on Ctrl-C with SQLite.
- Report line number of errors in config file.
- Fixed bugs that cause wrong statistics when blocks arrive out of order.
- Minor fixes and updates.
|
|
|
MOAR BOAR HAS MOAR block_tx 1 308 commit Failed to catch up {'blkfile_number': 1, 'dirname': '/home/REDACTED/.bitcoin', 'chain_id': None, 'id': 1L, 'blkfile_offset': 110603} Traceback (most recent call last): File "Abe/DataStore.py", line 2329, in catch_up store.catch_up_dir(dircfg) File "Abe/DataStore.py", line 2363, in catch_up_dir store.import_blkdat(dircfg, ds) File "Abe/DataStore.py", line 2485, in import_blkdat store.import_block(b, chain_ids = chain_ids) File "Abe/DataStore.py", line 1646, in import_block store.find_prev(hashPrev)) File "Abe/DataStore.py", line 1600, in find_prev store.binout_int(chain_work), File "Abe/DataStore.py", line 429, in <lambda> store.binout_int = lambda x: int(binout_hex(x), 16) TypeError: int() can't convert non-string with explicit base Thanks. I have fixed this error and many others related to out-of-sequence blockfiles. I find it strange that the first block in your blockfile has 308 transactions. That is the meaning of the "block_tx 1 308" message. Perhaps bitcoind has become creative in the order in which it saves blocks to disk. This may slow down Abe's initial load too much. Please report the version of bitcoind that created your block file (and the currency if not BTC) so I can check.
|
|
|
Nice! Now I've added "privacy" to the top of the feature list.
|
|
|
File "Abe/DataStore.py", line 1537, in _load_block block_id, int(height), TypeError: int() argument must be a string or a number, not 'NoneType'
Good, good bug report. It made me find lots of bugs related to loading blocks out of order. With a fresh copy of the block chain, I don't think this will happen, because bitcoind writes the blocks in order and omits orphan blocks. Anyway, my fixes committed today may get you past the error.
|
|
|
thank you very much if you have a LTC donation addy, i'll like to donate in LTC; since i do not use BTC Much appreciated. Assuming one can transfer keys from BTC/NMC to LTC clients, you could plug either of my donation addrs into /q/translate_address, and I can get the coins when I need them. I'll see the donation on any LTC-enabled Abe server automatically when I look up my other donations. Or if you want to donate a *lot* of LTC, I'd better go download it...
|
|
|
is there a way to edit the limit on how many records there can be shown?
"I'm sorry, this address has too many records to display."
# History pages of addresses with more than this many receipts will be # not be shown. This protects against denial of service. Use -1 for # no limit. #address-history-rows-max 1000
|
|
|
the newest one
Well, with this abe.conf... port 5000 host 127.0.0.1 dbtype = psycopg2 connect-args = { "database": "abe" } datadir = /no/such/directory
I get this output as expected: $ python -m Abe.abe --config abe.conf Skipping datadir /no/such/directory: [Errno 2] No such file or directory: '/no/such/directory/blk0001.dat' Abe initialized. Listening on http://127.0.0.1:5000
What do you get when you put in your dbtype and connect-args? What are your Python and OS versions?
|
|
|
no matter what i set in abe.conf i get /home/bitcoin-abe# python -m Abe.abe --config abe.conf Abe initialized. Listening on http://localhost:2750and i've set the port to 5000 and ip to the local lan ip, since it only me that should access it Have you removed the '#' from those lines? #port 2750 #host localhost
should become port 5000 host XX.XX.XX.XX
Which version or Git commit do you use?
|
|
|
The import status is easily viewable from the ABE import output. What I am talking about is being able to use the web interface while abe is still importing.
Two processes using slightly different abe.conf. (Shared portions can be in a third file named by the config=FILE directive.) - Process 1 does not include the new/loading chain in datadir but does serve web requests.
- Process 2 includes the chain but does not serve web requests.
Any issues? As for Ctrl-C, I seldom have troubles that a simple restart does not solve. Please provide details that help me reproduce the issue. As for days destroyed, is it a feature you need? Would the bug be detectable if we removed the days destroyed from the site? A tool for deleting a block (or a chain) would be nice to have, I agree. These two seem pretty simple, but I'd have to look closer. Multisig addresses seem harder. I'm thinking about relaxing the license terms to encourage development. I suppose internals documentation would help too. BTC will have to reach $50 or more before I can justify serious Abe time to my spouse. If new features are worth money to you, feel free to PM me or start a bounty. Frankly, while I love to see BTC succeed, my passion for Abe came more from a wish to encourage alternative chains. Now there are several, so I am happy.
|
|
|
I see that Abe is still under development, when can we expect 0.7?
At the moment the holdup is writing a change log. Then I'll try to find all the pieces I need to build the Windows installer and update pypi. Anything particular you need?
|
|
|
I had to rebuild my server with ubuntu 12.04 64bit after the switch im not able to run abe anymore. I suspect that the change from python 2.6 to 2.7 aswell as the change from mysql 5.1 to 5.5 has something to do with it, since i use the same abe.conf as before and it was running on ubuntu 10.04 32bit. I allways end up with this error: Traceback (most recent call last): File "/usr/lib/python2.7/runpy.py", line 162, in _run_module_as_main "__main__", fname, loader, pkg_name) File "/usr/lib/python2.7/runpy.py", line 72, in _run_code exec code in run_globals File "/opt/abe/Abe/abe.py", line 2023, in <module> sys.exit(main(sys.argv[1:])) File "/opt/abe/Abe/abe.py", line 1976, in main args, argv = readconf.parse_argv(argv, conf) File "Abe/readconf.py", line 57, in parse_argv _include(set(), val, arg_dict, config_name, strict) File "Abe/readconf.py", line 77, in _include entries = read(fp) File "Abe/readconf.py", line 153, in read js, c = scan_json(fp, c) File "Abe/readconf.py", line 259, in scan_json return _scan_json_compound(fp, c, ']') File "Abe/readconf.py", line 247, in _scan_json_compound cs, c = scan_json(fp, c) File "Abe/readconf.py", line 261, in scan_json return _scan_json_compound(fp, c, '}') File "Abe/readconf.py", line 247, in _scan_json_compound cs, c = scan_json(fp, c) File "Abe/readconf.py", line 264, in scan_json raise SyntaxError('Invalid initial JSON character: ' + c) SyntaxError: Invalid initial JSON character: ?
Python 2.7.3 mysql Ver 14.14 Distrib 5.5.24, for debian-linux-gnu (x86_64) using readline 6.2 i guess thats realy a python problem since i tried it with dbtype = sqlite3 and got the same result This error has nothing to do with the database but perhaps relates to the Python version. The error occurs while reading the config file. Unfortunately, Abe did not report the line number where it thought the syntax was wrong. I have committed a change to the parser that should let it report the error location in abe.conf. Given that the invalid character is reported as '?' and no '?' occurs in the file you sent by PM, I suspect an encoding issue.
|
|
|
Regarding your two small code examples posted above, I wrote an MySQL query to get the confirmations for each block. I only wanted to crosscheck with you if I understood everything right and didnt make a misstake here: SELECT ( (SELECT b.block_height AS maxheight FROM block b JOIN chain c ON c.chain_last_block_id = b.block_id WHERE c.chain_id = 1) - chain_candidate.block_height ) AS cofirmations, chain_candidate.block_id FROM chain_candidate WHERE chain_candidate.chain_id = 1 AND chain_candidate.in_longest = 1
I think this is correct.
|
|
|
Is a /q/getdifficulty a possibility? For you? Done! Please test.
|
|
|
|