色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

鏈上智能合約Dapp開發技術部署

搭建punk2558 ? 來源:搭建punk2558 ? 作者:搭建punk2558 ? 2022-06-20 18:13 ? 次閱讀

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

合約很典型地用諸如Solidity等高級語言寫成,然后編譯成字節代碼上傳到區塊鏈上。

以太坊高級語言

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

編譯合約

solidity合約的編譯可以通過很多機制完成。

通過命令行使用solc編譯器。

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

在線Solidity實時編譯器。

建立solidity合約的Meteor dapp Cosmo。

Mix IDE。

以太坊錢包。

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

在geth設置solidity編譯器

如果你啟動了geth節點,就可以查看哪個編譯器可用。

這一指令會返回到顯示當前哪個編譯器可用的字符串。

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

如果你的solc可執行文件不在標準位置,可以用—solc標志為solc可執行文件指定一個定制路線。

或者你可以通過控制臺在執行期間設置這個選項:

編譯一個簡單合約

讓我們編譯一個簡單的合約源:

這個合約提供了一個單一方法multiply,它和一個正整數a調用并返回到a*7。

注意:編譯器通過RPC因此也能通過web3.js,對瀏覽器內任何通過RPC/IPC連接到geth的Dapp可用。

下面的例子會向你展示如何通過JSON-RPC接合geth來使用編譯器。

Code編譯的以太坊虛擬機字節代碼

Info從編譯器輸出的額外元數據

Source源代碼

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

LanguageVersion合約語言版本

compilerVersion用于編譯這個合約的solidity編譯器版本。

abiDefinition應用的二進制界面定義

userDoc用戶的NatSpec Doc。

developerDoc開發者的NatSpec Doc。

編譯器輸出的直接結構化(到code和info)反映了兩種非常不同的部署路徑。編譯的以太坊虛擬機代碼和一個合約創建交易被發送到區塊,剩下的(info)在理想狀態下會存活在去中心化云上,公開驗證的元數據則執行區塊鏈上的代碼。

如果你的源包含多個合約,輸出會包括每個合約一個入口,對應的合約信息對象可以用作為屬性名稱的合約名字檢索到。你可以通過檢測當前的GlobalRegistrar代碼來試一下:

創建和部署合約

開始這一章節之前,確保你有解鎖的賬戶和一些資金。你現在會在區塊鏈上創建一個合約,方法是用上一章節的以太坊虛擬機代碼作為數據給空地址發送交易。

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

所有的二進制數據都以十六進制的格式序列化。十六進制字符串總會有一個十六進制前綴0x。

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

值得指出的是,這一步驟需要你支付執行。一旦交易成功進入到區塊,你的賬戶余額(你作為發送方放在from領域)會根據以太坊虛擬機的gas規則被扣減。一段時間以后,你的交易會在一個區塊中出現,確認它帶來的狀態是共識。你的合約現在存在于區塊鏈上。以不同步的方式做同樣的事看起來是這樣:

與合約交互

與合約交互典型的做法是用諸如eth.contract()功能的抽象層,它會返回到javascript對象,和所有可用的合約功能一起,作為可調用的javascript功能。描述合約可用功能的標準方式是ABI定義。這個對象是一個字符串,它描述了調用簽名和每個可用合約功能的返回值。

現在ABI中具體說明的所有功能調用都在合約實例中可用。你可以用兩種方法中的一種來調用這些合約實例上的方法。

當用sendTransaction被調用的時候,功能調用通過發送交易來執行。需要花費以太幣來發送,調用會永久記錄在區塊鏈上。用這種方式進行的調用返回值是交易散表。

當用call被調用的時候,功能在以太坊虛擬機被本地執行,功能返回值和功能一起返回。用這種方式進行的調用不會記錄在區塊鏈上,因此也不會改變合約內部狀態。這種調用方式被稱為恒定功能調用。以這種方式進行的調用不花費以太幣。

如果你只對返回值感興趣,那么你應該用call。如果你只關心合約狀態的副作用,就應該用sendTransaction。

在上面的例子中,不會產生副作用,因此sendTransaction只會燒gas,增加宇宙的熵。

測試合約和交易

