文章「爲區塊鏈建立開發環境」首先出現在 Coinpedia 上

一、簡介

由於其創新和去中心化的承諾,區塊鏈如今越來越受歡迎並不斷髮展。雖然從外面看起來很迷人,但在沒有配置良好的環境的情況下潛入同樣令人畏懼。但別擔心—我們已經爲您提供了保障!本文深入探討了區塊鏈領域,提供了根據區塊鏈開發人員的興趣和需求量身定製的詳細指南和見解。準備好透過這個令人興奮的旅程探索區塊鏈世界吧!

2. 選擇正確的工具

在配置環境時,根據您的興趣和要求選擇正確的工具至關重要。以下是您可以探索的工具和編輯器。

操作系統:

您可以在任何操作系統上開發區塊鏈應用程序,但最好使用 macOS 和 Linux,因爲它們具有更好的兼容性和支持。

Linux:Linux 是免費和開源的,具有靈活性和可定製性。它擁有廣泛的社區支持和豐富的資源。Linux 有幾種流行的發行版,被廣泛使用。一種是 Ubuntu,它非常適合初學者,另一種是 Fedora 和 Debian。大多數區塊鏈工具設計都是以 Linux 爲核心的。

MacOS:MacOS 與 Linux 類似,基於 Unix,命令行工具和開發環境的體驗也類似。硬件和軟件的集成非常無縫。此外,它還具有出色的原生支持,例如 Homebrew、Xcode 和 Docker。

Windows:您仍然可以將 Windows 與 WSL(適用於 Linux 的 Windows 子系統)結合使用,這樣您就可以同時運行 Linux 和 Windows。這樣您就可以同時熟悉 Windows 和 Linux 的強大工具。

OS/Mac/Linux 之間的差異表

1.代碼編輯器/IDE:

好的代碼編輯器或 IDE 可以提高您的工作效率。以下是一些值得考慮的選項:

  • VSCode:它非常輕量,並且爲不同的編碼語言和區塊鏈框架提供了很棒的附加組件。

  • IntelliJ IDEA:這個很強大,如果你正在處理 Java 區塊鏈項目,它會非常有用。

  • Sublime Text:速度很快,而且可以進行很多調整。如果你喜歡簡單,那麼它就很棒。

2.版本控制系統:

對於任何正在構建的項目來說,版本控制都非常重要。Git 以及 GitHub 或 GitLab 等網站可幫助您妥善處理代碼、與其他人合作並關注變化。這些工具可讓您更輕鬆地管理代碼庫、與他人合作並掌握所有更新。

3. 安裝必備軟件

編程語言

以下是區塊鏈開發常用語言的安裝步驟

JavaScript/Typescript:

Python:

去:

鏽:

碼頭工人:

Docker 有助於創建一致的開發環境。

  • Docker 的安裝步驟。

4.區塊鏈開發框架和工具

  • 常規設置:

常規設置涉及支持區塊鏈的各種工具和庫,與特定區塊鏈無關。有 Truffle 和 Hardhat 等工具可提供全面的開發環境。

  • 流行框架:

  1. Hyperledger Fabric:專爲大公司使用的區塊鏈系統。

  2. Tendermint:一種快速的區塊鏈工具,支持拜占庭容錯(BFT)方式達成一致。

容器化和虛擬化:

Docker 可幫助您在不同的計算機上保持相同的工作設置。您可以創建包含所有所需依賴項的 Docker 容器,這樣可以輕鬆設置和刪除工作區。

5. 建立本地區塊鏈網絡

  • 常規工具:

管理和運行本地區塊鏈時有用的一些常用工具如下:

Docker Compose:Docker Compose 用於定義和運行多容器 Docker 應用程序。它使用 docker-compose.yml 文件。以下是其安裝步驟:

Kubernetes:一個用於自動部署、擴展和管理容器化應用程序的開源系統。以下是 Kubernetes 的安裝步驟:

