教練,我”只”想學Solidity

Contract才是Dapp的核心,不是nodejs

如果你想要研究Solidity,但沒碰過nodejs,那麼本篇是專門為你而寫的。只需要使用網頁版的Solidity編輯器(網址),以及安裝MetaMask就可以開心的撰寫、部署、測試智能合約。


會想寫這篇的原因是這樣的,當初我想學如何寫Solidity,作為一個初學者大概就是直接裝Ethereum官網提供的Wallet,使用它內建的編輯器來開發,但是部署的時候經常會失敗,也找不出原因,區塊同步又非常緩慢,實在是不太好用。

耗費一番工夫google之後,發現 testrpc + truffle 也是不錯的開發工具組合,然而我就是這時候開始被nodejs綁架的XD,寫完contract之後要再花很多的力氣寫nodejs才能測試啊。不管你的Solidity學習路徑為何,總是會碰到nodejs,實在是一件非常奇怪的事情啊!


1. 安裝MetaMask

這是一個Chrome的套件,所以你要先安裝Chrome,再安裝MetaMask,裝完之後Chrome右上角就會有隻狐狸跑出來,開好帳號之後就可以進入下一步。

點一下會跳出操作視窗
捲到最下面就可以按continue
設定一個密碼(狐狸會偷看XD)
記住隨機產生的12個字,可以用來產生一樣的帳號 (你看到的一定不是上面這組XD)
這樣就開好帳號了,因為是在Ropsten testnet所以裡面有1 eth可以用,很讚

2. 使用網頁版的Solidity編輯器

step 1. 開啟browser-solidity網頁。

第一次使用會自動載入一個範例

step 2. 為了容易示範首先換個簡單的範例,然後確認有選擇Injected Web3選項,之後按下Create就會自動透過MetaMask發送部署Contract的交易。

按下Create之後會跳出MetaMask的視窗
按下Accept
按開狐狸,就可以看到多了一個交易紀錄
等一下就可以看到交易成功,這將就部署好Contract

step 3. 回到browser-solidity,就可以看到多了兩個contract定義的function可以使用,constant function可以直接使用,就像下圖的get,其他的function一樣會透過MetaMask發出交易,如下圖的set。

任意輸入set的值,按下set,就可以看到下圖
等交易成功之後,再get就可以看到值已經變成256

有鑒於Dapp的漏洞頻傳,大家還是多花點時間在Contract的開發上面吧。

補充:在browser-solidity的第二頁可以設定要傳送多少ether給contract,這可以用來測試payable function。

如上的0.5 ether
One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.