Bitcoin Forum
June 21, 2024, 11:48:07 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 2 3 4 5 [6] 7 8 9 10 »  All
  Print  
Author Topic: Gocoin - totally different bitcoin client with deterministic cold wallet  (Read 38518 times)
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
August 31, 2014, 06:51:29 PM
Last edit: August 31, 2014, 07:06:40 PM by piotr_n
 #101

Having compatibility with a known schema has the advantage having additional security if the wallet development abruptly disappears or some bugs appear making temporary unusable the software.
It is also more flexible if I could use for ex. elektrum and combining sometimes with gocoin just generating the seed containing my coins.
For example armory is a little bit heavy but I can generate a tree quickly from my seed with a brainwallet(for ex. brainwallet.org supports it), receive payments on the generated tree addresses and later I could import the seed in armory.
A different, new schema could have sense if presents some advantages which balances the lack of compatibility.

I have the wallet's type in the config file (so far only 1,2 and 3 are used) and I can add other algos easily.
I wouldn't mind adding new types (compatible with armory, electrum, or anything else), but the main problem is that none of it seems to be documented and there isn't really one established standard for it.
The HD wallets might be a good way to go on with a standard, though they don't seem to cover the calculation of the initial vectors from the seed password.

So it is an open topic and I think the software will eventually evolve to support other types of deterministic wallets, but I just don't want to add any new types without some strong user cases, because it would only create more mess.

But the code is open and fairly simple, so if anyone wants to put in his own method, just play with the function make_wallet(), in file gocoin/wallet/wallet.go
It is a dangerous place to play with, so feel free to post your changes here for an audit.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
July 31, 2015, 01:24:21 PM
 #102

Despite of no update in this topic for almost a year, I want to assure that gocoin project is doing fine; being maintained and updated.

The last tagged version (1.2.0) already supports BIP66. Everything else is in the changelog file.
It's been my only bitcoin node for a long time so I can guarantee that it's fully functional and pretty cool. Smiley

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
max.max
Newbie
*
Offline Offline

Activity: 1
Merit: 0


View Profile
February 08, 2016, 07:20:06 AM
 #103

Despite of no update in this topic for almost a year, I want to assure that gocoin project is doing fine; being maintained and updated.

The last tagged version (1.2.0) already supports BIP66. Everything else is in the changelog file.
It's been my only bitcoin node for a long time so I can guarantee that it's fully functional and pretty cool. Smiley

Hi, do you have any idea how many running nodes currently live?
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
February 08, 2016, 08:51:33 AM
 #104

Hi, do you have any idea how many running nodes currently live?
No idea.

But at least mine.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
February 08, 2016, 09:02:05 AM
 #105

BTW, sorry for neglecting the development recently, but I've been traveling for awhile, mostly into places with shitty internet.

I'll be back home soon and I plan to work on headers-first syncing and segregated witness functionality, among others.

I've been also thinking on changing we web interface in a way that I can have the client node running on some VPS server while my wallet files would be fed to it from the browser (connecting there via sshd tunnel) whenever I need to check/fetch the balance.
During my travels I found it very inconvenient to re-synchronize the blockchain at my laptop's client, each time I was arriving at a new hotel (usually after a couple of days of no wifi access).
So I want to have a node running somewhere 24/7 but without the wallet files being stored there, as I don't like an idea that some Amazon or other company would be able to lurk at this data.

So stay tuned - Gocoin is not dead Wink

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
March 03, 2016, 01:04:36 PM
 #106

So back to work and currently I'm busy testing 1.5.0 before tagging it.
There have been loads of changes.
Among them headers-first syncing with support for BIP-130.

I also added plenty of stuff related to the memory pool monitoring and calculation of proper fees - it's becoming more and more useful/needed.

So now you can e.g. see stats like this:


From the wallet's side, new transactions are by default created with a non-final sequence number (by default it's current unix time value), so their fee can be increased later (see BIP125)

I have not implemented BIP125 in at the node's memory pool yet.
I haven't seen many RBF transactions in the network, so I will just do it somewhere later, having more live stuff to test it against.

Same with Segregated Witness - I will wait for it to come live on the network and then add it to Gocoin.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
March 03, 2016, 05:01:49 PM
 #107

Sorry, I forgot to add that I added the Browser Wallets feature.
It does not require a wallet file to be stored within the node's file system anymore.
I use it with nodes which I run remotely, on VPS.

