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

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

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

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

鏈上智能合約Dapp開發(fā)技術(shù)部署

搭建punk2558 ? 來(lái)源:搭建punk2558 ? 作者:搭建punk2558 ? 2022-06-20 18:13 ? 次閱讀

合約是代碼(它的功能)和數(shù)據(jù)(它的狀態(tài))的集合,存在于以太坊區(qū)塊鏈的特定地址。合約賬戶能夠在彼此之間傳遞信息,進(jìn)行圖靈完備的運(yùn)算。合約依靠被稱作以太坊虛擬機(jī)(EVM)字節(jié)代碼(以太坊特有的二進(jìn)制格式)上的區(qū)塊鏈運(yùn)行。

合約很典型地用諸如Solidity等高級(jí)語(yǔ)言寫成,然后編譯成字節(jié)代碼上傳到區(qū)塊鏈上。

以太坊高級(jí)語(yǔ)言

合約依靠被稱作以太坊虛擬機(jī)(EVM)字節(jié)代碼(以太坊特有的二進(jìn)制格式)上的區(qū)塊鏈運(yùn)行。然而,合約很典型地用諸如Solidity等高級(jí)語(yǔ)言寫成,然后用以太坊虛擬機(jī)編譯器編譯成字節(jié)代碼上傳到區(qū)塊鏈。

編譯合約

solidity合約的編譯可以通過(guò)很多機(jī)制完成。

通過(guò)命令行使用solc編譯器。

在geth或eth提供的javascript控制臺(tái)使用web3.eth.compile.solidity(這仍然需要安裝solc編譯器)。

在線Solidity實(shí)時(shí)編譯器。

建立solidity合約的Meteor dapp Cosmo。

Mix IDE。

以太坊錢包。

注意:關(guān)于solc和編譯Solidity合約代碼的更多信息可在此查看。

在geth設(shè)置solidity編譯器

如果你啟動(dòng)了geth節(jié)點(diǎn),就可以查看哪個(gè)編譯器可用。

這一指令會(huì)返回到顯示當(dāng)前哪個(gè)編譯器可用的字符串。

注意:solc編譯器和cpp-ethereum一起安裝。或者,你可以自己創(chuàng)建。

如果你的solc可執(zhí)行文件不在標(biāo)準(zhǔn)位置,可以用—solc標(biāo)志為solc可執(zhí)行文件指定一個(gè)定制路線。

或者你可以通過(guò)控制臺(tái)在執(zhí)行期間設(shè)置這個(gè)選項(xiàng):

編譯一個(gè)簡(jiǎn)單合約

讓我們編譯一個(gè)簡(jiǎn)單的合約源:

這個(gè)合約提供了一個(gè)單一方法multiply,它和一個(gè)正整數(shù)a調(diào)用并返回到a*7。

注意:編譯器通過(guò)RPC因此也能通過(guò)web3.js,對(duì)瀏覽器內(nèi)任何通過(guò)RPC/IPC連接到geth的Dapp可用。

下面的例子會(huì)向你展示如何通過(guò)JSON-RPC接合geth來(lái)使用編譯器。

Code編譯的以太坊虛擬機(jī)字節(jié)代碼

Info從編譯器輸出的額外元數(shù)據(jù)

Source源代碼

Language合約語(yǔ)言(Solidity,Serpent,LLL)

LanguageVersion合約語(yǔ)言版本

compilerVersion用于編譯這個(gè)合約的solidity編譯器版本。

abiDefinition應(yīng)用的二進(jìn)制界面定義

userDoc用戶的NatSpec Doc。

developerDoc開發(fā)者的NatSpec Doc。

編譯器輸出的直接結(jié)構(gòu)化(到code和info)反映了兩種非常不同的部署路徑。編譯的以太坊虛擬機(jī)代碼和一個(gè)合約創(chuàng)建交易被發(fā)送到區(qū)塊,剩下的(info)在理想狀態(tài)下會(huì)存活在去中心化云上,公開驗(yàn)證的元數(shù)據(jù)則執(zhí)行區(qū)塊鏈上的代碼。

如果你的源包含多個(gè)合約,輸出會(huì)包括每個(gè)合約一個(gè)入口,對(duì)應(yīng)的合約信息對(duì)象可以用作為屬性名稱的合約名字檢索到。你可以通過(guò)檢測(cè)當(dāng)前的GlobalRegistrar代碼來(lái)試一下:

創(chuàng)建和部署合約

開始這一章節(jié)之前,確保你有解鎖的賬戶和一些資金。你現(xiàn)在會(huì)在區(qū)塊鏈上創(chuàng)建一個(gè)合約,方法是用上一章節(jié)的以太坊虛擬機(jī)代碼作為數(shù)據(jù)給空地址發(fā)送交易。

