Pages:
Author

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

sr. member
Activity: 503
Merit: 283
4 days
SSD/i7 2600 16Gb ram
mysql InnoDb
bitcoin base
current on: block_tx 206973 8681883
is this ok?
Can anybody upload the dump of bitcoin mysql database. Would be very grateful.
Or share your my.ini settings  , maybe I'am something doing wrong.
Btw, i'am using this command line options :
 --commit-bytes=1000000
member
Activity: 90
Merit: 10
I'm looking to set up a local blockchain/blockexplorer site with API functionality. Abe seems to do a lot, but as far as I could find it does not support the blockchain API option "addressbalance". Could anyone confirm this before I set up Abe in my Ubuntu server? Does someone maybe know a blockchain/blockexplorer knockoff that does support a likewise option?
member
Activity: 91
Merit: 10
What would it take to develop a web based block explorer for I0coin?  Also I need the total coins mined to be displayed.
default Abe can handle i0coin

Really?  How so?  I don't see an I0coin option on Abe Search ( http://block.al.tcoin.info/ ).  Please enlighten me.
sr. member
Activity: 267
Merit: 250
How could i get HunterCoin running? Bitcoin works fine

Code:
python -m Abe.abe --config /home/user/Downloads/bitcoin-abe-master/abe.conf
ddl_implicit_commit=true
create_table_epilogue=''
max_varchar=4294967295
clob_type=CLOB
binary_type=buffer
int_type=str
Created silly table abe_dual
sequence_type=update
limit_style=native
Assigned chain_id 9 to HunterCoin
failed to load /home/user/Downloads/bitcoin-abe-master/testnet/bitcoin.conf: [Errno 2] No such file or directory: u'/home/user/Downloads/bitcoin-abe-master/testnet/bitcoin.conf'
catch_up_rpc: abort
Opened /home/user/Downloads/bitcoin-abe-master/testnet/blk0001.dat
Exception at 89
Failed to catch up {'blkfile_offset': 0, 'blkfile_number': 1, 'chain_id': 9, 'loader': None, 'dirname': u'/home/user/Downloads/bitcoin-abe-master/testnet', 'id': 1}
Traceback (most recent call last):
  File "Abe/DataStore.py", line 2639, in catch_up
    store.catch_up_dir(dircfg)
  File "Abe/DataStore.py", line 2897, in catch_up_dir
    store.import_blkdat(dircfg, ds, blkfile['name'])
  File "Abe/DataStore.py", line 3027, in import_blkdat
    store.import_block(b, chain_ids = chain_ids)
  File "Abe/DataStore.py", line 1758, in import_block
    raise MerkleRootMismatch(b['hash'], tx_hash_array)
MerkleRootMismatch: Block header Merkle root does not match its transactions. block hash=0000000045b53004055a6839c46cce359a2fd6ca2b07ddfea02693a8b30b2836
Abe initialized.
Listening on http://localhost:2750
legendary
Activity: 1792
Merit: 1008
/dev/null
What would it take to develop a web based block explorer for I0coin?  Also I need the total coins mined to be displayed.
default Abe can handle i0coin
member
Activity: 91
Merit: 10
What would it take to develop a web based block explorer for I0coin?  Also I need the total coins mined to be displayed.
member
Activity: 63
Merit: 16
I can see with ABE only one block without using database?
Something like https://blockchain.info/rawblock/1
sr. member
Activity: 370
Merit: 250
Question:

It's my understanding you cannot derive a public key from an address. Yet when I give Abe my address it finds my transactions. When I check the database I can't find the address stored anywhere, just the public keys.

Am I missing something in the database? The pubkey_hash column does not appear to be valid for addresses. Is Abe doing anything when it starts to compute the addresses? This is something I expected to find in the db that would be computationally intense to do on the fly otherwise.
legendary
Activity: 1400
Merit: 1000
Anyone knows how to work with ABE?

How to add recognition of the transaction "33: pubkey CHECKSIG"
Deserialize.py has only:
Code:
 # non-generated TxIn transactions push a signature
  # (seventy-something bytes) and then their public key
  # (65 bytes) onto the stack:
  match = [ opcodes.OP_PUSHDATA4, opcodes.OP_PUSHDATA4 ]
  if match_decoded(decoded, match):
    return public_key_to_bc_address(decoded[1][1])

  # The Genesis Block, self-payments, and pay-by-IP-address payments look like:
  # 65 BYTES:... CHECKSIG
  match = [opcodes.OP_PUSHDATA4, opcodes.OP_CHECKSIG ]
  if match_decoded(decoded, match):
    return public_key_to_bc_address(decoded[0][1])


  # Pay-by-Bitcoin-address TxOuts look like:
  # DUP HASH160 20 BYTES:... EQUALVERIFY CHECKSIG
  match = [ opcodes.OP_DUP, opcodes.OP_HASH160, opcodes.OP_PUSHDATA4, opcodes.OP_EQUALVERIFY, opcodes.OP_CHECKSIG ]
  if match_decoded(decoded, match):
    return hash_160_to_bc_address(decoded[2][1])

  return "(None)"

