无码人妻丰满熟妇奶水区码,成年高潮网址,观看免费干B,欧美日韩深喉

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

今天咱們聊聊如何開發(fā)智能合約,非常入門的分享~

1. 如何開發(fā)智能合約

1.1. 基本流程 & 主流工具

1.1.1. 編寫合約代碼

  • Solidity仍然是一騎絕塵(EVM)
  • Vyper是不太活躍語言,python語法(EVM)
  • Rust不能應(yīng)用在EVM的區(qū)塊鏈。然而Rust可以部署到Solana、Terra等鏈上,或者在Polkadot構(gòu)建區(qū)塊鏈應(yīng)用。Rust是一種性能良好的通用語言,甚至在智能合約之外使用

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

1.1.2. 底層依賴

  • Openzeppelin
    • https://openzeppelin.com/
    • Openzeppelin鞏固了自己作為 “solidity標(biāo)準(zhǔn)庫 ”的地位
    • Openzeppelin是一套已經(jīng)寫好的智能合約,不需要重新發(fā)明輪子。使用他們已經(jīng)審計過的可擴(kuò)展智能合約,可以節(jié)省無數(shù)時間
  • Chainlink
    • https://chain.link/
    • Chainlink是預(yù)言機(jī)里的NO.1

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

  • 節(jié)點服務(wù)商
    • 封裝了底層鏈的各種API & 節(jié)點計算資源
    • Top服務(wù)商:Alchemy、QUIckNode(很全,Base鏈推薦)、Infura(當(dāng)前主導(dǎo)地位)、Blockdaemon(Base鏈推薦)、Blast(Base鏈推薦)

1.1.3. 編譯 & 測試 & 部署 框架

  • Hardhat
    • 目前最主要的智能合約開發(fā)框架
    • 基于javascript和solidity的開發(fā)框架
  • Foundry & DappTools
    • Dapptools是一個專注于命令行的工具,F(xiàn)oundry是用Rust編寫的Dapptools,是Dapptools的繼承者
    • Foundry2022年才誕生,發(fā)展速度很快,測試運行速度也很快,提升開發(fā)效率
  • Brownie & Apeworx
    • 這兩個都是基于Python的,同時支持solidity和vyper
    • Brownie已經(jīng)處于維護(hù)模式,Apeworx即將成為Brownie的繼承者
  • Remix
    • 最適合初學(xué)者的平臺,Web IDE
    • 適合快速嘗試想法、分享

1.1.4. 安全分析/審計

代碼發(fā)布到區(qū)塊鏈上時,審計是至關(guān)重要的,因為任何人都可以查看,一旦它發(fā)布了,就有可能被利用!因此,有一些工具可以幫助我們確保在代碼中減少錯誤,這是非常重要的。這個領(lǐng)域已經(jīng)出現(xiàn)了一些工具,使我們的智能合約更加安全。

  • Eth Security Toolbox
  • Echidna
  • Slither
  • Mythril
  • Code4rena
  • Immunefi

1.1.5. 監(jiān)控運維

  • Openzeppelin的Defender
  • Tenderly

1.2. 基于Remix的Demo

https://remix.ethereum.org

1.2.1. 編寫合約代碼(Solidity)

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

1.2.2. 編譯合約代碼

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

1.2.3. 部署合約

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

如果“環(huán)境”選擇了"Injected Network",會自動連接錢包,錢包切換網(wǎng)絡(luò),則可以將合約部署到該網(wǎng)絡(luò)上!部署時候會觸發(fā)交易,產(chǎn)生Gas費

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

1.2.4. 執(zhí)行合約(合約交互)

這里是UI的交互,主流的就是代碼方式了

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

1.2.5. 在瀏覽器中查看交易明細(xì)

https://goerli.basescan.org/tx/0x26…9db22

番外篇-如何開發(fā)智能合約入門(智能合約怎么開發(fā))

1.3. 其他Demo

  • Hardhat (純代碼交互了,不再有UI界面了)
    • https://hardhat.org/tutorial/boilerplate-project

2. 進(jìn)一步了解開發(fā)合約

