溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何進行Ethereum Bootstrap本地私有鏈開發環境搭建

發布時間:2021-12-10 17:39:59 來源:億速云 閱讀:209 作者:柒染 欄目:云計算

如何進行Ethereum Bootstrap本地私有鏈開發環境搭建

目錄

  1. 引言
  2. 準備工作
  3. 創建私有鏈
  4. 配置Truffle項目
  5. 使用Ganache進行測試
  6. 總結

引言

以太坊(Ethereum)是一個開源的區塊鏈平臺,支持智能合約的開發和部署。為了在本地進行以太坊智能合約的開發和測試,搭建一個本地私有鏈開發環境是非常必要的。本文將詳細介紹如何從零開始搭建一個以太坊本地私有鏈開發環境,并使用Truffle框架進行智能合約的開發、編譯和部署。

準備工作

在開始搭建本地私有鏈之前,我們需要安裝一些必要的工具和軟件。

2.1 安裝Node.js

Node.js是一個基于Chrome V8引擎的JavaScript運行時環境,用于構建快速、可擴展的網絡應用程序。Truffle框架依賴于Node.js,因此我們需要首先安裝Node.js。

  1. 訪問Node.js官網下載適合你操作系統的安裝包。
  2. 運行安裝包并按照提示完成安裝。
  3. 安裝完成后,打開終端或命令提示符,輸入以下命令驗證安裝是否成功:
   node -v
   npm -v

如果輸出了Node.js和npm的版本號,說明安裝成功。

2.2 安裝Git

Git是一個分布式版本控制系統,用于管理項目的源代碼。Truffle框架使用Git來管理依賴包,因此我們需要安裝Git。

  1. 訪問Git官網下載適合你操作系統的安裝包。
  2. 運行安裝包并按照提示完成安裝。
  3. 安裝完成后,打開終端或命令提示符,輸入以下命令驗證安裝是否成功:
   git --version

如果輸出了Git的版本號,說明安裝成功。

2.3 安裝Geth

Geth是以太坊的官方客戶端之一,用于運行以太坊節點。我們將使用Geth來啟動和管理本地私有鏈。

  1. 訪問Geth官網下載適合你操作系統的安裝包。
  2. 運行安裝包并按照提示完成安裝。
  3. 安裝完成后,打開終端或命令提示符,輸入以下命令驗證安裝是否成功:
   geth version

如果輸出了Geth的版本號,說明安裝成功。

2.4 安裝Truffle

Truffle是一個以太坊開發框架,提供了智能合約的編譯、部署和測試工具。我們將使用Truffle來開發和部署智能合約。

  1. 打開終端或命令提示符,輸入以下命令安裝Truffle:
   npm install -g truffle
  1. 安裝完成后,輸入以下命令驗證安裝是否成功:
   truffle version

如果輸出了Truffle的版本號,說明安裝成功。

2.5 安裝Ganache

Ganache是一個以太坊區塊鏈模擬器,用于在本地運行一個以太坊節點,方便開發和測試智能合約。

  1. 訪問Ganache官網下載適合你操作系統的安裝包。
  2. 運行安裝包并按照提示完成安裝。
  3. 安裝完成后,啟動Ganache,你將看到一個本地以太坊節點已經啟動。

創建私有鏈

在完成準備工作后,我們可以開始創建本地私有鏈。

3.1 創建創世區塊

創世區塊是區塊鏈的第一個區塊,定義了區塊鏈的初始狀態。我們需要創建一個創世區塊配置文件。

  1. 創建一個新的目錄用于存放私有鏈數據:
   mkdir my-private-chain
   cd my-private-chain
  1. 在目錄中創建一個名為genesis.json的文件,內容如下:
   {
     "config": {
       "chainId": 15,
       "homesteadBlock": 0,
       "eip150Block": 0,
       "eip155Block": 0,
       "eip158Block": 0,
       "byzantiumBlock": 0,
       "constantinopleBlock": 0,
       "petersburgBlock": 0,
       "istanbulBlock": 0,
       "berlinBlock": 0,
       "londonBlock": 0
     },
     "alloc": {},
     "coinbase": "0x0000000000000000000000000000000000000000",
     "difficulty": "0x20000",
     "extraData": "",
     "gasLimit": "0x2fefd8",
     "nonce": "0x0000000000000042",
     "mixhash": "0x0000000000000000000000000000000000000000000000000000000000000000",
     "parentHash": "0x0000000000000000000000000000000000000000000000000000000000000000",
     "timestamp": "0x00"
   }

這個配置文件定義了一個簡單的私有鏈,chainId為15,difficulty0x20000,gasLimit0x2fefd8。

3.2 初始化私有鏈

使用Geth初始化私有鏈。

  1. 在終端或命令提示符中,輸入以下命令初始化私有鏈:
   geth --datadir ./data init genesis.json

這將創建一個名為data的目錄,并在其中初始化私有鏈。

