基于以太坊的测试链发布一个智能合约
生活随笔
收集整理的這篇文章主要介紹了
基于以太坊的测试链发布一个智能合约
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1,創建賬戶
- 使用METAMASK錢包來進行操作,具體的創建過程請自行查閱。創建好的賬戶如下圖所示,賬戶余額顯示為0
- 詳情下面顯示對應賬戶的地址,這個是最關鍵的信息
- 首先選擇左上角頭像旁邊的按鍵,切換網絡,此處選擇Ropsten測試網絡
- 然后點擊存入,向水管智能合約申請以太幣進行測試
- 選擇測試水管這一條目選項,點擊獲取Ether?
?2,轉賬
進入如下的頁面
- 首先查看user里面的地址是是否和先前創建的賬戶一致,如果一致代表沒有問題
- 點擊faucet的綠色按鍵,request 1 ether from faucet,點擊一下申請一個比特幣
- 如果網絡狀況良好,只需要10多秒以內,就可以看到transactions顯示的一串哈希序列的交易信息,理論上只需要點擊這個哈希序列就可以看到這筆交易的具體信息,但是由于不可抗力原因,查詢網站是訪問不了的
3,查看交易
- 點開查詢網址,輸入賬戶的地址(點擊賬戶地址就可以自動復制),最下面顯示的是剛才交易的具體信息,上面以546d757結尾的哈希序列就是交易信息,下一行的以397647結尾的字符串是合約賬戶的地址,后面是賬戶地址。表示一筆交易從合約賬戶轉到用戶的賬戶地址。
- 這次點擊交易的哈希序列,就可以查看更加具體的信息,截屏如下
相關信息介紹如下
- Time 區塊創建的時間
- Block 交易信息所處的高度
- Confirmations確認數?
- Nonce 防止重放攻擊/雙花攻擊
- Value 交易的錢數
- Fee費用
- Gas limit消耗gas的上限,
- Gas used用了多少gas
- gas price指gas的價格
- Input data相當于微信的轉賬說明,轉賬添加input data少見,一般用在智能合約中
4,編寫合約
寫一個智能合約,實現水管合約的功能
- 進入Remix Ethereum IDE網站,這是一個智能合約的在線編寫運行的網站
- 整體的界面如下圖所示
- 首先,在COMPLIER里面選擇和程序代碼相互匹配的編譯器,比如代碼寫的是編譯器版本大于0.4.17,那么我選擇的編譯器版本是0.4.26
- 可以勾選Auto compline開啟自動編譯或者不勾選,手動編譯
- 如果編譯成功的界面如上圖所示,如果不成功,會顯示出錯的信息,對應修改代碼即可
程序代碼如下
pragma solidity ^0.4.17;contract Faucet{function withdraw(uint amount) public{require(amount <= 100000000000000000);msg.sender.transfer(amount);}function () public payable{} }5,部署合約
- 參考如下界面
- 首先切換ENVIROMNMENT為Injected Web3環境下
- 如果正確無誤的情況下,ACCOUNT會顯示賬戶地址
- 剩余選項選擇默認值
- 點擊Deploy進行合約部署
- 點擊后,需要回到METAMASK錢包對于合約的創建和發布進行確認,確認成功之后,會顯示如下界面
- 回到remix Ethereum IDE,就可以看到我們發布的合約的地址,點擊復制地址,我們需要給合約地址轉賬
- 給合約地址轉賬,注意,需要將數量填寫轉賬的錢數
- 查詢相關信息,將智能合約的地址復制、粘貼到搜索框中,顯示相關信息如下
- 可以看到,可以將該地址識別為以太坊 合約,也可以看到先前的轉賬信息
6,測試水管合約的功能
- 輸入10000000,點擊withdraw,向智能合約發起請求
?
- 查詢合約的交易記錄
- 如下圖所展現的樣子,合約地址向我們的賬戶轉了一筆錢(微乎其微的一筆錢😂😂)
- 詳細的交易信息
- 補充知識
- 如果單純的轉賬,一般gas used都是21000,提升交易費的目的只是為了加快打包的速度
- 一般智能合約會存在input data,這一部分也會造成gas的花費
?難點 nonce 可以查看我先前的文章
- nonce是為了防止雙重支付而誕生的,記錄從此合約產生的每一筆交易數,這個是唯一的
?
?
總結
以上是生活随笔為你收集整理的基于以太坊的测试链发布一个智能合约的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农业etf基金有哪些代码
- 下一篇: java 判断日期为第几天