iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
佛心分享-IT 人自學之術

區塊鏈技術應用系列 第 22

入門智能合約開發與本地測試

  • 分享至 

  • xImage
  •  
  1. 創建合約文件(使用 Remix)
    • 在左側文件管理器中新建一個文件, Crowdfunding.sol,再將智能合約代碼粘貼進去。
      2.編譯合約
    • 點擊左側工具欄的「Solidity Compiler」,點擊「Compile Crowdfunding.sol」。
      3.下載 MetaMask (瀏覽器中的錢包)
      https://ithelp.ithome.com.tw/upload/images/20241006/20169238Aqvgn1kvbl.png
      https://ithelp.ithome.com.tw/upload/images/20241006/20169238bgF0GwlKrB.png
      4.部署合約
    • 點擊「Deploy & Run Transactions」。
    • 將「Environment」設置為「Injected Provider」,用來連接到瀏覽器中的錢包( MetaMask)。
      https://ithelp.ithome.com.tw/upload/images/20241006/20169238dYR1SQ4ijG.png
      5.與合約交互
    • 部署完成後,合約將顯示在「Deployed Contracts」中。
    • 可以調用合約的函數,並在 MetaMask 中確認交易來進行交互。
      安裝 Truffle 和 Ganache
      1.安裝 Truffle(使用vs code)
    • Truffle 是一個智能合約開發框架,用於編寫、編譯、測試和部署智能合約。使用 npm 來安裝 Truffle。
      https://ithelp.ithome.com.tw/upload/images/20241006/20169238OmrLZdiBJL.png
      2.安裝 Ganache
  • Ganache 是一個本地的區塊鏈模擬器,允許在本地測試智能合約,而無需在真實的測試網絡上花費 Gas。
    https://ithelp.ithome.com.tw/upload/images/20241006/20169238x7OlICkph4.png
    3.初始化 Truffle 專案
    4.運行 Ganache
    https://ithelp.ithome.com.tw/upload/images/20241006/20169238lIcfOztY3d.png
    • 顯示了每個可用帳戶的私鑰。私鑰允許你控制對應帳戶中的資金。私鑰的顯示主要是為了讓你能夠輕鬆地將這些帳戶導入到其他工具(例如 MetaMask),以便進行交互測試。
    • Available Accounts,每個帳戶預設擁有 1000 ETH。這些帳戶模擬了區塊鏈上的帳戶,讓你可以用來進行智能合約的開發和測試。
    • 顯示了生成這些帳戶所使用的助記詞(Mnemonic),你可以使用這個助記詞將所有帳戶一起導入到其他錢包中 EX:Base HD Path: m/44'/60'/0'/0/{account_index},這是生成地址的路徑。

https://ithelp.ithome.com.tw/upload/images/20241006/20169238A5eSHkkeQJ.png
* Default Gas Price 20000000000 wei,這是每單位 Gas 的默認價格,單位是 wei。Gas 是執行智能合約和交易所需的費用,這裡的設置是測試交易的價格。
* Block Gas Limit 30000000wei,這是每個區塊可以使用的最大 Gas 數量,決定了一個區塊中可以包含的交易和操作量的大小。
* Call Gas Limit 50000000wei,這是單次智能合約呼叫可以使用的最大 Gas 數量。這個值限制了單次呼叫能進行的操作量,幫助防止無限迴圈等問題。
* Chain Hardfork: shanghai,這表示當前模擬區塊鏈使用的硬分叉版本是 "Shanghai"(上海),它決定了區塊鏈的規則和功能集。
* Id: 1337 這是區塊鏈的鏈 ID,常用於區分不同的區塊鏈網絡。ID 1337 通常用於本地測試網絡。


上一篇
Web3.js 的基本範例
下一篇
ABI
系列文
區塊鏈技術應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言