以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 狗狗幣 > Info

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

Author:

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

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

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

項目具有以下結構:

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

MyContractA.sol

MyContractA.sol

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

腳本編譯

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

云南跨境金融區塊鏈平臺試點成效顯著:人民銀行昆明中心支行有關負責人介紹,隨著云南省“跨境金融區塊鏈服務平臺”建設的不斷推進,支撐了企業、銀行等市場主體跨境投融資和支付便利化業務辦理,為涉外經濟高質量發展賦能提效。一方面,跨境區塊鏈平臺所提供的質押物信息真實可信,另一方面,銀行間融資信息實時互動并有效核驗,有助于及時遏制重復融資風險,“因此,跨境區塊鏈平臺提供的貿易融資批量核驗,效率高、可信度強。”(昆明信息港)[2021/8/12 1:50:08]

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

構建腳本的步驟如下:

創建構建/目錄。

獲取我們的合同來源。

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

韓國政府呼吁私營企業利用區塊鏈潛力:金色財經報道,韓國政府表示,區塊鏈市場代表了該國的“黃金機遇”,呼吁整個韓國的私營企業利用這一潛力。韓國戰略與財務副部長Koo Yun-cheol舉行了一次關于區塊鏈技術的會議,匯集了許多私營行業專家。Koo提出了對歐洲和美國等國外市場區塊鏈技術發展的積極預測。他表示,與區塊鏈相關的產業規模預計平均每年將增長80%以上,并且正在競爭性地支持外國占領這個市場,該市場作為一種有前途的技術在未來將引起人們的關注。副部長確認,美國、歐洲和中國之間的區塊鏈技術差距可以在未來兩三年內縮小。會議還敦促韓國政府在今后的發展中發揮積極作用。他們認為,考慮到最初市場的建立,該國可以從這些機會中受益。[2020/4/18]

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

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

動態 | 科大國創:積極區塊鏈、數字貨幣等前沿技術的發展和應用:據新浪財經報道,科大國創董秘在回答投資者提問時表示,公司積極關注包括區塊鏈、數字貨幣等前沿技術的發展和應用,并適時開展一些基礎技術的預研。[2019/10/12]

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

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

第3步-編譯并寫入輸出

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

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

聲音 | 中國人民銀行上海總部副主任:央行將支持金融機構探索區塊鏈等新技術:據澎湃新聞:中國人民銀行上海總部副主任鄭五福表示,央行將支持金融機構和大型科技型企業在(臨港)新片區內設立金融科技公司,探索人工智能、大數據、云計算、區塊鏈等新技術在金融領域應用的正確方法和路徑。[2019/9/20]

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

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:區塊鏈以太坊SOLWEB泰達幣區塊鏈交易查詢以太坊幣最新價格行情新浪SOLA價格Webuy

狗狗幣
把數字貨幣存進“銀行”還能拿利息?_數字貨幣

無論是幣價的浮動,還是一些項目每年增發帶來的自動“通脹”,幣價的下跌,數字貨幣收益的下跌應該是所有持幣人不愿看到的一個事實.

1900/1/1 0:00:00
本周四參與Jarvis 問答訪談,享100,000 JAR空投福利!_JAR

親愛的KuCoin社區用戶:6月20日本周四晚八點至九點,我們將在官方中文電報群舉辦KuCoin全球首發項目Jarvis問答訪談活動.

1900/1/1 0:00:00
小白如何理解比特幣網絡改進協議Erlay_比特幣

Erlay將通過減少網絡參與者之間不必要的通信,幫助比特幣網絡保持去中心化。關于Erlay將如何影響比特幣的猜想圖感謝GlebNaumenko、PieterWuille、GregoryMaxwe.

1900/1/1 0:00:00
Facebook加密計劃Libra被指缺乏區塊鏈精神 進展將會延遲_ACE

萬眾期待的Facebook加密貨幣項目Libra,可能會面臨重大障礙。盡管有報道說Facebook最早6月18日就宣布其新的加密貨幣,但是據Coindesk援引知情人士的報道,libra進展延遲.

1900/1/1 0:00:00
金色早報-Tether在以太坊網絡新增發1億枚USDT_區塊鏈

俄羅斯央行第一副行長:加密貨幣不是傳統金融市場的一部分 ◇金色盤面 BTC最近成交價9042.70美元,24小時變化-1.72%;ETH最近成交價269.98美元.

1900/1/1 0:00:00
觀點:區塊鏈技術可用于增強英國公民對國民醫療保健系統的信任_FIL

據Beincrypto報道,根據YouGov最近的一項調查,只有13%的英國成年人相信大技術能夠安全地使用其的國民醫療保健系統數據,即使是匿名數據.

1900/1/1 0:00:00
ads