It takes a few seconds to load a web wallet for the first time, so expect some lags launching WebUI having had a browser wallet selected.

It is actually a pretty cool thing.

The setup I use myself is the node running on some ~20EUR/month VPS.
I connect there via ssh, tunneling the WebUI's port number (8833) through it.
Then I just the webui via http://127.0.0.1:8833

So the node is running on some external server and the wallet is in my house.
Well, actually the wallet app is in my house and the actual wallet (the seed password) is only in my head Smiley

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
March 30, 2016, 11:30:35 AM
Last edit: March 30, 2016, 05:16:23 PM by piotr_n
 #108

I'm about to release 1.6.0 that has got some cool new features, which you can briefly read about int the changelog.

Upgrade is highway recommended as all the versions up to (including) 1.5.0 have had a serious security issue, which I prefer to not talk about because it's just embarrassing. Smiley

As for the new features.

There is a basic RPC API, implementing functionality required for mining. It is compatible with bitcoind's API and so far has been tested successfully on testnet3 with ckpool mining software.

The Home, Network and Transaction pages of WebUI shows nice graphs: http://imgur.com/a/eq1AH

The node counts sigops inside transactions and blocks.

The new tool bdb allows to play (extract/add blocks, check integrity) with the block's database. Also allows to defragment the db without a need to have the double space on the disk.

UTXO database can now work in a "volatile mode" where it only writes changes to disk when exiting. Use -v switch for either client or downloader to trigger it. The qdb enginie has also changed a bit and now it writes any pending changes on disk much faster.

You can also start the client with "-undo <n>" switch, which will cause the node to undo the last n blocks (on the UTXO db) and exit.

The most recently added is the feature that looks for "libbitcoinconsensus.so" or "libbitcoinconsensus-0.dll" (depending on host OS) and if found uses the function from it to cross-verify each transaction.
So far it hasn't found any mismatches. Use TextUI command cons to see the stats of the cross-checking.


