chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內(nèi)不再提示

NFT盲盒商城系統(tǒng)dapp開發(fā)合約編程

搭建punk2558 ? 來源:搭建punk2558 ? 作者:搭建punk2558 ? 2022-08-26 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

編程語言

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

智能合約

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

業(yè)務邏輯

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

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

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

Python

Java

Ruby

Haskell

Rust

DApp原理

一個DApp被調(diào)用之前需要先部署到以太坊上,不管是私鏈,公鏈還是聯(lián)盟鏈。故本章節(jié)分為兩部分,DApp部署原理和調(diào)用原理。

部署

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

poYBAGMIMgiAUsAnAACAoMXM-Yc576.png

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

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

編譯器返回合約字節(jié)碼。

發(fā)送合約字節(jié)碼和初始化參數(shù)到以太坊節(jié)點。

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

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

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

調(diào)用

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

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

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

審核編輯 黃昊宇

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

    關(guān)注

    90

    文章

    3707

    瀏覽量

    96709
  • 區(qū)塊鏈
    +關(guān)注

    關(guān)注

    112

    文章

    15571

    瀏覽量

    110447
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    埋孔線路板加工工藝介紹

    埋孔線路板加工工藝是實現(xiàn)高密度互聯(lián)(HDI)板的核心技術(shù),其制造流程復雜且精度要求極高。
    的頭像 發(fā)表于 11-08 10:44 ?1087次閱讀

    MCU單片機TWS耳機充電系統(tǒng)控制方案

    TWS(True Wireless Stereo,真無線立體聲)耳機已成為主流音頻設備,其充電系統(tǒng)設計對整體使用體驗至關(guān)重要。由于耳機內(nèi)部空間有限,無法容納大容量電池及充電元件,因此需要通過專用
    的頭像 發(fā)表于 11-05 09:22 ?171次閱讀

    物聯(lián)網(wǎng)平臺應用環(huán)境監(jiān)控:低代碼零編程簡化開發(fā),組態(tài)應用

    傳統(tǒng)環(huán)境監(jiān)控系統(tǒng)開發(fā)常陷入兩難困境,企業(yè)開發(fā)周期長、開發(fā)維護成本貴,基層運維人員不懂技術(shù),遇到參數(shù)調(diào)整只能依賴IT團隊。而物聯(lián)網(wǎng)平臺驅(qū)動的環(huán)境監(jiān)控系統(tǒng),以低代碼零
    的頭像 發(fā)表于 08-29 15:33 ?589次閱讀

    多層PCB孔與埋孔工藝詳解

    多層PCB孔與埋孔工藝詳解 一、基本定義與區(qū)別 孔(Blind Via)? 僅連接PCB表層(TOP/BOTTOM)與相鄰內(nèi)層,不貫穿整個板子,例如8層板中連接L1-L3層?。 通過激光鉆孔實現(xiàn)
    的頭像 發(fā)表于 08-29 11:30 ?972次閱讀

    音樂芯片方案——N9305音樂芯片

    音樂芯片方案開發(fā)音樂盒,作為一種融合藝術(shù)與機械智慧的精巧物件,散發(fā)著獨特魅力。它以靈動的音符為載體,承載著人們的情感、回憶與祝福。從孩童手中開啟夢幻世界的木質(zhì)八音,到戀人間傳遞愛意的精致音樂
    的頭像 發(fā)表于 06-05 15:29 ?605次閱讀
    音樂<b class='flag-5'>盒</b>芯片方案——N9305音樂芯片

    如果 PD 合約不匹配,BCR 是否仍會打開 SINK_FET_EN POWER_DRILL2GO路徑?

    BCR 具有 SINK_FET_EN 和 SAFE_PWR_EN 引腳來控制POWER_DRILL2GO消耗路徑。 如果 PD 合約不匹配,BCR 是否仍會打開 SINK_FET_EN POWER_DRILL2GO路徑?或者只打開 SAFE_PWR_EN POWER_DRILL2GO路徑?
    發(fā)表于 05-23 08:01

    索尼FCB-EV9520L機芯:商城智能監(jiān)控系統(tǒng)的技術(shù)革新者

    在零售行業(yè)數(shù)字化轉(zhuǎn)型的浪潮中,商城監(jiān)控系統(tǒng)正從傳統(tǒng)的“事后追溯”向“實時預警”升級。索尼FCB-EV9520L一體化攝像機模組憑借其卓越的低延時傳輸、高精度光學變焦及智能圖像處理能力,成為新一代商城
    的頭像 發(fā)表于 05-07 17:48 ?505次閱讀

    20倍變焦+智能編碼:FCB-ER8530破局商城監(jiān)控「全域無

    在日均客流量超5萬人次的大型商業(yè)綜合體中,傳統(tǒng)監(jiān)控系統(tǒng)常陷入"看得見但看不清"的困局——收銀臺前顧客手勢遮擋密碼輸入、停車場立柱后車輛剮蹭逃逸、中庭活動區(qū)人群踩踏風險預警滯后……索尼
    的頭像 發(fā)表于 04-28 15:59 ?632次閱讀

    探秘叁仟智設備:智慧城市的智能樞紐

    科技有限公司旗下的重要產(chǎn)品。這家公司作為中國智慧路燈桿行業(yè)發(fā)展引領者,是一家集科研開發(fā)、生產(chǎn)經(jīng)營、技術(shù)服務、系統(tǒng)集成于一體的高新技術(shù)企業(yè)。叁仟智設備是其智慧路燈桿軟硬件系統(tǒng)平臺的重要
    的頭像 發(fā)表于 04-27 16:20 ?445次閱讀

    電源的應用場景

    電源的應用場景非常廣泛,主要包括以下幾個方面: ?特定設備驅(qū)動?: 電源被用于驅(qū)動特定設備,如普克爾等。這種電源通常具有特定的設計,如推拉鎖緊插座、監(jiān)控接口等,以提高安全性和便
    的頭像 發(fā)表于 03-07 10:24 ?940次閱讀

    電源輸出信號類型

    S7-1200等PLC(可編程邏輯控制器)的電源,通常提供直流電壓輸出,如24V DC,用于為CPU、I/O模塊等內(nèi)部組件供電?1。 ? 交流電壓(AC) ?:雖然不如直流電壓常見,但一些特殊應用場景下,電源也會提供交流電壓
    的頭像 發(fā)表于 03-07 10:20 ?992次閱讀

    孔技術(shù)對PCB厚度的影響

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

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

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

    影響孔PCB打樣價格的四大因素:從材料到工藝全面解析

    一站式PCBA智造廠家今天為大家講講影響孔pcb打樣價格的因素有哪些?影響孔PCB打樣價格的因素。在現(xiàn)代電子設備日益小型化和高性能化的趨勢下,多層PCB印刷電路板的設計和制造技術(shù)不斷進步。其中
    的頭像 發(fā)表于 12-23 09:52 ?916次閱讀

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

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