javascript - 如何在我的脚本中修复“错误:数字最多只能安全存储 53 位”?
问题描述
我正在尝试使用 Quorum 7nodes 创建存储合同,但我遇到了这个问题:错误:数字只能安全地存储最多 53 位
Javascript:
await contract.methods.set(5).send({ from: accounts[0]});
坚固合同:
pragma solidity ^0.5.0;
contract SimpleStorage {
uint storedData;
function set(uint x) public {
storedData = x;
}
function get() public view returns (uint) {
return storedData;
}
}
版本:
Truffle v5.0.14 (core: 5.0.14)
Solidity v0.5.0 (solc-js)
Node v10.15.1
Web3js "^1.0.0-beta.52"
松露配置:
nodefour: {
host: "127.0.0.1", // Localhost (default: none)
port: 22003, // Standard Ethereum port (default: none)
network_id: 10, // Any network (default: none)
gasPrice: 0,
gas: 4500000,
type: "quorum" },
解决方案
发生此错误是因为 Raft 以纳秒(而不是秒)为单位存储块时间戳,而 Truffle 无法处理此问题。一个简单的解决方案是使用伊斯坦布尔或 Clique 共识。
或者,这里有一个线程描述了如何设置代理来解决这个问题:Quorum Ethereum Truffle) Error: Number can only safe store up to 53 bits
推荐阅读
- android-studio - Android Studio 中的“无法解析符号……”问题
- java - @Transactional 对读取方法的适用性
- python-3.x - 如何更新散列值集,直到使用“5 个给定散列值”找到最终散列值?
- php - 未经同意屏幕授权访问个人 GoogleDrive
- r - 三元图 - 跨组缩放不透明度
- python - 我在这个类中有什么语法错误?
- java - 尝试将配置文件中的文本替换为广播,并得到“类型不匹配:无法从 int 转换为字符串”
- php - 从 shopify 应用程序获取 shopify storeURL
- python - AttributeError:“str”对象没有属性“__dict__”
- dynamics-ax-2012 - 如何从存档数据库中获取数据