你通常需要低級的測試策略,為交易和合約排除故障。這一章節介紹了一些你可以用到的排錯工作和做法。為了測試合約和交易而不產生實際的后果,你最好在私有區塊鏈上測試。這可以通過配置一個替代網絡ID(選擇一個特別的數字)和/或不能用的端點來實現。推薦做法是,為了測試你用一個替代數據目錄和端口,這樣就不會意外地和實時運行的節點沖突(假定用默認運行。

審核編輯:符乾江

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

    關注

    8

    文章

    7002

    瀏覽量

    88943
  • 代碼
    +關注

    關注

    30

    文章

    4779

    瀏覽量

    68525
收藏 人收藏

    評論

    相關推薦

    dap協議在DApp開發中的作用

    隨著區塊技術的不斷發展,去中心化應用(DApp)逐漸成為技術領域的熱門話題。DApp以其去中心化、透明性和安全性的特點,為用戶和
    的頭像 發表于 11-22 15:43 ?190次閱讀

    Arm推出GitHub平臺AI工具,簡化開發者AI應用開發部署流程

    專為 GitHub Copilot 設計的 Arm 擴展程序,可加速從云到邊緣側基于 Arm 平臺的開發。 Arm 原生運行器為部署云原生、Windows on Arm 以及云到邊緣側的 AI
    的頭像 發表于 10-31 18:51 ?1977次閱讀

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

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

    [技術] 【飛凌嵌入式OK3576-C開發板體驗】llama2.c部署

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

    百度前視覺技術部韓鈞宇加入長安智駕

    近日,自動駕駛領域迎來一則重要人事變動,百度前視覺技術部資深經理韓鈞宇正式加入長安汽車智能駕駛研發團隊,擔任關鍵職務,并直接向長安汽車首席智能駕駛技術官陶吉匯報工作。這一舉措無疑為長安
    的頭像 發表于 08-27 15:30 ?448次閱讀

    PerfXCloud大模型開發部署平臺開放注冊

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

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

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

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

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

    HarmonyOS開發案例:【一次開發,多端部署-音樂專輯】

    基于自適應和響應式布局,實現一次開發、多端部署音樂專輯頁面。
    的頭像 發表于 05-13 16:48 ?679次閱讀
    HarmonyOS<b class='flag-5'>開發</b>案例:【一次<b class='flag-5'>開發</b>,多端<b class='flag-5'>部署</b>-音樂專輯】

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

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

    鴻蒙實戰開發-本地部署、SmartPerf 編譯部署指導文檔

    telnet [部署機器ip地址] 9000。 如果顯示端口連接失敗 可能是防火墻未對9000 端口放開即可。 最后 如果大家覺得這篇內容對學習鴻蒙開發有幫助,我想邀請大家幫我三個小忙: 點贊,轉發,有
    發表于 05-09 14:23

    AIRLOOK攜手百度視覺技術部聯合發布國內首個大空間高精度3DGS逆渲染成果

    技術的完美融合,為行業提供更強大的顯式編輯能力和更低算力需求的實時渲染能力,進一步降低開發部署門檻,在雙方的合作下,將加快創新性技術在地理信息領域的應用。 GIR重建及重光照渲染效果
    的頭像 發表于 02-27 14:18 ?363次閱讀
    AIRLOOK攜手百度視覺<b class='flag-5'>技術部</b>聯合發布國內首個大空間高精度3DGS逆渲染成果

    HarmonyOS開發技術全面分析

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

    MBD工具的云部署

    “云技術用于不會用于汽車開發“。說到云部署在汽車行業的應用,業界曾經認為云技術并不適合用在汽車行業的產品開發。知識產權保護、數據的安全、流程
    的頭像 發表于 02-18 13:48 ?480次閱讀
    MBD工具<b class='flag-5'>鏈</b>的云<b class='flag-5'>部署</b>

    區塊系統軟件開發與應用

    區塊技術是近年來備受矚目的創新技術,被廣泛應用于金融、供應管理、物聯網等領域。區塊系統軟件開發
    的頭像 發表于 01-10 18:18 ?2509次閱讀
    主站蜘蛛池模板: 综合色中色| 性xxx免费| 肉肉描写很细致的黄文| 日日摸夜夜添无码AVA片| 天堂精品国产自在自线| 亚洲qvod图片区电影| 一个吃奶两个添下面H| 97成人精品视频在线播放| 不卡人妻无码AV中文系列APP| 国产成人精品男人免费| 护士喂我吃乳液我脱她内裤| 麻豆E奶女教师国产精品| 强姧伦久久久久久久久| 婷婷精品国产亚洲AV在线观看 | 在野外被男人躁了一夜动图| 91精品国产免费入口| 草柳最新地址| 国产婷婷综合在线视频中文| 久久99re66热这里只有精品| 年轻的母亲4线在线观看完整| 三级黄色a| 一本道高清无码v| xxx粗大长欧美| 国内精品伊人久久久久| 免费国产综合视频在线看| 手机看片成人| 在线中文字幕网站| 成人小视频在线观看| 久久er国产免费精品| 日本xxxxxxx| 亚洲永久免费视频| yellow在线观看免费高清的日本| 国产无遮挡又黄又爽在线视频 | 日本大片免a费观看视频| 亚洲精品理论电影在线观看| 99国产精品久久人妻无码| 99视频精品全部 国产| 成人小视频在线观看| 久久精品国产亚洲AV久五月天| 欧美一级久久久久久久大| 亚洲国产成人在线视频|