以太坊智能合約的發展在2018年呈指數級增長,2019年似乎將遵循這一趨勢。有些框架,如Truffle,可以幫助我們快速構建和維護智能合約,如果您想讓親自動手體驗的話,我將解釋如何編譯您的智能合約,并使用自己的腳本將其部署到以太坊網絡。
注意:我將使用簡單的智能合約,因為本文的目的只是展示如何編譯和部署腳本。
項目具有以下結構:
文件夾合同包含我們的智能合約。對于這篇文章,我們將使用兩個簡單的智能合約:
MyContractA.sol
MyContractA.sol
如您所見,我們有兩個文件,其中一個包含兩個智能合約,證明我們可以擁有任意數量的智能合約。
腳本編譯
現在,一旦我們有了初始項目結構和智能合約,就可以開始構建編譯腳本了。
《婁底市區塊鏈產業發展規劃》正式發布:9月28日,記者從市區塊鏈辦公室獲悉:《婁底市區塊鏈產業發展規劃》以下簡稱《規劃》正式對外發布。根據規劃,婁底目標建設成國內領先、國際一流的區塊鏈“雙城”:一是基于應用層面,通過區塊鏈技術在婁底各個應用場景的落地,將婁底打造成區塊鏈“鏈城”;二是基于產業層面,培育產業生態,推動“區塊鏈+”,將婁底的區塊鏈成熟應用帶到其他地區落地,將婁底打造成“區塊鏈產業之城”。[2020/9/28]
該腳本的目的是為每個合約生成一個JSON,每個JSON都包含已編譯的合同信息。這些JSON將存儲在名為build/的輸出路徑中
構建腳本的步驟如下:
創建構建/目錄。
獲取我們的合同來源。
編譯合同并將輸出寫入文件。
聲音 | 廣州社科院黨組書記:要敏銳感知區塊鏈等前沿 把握趨勢:12月13日上午,廣州市社會科學院2019年度重大課題成果發布會舉行,會議集中發布了《廣州提升國際大都市品牌形象研究》等14項重大課題成果。市社科院黨組書記、院長張躍國表示,要敏銳感知前沿、把握趨勢。如“大智物云”、區塊鏈等技術加速變革,除了對經濟體系、產業結構產生決定性影響之外,對社會生產組織體系、社會結構和城市治理,也會產生前所未有的深刻影響。[2019/12/14]
第1步-創建build/文件夾。
這一步是最簡單的,因為我們只需要了解JavaScript的一些基礎知識。
現在要將所有文件的來源都放到智能合約文件夾中。在這一步中,只需要JavaScript就不需要以太坊概念,但還是有點復雜。
對于contracts文件夾中的每個文件,我們在sources對象中添加一個新字段,其中鍵是文件名,值是.sol文件的內容。
聲音 | 李曉楓:區塊鏈在金融行業、銀行業的開展 今年已出現規模化成果:在海南國際離岸創新創業示范區建設暨區塊鏈?數字資產交易技術創新高端論壇上,原央行金融信息化研究所所長李曉楓發表題為《銀行業區塊鏈探索與實踐》演講。李曉楓在演講中表示,區塊鏈在金融行業、銀行業的開展在今年出現規模化成果,經過幾年研討、概念驗證,現在基礎設施建設提上了歷史日程,從人民銀行來看已經組織基礎設施建設,包括檢測認證這套體系正在建設中。[2019/12/1]
第3步-編譯并寫入輸出
現在我們已經有了輸出文件夾和智能合約的內容,是時候編譯它們了。
首先,我們必須定義一個對象,該對象將作為Solidity編譯器的信息輸入。
language:我們智能合約的編程語言,目前是使用Solidity,但你也可以選擇其他編程語言。
動態 | 澳大利亞區塊鏈咨詢公司DigitalX推出比特幣基金:據AMBCrypto報道,澳大利亞區塊鏈咨詢和資產管理公司DigitalX宣布將推出自己的獨立比特幣基金。該基金將通過非上市結構進入,使投資者通過“熟悉且低成本”的投資體驗接觸比特幣市場。DigitalX目前持有431個比特幣,該公司將使用自己的215個比特幣來啟動比特幣基金。[2019/11/13]
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并查看我們在區塊鏈中部署的智能合約。
最后,我們已經部署了智能合約,并且每個人都可以訪問。我希望這篇文章有所幫助。
尊敬的用戶: 為慶祝XRP進入市值前三主鏈,同時為交易所用戶提供福利。火幣錢包特此開展“來火幣錢包,免費激活XRP賬號“活動.
1900/1/1 0:00:00前言: 不多說,很簡單,現貨進場,合約低多,照著多頭思路猛懟就完事! 消息面: 1.今日恐慌與貪婪指數為75,貪婪程度增強,等級仍為貪婪.
1900/1/1 0:00:0016日BTC強拉被布林線上軌打回,收上影線,18日BTC創新高小小拉回,今天BTC迎來接近3個點的下跌,七日來有望收陰線.
1900/1/1 0:00:00摘要:此前深陷黑客、破產和訴訟糾紛的Mt.Gox交易所前CEOMarkKarpeles接受了區塊鏈媒體Cointelegraph的采訪,他談及了自己現在工作的公司的情況.
1900/1/1 0:00:00《國際反洗錢金融行動特別工作》即將發布針對加密貨幣業務。另一方面BTC突破8000美元至9000美元大關,在區間內持續震蕩,走勢變強,或有沖擊的可能.
1900/1/1 0:00:00盡管對區塊鏈的興趣仍然很高,但炒作與市場現實之間仍存在巨大差距。據Gartner的一份報告,只有11%的首席信息官表示他們已經部署或正在進行區塊鏈短期規劃.
1900/1/1 0:00:00