The Android wallet will be released this weekend !
|
|
|
Hi all, We are in the process of developing the Gaelcoin wallet for Android and are looking for Beta Testers. If you are interested please e-mail info@gaelcoin.org Thanks !
|
|
|
Hey I got it working with a bit of hacking and slashing but it's start !
Thank you for your help guys, the latest version is up on Git
|
|
|
Thanks for that ! I changed the parameters and it works now but crashes after due to the Peer lookup.. Trying to find a way to void it
|
|
|
Hi Guys, I'm developing an android Gaelcoin wallet but stuck at the moment, must be something obvious I've uploaded the code onto github https://github.com/GaelCoin/bitcoin-wallethttps://github.com/GaelCoin/bitcoinjI've got 0.3BTC reward for the person who can get it to run & connect to the Gaelcoin network (Generate addresses , send & receive etc) i'll take care of the rest in terms of layout images,text etc Most of the work is already done in terms of the various parameters The params package org.litecoin;
import com.google.bitcoin.core.*; import com.google.bitcoin.script.Script; import com.google.bitcoin.script.ScriptOpCodes; import com.lambdaworks.crypto.SCrypt; import org.spongycastle.util.encoders.Hex;
import java.io.ByteArrayOutputStream; import java.math.BigInteger; import java.security.GeneralSecurityException;
import static com.google.common.base.Preconditions.checkState;
/** * Parameters for the testnet, a separate public instance of Bitcoin that has relaxed rules suitable for development * and testing of applications and new Bitcoin versions. */ public class LitecoinParams extends NetworkParameters { public LitecoinParams() { super(); id = "org.litecoin.production"; proofOfWorkLimit = Utils.decodeCompactBits(0x1e0fffffL); addressHeader = 15; acceptableAddressCodes = new int[] { 48 }; port = 12622; packetMagic = 0xfbc0b6dbL; dumpedPrivateKeyHeader = 128 + addressHeader;
targetTimespan = (int)(6 * 8 * 60); interval = targetTimespan/((int)(2 * 60));
genesisBlock.setDifficultyTarget(0x1e0ffff0L); genesisBlock.setTime(1394208197L); genesisBlock.setNonce(2085670015); genesisBlock.removeTransaction(0); Transaction t = new Transaction(this); try { // A script containing the difficulty bits and the following message: // // "Irish universities fail to make list of top 100 institutions" byte[] bytes = Hex.decode ("04ffff001d010440497269736820756e69766572736974696573206661696c20746f206d616b65206c697374206f6620746f702031303020696e737469747574696f6e73"); t.addInput(new TransactionInput(this, t, bytes)); ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream(); Script.writeBytes(scriptPubKeyBytes, Hex.decode ("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9")); scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG); t.addOutput(new TransactionOutput(this, t, Utils.toNanoCoins(50, 0), scriptPubKeyBytes.toByteArray())); } catch (Exception e) { // Cannot happen. throw new RuntimeException(e); } genesisBlock.addTransaction(t); String genesisHash = genesisBlock.getHashAsString(); checkState(genesisHash.equals("3831a2c571523657ea6886293559c8751a9e8bc195a9f437febbb3df56bc55a1"), genesisBlock);
subsidyDecreaseBlockCount = 450000;
dnsSeeds = new String[] { "seed.gaelcoin.org", "pool.gaelcoin.org",
}; }
private static BigInteger MAX_MONEY = Utils.COIN.multiply(BigInteger.valueOf(640000000)); @Override public BigInteger getMaxMoney() { return MAX_MONEY; }
private static LitecoinParams instance; public static synchronized LitecoinParams get() { if (instance == null) { instance = new LitecoinParams(); } return instance; }
/** The number of previous blocks to look at when calculating the next Block's difficulty */ @Override public int getRetargetBlockCount(StoredBlock cursor) { if (cursor.getHeight() + 1 != getInterval()) { //Logger.getLogger("wallet_ltc").info("Normal LTC retarget"); return getInterval(); } else { //Logger.getLogger("wallet_ltc").info("Genesis LTC retarget"); return getInterval() - 1; } }
@Override public String getURIScheme() { return "litecoin:"; }
/** Gets the hash of the given block for the purpose of checking its PoW */ public Sha256Hash calculateBlockPoWHash(Block b) { byte[] blockHeader = b.cloneAsHeader().bitcoinSerialize(); try { return new Sha256Hash(Utils.reverseBytes(SCrypt.scrypt(blockHeader, blockHeader, 1024, 1, 1, 32))); } catch (GeneralSecurityException e) { throw new RuntimeException(e); } }
static { NetworkParameters.registerParams(get()); NetworkParameters.PROTOCOL_VERSION = 70002; } }
The error:04-26 23:12:07.120 32461-32461/de.schildbach.wallet_ltc W/dalvikvm﹕ Exception Ljava/lang/IllegalStateException; thrown while initializing Lorg/litecoin/LitecoinParams; 04-26 23:12:07.120 32461-32461/de.schildbach.wallet_ltc W/dalvikvm﹕ Exception Ljava/lang/ExceptionInInitializerError; thrown while initializing Lde/schildbach/wallet/Constants; 04-26 23:12:07.120 32461-32461/de.schildbach.wallet_ltc W/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41642e18) 04-26 23:12:07.130 32461-32461/de.schildbach.wallet_ltc E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: de.schildbach.wallet_ltc, PID: 32461 java.lang.ExceptionInInitializerError at de.schildbach.wallet.Constants.<clinit>(Constants.java:42) at de.schildbach.wallet.WalletApplication.initLogging(WalletApplication.java:174) at de.schildbach.wallet.WalletApplication.onCreate(WalletApplication.java:109) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java) at android.app.ActivityThread.handleBindApplication(ActivityThread.java) at android.app.ActivityThread.access$1500(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java) at android.os.Handler.dispatchMessage(Handler.java) at android.os.Looper.loop(Looper.java) at android.app.ActivityThread.main(ActivityThread.java) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: v1 block: previous block: 0000000000000000000000000000000000000000000000000000000000000000 merkle root: 2a9d0d840f9485dd422b7d58a5d92ede9590676e635d43a333f02fcdf1face6f time: [1394208197] Fri Mar 07 16:03:17 GMT+00:00 2014 difficulty target (nBits): 504365040 nonce: 2085670015 with 1 transaction(s): 2a9d0d840f9485dd422b7d58a5d92ede9590676e635d43a333f02fcdf1face6f: Unknown confidence level. == COINBASE TXN (scriptSig ???) (scriptPubKey ???) at com.google.common.base.Preconditions.checkState(Preconditions.java:149) at org.litecoin.LitecoinParams.<init>(LitecoinParams.java:72) at org.litecoin.LitecoinParams.get(LitecoinParams.java:91) at org.litecoin.LitecoinParams.<clinit>(LitecoinParams.java:121) ... 15 more 04-26 23:12:18.151 32461-32461/de.schildbach.wallet_ltc D/Process﹕ killProcess, pid=32461 04-26 23:12:18.151 32461-32461/de.schildbach.wallet_ltc D/Process﹕ com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException:-1 java.lang.ThreadGroup.uncaughtException:-1 java.lang.ThreadGroup.uncaughtException:-1
|
|
|
I figured it out, I didn't convert the original ASCII String correctly
|
|
|
Litecoin requires more changes than just new NetworkParameters. You should look for litecoinj.
Yep I know and I did do those other changes as well I believe however the error I see is referencing this particle file so wanted to know if there is something obvious that i'm missing
|
|
|
Hi all, I'm trying to build an alt client for android and although I believe I have most parameters up and running , i'm getting the following error: The parameters i'm using
package org.litecoin;
import com.google.bitcoin.core.*; import com.google.bitcoin.script.Script; import com.google.bitcoin.script.ScriptOpCodes; import com.lambdaworks.crypto.SCrypt; import org.spongycastle.util.encoders.Hex;
import java.io.ByteArrayOutputStream; import java.math.BigInteger; import java.security.GeneralSecurityException;
import static com.google.common.base.Preconditions.checkState;
/** * Parameters for the testnet, a separate public instance of Bitcoin that has relaxed rules suitable for development * and testing of applications and new Bitcoin versions. */ public class LitecoinParams extends NetworkParameters { public LitecoinParams() { super(); id = "org.litecoin.production"; proofOfWorkLimit = Utils.decodeCompactBits(0x1e0fffffL); addressHeader = 15; acceptableAddressCodes = new int[] { 48 }; port = 12622; packetMagic = 0xfbc0b6dbL; dumpedPrivateKeyHeader = 128 + addressHeader;
targetTimespan = (int)(6 * 8 * 60); interval = targetTimespan/((int)(2 * 60));
genesisBlock.setDifficultyTarget(0x1e0ffff0L); genesisBlock.setTime(1394208197L); genesisBlock.setNonce(2085670015); genesisBlock.removeTransaction(0); Transaction t = new Transaction(this); try { // A script containing the difficulty bits and the following message: // // "The Times 03/Jan/2009 Chancellor on brink of second bailout for banks" byte[] bytes = Hex.decode ("0497269736820756e69766572736974696573206661696c20746f206d616b65206c697374206f6620746f702031303020696e737469747574696f6e73"); t.addInput(new TransactionInput(this, t, bytes)); ByteArrayOutputStream scriptPubKeyBytes = new ByteArrayOutputStream(); Script.writeBytes(scriptPubKeyBytes, Hex.decode ("040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9")); scriptPubKeyBytes.write(ScriptOpCodes.OP_CHECKSIG); t.addOutput(new TransactionOutput(this, t, Utils.toNanoCoins(50, 0), scriptPubKeyBytes.toByteArray())); } catch (Exception e) { // Cannot happen. throw new RuntimeException(e); } genesisBlock.addTransaction(t); String genesisHash = genesisBlock.getHashAsString(); checkState(genesisHash.equals("3831a2c571523657ea6886293559c8751a9e8bc195a9f437febbb3df56bc55a1"), genesisBlock);
subsidyDecreaseBlockCount = 450000;
dnsSeeds = new String[] { "seed.gaelcoin.org", "pool.gaelcoin.org",
}; }
private static BigInteger MAX_MONEY = Utils.COIN.multiply(BigInteger.valueOf(640000000)); @Override public BigInteger getMaxMoney() { return MAX_MONEY; }
private static LitecoinParams instance; public static synchronized LitecoinParams get() { if (instance == null) { instance = new LitecoinParams(); } return instance; }
/** The number of previous blocks to look at when calculating the next Block's difficulty */ @Override public int getRetargetBlockCount(StoredBlock cursor) { if (cursor.getHeight() + 1 != getInterval()) { //Logger.getLogger("wallet_ltc").info("Normal LTC retarget"); return getInterval(); } else { //Logger.getLogger("wallet_ltc").info("Genesis LTC retarget"); return getInterval() - 1; } }
@Override public String getURIScheme() { return "litecoin:"; }
/** Gets the hash of the given block for the purpose of checking its PoW */ public Sha256Hash calculateBlockPoWHash(Block b) { byte[] blockHeader = b.cloneAsHeader().bitcoinSerialize(); try { return new Sha256Hash(Utils.reverseBytes(SCrypt.scrypt(blockHeader, blockHeader, 1024, 1, 1, 32))); } catch (GeneralSecurityException e) { throw new RuntimeException(e); } }
static { NetworkParameters.registerParams(get()); NetworkParameters.PROTOCOL_VERSION = 70002; } }
The error04-26 21:41:03.930 25015-25015/de.schildbach.wallet_ltc E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: de.schildbach.wallet_ltc, PID: 25015 java.lang.ExceptionInInitializerError at de.schildbach.wallet.Constants.<clinit>(Constants.java:42) at de.schildbach.wallet.WalletApplication.initLogging(WalletApplication.java:174) at de.schildbach.wallet.WalletApplication.onCreate(WalletApplication.java:109) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java) at android.app.ActivityThread.handleBindApplication(ActivityThread.java) at android.app.ActivityThread.access$1500(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java) at android.os.Handler.dispatchMessage(Handler.java) at android.os.Looper.loop(Looper.java) at android.app.ActivityThread.main(ActivityThread.java) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.IllegalStateException: v1 block: previous block: 0000000000000000000000000000000000000000000000000000000000000000 merkle root: 97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9 time: [1394208197] Fri Mar 07 16:03:17 GMT+00:00 2014 difficulty target (nBits): 504365040 nonce: 2085670015 with 1 transaction(s): 97ddfbbae6be97fd6cdf3e7ca13232a3afff2353e29badfab7f73011edd4ced9: Unknown confidence level. == COINBASE TXN (scriptSig [ffff001d] [04] [4e592054696d65732030352f4f63742f32303131205374657665204a6f62732c204170706c65e280997320566973696f6e6172792c2044696573206174203536]) (scriptPubKey [040184710fa689ad5023690c80f3a49c8f13f8d45b8c857fbcbc8bc4a8e4d3eb4b10f4d4604fa08dce601aaf0f470216fe1b51850b4acf21b179c45070ac7b03a9] CHECKSIG) at com.google.common.base.Preconditions.checkState(Preconditions.java:149) at org.litecoin.LitecoinParams.<init>(LitecoinParams.java:72) at org.litecoin.LitecoinParams.get(LitecoinParams.java:91) at org.litecoin.LitecoinParams.<clinit>(LitecoinParams.java:121) ... 15 more
Any idea what i'm missing here?
|
|
|
We will be moving this thread soon out of the Announcement forum and into the General Alternate Currency forum
|
|
|
Avoid this pool owner, he has provided 0 prooof of his claims about being hacked, he stole the cinni coin miners. He just registered 2 days ago and right now his going everywhere announcing his pool. THIS IS A SCAMMER, DEV BEWARE DO NOT ACCEPT THIS POOL. BE CAREFUL GO READ THE CINNI COIN PAGE HE SCAMMED THE MEMBERS ON HIS POOL. Reference here: https://bitcointalk.org/index.php?topic=573232.msg6333762#msg6333762Thanks for the heads up ill research it
|
|
|
Well done to all the miners and supporters of Gaelcoin. This article will bring more minds to the table to make it a great crypto currency
|
|
|
Hi Guys,
Great news we just wrapped up an interview with the Sunday Business Post for the coming edition so through that we will get some new miners on board. As soon as it is out I will get the article scanned in and posted here.
Thanks for the support !
|
|
|
Please download the latest version of the Gaelcoin wallet as it's patched with the latest SSL version
|
|
|
Gaelcoin is only 1% premine and will only be given to the first 100.000 early adopters! As the 50% pre-mine will most definitely result in a large pool of coins in the hands of a small group of people..
Love to see CoinMarketcap.com deduct the the premined value to get a much clearer picture and to get rid of the pump & dump coins..
|
|
|
|