注意:用在線Solidity實(shí)時(shí)編譯器或Mix IDE程序會(huì)更容易完成。

所有的二進(jìn)制數(shù)據(jù)都以十六進(jìn)制的格式序列化。十六進(jìn)制字符串總會(huì)有一個(gè)十六進(jìn)制前綴0x。

注意:注意arg1,arg2,…是合約構(gòu)造函數(shù)參數(shù),以備它要接受參數(shù)。如果合約不需要構(gòu)造函數(shù)參數(shù),就可以忽略這些參數(shù)。

值得指出的是,這一步驟需要你支付執(zhí)行。一旦交易成功進(jìn)入到區(qū)塊,你的賬戶余額(你作為發(fā)送方放在from領(lǐng)域)會(huì)根據(jù)以太坊虛擬機(jī)的gas規(guī)則被扣減。一段時(shí)間以后,你的交易會(huì)在一個(gè)區(qū)塊中出現(xiàn),確認(rèn)它帶來(lái)的狀態(tài)是共識(shí)。你的合約現(xiàn)在存在于區(qū)塊鏈上。以不同步的方式做同樣的事看起來(lái)是這樣:

與合約交互

與合約交互典型的做法是用諸如eth.contract()功能的抽象層,它會(huì)返回到j(luò)avascript對(duì)象,和所有可用的合約功能一起,作為可調(diào)用的javascript功能。描述合約可用功能的標(biāo)準(zhǔn)方式是ABI定義。這個(gè)對(duì)象是一個(gè)字符串,它描述了調(diào)用簽名和每個(gè)可用合約功能的返回值。

現(xiàn)在ABI中具體說(shuō)明的所有功能調(diào)用都在合約實(shí)例中可用。你可以用兩種方法中的一種來(lái)調(diào)用這些合約實(shí)例上的方法。

當(dāng)用sendTransaction被調(diào)用的時(shí)候,功能調(diào)用通過(guò)發(fā)送交易來(lái)執(zhí)行。需要花費(fèi)以太幣來(lái)發(fā)送,調(diào)用會(huì)永久記錄在區(qū)塊鏈上。用這種方式進(jìn)行的調(diào)用返回值是交易散表。

當(dāng)用call被調(diào)用的時(shí)候,功能在以太坊虛擬機(jī)被本地執(zhí)行,功能返回值和功能一起返回。用這種方式進(jìn)行的調(diào)用不會(huì)記錄在區(qū)塊鏈上,因此也不會(huì)改變合約內(nèi)部狀態(tài)。這種調(diào)用方式被稱為恒定功能調(diào)用。以這種方式進(jìn)行的調(diào)用不花費(fèi)以太幣。

如果你只對(duì)返回值感興趣,那么你應(yīng)該用call。如果你只關(guān)心合約狀態(tài)的副作用,就應(yīng)該用sendTransaction。

在上面的例子中,不會(huì)產(chǎn)生副作用,因此sendTransaction只會(huì)燒gas,增加宇宙的熵。

測(cè)試合約和交易

