要在以太坊上構建去中心化應用,你需要知道如何發送交易、簽名并廣播到網絡。通過交易可以轉移以太幣、部署自己的合約以及與其他智能合約交互。在本教程中,我們將向你演示如何放心地執行這些操作,并介紹一些有助于簡化開發工作流的相關代碼庫和命令。
創建以太坊交易
交易是指在區塊鏈上改變狀態的操作。發送以太幣、代幣以及創建或使用智能合約中的函數都屬于交易。如果你對以太坊中的交易還不太熟悉,可查看這些有關賬戶、合約以及以太坊交易類型的實用介紹。
在本文的代碼庫中,你還將找到一系列腳本,向你演示如何使用下面兩種最常用的Javascript庫與以太坊交互:web3
}
該合約有一個函數,任何人都可以使用message進行調用。它將觸發一個事件,該事件回傳輸入的message。
合約編譯
在網絡上部署合約之前,我們需要先編譯合約。這里包含一個簡單的compile.js腳本可用于此目的:
nodecompile.js
編譯合約后,在主目錄中將顯示一個Demo.json文件。該文件包括合約字節代碼以及合約交互所必需的應用程序二進制接口(ABI)。
合約部署
下面這些部署腳本對ethers.js和web3.js均適用。運行其中的任何腳本都可以部署合約:
nodeethers/deploy.js#或nodeweb3/deploy.js
幣安:已完成STG在以太坊、Arbitrum One和Polygon等區塊鏈的合約Swap:金色財經報道,根據幣安最新公告顯示,幣安已完成AVAX C Chain、Arbitrum One、BNB 智能鏈 (BEP20)、以太坊 (ERC20)、Fantom和Polygon 區塊鏈的新STG代幣與原始STG代幣互換,原STG代幣將重新采用STG作為幣安平臺上的交易代碼,STG的存款和取款現已開放;被撤銷的STG代幣將采用STGOLD作為交易代碼,STGOLD充值現已開放,將不再支持STGOLD代幣提現。幣安提醒,在初始交換完成后提取STGOLD的用戶在Deposit Crypto頁面重新存入STGOLD,因為STGOLD沒有價值,然后可以繼續通過轉換功能(convert function)將STGOLD代幣兌換為STG 。[2023/3/18 13:12:02]
部署合約后,你將收到交易哈希。你可以使用區塊瀏覽器或getTransaction()和eth.getTransactionReceipt()進行檢查。礦工挖到部署交易后,腳本將輸出新合約的地址。
合約交互
部署合約后,你可以與合約交互。你需要通過將合約地址傳遞到to參數,并傳遞一些數據告訴合約如何執行data參數,來執行交易。
Web3實用程序庫為你提供用于簽發合約的高層接口,并且為你生成data參數。
下面簡單解釋這些庫的背后操作:data字段的第一部分是與所調用的合約方法關聯的函數選擇器。我們可以通過獲得函數名稱哈希的前4個字節及其括號內的參數類型來計算函數選擇器。例如,字符串transfer(address,uint256)可以散列到4字節函數簽名0xa9059cbb中。函數簽名與RLP編碼的函數參數連接,構成交易data字段。有關合約ABI規范和參數編碼工作的更多信息,請參閱SolidityABI規范。
Tether在以太坊網絡增發2億枚USDT(已授權未發行):11月30日晚間,Tether及Bitfinex首席技術官Paolo Ardoino發推稱,Tether已在以太坊鏈上新增發2億枚USDT(北京時間11月30日20:58:19)。他強調稱,這是一筆已授權但未發行的交易,意味著該金額將用作下一次發行請求的庫存。交易哈希值為0x7fca218d34dbbf7457672144a47eebed19141431950711ba3081f28eef635491。[2020/11/30 22:37:58]
下面這些合約交互腳本對ethers.js和web3.js均適用。這些腳本配置為與已有的合約交互,但你可以編輯ethers/call.js的這一行或web3/call.js的這一行,然后將其替換為你部署合約的地址。
你現在可以運行:
nodeethers/call.js#ornodeweb3/call.js
恭喜!你已經部署了以太坊智能合約并和它交互。你現在可以繼續構建一些精彩內容!
Infura為開發者提供對以太坊和IPFS網絡的快速可靠訪問。我們提供免費核心服務以及開發者構建去中心化應用所需的一切工具和資源。
衷心感謝_LucianBoca_對本指南的編寫做出的廣泛貢獻。有關更多_Web3_教程。
參考資料
有關賬戶、合約以及以太坊交易類型的實用介紹:https://medium.com/@kctheservant/transactions-in-ethereum-e85a73068f74
動態 | USDC在以太坊網絡新增發100萬枚代幣:據Whale Alert監測,北京時間9月19日22時09分 ,USDC向以太坊網絡新增發近100萬枚USDC。[2019/9/19]
在本文的代碼庫中:https://github.com/INFURA/demo-eth-tx
我們的技術指南,其中詳細闡述了兩者的相同點和不同點。:https://learnblockchain.cn/article/1851
以太坊合約ABI:https://learnblockchain.cn/docs/solidity/abi-spec.html
首選Web3庫:http://blog.infura.io/ethereum-javascript-libraries-web3-js-vs-ethers-js-part-i/?&utm;_source=infurablog&utm;_medium=referral&utm;_campaign=tutorials&utm;_content=tutorial:_deploy_contracts
EthSigner:https://docs.ethsigner.pegasys.tech/en/stable/
Metamask:https://metamask.io/
Gnosis:https://gnosis.io/
動態 | WBTC將于今日在以太坊區塊鏈上推出:據ethnews報道,Wrapped bitcoin (WBTC)將于北京時間1月31日9:00在以太坊區塊鏈上推出。據早先報道,WBTC將1:1由比特幣支持。該計劃背后的公司包括多中心交易平臺初創公司Kyber Network和Republic Protocol,以及加密貨幣托管公司BitGo。[2019/1/31]
Argent:https://www.argent.xyz/
WalletConnect:https://walletconnect.org/
在MetaMask中如何發送交易:https://docs.metamask.io/guide/sending-transactions.html#example
如何使用NodeJs創建交易、簽名以及在不同賬戶間發送原始交易:https://medium.com/blockchain-musings/how-to-create-raw-transactions-in-ethereum-part-1-1df91abdba7c
eth_sendRawTransactionRPC調用:https://eth.wiki/json-rpc/API#eth_sendrawtransaction
eth_sendTransaction:https://eth.wiki/json-rpc/API#eth_sendtransaction
動態丨以太坊新型攻擊手法披露 建議不要在以太坊節點放私鑰文件:慢霧科技近日披露了以太坊新型攻擊手法, 新的攻擊手法過程簡述:
1. 以太坊節點的 RPC 接口開放,但是賬戶沒有 ETH (此時黑客已經通過掃描發現目標)
2. 黑客立即構造交易并簽名(簽名設置的金額為 X ,nonce 設置為當前的 N+1,N+2,...,N+N ),可以構造多個
3. 以太坊節點發現自己的問題,關閉 RPC 端口
4. 以太坊節點認為自己已經安全,開始往賬戶轉入 ETH
5. 其實此時攻擊者通過程序自動化實時監控發現你的轉入,立即開始廣播之前 RPC 開放的時候簽名好的信息
6. 攻擊完成 這種攻擊手法非常隱蔽且真實存在。
慢霧提醒用戶:以太坊節點里杜絕存放私鑰文件。只要節點沒有私鑰就不會出現此類攻擊,如果有,安全起見建議暫停節點,把相關資產安全轉移后廢除這個私鑰文件,并在其他隔離機器里重新生成新的私鑰,未來采用私鑰簽名交易+節點廣播交易的方式來進行轉賬操作。[2018/6/29]
HyperledgerBesu:https://besu.hyperledger.org/en/stable/
EthSigner:https://docs.ethsigner.pegasys.tech/en/stable/
eth_sendTransaction:https://docs.ethsigner.pegasys.tech/en/stable/HowTo/Transactions/Make-Transactions/#eth_sendtransaction
一位簽名者:https://docs.ethsigner.pegasys.tech/en/latest/Tutorials/Start-EthSigner/
多位簽名者:https://docs.ethsigner.pegasys.tech/en/latest/Tutorials/Multifile/
進行交易:https://docs.ethsigner.pegasys.tech/en/stable/HowTo/Transactions/Make-Transactions/
Infura:https://infura.io/?&utm;_source=infurablog&utm;_medium=referral&utm;_campaign=tutorials&utm;_content=tutorial:_deploy_contracts
Node.js:https://nodejs.org/en/
Infura:https://infura.io/?&utm;_source=infurablog&utm;_medium=referral&utm;_campaign=tutorials&utm;_content=tutorial:_deploy_contracts
使用ethers.js庫:https://github.com/INFURA/demo-eth-tx/blob/master/ethers/send.js
使用web3.js庫:https://github.com/INFURA/demo-eth-tx/blob/master/web3/send.js
Truffle:https://learnblockchain.cn/docs/truffle/
Buidler:https://github.com/nomiclabs/buidler
Remix:https://remix.ethereum.org/
ethers.js:https://github.com/INFURA/demo-eth-tx/blob/master/ethers/deploy.js
web3.js:https://github.com/INFURA/demo-eth-tx/blob/master/web3/deploy.js
函數選擇器:https://solidity.readthedocs.io/en/v0.5.3/abi-spec.html#function-selector
SolidityABI規范:https://learnblockchain.cn/docs/solidity/abi-spec.html
ethers.js:https://github.com/INFURA/demo-eth-tx/blob/master/ethers/call.js
web3.js:https://github.com/INFURA/demo-eth-tx/blob/master/web3/call.js
這一行:https://github.com/INFURA/demo-eth-tx/blob/master/ethers/call.js#L23
這一行:https://github.com/INFURA/demo-eth-tx/blob/master/web3/call.js#L25
Infura:https://infura.io/?&utm;_source=infurablog&utm;_medium=referral&utm;_campaign=tutorials&utm;_content=tutorial:_deploy_contracts
免費核心服務:https://infura.io/register?&utm;_source=infurablog&utm;_medium=referral&utm;_campaign=tutorials&utm;_content=tutorial:_deploy_contracts
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9558541.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
幣安為何推出第三條鏈?這對BNB意味著什么?
8月31日,根據幣安最新行情顯示,YFI最高觸及39690USDT,目前價格基本穩定在33000USDT左右,至此,YFI成為2020年第一個萬倍幣,用時僅43天.
1900/1/1 0:00:00流動性挖礦的工作方式和工作量證明挖礦非常相似,不同之處在于優先級和實現方式。撰文:DeribitMarketResearch翻譯:Moni盡管流動性挖礦的概念已經存在一段時間了,但之前一直不溫不.
1900/1/1 0:00:00Overview概述 本文將會先從BitMex在中心化世界的地位出發,說明寡頭市場同樣會在DeFi世界出現,第二部分筆者將討論BitMex所遇到的監管挑戰是否會在DeFi世界重現.
1900/1/1 0:00:00BitMEX分析了自比特幣網絡啟動以來的近13億筆非零額交易,發現比特幣交易的精確度水平在逐漸提高.
1900/1/1 0:00:00親愛的CoinW用戶: 時逢圣誕節來臨,為感謝忠實用戶的陪伴及迎接新用戶的蒞臨,CoinW將于2020年12月21日開啟“圣誕感恩回饋”系列活動.
1900/1/1 0:00:00比特幣今天一舉突破1萬美金大關,島娘對于這一重要時間節點,做了一個事后復盤,分享了自己的心得和見解。在文章最后,她總結按照這個趨勢發展下去,2020前后一定會有一波超過2017年的牛市.
1900/1/1 0:00:00