Pages:
Author

Topic: Gocoin - totally different bitcoin client with deterministic cold wallet - page 3. (Read 38500 times)

member
Activity: 98
Merit: 10
http://github.com/root8/fsigDecredGUI
Great work you are doing here !
What would you think about decred.org from the developers of other golang bitcoin client ?
legendary
Activity: 2053
Merit: 1354
aka tonikt
Just a quick update on the latest development, to let you know that I am still alive and the project is being maintained Smiley

The latest release 1.7.2 comes with some nice features.

I've been happy to learn that the core team finally did something to speed up the blocks' propagation - that came with 0.13.
Therefore with pleasure, I have implemented BIP-152 into Gocoin - I love this new method.

I've also optimised the algorithm of dropping worse (slowest) peer, in order to be connected to the best performing ones.
Now it considers not only the ping, but mostly the number of a new blocks we have received from a peer.

The full list of changes, as always, in the changelog.





legendary
Activity: 2053
Merit: 1354
aka tonikt
Just want to let everyone know that with the new HEAD (to become version 1.7.0) there is kind of a major change in the node.       

The node client does not keep any wallet data anymore - not in the file system, nor it RAM.
Instead the wallets' public addresses are stored in the LocalStorage, on the browser that operates node's WebUI.
The improvement is that a balance of any (P2SH or P2KH) address can be fetched instantly.
Balances of specific wallets are now fetched by the browser while loading a relevant page (Wallet or SendTx) of the WebUI.
The content of the HTTP request (list of addresses) is not stored at the node's side.

At this moment you can only fetch balance of P2SH and P2KH addresses - the support for stealth addresses has been turned off.
Additionally, all the wallet features have been disabled in TextUI.

Because it needs to build the database of all the addresses and their balances, the node launches significantly longer now.
It also requires more RAM - I changed the RAM requirement to 8GB.

Please note that (to save memory and improve performance) by default the balance database does not account for unspent outputs with less than 0.001 BTC.
You can change that by modifying the config value "AllBalances.MinValue" (set it to 1 to have everything listed).


I believe this is a change in a good direction.
It allows multiple users (wallet owners) to share the same gocoin node; improves performance of fetching the balances, as well as the privacy by not storing the content of the requests.

If you like the old functionality (with stealth addresses and wallet files stored at the server), checkout version 1.6.4
legendary
Activity: 2053
Merit: 1354
aka tonikt
OK... After a several changes in Gocoin, currently it does everything up till (including) b89.

Two blocks do not return the expected result:

b48 - block with the time stamp more than 2 hours in the future.
I cannot properly against the blocks data from the disk, but I trust I didn't screw up this check.

b61 - same ID of a coinbase TX.
I'm not going to be adding a check for this, as it can only happen with v1 bocks, which are long gone.

In a future, when I find some more time, I will try to somehow fix the tests tool; make it stable and test all my further gocoin releases against it.
Will also do the remaining "massive reorgs" tests...


Thank you once again, @hhanh00 - I really appreciate your input.
It helped me to find (and fix) another few compatibility issues, on the blocks checking.
Some of the checks in Gocoin were too strict (e.g. b64), others (e.g. b66) were not strict enough.

A friend of mine modified the original tool for me.
Now it's feeding the test blocks (one-by-one) to an external command.

This allowed me to make a simple wrapper for the gocoin library in order to test the blocks compatibility.
All test pass, except for b61, which I am not going to fix as it would decrease performance of the lib, just for the sake of the test. So I implemented a work-around in the wrapper, for this specific test.
All the rest is passing - up till the block "b1004", which is the last one in the test suite.

If anyone would like to test it by himself, or use the java tool my friend made to test their own software, it's all in here:
https://github.com/piotrnar/btc_block_validator

Start the tool using
Code:
java -jar bitcoin.jar 
.. it will be executing a command next_block.exe in the current folder for each new block.
The block is always in file named dupa.bin - just ignore the first 8 bytes.
Additionally next_block.exe is called with 5 command line arguments. One of them is the hash of the top block expected to be after the block processing is done - that's how you verify whether the block from dupa.bin is properly processed/rejected.
legendary
Activity: 2053
Merit: 1354
aka tonikt
thanks. ipv6 suport will eventually come. it just hasn't' got high enough priority so far.
legendary
Activity: 2909
Merit: 1307
nice client and the downloader is really fast, cool work!

