以太坊使用实例
『壹』 以太坊中的计量单位及相互转换
首先我们来看一下以太币单位之间的转换,以太币的最小单位为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不足导致的交易延迟问题。