以太坊智能合約的發展在2018年呈指數級增長,2019年似乎將遵循這一趨勢。有些框架,如Truffle,可以幫助我們快速構建和維護智能合約,如果您想讓親自動手體驗的話,我將解釋如何編譯您的智能合約,并使用自己的腳本將其部署到以太坊網絡。
注意:我將使用簡單的智能合約,因為本文的目的只是展示如何編譯和部署腳本。
項目具有以下結構:
文件夾合同包含我們的智能合約。對于這篇文章,我們將使用兩個簡單的智能合約:
MyContractA.sol
MyContractA.sol
如您所見,我們有兩個文件,其中一個包含兩個智能合約,證明我們可以擁有任意數量的智能合約。
腳本編譯
現在,一旦我們有了初始項目結構和智能合約,就可以開始構建編譯腳本了。
數據:過去12個月以太坊區塊鏈已激活近2700萬個新錢包:金色財經報道,區塊鏈基金Variant Fund鏈上分析師Jack Gorman在社交媒體披露數據顯示,過去12個月以太坊區塊鏈上創建激活了超過2669萬個新錢包,這意味著平均每30天就有超過200萬個新ETH地址在鏈上活動。不過Jack Gorman也指出,每月以太坊鏈上至少授權一筆交易的地址數量只有450-700萬個,而且超過70%的錢包會在活動3 天后沉寂,而66%的活躍交易地址僅活躍一天,95.5%的活躍交易地址過去12個月內活躍時間少于10天,分析認為低活躍度的以太坊鏈上錢包占據主導地位可能由投資者熱衷追求代幣空投導致。(U.today)[2023/7/30 16:07:07]
該腳本的目的是為每個合約生成一個JSON,每個JSON都包含已編譯的合同信息。這些JSON將存儲在名為build/的輸出路徑中
區塊鏈MESCBN平臺#dltledgers以1億美元估值完成850萬美元融資,Centrum Capital等參投:9月21日消息,總部位于新加坡的區塊鏈跨企業供應鏈網絡(MESCBN)平臺#dltledgers宣布以1億美元估值完成850萬美元B輪融資,Centrum Capital和Tata Group等參投。
據悉,#dltledgers的MESCBN區塊鏈平臺可以簡化供應商和分銷商的業務流程,節省供應鏈中多方交易的時間、精力和成本,并將供應鏈市場帶入Web3世界,其客戶包括億滋食品、塔塔汽車、澳新銀行、資生堂、OCP、非洲貿易發展銀行等。(PR News Wire)[2022/9/22 7:12:14]
構建腳本的步驟如下:
創建構建/目錄。
獲取我們的合同來源。
BitCherry創始人Paul:BitCherry將助力區塊鏈金融應用良好發展:12月10日,BitCherry作為主要贊助方受邀參加巴黎區塊鏈周PBWS 2020。BitCherry創始人及CEO Paul作為特邀嘉賓參加了主題圓桌討論,針對區塊鏈技術在商業領域的易用性發表看法,他表示:“區塊鏈本身的金融屬性為各國企業提供了運用新商業模式的機會,而隨著傳統企業大面積布局區塊鏈,區塊鏈技術的商業易用性成為制約傳統企業轉型的重要問題。BitCherry作為業內的技術先驅,將通過深厚的技術實力為全球企業提供友好易用的區塊鏈基礎設施,支持不同商業場景的定制化區塊鏈應用,并提供完備的商業級區塊鏈解決方案,BitCherry的測試網絡即將于近期上線測試,此次測試網絡的上線也將加速推動這一進程。”[2020/12/11 14:53:33]
編譯合同并將輸出寫入文件。
動態 | 區塊鏈項目YeeCall視頻編碼專利通過中國專利局審查 正式簽發:今日,區塊鏈項目YeeCall的視頻專利《一種自適應視頻編碼方法及終端》通過中國專利局官方審查,被予以授權并獲得了授權專利。據了解,該發明可在終端進行視頻通話的過程中真實地反應出對端使用者真正的感興趣區域,為用戶提供良好的視頻通話視覺體驗。[2019/3/1]
第1步-創建build/文件夾。
這一步是最簡單的,因為我們只需要了解JavaScript的一些基礎知識。
現在要將所有文件的來源都放到智能合約文件夾中。在這一步中,只需要JavaScript就不需要以太坊概念,但還是有點復雜。
對于contracts文件夾中的每個文件,我們在sources對象中添加一個新字段,其中鍵是文件名,值是.sol文件的內容。
第3步-編譯并寫入輸出
現在我們已經有了輸出文件夾和智能合約的內容,是時候編譯它們了。
首先,我們必須定義一個對象,該對象將作為Solidity編譯器的信息輸入。
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并查看我們在區塊鏈中部署的智能合約。
最后,我們已經部署了智能合約,并且每個人都可以訪問。我希望這篇文章有所幫助。
火星財經APP一線報道,6月13日下午5時,「火星總編時刻」第29期在交易所創新學習群展開,本期對話主題為「交易所打新下半場,全面解讀CoinAll&Pivot新玩法」.
1900/1/1 0:00:00親愛的社區用戶: FT公鏈將于2019年6月16日主網上線,FT公鏈開發團隊現已公布FT映射方案和主網映射流程.
1900/1/1 0:00:00邀行業首席,談市場現狀,見趨勢未來!第11期《對話首席——幣安何一DEX專訪》線上直播,于6月13日下午3點順利舉辦.
1900/1/1 0:00:00支持權益證明共識算法的以太坊2.0零階段將會于2020年1月3日,也就是七個月之后正式發布。根據以太坊2.0研究院賈斯汀·德雷克透露,之所以選擇在1月3日這天推出,主要是為了紀念比特幣創始區塊的.
1900/1/1 0:00:00前言:在以太坊上用其他代幣(非ether)來支付交易費用,似乎有了更多選擇,表面上可行,但實際上不可行。這涉及到鏈的安全,激勵體系閉環以及用戶體驗的問題.
1900/1/1 0:00:00房產交易是全球最大的資產交易類型之一。全球房產總值高達228萬億美元,見下圖:按交易形式的不同,可分為房地產轉讓、房地產抵押、房地產租賃 據數據估計: 每年全球房地產轉讓市場的總市值為20萬億美.
1900/1/1 0:00:00