I would also like to mention that the recent versions of Gocoin have no external dependencies and should build out-of-the-box.
Just make sure to have 64 bit OS and at least 6GB of RAM (it's swapping too much slow less memory). In peaks (especially when rebuilding the UTXO db) it may even need more memory. But normal node, working on a synchronized chain, should never use more than 4GB.

I also strongly advise to use downloader to sync up the block chain - it's really fast as it doesn't verify transactions.  
Theoretically it is less secure, but there is no way to exploit it, if you only check the hash of the last block it assumed trusted.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
hhanh00
Sr. Member
****
Offline Offline

Activity: 467
Merit: 266


View Profile
April 08, 2016, 12:44:58 PM
 #109

Hi, out of curiosity, did you check your node against the bitcoin regression tests?

https://github.com/TheBlueMatt/test-scripts

--h

piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
April 08, 2016, 01:12:49 PM
Last edit: April 08, 2016, 06:07:58 PM by piotr_n
 #110

Hi, out of curiosity, did you check your node against the bitcoin regression tests?

https://github.com/TheBlueMatt/test-scripts

--h


I would not know how to use that tool as I'm not a very big fan of java, but I can say that Gocoin is being checked against the official core's test vectors for transaction and scripts - both valid and invalid:
https://github.com/bitcoin/bitcoin/tree/master/src/test/data
https://github.com/piotrnar/gocoin/tree/master/lib/test

And recently I added a functionality that is (optionally) using the consensus lib (which came with core 0.12.0) to cross-check every transaction.
I have been using it ever since and there have been no mismatches observed so far.

The biggest potential risk of an incompatibility is in verifying of entire blocks - checks that are only executed on a block level.
Like recently I found that I wasn't checking for the maximum number of sigops - which bitcoin core limits to 20000/block.
Some other time I found that I wasn't checking for the coinbase transactions to be "mature" while verifying blocks that spend them.
Then there was no check of the timestamp against the median time of the last 11 blocks.
Few other things, some of them I don't even remember...

The odds are that there are still some check on the new blocks that bitcoin core does, which gocoin doesn't (yet), but I am unaware of any specific cases.

If anyone finds such, please report.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
hhanh00
Sr. Member
****
Offline Offline

Activity: 467
Merit: 266


View Profile
April 09, 2016, 02:51:05 AM
 #111

These test scripts would have exposed all the problems you mentioned. They focus on block validation and reorganization.  You don't have to be a Java expert because the tool acts as a peer to which your node connects.
I have briefly looked at your code and noticed a few odd things but I didn't do a throughout review.

piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
April 09, 2016, 07:21:03 AM
 #112

You don't have to be a Java expert because the tool acts as a peer to which your node connects.
So how do I run it?

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
hhanh00
Sr. Member
****
Offline Offline

Activity: 467
Merit: 266


View Profile
April 09, 2016, 09:16:14 AM
 #113

Install a jdk, compile and run.

piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
April 09, 2016, 09:48:17 AM
 #114

I think I've got it - thank you!

Will let you know how the tests go.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
hhanh00
Sr. Member
****
Offline Offline

Activity: 467
Merit: 266


View Profile
April 09, 2016, 10:07:24 AM
 #115

No problem. A few things not covered by the scripts that could be worth checking:
- the best chain is not necessarily the one with the highest height but the one with the most cumulative proof of work,
- difficulty readjustments are capped by +/- n % (I don't remember how much),

piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
April 09, 2016, 04:07:46 PM
 #116

Sorry, maybe I'm crazy or stupid, but I think this tool is somehow broken.

I spent a couple of hours on it already; I don't see what Gocoin would be doing wrong at this specific moment...
I have no idea why the tool says BitcoindComparisonTool.main: Block "b8" completed processing - and then ends without a word.

Log from the tool:
Code:
05:47:31 1 BitcoindComparisonTool.main: Testing block b1 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 635e870a77419af8cd8fc1a56b45d7e54846707559c61dd454c088dbf09be771
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (635e870a77419af8cd8fc1a56b45d7e54846707559c61dd454c088dbf09be771) -> 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 1 BitcoindComparisonTool.main: Sent inv with block 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 1 BitcoindComparisonTool.main: Block "b1" completed processing
05:47:31 1 BitcoindComparisonTool.main: Testing block b2 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1) -> 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 1 BitcoindComparisonTool.main: Sent inv with block 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 1 BitcoindComparisonTool.main: Block "b2" completed processing
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 1 BitcoindComparisonTool.main: Testing block b2 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 1 BitcoindComparisonTool.main: Sent inv with block 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Got empty header message from bitcoind
05:47:31 1 BitcoindComparisonTool.main: Block "b2" completed processing
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 1 BitcoindComparisonTool.main: Testing block b3 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 1 AbstractBlockChain.connectBlock: Block forks the chain at height 101/block 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1, but it did not cause a reorganize:
7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 1 BitcoindComparisonTool.main: Sent inv with block 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1) -> 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Got empty header message from bitcoind
05:47:31 1 BitcoindComparisonTool.main: Block "b3" completed processing
05:47:31 1 BitcoindComparisonTool.main: Testing block b3 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 1 BitcoindComparisonTool.main: Sent inv with block 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Got empty header message from bitcoind
05:47:31 1 BitcoindComparisonTool.main: Block "b3" completed processing
05:47:31 1 BitcoindComparisonTool.main: Testing block b4 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
05:47:31 1 AbstractBlockChain.connectBlock: Block is causing a re-organize
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4) -> 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf
05:47:31 1 AbstractBlockChain.handleNewBestChain: Re-organize after split at height 101
05:47:31 1 AbstractBlockChain.handleNewBestChain: Old chain head: 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:31 1 AbstractBlockChain.handleNewBestChain: New chain head: 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf
05:47:31 1 AbstractBlockChain.handleNewBestChain: Split at block: 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:31 1 BitcoindComparisonTool.main: Sent inv with block 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf
05:47:31 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got empty header message from bitcoind
05:47:32 1 BitcoindComparisonTool.main: ERROR: bitcoind and bitcoinj acceptance differs on block "b4"
05:47:32 1 BitcoindComparisonTool.main: Block "b4" completed processing
05:47:32 1 BitcoindComparisonTool.main: Testing block b5 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 1 AbstractBlockChain.add: 6 blocks per second
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1) -> 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2) -> 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 1 AbstractBlockChain.connectBlock: Block forks the chain at height 101/block 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1, but it did not cause a reorganize:
3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 1 BitcoindComparisonTool.main: Sent inv with block 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 1 BitcoindComparisonTool.main: ERROR: bitcoind and bitcoinj acceptance differs on block "b5"
05:47:32 1 BitcoindComparisonTool.main: Block "b5" completed processing
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 1 BitcoindComparisonTool.main: Testing block b6 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 1 AbstractBlockChain.connectBlock: Block is causing a re-organize
05:47:32 1 AbstractBlockChain.handleNewBestChain: Re-organize after split at height 101
05:47:32 1 AbstractBlockChain.handleNewBestChain: Old chain head: 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf
05:47:32 1 AbstractBlockChain.handleNewBestChain: New chain head: 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 1 AbstractBlockChain.handleNewBestChain: Split at block: 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8) -> 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 1 BitcoindComparisonTool.main: Sent inv with block 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got header from bitcoind 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 1 BitcoindComparisonTool.main: Block "b6" completed processing
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 1 BitcoindComparisonTool.main: Testing block b7 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
05:47:32 1 AbstractBlockChain.connectBlock: Block forks the chain at height 103/block 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8, but it did not cause a reorganize:
4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
05:47:32 1 BitcoindComparisonTool.main: Sent inv with block 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8) -> 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got empty header message from bitcoind
05:47:32 1 BitcoindComparisonTool.main: Block "b7" completed processing
05:47:32 1 BitcoindComparisonTool.main: Testing block b8 6919e48b3b892549ff1229491a82b4942ca4f6380a9bd9fbe3c953011a2bcca1
05:47:32 1 AbstractBlockChain.connectBlock: Block is causing a re-organize
05:47:32 1 AbstractBlockChain.handleNewBestChain: Re-organize after split at height 103
05:47:32 1 AbstractBlockChain.handleNewBestChain: Old chain head: 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
05:47:32 1 AbstractBlockChain.handleNewBestChain: New chain head: 6919e48b3b892549ff1229491a82b4942ca4f6380a9bd9fbe3c953011a2bcca1
05:47:32 1 AbstractBlockChain.handleNewBestChain: Split at block: 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Sending header (4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0) -> 6919e48b3b892549ff1229491a82b4942ca4f6380a9bd9fbe3c953011a2bcca1
05:47:32 1 DatabaseFullPrunedBlockStore.abortDatabaseBatchWrite: Warning: Rollback attempt without transaction
05:47:32 1 BitcoindComparisonTool.main: Sent inv with block 6919e48b3b892549ff1229491a82b4942ca4f6380a9bd9fbe3c953011a2bcca1
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Requested 6919e48b3b892549ff1229491a82b4942ca4f6380a9bd9fbe3c953011a2bcca1
05:47:32 17 BitcoindComparisonTool$1.onPreMessageReceived: Got empty header message from bitcoind
05:47:32 1 BitcoindComparisonTool.main: Block "b8" completed processing


