在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

NFT盲盒商城系統dapp開發合約編程

搭建punk2558 ? 來源:搭建punk2558 ? 作者:搭建punk2558 ? 2022-08-26 10:38 ? 次閱讀

以太坊私鏈,也就是搭建屬于自己的區塊鏈,最常見的方式就是通過Geth(Go-Ethereum)搭建了,他可以算是比較真實的區塊鏈平臺了,唯一區別就是不需要挖礦,也就是不需要共識,Geth搭建私鏈時,我們需要配置創世塊、bootnode、啟動節點、挖礦等操作,搭建私鏈教程可點擊此處。

測試環境中的公鏈,一些組織為了讓開發者更方便的開發DApp,搭建了自己的以太坊平臺并對外開放,這些測試平臺的以太幣可以免費獲取,但每個賬戶獲取的數量有限,不過也足以我們用來測試了,在下文的實踐中用的也是這種方案。而測試平臺有哪些呢,在我們安裝了MetaMask插件以后,可以在里面找到。

以太坊,最后的環境肯定是以太坊了,不過我們在上線前一定要做好測試,因為區塊鏈具有不可篡改性,我們的DApp在上線后出bug可是無法修復的,只能通過發布一個新的DApp,然后通知你的用戶以后使用新地址,所以我們在設計合約時應當設置有無效標志位,盡早地告知調用者該合約已經廢棄。

編程語言

編寫一個DApp可以說是包括兩部分,合約部分和業務邏輯部分。

智能合約

Solidity,類JavaScript,這是以太坊推薦的語言,也是最流行的智能合約語言,另外測試、調試Solidity有一個非常好的在線IDE–Remix,由以太坊團隊推出的。由于考慮在線網絡比較慢,可以使用本地IDE。

業務邏輯

業務邏輯部分即提供客戶端與智能合約交互的接口,相當于目前BS結構中的后臺邏輯,因此業務邏輯部分可部署在中心服務器中,而且在以太坊中每個智能合約函數的每一行代碼都有固定的gas費用以及延時的,一些簡單的邏輯應該交由業務邏輯處理,編寫業務邏輯目前提供有以下幾種語言:

JavaScript,主要是基于Web3.js這個庫調用智能合約,本文例子也是使用JavaScript編寫的。

Go,上述提到的以太坊私鏈搭建工具geth就是使用Go編寫的。

Python

Java

Ruby

Haskell

Rust

DApp原理

一個DApp被調用之前需要先部署到以太坊上,不管是私鏈,公鏈還是聯盟鏈。故本章節分為兩部分,DApp部署原理和調用原理。

部署

一個DApp由多個智能合約組成,部署一個DApp也就是同時部署多個智能合約,這里講述一下部署一個智能合約的流程,如下圖所示。

poYBAGMIMgiAUsAnAACAoMXM-Yc576.png

將編寫好的Solidity智能合約通過RPC調用以太坊錢包或Web3.js等工具。

Web3.js發送合約源碼到部署在以太坊節點的Solc編譯器。

編譯器返回合約字節碼。

發送合約字節碼和初始化參數到以太坊節點。

以太坊節點上EVM驗證完成后,部署到全網的所有節點,完成后返回合約地址和應用二進制接口(ABI)。

這里推薦使用Remix進行部署,因為Remix不僅可以連接瀏覽器內嵌的以太坊VM,還可以和MetaMask聯動,使用MetaMask當前所連的以太坊網絡,而且Remix還可以調試部署好的合約,十分方便。在Remix上部署十分簡單,選擇部署的以太坊網絡和填好合約初始化參數后,點擊create按鈕即可。如果我們選的是MetaMask當前的以太坊網絡,則會跳轉交易界面,因為部署合約本質上也是一筆交易,我們需要付交易手續費。

部署后的合約其實外部還不能調用,還需要我們上傳源代碼進行驗證,不然別人不可能在不清楚源碼情況下向合約發起交易,向你轉賬。

調用

部署好的合約我們就可以調用了,根據調用方式的不同,本文分為前端調用和后端調用。

前端調用相對來說簡單一點,因為有MetaMask這個強大的插件,我們不必操心以太坊數據源,直接調用web3.currentProvider即可,下圖展示了前端調用合約的一般流程,由于前端連接的Web3 Provider是與特定的以太坊節點相連,前端不需要管方法的簽名,只需無腦調用合約中的方法即可。

至于后臺調用就麻煩一點了,由于后臺沒有MetaMask這么方便的工具可調用,因此要是調用公鏈上的智能合約,只能使用特定賬戶的私鑰簽名方法后,并且以該賬戶的身份調用合約

審核編輯 黃昊宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 編程
    +關注

    關注

    88

    文章

    3637

    瀏覽量

    93989
  • 區塊鏈
    +關注

    關注

    111

    文章

    15563

    瀏覽量

    106711
收藏 人收藏

    評論

    相關推薦

    孔技術對PCB厚度的影響

    孔技術對PCB厚度影響的多方面分析 從空間利用角度 孔技術的應用有助于在一定程度上減小PCB的厚度需求。因為孔不需要穿透整個板層,在進行層間連接時,相比傳統通孔,可以在有限的空間內實現更多
    的頭像 發表于 01-08 17:30 ?161次閱讀

    華為云 Flexus 云服務器 X 實例部署——抽獎商城系統以及編譯發布小程序

    抽獎商城系統使用 thinkphp6.0 + uniapp 開發,做到了全移動端兼容。一個系統
    的頭像 發表于 12-31 10:36 ?269次閱讀
    華為云 Flexus 云服務器 X 實例部署——<b class='flag-5'>盲</b><b class='flag-5'>盒</b>抽獎<b class='flag-5'>商城</b><b class='flag-5'>系統</b>以及編譯發布小程序

    HDI埋孔工藝及制程能力你了解多少?

    HDI技術通過 增加埋孔來實現高密度布局 ,適用于高端服務器、智能手機、多功能POS機和安防攝像機等領域。通訊和計算機行業對HDI線路板需求較高,推動了科技的進步。目前,HDI板在國內市場的前景
    發表于 12-18 17:13

    PCB孔加工控制成本的方法

    PCB孔加工控制成本的方法 PCB孔加工的成本控制是一個多方面的過程,涉及設計、加工、測試等多個環節。以下是一些有效的方法來幫助控制孔加工的成本: 1. 設計成本控制 簡化設計:盡量簡化
    的頭像 發表于 11-23 16:34 ?293次閱讀
    PCB<b class='flag-5'>盲</b>孔加工控制成本的方法

    dap協議在DApp開發中的作用

    隨著區塊鏈技術的不斷發展,去中心化應用(DApp)逐漸成為技術領域的熱門話題。DApp以其去中心化、透明性和安全性的特點,為用戶和開發者提供了新的應用模式。在這一背景下,DAP協議應運而生,為
    的頭像 發表于 11-22 15:43 ?306次閱讀

    機遠程監控運維管理系統方案

    ,數之能了一種封機遠程監控運維管理系統方案。 痛點分析 1、實時監控困難:設備分散在不同地點,難以實時監控運行狀態,導致故障發現不及時。 2、維護成本高:設備出現故障時,需要技術人員現場排查,增加了人力成本和
    的頭像 發表于 11-15 13:54 ?157次閱讀

    HDI板孔制作常見缺陷及解決

    HDI板是一種高密度互連印刷電路板,其特點是線路密度高、孔徑小、層間連接復雜。在HDI板的制作過程中,孔的制作是一個關鍵步驟,同時也是常見的缺陷發生環節。以下是根據搜索結果總結的HDI板孔制作的常見缺陷及其解決方法。
    的頭像 發表于 11-02 10:33 ?355次閱讀

    MCU編程語言和開發環境介紹

    微控制器單元(Microcontroller Unit,簡稱MCU)是嵌入式系統的核心,廣泛應用于各種電子產品中。隨著技術的發展,MCU編程語言和開發環境也在不斷進步,以適應不同的應用需求。 1.
    的頭像 發表于 11-01 11:51 ?1084次閱讀

    如何判斷/埋孔HDI板有多少“階”?

    /埋孔HDI板概述/埋孔HDI(HighDensityInterconnect,高密度互連)板是一種高級的印刷電路板技術,它通過使用微小的孔和埋孔來提高電路板上的布線密度。這種技術特別適用于
    的頭像 發表于 11-01 08:03 ?407次閱讀
    如何判斷<b class='flag-5'>盲</b>/埋孔HDI板有多少“階”?

    如何判斷/埋孔HDI板有多少“階”?

    /埋孔HDI板概述 /埋孔HDI (High Density Interconnect,高密度互連)板是一種高級的印刷電路板技術,它通過使用微小的孔和埋孔來 提高電路板上的布線密度
    發表于 10-23 18:38

    孔在HDI線路板中的作用

    孔在HDI線路板中起到增加連接密度、改善電氣性能、增強機械穩定性和提升制造效率的作用。1、增加連接密度優化空間利用:孔穿透PCB的部分層,能在有限空間內有效連接外層和相鄰內層,支持高密度布局
    的頭像 發表于 10-23 17:43 ?548次閱讀
    <b class='flag-5'>盲</b>孔在HDI線路板中的作用

    孔PCB線路板加工流程

    孔PCB線路板的加工流程是一個復雜的過程,涉及到多個步驟和技術。以下是埋孔PCB線路板加工流程的詳細解釋。
    的頭像 發表于 09-07 09:42 ?913次閱讀

    pcb設計中孔和過孔的區別?

    在PCB設計中,孔和過孔是兩種常見的孔類型,它們在電路板的制造過程中起著重要的作用。 定義 孔(Blind Vias):孔是一種連接外層和內層但不穿透整個PCB板的孔。它的一端連接
    的頭像 發表于 09-02 14:47 ?1215次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行編程,處于操作
    的頭像 發表于 08-30 12:16 ?929次閱讀
    Linux 驅動<b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    fpga開發需要掌握哪些編程語言

    FPGA(現場可編程門陣列)開發涉及多種編程語言和技術.
    的頭像 發表于 03-27 14:34 ?1629次閱讀
    主站蜘蛛池模板: 欧美一级视频免费观看 | 国产黄色小视频网站 | 黄色网页在线播放 | 天天爱夜夜做 | 欧美福利网 | 午夜精品久久久久久91 | 欧美午夜在线视频 | 插综合网| 色视频在线免费观看 | 高清国产亚洲va精品 | 亚洲欲色| 老师下面很湿很爽很紧 | 久久精品人人爽人人爽快 | 日日干视频 | 1024手机看片日韩 | 久久久久久毛片免费播放 | 男女性生动态免费视频 | 一级特黄aa毛片免费观看 | 免费黄色欧美 | 精品国产一区二区三区国产馆 | 亚洲亚洲人成网站在线观看 | 色多多免费在线观看 | 亚洲午夜久久影院 | 欧美精品专区55页 | 久久99免费| 午夜网站视频 | 在线天堂中文官网 | 狠狠干狠狠操视频 | 精品久久久久久国产免费了 | 国产精品一久久香蕉产线看 | 欧美日韩一区二区不卡 | 在线黄| 日本xxxx色视频在线观看 | 丝袜美女被c | 欧美一级在线观看视频 | 伊人久久大香线蕉观看 | 人人做天天爱夜夜爽中字 | 成年大片免费播放视频人 | 久操综合| 亚洲国产欧美精品一区二区三区 | 欧美拍拍 |