1. 程式人生 > >MyEclipse上運行比特幣全節點bitcoinj

MyEclipse上運行比特幣全節點bitcoinj

出現 existing directory client DC walle 命令 http proto

bitcoinj是bitcoin全節點的java實現。與比特幣官方推薦的C++實現不同的是:目前它並沒有內置RPC或命令行交互。

它的功能交互是通過幾個example例子、tool、以及walletKit體現的。

對於學習或開發區塊鏈,閱讀bitcoin源代碼,了解其運行原理,學習其開發流程是非常好的途徑。

安裝準備工作

  1. 安裝Gradle,Gradle是一個項目構建工具,類似Maven,bitcoinj是用Gradle進行構建。
  2. 安裝JavaFx,JavaFx是一套Java的圖形界面庫,bitcoinj中的錢包實例是用JavaFx編寫的界面。
  3. 安裝protobuf,Google Protocol Buffer( 簡稱 Protobuf) 是 Google 公司內部的混合語言數據標準。是一種輕便高效的結構化數據存儲格式,可以用於結構化數據串行化,或者說序列化。它很適合做數據存儲或 RPC 數據交換格式。可用於通訊協議、數據存儲等領域的語言無關、平臺無關、可擴展的序列化結構數據格式。bitcoinj中也會用到。

    下載bitcoinj

    下載地址:https://github.com/bitcoinj/bitcoinj
    直接下載zip包,進行解壓。

在MyEclipse中,依次選擇:

Import -> Gradle -> Existing Gradle Project

在Project root directory中選擇剛解壓的bitcoinj目錄。導入成功後會出現以下幾個項目:

> bitcoinj
> core                # 全節點功能實現
> examples            # 幾個調用core的例子
> tools               # 小工具
> walletettemplate    # 一款圖形化的wallet

執行protoc生成相關的java文件

網上很多文章都沒提到這一點,剛導入bitcoinj,項目中很多地方是會報錯的,因為部分java文件需要protoc來生成。

在命令行下,進入bitcoinj如下目錄

core -> src -> main -> proto

可以看到如下文件:

paymentchannel.proto
paymentrequest.proto
peerseeds.proto
storedclientpaymentchannel.proto
storedserverpaymentchannel.proto
wallet.proto

執行如下命令:

protoc --java_out=../java paymentchannel.proto

每個文件執行一次,在java目錄下對應的包中就會生成相應的java文件,再刷新整個項目,將不會再報錯。

MyEclipse上運行比特幣全節點bitcoinj