Yaml 文件:

部署:

  • 運行本地節點:

本地節點設置對於在受控環境中測試您的應用程序很有用。以下是設置步驟:

  • 使用虛擬機:

虛擬機可幫助您在不影響本地環境的情況下試驗應用程序。它還添加了額外的抽象層。

6. 智能合約開發

常用語言:

  • 智能合約一般用 Solidity 和 Rust 編寫:

  • Solidity:安裝 Solidity 的方法如下:

npm install -g solcsolc –版本

鏽:

rustup 目標添加 wasm32-unknown-unknown

編譯器和 Linter:

編譯器和代碼檢查器是編寫高質量智能合約的工具。編譯器可幫助您編譯代碼,以便進一步將其部署到區塊鏈上。

以下是編制合同的步驟:

1.堅固性:

solc –bin –abi –optimize -o build/ YourContract.sol

創建一個 .solhint.json 文件{ “extends”: “solhint:recommended”,  “rules”: {    “indent”: [“error”, 4],    “quotes”: [“error”, “double”]  }}

2.生鏽:

安裝 Clippy:rustup 組件添加 clippy 創建 Clipy.toml 文件[clippy]warnings_as_errors = true

編寫智能合約

在編寫智能合約時,你應該牢記以下準則和最佳實踐:

  • 確保你的代碼是模塊化且可重用的

  • 執行安全審計

  • 確保Gas效率,降低交易成本

  • 進行徹底的測試

  • 正確記錄代碼

  • 使用 SafeMath 庫

  • 始終檢查返回值和錯誤

  • 避免在合約中對值進行硬編碼

  • 遵循一致的編碼風格

  • 實施訪問控制機制

  • 定期更新依賴項

  • 使用事件進行日誌記錄

  • 使用標準庫。

  • 使用多重簽名錢包

  • 對你的合同制定一個長期的維護計劃。

7.測試和調試

測試框架:

  • 測試是任何開發的最終支柱,也是最強大的支柱。Mocha 和 Chai 對於測試 JavaScript 中的契約至關重要。Mocha 是一個測試框架,而 Chai 是一個斷言庫,它們共同幫助運行測試和編寫測試斷言。Waffle 是一個與 Hardhat 無縫集成的測試框架。它提供高級測試能力並具有全面的斷言。

調試工具:

  • 調試就是在代碼中查找錯誤並修復它們。有些工具可以幫你完成這一步。Remix、GDB 等工具可用於調試。

持續測試:

如今,在開發軟件時,始終進行測試非常重要。它可以確保您的代碼得到機器反覆檢查和驗證。當您使用有助於持續集成 (CI) 和持續部署 (CD) 的工具時,您可以建立一個系統,每當有人更改代碼時,該系統都會自行運行測試。這有助於發現問題並保持代碼良好。

8.部署工具

常規部署策略:

  • 以下是一些常規部署策略:

  1. 本地部署:使用 Ganache 和 Docker 等工具以可控的方式在本地進行部署。

  2. 測試網部署:這是爲了在沒有真實資產的真實環境中測試應用程序。

  3. 主網部署:這是部署到主網的關鍵步驟,真實資產和交易在此進行。此部署需要在部署前進行徹底的測試。

  4. 自動化部署:使用 CI/CD 管道進行部署,實現自動化和重複。

腳本和自動化:

以下是編寫自動化腳本的方法:

安全帽腳本:

使用雲服務:

使用雲服務部署區塊鏈節點和智能合約提供了便利性、可靠性和可擴展性。我們可以使用以下雲服務:

AWS:(亞馬遜網絡服務):

  • AWS 是亞馬遜管理的雲服務,可用於設置用於運行節點的 EC2 實例。我們可以使用 AWS lambda 部署智能合約以實現無服務器執行。

Azure

Azure 區塊鏈服務可幫助您管理區塊鏈網絡。您可以使用 Azure Functions 或 Azure DevOps 將區塊鏈付諸實踐並保持更新。

