首先附上bitcoinj地址
另外还有bitcoinj-jar的下载地址
bitcoinj-core-0.14.7-bundled.jar
1:大致界面如下
2:bitcoinj网络参数
NetworkParameters parameters:
TestNet3Params;// 公共测试网络
MainNetParams;// 私有测试网络
RegTestParams;// 生产网络
可通过get()方法获取实例;
3:新用户注册
获取新用户的私钥,公钥,以及钱包地址等信息;
3.1生成私钥:
ECKey ceKey = new ECKey();
NetworkParameters parameters=TestNet3Params.get();
ceKey.getPrivKey();
cekey.getPrivateKeyAsHex();
ceKey.getPrivateKeyAsWiF(parameters);
ceKey.getPrivKeyBytes();
3.2生成公钥:
Cekey cekey=new Cekey();
NetworkParameters params = TestNet3Params.get();
ceKey.getPublicKeyAsHex(); // 公钥Hex
ceKey.getPubKey() // 公钥原始字节数组byte[]
3.3生成地址
ECKey ceKey = new ECKey();
NetworkParameters params = TestNet3Params.get();
ceKey.toAddress(params).toBase58() // base58编码后的地址
3.4
final Handler handler = new Handler();
Threading.USER_THREAD = handler::post;
NetworkParameters params = TestNet3Params.get();
//一共三个参数1: params 2:本地存储.wallet文件路径 3:本地wallet文件名
WalletAppKit walletAppKit = new WalletAppKit(params , getCacheDir(), WALLET_NAME) {
@Override
protected void onSetupCompleted() {
}
};
因为不能每次都new所以我们需要存储wallet文件,然后根据wallet文件获取需要的信息
//获取wallet
Wallet wallet=Wallet.loadFromFile(file);
//获取钱包地址
String addressStr= wallet.freshReceiveAddress().toBase58();
//获取余额
wallet.getBalance();
3.5转账
SendRequest request = SendRequest.to(Address.fromBase58(parameters, addressStr), Coin.parseCoin(amount));