--- title: Solidity 編譯、部署、調用 --- # Solidity 編譯、部署、調用 ###### tags: `BlockChain` 程式碼: > https://github.com/ronnielin8862/solidity-practice/tree/master/cmd/testGetAndPut 主要參考文章: >https://goethereumbook.org/transaction-raw-create/ ## 坑點說明: 1.編譯 --- * brew安裝上除了內文提到的solidity,還要安裝ethereum,不然會找不到abigen的指令。 (浪累我三小時在找怎麼安裝abigen的方法) * 編譯時文章中的abi、bin編譯,並沒有正常產出對應文件,要自己編譯後放入,且編譯後出來的內容要自行去掉表頭。 (照文章做沒有產出對應;將編譯出來的資料放進去沒去表頭,兩個浪費我四、五個小時在錯誤的方向試圖解決錯誤訊息) * abigen指令中的pkg參數會改變編譯後的某些methon name,建議參數用這合約的名稱,後面比較好找。 (浪費我兩小時在那邊找文章內沒有的method name,找不到又懷疑是編譯過程操作有誤導致,讓我重新編譯新的.sol檔案。 浪費三四個小時) 2.部署 --- * 使用容易取測試幣的ropsten,不會被其他智障的測試幣浪費一堆時間,要你去推特推廢文。 (在其他智障測試幣上取半天取不到,換個測試幣還是一樣,跟同事討論以後建議我用側鏈做測試。 然後發現轉以太到測試鏈要六百塊。 後來才在小天才建議下用rop可以直接領的測試幣。 浪費我半天時間)_ * 文內建議的GasLimit太少,至少在測試鏈上我連續交易失敗都因gas不足。建議多加一個0,節省你寶貴時間。 (交易失敗以後把limit加了兩個0,還是失敗,結果再查才知道也不能給太多。) 3.調用 --- * 修改參數之類行為,需要等待區塊鏈生成,因此不像是在remix vm中那樣即時。可以到ropsten scan觀察。 ## 文章沒提到的: 1. 申請infura: 沒特別困難,就是把申請完帳號的節點貼進來使用 (申請之前自己本地起節點,用了三四個小時,結果可以用web3查餘額,卻不能用golang跟節點正常互動。 然後才又轉到infura...) 2. 調用部署區塊鏈上的智能合約: 要先將該合約程式碼複製下來,編譯成.go以後提供main方法調用裡面的method。 (這塊浪費我超級無敵久時間,卡了整整一兩天的時間在網上狗資源,都沒人提到要先去複製程式碼自己編譯這一點。) ## 使用姿勢: 平常合約編譯建議在remix透過VM確認執行無誤,再透過golang編譯部署到側鏈或測試鏈,做測試環境與正式環境幾乎相同的類似UAT的測試。 都沒問題才算完成一個合約。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up