Pages:
Author

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

legendary
Activity: 3500
Merit: 6320
Crypto Swap Exchange
Is it possible to make Abe from a version of Tenebrix that uses the original Berkeley DB and is a clone of Multicoin unchanged since September 2011? I understand I might be able to run a localhost version to test out while I run my full node. It's the first Scrypt coin - Litecoin was the third but I understand they forked Bitcoin code and not MultiCoin.

Yes you can. I guess the question is why would you want to?
Abe is (was) a nice project, but there are many better explorers out there at the moment.
Kind of like tenebrix, was interesting back in 2011 now.......

-Dave
hero member
Activity: 666
Merit: 516
Fuck BlackRock
Is it possible to make Abe from a version of Tenebrix that uses the original Berkeley DB and is a clone of Multicoin unchanged since September 2011? I understand I might be able to run a localhost version to test out while I run my full node. It's the first Scrypt coin - Litecoin was the third but I understand they forked Bitcoin code and not MultiCoin.
newbie
Activity: 1
Merit: 0
Hi all

I've been trying to get an instance of Abe up and running but have run into a bit of a snag.  Hoping someone can help me out here.  I am running MySQL 5.7.33 and everything seems to be OK on that side.  Abe is configured as below, and the data directory is working and reading blk*****.dat files seems to be fine.

Code:
dbtype MySQLdb
connect-args {"user":"abe1","db":"abe"}
upgrade
port 2750

I let it run on initial startup and everything seemed to be working as expected but I quickly ran into an error.  The snippet below is from trying to force a rescan, but the error itself is the same.

Code:
block 4175 already in chain 1
block 4176 already in chain 1
Exception at 969746
Failed to catch up {'blkfile_offset': 968753, 'blkfile_number': 100000, 'chain_id': 1, 'loader': u'blkfile', 'conf': None, 'dirname': 'G:/Users/****/Downloads/Bitcoin Database/Bitcoin', 'id': Decimal('1')}
Traceback (most recent call last):
  File "Abe\DataStore.py", line 2557, in catch_up
    store.catch_up_dir(dircfg)
  File "Abe\DataStore.py", line 2855, in catch_up_dir
    store.import_blkdat(dircfg, ds, blkfile['name'])
  File "Abe\DataStore.py", line 2977, in import_blkdat
    b = chain.ds_parse_block(ds)
  File "Abe\Chain\__init__.py", line 81, in ds_parse_block
    for i in xrange(nTransactions):
OverflowError: Python int too large to convert to C long


I found this in the config, but it doesn't seem to do anything. 

Code:
# Some databases have trouble with the large integers that Abe uses
# for statistics.  Setting int-type=str causes Abe to pass certain
# integers to the database as strings and cast them to floating point
# in SQL expressions that calculate statistics.  Try this if SQLite
# complains "OverflowError: long too big to convert".

int-type=str
int-type str

I've already tried deleting the database and rebuilding it, no luck.  I've also made sure I'm running 64bit python and not 32bit - heard there were issues with int lengths.  OS = Win 10

Any ideas on how to get this up and running?

Thanks in advance


newbie
Activity: 2
Merit: 0
Is that possible to find utxo using Abe via python. Or its impossible.
copper member
Activity: 53
Merit: 1
is it possible to customize abe interface ?
newbie
Activity: 8
Merit: 0
What happens if there is a catch-up triggered by request A, then request B comes in?

B tries to "help" A catch up.  Which would be okay if the loader code were free of bugs.  Probably the easiest fix (when I--or someone--has time) is to enforce single-threaded loading with a database lock.


Your suggested workaround (one instance with --no-load, one with --no-serve) works like a charm and solves the problem.

Haven't had a problem since, thank you 1000!

I agree using some db-lock to only ever have one "db updater" would likely solve it, too.

newbie
Activity: 2
Merit: 0
Helly guys,
I'm new here, and i would like to clarify some points that i don't really understand so far.
1 - Is Abe a feasible explorer at this date (feb. 01 2018 ) ? How long it takes to load a full database in average?
2 - Where do i find the API containing all the calls and functions from Abe?
3 - Could anyone explain to me what function abe allow to query the bitcoin database?
newbie
Activity: 50
Merit: 0
I'm very interested in seeing Firstbits support.  Wink
newbie
Activity: 1
Merit: 0
Hello all,
Need help with configuration for Paccoin , I have posted issue here https://github.com/bitcoin-abe/bitcoin-abe/issues/234