2.1. 合約本身代碼開發(fā)(Solidity)

  • Solidity官方文檔
    • https://docs.soliditylang.org/zh/latest/index.html
  • 比較有趣的學(xué)習(xí)課程
    • https://cryptozombies.io/ (Solidity的部分比較有意思,其他的一般)

2.2. 合約交互開發(fā)

2.2.1. 智能合約交互的代碼編寫

  • 以太坊節(jié)點只能識別一種叫做 JSON-RPC 的語言。這種語言直接讀起來并不好懂。當(dāng)你你想調(diào)用一個合約的方法的時候,需要發(fā)送的查詢語句將會是這樣的:
  • 幸運的是 Web3.js 把這些令人討厭的查詢語句都隱藏起來了, 所以你只需要與方便易懂的 JavaScript 界面進(jìn)行交互即可。你不需要構(gòu)建上面的查詢語句,在你的代碼中調(diào)用一個函數(shù)看起來將是這樣:

2.2.2. 合約交互背后是誰提供服務(wù)(節(jié)點服務(wù)商,也叫Provider)

  • 在 Web3.js 里設(shè)置 Web3 的 Provider(提供者) 告訴我們的代碼應(yīng)該和 哪個節(jié)點 交互來處理我們的讀寫。這就好像在傳統(tǒng)的 Web 應(yīng)用程序中為你的 API 調(diào)用設(shè)置遠(yuǎn)程 Web 服務(wù)器的網(wǎng)址。
  • 你可以運行你自己的以太坊節(jié)點來作為 Provider。 不過,有一個第三方的服務(wù),可以讓你的生活變得輕松點,讓你不必為了給你的用戶提供DApp而維護(hù)一個以太坊節(jié)點— Infura.(當(dāng)然還有其他的)

2.2.3. 合約對外交互的關(guān)鍵

  • Web3.js 需要兩個東西來和合約對話: 它的 合約地址 和它的 合約ABI
    • 合約地址:合約部署后就會生成一個合約地址
    • 合約ABI:ABI 意為應(yīng)用二進(jìn)制接口(Application Binary Interface)。 基本上,它是以 JSON 格式表示合約的方法,告訴 Web3.js 如何以合同理解的方式格式化函數(shù)調(diào)用。
  • 實例化合約
    • 一旦有了合約的地址和 ABI,你可以像這樣來實例化 Web3.js。

{ "jsonrpc": "2.0", "method": "eth_sendTransaction", "params": [{ "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155", "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567", "gas": "0x76c0", "gasPrice": "0x9184e72a000", "value": "0x9184e72a", "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675" }], "id": 1}

CryptoZombies.methods.createRandomZombie("Vitalik Nakamoto ") .send({ from: "0xb60e8dd61c5d32be8058bb8eb970870f07233155", gas: "3000000" })

// 實例化 myContractvar myContract = new web3js.eth.Contract(myABI, myContractAddress);

版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。

(0)
上一篇 2024年7月8日 下午7:16
下一篇 2024年7月8日 下午7:27

相關(guān)推薦

国产亚洲中文字幕99精品视频| √…A在线天堂一区| 草熟女| 亚洲国产草草影院| 久久中文精品视频| 亚洲熟妇无码久久久| 免费黄色片网站久久| 欧洲成人免费视频在线观看| 成年人手机免费av| 久久精品中文字幕女同牛牛| 91干b| 欧美影院5区| 久久久影院三级片| www.老熟妇.com| 国产日韩欧美在线第一页| 免费欧美砖码二三区| 二区三区三区在线| 天堂a√在线久久| 国产日韩无码欧| 国产精品99久久在线| 妓女妓女AV一区二区三区| 日本不要花钱免费看黄色 | 成人小视频在现一区二区欧美| 婷婷色综合久久网| 西西4444WWW无视频| 美女视频黄色成人在线| 中文字幕√日本| 国产丁香在线精品视频| 58成人小视频| 贵产一区无码| 国产后入内射视频| www.xxx二区| 国产 欧美在线观看| 久久超碰国产最新章节| www.国产电影 av| www.3348成人网| 在线不卡免费高清Av三区| 一二区欧美久久综合欧美| 91亚洲欧美日韩三级成人| 午月丁香婷婷深深爱| 国产精品美女插逼|