以太坊智能合約的發展在2018年呈指數級增長,2019年似乎將遵循這一趨勢。有些框架,如Truffle,可以幫助我們快速構建和維護智能合約,如果您想讓親自動手體驗的話,我將解釋如何編譯您的智能合約,并使用自己的腳本將其部署到以太坊網絡。
注意:我將使用簡單的智能合約,因為本文的目的只是展示如何編譯和部署腳本。
項目具有以下結構:
文件夾合同包含我們的智能合約。對于這篇文章,我們將使用兩個簡單的智能合約:
MyContractA.sol
MyContractA.sol
如您所見,我們有兩個文件,其中一個包含兩個智能合約,證明我們可以擁有任意數量的智能合約。
腳本編譯
現在,一旦我們有了初始項目結構和智能合約,就可以開始構建編譯腳本了。
中遠海特加入全球航運區塊鏈聯盟GSBN:1月20日消息,中遠海特(COSCO Shipping Specialized Carriers)已加入全球航運商業網絡(GSBN),并成功簽發了首份散貨電子提單(eBL)。中遠海特主要承運特殊貨物,包括不適合集裝箱裝載的特大型、超重型和散裝貨物。
據介紹,GSBN是一個獨立的、非營利性的技術聯盟,推出了基于區塊鏈構建的國際貿易運營平臺。該平臺由GSBN與螞蟻鏈、阿里云、甲骨文和微軟聯手提供技術支持,以區塊鏈技術,優化傳統的國際貿易流程,加快航運業數碼化轉型。在中國市場,GSBN與螞蟻鏈和阿里云合作,共建這個新技術平臺。(Asia Cargo News)[2023/1/20 11:23:08]
該腳本的目的是為每個合約生成一個JSON,每個JSON都包含已編譯的合同信息。這些JSON將存儲在名為build/的輸出路徑中
紐約梅隆銀行區塊鏈負責人:需要“關注”加密資產的情況:9月8日消息,紐約梅隆銀行區塊鏈負責人表示,需要“關注”加密資產的情況。(金十)[2021/9/8 23:09:47]
構建腳本的步驟如下:
創建構建/目錄。
獲取我們的合同來源。
編譯合同并將輸出寫入文件。
第1步-創建build/文件夾。
這一步是最簡單的,因為我們只需要了解JavaScript的一些基礎知識。
現在要將所有文件的來源都放到智能合約文件夾中。在這一步中,只需要JavaScript就不需要以太坊概念,但還是有點復雜。
對于contracts文件夾中的每個文件,我們在sources對象中添加一個新字段,其中鍵是文件名,值是.sol文件的內容。
動態 | 英國知識產權局與區塊鏈版權公司合作開展區塊鏈計劃:據worldipreview報道,英國知識產權局(IPO)聯合視聽和圖像組織及區塊鏈版權公司Jaak,調查區塊鏈技術的潛在用途。根據今日公布的合作計劃,該工作小組將探討區塊鏈如何改善公共領域作品的可利用性,例如版權如何適用于保護已過期或提供給公眾免費使用的作品。[2018/11/28]
第3步-編譯并寫入輸出
現在我們已經有了輸出文件夾和智能合約的內容,是時候編譯它們了。
首先,我們必須定義一個對象,該對象將作為Solidity編譯器的信息輸入。
language:我們智能合約的編程語言,目前是使用Solidity,但你也可以選擇其他編程語言。
sources:我們合同的內容。
金色財經現場報道 胡磊:區塊鏈技術推動數據營銷行業健康發展:在IBM & Avazu區塊鏈技術賦能與場景應用沙龍上,IBM沃森與云平臺事業部、云計算區塊鏈解決方案專家胡磊發表題為《全球廣告和游戲行業的區塊鏈業態》主題演講,他指出,當前互聯網廣告面臨著虛假流量和數據、廣告效果可信評估、數據協作的安全和可信方面的挑戰。區塊鏈作為制造信任的機器,為企業帶來了節約時間、消除成本、降低風險、提高信任等價值,行業在不斷嘗試利用區塊鏈的技術推動數據營銷行業向更加健康的方向發展。[2018/6/6]
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并查看我們在區塊鏈中部署的智能合約。
最后,我們已經部署了智能合約,并且每個人都可以訪問。我希望這篇文章有所幫助。
親愛的用戶: 比特國際數字資產平臺創投區現已上線HDS,開放HDS/USDT交易對。 HDS項目介紹 HotDollars并非是一個單一的區塊鏈項目或商業應用,而是一個區塊鏈智能合約技術集與產品.
1900/1/1 0:00:00大家好,Telegram本月初更新了新版英文白皮書。看完很是喜歡,于是我翻譯了Telegram白皮書中文版本并創建了這個微信公眾頻道,喜歡的可以關注.
1900/1/1 0:00:00作者:Yawn鏈接:https://zhuanlan.zhihu.com/p/68694986來源:知乎作為跨鏈的頭部項目,Cosmos和Polkadot可算是人盡皆知.
1900/1/1 0:00:00來源:力場?阿華區塊鏈 EOS周報主要包括了兩部分:EOS社區動態和EOS數據統計。 ?一、EOS社區動態 ?在分享EOS周數據之前,我們先看看最近EOS社區發生的一些重要事件.
1900/1/1 0:00:00Telegram終于要面向公眾發售了。不過,Telegram這一次是采用的lEO模式,在加密貨幣交易所Liquid上架,向有限國家的用戶限量發行.
1900/1/1 0:00:00今天,無論你身處北京、硅谷還是倫敦,無論你來自區塊鏈世界還是古典互聯網世界,都無法繞過一個主角:Facebook。Libra,這個象征著平衡與公正的詞匯,吸引了全世界的目光.
1900/1/1 0:00:00