Pulled latest version from git (master) and configured it for Paccoin (PAC).
abe.conf
Code:
 dbtype MySQLdb
 connect-args {"user":"abe","db":"abe","passwd":"pass"}
 port 2750
 host 0.0.0.0
 upgrade
 datadir += [{"dirname": "/root/.paccoin","chain": "Paccoin","code3": "PAC","address_version": "18"}]
 address-history-rows-max 100000
 default-loader = blkfile

Datastore.py
Code:
 CONFIG_DEFAULTS = {
     "dbtype":             None,
     "connect_args":       None,
     "binary_type":        None,
     "int_type":           None,
     "upgrade":            None,
     "rescan":             None,
     "commit_bytes":       None,
     "log_sql":            None,
     "log_rpc":            None,
     "default_chain":      "Paccoin",
     "datadir":            None,
     "ignore_bit8_chains": None,
     "use_firstbits":      False,
     "keep_scriptsig":     True,
     "import_tx":          [],
     "default_loader":     "default",
     "rpc_load_mempool":   False,
 }
 WORK_BITS = 304  # XXX more than necessary.
 CHAIN_CONFIG = [{"chain":"Paccoin"}]


Chain/Paccoin.py
Code:
 from .Sha256Chain import Sha256Chain
 
 class Paccoin(Sha256Chain):
     def __init__(chain, **kwargs):
         chain.name = 'Paccoin'
         chain.dirname = '/root/.paccoin/'
         chain.code3 = 'PAC'
         # MultiChain handshake is randomly created, so use Bitcoin compatible network settings as the default.
         chain.address_version = '\x18' # dec 24 = hex 18 -- FROM paccoin/src/base58.h dec value PUBKEY_ADDRESS
         chain.script_addr_vers = '\x1e' # dec 30 = hex 1e.
         chain.magic = '\xe4\xe8\xe9\xe5' # \xe4\xe8\xe9\xe5 -- FROM paccoin/src/main.cpp value char pchMessageStart
         #chain.address_checksum = '\x00\x00\x00\x00'
         Sha256Chain.__init__(chain, **kwargs)
 datadir_conf_file_name = "paccoin.conf"

After start got this error:

