首页 > 系统服务 > 详细

在Eclipse下运行比特币全节点之二

时间:2016-03-27 02:13:56      阅读:1537      评论:0      收藏:0      [点我收藏+]

动手篇

本篇讲如何在比特币TestNet上申请免费的BTC,如何在线查看交易。

最后,如何在Eclipse下运行bitcoinj的代码,建立Wallet、要钱(TxIn)、查钱包余额(dump),花费(TxOut)

?Project一览


bubuko.com,布布扣

上一篇我们用Maven导入bitcoinj之后,会在project视图下出现如图红框标出的project,简述如下:

Bitcoinj-parent是父目录,其他几个是:

Bitcoinj-core :不用说它就是所有全节点的功能实现。

Bitcoinj-examples:几个调用core的例子,

Bitcoinj-tool: 小工具(废话)

Wallettemplate则是一款图形化的Wallet,运行起来看这样的:

(用12个单词作为生成脑钱包的种子)


bubuko.com,布布扣
?

这篇文章介绍了bitcoinj的个部分如何协同工作的:https://bitcoinj.github.io/how-things-fit-together

?

?检查网络

根据这篇帖子:https://groups.google.com/forum/#!topic/bitcoinj/DMOMWHBv5b4

我决定先运行 PeerMonitor, 探探可连接的其他节点。

修改line80行,将Mode由MainNet改为TestNet

		// params = MainNetParams.get();
		params = TestNet3Params.get();

?运行Main方法,效果见下图:


bubuko.com,布布扣

基本上,看到周围有可以连接的Peer,就算吃了个定心丸,知道可以继续下面的事情。


?生成钱包

运行Kit.java的main方法,会在本地目录下生成一个名为:"walletappkit-example" 的钱包。

注意,如果是首次运行,会阻塞在这行进行同步Block Chain的工作,控制台会不断输出同步进度。

        kit.startAsync();
        kit.awaitRunning();

?

最后会打印一行与这个钱包关联的公开地址:

send money to: n1BkPrL72W4VjpGbZ2YEasWiqSr2GWGoN7

?有了这个地址,就可以去化缘了:)

?

获取免费测试币?

访问这个网址:http://tpfaucet.appspot.com/

填入你的要钱的地址,会每次送你0.017 BTC,注意人家希望用完之后归还到:n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi

以方便后面的人继续用。

成功获取之后,访问以下的公开网址,看看是否到账:

https://testnet.blockexplorer.com/address/n1BkPrL72W4VjpGbZ2YEasWiqSr2GWGoN7

由于交易广播得相当快,基本上可以立即看到这笔送你钱的交易,
bubuko.com,布布扣
?

?但在没有打入Block之前,这笔交易的状态是: UNCONFIRMED, 耐心等几分钟,它被打包到Block Chain之后,确认数目就有了。

?
bubuko.com,布布扣
?

查看余额

然后在Eclipse下运行?DumpWallet,钱包文件的名字就是上面那个:walletappkit-example.wallet

dump这命令挺形象的,把钱包翻过来,看看里面每笔账:

咦!为师刚化的缘咋看不到?八戒你说说! ---师父,问猴子!

——师父,您需要同步下BlockChain信息啦,再次运行Kit就好。好吧,看到了:

>>> UNSPENT:
Sends 0.00 BTC and receives 0.017 BTC, total value 0.017 BTC.
  93b0b7c7d93b82c782fe4fc875d96835c57434d81806c778c9f18ae33a029549
  confidence: Appeared in best chain at height 743264, depth 14.
  time locked until block 743253
  opts into full replace-by-fee
     in   PUSHDATA(71)[3044022020f257560321d2eb65564dbd0c8356544f81a5239445394e42f5e6b54c7bdf5c022023182265012097634cc0c0732eb6a271d9cf868ab32bda84df32ce0814cd388401] PUSHDATA(33)[03312c21eaec8e40ba16ae333f53f5146953e9af61b4dcf3f0c11d72c069afea28] 1.97616516 BTC
          outpoint:b9014701997ec9766e672616304b11752860104fb21d8f7bd13887d310af4cac:1 hash160:e5611ed3aa4b454aae788713eae355e318a60f88
          (has sequence, opts into full RBF)
     out  DUP HASH160 PUSHDATA(20)[7de84c6ff0b2e9b6efda94cdf54476a4ffef0019] EQUALVERIFY CHECKSIG 1.95904247 BTC
     out  DUP HASH160 PUSHDATA(20)[d7c0adc2199ab8c05f6403da3b456dd894f94337] EQUALVERIFY CHECKSIG 0.017 BTC
     fee  0.00054528 BTC/kB, 0.00012269 BTC for 225 bytes
     prps UNKNOWN

?

花钱

运行SendRequest 可以把钱花出去,做两个简单的代码改动:

line42,将钱包名字改成上面那个同名:

		WalletAppKit kit = new WalletAppKit(params, new File("."), "walletappkit-example");

?line51: 没那么多钱,少花点:

		Coin value = Coin.parseCoin("0.009");

?line55: 送回给施主:

		Address to = Address.fromBase58(params, "n2eMqTT929pb1RDNuqEnxdaLau1rxy3efi");

?改好之后运行,会打印一条交易的hash:

coins sent. transaction hash: b63046fd1a7f4cff1948207f60072c4218321ce583263d96de4b73c9f7157b6d

?用这条hash去楼上那个公开网址检索:

?
bubuko.com,布布扣
?

?再dump本地的钱包:

>>> UNSPENT:
Sends 0.017 BTC and receives 0.00795 BTC, total value -0.00905 BTC.
  b63046fd1a7f4cff1948207f60072c4218321ce583263d96de4b73c9f7157b6d
  confidence: Appeared in best chain at height 743279, depth 1.
     in   PUSHDATA(72)[3045022100f3e937ab19e8893a06e0761872837ce4e7e3aa22062eda8513a298edd5ed4b0d02207a11a0663105c8d4f7a70da283caec72c03086faa27e80bcdf7f45a085393b4d01] PUSHDATA(33)[03686221d30de645ef53588c6454403d0bf336980592b1a22ce697dc582cf10679] 0.017 BTC
          outpoint:ce1e5d13246befbfcddd636041719560ea2358093c157c34d3ab13aea3c3d91f:0 hash160:e17b8e9296c8267f38aa6b3ef92881cc68572cce
     out  DUP HASH160 PUSHDATA(20)[3f5de630a7f2bac6c11c92942940a76c80dc85b6] EQUALVERIFY CHECKSIG 0.00795 BTC
     out  DUP HASH160 PUSHDATA(20)[e7c1345fc8f87c68170b3aa798a956c2fe6a9eff] EQUALVERIFY CHECKSIG 0.009 BTC
     fee  0.00022123 BTC/kB, 0.00005 BTC for 226 bytes
     prps USER_PAYMENT

?少了-0.00905 BTC,其中那个5是当着交易费,在打包请求时设定的。

?

?

?

?

?

在Eclipse下运行比特币全节点之二

原文:http://chen4w.iteye.com/blog/2286504

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!