在Windows上使用Besu(Java以太坊客戶端)

買賣虛擬貨幣
這是一篇關於安裝Besu(用於以太坊的Java客戶端)的文章的Windows版本:1. Linux2. Windows(#)對於Java開發人員來說,在工具帶中擁有一些強大的工具至關重要,而對於以太坊區塊鏈開發人員來說,至關重要的工具之一就是網路客戶端。這是一款與區塊鏈進行資料通訊的軟體。除此之外,客戶端:啟動節點,充當對等發現代理來檢視還有誰參與網路,並驗證和傳送事務。本指南可幫助您安裝和設定在Java上進行以太坊程式設計所需的核心部分。儘管那裡有一些很棒的網路客戶端,但是Besu是唯一用Java編寫的客戶端。Besu是用Java編寫的開放原始碼,Apache 2.0許可的以太坊客戶端。它與主網相容,具有模組化架構,並具有隱私和許可功能以及新的共識演算法。
這是在Linux / macOS / Windows上安裝和配置Besu客戶端的一系列分步指南中的第一個。本指南重點介紹Windows作業系統。在Docker上嘗試Besu在Windows上,這實際上很棘手。 Docker不能在Windows上很好地發揮作用,因此,如果您想嘗試快速的docker解決方案,則必須在macOS或Linux上進行。 但是您可以安裝軟體或使用前面的Binary檔案。Windows入門有兩種安裝方法:安裝二進位制發行版對於二進位制安裝,請遵循本節,然後跳過下一部分。
要求:對於這兩種方法,Besu都需要在您的機器上安裝Java JDK。當前版本的Besu需要安裝Java JDK 11+。Binary安裝如果執行專用網路,請記住至少有4GB的RAM,並檢視其他安裝型別的進一步要求。1、下載Besu Binary檔案Windows上的所有終端命令都應使用Git bash鍵入。 如果您使用常規的CMD或Powershell,則其中一些命令將不起作用。從https://bintray.com/hyperledger-org/besu-repo/download_file?file_path=besu-1.3.5-SNAPSHOT.tar.gz下載Binary檔案
對於單個使用者使用的機器上的本地使用者Binary檔案,建議使用$ HOME / bin /和$ HOME / .local / {bin,opt,usr}。 其他選項可用,例如/ opt / local /或/ usr / local / bin /,具體取決於您的本地設定和首選項。 閱讀此Stack Exchange執行緒以獲取更多詳細資訊。2、解壓縮壓縮檔案:$ tar -xzf besu.tar.gz$ cd besu-<version>替換為您下載的任何版本。3、確認下載未損壞並檢查版本。輸出應返回Besu和JDK版本。
$ bin/besu --versionbesu/v1.3.5-dev-bb0ba9b7/linux-x86_64/oracle_openjdk-java-11從原始碼中生成有兩個選項:在本地或在VM上安裝和執行。本指南重點介紹本地解決方案。1、複製Besu程式碼庫
$ cd ~/bin/$ git clone --recursive https://github.com/hyperledger/besu2、構建Besu$ cd besu/$ ./gradlew build -x test3、選擇發行版本並檢查版本。
$ cd build/distributions/$ tar -xzf besu-<version>.tar.gz$ cd besu-<version>/$ bin/besu --version$ bin/besu --help配      置
Besu無需額外配置即可正常執行。 由--network命令列標誌設定的每種不同的網路型別(包括主網路)都會自動載入適當的預設配置。如果需要更改設定,可以在節點級別或網路級別配置這些選項。 網路級別的設定在創世檔案中定義,並由連線到該特定網路的每個節點載入。 而在節點配置檔案中或透過命令列標誌來修改節點級別的設定。啟動Besu完成以上步驟後,您可以繼續使用此發行版和常規的啟動Besu指南。為了快速預覽,這可能是在使用docker執行的開發人員網路節點上的HTTP請求。$ besu --network=dev --miner-enabled --miner-coinbase=
0xfe3b557e8fb62b89f4916b721be55ceb828dbd73 --rpc-http-cors-origins="all" --host-whitelist="*" --rpc-ws-enabled --rpc-http-enabled --data-path=\tmp\tmpDatdir這是您構建呼叫eth_chainId方法的請求的方式。String payload='{"jsonrpc":"2.0","method":"eth_chainId","params":[],"id":1}';String requestUrl="http://localhost:8545";
sendRequest(requestUrl, payload);以及方法的實現:public static String sendRequest(String requestUrl, String payload) {    try {        URL url = new URL(requestUrl);        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);        connection.setDoOutput(true);        connection.setRequestMethod("GET");        connection.setRequestProperty("Accept", "application/json");        connection.setRequestProperty("Content-Type", "application/json; charset=UTF-8");        OutputStreamWriter outputWriter = new OutputStreamWriter(connection.getOutputStream(), "UTF-8");
        outputWriter.write(payload);        outputWriter.close();        BufferedReader buffer = new BufferedReader(new InputStreamReader(connection.getInputStream()));        StringBuffer jsonString = new StringBuffer();        String line;        while ((line = buffer.readLine()) != null) {
                jsonString.append(line);        }        buffer.close();        connection.disconnect();        return jsonString.toString();    } catch (Exception e) {
            throw new RuntimeException(e.getMessage());    }}該請求應返回以下結果:{  "jsonrpc" : "2.0",
  "id" : 1,  "result" : {    "startingBlock" : "0x0",    "currentBlock" : "0x2d0",    "highestBlock" : "0x66c0"  }
}

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;