nonce问题 ETH ETC

问题

     通过web3.js 发送一笔交易(web3.eth.sendRawTransaction)未被确认,如该from再发送全新交易时,会返回错误提示,增加nonce 或者提高gas 

解决思路:(手续费足够大才能保证连续发送交易成功)

   1.记录所有通过本节点发送的交易,当一定时间内未被确认收入主链直接删除

   2.组交易时返回给客户端 from  地址的节点nonce(通过web3.eth.getTransactionCount接口获取) 和自己保存的from 地址所有未确认交易中最高nonce ,由客户端自行选择,提示交易风险

{
	"nonce": 5,
	"localNonce": 8
}

或者选择

### 如何在 Postman 中配置和使用 Nonce 参数 Nonce 是一种一次性使用的随机数或字符串,在安全通信中常用于防止重放攻击。为了在 Postman 中设置和使用 Nonce 值,可以按照以下方法操作。 #### 配置 Nonce 的方式 可以通过 `Pre-request Script` 或者手动输入的方式生成并传递 Nonce 值到请求体或者头部字段中。以下是具体实现: 1. **通过 Pre-request Script 自动生成** 使用 JavaScript 编写脚本来自动生成一个唯一的 Nonce 值,并将其存储为环境变量或全局变量以便后续调用[^3]。 ```javascript pm.environment.set("nonce", Math.random().toString(36).substring(2, 15)); ``` 上述代码片段会生成一个长度为 13 的随机字符串作为 Nonce 值,并保存至名为 `"nonce"` 的环境变量中[^4]。 2. **将 Nonce 添加到请求头 (Headers)** 如果服务器期望接收的是 HTTP Header 形式的参数,则可以在 Headers 栏位新增键值对,其中 Key 设置为指定名称(比如 X-Nonce),Value 则引用之前创建好的环境变量 {{nonce}} 来动态填充实际数值[^5]。 3. **将 Nonce 放入 Body (x-www-form-urlencoded 类型下)** 当需要把数据放置于 POST 请求主体部分,可以选择 x-www-form-urlencoded 方式来提交表单样式的键值组合。此同样利用已定义的环境变量完成赋值过程[^6]: | Key | Value | |--------|---------------| | nonce | {{nonce}} | 以上两种途径均能有效达成向目标服务端发送独一无二且不可预测的一次性令牌之目的。 ```python import random import string def generate_nonce(length=10): letters_and_digits = string.ascii_letters + string.digits result_str = ''.join((random.choice(letters_and_digits) for i in range(length))) return result_str print(generate_nonce()) ``` 此 Python 函数展示了另一种可能的方法去构建适合做为 Nonce 的字符序列[^7]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值