Log from Gocoin :
Code:
Commiting block 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1 -> 635e870a77419af8cd8fc1a56b45d7e54846707559c61dd454c088dbf09be771
 - New TOP 101
Current last 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 635e870a77419af8cd8fc1a56b45d7e54846707559c61dd454c088dbf09be771   found: true
 returning header of block 101 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
sending back 1 headers


Commiting block 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2 -> 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
 - New TOP 102
Current last 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1   found: true
 returning header of block 102 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
sending back 1 headers
GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2   found: true
sending back 0 headers


Commiting block 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4 -> 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
 - Orphaned 102
Orphaned block: 102 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4 0 KB
Current last 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2   found: true
sending back 0 headers

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2   found: true
sending back 0 headers


Commiting block 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf -> 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4
Undo block 102 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2 0 KB
 - New TOP 103
Current last 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2   found: true
sending back 0 headers

Commiting block 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8 -> 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2
 - Orphaned 103
Orphaned block: 103 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8 0 KB
WARNING: the fork is 2 blocks deep
Current last 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 748223dc39df65a8c88ef9af80f98cbf130a2f8cfdf1900ff84f1bcf1fcc04b2   found: true
 returning header of block 103 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
sending back 1 headers


Commiting block 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb -> 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
Undo block 103 0b1c05438c178aa1976b713a0b794d705f955b99236a2bcc9cd8609b68db92bf 0 KB
Undo block 102 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4 0 KB
 - New TOP 104
Current last 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8   found: true
 returning header of block 104 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb
sending back 1 headers


Commiting block 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0 -> 3e58cc4ad076bb0e3fb823c7e802a58119c938cd3f306a34a893a4ae01b4c1a8
 - Orphaned 104
Orphaned block: 104 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0 0 KB
Current last 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb   found: true
sending back 0 headers


Commiting block 6919e48b3b892549ff1229491a82b4942ca4f6380a9bd9fbe3c953011a2bcca1 -> 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0
Undo block 104 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb 0 KB
ProcessBlockTransactionsB 4797c6105b7fa7474db3998df6e61a4dc5b164d51509cc38824f8eccd8253fa0 104 Unknown input TxID: 7bb7718103fe4dc0287b50f1aa390f9542dc3441d40c826bbc98a23bb16f2679
ParseTillBlock failed - go back to 104
Current last 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb

GetHeaders 1 up to 0000000000000000000000000000000000000000000000000000000000000000
 ? 7dbea1c7540a80c216a6b9612ce84a65302bbce95236a8ab47ac1f7bd7c580fb   found: true
sending back 0 headers


HandleError: read tcp4 127.0.0.1:18444->127.0.0.1:49999: wsarecv: An existing connection was forcibly closed by the remote host.
Disconnect from E:/DEV/GOPATH/src/github.com/piotrnar/gocoin/client/network/core.go 346
closing connection true false

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
April 09, 2016, 04:21:18 PM
Last edit: April 09, 2016, 05:19:09 PM by piotr_n
 #117

It's also not very stable.

Sometimes it gets stuck in some infinite loops like:
Code:
06:17:52 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 6b81558bbf532017db214d7996339c7d798a2644265e962196eaf681c2dad149
06:17:52 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 6b81558bbf532017db214d7996339c7d798a2644265e962196eaf681c2dad149
06:17:52 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 6b81558bbf532017db214d7996339c7d798a2644265e962196eaf681c2dad149
[...]
06:17:52 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 6b81558bbf532017db214d7996339c7d798a2644265e962196eaf681c2dad149
06:17:52 17 BitcoindComparisonTool$1.onPreMessageReceived: Found header 6b81558bbf532017db214d7996339c7d798a2644265e962196eaf681c2dad149

I wish it was working, because it could indeed be very helpful, but there are just so many issues with this tool that it seems more like a waste of time, rather than a help.

But I will try to work some more on it - fix it or something... will keep you updated.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
hhanh00
Sr. Member
****
Offline Offline

Activity: 467
Merit: 266


View Profile
April 09, 2016, 06:12:36 PM
 #118

Search for  Error because the tool continues for a while after a failure. You got a problem at block b4. This tool is truly a pain to use though. B4 should have caused a reorganization but your node stayed on the same fork.

piotr_n (OP)
Legendary
*
Offline Offline

Activity: 2053
Merit: 1354


aka tonikt


View Profile WWW
April 09, 2016, 06:22:40 PM
 #119

Search for  Error because the tool continues for a while after a failure. You got a problem at block b4. This tool is truly a pain to use though. B4 should have caused a reorganization but your node stayed on the same fork.

OK... that's helpful - thank you.

Check out gocoin - my original project of full bitcoin node & cold wallet written in Go.
PGP fingerprint: AB9E A551 E262 A87A 13BB  9059 1BE7 B545 CDF3 FD0E
hhanh00
Sr. Member
****
Offline Offline

Activity: 467
Merit: 266


View Profile
April 09, 2016, 07:14:39 PM
 #120

Actually, I think the problem comes from B3 (7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4).

Code:
Commiting block 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4 -> 104cbafb5906c7b9fe28eba9b288eea1acec306320c53cd49ac1a5dd0e673ce1
 - Orphaned 102
Orphaned block: 102 7cd3ee22eab70c6bc23fe7d43c19a797eb9529e9c9bc71aaca6c8b9f9c3496f4 0 KB

That one shouldn't be orphaned because

Code:
        // We now have the following chain (which output is spent is in parentheses):
        //     genesis -> b1 (0) -> b2 (1)
        //
        // so fork like this:
        //
        //     genesis -> b1 (0) -> b2 (1)
        //                      \-> b3 (1)
        //
        // Nothing should happen at this point. We saw b2 first so it takes priority.

Pages: « 1 2 3 4 5 [6] 7 8 9 10 »  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!