以太坊使用實例
『壹』 以太坊中的計量單位及相互轉換
首先我們來看一下以太幣單位之間的轉換,以太幣的最小單位為wei,1個eth相當於10的18次方wei。通常,大家也使用Gwei作為展示單位。比較常用的就是eth,Gwei和wei。
為了使用和驗證web3的操作命令,我們先進入geth的console控制台,在這里對具體的單位或進制轉換進行詳細的實例演示。
此轉換方法為web3.toDecimal(hexString)。直接在控制台輸入一下命令進行使用此函數進行轉換。
通過此函數將十六進制的0x16轉換為十進制的22。
轉換函數:web3.fromDecimal(number)。
控制台命令及結果如下:
把給定數字或十六進制字元串轉為 BigNumber 類型的實例。
此處轉換需要注意的是BigNumber只會保留小數點後20位,超過20位的部分將會被截取掉。
上面表格中列出了以太幣之間的單位進制,同樣可以使用web3進行相應的轉換,基本函數為web3.fromWei和web3.toWei(number, unit)。
具體實例如下:
其他的相關轉換大家可自行嘗試,下面列出相應的轉換種類:
通過上面的函數,在交易的過程中我們就可以隨意的單位進行發送交易,而不必使用最小單位wei。
通過查詢余額的方法,我們也可以看出區塊鏈中存儲這些數據的單位為wei。
代幣中的單位
在編寫ERC-20的代幣合約時我們可以指定代幣的單位,比如:
這里就指定了代幣單位精確到小數點後幾位。比如精確到小數點後3位,那麼1個代幣存儲時就是1000個最小單位的值。
『貳』 用 ethers.js 發送高 gas 的替換交易
有時在以太坊上,提交的交易因網路擁堵或大量待處理交易而沒有足夠的gas,導致最終不得不等待數小時甚至數天才能打包結算。如果需要高優先順序交易,僅因gas不足,必須使用更高的gas價格和相同的nonce重新發送交易,以盡早被打包。本文將介紹如何使用ethers.js在以太坊測試網上重發交易,並提供相關術語和知識。以下是關於以太坊交易的基礎概念和流程,包括以太坊交易類型、參數、流程、以及簽署交易的詳細解釋。
在以太坊中,交易是與網路互動的方式,每筆交易需要支付gas費用,單位是wei或gwei。以太坊交易涉及三種常見類型,基本參數包括:交易的參數解釋和簽署交易過程。此外,了解交易流程對進行交易至關重要,簽署交易使用發送者的私鑰生成簽名,確保交易安全。
為了重新發送交易,首先需要安裝必要的工具,如NodeJS,並使用它來管理庫和處理JavaScript文件。使用ethers.js庫發送交易,可以通過npm安裝庫。在安裝過程中,可能會遇到node-gyp內部故障或緩存過期問題,可參考相關指南進行解決。
為了重新發送交易,首先需要創建錢包賬號並獲取測試ETH。可以創建一個名為index.js的文件,導入ethers.js庫並使用私鑰創建錢包實例。然後通過Kovan節點獲取測試ETH,復制錢包地址並從水龍頭獲取測試ETH。成功獲取測試ETH後,可以使用免費的以太坊節點URL啟動以太坊節點。
使用ethers.js重新發送交易涉及以下步驟:設置以太坊節點URL、實例化ethersJsonRpcProvider、創建交易對象、設置gasPrice、簽名交易並發送。通過修改gasPrice,可以增加交易的優先順序。驗證交易狀態時,可以使用Kovan瀏覽器的搜索框檢查交易是否成功被打包。
交易的gas價格決定其優先順序,較高的gas價格可以使交易更快得到驗證。重新發送高gas交易時,必須使用相同的nonce值,以避免發送重復交易並導致額外費用。因此,重新發送交易時,確保使用相同的nonce值是關鍵。
總之,通過使用ethers.js重新發送交易,可以解決因gas不足導致的交易延遲問題,通過調整gas價格提高交易優先順序,確保交易盡快被打包。本文章提供的信息將幫助開發者和交易者更好地理解以太坊交易機制,實現更高效、安全的交易。
『叄』 用 ethers.js 發送高 gas 的替換交易
使用ethers.js發送高gas的替換交易,可以按照以下步驟進行:
1. 安裝必要的工具和庫 安裝NodeJS:用於管理庫和處理JavaScript文件。 安裝ethers.js庫:通過npm安裝ethers.js庫,以便在代碼中使用。
2. 創建錢包賬號並獲取測試ETH 創建一個JavaScript文件。 導入ethers.js庫,並使用私鑰創建錢包實例。 通過Kovan或其他測試網路節點獲取測試ETH,可以從水龍頭網站復制錢包地址並獲取測試ETH。
3. 設置以太坊節點URL並實例化ethersJsonRpcProvider 在代碼中設置以太坊測試網路的節點URL。 使用該URL實例化一個ethers.js的JsonRpcProvider對象。
4. 創建交易對象並設置高gasPrice 使用錢包實例的sendTransaction方法或類似方法創建一個交易對象。 設置高gasPrice:通過修改交易對象的gasPrice欄位,設置一個較高的gas價格以增加交易的優先順序。 確保使用與原始交易相同的nonce值,以避免發送重復交易並導致額外費用。
5. 簽名交易並發送 使用錢包實例對交易對象進行簽名。 發送簽名後的交易到以太坊網路。
6. 驗證交易狀態 可以使用Kovan瀏覽器或其他以太坊區塊瀏覽器,通過交易哈希值搜索並檢查交易是否成功被打包。
重點注意事項: gasPrice的設置:較高的gas價格可以使交易更快得到驗證,但也會增加交易費用。 nonce值的重要性:重新發送交易時,必須使用與原始交易相同的nonce值,以避免發送重復交易。
通過以上步驟,你可以使用ethers.js在以太坊測試網上重發高gas的替換交易,以解決因gas不足導致的交易延遲問題。