日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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 ? 來(lái)源:搭建punk2558 ? 作者:搭建punk2558 ? 2022-08-26 10:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

以太坊私鏈,也就是搭建屬于自己的區(qū)塊鏈,最常見的方式就是通過(guò)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ù)量有限,不過(guò)也足以我們用來(lái)測(cè)試了,在下文的實(shí)踐中用的也是這種方案。而測(cè)試平臺(tái)有哪些呢,在我們安裝了MetaMask插件以后,可以在里面找到。

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

編程語(yǔ)言

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

智能合約

Solidity,類JavaScript,這是以太坊推薦的語(yǔ)言,也是最流行的智能合約語(yǔ)言,另外測(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ù)邏輯目前提供有以下幾種語(yǔ)言:

JavaScript,主要是基于Web3.js這個(gè)庫(kù)調(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智能合約通過(guò)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ì)來(lái)說(shuō)簡(jiǎn)單一點(diǎn),因?yàn)橛蠱etaMask這個(gè)強(qiáng)大的插件,我們不必操心以太坊數(shù)據(jù)源,直接調(diào)用web3.currentProvider即可,下圖展示了前端調(diào)用合約的一般流程,由于前端連接的Web3 Provider是與特定的以太坊節(jié)點(diǎn)相連,前端不需要管方法的簽名,只需無(wú)腦調(diào)用合約中的方法即可。

至于后臺(tái)調(diào)用就麻煩一點(diǎn)了,由于后臺(tái)沒(mé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ī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 編程
    +關(guān)注

    關(guān)注

    90

    文章

    3724

    瀏覽量

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

    關(guān)注

    112

    文章

    15578

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    如何通過(guò)精準(zhǔn)孔檢測(cè)降低PCB報(bào)廢率?

    隨著PCB行業(yè)向高密度、高性能快速演進(jìn),孔質(zhì)量已成為影響產(chǎn)品合格率的關(guān)鍵。一個(gè)微小的孔壁缺陷、鍍層不均或殘留物問(wèn)題,都可能導(dǎo)致整批產(chǎn)品報(bào)廢,造成巨大的材料與時(shí)間損失。本文將深入探討如何通過(guò)精準(zhǔn)的
    的頭像 發(fā)表于 04-16 10:01 ?166次閱讀
    如何通過(guò)精準(zhǔn)<b class='flag-5'>盲</b>孔檢測(cè)降低PCB報(bào)廢率?

    AI預(yù)測(cè)如何賦能城市二次供水系統(tǒng)智能化

    在城市供水系統(tǒng)的末端,隱藏著一個(gè)被長(zhǎng)期忽視的“”——二次供水泵房。
    的頭像 發(fā)表于 04-02 09:05 ?652次閱讀
    AI預(yù)測(cè)如何賦能城市二次供水<b class='flag-5'>系統(tǒng)</b>智能化

    五階孔印制電路板的典型工藝流程

    本文以五階孔印制電路板為研究對(duì)象,圍繞逐次增層法制備流程,系統(tǒng)闡述微孔激光成形、超高厚徑比孔電鍍填孔、層間精密對(duì)位三大核心技術(shù)。通過(guò)優(yōu)化 UV+CO?復(fù)合激光參數(shù)、脈沖電鍍體系與分區(qū)域標(biāo)靶對(duì)位
    的頭像 發(fā)表于 03-17 09:28 ?850次閱讀
    五階<b class='flag-5'>盲</b>孔印制電路板的典型工藝流程

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

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

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

    選擇埋孔技術(shù)需綜合考慮以下因素: 1. 技術(shù)類型與適用場(chǎng)景 一階埋孔?:適合8層以下PCB,如消費(fèi)電子主板,成本較低但僅支持單層連接?。 二階埋孔?:用于10層以上PCB(如服務(wù)器、高端顯卡
    的頭像 發(fā)表于 12-04 11:19 ?626次閱讀
    如何選擇適合的<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 ?481次閱讀
    別再讓光纜故障“開<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 ?2011次閱讀

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

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

    pcb四層板中為什么加很多的孔,有什么作用

    pcb四層板中為什么加很多的孔有什么作用
    的頭像 發(fā)表于 09-06 11:32 ?1366次閱讀

    物聯(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 ?1102次閱讀

    多層PCB孔與埋孔工藝詳解

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

    天地蓋制機(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ù)無(wú)法實(shí)時(shí)采
    的頭像 發(fā)表于 06-13 16:41 ?916次閱讀

    音樂(lè)芯片方案——N9305音樂(lè)芯片

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

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

    BCR 具有 SINK_FET_EN 和 SAFE_PWR_EN 引腳來(lái)控制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 ?826次閱讀
    乐至县| 怀来县| 牙克石市| 连江县| 纳雍县| 阜新| 斗六市| 体育| 高陵县| 青海省| 武安市| 丰台区| 水富县| 兴国县| 秦皇岛市| 昌江| 突泉县| 平塘县| 潜山县| 禄劝| 昆山市| 蓝山县| 米泉市| 内丘县| 六安市| 澎湖县| 伊宁市| 银川市| 江阴市| 齐河县| 南阳市| 崇信县| 道真| 临潭县| 吐鲁番市| 鄢陵县| 望奎县| 英吉沙县| 招远市| 广灵县| 电白县|