比較ERC與TRC的創建交易流程是如何做到防止重複交易
最近參與了有關區塊鏈相關的專案,系統內部的服務會去調 web3 的 API 做 ERC 或 TRC 的鏈路的 USDT 轉帳。實際下去開發後才發現在這兩個鏈路上創建交易的流程雖然有一些不一樣,但是卻都又能解決了重複交易的問題。因此趁著記憶猶新時寫了這篇:比較 ERC 與 TRC 的創建交易流程以及它們是怎麼防止同一筆交易被上鏈多次導致重複交易的。
最近參與了有關區塊鏈相關的專案,系統內部的服務會去調 web3 的 API 做 ERC 或 TRC 的鏈路的 USDT 轉帳。實際下去開發後才發現在這兩個鏈路上創建交易的流程雖然有一些不一樣,但是卻都又能解決了重複交易的問題。因此趁著記憶猶新時寫了這篇:比較 ERC 與 TRC 的創建交易流程以及它們是怎麼防止同一筆交易被上鏈多次導致重複交易的。
上一篇我們已經將合約部署至區塊鏈上了,在這篇執行合約前
我想要先講一下如果往後把terminal關掉了,要怎麼把合約的實例(instance)從區塊鏈上設回變數
如果你是接續上一篇做到這裡的,也就是在geth
中輸入vote.address
有反應的,可以跳過這部份
在取回合約實例之前,我們必須要有ABI及合約地址這兩樣才能把合約實例找回來
ABI類似合約的描述檔,記錄這個合約有哪些function,function有哪些input、回傳、範圍…等
經過上一篇建立以太坊私有鏈(一) 節點部署,目前已經建立創世區塊並且成功讓兩個節點相識了
(在terminal鍵入net.peerCount
應該會顯示1,如果還是0的檢查看看是不是前面漏了什麼步驟)
接下來要讓兩個節點開始挖礦,一起維護這條私有鏈
挖礦之前先調用personal.unlockAccount()
解鎖帳戶
參數的eth.coinbase
會refer到剛剛創的帳戶
terminal1 $> personal.unlockAccount(eth.coinbase)
terminal2 $> personal.unlockAccount(eth.coinbase)
本篇會需要一些區塊鏈的background knowledge
起碼要知道什麼是
在操作上比較能catch到每一步的意義
我們等等會使用到geth
及puppeth
這兩個工具,介紹一下它們的用途
geth
是Go語言
的產物,能讓電腦在terminal下運行以太坊節點,geth
是由Go-Ethereum
縮寫來的
而puppeth
能幫助我們快速寫好私有鏈的創世區塊配置(運行配置)的工具
如果不用puppeth
也是可以,但就是要自己寫JSON
檔
網路上很多範例的JSON
檔都out of date,在初始化時就一直報錯,光debug就澆滅了學下去的熱情
所以還是推薦用puppeth
,反正自geth
1.6版本後,安裝時就已經標配puppeth
了
2017年12月比特幣匯率創新高來到 20000鎂/1比特幣
很多人就此一窩蜂買礦機、買顯卡,希望也可以參與到挖礦帶來的收益
(當然現在比特幣的難度已經不是個人礦機、顯卡可以挖得動的了)
我當時為了理解區塊鏈的原理也有試著去挖門羅幣
(因為筆電只有CPU,門羅幣是唯幾還能用CPU挖的幣別)
回到主題,現在已經弄懂整個近年來很熱門的區塊鏈的概念了
所以想分享自己所理解的給還不知道什麼是挖礦的人
近期迴響