Code:
 Opened /root/.paccoin/blk0001.dat
 Exception at 146191074854428494
 Failed to catch up {'blkfile_offset': 515780, 'blkfile_number': 1, 'chain_id': 1, 'loader': u'blkfile', 'conf': u'paccoin.conf', 'dirname': '/root/.paccoin/', 'id': Decimal('5')}
 Traceback (most recent call last):
   File "Abe/DataStore.py", line 2535, in catch_up
     store.catch_up_dir(dircfg)
   File "Abe/DataStore.py", line 2821, in catch_up_dir
     store.import_blkdat(dircfg, ds, blkfile['name'])
   File "Abe/DataStore.py", line 2943, in import_blkdat
     b = chain.ds_parse_block(ds)
   File "Abe/Chain/__init__.py", line 82, in ds_parse_block
     d['transactions'].append(chain.ds_parse_transaction(ds))
   File "Abe/Chain/__init__.py", line 75, in ds_parse_transaction
     return deserialize.parse_Transaction(ds)
   File "Abe/deserialize.py", line 91, in parse_Transaction
     d['txIn'].append(parse_TxIn(vds))
   File "Abe/deserialize.py", line 46, in parse_TxIn
     d['sequence'] = vds.read_uint32()
   File "Abe/BCDataStream.py", line 71, in read_uint32
     def read_uint32 (self): return self._read_num('   File "Abe/BCDataStream.py", line 110, in _read_num
     (i,) = struct.unpack_from(format, self.input, self.read_cursor)
 error: unpack_from requires a buffer of at least 4 bytes

After few hours of searching for solution, I tried edit next files.

in deserialize.py :

Code:
         d['nTime'] = vds.read_uint32()
         #  if has_nTime:
         #    d['nTime'] = vds.read_uint32()

got error:

Code:
 Opened /root/.paccoin/blk0001.dat
 Exception at 515981
 Failed to catch up {'blkfile_offset': 515780, 'blkfile_number': 1, 'chain_id': 1, 'loader': u'blkfile', 'conf': u'paccoin.conf', 'dirname': '/root/.paccoin/', 'id': Decimal('5')}
 Traceback (most recent call last):
   File "Abe/DataStore.py", line 2535, in catch_up
     store.catch_up_dir(dircfg)
   File "Abe/DataStore.py", line 2821, in catch_up_dir
     store.import_blkdat(dircfg, ds, blkfile['name'])
   File "Abe/DataStore.py", line 2953, in import_blkdat
     store.import_block(b, chain = chain)
   File "Abe/DataStore.py", line 1069, in import_block
     raise MerkleRootMismatch(b['hash'], tx_hash_array)
 MerkleRootMismatch: Block header Merkle root does not match its transactions. block hash=00000000001b6bd7774c118eb7e14669d6e2099e1ca7d8b135031e8d091bb363


next recommendation was edit
in Datastore.py :

Code:
         #if chain is not None:
             # Verify Merkle root.
             #if b['hashMerkleRoot'] != chain.merkle_root(tx_hash_array):
             #    raise MerkleRootMismatch(b['hash'], tx_hash_array)

I got next error:

Code:
 Exception at 9671054941915873462
 Failed to catch up {'blkfile_offset': 515780, 'blkfile_number': 1, 'chain_id': 1, 'loader': u'blkfile', 'conf': u'paccoin.conf', 'dirname': '/root/.paccoin/', 'id': Decimal('5')}
 Traceback (most recent call last):
   File "Abe/DataStore.py", line 2535, in catch_up
     store.catch_up_dir(dircfg)
   File "Abe/DataStore.py", line 2821, in catch_up_dir
     store.import_blkdat(dircfg, ds, blkfile['name'])
   File "Abe/DataStore.py", line 2943, in import_blkdat
     b = chain.ds_parse_block(ds)
   File "Abe/Chain/__init__.py", line 82, in ds_parse_block
     d['transactions'].append(chain.ds_parse_transaction(ds))
   File "Abe/Chain/__init__.py", line 75, in ds_parse_transaction
     return deserialize.parse_Transaction(ds)
   File "Abe/deserialize.py", line 91, in parse_Transaction
     d['txIn'].append(parse_TxIn(vds))
   File "Abe/deserialize.py", line 46, in parse_TxIn
     d['sequence'] = vds.read_uint32()
   File "Abe/BCDataStream.py", line 71, in read_uint32
     def read_uint32 (self): return self._read_num('   File "Abe/BCDataStream.py", line 110, in _read_num
     (i,) = struct.unpack_from(format, self.input, self.read_cursor)
 OverflowError: Python int too large to convert to C long

Here is my maxsize:

Code:
   Python 2.7.6 (default, Oct 26 2016, 20:30:19)
   [GCC 4.8.4] on linux2
   Type "help", "copyright", "credits" or "license" for more information.
   >>> import sys
   >>> sys.maxsize
   9223372036854775807
   >>>

I'm stuck at this point, looking for advice.
sr. member
Activity: 255
Merit: 260

   Hey Guys.
 I got Abe Explorer up and showing. Ran cmd to load chain data for my coin, but for some reason it started sync. with WorldCoin instead of my-coin. Hhhhhmmmm, can't seem to find anything in script depicting WorldCoin at all.
   Any ideas...

newbie
Activity: 48
Merit: 0
I am running website on vps windows server 2012 IIS installed.
Now i want run mycoin daemon and block explorer on same server.
Any easiest method build block explorer?
I don't have much knowledge of codes.
Help me thru entire set up process and good tip will be sent.

Reply as soon as possible

Thanks in advance.
full member
Activity: 185
Merit: 100
Hi Im having problems with Abe, I keep getting an

    Failed: CREATE TABLE configvar (
    configvar_name  VARCHAR(100) NOT NULL PRIMARY KEY,
    configvar_value VARCHAR(255)
   

    sqlite3.OperationalError table configvar already exists

Any ideas wht im doing wrong?
legendary
Activity: 1524
Merit: 1001
NOBT - WNOBT your saving bank◕◡◕
Do I need to set another network config in *.conf file except these to get Abe running?
Code:
# Specify port and/or host to serve HTTP instead of FastCGI:
port 2750
host localhost
It does not work after python -m Abe.abe --config abe-my.conf
But this python -m Abe.abe --config abe-my.conf --commit-bytes 100000 --no-serve command works as expected
I am using Ubuntu 14.04.
Any suggestions?

You may ask your question at Ubuntu forum, you will get fast answer there.
hero member
Activity: 567
Merit: 500
In gold I trust - Aurumcoin www.cointech.net
Do I need to set another network config in *.conf file except these to get Abe running?
Code:
# Specify port and/or host to serve HTTP instead of FastCGI:
port 2750
host localhost
It does not work after python -m Abe.abe --config abe-my.conf
But this python -m Abe.abe --config abe-my.conf --commit-bytes 100000 --no-serve command works as expected
I am using Ubuntu 14.04.
Any suggestions?

It's better to use Apache or other web server instead of internal one. For every new coin you must make only new datadir += .... etc.
I use separated config files, because some of my coins are hard to support (separate database and virtualhost).
newbie
Activity: 322
Merit: 0
Do I need to set another network config in *.conf file except these to get Abe running?
Code:
# Specify port and/or host to serve HTTP instead of FastCGI:
port 2750
host localhost
It does not work after python -m Abe.abe --config abe-my.conf
But this python -m Abe.abe --config abe-my.conf --commit-bytes 100000 --no-serve command works as expected
I am using Ubuntu 14.04.
Any suggestions?
newbie
Activity: 322
Merit: 0
it's the raw hex of the genesis transaction since there is a bug in the RPC where you can't get info about the genesis without looking at the block data files yourself, there's a note about it at the bottom of the file

Code:
   # Extract your chain's genesis transaction data from the first
    # block file and add it here, or better yet, patch your coin's
    # getrawtransaction to return it on request:
    #if tx_hash_hex == ""
    #    return ""

So when you try
Code:
getrawtransaction [merkleroot of gen_block]
The result should be
Quote
01000000010000000000000000000000000000000000000000000000000000000000000000fffff fff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c 6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b7 3ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909 a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11 d5fac00000000
Where I can see this raw hex?

Code:
Extract your chain's genesis transaction data from the first block file
I see this advice but what exactley I have to do?
legendary
Activity: 2087
Merit: 1015
Hi. I am looking into source code of genesis_tx.py.

There are lines 28-30:


Code:
# Main Bitcoin chain:
if tx_hash_hex == "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b":
        return "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000"

I am trying to figure out what is return value?
Where this constant comes from?


it's the raw hex of the genesis transaction since there is a bug in the RPC where you can't get info about the genesis without looking at the block data files yourself, there's a note about it at the bottom of the file

Code:
    # Extract your chain's genesis transaction data from the first
    # block file and add it here, or better yet, patch your coin's
    # getrawtransaction to return it on request:
    #if tx_hash_hex == ""
    #    return ""
newbie
Activity: 322
Merit: 0
Hi. I am looking into source code of genesis_tx.py.

There are lines 28-30:


Code:
# Main Bitcoin chain:
if tx_hash_hex == "4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2127b7afdeda33b":
        return "01000000010000000000000000000000000000000000000000000000000000000000000000ffffffff4d04ffff001d0104455468652054696d65732030332f4a616e2f32303039204368616e63656c6c6f72206f6e206272696e6b206f66207365636f6e64206261696c6f757420666f722062616e6b73ffffffff0100f2052a01000000434104678afdb0fe5548271967f1a67130b7105cd6a828e03909a67962e0ea1f61deb649f6bc3f4cef38c4f35504e51ec112de5c384df7ba0b8d578a4c702b6bf11d5fac00000000"

I am trying to figure out what is return value?
Where this constant comes from?
hero member
Activity: 567
Merit: 500
In gold I trust - Aurumcoin www.cointech.net
Hi all,

On some block/hash the sync fails with:

Quote
IntegrityError: (1062, "Duplicate entry '\\x84\\xC0\\xD4\\x00;m\\x82\\xDEki\\\\xCC\\xEC9\\xFF\\xB0\\x94\\xEA\\xE1\\x15\\x' for key 'tx_hash'")

Any solution? I remove the old chain and re-run it from scratch, but again fail withe same error
hero member
Activity: 567
Merit: 500
In gold I trust - Aurumcoin www.cointech.net
Hello all,

can anybody share SQL query for generate richlist?
Pages:
Jump to: