91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

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

編程語言

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

智能合約

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

業(yè)務(wù)邏輯

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

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

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

Python

Java

Ruby

Haskell

Rust

DApp原理

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

部署

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

poYBAGMIMgiAUsAnAACAoMXM-Yc576.png

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

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

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

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

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

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

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

調(diào)用

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

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

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

審核編輯 黃昊宇

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

    關(guān)注

    90

    文章

    3716

    瀏覽量

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

    關(guān)注

    112

    文章

    15577

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Bamtone班通:孔顯微鏡有哪些行業(yè)應(yīng)用?能解決什么問題?

    孔顯微鏡主要用于對(duì)各種材料和器件中的“孔/埋孔”進(jìn)行放大觀察、測(cè)量和缺陷分析,典型場(chǎng)景集中在PCB、電路封裝、半導(dǎo)體和精密機(jī)械等行業(yè)。作為國內(nèi)領(lǐng)先的PCB測(cè)量?jī)x器、智能檢測(cè)設(shè)備等專業(yè)解決方案
    的頭像 發(fā)表于 01-05 17:25 ?615次閱讀
    Bamtone班通:<b class='flag-5'>盲</b>孔顯微鏡有哪些行業(yè)應(yīng)用?能解決什么問題?

    如何選擇適合的埋孔技術(shù)?

    選擇埋孔技術(shù)需綜合考慮以下因素: 1. 技術(shù)類型與適用場(chǎng)景 一階埋孔?:適合8層以下PCB,如消費(fèi)電子主板,成本較低但僅支持單層連接?。 二階埋孔?:用于10層以上PCB(如服務(wù)器、高端顯卡
    的頭像 發(fā)表于 12-04 11:19 ?459次閱讀
    如何選擇適合的<b class='flag-5'>盲</b>埋孔技術(shù)?

    別再讓光纜故障“開”!廣州郵科這套系統(tǒng),讓運(yùn)維從玄學(xué)變科學(xué)

    網(wǎng)絡(luò)就像城市的“數(shù)字神經(jīng)”,但傳統(tǒng)的運(yùn)維方式卻像是在“開”——故障何時(shí)發(fā)生、發(fā)生在哪段、什么原因,全靠經(jīng)驗(yàn)和運(yùn)氣。 今天,我要認(rèn)真安利 廣州郵科的 光纜監(jiān)測(cè)系統(tǒng) 。用了它,我們運(yùn)維團(tuán)隊(duì)終于從“救火隊(duì)員”變成了“
    的頭像 發(fā)表于 12-02 10:04 ?346次閱讀
    別再讓光纜故障“開<b class='flag-5'>盲</b><b class='flag-5'>盒</b>”!廣州郵科這套<b class='flag-5'>系統(tǒng)</b>,讓運(yùn)維從玄學(xué)變科學(xué)

    埋孔線路板加工工藝介紹

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

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

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

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

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

    多層PCB孔與埋孔工藝詳解

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

    天地蓋制機(jī)PLC數(shù)據(jù)采集解決方案

    動(dòng)作一次性完成的特點(diǎn)。 隨著工業(yè)4.0與智能制造的推進(jìn),企業(yè)對(duì)設(shè)備管理、生產(chǎn)效率、質(zhì)量控制的需求日益提升。然而,傳統(tǒng)制機(jī)依賴人工巡檢和經(jīng)驗(yàn)維護(hù),存在以下痛點(diǎn): 數(shù)據(jù)孤島:設(shè)備PLC(可編程邏輯控制器)數(shù)據(jù)無法實(shí)時(shí)采
    的頭像 發(fā)表于 06-13 16:41 ?731次閱讀

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

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

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

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

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

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

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

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

    探秘叁仟智設(shè)備:智慧城市的智能樞紐

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

    電源的應(yīng)用場(chǎng)景

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

    電源輸出信號(hào)類型

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