Pages:
Author

Topic: HashEngineering - Android Wallet Creation Service - page 3. (Read 35932 times)

legendary
Activity: 882
Merit: 1024
Hi HashEngineering!

I was wondering what options you have for android POS?

I don't do POS wallets.  One idea is too look at the Blackcoin Wallet, which is for android.  Not sure if it is still supported.

Have you looked at Coinami?

Yes, I forgot that I have actually forked that wallet for a different coin.  However, that one requires electrum servers.

Would you be able to help me set it up?

Can pay in BTC.
sr. member
Activity: 350
Merit: 250
Independent Cryptoveloper
Hi HashEngineering!

I was wondering what options you have for android POS?

I don't do POS wallets.  One idea is too look at the Blackcoin Wallet, which is for android.  Not sure if it is still supported.

Have you looked at Coinami?

Yes, I forgot that I have actually forked that wallet for a different coin.  However, that one requires electrum servers.
legendary
Activity: 882
Merit: 1024
Hi HashEngineering!

I was wondering what options you have for android POS?

I don't do POS wallets.  One idea is too look at the Blackcoin Wallet, which is for android.  Not sure if it is still supported.

Have you looked at Coinami?
sr. member
Activity: 350
Merit: 250
Independent Cryptoveloper
Hi HashEngineering!

I was wondering what options you have for android POS?

I don't do POS wallets.  One idea is too look at the Blackcoin Wallet, which is for android.  Not sure if it is still supported.
legendary
Activity: 882
Merit: 1024
Hi HashEngineering!

I was wondering what options you have for android POS?

I am thinking I would want something similar to Bitcoin wallet which takes a smaller amount of space and doesn't hold the entire chain, nor does it need to Stake. What I am envisioning is where you have your own server/wallet Staking but the android wallet does not stake but can pick up those transactions for usable balance. Is this possible?

What options would I have for creating an android wallet for PayCon? https://bitcointalksearch.org/topic/anncon-paycon-hi-pos-litestake-multisend-tor-android-937480

What do you charge for fees of services?
full member
Activity: 217
Merit: 100
CEO WINC e. V.
Performance increases could be 10 or 20 times faster with a native library.

For auxpow, my example is in namecoin:
https://github.com/HashEngineering/namecoinj


Hi hashengineerng,

i used your namecoinj as template and now its downloading blocks.

However the last block is always connected as orphan and then it crashes due to a failed difficulty check.

Doing some debugging although the block is merged mined the program finds no merge mining info (mmBlock == null)
and then it takes the childchainhash which is higher than target.

It only happens with the latest block, do you had this problem or an idea what went wrong?

Rik

EDIT: We have a solution thanks again (The orphan blocks are missing the merged mining informations. I dont know why but the namecoinwallet always thinks the latest block is an orphan. It then iscard the mmm info and the diff. check fails- so we included the memi infos in orphan blocks).
sr. member
Activity: 350
Merit: 250
Independent Cryptoveloper
Performance increases could be 10 or 20 times faster with a native library.

For auxpow, my example is in namecoin:
https://github.com/HashEngineering/namecoinj
legendary
Activity: 1292
Merit: 1000

I maybe able to help you create native libraries, for instance, they would go here in the digitalcoin app that I made:
https://github.com/HashEngineering/digitalcoin-wallet/tree/prod/wallet/libs

and the code for these libraries are here:
https://github.com/HashEngineering/digitalcoinj/tree/master/jni

and the Android NDK must be installed to build the native libraries for as many as 7 platforms:
https://developer.android.com/tools/sdk/ndk/index.html




Thank you, now I'm happy enough with Java version:
https://www.reddit.com/r/vertcoin/comments/3h7146/android_wallet_refreshed_test_release/

but it's possible I will expand it to JNI some day (what is performance increase from JNI in case of X11 algo ?)


and the last issue:
what changes are necessary to handle auxpow in Android wallet (for merge-mined coin with Vertcoin, no special differences besides auxpow).
Maybe you have some nice example here, too?

sr. member
Activity: 350
Merit: 250
Independent Cryptoveloper
The bytes should be reversed, but since you are replacing the code in scryptDigest, then the bytes should be reversed in the code of Block.calculateScryptHash.

I have had this problem before when the hash was calculated incorrectly.  What I did was compare the java code, line by line, while debugging with the C++ code to see which part of the hash code was generating an incorrect hash.  In that case I found that one of the part of the hash functions was giving the wrong result.  I am not sure why in your case the hash is incorrect.


Hi,

You are probably right, that native mode is the way to go, due to severe problems with uint64_t in Java.
Could you prepare some simple Android Studio project, and include LYRA2 function from:
https://github.com/vertcoin/vertcoin/blob/master/src/Lyra2RE/Lyra2.c
as a native code, with NDK? (of course, as a paid service)

Then, I could just copy such solution in the wallet, I hope.

I maybe able to help you create native libraries, for instance, they would go here in the digitalcoin app that I made:
https://github.com/HashEngineering/digitalcoin-wallet/tree/prod/wallet/libs

and the code for these libraries are here:
https://github.com/HashEngineering/digitalcoinj/tree/master/jni

and the Android NDK must be installed to build the native libraries for as many as 7 platforms:
https://developer.android.com/tools/sdk/ndk/index.html

legendary
Activity: 1292
Merit: 1000

You are probably right, that native mode is the way to go, due to severe problems with uint64_t in Java.
Could you prepare some simple Android Studio project, and include LYRA2 function from:
https://github.com/vertcoin/vertcoin/blob/master/src/Lyra2RE/Lyra2.c
as a native code, with NDK? (of course, as a paid service)

Then, I could just copy such solution in the wallet, I hope.


Lyra2 in Java is working, and wallet is working already.
so I will try to produce a 'checkpoints' file - in hex editor, then...  Embarrassed
legendary
Activity: 1292
Merit: 1000
The bytes should be reversed, but since you are replacing the code in scryptDigest, then the bytes should be reversed in the code of Block.calculateScryptHash.

I have had this problem before when the hash was calculated incorrectly.  What I did was compare the java code, line by line, while debugging with the C++ code to see which part of the hash code was generating an incorrect hash.  In that case I found that one of the part of the hash functions was giving the wrong result.  I am not sure why in your case the hash is incorrect.


Hi,

You are probably right, that native mode is the way to go, due to severe problems with uint64_t in Java.
Could you prepare some simple Android Studio project, and include LYRA2 function from:
https://github.com/vertcoin/vertcoin/blob/master/src/Lyra2RE/Lyra2.c
as a native code, with NDK? (of course, as a paid service)

Then, I could just copy such solution in the wallet, I hope.
full member
Activity: 217
Merit: 100
CEO WINC e. V.
The log has nothing to do with the tests, it is something that most apps generate and provides useful information.  It will definitely help with debugging.

