中文字幕 日本 在线 高清,久久精品国产99精品国,超碰人人香蕉,一区二区三区无码高清视频

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

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

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

1.1. 基本流程 & 主流工具

1.1.1. 編寫合約代碼

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

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

1.1.2. 底層依賴

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

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

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

1.1.3. 編譯 & 測(cè)試 & 部署 框架

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

1.1.4. 安全分析/審計(jì)

代碼發(fā)布到區(qū)塊鏈上時(shí),審計(jì)是至關(guān)重要的,因?yàn)槿魏稳硕伎梢圆榭矗坏┧l(fā)布了,就有可能被利用!因此,有一些工具可以幫助我們確保在代碼中減少錯(cuò)誤,這是非常重要的。這個(gè)領(lǐng)域已經(jīng)出現(xiàn)了一些工具,使我們的智能合約更加安全。

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

1.1.5. 監(jiān)控運(yù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",會(huì)自動(dòng)連接錢包,錢包切換網(wǎng)絡(luò),則可以將合約部署到該網(wǎng)絡(luò)上!部署時(shí)候會(huì)觸發(fā)交易,產(chǎn)生Gas費(fèi)

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

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

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

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

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

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

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

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

相關(guān)推薦

  • 廣元物業(yè)項(xiàng)目管理系統(tǒng)

    廣元物業(yè)項(xiàng)目管理系統(tǒng) 隨著城市化進(jìn)程的加速和居民生活水平的提高,物業(yè)管理行業(yè)也逐漸成為一項(xiàng)受到廣泛關(guān)注的服務(wù)領(lǐng)域。在物業(yè)管理行業(yè),項(xiàng)目管理系統(tǒng)是一種重要的工具,可以幫助物業(yè)管理企業(yè)…

    科研百科 2024年12月17日
    2
  • 2022 信息系統(tǒng)項(xiàng)目管理師

    2022 信息系統(tǒng)項(xiàng)目管理師 隨著信息技術(shù)的快速發(fā)展,信息系統(tǒng)項(xiàng)目管理師這一職業(yè)也在不斷演變和發(fā)展。作為信息技術(shù)領(lǐng)域的重要職業(yè)之一,信息系統(tǒng)項(xiàng)目管理師負(fù)責(zé)規(guī)劃和實(shí)施信息系統(tǒng)項(xiàng)目,確…

    科研百科 2024年8月15日
    3
  • 藍(lán)云項(xiàng)目管理

    藍(lán)云項(xiàng)目管理:讓項(xiàng)目成功變得簡(jiǎn)單 隨著數(shù)字化時(shí)代的到來(lái),項(xiàng)目管理逐漸成為企業(yè)運(yùn)營(yíng)中不可或缺的一部分。傳統(tǒng)的項(xiàng)目管理方法已經(jīng)無(wú)法滿足現(xiàn)代商業(yè)環(huán)境下的客戶需求。而藍(lán)云項(xiàng)目管理則是一種基…

    科研百科 2024年7月24日
    2
  • 跑腿外賣小程序開發(fā)可以為商家提供什么?(跑腿外賣小程序開發(fā)可以為商家提供什么服務(wù))

    隨著外賣行業(yè)的快速發(fā)展,整個(gè)跑腿外賣配送的鏈條也在不斷完善,外賣小程序平臺(tái)順應(yīng)而生,而跑腿外賣平臺(tái)開發(fā)的配送方式多種多樣,可以選擇商家自主配送,也可以由專門的跑腿外賣配送系統(tǒng)進(jìn)行配…

    科研百科 2023年4月6日
    272
  • 合同管理重要性與影響(合同管理對(duì)公司的重要性)

    合同管理對(duì)公司的重要性 合同管理是公司管理中至關(guān)重要的一環(huán),它可以確保公司的業(yè)務(wù)運(yùn)營(yíng)合法合規(guī),減少法律風(fēng)險(xiǎn),提高公司的競(jìng)爭(zhēng)力和聲譽(yù)。本文將探討合同管理對(duì)公司的重要性,以及如何有效地…

    科研百科 2024年6月5日
    31
  • 科研項(xiàng)目管理系統(tǒng) 報(bào)價(jià)

    科研項(xiàng)目管理系統(tǒng) 報(bào)價(jià) 科研項(xiàng)目管理系統(tǒng)是一種高效、便捷、可靠的工具,可以幫助研究人員管理科研項(xiàng)目的各個(gè)方面,包括預(yù)算、進(jìn)度、文檔、報(bào)告等。下面我們對(duì)科研項(xiàng)目管理系統(tǒng)的報(bào)價(jià)進(jìn)行詳細(xì)…

    科研百科 2024年12月25日
    7
  • 房地產(chǎn)項(xiàng)目管理計(jì)劃

    房地產(chǎn)項(xiàng)目管理計(jì)劃 隨著城市化的加速,房地產(chǎn)市場(chǎng)的需求日益增長(zhǎng),房地產(chǎn)項(xiàng)目管理也成為了一個(gè)熱門的領(lǐng)域。一個(gè)有效的房地產(chǎn)項(xiàng)目管理計(jì)劃可以幫助項(xiàng)目團(tuán)隊(duì)更好地管理項(xiàng)目,提高項(xiàng)目的效率和質(zhì)…

    科研百科 2024年8月20日
    3
  • 天水出臺(tái)20條“硬核”措施 提升城市基層黨建引領(lǐng)基層治理水平

    麥積區(qū)婦聯(lián)傳達(dá)學(xué)習(xí)市、區(qū)城市基層黨建工作會(huì)議精神。(資料圖) 今年以來(lái),天水市以“三抓三促”行動(dòng)為抓手,圍繞破解制約城市基層治理效能提升的突出問(wèn)題,研究制定了天水市城市基層黨建引領(lǐng)…

    科研百科 2023年10月14日
    148
  • typora flowchart怎么畫

    什么是typora flowchart? typora flowchart是一種用于展示工作流程和流程運(yùn)動(dòng)的圖形化工具。它通常用于幫助團(tuán)隊(duì)或組織更好地理解和規(guī)劃工作流程,并確保任務(wù)…

    科研百科 2024年10月14日
    2
  • 工程造價(jià)機(jī)構(gòu)項(xiàng)目管理

    工程造價(jià)機(jī)構(gòu)項(xiàng)目管理 隨著經(jīng)濟(jì)的發(fā)展和建筑行業(yè)的繁榮,造價(jià)機(jī)構(gòu)在建筑項(xiàng)目中扮演著越來(lái)越重要的角色。作為一個(gè)造價(jià)機(jī)構(gòu),項(xiàng)目管理是確保項(xiàng)目成功的關(guān)鍵因素之一。本文將探討工程造價(jià)機(jī)構(gòu)項(xiàng)目…

    科研百科 2025年1月8日
    2