WU D.F Thu, Mar 26, 2020 10:21 AM
tutorials
blockchain
ethereum
smart contract
solidity
作者:ㄎㄎ笑derDF @dfder
↑ Markdown小廢物ㄎㄎ
我就爛
沒有part1 除非我哪天想到回去補
眾所周知,區塊鏈的其中一個特性是"不可篡改",所以在將智能合約(Smart Contract)上鏈前,需要確保智能合約沒有任何問題,但我當時就出現一個迷思:"如果我是一個區塊鏈的初學者,不可能第一次完美地就把智能合約寫好,肯定需要多次調試修改,如果直接上鏈,但又不能修改,怎麼辦?而且每次在以太坊上鏈都需要花費 Gas,完成一個智能合約豈不要浪費我很多錢,怎麼辦?" 放心,這些都能透過以太坊的測試網絡解決。
以太坊共有四個公開的測試網絡,目前仍在運行共有三個測試網絡(Testing Network,又簡稱 Testnets )予所有開發者進行開發及測試,而且在這些測試網絡上鏈所需要用到的 Token,都可以很容易地獲得,而不需花費真金白銀去購買。
由以太坊官方提供的測試網絡,於2017年4月啟動,Rinkeby 這個名字是以斯德哥爾摩的地鐵站命名的,使用了PoA(Clique PoA)的共識機制。以太坊團隊提供了Rinkeby的PoA共識機制文檔,所以在理論上任何以太坊錢包都可以按照這個文檔,從而兼容 Rinkeby 測試網絡。
共識機制 | 出塊時間 |
---|---|
PoA(Clique PoA) | 約15秒 |
優點 | 缺點 |
---|---|
由於由可信的權威節點控制 Token 的供應,所以會對垃圾攻擊"免疫" | 只支援 geth |
Explorer:找節點資料?trivago
GitHub:開源Repo
Token 來源:只能從這個網址(faucet)獲得貨幣
介面炫炮
免費貨幣好拿(待會說明)
多個錢包直接支援
在MetaMask錢包中切換至測試網路
複製你的錢包Account address
在twitter或FB發出一篇含有你Account address的公開貼文
複製該貼文的URL (Direct link)
使用此網址 貼上
BANG!
讓子彈飛一會兒讓區塊練計算這筆交易一下
Magic!出現啦!我是有錢人啦
在新版的IDE介面中,有很多功能已經被模組化且預設不載入了,初次使用的開發者需要自己啟用
在這裡說明如何啟用並且推薦三個必裝模組
先點選左側Plugin
選擇欲用的模組
推薦必裝之模組!
開始寫程式啦~
這邊提供兩個範例
- 自創的helloworld
pragma solidity ^0.6.2; contract HelloWorld{ string str = "HelloWorld"; function getTheWorld() public view returns(string memory){ return str; } }
- SimpleStorage
pragma solidity ^0.6.2; contract SimpleStorage { uint storedData; string storedString; function set(uint x) public { storedData = x } function setString(string memory x) public { storedString = x; } function get() public view returns (uint) { return storedData; } function getString() public view returns (string memory) { return storedString; } }
smart contract 的操作是需要代價的
在區塊鍊上儲存資料 部署smart contract需要代價
讀取 查詢交易記錄則不需要
撰文當下測試的cost
部署合約!
儲存一個uint 5678
儲存一個string "df 666"
儲存一個UUID
儲存一個sha256
cost (unit: ETH)
部署合約 | 儲存一個uint 5678 | 儲存一個string "df 666"! | 儲存一個UUID | 儲存一個sha256 |
---|---|---|---|---|
0.000248 | 0.000041 | 0.000043 | 0.000069 | 0.000039 |
Reference Smart Contract 開發 https://ithelp.ithome.com.tw/articles/10200900