Hi hashengineering i have the log-file now from the crash (it is loading now to block 10k), can you see somthing that helps debugging?
(I added extra heap memory by "android:largeHeap="true" - then it is not crashing anymore but no further blocks are loaded)

Code:
22:38:35.327 [Wallet autosave thread] WalletFiles - Background saving wallet, last seen block is 10000/000000000476f76304230b34d074a20822f2250f5c04c4424749a62831837aca
22:38:35.613 [Wallet autosave thread] WalletFiles - Save completed in 283msec
22:38:45.798 [NioClientManager] PeerGroup - [109.73.173.119]:55889: Peer died
22:38:45.844 [NioClientManager] PeerGroup - [91.108.68.164]:55889: Peer died
22:38:45.846 [NioClientManager] PeerGroup - Download peer died. Picking a new one.
22:38:45.848 [NioClientManager] PeerGroup - Unsetting download peer: [91.108.68.164]:55889
22:38:45.855 [NioClientManager] PeerGroup - Setting download peer: [185.38.44.6]:55889
22:38:45.885 [NioClientManager] PeerGroup - [185.38.44.6]:55889: Peer died
22:38:45.887 [NioClientManager] PeerGroup - Download peer died. Picking a new one.
22:38:45.888 [NioClientManager] PeerGroup - Unsetting download peer: [185.38.44.6]:55889
22:38:45.932 [NioClientManager] CrashReporter - crashing because of uncaught exception
java.lang.OutOfMemoryError: null
at java.lang.String.(String.java:432) ~[na:0.0]
at java.lang.AbstractStringBuilder.toString(AbstractStringBuilder.java:642) ~[na:0.0]
at java.lang.StringBuilder.toString(StringBuilder.java:663) ~[na:0.0]
at ch.qos.logback.classic.pattern.ThrowableProxyConverter.throwableProxyToString(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.pattern.ThrowableProxyConverter.convert(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.pattern.FormattingConverter.write(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.pattern.PatternLayoutBase.writeLoopOnConverters(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.PatternLayout.doLayout(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.PatternLayout.doLayout(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.encoder.LayoutWrappingEncoder.doEncode(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.OutputStreamAppender.writeOut(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.FileAppender.writeOut(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.OutputStreamAppender.subAppend(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.FileAppender.subAppend(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.rolling.RollingFileAppender.subAppend(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.OutputStreamAppender.append(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.UnsynchronizedAppenderBase.doAppend(Unknown Source) ~[na:0.0]
at ch.qos.logback.core.spi.AppenderAttachableImpl.appendLoopOnAppenders(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.Logger.appendLoopOnAppenders(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.Logger.callAppenders(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.Logger.buildLoggingEventAndAppend(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.Logger.filterAndLog_0_Or3Plus(Unknown Source) ~[na:0.0]
at ch.qos.logback.classic.Logger.warn(Unknown Source) ~[na:0.0]
at org.bitcoinj.core.PeerSocketHandler.exceptionCaught(PeerSocketHandler.java:227) ~[na:0.0]
at org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:181) ~[na:0.0]
at org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:217) ~[na:0.0]
at org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75) ~[na:0.0]
at org.bitcoinj.net.NioClientManager.run(NioClientManager.java:111) ~[na:0.0]
at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60) ~[na:0.0]
at com.google.common.util.concurrent.Callables$3.run(Callables.java:93) ~[na:0.0]
at java.lang.Thread.run(Thread.java:856) ~[na:0.0]
22:38:45.934 [PeerGroup] DnsDiscovery - DNS seed seed.winc-ev.de: got 4 peers
22:38:45.953 [PeerGroup] DnsDiscovery - DNS seed seed.winc-ev.com: failed to look up: java.net.UnknownHostException: Unable to resolve host "seed.winc-ev.com": No address associated with hostname
22:38:45.953 [PeerGroup] DnsDiscovery - DNS seed dnsseed.wlc-dnsseed.ssdpool.com: got 3 peers
22:38:45.957 [PeerGroup] PeerGroup - Waiting 848 msec before next connect attempt to [109.73.173.119]:55889
22:38:46.810 [PeerGroup] PeerGroup - Failed to connect to [109.73.173.119]:55889: null
legendary
Activity: 1292
Merit: 1000

update: Lyra2 ugly problem... Sad
sr. member
Activity: 350
Merit: 250
Independent Cryptoveloper
The bytes should be reversed, but since you are replacing the code in scryptDigest, then the bytes should be reversed in the code of Block.calculateScryptHash.

I have had this problem before when the hash was calculated incorrectly.  What I did was compare the java code, line by line, while debugging with the C++ code to see which part of the hash code was generating an incorrect hash.  In that case I found that one of the part of the hash functions was giving the wrong result.  I am not sure why in your case the hash is incorrect.
legendary
Activity: 1292
Merit: 1000

Secondly, the idea of skipping the first Fork with checkpoints have some problems/issues:
1.  bypassing the proof of work on that many blocks will leave the app vulnerable to getting on the wrong fork for any user that installed his app before the fork.  There may be a way of getting around this by adding some hard coded checkpoints into vertcoinj (something I put in CoinDefinition.java).  Even the checkpoints could end up on the wrong fork, since you are not validating any of the blocks.  Additionally
2.  For the people after the forks, they won't notice anything, assuming the checkpoints come out correctly.
3.  Using native libraries may be a way around not having the java code, even for BuildCheckpoints.java - native libraries also speed up the execution of hashes and can decrease battery usage on the device.  this something you should look into to make your app secure.  This is how I would have done it if I were to do this project.


Thanks for your answer.

1. I'm sure the only user of this app right now is me only, because it's not working since Dec 2014 (fork from N-scrypt to unsupported Lyra2RE)...

2. Yes, that is exactly what I would like to do: to make some solid checkpoints after last fork, after block no. 347000

3. that is beyond my range now, I suppose. I just tried to be similar to your solution of darkcoinj:

https://github.com/HashEngineering/darkcoinj/blob/master/core/src/main/java/com/hashengineering/crypto/X11.java
https://github.com/HashEngineering/darkcoinj/tree/master/core/src/main/java/fr/cryptohash


So now I'm stuck at block no 347952:
http://explorer.thisisvtc.com/block/c06c7a1a1c0424c18a197305c3cfea6c171ff80e60083fb2774d5eee0d86a96c

I have switched on verification again, so my current Block.java:

Code:
        BigInteger h = getScryptHash().toBigInteger();
        if (h.compareTo(target) > 0) {  //BLA
        //if ( false ) {
            // Proof of work check failed!
            if (throwException)
                throw new VerificationException("Hash is higher than target: " + getScryptHashAsString() + " vs "
                        + target.toString(16));
            else
                return false;
        }
        return true;

and my Utils.java correction, in order to: lyra2re2_hash from:
https://github.com/vertcoin/vertcoin/blob/master/src/Lyra2RE/Lyra2RE.c

Code:
    public static byte[] scryptDigest(byte[] input) {
        byte[] digestA;
        byte[] digestB;
        try {
            //return SCrypt.scrypt(input, input, 2048, 1, 1, 32);

            BLAKE256 blake256 = new BLAKE256();
            digestA = blake256.digest(input);

            Keccak256 keccak = new Keccak256();
            digestB = keccak.digest(digestA);

            CubeHash256 cubehash = new CubeHash256();
            digestA = cubehash.digest(digestB);

            Lyra2.LYRA2(digestB, digestA, digestA, 1, 4, 4);

            Skein256 skein = new Skein256();
            digestA = skein.digest(digestB);

            CubeHash256 cubehash2 = new CubeHash256();
            digestB = cubehash2.digest(digestA);

            BMW256 bmw = new BMW256();
            digestA = bmw.digest(digestB);

            return digestA;

        } catch (Exception e) {
            return null;
        }
    }


Unfortunatelly, I'm getting "Hash is higher than target"...

I have some debug yet.
- first is manual test of Lyra2 function, with already known input digest (the result is fortunately the same like a DigestB after Lyra below)
- then there are: input array and all internal digest arrays

Code:

root@vps179585:~/jLyra2/src# cat Main.java | grep "_bytes\["
//password_bytes[0] = 0xFA;
password_bytes[0] =     -6;
password_bytes[1] =     51;
password_bytes[2] =     -23;
password_bytes[3] =     86;
password_bytes[4] =     -50;
password_bytes[5] =     -13;
password_bytes[6] =     -92;
password_bytes[7] =     117;
password_bytes[8] =     121;
password_bytes[9] =     83;
password_bytes[10] =    -73;
password_bytes[11] =    -99;
password_bytes[12] =    -70;
password_bytes[13] =    -87;
password_bytes[14] =    -12;
password_bytes[15] =    -8;
password_bytes[16] =    -118;
password_bytes[17] =    -105;
password_bytes[18] =    -33;
password_bytes[19] =    -18;
password_bytes[20] =    11;
password_bytes[21] =    123;
password_bytes[22] =    100;
password_bytes[23] =    -106;
password_bytes[24] =    2;
password_bytes[25] =    -63;
password_bytes[26] =    -77;
password_bytes[27] =    74;
password_bytes[28] =    122;
password_bytes[29] =    109;
password_bytes[30] =    104;
password_bytes[31] =    96;
salt_bytes[0] =     -6;
salt_bytes[1] =     51;
salt_bytes[2] =     -23;
salt_bytes[3] =     86;
salt_bytes[4] =     -50;
salt_bytes[5] =     -13;
salt_bytes[6] =     -92;
salt_bytes[7] =     117;
salt_bytes[8] =     121;
salt_bytes[9] =     83;
salt_bytes[10] =    -73;
salt_bytes[11] =    -99;
salt_bytes[12] =    -70;
salt_bytes[13] =    -87;
salt_bytes[14] =    -12;
salt_bytes[15] =    -8;
salt_bytes[16] =    -118;
salt_bytes[17] =    -105;
salt_bytes[18] =    -33;
salt_bytes[19] =    -18;
salt_bytes[20] =    11;
salt_bytes[21] =    123;
salt_bytes[22] =    100;
salt_bytes[23] =    -106;
salt_bytes[24] =    2;
salt_bytes[25] =    -63;
salt_bytes[26] =    -77;
salt_bytes[27] =    74;
salt_bytes[28] =    122;
salt_bytes[29] =    109;
salt_bytes[30] =    104;
salt_bytes[31] =    96;
root@vps179585:~/jLyra2/src#

root@vps179585:~/jLyra2/src# java -Djava.library.path=/root/jLyra2/src/ Main
[OK] Test initState
[OK] Test squeeze
[OK] Test reducedBlake2bLyra
[OK] Test reducedSqueezeRow0
[OK] Test absorbBlock
[OK] Test absorbBlockBlake2Safe
[OK] Test reducedDuplexRowSetup
[OK] Test reducedDuplexRow
[OK] Test reducedDuplexRow1
[OK] Test padding
[OK] -- Main LYRA2 Test --
Java: [-7, -26, 1, -68, 2, 29, 8, -45, 28, 80, 85, -82, -69, 49, 9, -108, 74, -39, 82, -123, -24, -40, 34, 33, 104, -92, 28, -122, -56, -26, -47, 46]
C:[-7, -26, 1, -68, 2, 29, 8, -45, 28, 80, 85, -82, -69, 49, 9, -108, 74, -39, 82, -123, -24, -40, 34, 33, 104, -92, 28, -122, -56, -26, -47, 46]

root@vps179585:~/jLyra2/src#

input:
0 = 4 (0x4)
1 = 0 (0x0)
2 = 0 (0x0)
3 = 0 (0x0)
4 = -50 (0xCE)
5 = 76 (0x4C)
6 = 18 (0x12)
7 = -38 (0xDA)
8 = -123 (0x85)
9 = -117 (0x8B)
10 = -5 (0xFB)
11 = -85 (0xAB)
12 = -78 (0xB2)
13 = -25 (0xE7)
14 = -109 (0x93)
15 = -113 (0x8F)
16 = -102 (0x9A)
17 = 88 (0x58)
18 = -1 (0xFF)
19 = 51 (0x33)
20 = 92 (0x5C)
21 = 102 (0x66)
22 = -39 (0xD9)
23 = 90 (0x5A)
24 = -103 (0x99)
25 = 26 (0x1A)
26 = -123 (0x85)
27 = -20 (0xEC)
28 = -124 (0x84)
29 = 43 (0x2B)
30 = 113 (0x71)
31 = -44 (0xD4)
32 = -118 (0x8A)
33 = -95 (0xA1)
34 = -13 (0xF3)
35 = 113 (0x71)
36 = -101 (0x9B)
37 = 35 (0x23)
38 = 9 (0x9)
39 = -94 (0xA2)
40 = -69 (0xBB)
41 = -106 (0x96)
42 = 80 (0x50)
43 = -128 (0x80)
44 = -24 (0xE8)
45 = 8 (0x8)
46 = 26 (0x1A)
47 = -62 (0xC2)
48 = -31 (0xE1)
49 = 58 (0x3A)
50 = 65 (0x41)
51 = -110 (0x92)
52 = 79 (0x4F)
53 = -82 (0xAE)
54 = 42 (0x2A)
55 = -111 (0x91)
56 = 27 (0x1B)
57 = -99 (0x9D)
58 = -70 (0xBA)
59 = 118 (0x76)
60 = 80 (0x50)
61 = 20 (0x14)
62 = -38 (0xDA)
63 = 103 (0x67)
64 = -13 (0xF3)
65 = -17 (0xEF)
66 = -110 (0x92)
67 = 57 (0x39)
68 = -126 (0x82)
69 = 100 (0x64)
70 = -54 (0xCA)
71 = 85 (0x55)
72 = -33 (0xDF)
73 = 92 (0x5C)
74 = 1 (0x1)
75 = 28 (0x1C)
76 = 9 (0x9)
77 = -1 (0xFF)
78 = -5 (0xFB)
79 = -19 (0xED)

digestA:
0 = 49 (0x31)
1 = -13 (0xF3)
2 = 96 (0x60)
3 = 95 (0x5F)
4 = -120 (0x88)
5 = 20 (0x14)
6 = 12 (0xC)
7 = -9 (0xF7)
8 = 91 (0x5B)
9 = -103 (0x99)
10 = -65 (0xBF)
11 = 83 (0x53)
12 = -93 (0xA3)
13 = -54 (0xCA)
14 = 112 (0x70)
15 = 118 (0x76)
16 = 98 (0x62)
17 = -30 (0xE2)
18 = 22 (0x16)
19 = -41 (0xD7)
20 = -96 (0xA0)
21 = -41 (0xD7)
22 = -122 (0x86)
23 = 85 (0x55)
24 = 83 (0x53)
25 = -89 (0xA7)
26 = -123 (0x85)
27 = -24 (0xE8)
28 = -43 (0xD5)
29 = -48 (0xD0)
30 = 86 (0x56)
31 = -87 (0xA9)

digestB:
0 = -116 (0x8C)
1 = -43 (0xD5)
2 = 32 (0x20)
3 = 89 (0x59)
4 = 118 (0x76)
5 = 100 (0x64)
6 = 34 (0x22)
7 = 61 (0x3D)
8 = 63 (0x3F)
9 = -88 (0xA8)
10 = -74 (0xB6)
11 = -32 (0xE0)
12 = -29 (0xE3)
13 = -107 (0x95)
14 = -58 (0xC6)
15 = -119 (0x89)
16 = 7 (0x7)
17 = 116 (0x74)
18 = -1 (0xFF)
19 = -74 (0xB6)
20 = -20 (0xEC)
21 = -67 (0xBD)
22 = 63 (0x3F)
23 = -79 (0xB1)
24 = 84 (0x54)
25 = -43 (0xD5)
26 = 103 (0x67)
27 = -88 (0xA8)
28 = -43 (0xD5)
29 = -115 (0x8D)
30 = -63 (0xC1)
31 = -98 (0x9E)

digestA:
0 = -6 (0xFA)
1 = 51 (0x33)
2 = -23 (0xE9)
3 = 86 (0x56)
4 = -50 (0xCE)
5 = -13 (0xF3)
6 = -92 (0xA4)
7 = 117 (0x75)
8 = 121 (0x79)
9 = 83 (0x53)
10 = -73 (0xB7)
11 = -99 (0x9D)
12 = -70 (0xBA)
13 = -87 (0xA9)
14 = -12 (0xF4)
15 = -8 (0xF8)
16 = -118 (0x8A)
17 = -105 (0x97)
18 = -33 (0xDF)
19 = -18 (0xEE)
20 = 11 (0xB)
21 = 123 (0x7B)
22 = 100 (0x64)
23 = -106 (0x96)
24 = 2 (0x2)
25 = -63 (0xC1)
26 = -77 (0xB3)
27 = 74 (0x4A)
28 = 122 (0x7A)
29 = 109 (0x6D)
30 = 104 (0x68)
31 = 96 (0x60)

digestB (after Lyra):
0 = -7 (0xF9)
1 = -26 (0xE6)
2 = 1 (0x1)
3 = -68 (0xBC)
4 = 2 (0x2)
5 = 29 (0x1D)
6 = 8 (0x8)
7 = -45 (0xD3)
8 = 28 (0x1C)
9 = 80 (0x50)
10 = 85 (0x55)
11 = -82 (0xAE)
12 = -69 (0xBB)
13 = 49 (0x31)
14 = 9 (0x9)
15 = -108 (0x94)
16 = 74 (0x4A)
17 = -39 (0xD9)
18 = 82 (0x52)
19 = -123 (0x85)
20 = -24 (0xE8)
21 = -40 (0xD8)
22 = 34 (0x22)
23 = 33 (0x21)
24 = 104 (0x68)
25 = -92 (0xA4)
26 = 28 (0x1C)
27 = -122 (0x86)
28 = -56 (0xC8)
29 = -26 (0xE6)
30 = -47 (0xD1)
31 = 46 (0x2E)

digestA:
0 = 76 (0x4C)
1 = -40 (0xD8)
2 = 86 (0x56)
3 = 73 (0x49)
4 = 41 (0x29)
5 = 58 (0x3A)
6 = 115 (0x73)
7 = -19 (0xED)
8 = 79 (0x4F)
9 = -17 (0xEF)
10 = -69 (0xBB)
11 = -66 (0xBE)
12 = 127 (0x7F)
13 = 30 (0x1E)
14 = -79 (0xB1)
15 = -32 (0xE0)
16 = -110 (0x92)
17 = 32 (0x20)
18 = -44 (0xD4)
19 = -106 (0x96)
20 = -107 (0x95)
21 = 109 (0x6D)
22 = 69 (0x45)
23 = 98 (0x62)
24 = -75 (0xB5)
25 = -120 (0x88)
26 = -39 (0xD9)
27 = 65 (0x41)
28 = 112 (0x70)
29 = -117 (0x8B)
30 = 93 (0x5D)
31 = 106 (0x6A)

digestB:
0 = -42 (0xD6)
1 = -55 (0xC9)
2 = -117 (0x8B)
3 = 22 (0x16)
4 = 41 (0x29)
5 = -79 (0xB1)
6 = 87 (0x57)
7 = -109 (0x93)
8 = 23 (0x17)
9 = -12 (0xF4)
10 = 103 (0x67)
11 = -12 (0xF4)
12 = -16 (0xF0)
13 = -99 (0x9D)
14 = 101 (0x65)
15 = -54 (0xCA)
16 = -72 (0xB8)
17 = 79 (0x4F)
18 = 2 (0x2)
19 = 25 (0x19)
20 = -33 (0xDF)
21 = -51 (0xCD)
22 = 62 (0x3E)
23 = 8 (0x8)
24 = -112 (0x90)
25 = 30 (0x1E)
26 = -89 (0xA7)
27 = -54 (0xCA)
28 = 56 (0x38)
29 = 97 (0x61)
30 = -45 (0xD3)
31 = 73 (0x49)

digestA (final value, after BMW):
0 = 124 (0x7C)
1 = -123 (0x85)
2 = -127 (0x81)
3 = 90 (0x5A)
4 = -31 (0xE1)
5 = -7 (0xF9)
6 = -40 (0xD8)
7 = -26 (0xE6)
8 = -13 (0xF3)
9 = -18 (0xEE)
10 = 119 (0x77)
11 = -127 (0x81)
12 = -84 (0xAC)
13 = 41 (0x29)
14 = 112 (0x70)
15 = -22 (0xEA)
16 = 59 (0x3B)
17 = 56 (0x38)
18 = -112 (0x90)
19 = -33 (0xDF)
20 = 34 (0x22)
21 = -68 (0xBC)
22 = 110 (0x6E)
23 = -47 (0xD1)
24 = -36 (0xDC)
25 = -5 (0xFB)
26 = -126 (0x82)
27 = -93 (0xA3)
28 = -91 (0xA5)
29 = -70 (0xBA)
30 = -21 (0xEB)
31 = -113 (0x8F)


it seems I'm close to make it working, but I'm a bit lost right now..
(is it necessary to reorder final bytes somehow ? )

legendary
Activity: 1292
Merit: 1000
Hi jk_14,

- use something like:
Code:
mvn install:install-file -Dfile=vertcoin-0.11.jar -DgroupId=com.google -DartifactId=vertcoin -Dversion=0.11 -Dpackaging=jar -DgeneratePom=true
- This should write the necessary informations in your local repository.
- If there is a failure please fit the spelling according to your file.

for the POW check: are there further changes you have made? By now it looks like you disabled the difficulty check completely, or is this what you want?

Rik

Code:
root@vps179585:~/vertcoinj/core/target# /usr/share/maven/bin/mvn  install:install-file -Dfile=vertcoinj-0.11.jar -DgroupId=com.google -DartifactId=vertcoinj -Dversion=0.11 -Dpackaging=jar -DgeneratePom=true
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom ---
[INFO] Installing /root/vertcoinj/core/target/vertcoinj-0.11.jar to /root/.m2/repository/com/google/vertcoinj/0.11/vertcoinj-0.11.jar
[INFO] Installing /tmp/mvninstall6405015594087023722.pom to /root/.m2/repository/com/google/vertcoinj/0.11/vertcoinj-0.11.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.571s
[INFO] Finished at: Wed Aug 12 09:44:49 CEST 2015
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
root@vps179585:~/vertcoinj/core/target#

thank you, now is better... but:

Code:
root@vps179585:~/vertcoinj/tools# /usr/share/maven/bin/mvn exec:java -Dexec.mainClass=com.google.bitcoin.tools.BuildCheckpoints
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building vertcoinj Tools 0.11
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.4.0:java (default-cli) @ vertcoinj-tools ---
[WARNING]
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:606)
        at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:293)
        at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: org/spongycastle/util/encoders/Hex
        at com.google.bitcoin.core.NetworkParameters.(NetworkParameters.java:51)
        at com.google.bitcoin.tools.BuildCheckpoints.main(BuildCheckpoints.java:29)
        ... 6 more
Caused by: java.lang.ClassNotFoundException: org.spongycastle.util.encoders.Hex
        at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
        ... 8 more
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 9.227s
[INFO] Finished at: Wed Aug 12 09:46:37 CEST 2015
[INFO] Final Memory: 8M/19M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.4.0:java (default-cli) on project vertcoinj-tools: An exception occured while executing the Java class. null: InvocationTargetException: org/spongycastle/util/encoders/Hex: org.spongycastle.util.encoders.Hex -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
root@vps179585:~/vertcoinj/tools#

?


Yes, I have just skipped to >347000 block area, where I should be able to verify headers properly, again.
sr. member
Activity: 350
Merit: 250
Independent Cryptoveloper

Code:
root@vps179585:~/vertcoinj/tools# /usr/share/maven/bin/mvn exec:java -Dexec.mainClass=com.google.bitcoin.tools.BuildCheckpoints
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building vertcoinj Tools 0.11
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.google:vertcoinj:jar:0.11 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.365s
[INFO] Finished at: Tue Aug 11 11:07:34 CEST 2015
[INFO] Final Memory: 6M/16M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project vertcoinj-tools: Could not resolve dependencies for project com.google:vertcoinj-tools:jar:0.11: Failure to find com.google:vertcoinj:jar:0.11 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
root@vps179585:~/vertcoinj/tools#


How to solve it, and
if such way of checkpoints file generation - will be OK?




The first error is something I haven't seen, where "Failure to find com.google:vertcoinj:jar:0.11 in" occurs.  I am not sure why this is happening, I would need to look at your code.

Secondly, the idea of skipping the first Fork with checkpoints have some problems/issues:
1.  bypassing the proof of work on that many blocks will leave the app vulnerable to getting on the wrong fork for any user that installed his app before the fork.  There may be a way of getting around this by adding some hard coded checkpoints into vertcoinj (something I put in CoinDefinition.java).  Even the checkpoints could end up on the wrong fork, since you are not validating any of the blocks.  Additionally
2.  For the people after the forks, they won't notice anything, assuming the checkpoints come out correctly.
3.  Using native libraries may be a way around not having the java code, even for BuildCheckpoints.java - native libraries also speed up the execution of hashes and can decrease battery usage on the device.  this something you should look into to make your app secure.  This is how I would have done it if I were to do this project.
full member
Activity: 217
Merit: 100
CEO WINC e. V.
Hi jk_14,

Code:
[ERROR] Failed to execute goal on project vertcoinj-tools: Could not resolve dependencies for project 
com.google:vertcoinj-tools:jar:0.11: Failure to find
com.google:vertcoinj:jar:0.11 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]

The problem seems to be that the vertcoinj.jar cannot be found in the online or the local repository . It should be solved by installing the dependency manually
- (when you use maven) go to your vertcoinj folder
- search for vertcoinj-0.11.jar
- use the shell to cd into the directory
- use something like:
Code:
mvn install:install-file -Dfile=vertcoin-0.11.jar -DgroupId=com.google -DartifactId=vertcoin -Dversion=0.11 -Dpackaging=jar -DgeneratePom=true
- This should write the necessary informations in your local repository.
- If there is a failure please fit the spelling according to your file.

for the POW check: are there further changes you have made? By now it looks like you disabled the difficulty check completely, or is this what you want?

Rik
legendary
Activity: 1292
Merit: 1000

Hi, HashEngineering

I have not common problem, I suppose.
I try to refresh Vertcoin wallet. There were forks with algorithm change.

block number 208301: switch from n-scrypt to Lyra2RE

block number 347000: switch from Lyra2RE to Lyra2REv2

So as expected - the original wallet stop at 208300 block. I do have fresh Java implementation of Lyra2REv2, but I haven't old one Lyra2RE (and it's not quite easy due to changes made inside the Lyra2 algo, too)

So my workaround idea is trying to skip 208301 - 346999 period and make checkpoints via BuildCheckpoints after 347000 block (temporary relaxing 1 month grace period)

so I made such temporary corrections:

Code:
// ./core/src/main/java/com/google/bitcoin/core/Block.java

        BigInteger h = getScryptHash().toBigInteger();
        //if (h.compareTo(target) > 0) {  //BLA
        if ( false ) {
            // Proof of work check failed!
            if (throwException)
                throw new VerificationException("Hash is higher than target: " + getScryptHashAsString() + " vs "
                        + target.toString(16));

and:

Code:
// ./core/src/main/java/com/google/bitcoin/core/AbstractBlockChain.java

        //if (calcDiff.compareTo(receivedDifficulty) != 0)
        if ( false )
            throw new VerificationException("Network provided difficulty bits do not match what was calculated: " +
                    receivedDifficulty.toString(16) + " vs " + calcDiff.toString(16));
    }

(...and now I'm downloading blocks above block number 208300, what will take a while...)



I have some issues with generating checkpoints file yet:

Code:
root@vps179585:~/vertcoinj/tools# /usr/share/maven/bin/mvn exec:java -Dexec.mainClass=com.google.bitcoin.tools.BuildCheckpoints
Warning: JAVA_HOME environment variable is not set.
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building vertcoinj Tools 0.11
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for com.google:vertcoinj:jar:0.11 is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.365s
[INFO] Finished at: Tue Aug 11 11:07:34 CEST 2015
[INFO] Final Memory: 6M/16M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project vertcoinj-tools: Could not resolve dependencies for project com.google:vertcoinj-tools:jar:0.11: Failure to find com.google:vertcoinj:jar:0.11 in https://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
root@vps179585:~/vertcoinj/tools#


How to solve it, and
if such way of checkpoints file generation - will be OK?


full member
Activity: 217
Merit: 100
CEO WINC e. V.

If something is wrong with the genesis block, then the app will crash when it starts.

The log has nothing to do with the tests, it is something that most apps generate and provides useful information.  It will definitely help with debugging.

The reset block chain will delete the blockchain data, which is about 1 MB at max.  The log files can take up more room and they don't get deleted unless the app is uninstalled.

What do you use to build your apps?  maven?  or Android Studio?

Hi hashengineering,

i switched to your namecoinj as a template (github.com/rikski/namecoinj) and included the changes for my coin and now it starts downloading the chain. After some help from hexafraction and adjusting the difficultycheck it downloads up to block 10k and then it crashes. In the report it says that after generating a new BlockMergedminingPayload and reading the bytes it crashes. I though maybe it is due to the extra property refHeight of the coins transactions, but then it should have failed earlier i guess. So the increase block height for 9999 to 10k somehow seems to be the problem.

- I am using maven to compile.

Code:
=== application info ===

%0A%0AVersion: 0.13-beta (10013)%0APackage: hashengineering.worldleadcurrency.wallet%0ATest/Prod: prod%0ATime: 2015-08-06 16:35:14 +0200%0ATime of launch: 2015-08-06 16:35:08 +0200%0ATime of last update: 2015-08-06 16:02:48 +0200%0ATime of first install: 2015-08-06 16:02:48 +0200%0ATime of backup: none%0ANetwork: org.worldleadcurrency.production%0AEncrypted: false%0AKeychain size: 271%0ATransactions: 0%0AInputs: 0%0AOutputs: 0 (spent: 0)%0ALast block seen: 9817 (00000000041658165ce05600eccf7c0a05b2801b2fd9cca5df3c43bdb5016986)%0ADatabases:%0A%0AContents of FilesDir /data/data/hashengineering.worldleadcurrency.wallet/files:%0A2015-08-06 16:35:12       68  files%0A  - 2015-08-06 16:03:00      685  key-backup-protobuf%0A  - 2015-08-06 16:35:12    23428  wallet-protobuf%0A%0AContents of LogDir /data/data/hashengineering.worldleadcurrency.wallet/app_log:%0A2015-08-06 16:02:57       20  app_log%0A  - 2015-08-06 16:35:14    86030  wallet.log%0A%0A%0A%0A

=== stack trace ===


%0A%0A
java.lang.OutOfMemoryError%0A%09at
java.lang.AbstractStringBuilder.enlargeBuffer(AbstractStringBuilder.java:94)%0A%09at
java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:145)%0A%09at
java.lang.StringBuilder.append(StringBuilder.java:216)%0A%09at
org.bitcoinj.core.BitcoinSerializer.deserializePayload(BitcoinSerializer.java:193)%0A%09at org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:139)%0A%09at
org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:217)%0A%09at
org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)%0A%09at
org.bitcoinj.net.NioClientManager.run(NioClientManager.java:111)%0A%09at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)%0A%09at com.google.common.util.concurrent.Callables$3.run(Callables.java:93)%0A%09at
java.lang.Thread.run(Thread.java:856)%0A%0A%0A%0A

=== device info ===

%0A%0ADevice Model: Jolla%0AAndroid Version: 4.1.2%0ABoard: unknown%0ABrand: Jolla%0ADevice: alien_jolla_bionic%0ADisplay: JZO54K%0AFinger Print: Jolla/alien_jolla_bionic/alien_jolla_bionic:4.1.2/JZO54K/eng.erin.20150306.110700:user/dev-keys%0AHost: erin-ubuntu%0AID: JZO54K%0AProduct: alien_jolla_bionic%0ATags: dev-keys%0ATime: 1425611265000%0AType: user%0AUser: erin%0AConfiguration: {1.0 262mcc7mnc en_GB sw360dp w360dp h592dp nrml port ?uimode ?night finger -keyb/v/h -nav/h s.3}%0AScreen Layout: size 2 long 16%0ADisplay Metrics: DisplayMetrics{density=1.5, width=540, height=888, scaledDensity=1.5, xdpi=240.0, ydpi=240.0}%0AMemory Class: 48/128%0A%0A%0A%0A

=== saved exceptions ===%0A%0A%0A---

collected at 2015-08-06 16:04:06 +0200 on version 0.13-beta (10013)%0A
org.bitcoinj.core.ProtocolException: Error deserializing message 0101110087b88f89154291bd1c21baab0e283adf7665e91341de0d8dbeba64386c944196937af73956ef026ba241a1a9353cd1dd70a368b9b4fdf890d85fd11185691928c667c3550e05051a0000000001000000010000000000000000000000000000000000000000000000000000000000000000ffffffff310310a0052cfabe6d6df658fb392c3561e595f21d37699f1a238f3f133cf830a0664b8d5084dbad38d22000000000000000fffffffff326540100000000001976a9149625d55cc95d16453d7c9ef580bfef7f14bb6b3788accd5d0100000000001976a91463d6e29e09cf1064bc4e5f0152a914435e87f90b88aca5610100000000001976a9143471f062962e11e90bc9fc61bb39fc542467c47288acd16c0100000000001976a91469b42308b5c2c502001042ac63e62439c2f7879188ac23730100000000001976a914bc1b806175a317039a67981b70b122883a2200ab88ac27750100000000001976a914c05870357ed56d2229d1ad2842cacc2d9adb432d88ac21780100000000001976a914bbd74748a7b6138e2485ffc1b3d8d0bb2cec422b88ac768b0100000000001976a91424e469e9b8c9b3487378717d357c19f8ed062fa788acbbe20100000000001976a914016a638da741466c7eb454718593cabaa3c52ca888acb4e80100000000001976a9140f7627c634124e4d68f2c838ffc3156bf659543488ac8fed0100000000001976a9149a96d5c4796588ef25baabe337e752ba177d3cf288ac78ee0100000000001976a914cc15d26acb265a9a579002f5d75904defe907edf88ace9f00100000000001976a914d0c8a7fe08bf2317f0c198e5ed69d7b7563a980a88acdc810200000000001976a91493bded4187f898fa9f6496dfd0e94651b30ad02888ac87910200000000001976a9145fc6d7fa84a47d63c3b3f48c1c472a5e6eb52ff888accbaf0200000000001976a9140e7b6447d53e989a90619353f8d9d91c95b7b5d488ac9dc70200000000001976a91482d7868c8987af8c158c3ac266ad84bb6782862288ac44ca0200000000001976a914efe4a88a5e981cd0ffbb2172e5d53d04a4f8858288ace2d40200000000001976a914b9b7c5a35c9df0bb113689f4aaa74276f55413d288ac8cdf0200000000001976a91404d6b174978fa483e8f8546362def58caaa4d07288ac02f40200000000001976a914ca5233bee183e66639fda8183dfb99dea51a9da688acbe370300000000001976a91496c644cd188615eb5041a655dafee8b8fb92a22388ac6a390300000000001976a914b3cd725ae500d5c1b84a16381c21a8e587e186dd88ac84440300000000001976a914557a46354b3061c60cd8fcc334e83581bfc4a6e188acdc520300000000001976a914265f1fc0aaa602c86bd34b05d82aa2e2963f920588ac7d6d0300000000001976a9142600a4921baf711dc30a47705b6012bda87388da88acad890300000000001976a914f19638ad0dd4f508a756e1ad7492beee46d7652d88ac9f090400000000001976a914d9fe02df526cd3af03c70520ac5d757dfb3e7cb788ac90170400000000001976a91429fb6d52dc3c0f1891332a8ead38eba44f0e588688ac8a320400000000001976a9141e7ca42119893a17616f7d4f28c44de860f8cf0088ac91580400000000001976a9143d47986f727402feb3df5134dff583af4ace807488ac32610400000000001976a914e8adc66b62aad05f17e8d14d0bcc1b8d5703827188ac66b50400000000001976a9148d3aba805295dfb3bbf41ac8d59a149088dd37f088acb2f30400000000001976a91406d18507d4a8526687dc1ee0a225f2fb6e365c5888aca74c0500000000001976a914cfd07b1fdbf269517f721873952a2ac902021fd888acee600500000000001976a914d6aa128f24c6c2d3a94e1fdaf601634b4042141c88ac636a0500000000001976a9140e608c6b957a50c54a291783069b626d4e6e2f8d88acca7a0500000000001976a914d8485ef946630762ddcbae9428580f5ad6d99cc388ac659d0500000000001976a914f54e8b762ff17c06a71f2a523dbe51238d523cfd88ace3b50500000000001976a914c31e895bce22626780a611097fed7efef04c3c9788aca5cd0500000000001976a9142d879a0a340bab53efa3434bf6044a18285be45688ac3f360600000000001976a9140b874ab588207ccfe6e9265346c3c08bf8b52d7188ac9e8c0600000000001976a9143501af2627792ae25e61ea1141a69253e54d5fa388ac0cb40600000000001976a91409cea2e5fe401e5a1ed031d12f8e727c02241d7c88ac56850700000000001976a914b7ce480cef9f57dd44e4f7a63843126bb5b35e5788ac13b70700000000001976a914032e12a29c825297b1c7a7a68fb5060ea724e17a88acba1d0800000000001976a9145e85ee917f2ea8f267dffe98f9c45333de7e9dfe88ac9c680800000000001976a9141aef4d2f748ec7053989347f9825a105b3b72f8088aca6830800000000001976a9145e83b2ef86170a96dd373edc71d454ab8d561a2888ac41cd0800000000001976a914a0530c34149b2d650bf3f24e48925ec9cd1c2a6988ac2e4b0900000000001976a91495fedc518c216bc0e8ccfabb1be676fc744c76fb88ac049a0900000000001976a914bdc8d8f9fc846062dcf9a59fd06c095cb308147488ac369b0900000000001976a914f6a374a20e80cf6f8a117c691a453c1fa39baee388ac39af0900000000001976a914993a206d70e2b8abe7b3a24ca4c4c0cea443160d88ac340f0a00000000001976a9140809d9e2b5011d4719efed4be816d072965493de88ac284b0a00000000001976a91407d1a6b4c7868291f217a0dc5bec029ec98018c588ac2c5e0a00000000001976a914c63fc62be992d4fe7e96e92f2d8cb678a71187a288aca98a0a00000000001976a9148fff6f9995c6305000642f3eccf6102c1721701a88ac03d90a00000000001976a9143bbde305c474323adb600dd54baf122cf311c60f88ac1c040b00000000001976a9148f928db8f5242c591ecc51f191207542b2a496ae88acbc6b0b00000000001976a914c10dfcbf3366666558e152a6e51fe62ea10905f788ac7b710b00000000001976a91483eb0e3545d06df9d87e7ed77248fb8408f5efe988acd48f0b00000000001976a9145d2b3d7ae9ef3cfbb2294f877b3b19ae7736847488acc7190c00000000001976a914614665a7509eb1288013b89ecc7f0f4444f28c3688ac2a1a0c00000000001976a9142710a8c44d7c6bd7824dd0cadd80d7993e8c301088acc9570c00000000001976a914c7ed69f012e768f821056df6744975d53eba3d1088acd7830c00000000001976a914389069d174568b8e0602b4a94ae8e05aa87114ec88ac0d8c0c00000000001976a914ad7988d7552ded08fe3ac7a94fcc9e4a269fd59f88acd0b70c00000000001976a914707d35ac85b182e8f79c446affe856938684553f88acedde0c00000000001976a914664487c72af54c56e6ed0cc6865f77f777ea28a488ac4c5a0d00000000001976a9148fdfac7894d9670dfcb8fc321399ee1d09c0293788ac606a0d00000000001976a91408c5a8a9e5be66e0d04f97813f93a3861ff4bcc688acdc9d0d00000000001976a9140690bb7c17350c34cdfe172ecf442966cde3522288ac9fb50d00000000001976a914949f0f85cc31ce3e24e5642e47fe98776dbaea7888ac4dcd0d00000000001976a91452ebe14b4170dfa4fc001968b689f9832000fe3988acd3580e00000000001976a914e7310be191486c26dfa0ebc9824b25f335339d3788acba690e00000000001976a914df6164e79ee2bbb9d7de3cc1f0edf5c367451e1188ac55d40f00000000001976a91447242b85c3ad6973979bb1b64212a7f931dd915288ac27d60f00000000001976a9141a916ecfd533c95d8c1bbdc19fba2e615a15e85088ac7a541000000000001976a914c874705d9cc458e34c999a69829e3f81b4fb1b0c88ac65661000000000001976a91408ffc837663bf40e2821b856a0960d9b38c48b3e88ac82c11000000000001976a9145a6a337a5447923210fd3f6d8dfc11b6723f81df88ac56251100000000001976a914986e5d11072bb3d697fc94d94638c9f1170703c088ac4f591100000000001976a914d63ae02cad41643d79ba4651fdf664ba87209de588ac3dcf1100000000001976a9147d4604279d053aed391dc76ee04103b0f9ca458188ac47d81100000000001976a91462f208af94b00c05128cfc7d4e1779914f1266d888ac41941200000000001976a91495213765b708a57e214c15520ec1fbe2cba6815488ac4cb31200000000001976a914f13126ffd287aeeb70531ab4d4cf4658391dc5e088ac62ea1200000000001976a914cfcdc83e389c71a5ce55b268171bce3a81a6b62488ac03fd1200000000001976a91417881c8cf9654f50ac205ed8c9dc3a4970d9c62188ac72061300000000001976a9144698e7f38b5b1547270359be9478329bf5b4f39188ac42ac1300000000001976a91494abbd1cc44585810323585addb1e993717de70c88ace9ea1300000000001976a9144ccfee8d196d5880fcaedc18f73a7b2937c0342588ac66ff1400000000001976a9148a507397c061289053801341fff438bbc9a546e388ac880f1500000000001976a914dddc8d721decec019f67c99ebb9533205763ab1488ac92541500000000001976a914633b4fb39c710212e1373c29bebafe8aa6356f3088ace8681500000000001976a914f95f65aaa34a8a5fbc38edae4641c9b3b826a40188acc6941500000000001976a914fb212bd0a013c906c556e9b764916677edcb29e188ace5971500000000001976a914e1c0dcf3775c0f9d5131e781fb11a7b0f858195488ac24e01600000000001976a91408ffc830f614c5eb0938a2b4793cd9ab50b1fa3b88ac2bf31600000000001976a914b005ef7765e2e905a44496b079d83eab8f370ae788ac14321700000000001976a914e2e6225fef18ddca411ae3fe46b9dd2b98ca048688ac59761800000000001976a914cb17b02b7b146b5385de1f9416c2f2221e54015188ac0fbd1800000000001976a9141f9f3e1b43823c2bfe5aeecd582f4922619e572288ac8d861a00000000001976a91440998dac0a6440fb8a6ee606f0e89936e2f448c088ac5cb81a00000000001976a914dd38381ca3815a8d66abaa0e3b7695f9cf12af0a88ac8ec11a00000000001976a914697c36ba8ee06fecc45155b077b77f9fb49a43d088acbfeb1a00000000001976a914838151b12bbba4e843aa878ad4cabea5ddae016488ac37681b00000000001976a9141be25970b163cd3a02e0079488f3fa960c57fd9888ace1d11b00000000001976a91441a6ababa839ddd38cab8ac8c9004838eabec8a988ac57131c00000000001976a914052a67d334c55a38fc825ae04da75034470d85b088ac68221c00000000001976a914e71cd2fab85b4d0a984dc08f29159c60bb8b839988ac785c1c00000000001976a91401757db965c33c530b8b0abe6003b0873918e53888ac0d671c00000000001976a914159bb0eb02cb1c35f5d4942420d23fff8b6ae62d88acc9931c00000000001976a91404adaa609dacbd642be6cbcd24520d4d19ec35c288ac0ee11d00000000001976a9148e652be4a3475cbeda073956e87783bfaa32053d88ac5d8e1f00000000001976a91434533e6a1fbd140b8f207ad1a1697ce44529cf1488acfb9a1f00000000001976a914c2c420dc7d821bc5a01ffa182346a7e9b5615aae88ac3b9c2000000000001976a9146e3984f6a5e61b58b639ddf59e5e45d7b2b4b27688acf0bb2100000000001976a914b764dd0a8cc279f9715670c2d741e4bb95b58eb388acd4a72200000000001976a9149a29110e38f0c33f2c8d65943dbe3b46a55ca27988ac6d622300000000001976a91489105878c3678e865cd9624f5a1e8f83ecf2d78588ac3c6f2300000000001976a91436ce0f2d0baff5cdd459db1f885a1351fc7f916588ace3562400000000001976a914c52fdb50c6777a83c39469c9500c91ab1f1c4cd488ac7b7d2400000000001976a9142e1cb3de456ebf9461b3401c3b6ab9e9da938ea588ac22f92400000000001976a91407de36aa88b78d8229d44efaca0c06a359fee79088acef642500000000001976a9140b617b420c55deb57e5d693162f66a5dd194c81988ac17ab2600000000001976a914a77641643b0769c0f09c4ed1b66451e35852fe6788ac18612700000000001976a914f1012e2c3aa77ff2630caa9ae7e6278441c981bd88ac25222800000000001976a914eb9fc75c74c1041154ddb8514bcff19dffa6e1d188acc70e2a00000000001976a91463528f401a25468f141ee6aff64257ab5a991aaf88ac3d172b00000000001976a914a5f5008a39ec65f4a846999cd23774b41c74aba488ac711a2b00000000001976a914dd0a49505d476bdcbd61fec3e7103b26e46c4e9988ac9a3b2b00000000001976a91437c27917761a119172879d0155229ba7a71b51c688acf70a2c00000000001976a914356469ddbf0ec76d74604f65553d7b26dee619ee88acb2282c00000000001976a91407de36a5289b4cb7fa2aec977b2e53931732ef4788ac5f4f2c00000000001976a9146f6aa8e188e6cc0b7afde34091b5d0690ba6ce9988ac19902c00000000001976a91489d3754e07b8a05f2d06b79fc6484757299f2bcf88ac73022d00000000001976a9145d9a2105c0804fea0edc766a69d49b10ed23e9bd88ac2af92d00000000001976a91408ffc82af8ebae0dabed8b705ab83b0b392dcc7488ac3a822e00000000001976a9145b4f1d699593a88670c6c1f34055e88d9081fd3b88ac1a1c2f00000000001976a914b405ab1c5ca388d5a4961acee4530da57e3555c588ac21972f00000000001976a91480662a72e4402bfc79e66a2cd59a6f6a145d49a288ac49783000000000001976a91442f3f5d6497a46a5bc379b918708d08c22a5184d88ac7ef43000000000001976a914d6f71f8e7adbf261bf4f989446e5130d6dcf640288ace7073200000000001976a9142492fc0181777fec3c6001e034ac5de53fea94c288acca773200000000001976a91427b4668a922eecb79411cc168475ef029b820db188acff933200000000001976a9149eb8b988597d392b8a6b24fa8c4b22a6ae8db24c88ac7ed23300000000001976a9146ad798d913b91084410069ae66103a19ed1d9f6088ac4ae23300000000001976a9141bc67f0fa2f845e1f58cd127a813518ebb391ef888ac73f13300000000001976a914e921d3035ee97c5f809c803e4c2741bb845cacd988ac5a363400000000001976a91400317a6e4e4a1418a1fd37484107aa7a4cca208788acb86d3500000000001976a9147f2dfb7479c28809d32c4475eb17875caea7d06d88aced8d3500000000001976a9141ef1b80e6094d7ca305ce2e44f4f02cb103e128988ac2f643700000000001976a91477f19d8000341beddf6812a4cf428969c34cc80d88ac58de3700000000001976a91409dacbf95ff961b057b74428f781a15c26b0193388ac16573800000000001976a91491326ea24c845cd78eb460cf4c91d6111736237488acdb503b00000000001976a914eb8816b2973bd921c9cf262ae5ff1c043f8e2d7f88ac5b813c00000000001976a9145765e6ab03757ab48b7e1de55c183904bbb844d388ac1dfe3c00000000001976a914580fe4e39f67aedaf460de94bb9cde7be153cc6188ace1043e00000000001976a914d1b5a3c69e606e5eaa3a98732035b7810c4626cb88ac1eec3e00000000001976a91426bf95123c1c1a331e34f96892e50c316557d82b88aca4fd3e00000000001976a914cb7616c98f0ad198957ae6c0a98f56bd4503803288acfc353f00000000001976a914e62fb2e520e972cd62686469a08bf59b8190a32088ac39984000000000001976a914888bb97f88820d424bb2f2357f1716a4598f379888ac67b04000000000001976a91412c164a87397d05d1a4a8006e6459add9ce3c22f88ac98db4000000000001976a914f68327493cc7763c18d50b6c7944b25bd225256c88ac97b44200000000001976a91463cbce769fcca0ad709f90abc8a8e82142f956d988ac5c0f4500000000001976a9145100088d8c152331e814febda1e0956b8c45d9c888acd56a4500000000001976a914ed7411aabacb49be9a4326cfa7212e20b0d7b01388aceb894500000000001976a914e0613c79551f06746d86aec98ab7b0c4bf107d0188acff774600000000001976a9141d27cdd4a421b60a71b7e9220cf52ac4547dabd788ac76c84600000000001976a9142acb553c46fdbec7367a344f4d46c049af8cba6288ac98c14700000000001976a914dbee77d2aaeda4f7eda3ba483fe3fa0b87efeb9388ac00d04800000000001976a9145c92232239b0b2aba3408e633fe94ab1fba135c388acec434a00000000001976a914f6291009ee2787a78d9c2fc5814bec12799bd75288ac0f564b00000000001976a914612792fadd4ae9b1883c66d5a73c7f50911d8a3688ac14e04b00000000001976a9142e66df7163166ac7339c9a4306ce7a1a3b9d61c788ac83cd4e00000000001976a914cbeb07cd4a9b6e55ef58b5c91d5444fef999ceff88acaa5c4f00000000001976a91458f09cd444d334a2be8e20457b40f6cf7fe917dd88ac34814f00000000001976a914bd50057b57b5b44c56da410233b3d424b61ac8af88acf5de5100000000001976a9147a296d10a7558d816ca33de47d39b35bbb881ee088ac359b5200000000001976a914c2a17364d2dfc4d24462f9290055a5d998344db888ac69b85200000000001976a9148ab88cc2aa9bb97a82943a725f8749a01940291888ac9cba5200000000001976a91483d884f35c8b2b1ad9a890275f7ddcb9ef10063988acafa85500000000001976a91406398f2c64fbe6388f258caf359f45377087156d88ac05085600000000001976a9140a577ae6c39160315e05683600a5a37e5ca845b488ac2c765800000000001976a914a4f6c07f21e25ca4a5eddcb030450be061e4f4ed88aca2085900000000001976a91481a5abf3619cf39526327ce37606506f43fa322d88aced215900000000001976a91415f7061dbb324b172ae7c09435d26cdb1d16c3c488ac287a5c00000000001976a9147e205faa283976b0de1997bbdaa0ed3034240f9b88ac7a1a5f00000000001976a914c7aca55050f7d76868908add24568fbab91ad2be88ac03b06200000000001976a91433fa320e8e38110a670bd0435d7f878b0923f86d88acdac16900000000001976a914d174612685ac19215d8282e1de797fcfca18fa9c88acc7a76c00000000001976a914eec8f0793e8977b891df25661f6ae739ab284fa788acc80c6d00000000001976a914cf1a3451d2da9d6cffb686e3fc7483cfb722278f88ac8a0e6d00000000001976a914b1fd81918e34fac8c4875dfe15620acfb46ef49688ac7b8d7300000000001976a9144283846b7a9c98b45f205200454fa4bd842d2dda88ac573f7800000000001976a914301aa42fad784dcf1409656d93d554f34126091e88ac2b867b00000000001976a914c6052ea9e2bf38c68e7bc8daaf791ad68d119da388ac302a8100000000001976a9149209eaedbc248ad582560ffdd420b3352042670988ac10548300000000001976a914722384d02c1fe7639f44ee967154c2bc24a157ee88ac0ec48e00000000001976a914cfbf579977645d2b3be46ca09f2e724fc9a3a41088ac7afd9000000000001976a914750c29378fece4c9e853fb6f8470e1524e2bb54688acf1079200000000001976a9146df069828879f2932246ac7e332a55980d0afdc688ace8af9300000000001976a9149244c19100effe8d457ea336ffd481d2a22a208f88ac1e9f9400000000001976a91428a188b783859c55490418cb10f2fd9a7ebcca9b88ac38159c00000000001976a914c717152dc2e1b2c8e1d11645828188513ccf22f388ac7739a600000000001976a914c1ca2a776c5908664c9a2977c16fb641f428edb488ac1f29a900000000001976a914530a43f79d7f83a69e4c70a3e3104aabf60614ff88ac8f5cb000000000001976a914638c20458832057ac20f5c700dd676ba1ecd0cc388ac183ab200000000001976a9144d27c1b943a911674c1ccc38bcb2c807bdcedba688ac3134b300000000001976a914fcc03dd43bf59391f8643f8a7b46eef7b8708f1c88acc062c600000000001976a9147d6012667a507ffc167fe0ae5a5ea6ffb7f6f09788acea3ace00000000001976a914560917e9f6790722485027121aac3da358a3e81c88ac864dce00000000001976a914b033fd664031cc3aa3c3df2d45bc70a3e351388088acdb7cd000000000001976a914971603936050727183649d4c07e2c264823cc83e88aca6e2dc00000000001976a914e806dfc0ebee2334e363e797ceb334f1a36eef6388ac33fbee00000000001976a91424317cce92a24cde92a13bda94edc4b3a58ef49d88acf003fa00000000001976a9144ccfc84876a1cd1e184faf5c59e1c214cfc6c19b88ac5e12fc00000000001976a91499566b93376903ffd4bcc811797579d772f33cb588ac9b8e1801000000001976a91413c2c000bc979531b6f2a5f53c237c2cd2c8256288ac7aafb201000000001976a914fb02f1084f7d06601e53540ec18a0e5ee8bcd0ad88ace710b701000000001976a91436d58dcc70e150d8343fc67bdac846049b45f06188acf77abb01000000001976a914b40cdd2d3e0d0a50b774d7514df1c23eb7f0ab5688ac0a64d401000000001976a91416ed65355b0a06c884ef43db5d544e6eb62c459188aceecfe701000000001976a914c73eab3abff961e95d993c12ff86fd4b7530225988acbf692902000000001976a914ecc2daa2ed9fb7933854c8b80a724cc51e71108288acab1b4202000000001976a9141d9e4ebb1df1dbe5acc779dee8acc05605c89a8988ac89e95502000000001976a91486487c68973d87baa2a953dd46781139df0df1de88accc3d6f02000000001976a9140dbfb73bef742319ea15f14e2b4a806e9159433b88ac46a8f902000000001976a914fcc21b073eb9ae6f55363031f9591dbe87bec84f88ac149d3103000000001976a9140eb219eecef1a0205b040311f165646bc63b710788ac81ffa803000000001976a914140f0e13a9517eeb08f1af08fdd12ec619160f6b88ac47d15005000000001976a9140f69c105fe00d56f0a31d835370606bb7d7b7a0788acc2a4ef06000000001976a91459ff1d12e8e574ef6dfd656b728fce1b8f77dada88acb6adf208000000001976a914f19638af91481e45a018c443aa909068ff4835da88acc30e7f09000000001976a914ae6a2f5b8268c54a9d1ac5d8a44551443240f3c388ac4611ff0b000000001976a914e9a07a2b5be7f884b345118d242f572c4700000e88acc1b8ff0c000000001976a9147650d035a8890f06b821c948c6faff39035e3fd088ac7e70e617000000001976a914a9bda3b431b0b9e096457e06de5527ac1dca6daf88ac4df52e0000000000434104ffd03de44a6e11b9917f3a29f9443283d9871c9d743ef30d5eddcd37094b64d1b3d8090496b53256786bf5c82932ec23c3b74d9f05a6f95a8b5529352656664bac00000000000000002a6a2859d660f378486c7466d2f3fcad9a3c8c25ad8029aaebc197a30f2ebb8a16b613070000001c00000000000000c6c59b70885437d29928568410f738ca4fd7e85588fd994e1f010000000000000accedf80d07432d9c29338c32503cb4cd5f75f9f356664d6d343b72097be77a9b4877fe25ecd98865f1c0e04dbe6d45b950809e9c39ee202fc6d3fd78fbe4615035438317e7f48ca295933933a88d87e20973f8eaa2b041f7bf3e253c16c551577ab9fca6e077bb1cdf8cd61a20bcfba179489b7c4e1ed612d71c18cb92731abb811ecf4c3d454ae24d9ae38c9ab37c9b7af44176814638f9c1361334c920a32ea7e0b23d2c14a1410f3fcbcd117af5fded7d98afa32a213ff440f3d8e4cf47b5171a3cdb00a83cde72854289100508d040450a38ecaa3d65c7206edfa223011695c722ae0abc54cfd10aced66ebc81fdb6ad1bb9e0abcfce8aa2bc03cbae5cfe1d2d3b1a0e175ce0ff2e7bd3d84c622efee6c121685d7990583b21efbbb577542fffe18ac702b690a1828d489e08d5c8ccee0fc71b736f1cc3b5f0656b3f37e6000000000500000000000000000000000000000000000000000000000000000000000000008c8f9cc47670b399c301e72a2d54021dac17cf84b7865ae2bad1cb1bc3749d03ddeefea5ab23dd74cb308e286ea899f9c13d7139482f29d78e010f3d7d1e2f1dc2dd9e323bdaf23455bc11eb418a743d002875459396fc1f3b86496d15578cf631181cf39fdae484fa2abddef670dc6f4adb183a394898feb7ab6087fafa7f0b1b0000000300000096a2224469005c2893939f34b34ff0c80c3dc1a3622074040000000000000000003e5f2591f1847deaab8926f42974ad64d3d2cab59407c231288f2f7d9e37635569c35515081518925dc60b0102000000010000000000000000000000000000000000000000000000000000000000000000ffffffff08040e05051a010152ffffffff0261927a050000000023210325df428a228016d230b2ddcda1b2d56cdc14fe9724587710ba30e80358c540c9aca29b661e020000001976a9148b322d581d911694bb2ff85086fe93f5d192ee3a88ac00000000854f0000%0A%0A%09at

org.bitcoinj.core.BitcoinSerializer.deserializePayload(BitcoinSerializer.java:193)%0A%09at org.bitcoinj.core.BitcoinSerializer.deserialize(BitcoinSerializer.java:156)%0A%09at
org.bitcoinj.core.PeerSocketHandler.receiveBytes(PeerSocketHandler.java:149)%0A%09at
org.bitcoinj.net.ConnectionHandler.handleKey(ConnectionHandler.java:217)%0A%09at
org.bitcoinj.net.NioClientManager.handleKey(NioClientManager.java:75)%0A%09at
org.bitcoinj.net.NioClientManager.run(NioClientManager.java:111)%0A%09at com.google.common.util.concurrent.AbstractExecutionThreadService$1$2.run(AbstractExecutionThreadService.java:60)%0A%09at

com.google.common.util.concurrent.Callables$3.run(Callables.java:93)%0A%09at
java.lang.Thread.run(Thread.java:856)%0ACaused by:
org.bitcoinj.core.ProtocolException:
java.lang.ArrayIndexOutOfBoundsException: src.length=9245 srcPos=10563 dst.length=80 dstPos=0 length=80%0A%09at
org.bitcoinj.core.BlockMergeMinedPayload.readBytes(BlockMergeMinedPayload.java:156)%0A%09at
org.bitcoinj.core.BlockMergeMinedPayload.parseMergedMineInfo(BlockMergeMinedPayload.java:90)%0A%09at
org.bitcoinj.core.BlockMergeMinedPayload.parse(BlockMergeMinedPayload.java:41)%0A%09at
org.bitcoinj.core.BlockMergeMinedPayload.(BlockMergeMinedPayload.java:32)%0A%09at

org.bitcoinj.core.BlockMergeMined.(BlockMergeMined.java:53)%0A%09at
org.bitcoinj.core.Block.parseHeader(Block.java:215)%0A%09at
org.bitcoinj.core.Block.parse(Block.java:278)%0A%09at
org.bitcoinj.core.Message.(Message.java:117)%0A%09at
org.bitcoinj.core.Message.(Message.java:153)%0A%09at
org.bitcoinj.core.Block.(Block.java:132)%0A%09at
org.bitcoinj.core.BitcoinSerializer.makeMessage(BitcoinSerializer.java:205)%0A%09at org.bitcoinj.core.BitcoinSerializer.deserializePayload(BitcoinSerializer.java:191)%0A%09...
Pages:
Jump to: