比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > Bitcoin > Info

區塊鏈:區塊鏈研究實驗室 | 使用JavaScript編譯和部署以太坊智能合約

Author:

Time:1900/1/1 0:00:00

以太坊智能合約的發展在2018年呈指數級增長,2019年似乎將遵循這一趨勢。有些框架,如Truffle,可以幫助我們快速構建和維護智能合約,如果您想讓親自動手體驗的話,我將解釋如何編譯您的智能合約,并使用自己的腳本將其部署到以太坊網絡。

注意:我將使用簡單的智能合約,因為本文的目的只是展示如何編譯和部署腳本。

項目具有以下結構:

文件夾合同包含我們的智能合約。對于這篇文章,我們將使用兩個簡單的智能合約:

MyContractA.sol

MyContractA.sol

如您所見,我們有兩個文件,其中一個包含兩個智能合約,證明我們可以擁有任意數量的智能合約。

腳本編譯

現在,一旦我們有了初始項目結構和智能合約,就可以開始構建編譯腳本了。

區塊鏈存儲協議Arweave預計于區塊高度591140處激活硬分叉升級:12月15日,區塊鏈存儲協議Arweave (AR)發布了2.3.0.0升級版本,并宣布計劃在區塊高度 591140 處激活硬分叉升級(大約在北京時間 12 月 21 日 19:00),該版本同時發布了包括將 v1 數據遷移到新的索引中、重新編制交易黑名單等在內新功能,同時修復了同步節點崩潰等問題。[2020/12/15 15:16:08]

該腳本的目的是為每個合約生成一個JSON,每個JSON都包含已編譯的合同信息。這些JSON將存儲在名為build/的輸出路徑中

構建腳本的步驟如下:

創建構建/目錄。

獲取我們的合同來源。

編譯合同并將輸出寫入文件。

第1步-創建build/文件夾。

動態 | 巴西完成首筆基于區塊鏈技術的房地產交易:據chepicap消息,巴西建筑巨頭Cyrela和創業公司Growth Tech在巴西完成了首筆使用區塊鏈技術的房地產交易。據悉,該服務以IBM區塊鏈技術為基礎,可使用戶能夠請求和跟蹤公證服務,并將房地產銷售時間大幅縮短至最多20分鐘,通常需要一個月左右。[2019/7/16]

這一步是最簡單的,因為我們只需要了解JavaScript的一些基礎知識。

現在要將所有文件的來源都放到智能合約文件夾中。在這一步中,只需要JavaScript就不需要以太坊概念,但還是有點復雜。

對于contracts文件夾中的每個文件,我們在sources對象中添加一個新字段,其中鍵是文件名,值是.sol文件的內容。

第3步-編譯并寫入輸出

聲音 | 重慶市經信委副主任:區塊鏈創新推動互聯網傳播與存儲管理方式變革:據華龍網報道,重慶市經信委副主任李斌表示,區塊鏈的技術創新推動了互聯網技術傳播與存儲管理方式變革,區塊鏈與云計算、大數據、物聯網等技術深度融合,探索應用范圍涵蓋供應鏈管理、智能制造、工業互聯網、產品溯源、社會公益、版權保護等眾多領域。[2018/10/22]

現在我們已經有了輸出文件夾和智能合約的內容,是時候編譯它們了。

首先,我們必須定義一個對象,該對象將作為Solidity編譯器的信息輸入。

language:我們智能合約的編程語言,目前是使用Solidity,但你也可以選擇其他編程語言。

sources:我們合同的內容。

settings:此選項告訴編譯器我們想要生成哪些輸出字段。對于此示例,我選擇sources中的所有文件生成abi和evm.bytecode。這兩條信息是部署階段所必需的。

聲音 | 華為云BU PaaS產品部總經理:區塊鏈技術只適合有限的場景:今日,在\"區塊鏈發展及應用\"的主題分論壇上,廖振欽發表了《華為區塊鏈,構建可信數字經濟的基石》的主題演講。廖振欽表示:\"當前社會上對區塊鏈宣傳炒作的多、集資創新的多,但真正靜下心來研究技術與應用場景落地的太少。區塊鏈是一項非常好的可信數字交易的技術,但也并非萬能藥,只適合于有限的場景。我們認為在現階段區塊鏈適合的場景有三個特征:第一,存在去中心化、多方參與和寫入數據的應用;第二,對數據真實性要求高的場景;第三,初始情況下相互不信任的多個參與者建立分布式信任的需求\"。[2018/9/13]

一旦我們有了編譯器的配置對象,我們就可以執行它了。

第一行獲取一個包含我們編譯的腳本的對象。兩個for循環允許我們在不同的JSON文件中存儲單個.sol文件中的智能合約。

最后一步是把這三部分連接在一起

這樣我們就完成了編譯腳本。如果我們運行它,項目結構應該如下所示:

我們已經gitignoredbuild文件夾,因為沒有意義在Git下跟蹤它。

現在我們已經編輯了我們的智能合約,是時候將它們部署到區塊鏈上了。

腳本部署

是時候將我們的智能合約部署到以太坊區塊鏈上了。

首先,我們需要兩件事來將智能合約部署到區塊鏈:

解鎖帳戶:由于我們需要使用gas來發送將創建智能合約的交易。

連接到區塊鏈的節點:我們正在向網絡發送交易,因此我們需要連接到鏈上。

關于第一點,我們將使用HDWalletProvider,這個工具允許我們使用助記符十二個單詞短語解鎖帳戶并連接到以太坊節點。但是......節點在哪里?好吧,我們可以做兩件事,運行我們自己的以太坊節點或使用Infura。Infura是一項服務,它允許我們連接到以太坊網絡,而無需運行我們自己的以太坊節點。所以,我們似乎已經涵蓋了兩點。

解鎖帳戶并連接到以太坊節點。

要使用Infura,我們需要在其頁面中注冊。它將生成我們需要使用其服務的API密鑰。

我們將使用Web3JS與區塊鏈進行交互。Web3需要提供程序來連接節點并與節點交互。這個提供程序是HDWalletProvider,我們來配置它和Web3。

HDWalletProvider的第一個參數是我們的12個單詞助記詞。這個短語允許提供者解鎖帳戶,第二個參數告訴提供者以太網節點在哪里,在這種情況下我們通過Infura連接。

最后我們在web3中設置了提供者。

通過正確配置web3,我們可以最終部署合同。

首先,我們需要我們編譯的腳本。

然后,在第8行中,我們使用Web3API創建智能合約,并將智能合約的接口傳遞給它。接下來,我們需要創建一個包含智能合約信息的部署事務:

data:合同的字節代碼。它以0x開頭表示它是十六進制的。

arguments:我們的智能合約構造函數的參數。

創建事務后,我們將其發送到以太坊區塊鏈,以便為節點處理它:

from:簽署交易并發送的帳戶。在第4行中,我們獲得了HDWalletProvider生成和解鎖的帳戶以及12個單詞短語。

gas:我們想要用于發送交易的最大gas量。

第18行的console.log對于獲取部署合同的地址很重要,這樣我們將來可以將其用于DAPP、用于其他合同等。

腳本的最后一行告訴提供程序結束與以太坊節點的連接。

如果我們執行腳本,一段時間后,我們將獲得如下跟蹤:

現在我們可以訪問EtherScan并查看我們在區塊鏈中部署的智能合約。

最后,我們已經部署了智能合約,并且每個人都可以訪問。我希望這篇文章有所幫助。

Tags:區塊鏈以太坊SOLWEB區塊鏈通俗易懂的例子有哪些以太坊幣最新價格行情分析sol幣歷史價格走勢圖3WEB

Bitcoin
CEB:Globalcoin加密項目使Facebook股票飆至全年最高位

社交媒體巨頭Facebook宣布發布加密項目Blobalcoin后,其股票價格飆升至全年最高位,一掃因為近來頻繁的監管打擊而帶來的萎靡不振.

1900/1/1 0:00:00
以太坊:以太坊與谷歌云:如何構建混合區塊鏈/云的應用?

本文作者是AllenDay,由“藍狐筆記”社群的“SIEN”翻譯。通過結合現代互聯網資源和公共云服務,區塊鏈協議和技術的采用會得到加速.

1900/1/1 0:00:00
區塊鏈:助力區塊鏈未來生態發展 ZG.COM“二十城”計劃進行時

近日,ZG.COM主辦的“二十城”計劃活動已舉辦兩期。該計劃由ZG.COM發起,將在全球優選超過二十個區塊鏈發達城市節點展開,對區塊鏈前沿技術進行討論、為各個渠道搭建溝通橋梁,構建起城市節點區塊.

1900/1/1 0:00:00
比特幣:這些年,比特大陸與前員工的那些恩怨情仇

是的,作為全球算力最大的比特幣礦池BTC.com運營商,比特大陸又起訴自己的前員工了。根據外界已披露庭審信息顯示,比特大陸認為上述三人涉嫌違反競爭限制協議,并要求潘志彪賠償430萬美元.

1900/1/1 0:00:00
CIR:警惕LTC,埋伏幣安DEX

JUNE14 深鏈Pro|每周投資內參 本周行情回顧 ▎數字貨幣 數據來源:Coingecko截止時間:2019/6/149:30 ▎金融資本市場 數據來源:WIND 截止時間:2019/6/1.

1900/1/1 0:00:00
BTC:震蕩調整 10000美元的比特幣可期

本文觀點僅代表個人,僅限交流學習,所有內容不構成任何投資建議。想及時了解更多行情信息,請添加官方微信進群:jiamibaoluo.

1900/1/1 0:00:00
ads