but a question, i see that you "only" support ipv4 in the client. will you plan to support ipv6 also?
Then I can setup some more nodes Smiley
sr. member
Activity: 467
Merit: 266
No problem, you're welcome.
legendary
Activity: 2053
Merit: 1354
aka tonikt
OK... After a several changes in Gocoin, currently it does everything up till (including) b89.

Two blocks do not return the expected result:

b48 - block with the time stamp more than 2 hours in the future.
I cannot properly against the blocks data from the disk, but I trust I didn't screw up this check.

b61 - same ID of a coinbase TX.
I'm not going to be adding a check for this, as it can only happen with v1 bocks, which are long gone.

In a future, when I find some more time, I will try to somehow fix the tests tool; make it stable and test all my further gocoin releases against it.
Will also do the remaining "massive reorgs" tests...


Thank you once again, @hhanh00 - I really appreciate your input.
It helped me to find (and fix) another few compatibility issues, on the blocks checking.
Some of the checks in Gocoin were too strict (e.g. b64), others (e.g. b66) were not strict enough.
legendary
Activity: 2053
Merit: 1354
aka tonikt
It's a bit tricky because the block file doesn't have the expected state of the blockchain, just the block data.
Yes, I know.
I have been testing it manually, going down the source code.
The code says whether a specific block is expected bo be accepted or rejected (the second parameter to BlockAndValidity)

At this moment all up to block #55 is OK.
Then there are some timestamp tests and things get complicated..
But so far so good.

Cheers
sr. member
Activity: 467
Merit: 266
Ok. It's a bit tricky because the block file doesn't have the expected state of the blockchain, just the block data.

In a previous project, I actually did the same thing. You may want to take a look at https://github.com/hhanh00/bitcoin-akka-tutorial
I patched the test generator so that it writes out the chain state and hook up a test driver.


legendary
Activity: 2053
Merit: 1354
aka tonikt
The pastbins are truncated. Actually the first 100 blocks are not interesting. You could edit that part out.
Sorry - haven't noticed.

Thanks, I find the blocks file - will try to feed it to node and see...
Think it's an easier approach, as achieving network compatibility with this tool is not my goal.
But I want to get the block consensus tests out of it.
sr. member
Activity: 467
Merit: 266
The pastbins are truncated. Actually the first 100 blocks are not interesting. You could edit that part out.
sr. member
Activity: 467
Merit: 266
It creates such a file every time your run it. That's why it takes a while to startup.

Code:
        File blockFile = File.createTempFile("testBlocks", ".dat");
        blockFile.deleteOnExit();

Change these lines and you can keep the file around.
legendary
Activity: 2053
Merit: 1354
aka tonikt
Do you know if it is possible to just make this tool output the sequence of blocks and do not talk to my node at the network?

legendary
Activity: 2053
Merit: 1354
aka tonikt
Thank you. That's very useful information. I guess I can somehow imitate it, for a purpose of the test.

I's also sending empty invs - I'm assuming this is also supposed to serve some purpose..

Either way, I think now my biggest mistery is what it doesn't like about the "b4"

test tool: http://pastebin.com/YpkHJMeW

gocoin: http://pastebin.com/QdUCHZrH
sr. member
Activity: 467
Merit: 266
The tool uses an ugly hack to work around timing issues. Bitcoind processes commands in sequence so the tool sends a ping and waits for a pong. At that time bitcoind has finished processing previous commands and reorgs have taken place. This won't work if your implementation handles ping/pong in parallel.

The pastbins are truncated. Actually the first 100 blocks are not interesting. You could edit that part out.
legendary
Activity: 2053
Merit: 1354
aka tonikt
OK, if that's what it takes... let move on

I did the change in handling getheaders.
Now it can stop in two different ways - I will just focus on the first one.

When I add some delays, here and there, I can work around this first issue, so let's fast forward..

I changed the behaviour of "getheaders" - now it gets blocks from the genesis when locator isn't found.
Still the end result is similar to what I had before.
It report error after "b4" and "b5" and terminates after "b8".

test tool: http://pastebin.com/YpkHJMeW

gocoin: http://pastebin.com/QdUCHZrH

I honestly don't know what is its problem with b4 - I think the branch is swapped just as it should be.
I believe the issues I'm experiencing are not related to the consensus rules, but only to the network protocol's behaviour.
legendary
Activity: 2053
Merit: 1354
aka tonikt
nice old wallet... from 2013 Cheesy it means is a stable one?
Most of the tags are stable Smiley

