比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

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

Author:

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

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

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

項目具有以下結構:

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

MyContractA.sol

MyContractA.sol

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

腳本編譯

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

A股開盤:深證區塊鏈50指數下跌1.02%:金色財經消息,A股開盤,上證指數報3475.44點,開盤下跌0.92%,深證成指報13965.21點,開盤下跌1.26%,深證區塊鏈50指數報3549.54點,開盤下跌1.02%。區塊鏈板塊開盤上漲0.01%,數字貨幣板塊開盤下跌0.11%。[2021/4/10 20:04:34]

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

構建腳本的步驟如下:

創建構建/目錄。

獲取我們的合同來源。

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

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

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

動態 | 云茶大數據中心啟動運行 依靠區塊鏈為產品溯源:12月5日,云茶產業首個大規模云數據中心——云茶大數據中心正式啟動運行,該中心將為云南茶產業提供產品溯源技術、數字茶園監管、智慧茶倉、產業金融風控等基礎運營及增值運營服務,加速助力云南茶產業轉型升級。

據悉,云茶大數據中心將通過對數據的運用和存儲,為茶企提供真實準確的用戶樣本,減少盲目生產,降低成本;通過“區塊鏈+產品溯源”,提供不可篡改的防偽技術,把茶產品的生產地、生產商、運輸、銷售一一記錄,讓消費者可以清楚有效地了解生產流通環節及產品真偽;利用“人工智能服務”建設智慧茶園,啟動茶園數據化、智能化的管理工作,提升茶園收益。[2019/12/6]

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

動態 | 韓華集團與韓國區塊鏈企業聯盟簽署諒解備忘錄:據韓聯社消息,韓國十大財團之一的韓華集團18日表示,在2月15日同韓國區塊鏈企業聯盟簽署了諒解備忘錄。韓華集團表示,通過此次合作,將加強韓華集團在區塊鏈技術方面的專業性,旨在加快未來金融的科技革新。[2019/2/19]

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

第3步-編譯并寫入輸出

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

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

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

幣看董事長劉洋:不看好純區塊鏈技術,比特幣或許會消失:幣看董事長劉洋在接受采訪時表示,“我不太看好純區塊鏈技術,因為我認為如果避談金融屬性,區塊鏈技術是沒有任何價值的,不過只是一個軟件程序員會用一種新的編程方式而已。如果不談去中心化,那就更不會有任何意義,那么區塊鏈技術就變成了一對加密、解密的算法,沒有任何生命力。”成立5年之余的幣看(Bitkan),是一家專注于數字貨幣資訊的網站,于4月初完成了1000萬美元的B輪融資,此輪融資由中云輝資本領投,IDG資本和比特大陸跟投。2016年4月,幣看完成1500萬元A輪融資,投資方為比特大陸。[2018/4/18]

sources:我們合同的內容。

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

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

第一行獲取一個包含我們編譯的腳本的對象。兩個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:區塊鏈以太坊SOLWEB3區塊鏈運用的技術中不包括哪一項內容以太坊硬幣sol幣前景怎么樣2022年MetaWeb3Pad

比特幣交易
夢溪幣談:6月17日行情分析,9000搖搖欲墜能否穩住_KFI

在周末行情突然大好直線拉伸到了9000上方,行情再次漲到9000以上不是巧合而是必然,我們在早間的行情分析已經是多次提到了,在跟著我看漲的朋友也就要恭喜大家了,又是近1000點的行情.

1900/1/1 0:00:00
澳本聰靠嘴拉盤BSV上漲近10% 隔離見證究竟是個啥?_BIT

昨日,備受爭議的加密人士CraigWright在接受《金融時報》采訪時談及了對比特幣的隔離見證機制的看法。他在采訪中表示“比特幣無法做到匿名”.

1900/1/1 0:00:00
火星晨報0616 | 比特幣突破8700美元,主流幣普漲;以太坊2.0階段將于2020年1月3日發布,將支持PoS_CRA

行情播報: 截止今日上午8:00,火星財經APP檢測市值排名前10幣種,24小時行情表現如下:BTC現價8803美元,漲幅2.05%;ETH現價267.51美元.

1900/1/1 0:00:00
6.18早間行情:BTC繼續創反彈新高能否激活市場人氣_BIT

BTC繼續創反彈新高,能否激活市場人氣BTC收出上影線之后,迅速拉升反包,走勢強勁,我們看到前兩個創新高的標的BNB和LTC都是新高之后立馬回落,但是這種現象并沒有在BTC身上發生.

1900/1/1 0:00:00
6.15早間行情:BTC來勢洶洶 能否再創新高?_BTC

之前我們認為市場不會那么快進行方向性選擇,但是市場永遠是對的,現在BTC既然突破了8300美元的壓力關口,就既有可能去創反彈的新高.

1900/1/1 0:00:00
陸平:5G 區塊鏈創新在B端 中國優勢明顯_AND

互鏈脈搏按:6月6日,工業和信息化部向中國電信、中國移動、中國聯通、中國廣電發放5G牌照。這也意味著中國成為繼美國、韓國、英國后的第四個5G商用國.

1900/1/1 0:00:00
ads