我連敲3年代碼, 工資卻不如剛入職的TA!

以太坊讓世人第一次知道了智能合約的概念,爲了支持智能合約,以太坊必須把自己變的特別像一臺計算機,那麼全球的節點連接到一起,怎麼能像一個計算機呢?那就是使用 EVM(以太坊虛擬機)技術,讓每個節點的鏈表上可以運行智能合約的指令。全球的以太坊節點連接起來,也就形成了全球計算機。

對有一定編程經驗的人來說,Solidity 開發絕對不是什麼難事。Solidity 確實極容易上手,但是確實有很多細節需要注意的。一個智能合約是怎樣部署到以太坊網絡的呢?

以太坊智能合約可以通過編輯器經過rpc遠程調用(默認用8545端口)發佈到geth節點上,最終在以太坊網絡中運行。

衆所周知,我們在以太坊上執行智能合約是需要消耗 gas 的,也就是說沒有以太是不能運行的,這對很多童鞋來說表示難以理解。其實這涉及到經濟系統的利益問題,我們執行了一個指令,整個網絡都要同步數據,而這些指令是需要礦工進行打包交易的,如果礦工的利益不能保證,最後也就將導致整個網絡無人維護。

那麼問題又來了,礦工有利益,開發者的收益如何實現呢?這就要具體問題具體分析,有些需求是爲了保證數據存儲在區塊鏈上永不丟失,這個是保存類價值。對於開發者來說,開發出來爆款的 DApp 就是最大的收益,參考之前火爆的加密貓。

TPS 較低也是阻礙區塊鏈發展的一大原因,這是區塊鏈的架構決定,達成共識方面本就需要時間。作爲應用的開發者來說,應該讓用戶有更好的體驗。對於一個未確認的交易,我們可以採用監控事件的方式進行處理,這就是一個異步模式,這個事件其實類似於我們平常寫程序裏經常使用的 print。

合約代碼如下:

js代碼中添加事件的處理(map_event.js)

運行時啓動geth需要注意參數:

geth --datadir ./data --networkid 15 --port 30303 --rpc --rpcaddr 0.0.0.0 --rpcport 8545 --rpcvhosts "*" --rpcapi 'db,net,eth,web3,personal' --rpccorsdomain "*" --ws --wsaddr "localhost" --wsport "8546" --wsorigins "*" --nat "any" --nodiscover --dev --dev.period 1 console 2> 1.log

運行效果如下:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章