See by yourself.
hero member
Activity: 770
Merit: 500
nice old wallet... from 2013 Cheesy it means is a stable one?
legendary
Activity: 2053
Merit: 1354
aka tonikt
OK, if that's what it takes... let move on

I did the change in handling getheaders.
Now it can stop in two different ways - I will just focus on the first one.

Gocoin's debug:
Code:
Commiting block 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04 -> 2858fd7dec9ee514ef1c4dd76beb97e91f6513f1b2afe3f6f755c3843607f74f
 - New TOP 99
Current last 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
cmd headers 82
cmd inv 37
got block inv 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
InvBlockOld
cmd inv 37
got block inv 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
InvBlockOld
cmd block 179
cmd getheaders 69


Commiting block 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93 -> 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
cmd ping 8
 - New TOP 100
Current last 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
cmd headers 82
cmd inv 37
got block inv 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
InvBlockOld
cmd inv 37
got block inv 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
InvBlockOld
cmd block 323
cmd getheaders 69
cmd ping 8


Commiting block 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5 -> 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
cmd headers 82
cmd inv 37
got block inv 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
InvBlockOld
cmd block 324
 - New TOP 101
Current last 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
cmd inv 37


Commiting block 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e -> 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
got block inv 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
InvBlockOld
 - New TOP 102
Current last 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
cmd getheaders 69
cmd ping 8
cmd inv 37
got block inv 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
InvBlockOld


Tool's debug:
Code:
10:39:31 1 BitcoindComparisonTool.main: Testing block Initial Block chain output generation 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
10:39:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 2858fd7dec9ee514ef1c4dd76beb97e91f6513f1b2afe3f6f755c3843607f74f
10:39:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (2858fd7dec9ee514ef1c4dd76beb97e91f6513f1b2afe3f6f755c3843607f74f) -> 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
10:39:31 1 BitcoindComparisonTool.main: Sent inv with block 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
10:39:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
10:39:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
10:39:31 1 BitcoindComparisonTool.main: Block "Initial Block chain output generation" completed processing
10:39:31 1 BitcoindComparisonTool.main: Testing block Initial Block chain output generation 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
10:39:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04
10:39:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (66fe0adc6e2043ebd68d0f17cc1b96a5dc8f75dfa5ffa2ec126c8348a8e3ea04) -> 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
10:39:31 1 BitcoindComparisonTool.main: Sent inv with block 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
10:39:32 1 BitcoindComparisonTool.main: Block "Initial Block chain output generation" completed processing


10:39:32 1 BitcoindComparisonTool.main: Testing block b1 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (4aa43a46282751bf1a875bfc0c3a8c05da948736253f87e9846a556bf7588d93) -> 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
10:39:32 1 BitcoindComparisonTool.main: Sent inv with block 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
10:39:32 1 BitcoindComparisonTool.main: Block "b1" completed processing


10:39:32 1 BitcoindComparisonTool.main: Testing block b2 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (1fd4823e456bb6bb9bcc757c67ec3456dee4bc6119eea94f09ff24a2afd8c1c5) -> 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 1 BitcoindComparisonTool.main: Sent inv with block 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 1 BitcoindComparisonTool.main: Block "b2" completed processing
10:39:32 1 BitcoindComparisonTool.main: Testing block b2 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 1 AbstractBlockChain.add: 6 blocks per second
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 1 BitcoindComparisonTool.main: Sent inv with block 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:33 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:33 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:33 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:33 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:33 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:33 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:34 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:34 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:34 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:34 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:34 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:34 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:35 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:35 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:35 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:35 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:35 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:35 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:36 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:36 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:36 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:36 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:36 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:36 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:37 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:37 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:37 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:37 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:37 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:37 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:38 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:38 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:38 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:38 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:38 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:38 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:39 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:39 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:39 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:39 1 BitcoindComparisonTool.main: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:39 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
10:39:39 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
It gets stuck in a loop like this.


Basically what is happening:
*) I receive "header" with "b2" (797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e) and I issue "getdata" for it
*) I receive "inv" for "b2" - 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e and ignore it (as the block is being downloaded)
*) I receive "block" for 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
*) I process the block and accept it as the new head: Current last 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
*) I receive "inv" for "b2" - 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e and ignore it (as the block is already known)
*) The tool gets stuck in the loop, printing: bitcoind still hasn't requested block b2 with hash 797f9966e1d76b53b41167e4d05134f9216da0b941feed3578f1a446bdc9828e
Pages:
Jump to: