Bitcoin Forum
May 08, 2024, 04:16:10 PM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 4 5 6 »  All
  Print  
Author Topic: [ANNOUNCE] Abe 0.7: Open Source Block Explorer Knockoff  (Read 28891 times)
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
November 07, 2011, 04:44:19 PM
Last edit: September 10, 2013, 06:16:46 PM by John Tobey
 #1

This is a Newbies-friendly copy of: https://bitcointalk.org/index.php?topic=22785.0

!!! Announcing Abe, the open-source block chain browser !!!

While theymos' Bitcoin Block Explorer has served us well, there are benefits that can only be had by an open-source version of this critical Bitcoin infrastructure.

  • Privacy: you can view information without revealing your interest in it.
  • Extensibility: you can add features that you want.
  • Trust: you can audit the source code.
  • Reliability: you can run it on your own server free of charge.

Abe provides much of Block Explorer's interface, including the list of recent blocks, a search tool, and detailed block, transaction, and address history pages.  Abe can also present multiple currencies such as Bitcoin, Namecoin, Tenebrix, and whatever FooCoin tomorrow may bring.  Abe lets you page back and forth in the block list and presents some new statistics like Average Coin Age.

Abe's interactive performance approaches Block Explorer's, though it is untested under BBE loads.  Abe supports a subset of Block Explorer's API.

Source code on Github: https://github.com/bitcoin-abe/bitcoin-abe
Demonstration site: http://abe.john-edwin-tobey.org/ (a 512MB VPS, can't handle heavy loads)
Requirements: Python and an RDBMS; tested with PostgreSQL, SQLite, MySQL, Oracle, ODBC, and DB2.
Donations: 1PWC7PNHL1SgvZaN7xEtygenKjWobWsCuf (BTC) and NJ3MSELK1cWnqUa6xhF2wUYAnz3RSrWXcK (NMC).

Enjoy!

December 6, 2012: Version 0.7.2 released.
August 31, 2011: Version 0.6 released.
August 16, 2011: Version 0.5 released.
July 15, 2011: See changes since July 4.

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
1715184970
Hero Member
*
Offline Offline

Posts: 1715184970

View Profile Personal Message (Offline)

Ignore
1715184970
Reply with quote  #2

1715184970
Report to moderator
1715184970
Hero Member
*
Offline Offline

Posts: 1715184970

View Profile Personal Message (Offline)

Ignore
1715184970
Reply with quote  #2

1715184970
Report to moderator
The Bitcoin software, network, and concept is called "Bitcoin" with a capitalized "B". Bitcoin currency units are called "bitcoins" with a lowercase "b" -- this is often abbreviated BTC.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1715184970
Hero Member
*
Offline Offline

Posts: 1715184970

View Profile Personal Message (Offline)

Ignore
1715184970
Reply with quote  #2

1715184970
Report to moderator
1715184970
Hero Member
*
Offline Offline

Posts: 1715184970

View Profile Personal Message (Offline)

Ignore
1715184970
Reply with quote  #2

1715184970
Report to moderator
1715184970
Hero Member
*
Offline Offline

Posts: 1715184970

View Profile Personal Message (Offline)

Ignore
1715184970
Reply with quote  #2

1715184970
Report to moderator
akaihola
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
March 20, 2013, 04:39:43 AM
 #2

Does the "trim spent outputs" feature in the no-statistics branch mean that you can't see the total amount of BTC received for each account?
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
March 20, 2013, 02:09:01 PM
 #3

Does the "trim spent outputs" feature in the no-statistics branch mean that you can't see the total amount of BTC received for each account?
Yes, that information is lost.  All you see is total received minus total sent.  It would be possible to store the total received by each address, but it would only be a lower bound on the real value, since addresses themselves are trimmed when empty.

Any particular use case in mind?

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
akaihola
Newbie
*
Offline Offline

Activity: 13
Merit: 0


View Profile
April 12, 2013, 06:16:39 AM
 #4

Does the "trim spent outputs" feature in the no-statistics branch mean that you can't see the total amount of BTC received for each account?
Any particular use case in mind?

Tracking the total amount received for a bunch of addresses.
ttsda
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
April 16, 2013, 08:26:54 PM
 #5

I loaded the blockchain to an Abe sqlite DB, but now I want to use Postgres.
Is there a way to convert the sqlite DB to pg, or do I have to rescan the whole blockchain again?
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
April 16, 2013, 08:54:41 PM
 #6

I loaded the blockchain to an Abe sqlite DB, but now I want to use Postgres.
Is there a way to convert the sqlite DB to pg, or do I have to rescan the whole blockchain again?
This would be a nice feature but is not supported currently.  If you have good SQL skills and a few hours to spare, I can outline the steps.  But if you can afford to wait for the reload, that will be much easier.

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
ttsda
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
April 16, 2013, 09:37:49 PM
 #7

If you have good SQL skills and a few hours to spare, I can outline the steps.  But if you can afford to wait for the reload, that will be much easier.

Please do! I think I can do it if you give me a few instructions Smiley
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
April 17, 2013, 12:12:43 AM
 #8

If you have good SQL skills and a few hours to spare, I can outline the steps.  But if you can afford to wait for the reload, that will be much easier.

Please do! I think I can do it if you give me a few instructions Smiley
Answered via PM.  If anything useful results from this exercise, one of us will post it.

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
mullick
Legendary
*
Offline Offline

Activity: 1064
Merit: 1002


View Profile
June 15, 2013, 12:36:52 PM
 #9

Any chance this would be easy enough to adapt for a newbie with a tutorial? I have only ever done a hello world and simple calculator in java but get enough to follow simple directions enough. I could offer someone a few Ltc to make a tutorial. I may be way out of my league he but It's worth a shot
pointychimp
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
June 17, 2013, 09:22:29 PM
 #10

I keep getting a "RuntimeError: maximum recursion depth exceeded" error. It happens every time I start abe up, and every time I access a page the error shows up in the console. I start abe with the following command:

python -m Abe.abe --config abe-my.conf

and the (censored) contents of abe-my.conf are as follows:

dbtype MySQLdb
connect-args {"user":"*****","db":"*****","passwd":"*****"}
upgrade
host *****
port 2750
datadir = /****/****/.bitcoin


What more info do you need, if any? Is there something in python I have to change?
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
June 18, 2013, 02:27:43 AM
 #11

I keep getting a "RuntimeError: maximum recursion depth exceeded" error. It happens every time I start abe up, and every time I access a page the error shows up in the console.
This has been on the to-do list for a long time.  I'll give it another look, but as I recall, it would take the better part of a day to code and test.

First, run Abe once with --rescan in case that solves it.  If you know Python, you can try sys.setrecursionlimit(300000) as suggested here.  (Replace 300000 with a few more than the number of blocks in your chain, or try lower numbers until either success or another kind of crash.)

I think this happens when the block files are "very" out of sequence: when a sequence of 1000 or more blocks all occur before one of their common ancestors.  Could this be the case with your block files?  Maybe this is normal for the latest Bitcoin versions, which I have not tested.  Is there anything unusual about how your block files were created, or did you download the chain again after running Abe the first time?

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
bongwater
Newbie
*
Offline Offline

Activity: 14
Merit: 0


View Profile
June 18, 2013, 02:34:39 AM
 #12

Open source block explorer? can you explain what this is?
macintosh
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
June 18, 2013, 04:18:43 AM
 #13

lovin this idea, goodluck
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
June 18, 2013, 02:14:58 PM
 #14

Open source block explorer? can you explain what this is?
https://en.bitcoin.it/wiki/Block_chain_browser

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
pointychimp
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
June 18, 2013, 04:45:20 PM
 #15

I keep getting a "RuntimeError: maximum recursion depth exceeded" error. It happens every time I start abe up, and every time I access a page the error shows up in the console.
This has been on the to-do list for a long time.  I'll give it another look, but as I recall, it would take the better part of a day to code and test.

First, run Abe once with --rescan in case that solves it.  If you know Python, you can try sys.setrecursionlimit(300000) as suggested here.  (Replace 300000 with a few more than the number of blocks in your chain, or try lower numbers until either success or another kind of crash.)

I think this happens when the block files are "very" out of sequence: when a sequence of 1000 or more blocks all occur before one of their common ancestors.  Could this be the case with your block files?  Maybe this is normal for the latest Bitcoin versions, which I have not tested.  Is there anything unusual about how your block files were created, or did you download the chain again after running Abe the first time?


I don't think I did anything unusual. I think I did copy block files from one of my computers to my server in order to speed up the chain download time. Problem is I don't remember if I did that before running abe for the first time or after. I'm currently letting abe rescan. If this doesn't work, I might just bite the bullet, remove everything from the mySQL database, delete my .bitcoin/ directory, download the blockchain the conventional way, and try again.

Thanks for the help. I'll try to remember to report back if I ever get this solved!
macintosh
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
June 18, 2013, 04:51:47 PM
 #16

thank you for this!
coinpipe
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
June 25, 2013, 07:03:16 PM
 #17

Thanks for ABE. I've been trying it out with a few different alt-coins. I could do with a hand understanding address_version.

For most coins it seems to be obvious, just the unicode of the first character of an address. But some coins have addresses like this (feathercoin in this example)

6nh62XDjhbqjjit78jfStECNcHz89xbNeq
72HzQ77Xbpg67MadosyWDjd5YZsVHz4Npt

etc...

I've tried settings an address_version of "\u0036" (a unicode '6') and this seems to work fine, however I'm worried that is not right. Is \u0036 ok, or should I do something else?
John Tobey (OP)
Hero Member
*****
Offline Offline

Activity: 481
Merit: 529



View Profile WWW
June 25, 2013, 07:17:37 PM
 #18

Thanks for ABE. I've been trying it out with a few different alt-coins. I could do with a hand understanding address_version.

For most coins it seems to be obvious, just the unicode of the first character of an address. But some coins have addresses like this (feathercoin in this example)

6nh62XDjhbqjjit78jfStECNcHz89xbNeq
72HzQ77Xbpg67MadosyWDjd5YZsVHz4Npt

etc...
Plugging it into decode_address, for example:

http://explorer.doubloons.net/chain/Doubloons/q/decode_address/6nh62XDjhbqjjit78jfStECNcHz89xbNeq

gives "0e" as the hex version byte for both those addresses, so I would think it is "\u000e".

Can a change to the best-chain criteria protect against 51% to 90+% attacks without a hard fork?
coinpipe
Newbie
*
Offline Offline

Activity: 2
Merit: 0


View Profile
June 25, 2013, 07:31:27 PM
 #19

Ah got it! Thanks a bunch.
pointychimp
Newbie
*
Offline Offline

Activity: 20
Merit: 0



View Profile WWW
July 13, 2013, 04:40:01 PM
 #20

Hey I've been having more luck since starting fresh with abe and the blockchain. I'm trying to get abe to use RPC but it always says either "catch_up_rpc: abort" or "Exception: RPC load failed." The bitcoin client is the first time I've ever seen RPC so I am very unfamiliar with it. It does seem, however to be a better way for abe to update the database instead of reading the blockfiles over and over again.

So my question is this. How do I make it work? I have a ~/.bitcoin/bitcoin.conf which contains the rpc username and password, and told it to listen for rpc on port 8332 (plus other settings). That port is correctly forwarded in my router. In abe.conf I have (among other things)

datadir += [{
        "dirname": "/home/<myname>/.bitcoin",
        "loader": "rpc",    # See the comments for default-loader below.
        "chain": "Bitcoin"
      }]


Is there any more information you need? Is there someway I can tell abe to connect to bitcoind with RPC over a specific port?

Thanks for your help.

Matt
Pages: [1] 2 3 4 5 6 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!