地理信息中心

Google Cloud 的 Kubernetes Engine (GKE) 或 Compute Engine 可讓您設置區塊鏈節點。Google Cloud Functions 和 Cloud Build 可讓您輕鬆設置區塊鏈。

9. 連接到外部網絡

1.配置:配置連接的步驟:

  • 網絡配置:根據您的要求設置網絡配置。這裏給出了以太坊示例:

Json 文件:{  “networks”:{    “mainnet”:{      “url”:“https://mainnet.infura.io/v3/YOUR-PROJECT-ID”,      “accounts”:[“0xYOUR_PRIVATE_KEY”]    }  }}

  • 環境變量:使用.env 文件和 dotenv 等庫來管理環境變量並安全地存儲安全信息和私鑰。

2.API和庫:

  • 使用API​​和庫與外部網絡交互可以簡化交互。以下是一些常用的API:

Ethers.js const { ethers } = require(“ethers”);const provider = new ethers.providers.InfuraProvider(“homestead”,“YOUR-PROJECT-ID”);

Polka.jsconst { ApiPromise,WsProvider } = require(‘@polkadot/api’);const provider = new WsProvider(‘wss://rpc.polkadot.io’);const api = await ApiPromise.create({provider });

以太坊的 Web3.js:const Web3 = require(‘web3’);const web3 = new Web3(‘https://mainnet.infura.io/v3/YOUR-PROJECT-ID’);

錢包集成:

  • 錢包集成允許用戶通過交易和交互與區塊鏈進行交互。以下是錢包集成的步驟:

元掩模:

const 提供者 = 新 ethers.providers.Web3Provider(window.ethereum);

錢包連接:

const WalletConnectProvider = require(“@walletconnect/web3-provider”);const provider = new WalletConnectProvider({ infuraId:“YOUR-INFURA-ID” });

10.持續集成和部署(CI/CD)

通用 CI/CD 工具:

  • Github 操作:GitHub Actions 允許您爲區塊鏈設置 CI/CD。

Travis 命令行界面:

Circle CLI:CircleCI 是另一種執行 CI/CD 的方法,可以很好地與區塊鏈項目配合使用。CircleCI 爲您提供了一些有趣的選項,使部署可以自行進行。

自動化測試和部署:

  • 編寫自動化測試和部署的工作流程可確保代碼的一致性並有助於快速迭代。

測試:npx hardhat 測試部署:npx hardhat deploy

11.安全工具

安全是區塊鏈世界的核心,因此確保最好的安全工具至關重要。一般安全實踐:

  • 定期進行代碼審查

  • 對公共和私人功能具有精確的訪問控制

  • 定期進行審計

靜態分析工具:

  • 靜態分析工具有助於識別代碼中的漏洞並進行修復。Mythril 和 Slither 就是一些常用的工具。

定期審計:

定期進行外部和內部審計,並解決合同實施前出現的問題。

12. 最佳實踐

文件夾結構:

  • 維護適當且乾淨的文件夾結構,以便有序訪問並形成項目整潔的環境。

環境變量

  • 使用 env 文件和 dotenv 庫

  • 使用祕密管理工具,例如 AWS 祕密管理器或 Azure Key Vault。

文檔:

代碼文檔與編寫代碼同等重要。

  • 維護適當的 README 文件,以便其他人可以理解你的項目

  • 在代碼中需要的地方添加註釋

  • 使用項目 wiki 或文檔 API。

13. 結論

我們可以得出結論,設置正確的環境比僅僅構建區塊鏈應用程序更重要。環境設置有一個清單,用於選擇正確的工具來配置本地網絡和部署智能合約。通過遵循本文中提到的步驟和策略,您可以創建高效、強大且安全的應用程序。不斷學習並調整以滿足您的需求將幫助您改善設置並隨之成長,跟上區塊鏈技術的新進步。祝您編碼愉快!!