3.3 啟動私有鏈節點

初始化完成后,我們可以啟動私有鏈節點。

  1. 輸入以下命令啟動私有鏈節點:
   geth --datadir ./data --networkid 15 --http --http.addr "0.0.0.0" --http.port 8545 --http.api "eth,net,web3,personal" --http.corsdomain "*" --allow-insecure-unlock --nodiscover console

這個命令啟動了私有鏈節點,并打開了Geth的JavaScript控制臺。--networkid設置為15,與創世區塊中的chainId一致。--http選項啟用了HTTP-RPC服務器,--http.addr--http.port指定了服務器的地址和端口,--http.api指定了可用的API。

  1. 在Geth控制臺中,你可以使用以下命令創建一個新賬戶:
   personal.newAccount()

輸入密碼后,系統會生成一個新的以太坊賬戶。

  1. 你可以使用以下命令查看賬戶余額:
   eth.getBalance(eth.accounts[0])

由于這是一個新的私有鏈,賬戶余額應該為0。

配置Truffle項目

在私有鏈啟動后,我們可以使用Truffle框架來開發和部署智能合約。

4.1 創建Truffle項目

  1. 在終端或命令提示符中,輸入以下命令創建一個新的Truffle項目:
   mkdir my-truffle-project
   cd my-truffle-project
   truffle init

這將創建一個新的Truffle項目,并生成一些默認的文件和目錄。

4.2 配置Truffle

  1. 打開truffle-config.js文件,修改networks部分以連接到本地私有鏈:
   module.exports = {
     networks: {
       development: {
         host: "127.0.0.1",
         port: 8545,
         network_id: "15", // Match any network id
       },
     },
     compilers: {
       solc: {
         version: "0.8.0", // Fetch exact version from solc-bin (default: truffle's version)
       },
     },
   };

這個配置將Truffle連接到本地私有鏈的HTTP-RPC服務器。

4.3 編寫智能合約

  1. contracts目錄中創建一個新的Solidity文件,例如SimpleStorage.sol
   // SPDX-License-Identifier: MIT
   pragma solidity ^0.8.0;

   contract SimpleStorage {
       uint256 storedData;

       function set(uint256 x) public {
           storedData = x;
       }

       function get() public view returns (uint256) {
           return storedData;
       }
   }

這是一個簡單的智能合約,允許存儲和檢索一個uint256類型的值。

4.4 編譯和部署智能合約

  1. 在終端或命令提示符中,輸入以下命令編譯智能合約:
   truffle compile

這將編譯contracts目錄中的所有Solidity文件,并生成相應的ABI和字節碼。

  1. migrations目錄中創建一個新的遷移文件,例如2_deploy_contracts.js
   const SimpleStorage = artifacts.require("SimpleStorage");

   module.exports = function (deployer) {
     deployer.deploy(SimpleStorage);
   };

這個遷移文件將部署SimpleStorage合約。

  1. 輸入以下命令部署智能合約:
   truffle migrate

這將部署SimpleStorage合約到本地私有鏈。

使用Ganache進行測試

Ganache提供了一個本地以太坊節點,方便我們進行智能合約的測試。

5.1 啟動Ganache

  1. 啟動Ganache,你將看到一個本地以太坊節點已經啟動,并生成了10個測試賬戶。

5.2 配置Truffle連接Ganache

  1. 打開truffle-config.js文件,修改networks部分以連接到Ganache:
   module.exports = {
     networks: {
       development: {
         host: "127.0.0.1",
         port: 7545,
         network_id: "*", // Match any network id
       },
     },
     compilers: {
       solc: {
         version: "0.8.0", // Fetch exact version from solc-bin (default: truffle's version)
       },
     },
   };

這個配置將Truffle連接到Ganache的HTTP-RPC服務器。

5.3 運行測試

  1. test目錄中創建一個新的測試文件,例如testSimpleStorage.js
   const SimpleStorage = artifacts.require("SimpleStorage");

   contract("SimpleStorage", (accounts) => {
     it("should store the value 89.", async () => {
       const simpleStorageInstance = await SimpleStorage.deployed();
       await simpleStorageInstance.set(89, { from: accounts[0] });

       const storedData = await simpleStorageInstance.get.call();
       assert.equal(storedData, 89, "The value 89 was not stored.");
     });
   });

這個測試文件將測試SimpleStorage合約的setget函數。

  1. 輸入以下命令運行測試:
   truffle test

如果測試通過,你將看到類似以下的輸出:

   Contract: SimpleStorage
       ? should store the value 89. (100ms)

   1 passing (123ms)

總結

通過本文的介紹,你已經成功搭建了一個以太坊本地私有鏈開發環境,并使用Truffle框架開發和部署了智能合約。我們還使用Ganache進行了智能合約的測試。希望本文能幫助你更好地理解以太坊開發環境的搭建和智能合約的開發流程。如果你有任何問題或建議,歡迎在評論區留言。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女