在Windows上使用Besu(Java以太坊客戶端)
By 區塊鏈研究實驗室·
這是一篇關於安裝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" }}#Windows#以太坊客戶端#路印協議
免責聲明:
- 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
- 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
- 鏈報僅提供相關項目信息,不構成任何投資建議。
推荐阅读