你通常需要低級(jí)的測(cè)試策略,為交易和合約排除故障。這一章節(jié)介紹了一些你可以用到的排錯(cuò)工作和做法。為了測(cè)試合約和交易而不產(chǎn)生實(shí)際的后果,你最好在私有區(qū)塊鏈上測(cè)試。這可以通過(guò)配置一個(gè)替代網(wǎng)絡(luò)ID(選擇一個(gè)特別的數(shù)字)和/或不能用的端點(diǎn)來(lái)實(shí)現(xiàn)。推薦做法是,為了測(cè)試你用一個(gè)替代數(shù)據(jù)目錄和端口,這樣就不會(huì)意外地和實(shí)時(shí)運(yùn)行的節(jié)點(diǎn)沖突(假定用默認(rèn)運(yùn)行。

審核編輯:符乾江

聲明:本文內(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)投訴
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7102

    瀏覽量

    89281
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4808

    瀏覽量

    68811
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    dap協(xié)議在DApp開發(fā)中的作用

    隨著區(qū)塊技術(shù)的不斷發(fā)展,去中心化應(yīng)用(DApp)逐漸成為技術(shù)領(lǐng)域的熱門話題。DApp以其去中心化、透明性和安全性的特點(diǎn),為用戶和
    的頭像 發(fā)表于 11-22 15:43 ?258次閱讀

    Arm推出GitHub平臺(tái)AI工具,簡(jiǎn)化開發(fā)者AI應(yīng)用開發(fā)部署流程

    專為 GitHub Copilot 設(shè)計(jì)的 Arm 擴(kuò)展程序,可加速?gòu)脑频竭吘墏?cè)基于 Arm 平臺(tái)的開發(fā)。 Arm 原生運(yùn)行器為部署云原生、Windows on Arm 以及云到邊緣側(cè)的 AI
    的頭像 發(fā)表于 10-31 18:51 ?2585次閱讀

    不是掛上智慧燈桿屏, 就叫智慧燈桿顯示屏了!

    不是掛上智慧燈桿屏, 就叫智慧燈桿顯示屏了!
    的頭像 發(fā)表于 09-29 16:05 ?392次閱讀
    不是掛<b class='flag-5'>上智</b>慧燈桿屏, 就叫智慧燈桿顯示屏了!

    [技術(shù)] 【飛凌嵌入式OK3576-C開發(fā)板體驗(yàn)】llama2.c部署

    MCU 上部署。以下是 llama2.c 在 OK3576 開發(fā)板上的部署步驟。 工程克隆 首先我們將源碼克隆下來(lái):https://github.com/karpathy/llama2.c.git
    發(fā)表于 09-18 23:58

    百度前視覺(jué)技術(shù)部韓鈞宇加入長(zhǎng)安智駕

    近日,自動(dòng)駕駛領(lǐng)域迎來(lái)一則重要人事變動(dòng),百度前視覺(jué)技術(shù)部資深經(jīng)理韓鈞宇正式加入長(zhǎng)安汽車智能駕駛研發(fā)團(tuán)隊(duì),擔(dān)任關(guān)鍵職務(wù),并直接向長(zhǎng)安汽車首席智能駕駛技術(shù)官陶吉匯報(bào)工作。這一舉措無(wú)疑為長(zhǎng)安
    的頭像 發(fā)表于 08-27 15:30 ?486次閱讀

    PerfXCloud大模型開發(fā)部署平臺(tái)開放注冊(cè)

    PerfXCloud?介紹 PerfXCloud是澎峰科技為開發(fā)者和企業(yè)量身打造的AI開發(fā)部署平臺(tái)。它專注于滿足大模型的微調(diào)和推理需求,為用戶提供極致便捷的一鍵部署體驗(yàn)。 PerfX
    的頭像 發(fā)表于 07-02 10:27 ?396次閱讀
    PerfXCloud大模型<b class='flag-5'>開發(fā)</b>與<b class='flag-5'>部署</b>平臺(tái)開放注冊(cè)

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(視頻應(yīng)用)

    隨著智能設(shè)備類型的不斷豐富,用戶可以在不同的設(shè)備上享受同樣的服務(wù),但由于設(shè)備形態(tài)不盡相同,開發(fā)者往往需要針對(duì)具體設(shè)備修改或重構(gòu)代碼,以實(shí)現(xiàn)功能完整性和界面美觀性的統(tǒng)一。OpenHarmony為開發(fā)
    的頭像 發(fā)表于 05-25 16:29 ?4575次閱讀
    鴻蒙OS<b class='flag-5'>開發(fā)</b>:【一次<b class='flag-5'>開發(fā)</b>,多端<b class='flag-5'>部署</b>】(視頻應(yīng)用)

    鴻蒙OS開發(fā):【一次開發(fā),多端部署】(音樂(lè)專輯頁(yè)面)

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開發(fā)、多端部署音樂(lè)專輯頁(yè)面。
    的頭像 發(fā)表于 05-25 16:21 ?832次閱讀
    鴻蒙OS<b class='flag-5'>開發(fā)</b>:【一次<b class='flag-5'>開發(fā)</b>,多端<b class='flag-5'>部署</b>】(音樂(lè)專輯頁(yè)面)

    HarmonyOS開發(fā)案例:【一次開發(fā),多端部署-音樂(lè)專輯】

    基于自適應(yīng)和響應(yīng)式布局,實(shí)現(xiàn)一次開發(fā)、多端部署音樂(lè)專輯頁(yè)面。
    的頭像 發(fā)表于 05-13 16:48 ?709次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【一次<b class='flag-5'>開發(fā)</b>,多端<b class='flag-5'>部署</b>-音樂(lè)專輯】

    HarmonyOS開發(fā)案例:【一次開發(fā),多端部署(視頻應(yīng)用)】

    隨著智能設(shè)備類型的不斷豐富,用戶可以在不同的設(shè)備上享受同樣的服務(wù),但由于設(shè)備形態(tài)不盡相同,開發(fā)者往往需要針對(duì)具體設(shè)備修改或重構(gòu)代碼,以實(shí)現(xiàn)功能完整性和界面美觀性的統(tǒng)一。OpenHarmony為開發(fā)
    的頭像 發(fā)表于 05-11 15:41 ?1524次閱讀
    HarmonyOS<b class='flag-5'>開發(fā)</b>案例:【一次<b class='flag-5'>開發(fā)</b>,多端<b class='flag-5'>部署</b>(視頻應(yīng)用)】

    鴻蒙實(shí)戰(zhàn)開發(fā)-本地部署、SmartPerf 編譯部署指導(dǎo)文檔

    telnet [部署機(jī)器ip地址] 9000。 如果顯示端口連接失敗 可能是防火墻未對(duì)9000 端口放開即可。 最后 如果大家覺(jué)得這篇內(nèi)容對(duì)學(xué)習(xí)鴻蒙開發(fā)有幫助,我想邀請(qǐng)大家?guī)臀胰齻€(gè)小忙: 點(diǎn)贊,轉(zhuǎn)發(fā),有
    發(fā)表于 05-09 14:23

    【轉(zhuǎn)載】英特爾開發(fā)套件“哪吒”快速部署YoloV8 on Java | 開發(fā)者實(shí)戰(zhàn)

    部署到生產(chǎn)系統(tǒng)中。通過(guò)簡(jiǎn)化的開發(fā)工作流程,OpenVINO可賦能開發(fā)者在現(xiàn)實(shí)世界中部署高性能應(yīng)用程序和算法。 今天我們將基于哪吒開發(fā)者套件平
    的頭像 發(fā)表于 03-23 08:05 ?603次閱讀
    【轉(zhuǎn)載】英特爾<b class='flag-5'>開發(fā)</b>套件“哪吒”快速<b class='flag-5'>部署</b>YoloV8 on Java | <b class='flag-5'>開發(fā)</b>者實(shí)戰(zhàn)

    AIRLOOK攜手百度視覺(jué)技術(shù)部聯(lián)合發(fā)布國(guó)內(nèi)首個(gè)大空間高精度3DGS逆渲染成果

    技術(shù)的完美融合,為行業(yè)提供更強(qiáng)大的顯式編輯能力和更低算力需求的實(shí)時(shí)渲染能力,進(jìn)一步降低開發(fā)部署門檻,在雙方的合作下,將加快創(chuàng)新性技術(shù)在地理信息領(lǐng)域的應(yīng)用。 GIR重建及重光照渲染效果
    的頭像 發(fā)表于 02-27 14:18 ?418次閱讀
    AIRLOOK攜手百度視覺(jué)<b class='flag-5'>技術(shù)部</b>聯(lián)合發(fā)布國(guó)內(nèi)首個(gè)大空間高精度3DGS逆渲染成果

    HarmonyOS開發(fā)技術(shù)全面分析

    HarmonyOS 通過(guò)組件化和小型化等設(shè)計(jì)方法,支持多種終端設(shè)備按需彈性部署,能夠適配不同類別的硬件資源和功能需求。支撐通過(guò)編譯關(guān)系去自動(dòng)生成組件化的依賴關(guān)系,形成組件樹依賴圖,支撐產(chǎn)品系統(tǒng)的便捷開發(fā)
    發(fā)表于 02-21 16:31

    MBD工具的云部署

    “云技術(shù)用于不會(huì)用于汽車開發(fā)“。說(shuō)到云部署在汽車行業(yè)的應(yīng)用,業(yè)界曾經(jīng)認(rèn)為云技術(shù)并不適合用在汽車行業(yè)的產(chǎn)品開發(fā)。知識(shí)產(chǎn)權(quán)保護(hù)、數(shù)據(jù)的安全、流程
    的頭像 發(fā)表于 02-18 13:48 ?516次閱讀
    MBD工具<b class='flag-5'>鏈</b>的云<b class='flag-5'>部署</b>
    主站蜘蛛池模板: 欧美黑人黄色片| 五月天丁香花婷婷| 国产美女一级高清免费观看| www.三级.com| 成人a毛片视频免费看| qyule亚洲精品| 午夜在线视频| 很色视频| 国产伦子一区二区三区四区| 操美女网址| 天天干天天爱天天操| 中文在线免费看影视| 国产亚洲新品一区二区| 国产女主播在线| 夜夜操狠狠干| 免费久久久久| 欧美性黑人十极品hd| 国产精品1区2区3区| 奇米久久久| 簧片视频在线观看| 日本人69xxxxx| 免费男女| 色日本在线| 精品卡1卡2卡三卡免费网站视频| xxxxbbbb欧美| 精品影视网站入口| 一女多夫嗯啊高h| 国内啪啪| 淫五月| 香蕉成人国产精品免费看网站 | 久久99精品久久久久久久不卡| 国产xxxxxx久色视频在| 国产香港日本三级在线观看| 在线观看高清免费播放| 久久国产中文字幕| 国产特黄特色的大片观看免费视频| 欧美成人免费网站| 欧美人与zoxxxx| 在线观看国产久青草| 欧美性天天| 久久久免费视频观看|