what should I add  to recognize the type of transaction( http://copperlarkabe.no-ip.biz/tx/f2c627ec63da1d68142e4c439ac5b6cd2e58390e99a3e18f14bd317f36cc685f)
("33: pubkey CHECKSIG") ?
legendary
Activity: 1400
Merit: 1000
Hello!
I started ABE for CopperLark.
And ABE doesn't recognize the address generated coins.
For example: http://copperlarkabe.no-ip.biz/tx/0853f50766f64e15e1e0ad779e598534099e79094fe314108d844f9ab76931d6

though raw_transaction has
Code:
"out": [
    {
      "raw_scriptPubKey": "21026bbf078c7e4a0d5dfcdd415de2de4510e0d5ca85e906116bc5cea0698a8e88f0ac",
      "value": "50.00050000"
    }
  ],

What shoud I fix in ABE for recognize the address generated coins?
newbie
Activity: 41
Merit: 0
I´m getting this Error-Masssage:

no chain_id
catch_up_rpc: abort
Opened e:\datenbank\bitcoin\daten\blocks\blk00080.dat
Exception at 13228858152345733452
Failed to catch up {'blkfile_offset': 123332745, 'blkfile_number': 100080, 'chai
n_id': None, 'loader': None, 'dirname': 'e:\\datenbank\\bitcoin\\daten', 'id': D
ecimal('2')}
Traceback (most recent call last):
  File "Abe\DataStore.py", line 2639, in catch_up
    store.catch_up_dir(dircfg)
  File "Abe\DataStore.py", line 2897, in catch_up_dir
    store.import_blkdat(dircfg, ds, blkfile['name'])
  File "Abe\DataStore.py", line 3024, in import_blkdat
    b = store.parse_block(ds, chain_id, magic, length)
  File "Abe\DataStore.py", line 3055, in parse_block
    d['transactions'].append(deserialize.parse_Transaction(ds))
  File "Abe\deserialize.py", line 92, in parse_Transaction
    d['txOut'].append(parse_TxOut(vds))
  File "Abe\deserialize.py", line 67, in parse_TxOut
    d['value'] = vds.read_int64()
  File "Abe\BCDataStream.py", line 72, in read_int64
    def read_int64  (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
newbie
Activity: 12
Merit: 0
I have never ever programmed in python, but I think I know what is going wrong. I have changed the code in deserialize.py . The import does continue, and the data seems right. But be sure to make a backup of the database!!

Your snippet worked for me. Back up and running. Thanks Jouke!
sr. member
Activity: 426
Merit: 250
I have never ever programmed in python, but I think I know what is going wrong. I have changed the code in deserialize.py . The import does continue, and the data seems right. But be sure to make a backup of the database!!

You can't lookup the transaction itself in Abe, but at least the rest of the transactions seem to work just fine.


def script_GetOp(bytes):
  i = 0
  while i < len(bytes):
    vch = None
    opcode = ord(bytes)
    i += 1

    if opcode <= opcodes.OP_PUSHDATA4:
      nSize = opcode
      if len(bytes) > 1:
        if opcode == opcodes.OP_PUSHDATA1:
          nSize = ord(bytes)
          i += 1
        elif opcode == opcodes.OP_PUSHDATA2:
          (nSize,) = struct.unpack_from('          i += 2
        elif opcode == opcodes.OP_PUSHDATA4:
          (nSize,) = struct.unpack_from('          i += 4
        if i+nSize > len(bytes):
          vch = "_INVALID_"+bytes[i:]
          i = len(bytes)
        else:
          vch = bytes[i:i+nSize]
          i += nSize
      else:
        vch = "_INVALID_NULL"
        i = len(bytes)

    yield (opcode, vch, i)
legendary
Activity: 1258
Merit: 1001
I am facing the same error as well !

no chain_id
catch_up_rpc: abort
Opened /home/bitcoin/.bitcoin/blocks/blk00088.dat
Exception at 60375615
Failed to catch up {'blkfile_offset': 60143075, 'blkfile_number': 100088, 'chain_id': None, 'loader': None, 'dirname': '/home/bitcoin/.bitcoin', 'id': Decimal('1')}
Traceback (most recent call last):
  File "Abe/DataStore.py", line 2639, in catch_up
    store.catch_up_dir(dircfg)
  File "Abe/DataStore.py", line 2897, in catch_up_dir
    store.import_blkdat(dircfg, ds, blkfile['name'])
  File "Abe/DataStore.py", line 3027, in import_blkdat
    store.import_block(b, chain_ids = chain_ids)
  File "Abe/DataStore.py", line 1739, in import_block
    tx['tx_id'] = store.import_and_commit_tx(tx, pos == 0)
  File "Abe/DataStore.py", line 2261, in import_and_commit_tx
    tx_id = store.import_tx(tx, is_coinbase)
  File "Abe/DataStore.py", line 2195, in import_tx
    pubkey_id = store.script_to_pubkey_id(txout['scriptPubKey'])
  File "Abe/DataStore.py", line 2575, in script_to_pubkey_id
    for opcode, data, i in deserialize.script_GetOp(script):
  File "Abe/deserialize.py", line 247, in script_GetOp
    nSize = ord(bytes)
IndexError: string index out of range

I hope there will be a fix soon !
newbie
Activity: 42
Merit: 0
I'm getting that same error. Anyone have any solutions that don't involve reloading everything? Heh...
sr. member
Activity: 426
Merit: 250
Some hours ago I received this error:

Traceback (most recent call last):
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/DataStore.py", line 2633, in catch_up
    if not store.catch_up_rpc(dircfg):
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/DataStore.py", line 2806, in catch_up_rpc
    store.import_block(block, chain_ids = chain_ids)
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/DataStore.py", line 1737, in import_block
    tx['tx_id'] = store.import_and_commit_tx(tx, pos == 0)
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/DataStore.py", line 2259, in import_and_commit_tx
    tx_id = store.import_tx(tx, is_coinbase)
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/DataStore.py", line 2193, in import_tx
    pubkey_id = store.script_to_pubkey_id(txout['scriptPubKey'])
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/DataStore.py", line 2573, in script_to_pubkey_id
    for opcode, data, i in deserialize.script_GetOp(script):
  File "/home/jouke/bitcoin-abe/bitcoin-abe/Abe/deserialize.py", line 247, in script_GetOp
    nSize = ord(bytes)
IndexError: string index out of range

Edit:

I guess it has to do with transaction:  ebc9fa1196a59e192352d76c0f6e73167046b9d37b8302b6bb6968dfd279b767
full member
Activity: 154
Merit: 100
Amazing piece of work!
newbie
Activity: 41
Merit: 0
No Solution.

Delete Database and load again. Duration about three Weeks....
newbie
Activity: 25
Merit: 250
Hi John Tobey,

Firstly, thanks for releasing abe.. I mean wow, what a god sent this tool is !  

I've got a few problems though - which I've been unable to find help with on google and I was wondering if you or anyone else here could help in any way;

1) If I put in 'port localhost' in the abe.conf .. . if I try to access from any remote url I just can't access it.. I don't know if there's an 'allow from' or such in the config. . I tried looking but could find nothing.

2) Everytime I request: '...:2750/chain/Bitcoin' or such, I notice it's loading it from the block.dat. . . which obviously makes every request incredibly slow. . . I have it setup for mysql, and the data's in the database.. I just don't know why it's reading from the block.dat and not mysql. . here's a sample from my abe.conf

Code:
dbtype MySQLdb
connect-args {"user":"test","db":"abe_bitcoin","passwd":"test"}
upgrade
port 2750
#port 3306
host localhost

Any help, most appreciated.

PS: I also added this as a question on bitcoin.stackexchange incase anyone can help and such;
http://bitcoin.stackexchange.com/questions/13675/how-to-make-abe-query-mysql-instead-of-reading-from-the-bitcoin-block-dat-for-ea
newbie
Activity: 41
Merit: 0
I get the following error massage:


no chain_id
catch_up_rpc: abort
Opened e:\bitcoin\daten\blocks\blk00080.dat
Exception at 13228858152345733452
Failed to catch up {'blkfile_offset': 123332745, 'blkfile_number': 100080, 'chai
n_id': None, 'loader': None, 'dirname': 'e:\\bitcoin\\daten', 'id': D
ecimal('2')}
Traceback (most recent call last):
  File "Abe\DataStore.py", line 2639, in catch_up
    store.catch_up_dir(dircfg)
  File "Abe\DataStore.py", line 2897, in catch_up_dir
    store.import_blkdat(dircfg, ds, blkfile['name'])
  File "Abe\DataStore.py", line 3024, in import_blkdat
    b = store.parse_block(ds, chain_id, magic, length)
  File "Abe\DataStore.py", line 3055, in parse_block
    d['transactions'].append(deserialize.parse_Transaction(ds))
  File "Abe\deserialize.py", line 92, in parse_Transaction
    d['txOut'].append(parse_TxOut(vds))
  File "Abe\deserialize.py", line 67, in parse_TxOut
    d['value'] = vds.read_int64()
  File "Abe\BCDataStream.py", line 72, in read_int64
    def read_int64  (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



What is to do?
Pages:
Jump to: