Pages:
Author

Topic: [ANNOUNCE] Abe 0.7: Open Source Block Explorer Knockoff - page 35. (Read 220986 times)

hero member
Activity: 481
Merit: 529
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.
legendary
Activity: 3431
Merit: 1233
I'm going to make a high-quality video series on installing and using Abe in a VM.
It is much appreciated.
hero member
Activity: 481
Merit: 529
MOAR BOAR HAS MOAR
Code:
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
    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.
hero member
Activity: 481
Merit: 529

Nice!  Now I've added "privacy" to the top of the feature list. Smiley
newbie
Activity: 21
Merit: 0
I'm going to make a high-quality video series on installing and using Abe in a VM.

I can't guarantee how soon I can get it all done, but I'm going to make an effort.

I will update this post with links as the individual videos are complete.

Part 1: http://www.youtube.com/watch?v=UImXoukuF5Y
Part 2: http://www.youtube.com/watch?v=c6V70BdM7Sw
member
Activity: 89
Merit: 10
MOAR BOAR HAS MOAR
Code:
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
    store.binout_int = lambda x: int(binout_hex(x), 16)
TypeError: int() can't convert non-string with explicit base
hero member
Activity: 481
Merit: 529
Code:
  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.
member
Activity: 89
Merit: 10
fresh clone, getting this
Code:
block_tx 1 307
block_tx 1 308
Failed to catch up {'blkfile_number': 1, 'dirname': '/home/REDACTED/.bitcoin', 'chain_id': None, 'id': 1L, 'blkfile_offset': 0}
Traceback (most recent call last):
  File "Abe/DataStore.py", line 2281, in catch_up
    store.catch_up_dir(dircfg)
  File "Abe/DataStore.py", line 2315, in catch_up_dir
    store.import_blkdat(dircfg, ds)
  File "Abe/DataStore.py", line 2437, in import_blkdat
    store.import_block(b, chain_ids = chain_ids)
  File "Abe/DataStore.py", line 1712, in import_block
    if store.is_descended_from(block_id, int(oblock_id)):
  File "Abe/DataStore.py", line 1557, in is_descended_from
    block = store._load_block(block_id)
  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'
hero member
Activity: 481
Merit: 529
On the charting branch there is /q/speed giving data in CSV format for network speed charts like Sipa's.

I got data from: http://localhost:2750/chain/Bitcoin/q/speed/1d,3d,7d,14d,30d/1d/2009-01-04

And used LibreOffice Calc to make:


Looking forward to seeing how my favorite alt chains look...
hero member
Activity: 481
Merit: 529
thank you very much Smiley
if you have a LTC donation addy, i'll like to donate in LTC; since i do not use BTC Smiley

Much appreciated.  Smiley  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... Wink
sr. member
Activity: 266
Merit: 250
LitecoinTalk
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


thank you very much Smiley
if you have a LTC donation addy, i'll like to donate in LTC; since i do not use BTC Smiley
hero member
Activity: 481
Merit: 529
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
sr. member
Activity: 266
Merit: 250
LitecoinTalk
the newest one

Well, with this abe.conf...
Code:
port 5000
host 127.0.0.1
dbtype = psycopg2
connect-args = { "database": "abe" }
datadir = /no/such/directory

I get this output as expected:
Code:
$ 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?


oh i'm sorry, i just saw i've edited on the wrong server, i have 2 server running and testing abe on, and i've edited the conf on wrong serv as i tested on, all works fine Smiley

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."
hero member
Activity: 481
Merit: 529
the newest one

Well, with this abe.conf...
Code:
port 5000
host 127.0.0.1
dbtype = psycopg2
connect-args = { "database": "abe" }
datadir = /no/such/directory

I get this output as expected:
Code:
$ 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?
sr. member
Activity: 266
Merit: 250
LitecoinTalk
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:2750

and 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?

Quote from: abe.conf
#port 2750
#host localhost

should become

Quote
port 5000
host XX.XX.XX.XX

Which version or Git commit do you use?


yes, i did remoce those Smiley

the newest one
hero member
Activity: 481
Merit: 529
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:2750

and 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?

Quote from: abe.conf
#port 2750
#host localhost

should become

Quote
port 5000
host XX.XX.XX.XX

Which version or Git commit do you use?
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
Quote
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.
Would you mind sharing this config file where it does not scan the blockchain and import? I don't think I will be able to figure it out myself Smiley.
But I am using a tad bit older version, with schema_version Abe29.

EDIT: Nope, made it work myself.
sr. member
Activity: 266
Merit: 250
LitecoinTalk
Nice done!

but i have a problem

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:2750

and i've set the port to 5000
and ip to the local lan ip, since it only me that should access it
hero member
Activity: 481
Merit: 529
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.
legendary
Activity: 1862
Merit: 1011
Reverse engineer from time to time
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.
Pages:
Jump to: