I've been failing to receive topic reply notifications since mid-August. Apologies for not noticing sooner. If you posted a question since then and would like me to read it, please repost it or send me a link to it via PM.
|
|
|
I've failed to receive topic reply email notifications since mid-August. I think Yahoo! Mail classified them as spam, but not anymore. If you'd like a reply to a post in the last six months, please repost it or PM me. Sorry for the trouble. (It's been years since I evaluated free spam filters... perhaps I should again?) When Abe loads a chain into the database but shows only the genesis block, the chain probably computes hashPrev using an algorithm other than double-SHA256. NovaCoin does this, and I recently added support for it (thanks to Drak's sponsorship). However, there is not yet a generic way to specify this property. It will take some code changes.
|
|
|
And here, for the other issue (duplicates counted in the balance)
|
|
|
File "Abe/DataStore.py", line 1740, in import_block if tx['unlinked_count'] > 0: KeyError: 'unlinked_count'
Thanks, I think I have fixed this. Please pull and try the latest code.
|
|
|
I have transferred the Git repository to: https://github.com/bitcoin-abe/bitcoin-abe . Thanks to Patrick for setting this up. According to GitHub, the old URL will continue to work, but to avoid confusion, you can run git remote set-url origin https://github.com/bitcoin-abe/bitcoin-abe.git in the bitcoin-abe directory. I have changed the copyright holder from "John Tobey" to "Abe developers". Since I don't have much time to maintain Abe any more, I invite other interested people to join the team.
|
|
|
Sorry if it's already been asked but I don't see it in the TODO.txt.
It would be great to be able to purge from the database the already spent transactions (after +6 confirmations or so).
This functionality exists in experimental form on the no-statistics branch in Git. Search "no-statistics" and "default-trim-depth" in this thread. This would reduce the database and would still be useful for those applications which only need to work with unspent and new transactions.
In the meantime would it be fine deleting those transactions directly on the database? (or would it break Abe?)
Thanks.
I don't know. It probably won't severely break Abe. You might see some wrong numbers, negative values and the like in affected blocks. The no-statistics branch shows wrong totals in some places.
|
|
|
MacBook-Pro:bitcoin-abe zehadyzbdullahkhan$ python -m Abe.abe --dbtype=sqlite3 --connect-args=abe.sqlite --port 2750 no chain_id catch_up_rpc: abort Opened /Users/zehadyzbdullahkhan/Library/Application Support/Bitcoin/blocks/blk00018.dat block_tx 192674 5701191 block_tx 192674 5701192 block_tx 192674 5701193 ............................................
Until it finishes loading, this process will not serve HTTP requests. I suggest you run two processes, a dedicated loader and a dedicated server. Window 1: python abe.py --dbtype=sqlite3 --connect-args=abe.sqlite --port 2750 --datadir '[]' Window 2: while true; do python abe.py --dbtype=sqlite3 --connect-args=abe.sqlite --no-serve; sleep 10; done "--datadir []" makes it skip loading and start serving immediately. "--no-serve" makes it exit immediately after loading all blocks, and the while-loop makes it check again after a pause.
|
|
|
Do you really need an API call for that? $blockreward = 50 * pow(0.5, floor($current_block / 210000)); thanks for the formula. this is ok for bitcoin. but i think about all the other altcoins out there. its very hard work to get every formula for each altcoin. i thought maybe there is an easy way trough abe No, sorry. The block chain shows only past block rewards, almost every alt chain has a different formula, and I know of no RPC call that returns it, so finding the current or future reward in general is not trivial.
|
|
|
File "Abe/deserialize.py", line 236, in script_GetOp opcode |= ord(bytes[i]) IndexError: string index out of range
Please pull and try the latest code. This was fixed a few days ago.
|
|
|
Hello John,
When sending Bitcoins to an address, new inputs don't appear in the transactions list until there is at least one confirmation. Are you filtering them out programatically? Can they show up even though they still have no confirmations?
Bitcoind does not write unconfirmed transactions to the blockfile. You would have to run in RPC mode to see them. See the comments about default-loader in abe.conf: https://github.com/jtobey/bitcoin-abe/blob/d3f1e2ff6714b1fc4dce11f67d1625304cb5f4ca/abe.conf#L271-296
|
|
|
This is the output <module 'Abe.abe' from '/usr/local/lib/python2.7/dist-packages/Abe/abe.pyc'> This means you are getting the previously installed version. You want the one from from 'Abe/abe.py'. Either install the new version (as root, python setup.py install) or set PYTHONPATH to the git clone directory (bitcoin-abe, not the Abe subdirectory). Normally, sys.path starts with an empty string, so if you "cd" to the correct directory, Python should find the local modules.
|
|
|
yep, Git tells me I'm up to date and I have manually checked for those changes and everything is there.
any thing else?
Perhaps you have an older version installed on your system? Otherwise, I don't see how Abe could produce that message. What does this show: python -c 'import Abe.abe; print Abe.abe;'
|
|
|
Hello John,
Is it easy to implement N confirmations to addressbalance?
Yes, it should be pretty easy, since the underlying functions get_sent_and_last_block_id and get_received_and_last_block_id both accept a block_height. Just make the new API pass N less than the current block number. Please note that I have not had much time to work on new features lately. Also, is is possible to not show the results of the second SQL in the result set of the first SQL?
I am not sure which API function you mean, but there is commingling of sent and received amounts, and to separate them would take a couple of hours of coding. Can you point to another block explorer that does it how you want? I usually try to copy their interfaces rather than invent my own.
|
|
|
You should make a newbie friendly .exe version of this that they can just double click to install.
I have too little time. I would happily show another developer around, should one wish to package it nicely.
|
|
|
Close enough, it's here, and the new field is strTxComment: https://github.com/diamondcoinproject/diamondcoin/blob/dd388c28bf89abeaaad761982bb4d04f18995c27/src/main.h#L452-462I've downloaded some of the DMD chain and got Abe to load it, but only over RPC, since this coin uses strange block hashing rules. Loading from the blockfile resulted in only Block 0 being displayed, since Abe could not link any block to its parent. Also, I had to disable verification and make Abe trust the RPC server's block hashes. (If you have info about the differences between DMD and Bitcoin block hashing, I may be able to fix this.) Please pull branch "diamond", copy Diamond.conf as bitcoin.conf, add "rpcport=17772" to that file if not already present, and use a config such as this: datadir [{"dirname":"/root/.Diamond", "chain":"Diamond", "code3":"DMD", "address_version":"\u005a"}] default-loader rpc
|
|
|
Hey John Tobey, I am trying to set up the explorer for the DMD coin, I've read the issue about PPcoin branches, could you give any help on setting this up for DMD?
thanks
Sure, just post how far you got and any detailed error message. If the transactions have a new format, we may need to find how the coin's source code serializes CTransaction. Bitcoin example: src/core.h line 194.
|
|
|
Thanks for the detailed reply John. Once the initial load finishes I'll run some tests. BTW, the last 50.000 blocks seem to take forever, I guess there are many more TXs.
Yes. You can get an idea of how far it has to go by examining the datadir table. "blkfile_number" corresponds to a file in the blocks directory (e.g. 100048 = blk00048.dat) and "blkfile_offset" shows how far in the file Abe has loaded.
|
|
|
Hello,
I have a few questions:
- Do I need to wait for bitcoind to download the complete block files or can I run them in parallel? - Once the initial data load finishes do I need to stop it and run it with python -m Abe.abe --config abe-my.conf? - Will running python -m Abe.abe --config abe-my.conf insert new incoming blocks?
Thanks
You can run bitcoind and Abe in parallel. The instructions call for --no-serve on the initial load, and this makes it exit as soon as it loads the last block, so you don't have to stop it. The instructions say to run in web-server mode after the initial load, but you can run both at the same time, as long as you add "--datadir=[]" to the end of the web server command: python -m Abe.abe --config abe-my.conf "--datadir=[]" The "--datadir=[]" prevents the two processes from competing to insert blocks, which tends to cause trouble. Unfortunately, Abe does not automatically insert new blocks every so often. By default, ( without "--datadir=[]") it inserts new blocks when you browse the site, but if you haven't for a long time, it can take Abe quite a while to catch up. If this is a problem, I suggest you schedule a job to trigger this at regular intervals. For example, I use this in crontab to check every minute: * * * * * /usr/bin/wget -q -O /dev/null http://localhost:2750/ If you want to run a server as opposed to just personal use, I suggest configuring the public server not to load anything (by adding "--datadir=[]") and have a separate process listening on the local interface with a job such as the above to trigger loading new blocks. Using a local listener keeps the loader single-threaded. (This information should be in a readme, thanks for asking.)
|
|
|
|